# The file content has to start with (of course without the leading #):
# --------- CODE ---------
#%tr = (%tr,
-# 'key1' => 'value', # add all your entries key/values here
+# 'key1' => 'value', # add all your entries key/values here
# 'key2' => 'value' # and end with (of course without the leading #):
#);
# --------- CODE END---------
%Lang::tr = (); # start with a clean array
- # Use CacheLang if present & not empty.
- if (-s "$Lang::CacheLang.$LG" ) {
- ##fix: need to put a lock_shared on it in case rebuild is active ?
- do "$Lang::CacheLang.$LG";
- #&General::log ("cachelang file used [$LG]");
- return;
- }
-
- #&General::log("Building on the fly cachelang file for [$LG]");
- do "${General::swroot}/langs/en.pl";
- do "${General::swroot}/langs/$LG.pl" if ($LG ne 'en');
+ # Use CacheLang if present & not empty.
+ if (-s "$Lang::CacheLang.$LG" ) {
+ do "$Lang::CacheLang.$LG";
+ return;
+ }
- my $AddonDir = ${General::swroot}.'/addon-lang';
+ do "${General::swroot}/langs/en.pl";
+ do "${General::swroot}/langs/$LG.pl" if ($LG ne 'en');
- opendir (DIR, $AddonDir);
- my @files = readdir (DIR);
- closedir (DIR);
+ my $AddonDir = ${General::swroot}.'/addon-lang';
+
+ opendir (DIR, $AddonDir);
+ my @files = readdir (DIR);
+ closedir (DIR);
# default is to load english first
- foreach my $file ( grep (/.*\.en.pl$/,@files)) {
- do "$AddonDir/$file";
- }
+ foreach my $file ( grep (/.*\.en.pl$/,@files)) {
+ do "$AddonDir/$file";
+ }
- # read again, overwriting 'en' with choosed lang
- if ($LG ne 'en') {
- foreach my $file (grep (/.*\.$LG\.pl$/,@files) ) {
- do "$AddonDir/$file";
+ # read again, overwriting 'en' with choosed lang
+ if ($LG ne 'en') {
+ foreach my $file (grep (/.*\.$LG\.pl$/,@files)) {
+ do "$AddonDir/$file";
+ }
}
- }
}
#
sub BuildUniqueCacheLang {
my ($LG) = @_;
-
+
# Make CacheLang empty so that it won't be used by Lang::reload
open (FILE, ">$Lang::CacheLang.$LG") or return 1;
flock (FILE, 2) or return 1;
# Load languages files
&Lang::reload ($LG);
-
+
# Write the unique %tr=('key'=>'value') array
open (FILE, ">$Lang::CacheLang.$LG") or return 1;
flock (FILE, 2) or return 1;
}
print FILE ');';
close (FILE);
-
+
# Make nobody:nobody file's owner
# Will work when called by root/rc.sysinit
chown (0,0,"$Lang::CacheLang.$LG");
sub BuildCacheLang {
my $AddonDir = ${General::swroot}.'/addon-lang';
-
+
# Correct permission in case addon-installer did not do it
opendir (DIR, $AddonDir);
my @files = readdir (DIR);
my $selected = '';;
my $missed = '';
my $error = 0;
-
+
open (LANGS, "${General::swroot}/langs/list");
while (<LANGS>) {
($selected) = split (':');
if ($missed) { # collision with current cache lang being used ?
$error = &BuildUniqueCacheLang ($missed);
}
-
+
&General::log ("WARNING: cannot build cachelang file for [$missed].") if ($error);
return $error;
}