i18n-stuff - incl da translation
Этот коммит содержится в:
родитель
3f181fe328
Коммит
65e49d7e94
58
po/README.tools
Обычный файл
58
po/README.tools
Обычный файл
@ -0,0 +1,58 @@
|
||||
The po/ directory includes two perlscripts, which is done to help
|
||||
making the translations fully uptodate.
|
||||
|
||||
The first script is called update.pl and is supposed to be run like this:
|
||||
|
||||
./update.pl [OPTIONS] ...LANGCODE
|
||||
|
||||
This will updates the pot file (the po template, generated from the source code)
|
||||
and merge them with the translations po files.
|
||||
|
||||
For instance to do this for Danish, type the following
|
||||
|
||||
./update.pl da
|
||||
|
||||
|
||||
The update.pl script also supports other options, they are:
|
||||
|
||||
-V, --version shows the version
|
||||
-H, --help shows this help page
|
||||
-P, --pot only generates the potfile
|
||||
-M, --maintain search for missing files in POTFILES.in
|
||||
|
||||
Especially the --maintain option is very handy for package maintainer, to check
|
||||
if you included all the files that have marked strings in the POTFILES.in, so
|
||||
they will be in the generated po template, the socalled pot file.
|
||||
|
||||
There is though one thing to take notice of with this option, please check the
|
||||
configure.in file to make sure that the files you add to POTFILES.in are being
|
||||
build, otherwise this can leed to "make dist" throuble.
|
||||
|
||||
|
||||
The other utility is the desk.pl script, which will check the cvs module for
|
||||
missing translation in files like *.desktop, *.directory, *.soundlist and so on.
|
||||
|
||||
Run the script like this:
|
||||
|
||||
./desk.pl [OPTIONS] ...LANGCODE ENTRY
|
||||
|
||||
An example use could be.
|
||||
|
||||
./desk.pl da
|
||||
|
||||
which will check all the files for missing Name[da] entries, or
|
||||
|
||||
./desk.pl no Comment
|
||||
|
||||
which will check all the files for missing Comment[no] entries. "Comment" can
|
||||
here be replaced with whatever you like
|
||||
|
||||
All scripts support the --help option for further help, though it's not very
|
||||
extensive for the moment.
|
||||
|
||||
Kenneth Christiansen
|
||||
|
||||
kenneth@gnu.org
|
||||
kenneth@gnome.org
|
||||
|
||||
Both scripts are copyright 2000 The Free Software Foundation and me.
|
588
po/da.po
588
po/da.po
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
118
po/desk.pl
Исполняемый файл
118
po/desk.pl
Исполняемый файл
@ -0,0 +1,118 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
# GNOME entry finder utility.
|
||||
# (C) 2000 The Free Software Foundation
|
||||
#
|
||||
# Author(s): Kenneth Christiansen
|
||||
|
||||
|
||||
$VERSION = "1.0.0 beta 5";
|
||||
$LANG = $ARGV[0];
|
||||
$OPTION2 = $ARGV[1];
|
||||
$SEARCH = "Name";
|
||||
|
||||
if (! $LANG){
|
||||
print "desk.pl: missing file arguments\n";
|
||||
print "Try `desk.pl --help' for more information.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($OPTION2){
|
||||
$SEARCH=$OPTION2;
|
||||
}
|
||||
|
||||
if ($LANG){
|
||||
|
||||
if ($LANG=~/^-(.)*/){
|
||||
|
||||
if ("$LANG" eq "--version" || "$LANG" eq "-V"){
|
||||
print "GNOME Entry finder $VERSION\n";
|
||||
print "Written by Kenneth Christiansen <kenneth\@gnome.org>, 2000.\n\n";
|
||||
print "Copyright (C) 2000 Free Software Foundation, Inc.\n";
|
||||
print "This is free software; see the source for copying conditions. There is NO\n";
|
||||
print "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
elsif ($LANG eq "--help" || "$LANG" eq "-H"){
|
||||
print "Usage: ./desk.pl [OPTIONS] ...LANGCODE ENTRY\n";
|
||||
print "Checks .desktop and alike files for missing translations.\n\n";
|
||||
print " -V, --version shows the version\n";
|
||||
print " -H, --help shows this help page\n";
|
||||
print "\nReport bugs to <kenneth\@gnome.org>.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
else{
|
||||
print "desk.pl: invalid option -- $LANG\n";
|
||||
print "Try `desk.pl --help' for more information.\n";
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
else{
|
||||
|
||||
$a="find ../ -print | egrep '.*\\.(desktop|soundlist"
|
||||
."|directory)' ";
|
||||
|
||||
$b="find ../ -print | egrep '.*\\.(desktop|soundlist"
|
||||
."|directory)' ";
|
||||
|
||||
print "Searching for missing $SEARCH\[$LANG\] entries...\n";
|
||||
|
||||
open(BUF1, "$a|");
|
||||
open(BUF2, "$b|");
|
||||
|
||||
@buf1 = <BUF1>;
|
||||
foreach my $file (@buf1){
|
||||
open FILE, "<$file";
|
||||
while (<FILE>) {
|
||||
if ($_=~/$SEARCH\[$LANG\]\=/o){
|
||||
$file = unpack("x2 A*",$file) . "\n";
|
||||
push @buff1, $file;
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@buf2 = <BUF2>;
|
||||
foreach my $file (@buf2){
|
||||
open FILE, "<$file";
|
||||
while (<FILE>) {
|
||||
if ($_=~/$SEARCH\=/o){
|
||||
$file = unpack("x2 A*",$file) . "\n";
|
||||
push @buff2, $file;
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@bufff1 = sort (@buff1);
|
||||
@bufff2 = sort (@buff2);
|
||||
|
||||
my %in2;
|
||||
foreach (@bufff1) {
|
||||
$in2{$_} = 1;
|
||||
}
|
||||
|
||||
foreach (@bufff2){
|
||||
if (!exists($in2{$_})){
|
||||
push @result, $_ }
|
||||
}
|
||||
}
|
||||
|
||||
open(OUT1, ">MISSING.$LANG.$SEARCH");
|
||||
print OUT1 @result ;
|
||||
close OUT1;
|
||||
|
||||
|
||||
stat("MISSING.$LANG.$SEARCH");
|
||||
print "\nWell, you need to fix these:\n\n" if -s _;
|
||||
print @result if -s _;
|
||||
print "\nThe list is saved in MISSING.$LANG.$SEARCH\n" if -s _;
|
||||
print "\nWell, it's all perfect! Congratulation!\n" if -z _;
|
||||
unlink "MISSING.$LANG.$SEARCH" if -z _;
|
||||
exit;
|
||||
}
|
||||
|
||||
|
166
po/update.pl
Исполняемый файл
166
po/update.pl
Исполняемый файл
@ -0,0 +1,166 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
# GNOME po update utility.
|
||||
# (C) 2000 The Free Software Foundation
|
||||
#
|
||||
# Author(s): Kenneth Christiansen
|
||||
|
||||
|
||||
$VERSION = "1.2.5 beta 2";
|
||||
$LANG = $ARGV[0];
|
||||
$PACKAGE = "mc";
|
||||
|
||||
if (! $LANG){
|
||||
print "update.pl: missing file arguments\n";
|
||||
print "Try `update.pl --help' for more information.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($LANG=~/^-(.)*/){
|
||||
|
||||
if ("$LANG" eq "--version" || "$LANG" eq "-V"){
|
||||
print "GNOME PO Updater $VERSION\n";
|
||||
print "Written by Kenneth Christiansen <kenneth\@gnome.org>, 2000.\n\n";
|
||||
print "Copyright (C) 2000 Free Software Foundation, Inc.\n";
|
||||
print "This is free software; see the source for copying conditions. There is NO\n";
|
||||
print "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
elsif ($LANG eq "--help" || "$LANG" eq "-H"){
|
||||
print "Usage: ./update.pl [OPTIONS] ...LANGCODE\n";
|
||||
print "Updates pot files and merge them with the translations.\n\n";
|
||||
print " -V, --version shows the version\n";
|
||||
print " -H, --help shows this help page\n";
|
||||
print " -P, --pot only generates the potfile\n";
|
||||
print " -M, --maintain search for missing files in POTFILES.in\n";
|
||||
print "\nExamples of use:\n";
|
||||
print "update.sh --pot just creates a new pot file from the source\n";
|
||||
print "update.sh da created new pot file and updated the da.po file\n\n";
|
||||
print "Report bugs to <kenneth\@gnome.org>.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
elsif($LANG eq "--pot" || "$LANG" eq "-P"){
|
||||
|
||||
print "Building the $PACKAGE.pot ...";
|
||||
|
||||
$b="xgettext --default-domain\=$PACKAGE --directory\=\.\."
|
||||
." --add-comments --keyword\=\_ --keyword\=N\_"
|
||||
." --files-from\=\.\/POTFILES\.in ";
|
||||
$b1="test \! -f $PACKAGE\.po \|\| \( rm -f \.\/$PACKAGE\.pot "
|
||||
."&& mv $PACKAGE\.po \.\/$PACKAGE\.pot \)";
|
||||
|
||||
`$b`;
|
||||
`$b1`;
|
||||
|
||||
print "...done\n";
|
||||
|
||||
exit;
|
||||
}
|
||||
|
||||
elsif ($LANG eq "--maintain" || "$LANG" eq "-M"){
|
||||
|
||||
$a="find ../ -print | egrep '.*\\.(c|y|cc|c++|h|gob)' ";
|
||||
|
||||
open(BUF2, "POTFILES.in") || die "update.pl: there's not POTFILES.in!!!\n";
|
||||
print "Searching for missing _(\" \") entries...\n";
|
||||
open(BUF1, "$a|");
|
||||
|
||||
|
||||
@buf2 = <BUF2>;
|
||||
@buf1 = <BUF1>;
|
||||
|
||||
if (-s "POTFILES.ignore"){
|
||||
open FILE, "POTFILES.ignore";
|
||||
while (<FILE>) {
|
||||
if ($_=~/^[^#]/o){
|
||||
push @bup, $_;
|
||||
}
|
||||
}
|
||||
print "POTFILES.ignore found! Ignoring files...\n";
|
||||
@buf2 = (@bup, @buf2);
|
||||
}
|
||||
|
||||
foreach my $file (@buf1){
|
||||
open FILE, "<$file";
|
||||
while (<FILE>) {
|
||||
if ($_=~/_\(\"/o){
|
||||
$file = unpack("x3 A*",$file) . "\n";
|
||||
push @buff1, $file;
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@bufff1 = sort (@buff1);
|
||||
|
||||
@bufff2 = sort (@buf2);
|
||||
|
||||
my %in2;
|
||||
foreach (@bufff2) {
|
||||
$in2{$_} = 1;
|
||||
}
|
||||
|
||||
foreach (@bufff1){
|
||||
if (!exists($in2{$_})){
|
||||
push @result, $_ }
|
||||
}
|
||||
|
||||
if(@result){
|
||||
open OUT, ">POTFILES.in.missing";
|
||||
print OUT @result;
|
||||
print "\nHere are the results:\n\n", @result, "\n";
|
||||
print "File POTFILES.in.missing is being placed in directory...\n";
|
||||
print "Please add the files that should be ignored in POTFILES.ignore\n";
|
||||
}
|
||||
else{
|
||||
print "\nWell, it's all perfect! Congratulation!\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
else{
|
||||
print "update.pl: invalid option -- $LANG\n";
|
||||
print "Try `update.pl --help' for more information.\n";
|
||||
}
|
||||
exit;
|
||||
}
|
||||
|
||||
elsif(-s "$LANG.po"){
|
||||
|
||||
print "Building the $PACKAGE.pot ...";
|
||||
|
||||
$c="xgettext --default-domain\=$PACKAGE --directory\=\.\."
|
||||
." --add-comments --keyword\=\_ --keyword\=N\_"
|
||||
." --files-from\=\.\/POTFILES\.in ";
|
||||
$c1="test \! -f $PACKAGE\.po \|\| \( rm -f \.\/$PACKAGE\.pot "
|
||||
."&& mv $PACKAGE\.po \.\/$PACKAGE\.pot \)";
|
||||
|
||||
`$c`;
|
||||
`$c1`;
|
||||
|
||||
print "...done";
|
||||
|
||||
print "\nNow merging $LANG.po with $PACKAGE.pot, and creating an updated $LANG.po ...\n";
|
||||
|
||||
|
||||
$d="mv $LANG.po $LANG.po.old && msgmerge $LANG.po.old $PACKAGE.pot -o $LANG.po";
|
||||
|
||||
$f="msgfmt --statistics $LANG.po";
|
||||
|
||||
`$d`;
|
||||
`$f`;
|
||||
|
||||
unlink "messages";
|
||||
unlink "$LANG.po.old";
|
||||
|
||||
exit;
|
||||
}
|
||||
|
||||
else{
|
||||
print "update.pl: sorry $LANG.po does not exist!\n";
|
||||
print "Try `update.pl --help' for more information.\n";
|
||||
exit;
|
||||
}
|
Загрузка…
Ссылка в новой задаче
Block a user