[Slim-Checkins] r11738 - in /trunk/server/Slim/Utils: DateTime.pm Strings.pm

mherger at svn.slimdevices.com mherger at svn.slimdevices.com
Tue Apr 10 12:36:19 PDT 2007


Author: mherger
Date: Tue Apr 10 12:36:19 2007
New Revision: 11738

URL: http://svn.slimdevices.com?rev=11738&view=rev
Log:
Bug: 2726, 4678
Description: call setlocale(LC_TIME...) only once when we set/change the language

Modified:
    trunk/server/Slim/Utils/DateTime.pm
    trunk/server/Slim/Utils/Strings.pm

Modified: trunk/server/Slim/Utils/DateTime.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Utils/DateTime.pm?rev=11738&r1=11737&r2=11738&view=diff
==============================================================================
--- trunk/server/Slim/Utils/DateTime.pm (original)
+++ trunk/server/Slim/Utils/DateTime.pm Tue Apr 10 12:36:19 2007
@@ -8,7 +8,7 @@
 use strict;
 
 use Date::Parse;
-use POSIX qw(strftime setlocale LC_TIME);
+use POSIX qw(strftime);
 
 use Slim::Utils::Prefs;
 use Slim::Utils::Unicode;
@@ -35,6 +35,8 @@
 # remove the leading zeros for single digit dates and hours
 # where a | is specified in the format
 
+# The LC_TIME is set in ::Strings when we select a language.
+
 =head2 longDateF( $time, $format )
 
 Returns a string of the time passed (or current time if none passed),
@@ -48,14 +50,8 @@
 	my $time = shift || time();
 	my $format = shift || Slim::Utils::Prefs::get('longdateFormat');
 
-	# change LC_TIME temporarily to the user's language
-	my $locale = setlocale(LC_TIME);
-	setlocale( LC_TIME, Slim::Utils::Strings::string('LOCALE' . (Slim::Utils::OSDetect::OS() eq 'win' ? '_WIN' : '')) );
-
 	my $date = strftime($format, localtime($time));
 	   $date =~ s/\|0*//;
-
-	setlocale(LC_TIME, $locale);
 
 	return Slim::Utils::Unicode::utf8decode_locale($date);
 }

Modified: trunk/server/Slim/Utils/Strings.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Utils/Strings.pm?rev=11738&r1=11737&r2=11738&view=diff
==============================================================================
--- trunk/server/Slim/Utils/Strings.pm (original)
+++ trunk/server/Slim/Utils/Strings.pm Tue Apr 10 12:36:19 2007
@@ -40,6 +40,7 @@
 
 our @EXPORT_OK = qw(string);
 
+use POSIX qw(setlocale LC_TIME);
 use File::Spec::Functions qw(:ALL);
 use Storable;
 
@@ -64,6 +65,7 @@
 sub init {
 	$currentLang = getLanguage();
 	loadStrings();
+	setLocale();
 
 	if ($::checkstrings) {
 		checkChangedStrings();
@@ -412,6 +414,7 @@
 		$currentLang = $lang;
 
 		loadStrings({'ignoreCache' => 1});
+		setLocale();
 
 		for my $client ( Slim::Player::Client::clients() ) {
 			$client->display->displayStrings(clientStrings($client));
@@ -472,4 +475,9 @@
 	Slim::Utils::Timers::setTimer(undef, time + 1, \&checkChangedStrings);
 }
 
+sub setLocale {
+	setlocale( LC_TIME, string('LOCALE' . (Slim::Utils::OSDetect::OS() eq 'win' ? '_WIN' : '') ) );
+}
+
+
 1;



More information about the checkins mailing list