summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Brachold <vdr07@deltab.de>2010-05-08 16:12:55 +0000
committerAndreas Brachold <vdr07@deltab.de>2010-05-08 16:12:55 +0000
commitbfcd27e23bfb909c67b7983047637190598db7b7 (patch)
tree486b592aae82e14b00608b9814f48ec52817d75c
parent2e3fa06ba9286c4d94073e0607ff5e1d83a2c2a2 (diff)
downloadxxv-bfcd27e23bfb909c67b7983047637190598db7b7.tar.gz
xxv-bfcd27e23bfb909c67b7983047637190598db7b7.tar.bz2
update localisation detection(Bug #17082)
-rwxr-xr-xbin/xxvd10
-rw-r--r--etc/xxvd.cfg.example1
-rw-r--r--lib/Tools.pm14
-rw-r--r--lib/XXV/OUTPUT/Html.pm2
4 files changed, 16 insertions, 11 deletions
diff --git a/bin/xxvd b/bin/xxvd
index ba81a6a..ea2d3c5 100755
--- a/bin/xxvd
+++ b/bin/xxvd
@@ -42,7 +42,7 @@ $|++;
my $REV = (split(/ /, '$Revision$'))[1];
my $MODULES;
-my $VERSION = '1.6';
+my $VERSION = '1.6.1';
my $VDRVERSION = 0;
my $DBVERSION = 0;
my $CLEANUP;
@@ -479,10 +479,13 @@ sub init_locale {
# ------------------
my $paths = shift || return error('No path defined!');
+ my $lang = "C";
setlocale (LC_ALL, ''); #From environment like 'export LANG="fr_FR"';
my $current_locale = setlocale (LC_MESSAGES);
- debug sprintf('Current locale is set to %s', $current_locale);
+ $lang = (split(/\.|\@/, $current_locale))[0] if($current_locale);
+
+ debug sprintf('Current locale is set to %s (%s)', $current_locale, $lang);
my $charset;
# Check for environment with UTF-8
@@ -496,7 +499,8 @@ sub init_locale {
} else {
$charset = 'ISO-8859-1';
}
- setcharset($charset);
+
+ setcharset($charset, $lang);
# TODO set to installed folder like /usr/share/locale
# set /usr/share/locale/de/LC_MESSAGES/xxv.mo
diff --git a/etc/xxvd.cfg.example b/etc/xxvd.cfg.example
index b5a9156..967ba7f 100644
--- a/etc/xxvd.cfg.example
+++ b/etc/xxvd.cfg.example
@@ -29,7 +29,6 @@ ysize=360
[General]
DSN=DBI:mysql:database=xxv;host=localhost;port=3306
-Language=de_DE
PWD=xxv
USR=xxv
initscript=/etc/init.d/xxvd
diff --git a/lib/Tools.pm b/lib/Tools.pm
index 77aa655..5a1bcc0 100644
--- a/lib/Tools.pm
+++ b/lib/Tools.pm
@@ -27,6 +27,7 @@ our $LOGCALLB = sub{ };
our $DBH = {};
our $LOCALE;
our $CHARSET;
+our $LANGUAGE = "C";
# PAL use 25, NTFS use 30 frames per seconds
use constant FRAMESPERSECOND => 25;
@@ -325,12 +326,12 @@ sub tableUpdated {
my $dbversion = shift || return error('No version of database defined!');
my $drop = shift || 0;
- # remove old Version, if updated
- if(tableExists($dbh, $table)) {
+ # remove old Version, if updated
+ if(tableExists($dbh, $table)) {
my $tableversion = tableStatus($dbh, $table,'Comment');
if(!$tableversion || $tableversion ne $dbversion) {
if($drop) {
- lg sprintf('Remove old version from database table %s',$table);
+ lg sprintf('Remove old version from database table %s',$table);
$dbh->do(sprintf('drop table %s',$table))
or return panic sprintf("Couldn't drop table %s - %s",$table, $DBI::errstr);
} else {
@@ -345,8 +346,8 @@ or use the script contrib/update-xxv to upgrade the database!
,$tableversion ? $tableversion : 0
,$dbversion);
return 0;
- }
- }
+ }
+ }
}
return 1;
}
@@ -751,8 +752,9 @@ sub frame2hms() {
return sprintf('%d:%02d:%02d.%02d', $hour, $min, $sec, $frame);
}
-sub setcharset($) {
+sub setcharset {
$CHARSET = shift;
+ $LANGUAGE = shift;
}
################################################################################
diff --git a/lib/XXV/OUTPUT/Html.pm b/lib/XXV/OUTPUT/Html.pm
index 0d3cfeb..c6118eb 100644
--- a/lib/XXV/OUTPUT/Html.pm
+++ b/lib/XXV/OUTPUT/Html.pm
@@ -198,7 +198,7 @@ sub parseTemplateFile {
charset => $self->{charset},
skin => $self->{SkinName},
# query the current locale
- locale => main::getGeneralConfig->{Language},
+ locale => $Tools::LANGUAGE,
allow => sub{
my($cmdobj, $cmdname, $se, $err) = $u->checkCommand($self, $_[0],"1");
return $cmdobj;