summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--admin/l10n/xgettextfiles5
-rw-r--r--core/l10n/xgettextfiles7
-rw-r--r--help/l10n/xgettextfiles1
-rw-r--r--l10n/l10n.pl66
-rw-r--r--log/l10n/xgettextfiles1
-rw-r--r--settings/l10n/xgettextfiles3
6 files changed, 57 insertions, 26 deletions
diff --git a/admin/l10n/xgettextfiles b/admin/l10n/xgettextfiles
deleted file mode 100644
index 37acbc25deb..00000000000
--- a/admin/l10n/xgettextfiles
+++ /dev/null
@@ -1,5 +0,0 @@
-../templates/app.php
-../templates/app_noconn.php
-../templates/apps.php
-../templates/system.php
-../templates/users.php
diff --git a/core/l10n/xgettextfiles b/core/l10n/xgettextfiles
deleted file mode 100644
index b5d83a880d4..00000000000
--- a/core/l10n/xgettextfiles
+++ /dev/null
@@ -1,7 +0,0 @@
-../templates/404.php
-../templates/installation.php
-../templates/layout.guest.php
-../templates/login.php
-../templates/logout.php
-../templates/part.pagenavi.php
-../templates/part.searchbox.php
diff --git a/help/l10n/xgettextfiles b/help/l10n/xgettextfiles
deleted file mode 100644
index a24bcc89a85..00000000000
--- a/help/l10n/xgettextfiles
+++ /dev/null
@@ -1 +0,0 @@
-../templates/index.php
diff --git a/l10n/l10n.pl b/l10n/l10n.pl
index b993727e8f1..736a7bc0435 100644
--- a/l10n/l10n.pl
+++ b/l10n/l10n.pl
@@ -5,7 +5,28 @@ use Cwd;
use Data::Dumper;
use File::Path;
-sub crawl{
+sub crawlPrograms{
+ my( $dir, $ignore ) = @_;
+ my @found = ();
+
+ opendir( DIR, $dir );
+ my @files = readdir( DIR );
+ closedir( DIR );
+
+ foreach my $i ( @files ){
+ next if substr( $i, 0, 1 ) eq '.';
+ if( $i eq 'l10n' && !$ignore ){
+ push( @found, $dir );
+ }
+ elsif( -d $dir.'/'.$i ){
+ push( @found, crawlPrograms( $dir.'/'.$i ));
+ }
+ }
+
+ return @found;
+}
+
+sub crawlFiles{
my( $dir ) = @_;
my @found = ();
@@ -15,17 +36,31 @@ sub crawl{
foreach my $i ( @files ){
next if substr( $i, 0, 1 ) eq '.';
+
if( -d $dir.'/'.$i ){
- push( @found, crawl( $dir.'/'.$i ));
+ push( @found, crawlFiles( $dir.'/'.$i ));
}
- elsif( $i eq 'xgettextfiles' ){
- push( @found, $dir );
+ else{
+ push(@found,$dir.'/'.$i) if $i =~ /\.js$/ || $i =~ /\.php$/;
}
}
return @found;
}
+sub readIgnorelist{
+ return () unless -e 'l10n/ignorelist';
+ my %ignore = ();
+ open(IN,'l10n/ignorelist');
+ while(<IN>){
+ my $line = $_;
+ chomp($line);
+ $ignore{"./$line"}++;
+ }
+ close(IN);
+ return %ignore;
+}
+
my $task = shift( @ARGV );
my $place = '..';
@@ -36,7 +71,7 @@ my $whereami = cwd();
die( "Program must be executed in a l10n-folder called 'l10n'" ) unless $whereami =~ m/\/l10n$/;
# Where are i18n-files?
-my @dirs = crawl( $place );
+my @dirs = crawlPrograms( $place, 1 );
# Languages
rmtree( 'templates' );
@@ -51,28 +86,41 @@ foreach my $i ( @files ){
}
if( $task eq 'read' ){
+ print "Mode: reading\n";
foreach my $dir ( @dirs ){
my @temp = split( /\//, $dir );
- pop( @temp );
my $app = pop( @temp );
chdir( $dir );
+ my @totranslate = crawlFiles('.');
+ my %ignore = readIgnorelist();
my $output = "${whereami}/templates/$app.pot";
- `xgettext --files-from=xgettextfiles --output="$output" --keyword=t`;
+ print " Processing $app\n";
+
+ foreach my $file ( @totranslate ){
+ next if $ignore{$file};
+ my $keyword = ( $file =~ /\.js$/ ? 't:2' : 't');
+ my $language = ( $file =~ /\.js$/ ? 'C' : 'PHP');
+ my $joinexisting = ( -e $output ? '--join-existing' : '');
+ print " Reading $file\n";
+ `xgettext --output="$output" $joinexisting --keyword=$keyword --language=$language "$file"`;
+ }
chdir( $whereami );
}
}
elsif( $task eq 'write' ){
+ print "Mode: write\n";
foreach my $dir ( @dirs ){
my @temp = split( /\//, $dir );
- pop( @temp );
my $app = pop( @temp );
- chdir( $dir );
+ chdir( $dir.'/l10n' );
+ print " Processing $app\n";
foreach my $language ( @languages ){
next if $language eq 'templates';
my $input = "${whereami}/$language/$app.po";
next unless -e $input;
+ print " Language $language\n";
my $array = Locale::PO->load_file_asarray( $input );
# Create array
my @strings = ();
diff --git a/log/l10n/xgettextfiles b/log/l10n/xgettextfiles
deleted file mode 100644
index a24bcc89a85..00000000000
--- a/log/l10n/xgettextfiles
+++ /dev/null
@@ -1 +0,0 @@
-../templates/index.php
diff --git a/settings/l10n/xgettextfiles b/settings/l10n/xgettextfiles
deleted file mode 100644
index 8a2f185f230..00000000000
--- a/settings/l10n/xgettextfiles
+++ /dev/null
@@ -1,3 +0,0 @@
-../templates/index.php
-../ajax/changepassword.php
-../ajax/setlanguage.php \ No newline at end of file