adium-1.4 2750:ef079c389c19: Set LC_ALL to the locale libpurple ...
commits at adium.im
commits at adium.im
Sat Nov 7 19:48:45 UTC 2009
details: http://hg.adium.im/adium-1.4/rev/ef079c389c19
revision: 2750:ef079c389c19
author: Zachary West <zacw at adium.im>
date: Sat Nov 07 14:48:41 2009 -0500
Set LC_ALL to the locale libpurple uses for pt/pt_PT, which are not the same as they are treated on OS X. Refs #13377.
diffs (34 lines):
diff -r f1bdb2161e92 -r ef079c389c19 Plugins/Purple Service/adiumPurpleCore.m
--- a/Plugins/Purple Service/adiumPurpleCore.m Sat Nov 07 14:43:56 2009 -0500
+++ b/Plugins/Purple Service/adiumPurpleCore.m Sat Nov 07 14:48:41 2009 -0500
@@ -159,13 +159,25 @@
bind_textdomain_codeset("pidgin", "UTF-8");
textdomain("pidgin");
- const char *preferredLocale = [[[[NSBundle bundleForClass:[SLPurpleCocoaAdapter class]] preferredLocalizations] objectAtIndex:0] UTF8String];
+ NSString *preferredLocale = [[[NSBundle bundleForClass:[SLPurpleCocoaAdapter class]] preferredLocalizations] objectAtIndex:0];
+
+ // OS X-ism.. "pt" is Brazilian Portuguese, "pt_PT" is Portugal Portuguese.
+ // However, libpurple delivers us localizations in the form of pt for pt_PT and pt_BR for pt.
+ if ([preferredLocale isEqualToString:@"pt"]) {
+ preferredLocale = @"pt_BR";
+ } else if ([preferredLocale isEqualToString:@"pt_PT"]) {
+ preferredLocale = @"pt";
+ }
+
+ AILog(@"Setting %@ as LC_ALL", preferredLocale);
+
+ const char *preferredLocaleString = [preferredLocale UTF8String];
//We should be able to just do setlocale()... but it always returns NULL, which indicates failure
- /* setlocale(LC_MESSAGES, preferredLocale); */
-
+ /* setlocale(LC_MESSAGES, preferredLocaleString); */
+
//So we'll set the environment variable for this process, which does work
- setenv("LC_ALL", preferredLocale, /* overwrite? */ 1);
- setenv("LC_MESSAGES", preferredLocale, /* overwrite? */ 1);
+ setenv("LC_ALL", preferredLocaleString, /* overwrite? */ 1);
+ setenv("LC_MESSAGES", preferredLocaleString, /* overwrite? */ 1);
//Initialize all external plugins.
init_all_plugins();
More information about the commits
mailing list