⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 po2i18n.pl

📁 VDR softcam plugin 0.9.1
💻 PL
字号:
#!/usr/bin/perl##  po2i18n - Convert plugin po files in into i18n.c-format##  See the README file for copyright information and how to reach the author.#use strict;use warnings;my @LANGS = (  "en_US",  "de_DE",  "sl_SI",  "it_IT",  "nl_NL",  "pt_PT",  "fr_FR",  "nn_NO",  "fi_FI",  "pl_PL",  "es_ES",  "el_GR",  "sv_SE",  "ro_RO",  "hu_HU",  "ca_ES",  "ru_RU",  "hr_HR",  "et_EE",  "da_DK",  "cs_CZ",  "tr_TR"  );my %VERS = (  "en_US" => 10200,  "de_DE" => 10200,  "sl_SI" => 10200,  "it_IT" => 10200,  "nl_NL" => 10200,  "pt_PT" => 10200,  "fr_FR" => 10200,  "nn_NO" => 10200,  "fi_FI" => 10200,  "pl_PL" => 10200,  "es_ES" => 10200,  "el_GR" => 10200,  "sv_SE" => 10200,  "ro_RO" => 10200,  "hu_HU" => 10200,  "ca_ES" => 10200,  "ru_RU" => 10302,  "hr_HR" => 10307,  "et_EE" => 10313,  "da_DK" => 10316,  "cs_CZ" => 10342,  "tr_TR" => 10502  );my %strings;foreach my $lang (@LANGS) { $strings{$lang} = { }; }sub LoadLanguage(*) {    my ($lang) = @_;        if (!open FILE, "<", "po/$lang.po") {        return 0;       }        my $msgid = "";    my $msgstr = "";    my $last = 0; # 0=init, 1=msgid was last, 2=msgstr was last        while (<FILE>) {        chomp;        my $line = $_;                if ($line =~ /^msgid "(.*)"$/) {            if ($last eq 2) {                $strings{$lang}->{$msgid} = $msgstr;                $strings{"en_US"}->{$msgid} = $msgid;            }            $msgid = $1;            $last = 1;        } elsif ($line =~ /^msgstr "(.*)"/) {            $msgstr = $1;            $last = 2;        } elsif ($line =~ /^"(.*)"/) {            if ($last eq 1) {                $msgid = $msgid . $1;            } elsif ($last eq 2) {                $msgstr = $msgstr . $1;            }        }           }    if ($last eq 2) {        $strings{$lang}->{$msgid} = $msgstr;        $strings{"en_US"}->{$msgid} = $msgid;    }        close FILE;}foreach my $lang (@LANGS) {     LoadLanguage($lang);}my @msgids = sort keys %{$strings{"en_US"}};my $silent = 0;while (<>) {    my $line = $_;    if ($line =~ /^\/\/ START I18N/) {        print "// START I18N - automatically generated by po2i18n.pl\n";        for my $msgid (@msgids) {            next if $msgid eq "";            my $head = "  { ";            my $endif = "";            my $versnum = 10200;                        for my $lang (@LANGS) {                if ($VERS{$lang} ne $versnum) {                    $versnum = $VERS{$lang};                    print $endif;                    print "#if VDRVERSNUM >= $versnum\n";                    $endif = "#endif\n";                }                my $msgstr = $strings{$lang}->{$msgid};                $msgstr = "" if !defined $msgstr;                                print "$head\"$msgstr\",\n";                $head = "    ";            }            print $endif;            print "  },\n";        }        $silent = 1;    }    if (!$silent) { print $line; }    if ($line =~ /^\/\/ END I18N/) {         print "// END I18N - automatically generated by po2i18n.pl\n";        $silent = 0;     }    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -