aboutsummaryrefslogtreecommitdiffstats
path: root/tools/replace_language_keys.pl
diff options
context:
space:
mode:
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);
+}