mozilla-language.patch
author Wolfgang Rosenauer <wr@rosenauer.org>
Fri, 12 Nov 2010 09:11:22 +0100
changeset 198 447791e42c9b
parent 185 c03de6258fea
child 229 298263f797be
permissions -rw-r--r--
Package searchplugins into langpack chrome and load from there
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
161
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     1
# HG changeset patch
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     2
# User Wolfgang Rosenauer <wr@rosenauer.org>
185
c03de6258fea ignore empty LANGUAGE environment variable (bnc#648854)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 161
diff changeset
     3
# Parent 4a8194d5971401441da4f4f3bbd2730e506da4bc
161
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     4
Bug 583793 - Firefox interface language set to LANG, ignores LANGUAGE
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     5
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     6
diff --git a/intl/locale/src/nsLocaleService.cpp b/intl/locale/src/nsLocaleService.cpp
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     7
--- a/intl/locale/src/nsLocaleService.cpp
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     8
+++ b/intl/locale/src/nsLocaleService.cpp
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     9
@@ -192,22 +192,24 @@ nsLocaleService::nsLocaleService(void)
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    10
             return; 
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    11
         }
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    12
 
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    13
 #ifdef MOZ_ENABLE_MEEGOTOUCH
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    14
         // Create a snapshot of the gconf locale values into the
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    15
         // corresponding environment variables to obey system settings
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    16
         // as accurately as possible.
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    17
         CopyGConfToEnv("/meegotouch/i18n/language", "LANG");
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    18
+        CopyGConfToEnv("/meegotouch/i18n/language", "LANGUAGE");
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    19
         CopyGConfToEnv("/meegotouch/i18n/lc_collate", NSILOCALE_COLLATE);
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    20
         CopyGConfToEnv("/meegotouch/i18n/lc_monetary", NSILOCALE_MONETARY);
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    21
         CopyGConfToEnv("/meegotouch/i18n/lc_numeric", NSILOCALE_NUMERIC);
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    22
         CopyGConfToEnv("/meegotouch/i18n/lc_time", NSILOCALE_TIME);
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    23
 #endif
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    24
         // Get system configuration
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    25
+        const char* language = getenv("LANGUAGE");
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    26
         const char* lang = getenv("LANG");
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    27
         for( i = 0; i < LocaleListLength; i++ ) {
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    28
             nsresult result;
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    29
             // setlocale( , "") evaluates LC_* and LANG
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    30
             char* lc_temp = setlocale(posix_locale_category[i], "");
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    31
             CopyASCIItoUTF16(LocaleList[i], category);
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    32
             category_platform = category;
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    33
             category_platform.AppendLiteral("##PLATFORM");
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    34
@@ -222,16 +224,21 @@ nsLocaleService::nsLocaleService(void)
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    35
                 else {
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    36
                     CopyASCIItoUTF16(lang, platformLocale);
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    37
                     result = posixConverter->GetXPLocale(lang, xpLocale);
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    38
                 }
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    39
             }
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    40
             if (NS_FAILED(result)) {
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    41
                 return;
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    42
             }
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    43
+            // LANGUAGE is overriding LC_MESSAGES
185
c03de6258fea ignore empty LANGUAGE environment variable (bnc#648854)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 161
diff changeset
    44
+            if (i == LC_MESSAGES && language && *language) {
161
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    45
+                CopyASCIItoUTF16(language, platformLocale);
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    46
+                result = posixConverter->GetXPLocale(language, xpLocale);
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    47
+            }
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    48
             resultLocale->AddCategory(category, xpLocale);
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    49
             resultLocale->AddCategory(category_platform, platformLocale);
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    50
         }
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    51
         mSystemLocale = do_QueryInterface(resultLocale);
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    52
         mApplicationLocale = do_QueryInterface(resultLocale);
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    53
     }  // if ( NS_SUCCEEDED )...
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    54
        
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    55
 #endif // XP_UNIX || XP_BEOS