Commit 45132c56 authored by grt@chromium.org's avatar grt@chromium.org

Add some language aliases to track changes to base/ui/l10n_util.cc.

Alias Australian, Canadian, New Zealand and South African English to British English, and explicitly alias "es-es" to "es" so it doesn't become "es-419" by way of the wildcard match.

BUG=none
TEST=covered by installer_util_unittests.exe --gtest_filter=*LanguageSelectorAliasTest*


Review URL: http://codereview.chromium.org/8488006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112471 0039d316-1c4b-4281-b951-d872f2087c98
parent 6cef305b
// Copyright (c) 2010 The Chromium Authors. All rights reserved.
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
......@@ -48,6 +48,13 @@ const LangToOffset kLanguageOffsetPairs[] = {
// for which translations are available.
const LangToOffset kLanguageToOffsetExceptions[] = {
#if defined(GOOGLE_CHROME_BUILD)
// Alias some English variants to British English (all others wildcard to US).
{ L"en-au", IDS_L10N_OFFSET_EN_GB },
{ L"en-ca", IDS_L10N_OFFSET_EN_GB },
{ L"en-nz", IDS_L10N_OFFSET_EN_GB },
{ L"en-za", IDS_L10N_OFFSET_EN_GB },
// Alias es-es to es (all others wildcard to es-419).
{ L"es-es", IDS_L10N_OFFSET_ES },
// Google web properties use iw for he. Handle both just to be safe.
{ L"he", IDS_L10N_OFFSET_IW },
// Google web properties use no for nb. Handle both just to be safe.
......@@ -61,10 +68,8 @@ const LangToOffset kLanguageToOffsetExceptions[] = {
// Vista+ aliases for Chinese w/ script subtag.
{ L"zh-hans", IDS_L10N_OFFSET_ZH_CN },
{ L"zh-hant", IDS_L10N_OFFSET_ZH_TW },
// Alias Macau and Hong Kong to Taiwan.
// Alias Hong Kong and Macau to Taiwan.
{ L"zh-hk", IDS_L10N_OFFSET_ZH_TW },
{ L"zh-mk", IDS_L10N_OFFSET_ZH_TW },
// Windows uses "mo" for Macau.
{ L"zh-mo", IDS_L10N_OFFSET_ZH_TW },
// Although the wildcard entry for zh would result in this, alias zh-sg so
// that it will win if it precedes another valid tag in a list of candidates.
......
// Copyright (c) 2010 The Chromium Authors. All rights reserved.
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
......@@ -26,7 +26,7 @@ const wchar_t* const kExactMatchCandidates[] = {
const wchar_t* const kAliasMatchCandidates[] = {
#if defined(GOOGLE_CHROME_BUILD)
L"he", L"nb", L"tl", L"zh-chs", L"zh-cht", L"zh-hans", L"zh-hant", L"zh-hk",
L"zh-mk", L"zh-mo"
L"zh-mo"
#else
// There is only en-us.
L"en-us"
......@@ -126,3 +126,64 @@ INSTANTIATE_TEST_CASE_P(
::testing::ValuesIn(
&kWildcardMatchCandidates[0],
&kWildcardMatchCandidates[arraysize(kWildcardMatchCandidates)]));
#if defined(GOOGLE_CHROME_BUILD)
// A fixture for testing aliases that match to an expected translation. The
// first member of the tuple is the expected translation, the second is a
// candidate that should be aliased to the expectation.
class LanguageSelectorAliasTest
: public ::testing::TestWithParam< std::tr1::tuple<const wchar_t*,
const wchar_t*> > {
};
// Test that the candidate language maps to the aliased translation.
TEST_P(LanguageSelectorAliasTest, AliasesMatch) {
installer::LanguageSelector instance(
std::vector<std::wstring>(1, std::tr1::get<1>(GetParam())));
EXPECT_EQ(std::tr1::get<0>(GetParam()), instance.selected_translation());
}
INSTANTIATE_TEST_CASE_P(
EnGbAliases,
LanguageSelectorAliasTest,
::testing::Combine(
::testing::Values(L"en-gb"),
::testing::Values(L"en-au", L"en-ca", L"en-nz", L"en-za")));
INSTANTIATE_TEST_CASE_P(
IwAliases,
LanguageSelectorAliasTest,
::testing::Combine(
::testing::Values(L"iw"),
::testing::Values(L"he")));
INSTANTIATE_TEST_CASE_P(
NoAliases,
LanguageSelectorAliasTest,
::testing::Combine(
::testing::Values(L"no"),
::testing::Values(L"nb")));
INSTANTIATE_TEST_CASE_P(
FilAliases,
LanguageSelectorAliasTest,
::testing::Combine(
::testing::Values(L"fil"),
::testing::Values(L"tl")));
INSTANTIATE_TEST_CASE_P(
ZhCnAliases,
LanguageSelectorAliasTest,
::testing::Combine(
::testing::Values(L"zh-cn"),
::testing::Values(L"zh-chs", L"zh-hans", L"zh-sg")));
INSTANTIATE_TEST_CASE_P(
ZhTwAliases,
LanguageSelectorAliasTest,
::testing::Combine(
::testing::Values(L"zh-tw"),
::testing::Values(L"zh-cht", L"zh-hant", L"zh-hk", L"zh-mo")));
#endif // GOOGLE_CHROME_BUILD
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment