mozilla-language.patch
author Wolfgang Rosenauer <wr@rosenauer.org>
Sun, 04 Jun 2017 09:49:48 +0200
branchfirefox53
changeset 977 224d8137f02c
parent 939 3604ed712e16
child 994 9fc447b00040
permissions -rw-r--r--
remove -fno-inline-small-functions and explicitely optimize with -O2 for openSUSE > 13.2/Leap 42 to work with gcc7 (boo#1040105)
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>
779
354c672efefa rebased patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 718
diff changeset
     3
# Parent 5a29924228527f8882c83cf62d470963ea1ce62e
939
3604ed712e16 51.0 as submitted to official openSUSE
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 932
diff changeset
     4
# Parent  4f39ed617c2f151a3a15903c7ae4471b66774e9e
161
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     5
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
     6
779
354c672efefa rebased patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 718
diff changeset
     7
diff --git a/intl/locale/nsLocaleService.cpp b/intl/locale/nsLocaleService.cpp
354c672efefa rebased patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 718
diff changeset
     8
--- a/intl/locale/nsLocaleService.cpp
354c672efefa rebased patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 718
diff changeset
     9
+++ b/intl/locale/nsLocaleService.cpp
932
a58cc7936ce7 Firefox 50.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 899
diff changeset
    10
@@ -114,16 +114,17 @@ nsLocaleService::nsLocaleService(void)
a58cc7936ce7 Firefox 50.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 899
diff changeset
    11
     NS_ENSURE_SUCCESS_VOID(rv);
a58cc7936ce7 Firefox 50.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 899
diff changeset
    12
 #endif
a58cc7936ce7 Firefox 50.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 899
diff changeset
    13
 #if defined(XP_UNIX) && !defined(XP_MACOSX)
899
44a28160de40 prepare 44.0b9
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 869
diff changeset
    14
     RefPtr<nsLocale> resultLocale(new nsLocale());
568
2c74c5927ea2 first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 294
diff changeset
    15
     NS_ENSURE_TRUE_VOID(resultLocale);
229
298263f797be update to 2.0b12/4.0b12
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 185
diff changeset
    16
 
294
5330447b83a3 update to aurora (6.99 / 20110721)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 251
diff changeset
    17
     // Get system configuration
5330447b83a3 update to aurora (6.99 / 20110721)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 251
diff changeset
    18
     const char* lang = getenv("LANG");
5330447b83a3 update to aurora (6.99 / 20110721)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 251
diff changeset
    19
+    const char* language = getenv("LANGUAGE");
229
298263f797be update to 2.0b12/4.0b12
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 185
diff changeset
    20
 
294
5330447b83a3 update to aurora (6.99 / 20110721)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 251
diff changeset
    21
     nsAutoString xpLocale, platformLocale;
5330447b83a3 update to aurora (6.99 / 20110721)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 251
diff changeset
    22
     nsAutoString category, category_platform;
5330447b83a3 update to aurora (6.99 / 20110721)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 251
diff changeset
    23
     int i;
5330447b83a3 update to aurora (6.99 / 20110721)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 251
diff changeset
    24
 
5330447b83a3 update to aurora (6.99 / 20110721)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 251
diff changeset
    25
     for( i = 0; i < LocaleListLength; i++ ) {
5330447b83a3 update to aurora (6.99 / 20110721)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 251
diff changeset
    26
         nsresult result;
932
a58cc7936ce7 Firefox 50.0
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 899
diff changeset
    27
         // setlocale( , "") evaluates LC_* and LANG
939
3604ed712e16 51.0 as submitted to official openSUSE
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 932
diff changeset
    28
@@ -149,16 +150,36 @@ nsLocaleService::nsLocaleService(void)
294
5330447b83a3 update to aurora (6.99 / 20110721)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 251
diff changeset
    29
             } else {
5330447b83a3 update to aurora (6.99 / 20110721)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 251
diff changeset
    30
                 CopyASCIItoUTF16(lang, platformLocale);
5330447b83a3 update to aurora (6.99 / 20110721)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 251
diff changeset
    31
                 result = nsPosixLocale::GetXPLocale(lang, xpLocale);
161
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    32
             }
294
5330447b83a3 update to aurora (6.99 / 20110721)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 251
diff changeset
    33
         }
5330447b83a3 update to aurora (6.99 / 20110721)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 251
diff changeset
    34
         if (NS_FAILED(result)) {
5330447b83a3 update to aurora (6.99 / 20110721)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 251
diff changeset
    35
             return;
161
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    36
         }
294
5330447b83a3 update to aurora (6.99 / 20110721)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 251
diff changeset
    37
+        // LANGUAGE is overriding LC_MESSAGES
939
3604ed712e16 51.0 as submitted to official openSUSE
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 932
diff changeset
    38
+        // it can be a colon separated list of preferred languages
3604ed712e16 51.0 as submitted to official openSUSE
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 932
diff changeset
    39
+        // as we do not recognize here if a language is available
3604ed712e16 51.0 as submitted to official openSUSE
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 932
diff changeset
    40
+        // we actually only consider the first entry unless GetXPLocale
3604ed712e16 51.0 as submitted to official openSUSE
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 932
diff changeset
    41
+        // fails completely
294
5330447b83a3 update to aurora (6.99 / 20110721)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 251
diff changeset
    42
+        if (i == LC_MESSAGES && language && *language) {
939
3604ed712e16 51.0 as submitted to official openSUSE
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 932
diff changeset
    43
+#define LANGUAGE_SEP ":"
3604ed712e16 51.0 as submitted to official openSUSE
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 932
diff changeset
    44
+          nsAutoString xpLocale_temp;
3604ed712e16 51.0 as submitted to official openSUSE
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 932
diff changeset
    45
+          char* rawBuffer = (char*) language;
3604ed712e16 51.0 as submitted to official openSUSE
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 932
diff changeset
    46
+          char* token = nsCRT::strtok(rawBuffer, LANGUAGE_SEP, &rawBuffer);
3604ed712e16 51.0 as submitted to official openSUSE
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 932
diff changeset
    47
+          for (; token;
3604ed712e16 51.0 as submitted to official openSUSE
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 932
diff changeset
    48
+              token = nsCRT::strtok(rawBuffer, LANGUAGE_SEP, &rawBuffer)) {
3604ed712e16 51.0 as submitted to official openSUSE
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 932
diff changeset
    49
+            result = nsPosixLocale::GetXPLocale(token, xpLocale_temp);
3604ed712e16 51.0 as submitted to official openSUSE
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 932
diff changeset
    50
+            if (NS_SUCCEEDED(result)) {
3604ed712e16 51.0 as submitted to official openSUSE
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 932
diff changeset
    51
+              CopyASCIItoUTF16(token, platformLocale);
3604ed712e16 51.0 as submitted to official openSUSE
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 932
diff changeset
    52
+              xpLocale = xpLocale_temp;
3604ed712e16 51.0 as submitted to official openSUSE
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 932
diff changeset
    53
+              break;
3604ed712e16 51.0 as submitted to official openSUSE
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 932
diff changeset
    54
+            }
3604ed712e16 51.0 as submitted to official openSUSE
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 932
diff changeset
    55
+          }
294
5330447b83a3 update to aurora (6.99 / 20110721)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 251
diff changeset
    56
+        }
5330447b83a3 update to aurora (6.99 / 20110721)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 251
diff changeset
    57
         resultLocale->AddCategory(category, xpLocale);
5330447b83a3 update to aurora (6.99 / 20110721)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 251
diff changeset
    58
         resultLocale->AddCategory(category_platform, platformLocale);
5330447b83a3 update to aurora (6.99 / 20110721)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 251
diff changeset
    59
     }
5330447b83a3 update to aurora (6.99 / 20110721)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 251
diff changeset
    60
     mSystemLocale = do_QueryInterface(resultLocale);
5330447b83a3 update to aurora (6.99 / 20110721)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 251
diff changeset
    61
     mApplicationLocale = do_QueryInterface(resultLocale);
161
a6dc70babb5f honour LANGUAGE environment variable (bmo#583793)
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    62
        
251
4c9ebbedd59c adopt patches to new base
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 229
diff changeset
    63
 #endif // XP_UNIX
718
6cb1ac7cd223 prepare Aurora 30
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 650
diff changeset
    64