blob: 5e692c8042acd323499fed05a55237c1a1c74fe2 [file] [log] [blame]
// Copyright (c) 2012 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.
#include "base/basictypes.h"
#include "base/prefs/pref_registry_simple.h"
#include "chrome/browser/chromeos/language_preferences.h"
#include "chrome/common/pref_names.h"
#include "components/user_prefs/pref_registry_syncable.h"
#include "grit/generated_resources.h"
namespace chromeos {
namespace language_prefs {
// ---------------------------------------------------------------------------
// For ibus-daemon
// ---------------------------------------------------------------------------
const char kGeneralSectionName[] = "general";
const char kPreloadEnginesConfigName[] = "preload_engines";
// ---------------------------------------------------------------------------
// For Traditional Chinese input method (ibus-mozc-chewing)
// ---------------------------------------------------------------------------
const char kChewingSectionName[] = "engine/Chewing";
// We have to sync the |ibus_config_name|s with those in
// ibus-chewing/files/src/Config.cc.
const LanguageBooleanPrefs kChewingBooleanPrefs[] = {
{ prefs::kLanguageChewingAutoShiftCur, false, "autoShiftCur",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_AUTO_SHIFT_CUR,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguageChewingAddPhraseDirection, false, "addPhraseDirection",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_ADD_PHRASE_DIRECTION,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
/* Temporarily disabled. (crosbug.com/14185)
{ prefs::kLanguageChewingEasySymbolInput, true, "easySymbolInput",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_EASY_SYMBOL_INPUT,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
*/
{ prefs::kLanguageChewingEscCleanAllBuf, false, "escCleanAllBuf",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_ESC_CLEAN_ALL_BUF,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguageChewingForceLowercaseEnglish, false,
"forceLowercaseEnglish",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_FORCE_LOWER_CASE_ENGLISH,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
/* Temporarily disabled. (crosbug.com/14185)
{ prefs::kLanguageChewingPlainZhuyin, false, "plainZhuyin",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_PLAIN_ZHUYIN,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
*/
{ prefs::kLanguageChewingPhraseChoiceRearward, true, "phraseChoiceRearward",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_PHRASE_CHOICE_REARWARD,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguageChewingSpaceAsSelection, true, "spaceAsSelection",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_SPACE_AS_SELECTION,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
};
COMPILE_ASSERT(kNumChewingBooleanPrefs == arraysize(kChewingBooleanPrefs),
TheSizeShouldMatch);
const LanguageIntegerRangePreference kChewingIntegerPrefs[] = {
{ prefs::kLanguageChewingMaxChiSymbolLen, 20, 8, 40, "maxChiSymbolLen",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_MAX_CHI_SYMBOL_LEN,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF
},
{ prefs::kLanguageChewingCandPerPage, 10, 8, 10, "candPerPage",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_CAND_PER_PAGE,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF
},
};
COMPILE_ASSERT(kNumChewingIntegerPrefs == arraysize(kChewingIntegerPrefs),
TheSizeShouldMatch);
const LanguageMultipleChoicePreference<const char*>
kChewingMultipleChoicePrefs[] = {
{ prefs::kLanguageChewingKeyboardType,
"default",
"KBType",
{{ "default",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_DEFAULT },
{ "hsu", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_HSU },
{ "ibm", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_IBM },
{ "gin_yieh",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_GIN_YIEH },
{ "eten", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_ETEN },
{ "eten26", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_ETEN26 },
{ "dvorak", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_DVORAK },
{ "dvorak_hsu",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_DVORAK_HSU },
{ "dachen_26",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_DACHEN_26 },
{ "hanyu", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_HANYU }},
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
},
{ prefs::kLanguageChewingSelKeys,
"1234567890",
"selKeys",
{{ "1234567890",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_1234567890 },
{ "asdfghjkl;",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_ASDFGHJKLS },
{ "asdfzxcv89",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_ASDFZXCV89 },
{ "asdfjkl789",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_ASDFJKL789 },
{ "aoeu;qjkix",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_AOEUSQJKIX },
{ "aoeuhtnsid",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_AOEUHTNSID },
{ "aoeuidhtns",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_AOEUIDHTNS },
{ "1234qweras",
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_1234QWERAS }},
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
},
};
COMPILE_ASSERT(kNumChewingMultipleChoicePrefs ==
arraysize(kChewingMultipleChoicePrefs),
TheSizeShouldMatch);
const LanguageMultipleChoicePreference<int> kChewingHsuSelKeyType = {
prefs::kLanguageChewingHsuSelKeyType,
1,
"hsuSelKeyType",
{{ 1, IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_HSU_SEL_KEY_TYPE_1 },
{ 2, IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_HSU_SEL_KEY_TYPE_2 }},
IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_HSU_SEL_KEY_TYPE,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
};
// ---------------------------------------------------------------------------
// For Korean input method (ibus-mozc-hangul)
// ---------------------------------------------------------------------------
const char kHangulSectionName[] = "engine/Hangul";
const char kHangulKeyboardConfigName[] = "HangulKeyboard";
const char kHangulHanjaBindingKeysConfigName[] = "HanjaKeyBindings";
// Mozc-hangul treats Hangul_Hanja key as hanja key event even if it is not set.
// We add Control+9 since F9 key is reserved by the window manager.
// TODO(nona): Hanja keys are not configurable yet (and we're not sure if it
// should.)
const char kHangulHanjaBindingKeys[] = "F9,Ctrl 9";
const HangulKeyboardNameIDPair kHangulKeyboardNameIDPairs[] = {
// We have to sync the |keyboard_id|s with those in libhangul.
{ IDS_OPTIONS_SETTINGS_LANGUAGES_HANGUL_SETTINGS_KEYBOARD_2_SET, "2" },
{ IDS_OPTIONS_SETTINGS_LANGUAGES_HANGUL_SETTINGS_KEYBOARD_3_SET_FINAL,
"3f" },
{ IDS_OPTIONS_SETTINGS_LANGUAGES_HANGUL_SETTINGS_KEYBOARD_3_SET_390, "39" },
{ IDS_OPTIONS_SETTINGS_LANGUAGES_HANGUL_SETTINGS_KEYBOARD_3_SET_NO_SHIFT,
"3s" },
{ IDS_OPTIONS_SETTINGS_LANGUAGES_HANGUL_SETTINGS_KEYBOARD_ROMAJA, "ro" },
// We don't support "Sebeolsik 2 set" keyboard.
};
COMPILE_ASSERT(kNumHangulKeyboardNameIDPairs ==
arraysize(kHangulKeyboardNameIDPairs),
TheSizeShouldMatch);
// ---------------------------------------------------------------------------
// For Simplified Chinese input method (ibus-mozc-pinyin)
// ---------------------------------------------------------------------------
const char kPinyinSectionName[] = "engine/Pinyin";
// We have to sync the |ibus_config_name|s with those in
// ibus-mozc-pinyin/files/languages/pinyin/unix/ibus/config_updater.cc.
const LanguageBooleanPrefs kPinyinBooleanPrefs[] = {
{ prefs::kLanguagePinyinCorrectPinyin, true, "CorrectPinyin",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_CORRECT_PINYIN,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguagePinyinFuzzyPinyin, false, "FuzzyPinyin",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_FUZZY_PINYIN,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguagePinyinShiftSelectCandidate, false, "ShiftSelectCandidate",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_SHIFT_SELECT_PINYIN,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguagePinyinMinusEqualPage, true, "MinusEqualPage",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_MINUS_EQUAL_PAGE,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguagePinyinCommaPeriodPage, true, "CommaPeriodPage",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_COMMA_PERIOD_PAGE,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguagePinyinAutoCommit, false, "AutoCommit",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_AUTO_COMMIT,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguagePinyinDoublePinyin, false, "DoublePinyin",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_DOUBLE_PINYIN,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguagePinyinInitChinese, true, "InitChinese",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_CHINESE,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguagePinyinInitFull, false, "InitFull",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_FULL,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguagePinyinInitFullPunct, true, "InitFullPunct",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_FULL_PUNCT,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguagePinyinInitSimplifiedChinese, true, "InitSimplifiedChinese",
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_SIMPLIFIED_CHINESE,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
// TODO(yusukes): Support PINYIN_{INCOMPLETE,CORRECT,FUZZY}_... prefs (32
// additional boolean prefs.)
};
COMPILE_ASSERT(kNumPinyinBooleanPrefs == arraysize(kPinyinBooleanPrefs),
TheSizeShouldMatch);
// TODO(yusukes): Support HalfWidthPuncts and IncompletePinyin prefs if needed.
const LanguageMultipleChoicePreference<int> kPinyinDoublePinyinSchema = {
prefs::kLanguagePinyinDoublePinyinSchema,
0,
"DoublePinyinSchema",
{{ 0, IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA_MSPY},
{ 1, IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA_ZRM},
{ 2, IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA_ABC},
{ 3, IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA_ZGPY},
{ 4, IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA_PYJJ}},
IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
};
const PinyinIntegerPref kPinyinIntegerPrefs[] = {
// TODO(yusukes): the type of lookup_table_page_size on ibus should be uint.
{ prefs::kLanguagePinyinLookupTablePageSize,
5,
"LookupTablePageSize",
// don't sync as it's not user configurable.
user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF }
};
COMPILE_ASSERT(kNumPinyinIntegerPrefs == arraysize(kPinyinIntegerPrefs),
TheSizeShouldMatch);
// ---------------------------------------------------------------------------
// For Japanese input method (ibus-mozc)
// ---------------------------------------------------------------------------
const char kMozcSectionName[] = "engine/Mozc";
const LanguageBooleanPrefs kMozcBooleanPrefs[] = {
{ prefs::kLanguageMozcIncognitoMode,
false,
"incognito_mode",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_INCOGNITO_MODE,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguageMozcUseAutoImeTurnOff,
true,
"use_auto_ime_turn_off",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_USE_AUTO_IME_TURN_OFF,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguageMozcUseHistorySuggest,
true,
"use_history_suggest",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_USE_HISTORY_SUGGEST,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
{ prefs::kLanguageMozcUseDictionarySuggest,
true,
"use_dictionary_suggest",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_USE_DICTIONARY_SUGGEST,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF },
};
COMPILE_ASSERT(kNumMozcBooleanPrefs == arraysize(kMozcBooleanPrefs),
TheSizeShouldMatch);
extern const LanguageMultipleChoicePreference<const char*>
kMozcMultipleChoicePrefs[] = {
{ prefs::kLanguageMozcPreeditMethod,
"ROMAN",
"preedit_method",
{{ "ROMAN", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PREEDIT_METHOD_ROMAN },
{ "KANA", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PREEDIT_METHOD_KANA }},
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PREEDIT_METHOD,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
},
{ prefs::kLanguageMozcSessionKeymap,
"MSIME",
"session_keymap",
{{ "ATOK", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SESSION_KEYMAP_ATOK },
{ "MSIME", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SESSION_KEYMAP_MSIME },
{ "KOTOERI", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SESSION_KEYMAP_KOTOERI }},
// TODO: Support "CUSTOM" keymap.
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SESSION_KEYMAP,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
},
{ prefs::kLanguageMozcPunctuationMethod,
"KUTEN_TOUTEN",
"punctuation_method",
{{ "KUTEN_TOUTEN",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PUNCTUATION_METHOD_KUTEN_TOUTEN },
{ "COMMA_PERIOD",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PUNCTUATION_METHOD_COMMA_PERIOD },
{ "KUTEN_PERIOD",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PUNCTUATION_METHOD_KUTEN_PERIOD },
{ "COMMA_TOUTEN",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PUNCTUATION_METHOD_COMMA_TOUTEN }},
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PUNCTUATION_METHOD,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
},
{ prefs::kLanguageMozcSymbolMethod,
"CORNER_BRACKET_MIDDLE_DOT",
"symbol_method",
{{ "CORNER_BRACKET_MIDDLE_DOT",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SYMBOL_METHOD_CORNER_BRACKET_MIDDLE_DOT },
{ "SQUARE_BRACKET_SLASH",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SYMBOL_METHOD_SQUARE_BRACKET_SLASH },
{ "CORNER_BRACKET_SLASH",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SYMBOL_METHOD_CORNER_BRACKET_SLASH },
{ "SQUARE_BRACKET_MIDDLE_DOT",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SYMBOL_METHOD_SQUARE_BRACKET_MIDDLE_DOT }},
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SYMBOL_METHOD,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
},
{ prefs::kLanguageMozcSpaceCharacterForm,
"FUNDAMENTAL_INPUT_MODE",
"space_character_form",
{{ "FUNDAMENTAL_INPUT_MODE",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SPACE_CHARACTER_FORM_FUNDAMENTAL_INPUT_MODE },
{ "FUNDAMENTAL_FULL_WIDTH",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SPACE_CHARACTER_FORM_FUNDAMENTAL_FULL_WIDTH },
{ "FUNDAMENTAL_HALF_WIDTH",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SPACE_CHARACTER_FORM_FUNDAMENTAL_HALF_WIDTH }},
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SPACE_CHARACTER_FORM,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
},
{ prefs::kLanguageMozcHistoryLearningLevel,
"DEFAULT_HISTORY",
"history_learning_level",
{{ "DEFAULT_HISTORY",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_HISTORY_LEARNING_LEVEL_DEFAULT_HISTORY },
{ "READ_ONLY",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_HISTORY_LEARNING_LEVEL_READ_ONLY },
{ "NO_HISTORY",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_HISTORY_LEARNING_LEVEL_NO_HISTORY }},
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_HISTORY_LEARNING_LEVEL,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
},
// TODO(mazda): Uncomment this block once the candidate window in Chrome OS
// supports changing shortcut labels.
// { prefs::kLanguageMozcSelectionShortcut,
// "SHORTCUT_123456789",
// "selection_shortcut",
// {{ "NO_SHORTCUT",
// IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SELECTION_SHORTCUT_NO_SHORTCUT },
// { "SHORTCUT_123456789",
// IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SELECTION_SHORTCUT_SHORTCUT_123456789 },
// { "SHORTCUT_ASDFGHJKL",
// IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SELECTION_SHORTCUT_SHORTCUT_ASDFGHJKL }},
// IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SELECTION_SHORTCUT,
// user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
// },
{ prefs::kLanguageMozcShiftKeyModeSwitch,
"ASCII_INPUT_MODE",
"shift_key_mode_switch",
{{ "OFF",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SHIFT_KEY_MODE_SWITCH_OFF },
{ "ASCII_INPUT_MODE",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SHIFT_KEY_MODE_SWITCH_ASCII_INPUT_MODE },
{ "KATAKANA_INPUT_MODE",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SHIFT_KEY_MODE_SWITCH_KATAKANA_INPUT_MODE }},
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SHIFT_KEY_MODE_SWITCH,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
},
{ prefs::kLanguageMozcNumpadCharacterForm,
"NUMPAD_HALF_WIDTH",
"numpad_character_form",
{{ "NUMPAD_INPUT_MODE",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_NUMPAD_CHARACTER_FORM_NUMPAD_INPUT_MODE },
{ "NUMPAD_FULL_WIDTH",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_NUMPAD_CHARACTER_FORM_NUMPAD_FULL_WIDTH },
{ "NUMPAD_HALF_WIDTH",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_NUMPAD_CHARACTER_FORM_NUMPAD_HALF_WIDTH },
{ "NUMPAD_DIRECT_INPUT",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_NUMPAD_CHARACTER_FORM_NUMPAD_DIRECT_INPUT }},
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_NUMPAD_CHARACTER_FORM,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF,
},
};
COMPILE_ASSERT(kNumMozcMultipleChoicePrefs ==
arraysize(kMozcMultipleChoicePrefs),
TheSizeShouldMatch);
const LanguageIntegerRangePreference kMozcIntegerPrefs[] = {
{ prefs::kLanguageMozcSuggestionsSize, 3, 1, 9, "suggestions_size",
IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SUGGESTIONS_SIZE,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF }
};
COMPILE_ASSERT(kNumMozcIntegerPrefs == arraysize(kMozcIntegerPrefs),
TheSizeShouldMatch);
// ---------------------------------------------------------------------------
// For keyboard stuff
// ---------------------------------------------------------------------------
const int kXkbAutoRepeatDelayInMs = 500;
const int kXkbAutoRepeatIntervalInMs = 50;
const char kPreferredKeyboardLayout[] = "PreferredKeyboardLayout";
void RegisterPrefs(PrefRegistrySimple* registry) {
// We use an empty string here rather than a hardware keyboard layout name
// since input_method::GetHardwareInputMethodId() might return a fallback
// layout name if registry->RegisterStringPref(kHardwareKeyboardLayout)
// is not called yet.
registry->RegisterStringPref(kPreferredKeyboardLayout, "");
}
} // namespace language_prefs
} // namespace chromeos