OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 // | 4 // |
5 // This file defines a helper class for selecting a supported language from a | 5 // This file defines a helper class for selecting a supported language from a |
6 // set of candidates. | 6 // set of candidates. |
7 | 7 |
8 #include "chrome/installer/util/language_selector.h" | 8 #include "chrome/installer/util/language_selector.h" |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 30 matching lines...) Expand all Loading... |
41 #undef HANDLE_LANGUAGE | 41 #undef HANDLE_LANGUAGE |
42 #else // defined(GOOGLE_CHROME_BUILD) | 42 #else // defined(GOOGLE_CHROME_BUILD) |
43 { &kFallbackLanguage[0], kFallbackLanguageOffset } | 43 { &kFallbackLanguage[0], kFallbackLanguageOffset } |
44 #endif // !defined(GOOGLE_CHROME_BUILD) | 44 #endif // !defined(GOOGLE_CHROME_BUILD) |
45 }; | 45 }; |
46 | 46 |
47 // A sorted array of language identifiers that are aliases to other languages | 47 // A sorted array of language identifiers that are aliases to other languages |
48 // for which translations are available. | 48 // for which translations are available. |
49 const LangToOffset kLanguageToOffsetExceptions[] = { | 49 const LangToOffset kLanguageToOffsetExceptions[] = { |
50 #if defined(GOOGLE_CHROME_BUILD) | 50 #if defined(GOOGLE_CHROME_BUILD) |
| 51 // Alias some English variants to British English (all others wildcard to US). |
| 52 { L"en-au", IDS_L10N_OFFSET_EN_GB }, |
| 53 { L"en-ca", IDS_L10N_OFFSET_EN_GB }, |
| 54 { L"en-nz", IDS_L10N_OFFSET_EN_GB }, |
| 55 { L"en-za", IDS_L10N_OFFSET_EN_GB }, |
| 56 // Alias es-es to es (all others wildcard to es-419). |
| 57 { L"es-es", IDS_L10N_OFFSET_ES }, |
51 // Google web properties use iw for he. Handle both just to be safe. | 58 // Google web properties use iw for he. Handle both just to be safe. |
52 { L"he", IDS_L10N_OFFSET_IW }, | 59 { L"he", IDS_L10N_OFFSET_IW }, |
53 // Google web properties use no for nb. Handle both just to be safe. | 60 // Google web properties use no for nb. Handle both just to be safe. |
54 { L"nb", IDS_L10N_OFFSET_NO }, | 61 { L"nb", IDS_L10N_OFFSET_NO }, |
55 // Some Google web properties use tl for fil. Handle both just to be safe. | 62 // Some Google web properties use tl for fil. Handle both just to be safe. |
56 // They're not completely identical, but alias it here. | 63 // They're not completely identical, but alias it here. |
57 { L"tl", IDS_L10N_OFFSET_FIL }, | 64 { L"tl", IDS_L10N_OFFSET_FIL }, |
58 // Pre-Vista aliases for Chinese w/ script subtag. | 65 // Pre-Vista aliases for Chinese w/ script subtag. |
59 { L"zh-chs", IDS_L10N_OFFSET_ZH_CN }, | 66 { L"zh-chs", IDS_L10N_OFFSET_ZH_CN }, |
60 { L"zh-cht", IDS_L10N_OFFSET_ZH_TW }, | 67 { L"zh-cht", IDS_L10N_OFFSET_ZH_TW }, |
61 // Vista+ aliases for Chinese w/ script subtag. | 68 // Vista+ aliases for Chinese w/ script subtag. |
62 { L"zh-hans", IDS_L10N_OFFSET_ZH_CN }, | 69 { L"zh-hans", IDS_L10N_OFFSET_ZH_CN }, |
63 { L"zh-hant", IDS_L10N_OFFSET_ZH_TW }, | 70 { L"zh-hant", IDS_L10N_OFFSET_ZH_TW }, |
64 // Alias Macau and Hong Kong to Taiwan. | 71 // Alias Hong Kong and Macau to Taiwan. |
65 { L"zh-hk", IDS_L10N_OFFSET_ZH_TW }, | 72 { L"zh-hk", IDS_L10N_OFFSET_ZH_TW }, |
66 { L"zh-mk", IDS_L10N_OFFSET_ZH_TW }, | |
67 // Windows uses "mo" for Macau. | |
68 { L"zh-mo", IDS_L10N_OFFSET_ZH_TW }, | 73 { L"zh-mo", IDS_L10N_OFFSET_ZH_TW }, |
69 // Although the wildcard entry for zh would result in this, alias zh-sg so | 74 // Although the wildcard entry for zh would result in this, alias zh-sg so |
70 // that it will win if it precedes another valid tag in a list of candidates. | 75 // that it will win if it precedes another valid tag in a list of candidates. |
71 { L"zh-sg", IDS_L10N_OFFSET_ZH_CN } | 76 { L"zh-sg", IDS_L10N_OFFSET_ZH_CN } |
72 #else // defined(GOOGLE_CHROME_BUILD) | 77 #else // defined(GOOGLE_CHROME_BUILD) |
73 // An empty array is no good, so repeat the fallback. | 78 // An empty array is no good, so repeat the fallback. |
74 { &kFallbackLanguage[0], kFallbackLanguageOffset } | 79 { &kFallbackLanguage[0], kFallbackLanguageOffset } |
75 #endif // !defined(GOOGLE_CHROME_BUILD) | 80 #endif // !defined(GOOGLE_CHROME_BUILD) |
76 }; | 81 }; |
77 | 82 |
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 VLOG(1) << "No suitable language found for any candidates."; | 297 VLOG(1) << "No suitable language found for any candidates."; |
293 | 298 |
294 // Our fallback is "en-us" | 299 // Our fallback is "en-us" |
295 matched_candidate_.assign(&kFallbackLanguage[0], | 300 matched_candidate_.assign(&kFallbackLanguage[0], |
296 arraysize(kFallbackLanguage) - 1); | 301 arraysize(kFallbackLanguage) - 1); |
297 offset_ = kFallbackLanguageOffset; | 302 offset_ = kFallbackLanguageOffset; |
298 } | 303 } |
299 } | 304 } |
300 | 305 |
301 } // namespace installer | 306 } // namespace installer |
OLD | NEW |