1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/ui/webui/options/chromeos/language_pinyin_handler.h"
6
7#include "base/values.h"
8#include "chrome/browser/chromeos/language_preferences.h"
9#include "chrome/browser/ui/webui/options/chromeos/language_options_util.h"
10#include "grit/generated_resources.h"
11#include "ui/base/l10n/l10n_util.h"
12
13namespace {
14const char kI18nPrefix[] = "Pinyin";
15}  // namespace
16
17namespace chromeos {
18
19LanguagePinyinHandler::LanguagePinyinHandler() {
20}
21
22LanguagePinyinHandler::~LanguagePinyinHandler() {
23}
24
25void LanguagePinyinHandler::GetLocalizedValues(
26    DictionaryValue* localized_strings) {
27  DCHECK(localized_strings);
28
29  RegisterTitle(localized_strings, "languagePinyinPage",
30                IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTINGS_TITLE);
31
32  for (size_t i = 0; i < language_prefs::kNumPinyinBooleanPrefs; ++i) {
33    localized_strings->SetString(
34        GetI18nContentValue(language_prefs::kPinyinBooleanPrefs[i],
35                            kI18nPrefix),
36        l10n_util::GetStringUTF16(
37            language_prefs::kPinyinBooleanPrefs[i].message_id));
38  }
39
40  localized_strings->SetString(
41      GetI18nContentValue(language_prefs::kPinyinDoublePinyinSchema,
42                          kI18nPrefix),
43      l10n_util::GetStringUTF16(
44          language_prefs::kPinyinDoublePinyinSchema.label_message_id));
45  ListValue* list_value = new ListValue();
46  for (size_t i = 0;
47       i < language_prefs::LanguageMultipleChoicePreference<int>::kMaxItems;
48       ++i) {
49    if (language_prefs::kPinyinDoublePinyinSchema.values_and_ids[i].
50        item_message_id == 0)
51      break;
52    ListValue* option = new ListValue();
53    option->Append(Value::CreateIntegerValue(
54        language_prefs::kPinyinDoublePinyinSchema.values_and_ids[i].
55        ibus_config_value));
56    option->Append(Value::CreateStringValue(l10n_util::GetStringUTF16(
57        language_prefs::kPinyinDoublePinyinSchema.values_and_ids[i].
58        item_message_id)));
59    list_value->Append(option);
60  }
61  localized_strings->Set(
62      GetTemplateDataPropertyName(language_prefs::kPinyinDoublePinyinSchema,
63                                  kI18nPrefix),
64      list_value);
65}
66
67}  // namespace chromeos
68