1
1

i18n-stuff - incl da translation

Этот коммит содержится в:
Kenneth Christiansen 2000-07-27 11:04:45 +00:00
родитель 3f181fe328
Коммит 65e49d7e94
4 изменённых файлов: 676 добавлений и 254 удалений

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

Разница между файлами не показана из-за своего большого размера Загрузить разницу

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 Исполняемый файл
Просмотреть файл

@ -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;
}