[Libreoffice-commits] .: bin/lo-xlate-lang

René Engelhard rene at kemper.freedesktop.org
Sat Oct 15 02:41:29 PDT 2011


 bin/lo-xlate-lang |  210 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 210 insertions(+)

New commits:
commit 8d153dc965379672321b7c351db4b9c41473f6cf
Author: Rene Engelhard <rene at debian.org>
Date:   Thu Oct 13 14:58:48 2011 +0200

    add lo-xlate-lang (formerly openoffice-xlate-lang in libreoffice-build)

diff --git a/bin/lo-xlate-lang b/bin/lo-xlate-lang
new file mode 100755
index 0000000..7549f85
--- /dev/null
+++ b/bin/lo-xlate-lang
@@ -0,0 +1,210 @@
+#!/usr/bin/env perl
+
+use strict;
+
+my $progname=$0; $progname = $& if $progname =~ m,[^/]+$,;
+
+my %PREFIX;   # used to search for prefix numbers
+my %ISOCODE;  # used to search for iso codes
+my %LANGUAGE; # used to search for language names
+
+#=======================================================================
+# initialisation code - stuff the DATA into the CODES hash
+#=======================================================================
+sub init {
+
+    my $prefix;
+    my $code;
+    my $name;
+
+
+    while (<DATA>)
+    {
+        next unless /\S/;
+        chop;
+        ($prefix, $code, $name ) = split(/:/, $_, 3);
+        $PREFIX{$prefix} = $prefix;
+        $PREFIX{$code} = $prefix;
+        $PREFIX{$name} = $prefix;
+
+        $ISOCODE{$prefix} = $code;
+        $ISOCODE{$code} = $code;
+        $ISOCODE{$name} = $code;
+	
+        $LANGUAGE{$prefix} = $name;
+        $LANGUAGE{$code} = $name;
+        $LANGUAGE{$name} = $name;
+    }
+}
+
+
+#=======================================================================
+# usage - error message
+#=======================================================================
+sub usage {
+    my $errmsg = shift;
+    my $errcode = shift;
+    print STDERR "$progname: $errmsg\n" if $errmsg;
+    print STDERR "$progname: Converts between prefix codes, iso codes and langnames\n";
+    print STDERR " Usage: $progname (-i|-l|-p|-h) <code>|all\n";
+    print STDERR "  -i <code>: convert prefix to iso code (ex: 03 -> pt)\n";
+    print STDERR "  -l <code>: convert iso code to language name (ex: pt -> portuguese)\n";
+    print STDERR "  -p <code>: convert iso code to prefix (ex: pt -> 03)\n";
+    print STDERR "  the code can either be an iso code, a prefix or even a language name\n";
+    print STDERR "  The special code \"all\" asks for all possible values.\n\n";
+    print STDERR "  -h : print this help\n";
+    exit $errcode;
+}
+
+#=======================================================================
+# main - 
+#=======================================================================
+init();
+
+my ($LanguageCode, $LanguageMap);
+
+while ($ARGV[0] =~ /^-/) {
+    $_ = shift;
+    if (m/^-i/) {
+	$LanguageMap = \%ISOCODE;
+    }
+    elsif (m/^-l/) {
+	$LanguageMap = \%LANGUAGE;
+    }
+    elsif (m/^-p/) {
+	$LanguageMap = \%PREFIX;
+    }
+    elsif (m/^-h/) {
+	usage("",0);
+    }
+    else {
+	usage ("unknown option $_",1);
+    }
+}
+
+usage ("no operation specified on command line",1)
+    if (!$LanguageMap);
+
+usage ("no language code specified on command line",1)
+    if (!($LanguageCode = shift));
+
+if ($LanguageCode =~ (m/^all$/)) {
+    # Asked for all codes
+    my $old="";
+    foreach my $key (sort values %$LanguageMap) {
+	if ($key ne $old) {
+	    print "$key ";
+	    $old=$key;
+	}
+    }
+    print "\n";
+    exit 0;
+}
+
+usage ("no mapping found for $LanguageCode\n",1)
+	if (!(%$LanguageMap->{$LanguageCode}));
+
+print $LanguageMap->{$LanguageCode}, "\n";
+
+1;
+
+# keep third column names here with openoffice-dir/share/*/<long lang name>/
+
+__DATA__
+:be:belarussian
+:bg:bulgarian
+:bn:bengali
+:bs:bosnian
+:en-GB:english_british
+:gu:gujarati
+:hr:croatian
+:km:khmer
+:ku:kurdish
+:pa-IN:punjabi
+:rw:kinarwanda
+:xh:xhosa
+:lt:lithuanian
+:ne:nepali
+:vi:vietnamese
+:nso:northern_sotho
+:ss:swazi
+:sr:serbian
+:ve:venda
+:ts:tsonga
+:st:southern_sotho
+:tn:tswana
+:br:breton
+:ga:gaelic
+:gd:scottish_gaelic
+:th:thai
+:hi:hindi
+:bs-BA:bosnian
+:en-ZA:english_southafrican
+:mk:macedonian
+:as:assamese
+:ml:malayalam
+:mr:marathi
+:or:oriya
+:ur:urdu
+:fa:farsi
+:lv:latvian
+:nr:ndebele
+:ne:nepalese
+:sh:serbian
+:te:telugu
+:ta:tamil
+:tg:tajik
+:ka:georgian
+:eo:esperanto
+:uk:ukrainian
+:kk:kazahk
+:dz:dzongkha
+:kn:kannada
+:gl:galician
+:uz:uzbek
+:oc:occitan
+:ro:romanian
+:eu:basque
+:mn:mongolian
+:om:oromo
+:bo:tibetan
+:ast:asturian
+:is:icelandic
+:ug:uighur
+:si:sinhala
+:id:indonesian
+:my:burmese
+01:en-US:english_american
+03:pt:portuguese
+07:ru:russian
+26:ns:northernsotho
+27:af:afrikaans
+28:zu:zulu
+30:el:greek
+31:nl:dutch
+33:fr:french
+34:es:spanish
+35:fi:finnish
+36:hu:hungarian
+37:ca:catalan
+39:it:italian
+42:cs:czech
+43:sk:slovak
+45:da:danish
+46:sv:swedish
+47:nb:norwegian
+48:pl:polish
+49:de:german
+50:sl:slovenian
+53:cy:welsh
+55:pt-BR:portuguese_brazilian
+77:et:estonian
+79:nn:norwegian_nynorsk
+81:ja:japanese
+82:ko:korean
+86:zh-CN:chinese_simplified
+88:zh-TW:chinese_traditional
+90:tr:turkish
+91:hi:hindi
+96:ar:arabic
+97:he:hebrew


More information about the Libreoffice-commits mailing list