Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Side by Side Diff: chrome/browser/chromeos/dom_ui/language_options_handler.cc

Issue 3579011: Chrome OS: make language per user. (Closed)
Patch Set: arraysize Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #include "chrome/browser/chromeos/dom_ui/language_options_handler.h" 5 #include "chrome/browser/chromeos/dom_ui/language_options_handler.h"
6 6
7 #include <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
11 11
12 #include "app/l10n_util.h" 12 #include "app/l10n_util.h"
13 #include "base/basictypes.h"
13 #include "base/utf_string_conversions.h" 14 #include "base/utf_string_conversions.h"
14 #include "base/values.h" 15 #include "base/values.h"
15 #include "chrome/app/chrome_command_ids.h" 16 #include "chrome/app/chrome_command_ids.h"
16 #include "chrome/browser/browser.h" 17 #include "chrome/browser/browser.h"
17 #include "chrome/browser/browser_process.h" 18 #include "chrome/browser/browser_process.h"
18 #include "chrome/browser/chromeos/cros/cros_library.h" 19 #include "chrome/browser/chromeos/cros/cros_library.h"
19 #include "chrome/browser/chromeos/cros/input_method_library.h" 20 #include "chrome/browser/chromeos/cros/input_method_library.h"
20 #include "chrome/browser/chromeos/input_method/input_method_util.h" 21 #include "chrome/browser/chromeos/input_method/input_method_util.h"
21 #include "chrome/browser/metrics/user_metrics.h" 22 #include "chrome/browser/metrics/user_metrics.h"
22 #include "chrome/browser/prefs/pref_service.h" 23 #include "chrome/browser/prefs/pref_service.h"
24 #include "chrome/browser/profile.h"
23 #include "chrome/browser/tab_contents/tab_contents.h" 25 #include "chrome/browser/tab_contents/tab_contents.h"
24 #include "chrome/common/pref_names.h" 26 #include "chrome/common/pref_names.h"
25 #include "chrome/common/spellcheck_common.h" 27 #include "chrome/common/spellcheck_common.h"
26 #include "grit/chromium_strings.h" 28 #include "grit/chromium_strings.h"
27 #include "grit/generated_resources.h" 29 #include "grit/generated_resources.h"
28 30
29 namespace chromeos { 31 namespace chromeos {
30 32
31 LanguageOptionsHandler::LanguageOptionsHandler() { 33 LanguageOptionsHandler::LanguageOptionsHandler() {
32 } 34 }
(...skipping 17 matching lines...) Expand all
50 localized_strings->SetString("please_add_another_input_method", 52 localized_strings->SetString("please_add_another_input_method",
51 l10n_util::GetStringUTF16( 53 l10n_util::GetStringUTF16(
52 IDS_OPTIONS_SETTINGS_LANGUAGES_PLEASE_ADD_ANOTHER_INPUT_METHOD)); 54 IDS_OPTIONS_SETTINGS_LANGUAGES_PLEASE_ADD_ANOTHER_INPUT_METHOD));
53 localized_strings->SetString("please_add_another_language", 55 localized_strings->SetString("please_add_another_language",
54 l10n_util::GetStringUTF16( 56 l10n_util::GetStringUTF16(
55 IDS_OPTIONS_SETTINGS_LANGUAGES_PLEASE_ADD_ANOTHER_LANGUAGE)); 57 IDS_OPTIONS_SETTINGS_LANGUAGES_PLEASE_ADD_ANOTHER_LANGUAGE));
56 localized_strings->SetString("ok_button", l10n_util::GetStringUTF16(IDS_OK)); 58 localized_strings->SetString("ok_button", l10n_util::GetStringUTF16(IDS_OK));
57 localized_strings->SetString("remove_button", 59 localized_strings->SetString("remove_button",
58 l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_LANGUAGES_REMOVE_BUTTON)); 60 l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_LANGUAGES_REMOVE_BUTTON));
59 localized_strings->SetString("sign_out_button", 61 localized_strings->SetString("sign_out_button",
60 l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_LANGUAGES_SIGN_OUT_BUTTON)) ; 62 l10n_util::GetStringUTF16(
63 IDS_OPTIONS_SETTINGS_LANGUAGES_SIGN_OUT_BUTTON));
61 localized_strings->SetString("add_language_instructions", 64 localized_strings->SetString("add_language_instructions",
62 l10n_util::GetStringUTF16( 65 l10n_util::GetStringUTF16(
63 IDS_OPTIONS_SETTINGS_LANGUAGES_ADD_LANGUAGE_INSTRUCTIONS)); 66 IDS_OPTIONS_SETTINGS_LANGUAGES_ADD_LANGUAGE_INSTRUCTIONS));
64 localized_strings->SetString("input_method_instructions", 67 localized_strings->SetString("input_method_instructions",
65 l10n_util::GetStringUTF16( 68 l10n_util::GetStringUTF16(
66 IDS_OPTIONS_SETTINGS_LANGUAGES_INPUT_METHOD_INSTRUCTIONS)); 69 IDS_OPTIONS_SETTINGS_LANGUAGES_INPUT_METHOD_INSTRUCTIONS));
67 localized_strings->SetString("switch_input_methods_hint", 70 localized_strings->SetString("switch_input_methods_hint",
68 l10n_util::GetStringFUTF16( 71 l10n_util::GetStringFUTF16(
69 IDS_OPTIONS_SETTINGS_LANGUAGES_SWITCH_INPUT_METHODS_HINT, 72 IDS_OPTIONS_SETTINGS_LANGUAGES_SWITCH_INPUT_METHODS_HINT,
70 ASCIIToUTF16("alt+shift"))); 73 ASCIIToUTF16("alt+shift")));
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 } 283 }
281 284
282 void LanguageOptionsHandler::UiLanguageChangeCallback( 285 void LanguageOptionsHandler::UiLanguageChangeCallback(
283 const ListValue* args) { 286 const ListValue* args) {
284 const std::string language_code = WideToASCII(ExtractStringValue(args)); 287 const std::string language_code = WideToASCII(ExtractStringValue(args));
285 CHECK(!language_code.empty()); 288 CHECK(!language_code.empty());
286 const std::string action = StringPrintf( 289 const std::string action = StringPrintf(
287 "LanguageOptions_UiLanguageChange_%s", language_code.c_str()); 290 "LanguageOptions_UiLanguageChange_%s", language_code.c_str());
288 UserMetrics::RecordComputedAction(action); 291 UserMetrics::RecordComputedAction(action);
289 292
290 PrefService* prefs = g_browser_process->local_state(); 293 PrefService* prefs[] = {
glotov 2010/11/11 18:16:23 Please comment why there is 2 PrefServices.
Denis Lagno 2010/11/12 11:51:35 Done.
291 prefs->SetString(prefs::kApplicationLocale, language_code); 294 g_browser_process->local_state(),
292 prefs->SavePersistentPrefs(); 295 dom_ui_->GetProfile()->GetPrefs()
296 };
297 for (size_t i = 0; i < arraysize(prefs); ++i) {
298 prefs[i]->SetString(prefs::kApplicationLocale, language_code);
299 prefs[i]->SavePersistentPrefs();
300 }
293 dom_ui_->CallJavascriptFunction( 301 dom_ui_->CallJavascriptFunction(
294 L"options.LanguageOptions.uiLanguageSaved"); 302 L"options.LanguageOptions.uiLanguageSaved");
295 } 303 }
296 304
297 void LanguageOptionsHandler::SpellCheckLanguageChangeCallback( 305 void LanguageOptionsHandler::SpellCheckLanguageChangeCallback(
298 const ListValue* args) { 306 const ListValue* args) {
299 const std::string language_code = WideToASCII(ExtractStringValue(args)); 307 const std::string language_code = WideToASCII(ExtractStringValue(args));
300 CHECK(!language_code.empty()); 308 CHECK(!language_code.empty());
301 const std::string action = StringPrintf( 309 const std::string action = StringPrintf(
302 "LanguageOptions_SpellCheckLanguageChange_%s", language_code.c_str()); 310 "LanguageOptions_SpellCheckLanguageChange_%s", language_code.c_str());
303 UserMetrics::RecordComputedAction(action); 311 UserMetrics::RecordComputedAction(action);
304 } 312 }
305 313
306 void LanguageOptionsHandler::SignOutCallback(const ListValue* args) { 314 void LanguageOptionsHandler::SignOutCallback(const ListValue* args) {
307 UserMetrics::RecordAction(UserMetricsAction("LanguageOptions_SignOut")); 315 UserMetrics::RecordAction(UserMetricsAction("LanguageOptions_SignOut"));
308 316
309 Browser* browser = Browser::GetBrowserForController( 317 Browser* browser = Browser::GetBrowserForController(
310 &dom_ui_->tab_contents()->controller(), NULL); 318 &dom_ui_->tab_contents()->controller(), NULL);
311 if (browser) 319 if (browser)
312 browser->ExecuteCommand(IDC_EXIT); 320 browser->ExecuteCommand(IDC_EXIT);
313 } 321 }
314 322
315 } // namespace chromeos 323 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698