summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreinhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46>2006-10-19 02:52:02 +0000
committereinhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46>2006-10-19 02:52:02 +0000
commit125dbf0e961577daa93090dbfbc6777466662c6a (patch)
treee50e8a172e4a881a2ad60532336b891c5af5ec0c
parentfbfd378f345f26df344fad3a729fd30512d23317 (diff)
Got rid of duplicate locales.pl files
git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@231 4979c152-3d1c-0410-bac9-87ea11338e46
-rwxr-xr-xLedgerSMB/locales.pl351
-rwxr-xr-xlocale/be_fr/locales.pl350
-rwxr-xr-xlocale/be_nl/locales.pl350
-rwxr-xr-xlocale/bg_utf/locales.pl350
-rwxr-xr-xlocale/br/locales.pl350
-rwxr-xr-xlocale/ca_en/locales.pl350
-rwxr-xr-xlocale/ca_fr/locales.pl350
-rwxr-xr-xlocale/ch/locales.pl350
-rwxr-xr-xlocale/ch_utf/locales.pl350
-rwxr-xr-xlocale/cn_utf/locales.pl350
-rwxr-xr-xlocale/co/locales.pl350
-rwxr-xr-xlocale/co_utf/locales.pl350
-rwxr-xr-xlocale/ct/locales.pl350
-rwxr-xr-xlocale/cz/locales.pl350
-rwxr-xr-xlocale/de/locales.pl350
-rwxr-xr-xlocale/de_utf/locales.pl350
-rwxr-xr-xlocale/dk/locales.pl350
-rwxr-xr-xlocale/ec/locales.pl350
-rwxr-xr-xlocale/ee/locales.pl350
-rwxr-xr-xlocale/ee_utf/locales.pl350
-rwxr-xr-xlocale/eg_utf/locales.pl350
-rwxr-xr-xlocale/en_GB/locales.pl350
-rwxr-xr-xlocale/es/locales.pl350
-rwxr-xr-xlocale/es_utf/locales.pl350
-rwxr-xr-xlocale/fi/locales.pl350
-rwxr-xr-xlocale/fi_utf/locales.pl350
-rwxr-xr-xlocale/fr/locales.pl350
-rwxr-xr-xlocale/gr/locales.pl350
-rwxr-xr-xlocale/hu/locales.pl350
-rwxr-xr-xlocale/id/locales.pl350
-rwxr-xr-xlocale/is/locales.pl350
-rwxr-xr-xlocale/it/locales.pl350
-rwxr-xr-xlocale/lt/locales.pl350
-rwxr-xr-xlocale/lv/locales.pl350
-rwxr-xr-xlocale/mx/locales.pl350
-rwxr-xr-xlocale/nb/locales.pl350
-rwxr-xr-xlocale/nl/locales.pl350
-rwxr-xr-xlocale/pa/locales.pl350
-rwxr-xr-xlocale/pl/locales.pl350
-rwxr-xr-xlocale/pt/locales.pl350
-rwxr-xr-xlocale/py/locales.pl350
-rwxr-xr-xlocale/ru/locales.pl350
-rwxr-xr-xlocale/ru_utf/locales.pl350
-rwxr-xr-xlocale/se/locales.pl350
-rwxr-xr-xlocale/sv/locales.pl350
-rwxr-xr-xlocale/tr/locales.pl350
-rwxr-xr-xlocale/tw_big5/locales.pl350
-rwxr-xr-xlocale/tw_utf/locales.pl350
-rwxr-xr-xlocale/ua/locales.pl350
-rwxr-xr-xlocale/ua_utf/locales.pl350
-rwxr-xr-xlocale/ve/locales.pl350
51 files changed, 401 insertions, 17450 deletions
diff --git a/LedgerSMB/locales.pl b/LedgerSMB/locales.pl
new file mode 100755
index 00000000..0ba4e2b9
--- /dev/null
+++ b/LedgerSMB/locales.pl
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+
+# -n do not include custom_ scripts
+# -a build all file
+# -m do not generate missing files
+
+use FileHandle;
+
+
+$basedir = "../..";
+$bindir = "$basedir/bin";
+$menufile = "menu.ini";
+
+foreach $item (@ARGV) {
+ $item =~ s/-//g;
+ $arg{$item} = 1;
+}
+
+open(FH, "LANGUAGE");
+$language = <FH>;
+close(FH);
+chomp $language;
+$language =~ s/\((.*)\)/$1/;
+$charset = $1;
+
+opendir DIR, "$bindir" or die "$!";
+@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
+seekdir DIR, 0;
+@customfiles = grep /_/, readdir DIR;
+closedir DIR;
+
+# put customized files into @customfiles
+@customfiles = () if ($arg{n});
+
+if ($arg{n}) {
+ @menufiles = ($menufile);
+} else {
+ opendir DIR, "$basedir" or die "$!";
+ @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
+ closedir DIR;
+ unshift @menufiles, $menufile;
+}
+
+if (-f "all") {
+ eval { require "all"; };
+ %all = %{$self{texts}};
+ %{$self{texts}} = ();
+} else {
+ # build %all file from individual files
+ foreach $file (@progfiles) {
+ &scanfile("$bindir/$file");
+ }
+}
+
+# remove the old missing file
+if (-f 'missing') {
+ unlink "missing";
+}
+
+foreach $file (@progfiles) {
+
+ %locale = ();
+ %submit = ();
+ %subrt = ();
+ @missing = ();
+ %missing = ();
+
+ &scanfile("$bindir/$file");
+
+ # scan custom_{module}.pl or {login}_{module}.pl files
+ foreach $customfile (@customfiles) {
+ if ($customfile =~ /_$file/) {
+ if (-f "$bindir/$customfile") {
+ &scanfile("$bindir/$customfile");
+ }
+ }
+ }
+
+ # if this is the menu.pl file
+ if ($file eq 'menu.pl') {
+ foreach $item (@menufiles) {
+ &scanmenu("$basedir/$item");
+ }
+ }
+
+ $file =~ s/\.pl//;
+
+ if (-f "$file.missing") {
+ eval { require "$file.missing"; };
+ unlink "$file.missing";
+
+ for (keys %$missing) {
+ $self{texts}{$_} ||= $missing->{$_};
+ }
+ }
+
+ open FH, ">$file" or die "$! : $file";
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|$self{texts} = {
+|;
+
+ foreach $key (sort keys %locale) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ $count++;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ if (!$text) {
+ $notext++;
+ push @missing, $keytext;
+ next;
+ }
+
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+$self{subs} = {
+|;
+
+ foreach $key (sort keys %subrt) {
+ $text = $key;
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
+ }
+
+ foreach $key (sort keys %submit) {
+ $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
+ next unless $text;
+
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+
+ $english_sub = $key;
+ $english_sub =~ s/'/\\'/g;
+ $english_sub =~ s/\\$/\\\\/;
+ $english_sub = lc $key;
+
+ $translated_sub = lc $text;
+ $english_sub =~ s/( |-|,|\/|\.$)/_/g;
+ $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
+ print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
+ }
+
+ print FH q|};
+
+1;
+
+|;
+
+ close FH;
+
+ if (!$arg{m}) {
+ if (@missing) {
+ open FH, ">$file.missing" or die "$! : missing";
+
+ print FH qq|# module $file
+# add the missing texts and run locales.pl to rebuild
+
+\$missing = {
+|;
+
+ foreach $text (@missing) {
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+ }
+
+
+ # redo the all file
+ if ($arg{a}) {
+ open FH, ">all" or die "$! : all";
+
+ print FH q|# These are all the texts to build the translations files.
+# to build unique strings edit the module files instead
+# this file is just a shortcut to build strings which are the same
+|;
+
+ if ($charset) {
+ print FH qq|\$self{charset} = '$charset';\n\n|;
+ }
+
+ print FH q|
+$self{texts} = {
+|;
+
+ foreach $key (sort keys %all) {
+ $keytext = $key;
+ $keytext =~ s/'/\\'/g;
+ $keytext =~ s/\\$/\\\\/;
+
+ $text = $all{$key};
+ $text =~ s/'/\\'/g;
+ $text =~ s/\\$/\\\\/;
+ print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
+ }
+
+ print FH q|};
+
+1;
+|;
+
+ close FH;
+
+ }
+
+}
+
+$per = sprintf("%.1f", ($count - $notext) / $count * 100);
+print "\n$language - ${per}%\n";
+
+exit;
+# eof
+
+
+sub scanfile {
+ my ($file, $level) = @_;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ $file =~ s/\.pl//;
+ $file =~ s/$bindir\///;
+
+ %temp = ();
+ for (keys %{$self{texts}}) {
+ $temp{$_} = $self{texts}{$_};
+ }
+
+ # read translation file if it exists
+ if (-f $file) {
+ eval { do "$file"; };
+ for (keys %{$self{texts}}) {
+ $all{$_} ||= $self{texts}{$_};
+ if ($level) {
+ $temp{$_} ||= $self{texts}{$_};
+ } else {
+ $temp{$_} = $self{texts}{$_};
+ }
+ }
+ }
+
+ %{$self{texts}} = ();
+ for (sort keys %temp) {
+ $self{texts}{$_} = $temp{$_};
+ }
+
+
+ while (<$fh>) {
+ # is this another file
+ if (/require\s+\W.*\.pl/) {
+ my $newfile = $&;
+ $newfile =~ s/require\s+\W//;
+ $newfile =~ s/\$form->{path}\///;
+ &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
+ }
+
+ # is this a sub ?
+ if (/^sub /) {
+ ($null, $subrt) = split / +/;
+ $subrt{$subrt} = 1;
+ next;
+ }
+
+ my $rc = 1;
+
+ while ($rc) {
+ if (/Locale/) {
+ if (!/^use /) {
+ my ($null, $country) = split /,/;
+ $country =~ s/^ +["']//;
+ $country =~ s/["'].*//;
+ }
+ }
+
+ if (/\$locale->text.*?\W\)/) {
+ my $string = $&;
+ $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
+ $string =~ s/\W\)+.*$//;
+
+ # if there is no $ in the string record it
+ unless ($string =~ /\$\D.*/) {
+ # this guarantees one instance of string
+ $locale{$string} = 1;
+
+ # is it a submit button before $locale->
+ if (/type=submit/i) {
+ $submit{$string} = 1;
+ }
+ }
+ }
+
+ # exit loop if there are no more locales on this line
+ ($rc) = ($' =~ /\$locale->text/);
+ # strip text
+ s/^.*?\$locale->text.*?\)//;
+ }
+ }
+
+ close($fh);
+
+}
+
+
+sub scanmenu {
+ my $file = shift;
+
+ my $fh = new FileHandle;
+ open $fh, "$file" or die "$! : $file";
+
+ my @a = grep /^\[/, <$fh>;
+ close($fh);
+
+ # strip []
+ grep { s/(\[|\])//g } @a;
+
+ foreach my $item (@a) {
+ $item =~ s/ *$//;
+ @b = split /--/, $item;
+ foreach $string (@b) {
+ chomp $string;
+ if ($string !~ /^\s*$/) {
+ $locale{$string} = 1;
+ }
+ }
+ }
+
+}
+
+
diff --git a/locale/be_fr/locales.pl b/locale/be_fr/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/be_fr/locales.pl
+++ b/locale/be_fr/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/be_nl/locales.pl b/locale/be_nl/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/be_nl/locales.pl
+++ b/locale/be_nl/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/bg_utf/locales.pl b/locale/bg_utf/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/bg_utf/locales.pl
+++ b/locale/bg_utf/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/br/locales.pl b/locale/br/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/br/locales.pl
+++ b/locale/br/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/ca_en/locales.pl b/locale/ca_en/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/ca_en/locales.pl
+++ b/locale/ca_en/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/ca_fr/locales.pl b/locale/ca_fr/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/ca_fr/locales.pl
+++ b/locale/ca_fr/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/ch/locales.pl b/locale/ch/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/ch/locales.pl
+++ b/locale/ch/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/ch_utf/locales.pl b/locale/ch_utf/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/ch_utf/locales.pl
+++ b/locale/ch_utf/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/cn_utf/locales.pl b/locale/cn_utf/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/cn_utf/locales.pl
+++ b/locale/cn_utf/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/co/locales.pl b/locale/co/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/co/locales.pl
+++ b/locale/co/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/co_utf/locales.pl b/locale/co_utf/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/co_utf/locales.pl
+++ b/locale/co_utf/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/ct/locales.pl b/locale/ct/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/ct/locales.pl
+++ b/locale/ct/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/cz/locales.pl b/locale/cz/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/cz/locales.pl
+++ b/locale/cz/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/de/locales.pl b/locale/de/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/de/locales.pl
+++ b/locale/de/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/de_utf/locales.pl b/locale/de_utf/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/de_utf/locales.pl
+++ b/locale/de_utf/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/dk/locales.pl b/locale/dk/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/dk/locales.pl
+++ b/locale/dk/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/ec/locales.pl b/locale/ec/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/ec/locales.pl
+++ b/locale/ec/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/ee/locales.pl b/locale/ee/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/ee/locales.pl
+++ b/locale/ee/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/ee_utf/locales.pl b/locale/ee_utf/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/ee_utf/locales.pl
+++ b/locale/ee_utf/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/eg_utf/locales.pl b/locale/eg_utf/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/eg_utf/locales.pl
+++ b/locale/eg_utf/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/en_GB/locales.pl b/locale/en_GB/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/en_GB/locales.pl
+++ b/locale/en_GB/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/es/locales.pl b/locale/es/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/es/locales.pl
+++ b/locale/es/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/es_utf/locales.pl b/locale/es_utf/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/es_utf/locales.pl
+++ b/locale/es_utf/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/fi/locales.pl b/locale/fi/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/fi/locales.pl
+++ b/locale/fi/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/fi_utf/locales.pl b/locale/fi_utf/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/fi_utf/locales.pl
+++ b/locale/fi_utf/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/fr/locales.pl b/locale/fr/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/fr/locales.pl
+++ b/locale/fr/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/gr/locales.pl b/locale/gr/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/gr/locales.pl
+++ b/locale/gr/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/hu/locales.pl b/locale/hu/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/hu/locales.pl
+++ b/locale/hu/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/id/locales.pl b/locale/id/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/id/locales.pl
+++ b/locale/id/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/is/locales.pl b/locale/is/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/is/locales.pl
+++ b/locale/is/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/it/locales.pl b/locale/it/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/it/locales.pl
+++ b/locale/it/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/lt/locales.pl b/locale/lt/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/lt/locales.pl
+++ b/locale/lt/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/lv/locales.pl b/locale/lv/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/lv/locales.pl
+++ b/locale/lv/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/mx/locales.pl b/locale/mx/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/mx/locales.pl
+++ b/locale/mx/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/nb/locales.pl b/locale/nb/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/nb/locales.pl
+++ b/locale/nb/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/nl/locales.pl b/locale/nl/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/nl/locales.pl
+++ b/locale/nl/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/pa/locales.pl b/locale/pa/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/pa/locales.pl
+++ b/locale/pa/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/pl/locales.pl b/locale/pl/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/pl/locales.pl
+++ b/locale/pl/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/pt/locales.pl b/locale/pt/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/pt/locales.pl
+++ b/locale/pt/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/py/locales.pl b/locale/py/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/py/locales.pl
+++ b/locale/py/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/ru/locales.pl b/locale/ru/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/ru/locales.pl
+++ b/locale/ru/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/ru_utf/locales.pl b/locale/ru_utf/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/ru_utf/locales.pl
+++ b/locale/ru_utf/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/se/locales.pl b/locale/se/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/se/locales.pl
+++ b/locale/se/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/sv/locales.pl b/locale/sv/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/sv/locales.pl
+++ b/locale/sv/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/tr/locales.pl b/locale/tr/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/tr/locales.pl
+++ b/locale/tr/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/tw_big5/locales.pl b/locale/tw_big5/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/tw_big5/locales.pl
+++ b/locale/tw_big5/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/tw_utf/locales.pl b/locale/tw_utf/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/tw_utf/locales.pl
+++ b/locale/tw_utf/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/ua/locales.pl b/locale/ua/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/ua/locales.pl
+++ b/locale/ua/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/ua_utf/locales.pl b/locale/ua_utf/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/ua_utf/locales.pl
+++ b/locale/ua_utf/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"
diff --git a/locale/ve/locales.pl b/locale/ve/locales.pl
index cc8d2be7..1b3bdc74 100755
--- a/locale/ve/locales.pl
+++ b/locale/ve/locales.pl
@@ -1,351 +1,3 @@
#!/usr/bin/perl
-# -n do not include custom_ scripts
-# -a build all file
-# -m do not generate missing files
-
-use FileHandle;
-
-
-$basedir = "../..";
-$bindir = "$basedir/bin/mozilla";
-$menufile = "menu.ini";
-
-foreach $item (@ARGV) {
- $item =~ s/-//g;
- $arg{$item} = 1;
-}
-
-open(FH, "LANGUAGE");
-$language = <FH>;
-close(FH);
-chomp $language;
-$language =~ s/\((.*)\)/$1/;
-$charset = $1;
-
-opendir DIR, "$bindir" or die "$!";
-@progfiles = grep { /\.pl/; !/(_|^\.)/ } readdir DIR;
-seekdir DIR, 0;
-@customfiles = grep /_/, readdir DIR;
-closedir DIR;
-
-# put customized files into @customfiles
-@customfiles = () if ($arg{n});
-
-if ($arg{n}) {
- @menufiles = ($menufile);
-} else {
- opendir DIR, "$basedir" or die "$!";
- @menufiles = grep { /.*?_$menufile$/ } readdir DIR;
- closedir DIR;
- unshift @menufiles, $menufile;
-}
-
-if (-f "all") {
- eval { require "all"; };
- %all = %{$self{texts}};
- %{$self{texts}} = ();
-} else {
- # build %all file from individual files
- foreach $file (@progfiles) {
- &scanfile("$bindir/$file");
- }
-}
-
-# remove the old missing file
-if (-f 'missing') {
- unlink "missing";
-}
-
-foreach $file (@progfiles) {
-
- %locale = ();
- %submit = ();
- %subrt = ();
- @missing = ();
- %missing = ();
-
- &scanfile("$bindir/$file");
-
- # scan custom_{module}.pl or {login}_{module}.pl files
- foreach $customfile (@customfiles) {
- if ($customfile =~ /_$file/) {
- if (-f "$bindir/$customfile") {
- &scanfile("$bindir/$customfile");
- }
- }
- }
-
- # if this is the menu.pl file
- if ($file eq 'menu.pl') {
- foreach $item (@menufiles) {
- &scanmenu("$basedir/$item");
- }
- }
-
- $file =~ s/\.pl//;
-
- if (-f "$file.missing") {
- eval { require "$file.missing"; };
- unlink "$file.missing";
-
- for (keys %$missing) {
- $self{texts}{$_} ||= $missing->{$_};
- }
- }
-
- open FH, ">$file" or die "$! : $file";
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|$self{texts} = {
-|;
-
- foreach $key (sort keys %locale) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- $count++;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- if (!$text) {
- $notext++;
- push @missing, $keytext;
- next;
- }
-
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-$self{subs} = {
-|;
-
- foreach $key (sort keys %subrt) {
- $text = $key;
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|;
- }
-
- foreach $key (sort keys %submit) {
- $text = ($self{texts}{$key}) ? $self{texts}{$key} : $all{$key};
- next unless $text;
-
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
-
- $english_sub = $key;
- $english_sub =~ s/'/\\'/g;
- $english_sub =~ s/\\$/\\\\/;
- $english_sub = lc $key;
-
- $translated_sub = lc $text;
- $english_sub =~ s/( |-|,|\/|\.$)/_/g;
- $translated_sub =~ s/( |-|,|\/|\.$)/_/g;
- print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|;
- }
-
- print FH q|};
-
-1;
-
-|;
-
- close FH;
-
- if (!$arg{m}) {
- if (@missing) {
- open FH, ">$file.missing" or die "$! : missing";
-
- print FH qq|# module $file
-# add the missing texts and run locales.pl to rebuild
-
-\$missing = {
-|;
-
- foreach $text (@missing) {
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
- }
-
-
- # redo the all file
- if ($arg{a}) {
- open FH, ">all" or die "$! : all";
-
- print FH q|# These are all the texts to build the translations files.
-# to build unique strings edit the module files instead
-# this file is just a shortcut to build strings which are the same
-|;
-
- if ($charset) {
- print FH qq|\$self{charset} = '$charset';\n\n|;
- }
-
- print FH q|
-$self{texts} = {
-|;
-
- foreach $key (sort keys %all) {
- $keytext = $key;
- $keytext =~ s/'/\\'/g;
- $keytext =~ s/\\$/\\\\/;
-
- $text = $all{$key};
- $text =~ s/'/\\'/g;
- $text =~ s/\\$/\\\\/;
- print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|;
- }
-
- print FH q|};
-
-1;
-|;
-
- close FH;
-
- }
-
-}
-
-$per = sprintf("%.1f", ($count - $notext) / $count * 100);
-print "\n$language - ${per}%\n";
-
-exit;
-# eof
-
-
-sub scanfile {
- my ($file, $level) = @_;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- $file =~ s/\.pl//;
- $file =~ s/$bindir\///;
-
- %temp = ();
- for (keys %{$self{texts}}) {
- $temp{$_} = $self{texts}{$_};
- }
-
- # read translation file if it exists
- if (-f $file) {
- eval { do "$file"; };
- for (keys %{$self{texts}}) {
- $all{$_} ||= $self{texts}{$_};
- if ($level) {
- $temp{$_} ||= $self{texts}{$_};
- } else {
- $temp{$_} = $self{texts}{$_};
- }
- }
- }
-
- %{$self{texts}} = ();
- for (sort keys %temp) {
- $self{texts}{$_} = $temp{$_};
- }
-
-
- while (<$fh>) {
- # is this another file
- if (/require\s+\W.*\.pl/) {
- my $newfile = $&;
- $newfile =~ s/require\s+\W//;
- $newfile =~ s/\$form->{path}\///;
- &scanfile("$bindir/$newfile", 1) if $newfile !~ /_/;
- }
-
- # is this a sub ?
- if (/^sub /) {
- ($null, $subrt) = split / +/;
- $subrt{$subrt} = 1;
- next;
- }
-
- my $rc = 1;
-
- while ($rc) {
- if (/Locale/) {
- if (!/^use /) {
- my ($null, $country) = split /,/;
- $country =~ s/^ +["']//;
- $country =~ s/["'].*//;
- }
- }
-
- if (/\$locale->text.*?\W\)/) {
- my $string = $&;
- $string =~ s/\$locale->text\(\s*['"(q|qq)]['\/\\\|~]*//;
- $string =~ s/\W\)+.*$//;
-
- # if there is no $ in the string record it
- unless ($string =~ /\$\D.*/) {
- # this guarantees one instance of string
- $locale{$string} = 1;
-
- # is it a submit button before $locale->
- if (/type=submit/i) {
- $submit{$string} = 1;
- }
- }
- }
-
- # exit loop if there are no more locales on this line
- ($rc) = ($' =~ /\$locale->text/);
- # strip text
- s/^.*?\$locale->text.*?\)//;
- }
- }
-
- close($fh);
-
-}
-
-
-sub scanmenu {
- my $file = shift;
-
- my $fh = new FileHandle;
- open $fh, "$file" or die "$! : $file";
-
- my @a = grep /^\[/, <$fh>;
- close($fh);
-
- # strip []
- grep { s/(\[|\])//g } @a;
-
- foreach my $item (@a) {
- $item =~ s/ *$//;
- @b = split /--/, $item;
- foreach $string (@b) {
- chomp $string;
- if ($string !~ /^\s*$/) {
- $locale{$string} = 1;
- }
- }
- }
-
-}
-
-
+require "LedgerSMB/locales.pl"