aboutsummaryrefslogtreecommitdiffstats
path: root/tools/replace_language_keys.pl
diff options
context:
space:
mode:
authorplegall <plg@piwigo.org>2010-09-28 00:18:39 +0000
committerplegall <plg@piwigo.org>2010-09-28 00:18:39 +0000
commit601f855ef5525111188518d189b95ce75a6056bc (patch)
treeda8cb2f6628876b1c38d24a42944688d6f4021fb /tools/replace_language_keys.pl
parentc6a5f13d2307757a0328f9c8fac340938a17f90d (diff)
feature 1616: add a tool to replace language keys from a mapping file + replace values from a template file
git-svn-id: http://piwigo.org/svn/trunk@7026 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to 'tools/replace_language_keys.pl')
-rw-r--r--tools/replace_language_keys.pl60
1 files changed, 60 insertions, 0 deletions
diff --git a/tools/replace_language_keys.pl b/tools/replace_language_keys.pl
new file mode 100644
index 000000000..822b3e1cc
--- /dev/null
+++ b/tools/replace_language_keys.pl
@@ -0,0 +1,60 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+my $replacement_file = $ARGV[0];
+my $language_dir = $ARGV[1];
+
+# load the replacements
+my %replace_by = ();
+open(my $ifh_rep, '<'.$replacement_file);
+while (<$ifh_rep>) {
+ if (m/^\$lang\['(.*)'\] \s* = \s* (['"])(.*)\2;/x) {
+ if ($1 ne $3 and length($1) > 0) {
+ $replace_by{$1} = $3;
+ }
+ }
+}
+# use Data::Dumper; print Dumper(\%replace_by); exit();
+
+my $append_to_common = '';
+
+foreach my $file_code (qw/upgrade install admin common plugin/) {
+ my $filename = $language_dir.'/'.$file_code.'.lang.php';
+ # print $filename;
+ if (not -f $filename) {
+ # print ' is missing', "\n";
+ next;
+ }
+ print $filename.' is under process', "\n";
+
+ my $file_content = '';
+
+ open(my $ifh, '<'.$filename);
+ while (my $line = <$ifh>) {
+ if ($line =~ m/^\$lang\['(.*)'\] \s* =/x) {
+ if (defined $replace_by{$1}) {
+ my $search = quotemeta($1);
+ my $replace = $replace_by{$1};
+
+ $line =~ s{$search}{$replace};
+ $file_content.= $line;
+ }
+ else {
+ $file_content.= $line;
+ }
+ }
+ elsif ($line =~ m/^?>/) {
+ $file_content.= $line;
+ }
+ else {
+ $file_content.= $line;
+ }
+ }
+ close($ifh);
+
+ open(my $ofh, '>'.$filename);
+ print {$ofh} $file_content;
+ close($ofh);
+}