language_preferences.cc revision 5821806d5e7f356e8fa4b058a389a808ea183019
1// Copyright (c) 2012 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 "base/basictypes.h" 6#include "chrome/browser/chromeos/language_preferences.h" 7#include "chrome/common/pref_names.h" 8#include "grit/generated_resources.h" 9 10namespace chromeos { 11namespace language_prefs { 12 13// --------------------------------------------------------------------------- 14// For ibus-daemon 15// --------------------------------------------------------------------------- 16const char kGeneralSectionName[] = "general"; 17const char kPreloadEnginesConfigName[] = "preload_engines"; 18 19// --------------------------------------------------------------------------- 20// For Traditional Chinese input method (ibus-mozc-chewing) 21// --------------------------------------------------------------------------- 22const char kChewingSectionName[] = "engine/Chewing"; 23 24// We have to sync the |ibus_config_name|s with those in 25// ibus-chewing/files/src/Config.cc. 26const LanguageBooleanPrefs kChewingBooleanPrefs[] = { 27 { prefs::kLanguageChewingAutoShiftCur, false, "autoShiftCur", 28 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_AUTO_SHIFT_CUR, 29 PrefService::SYNCABLE_PREF }, 30 { prefs::kLanguageChewingAddPhraseDirection, false, "addPhraseDirection", 31 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_ADD_PHRASE_DIRECTION, 32 PrefService::SYNCABLE_PREF }, 33 /* Temporarily disabled. (crosbug.com/14185) 34 { prefs::kLanguageChewingEasySymbolInput, true, "easySymbolInput", 35 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_EASY_SYMBOL_INPUT, 36 PrefService::SYNCABLE_PREF }, 37 */ 38 { prefs::kLanguageChewingEscCleanAllBuf, false, "escCleanAllBuf", 39 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_ESC_CLEAN_ALL_BUF, 40 PrefService::SYNCABLE_PREF }, 41 { prefs::kLanguageChewingForceLowercaseEnglish, false, 42 "forceLowercaseEnglish", 43 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_FORCE_LOWER_CASE_ENGLISH, 44 PrefService::SYNCABLE_PREF }, 45 /* Temporarily disabled. (crosbug.com/14185) 46 { prefs::kLanguageChewingPlainZhuyin, false, "plainZhuyin", 47 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_PLAIN_ZHUYIN, 48 PrefService::SYNCABLE_PREF }, 49 */ 50 { prefs::kLanguageChewingPhraseChoiceRearward, true, "phraseChoiceRearward", 51 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_PHRASE_CHOICE_REARWARD, 52 PrefService::SYNCABLE_PREF }, 53 { prefs::kLanguageChewingSpaceAsSelection, true, "spaceAsSelection", 54 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_SPACE_AS_SELECTION, 55 PrefService::SYNCABLE_PREF }, 56}; 57COMPILE_ASSERT(kNumChewingBooleanPrefs == arraysize(kChewingBooleanPrefs), 58 TheSizeShouldMatch); 59 60const LanguageIntegerRangePreference kChewingIntegerPrefs[] = { 61 { prefs::kLanguageChewingMaxChiSymbolLen, 20, 8, 40, "maxChiSymbolLen", 62 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_MAX_CHI_SYMBOL_LEN, 63 PrefService::SYNCABLE_PREF 64 }, 65 { prefs::kLanguageChewingCandPerPage, 10, 8, 10, "candPerPage", 66 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SETTING_CAND_PER_PAGE, 67 PrefService::SYNCABLE_PREF 68 }, 69}; 70COMPILE_ASSERT(kNumChewingIntegerPrefs == arraysize(kChewingIntegerPrefs), 71 TheSizeShouldMatch); 72 73const LanguageMultipleChoicePreference<const char*> 74 kChewingMultipleChoicePrefs[] = { 75 { prefs::kLanguageChewingKeyboardType, 76 "default", 77 "KBType", 78 {{ "default", 79 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_DEFAULT }, 80 { "hsu", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_HSU }, 81 { "ibm", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_IBM }, 82 { "gin_yieh", 83 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_GIN_YIEH }, 84 { "eten", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_ETEN }, 85 { "eten26", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_ETEN26 }, 86 { "dvorak", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_DVORAK }, 87 { "dvorak_hsu", 88 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_DVORAK_HSU }, 89 { "dachen_26", 90 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_DACHEN_26 }, 91 { "hanyu", IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE_HANYU }}, 92 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_KEYBOARD_TYPE, 93 PrefService::SYNCABLE_PREF, 94 }, 95 { prefs::kLanguageChewingSelKeys, 96 "1234567890", 97 "selKeys", 98 {{ "1234567890", 99 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_1234567890 }, 100 { "asdfghjkl;", 101 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_ASDFGHJKLS }, 102 { "asdfzxcv89", 103 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_ASDFZXCV89 }, 104 { "asdfjkl789", 105 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_ASDFJKL789 }, 106 { "aoeu;qjkix", 107 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_AOEUSQJKIX }, 108 { "aoeuhtnsid", 109 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_AOEUHTNSID }, 110 { "aoeuidhtns", 111 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_AOEUIDHTNS }, 112 { "1234qweras", 113 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS_1234QWERAS }}, 114 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_SEL_KEYS, 115 PrefService::SYNCABLE_PREF, 116 }, 117}; 118COMPILE_ASSERT(kNumChewingMultipleChoicePrefs == 119 arraysize(kChewingMultipleChoicePrefs), 120 TheSizeShouldMatch); 121 122const LanguageMultipleChoicePreference<int> kChewingHsuSelKeyType = { 123 prefs::kLanguageChewingHsuSelKeyType, 124 1, 125 "hsuSelKeyType", 126 {{ 1, IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_HSU_SEL_KEY_TYPE_1 }, 127 { 2, IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_HSU_SEL_KEY_TYPE_2 }}, 128 IDS_OPTIONS_SETTINGS_LANGUAGES_CHEWING_HSU_SEL_KEY_TYPE, 129 PrefService::SYNCABLE_PREF, 130}; 131 132// --------------------------------------------------------------------------- 133// For Korean input method (ibus-mozc-hangul) 134// --------------------------------------------------------------------------- 135const char kHangulSectionName[] = "engine/Hangul"; 136const char kHangulKeyboardConfigName[] = "HangulKeyboard"; 137 138const char kHangulHanjaBindingKeysConfigName[] = "HanjaKeyBindings"; 139// Mozc-hangul treats Hangul_Hanja key as hanja key event even if it is not set. 140// We add Control+9 since F9 key is reserved by the window manager. 141// TODO(nona): Hanja keys are not configurable yet (and we're not sure if it 142// should.) 143const char kHangulHanjaBindingKeys[] = "F9,Ctrl 9"; 144 145const HangulKeyboardNameIDPair kHangulKeyboardNameIDPairs[] = { 146 // We have to sync the |keyboard_id|s with those in libhangul. 147 { IDS_OPTIONS_SETTINGS_LANGUAGES_HANGUL_SETTINGS_KEYBOARD_2_SET, "2" }, 148 { IDS_OPTIONS_SETTINGS_LANGUAGES_HANGUL_SETTINGS_KEYBOARD_3_SET_FINAL, 149 "3f" }, 150 { IDS_OPTIONS_SETTINGS_LANGUAGES_HANGUL_SETTINGS_KEYBOARD_3_SET_390, "39" }, 151 { IDS_OPTIONS_SETTINGS_LANGUAGES_HANGUL_SETTINGS_KEYBOARD_3_SET_NO_SHIFT, 152 "3s" }, 153 { IDS_OPTIONS_SETTINGS_LANGUAGES_HANGUL_SETTINGS_KEYBOARD_ROMAJA, "ro" }, 154 // We don't support "Sebeolsik 2 set" keyboard. 155}; 156COMPILE_ASSERT(kNumHangulKeyboardNameIDPairs == 157 arraysize(kHangulKeyboardNameIDPairs), 158 TheSizeShouldMatch); 159 160// --------------------------------------------------------------------------- 161// For Simplified Chinese input method (ibus-mozc-pinyin) 162// --------------------------------------------------------------------------- 163const char kPinyinSectionName[] = "engine/Pinyin"; 164 165// We have to sync the |ibus_config_name|s with those in 166// ibus-mozc-pinyin/files/languages/pinyin/unix/ibus/config_updater.cc. 167const LanguageBooleanPrefs kPinyinBooleanPrefs[] = { 168 { prefs::kLanguagePinyinCorrectPinyin, true, "CorrectPinyin", 169 IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_CORRECT_PINYIN, 170 PrefService::SYNCABLE_PREF }, 171 { prefs::kLanguagePinyinFuzzyPinyin, false, "FuzzyPinyin", 172 IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_FUZZY_PINYIN, 173 PrefService::SYNCABLE_PREF }, 174 { prefs::kLanguagePinyinShiftSelectCandidate, false, "ShiftSelectCandidate", 175 IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_SHIFT_SELECT_PINYIN, 176 PrefService::SYNCABLE_PREF }, 177 { prefs::kLanguagePinyinMinusEqualPage, true, "MinusEqualPage", 178 IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_MINUS_EQUAL_PAGE, 179 PrefService::SYNCABLE_PREF }, 180 { prefs::kLanguagePinyinCommaPeriodPage, true, "CommaPeriodPage", 181 IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_COMMA_PERIOD_PAGE, 182 PrefService::SYNCABLE_PREF }, 183 { prefs::kLanguagePinyinAutoCommit, false, "AutoCommit", 184 IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_AUTO_COMMIT, 185 PrefService::SYNCABLE_PREF }, 186 { prefs::kLanguagePinyinDoublePinyin, false, "DoublePinyin", 187 IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_DOUBLE_PINYIN, 188 PrefService::SYNCABLE_PREF }, 189 { prefs::kLanguagePinyinInitChinese, true, "InitChinese", 190 IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_CHINESE, 191 PrefService::SYNCABLE_PREF }, 192 { prefs::kLanguagePinyinInitFull, false, "InitFull", 193 IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_FULL, 194 PrefService::SYNCABLE_PREF }, 195 { prefs::kLanguagePinyinInitFullPunct, true, "InitFullPunct", 196 IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_FULL_PUNCT, 197 PrefService::SYNCABLE_PREF }, 198 { prefs::kLanguagePinyinInitSimplifiedChinese, true, "InitSimplifiedChinese", 199 IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_SETTING_INIT_SIMPLIFIED_CHINESE, 200 PrefService::SYNCABLE_PREF }, 201 // TODO(yusukes): Support PINYIN_{INCOMPLETE,CORRECT,FUZZY}_... prefs (32 202 // additional boolean prefs.) 203}; 204COMPILE_ASSERT(kNumPinyinBooleanPrefs == arraysize(kPinyinBooleanPrefs), 205 TheSizeShouldMatch); 206// TODO(yusukes): Support HalfWidthPuncts and IncompletePinyin prefs if needed. 207 208const LanguageMultipleChoicePreference<int> kPinyinDoublePinyinSchema = { 209 prefs::kLanguagePinyinDoublePinyinSchema, 210 0, 211 "DoublePinyinSchema", 212 {{ 0, IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA_MSPY}, 213 { 1, IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA_ZRM}, 214 { 2, IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA_ABC}, 215 { 3, IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA_ZGPY}, 216 { 4, IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA_PYJJ}}, 217 IDS_OPTIONS_SETTINGS_LANGUAGES_PINYIN_DOUBLE_SCHEMA, 218 PrefService::SYNCABLE_PREF, 219}; 220 221const PinyinIntegerPref kPinyinIntegerPrefs[] = { 222 // TODO(yusukes): the type of lookup_table_page_size on ibus should be uint. 223 { prefs::kLanguagePinyinLookupTablePageSize, 5, "LookupTablePageSize", 224 PrefService::UNSYNCABLE_PREF } // don't sync as it's not user configurable. 225}; 226COMPILE_ASSERT(kNumPinyinIntegerPrefs == arraysize(kPinyinIntegerPrefs), 227 TheSizeShouldMatch); 228 229// --------------------------------------------------------------------------- 230// For Japanese input method (ibus-mozc) 231// --------------------------------------------------------------------------- 232const char kMozcSectionName[] = "engine/Mozc"; 233 234const LanguageBooleanPrefs kMozcBooleanPrefs[] = { 235 { prefs::kLanguageMozcIncognitoMode, 236 false, 237 "incognito_mode", 238 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_INCOGNITO_MODE, 239 PrefService::SYNCABLE_PREF }, 240 { prefs::kLanguageMozcUseAutoImeTurnOff, 241 true, 242 "use_auto_ime_turn_off", 243 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_USE_AUTO_IME_TURN_OFF, 244 PrefService::SYNCABLE_PREF }, 245 { prefs::kLanguageMozcUseHistorySuggest, 246 true, 247 "use_history_suggest", 248 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_USE_HISTORY_SUGGEST, 249 PrefService::SYNCABLE_PREF }, 250 { prefs::kLanguageMozcUseDictionarySuggest, 251 true, 252 "use_dictionary_suggest", 253 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_USE_DICTIONARY_SUGGEST, 254 PrefService::SYNCABLE_PREF }, 255}; 256COMPILE_ASSERT(kNumMozcBooleanPrefs == arraysize(kMozcBooleanPrefs), 257 TheSizeShouldMatch); 258 259extern const LanguageMultipleChoicePreference<const char*> 260 kMozcMultipleChoicePrefs[] = { 261 { prefs::kLanguageMozcPreeditMethod, 262 "ROMAN", 263 "preedit_method", 264 {{ "ROMAN", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PREEDIT_METHOD_ROMAN }, 265 { "KANA", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PREEDIT_METHOD_KANA }}, 266 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PREEDIT_METHOD, 267 PrefService::SYNCABLE_PREF, 268 }, 269 { prefs::kLanguageMozcSessionKeymap, 270 "MSIME", 271 "session_keymap", 272 {{ "ATOK", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SESSION_KEYMAP_ATOK }, 273 { "MSIME", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SESSION_KEYMAP_MSIME }, 274 { "KOTOERI", IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SESSION_KEYMAP_KOTOERI }}, 275 // TODO: Support "CUSTOM" keymap. 276 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SESSION_KEYMAP, 277 PrefService::SYNCABLE_PREF, 278 }, 279 { prefs::kLanguageMozcPunctuationMethod, 280 "KUTEN_TOUTEN", 281 "punctuation_method", 282 {{ "KUTEN_TOUTEN", 283 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PUNCTUATION_METHOD_KUTEN_TOUTEN }, 284 { "COMMA_PERIOD", 285 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PUNCTUATION_METHOD_COMMA_PERIOD }, 286 { "KUTEN_PERIOD", 287 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PUNCTUATION_METHOD_KUTEN_PERIOD }, 288 { "COMMA_TOUTEN", 289 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PUNCTUATION_METHOD_COMMA_TOUTEN }}, 290 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_PUNCTUATION_METHOD, 291 PrefService::SYNCABLE_PREF, 292 }, 293 { prefs::kLanguageMozcSymbolMethod, 294 "CORNER_BRACKET_MIDDLE_DOT", 295 "symbol_method", 296 {{ "CORNER_BRACKET_MIDDLE_DOT", 297 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SYMBOL_METHOD_CORNER_BRACKET_MIDDLE_DOT }, 298 { "SQUARE_BRACKET_SLASH", 299 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SYMBOL_METHOD_SQUARE_BRACKET_SLASH }, 300 { "CORNER_BRACKET_SLASH", 301 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SYMBOL_METHOD_CORNER_BRACKET_SLASH }, 302 { "SQUARE_BRACKET_MIDDLE_DOT", 303 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SYMBOL_METHOD_SQUARE_BRACKET_MIDDLE_DOT }}, 304 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SYMBOL_METHOD, 305 PrefService::SYNCABLE_PREF, 306 }, 307 { prefs::kLanguageMozcSpaceCharacterForm, 308 "FUNDAMENTAL_INPUT_MODE", 309 "space_character_form", 310 {{ "FUNDAMENTAL_INPUT_MODE", 311 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SPACE_CHARACTER_FORM_FUNDAMENTAL_INPUT_MODE }, 312 { "FUNDAMENTAL_FULL_WIDTH", 313 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SPACE_CHARACTER_FORM_FUNDAMENTAL_FULL_WIDTH }, 314 { "FUNDAMENTAL_HALF_WIDTH", 315 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SPACE_CHARACTER_FORM_FUNDAMENTAL_HALF_WIDTH }}, 316 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SPACE_CHARACTER_FORM, 317 PrefService::SYNCABLE_PREF, 318 }, 319 { prefs::kLanguageMozcHistoryLearningLevel, 320 "DEFAULT_HISTORY", 321 "history_learning_level", 322 {{ "DEFAULT_HISTORY", 323 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_HISTORY_LEARNING_LEVEL_DEFAULT_HISTORY }, 324 { "READ_ONLY", 325 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_HISTORY_LEARNING_LEVEL_READ_ONLY }, 326 { "NO_HISTORY", 327 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_HISTORY_LEARNING_LEVEL_NO_HISTORY }}, 328 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_HISTORY_LEARNING_LEVEL, 329 PrefService::SYNCABLE_PREF, 330 }, 331 // TODO(mazda): Uncomment this block once the candidate window in Chrome OS 332 // supports changing shortcut labels. 333 // { prefs::kLanguageMozcSelectionShortcut, 334 // "SHORTCUT_123456789", 335 // "selection_shortcut", 336 // {{ "NO_SHORTCUT", 337 // IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SELECTION_SHORTCUT_NO_SHORTCUT }, 338 // { "SHORTCUT_123456789", 339 // IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SELECTION_SHORTCUT_SHORTCUT_123456789 }, 340 // { "SHORTCUT_ASDFGHJKL", 341 // IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SELECTION_SHORTCUT_SHORTCUT_ASDFGHJKL }}, 342 // IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SELECTION_SHORTCUT, 343 // PrefService::SYNCABLE_PREF, 344 // }, 345 { prefs::kLanguageMozcShiftKeyModeSwitch, 346 "ASCII_INPUT_MODE", 347 "shift_key_mode_switch", 348 {{ "OFF", 349 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SHIFT_KEY_MODE_SWITCH_OFF }, 350 { "ASCII_INPUT_MODE", 351 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SHIFT_KEY_MODE_SWITCH_ASCII_INPUT_MODE }, 352 { "KATAKANA_INPUT_MODE", 353 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SHIFT_KEY_MODE_SWITCH_KATAKANA_INPUT_MODE }}, 354 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SHIFT_KEY_MODE_SWITCH, 355 PrefService::SYNCABLE_PREF, 356 }, 357 { prefs::kLanguageMozcNumpadCharacterForm, 358 "NUMPAD_HALF_WIDTH", 359 "numpad_character_form", 360 {{ "NUMPAD_INPUT_MODE", 361 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_NUMPAD_CHARACTER_FORM_NUMPAD_INPUT_MODE }, 362 { "NUMPAD_FULL_WIDTH", 363 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_NUMPAD_CHARACTER_FORM_NUMPAD_FULL_WIDTH }, 364 { "NUMPAD_HALF_WIDTH", 365 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_NUMPAD_CHARACTER_FORM_NUMPAD_HALF_WIDTH }, 366 { "NUMPAD_DIRECT_INPUT", 367 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_NUMPAD_CHARACTER_FORM_NUMPAD_DIRECT_INPUT }}, 368 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_NUMPAD_CHARACTER_FORM, 369 PrefService::SYNCABLE_PREF, 370 }, 371}; 372COMPILE_ASSERT(kNumMozcMultipleChoicePrefs == 373 arraysize(kMozcMultipleChoicePrefs), 374 TheSizeShouldMatch); 375 376const LanguageIntegerRangePreference kMozcIntegerPrefs[] = { 377 { prefs::kLanguageMozcSuggestionsSize, 3, 1, 9, "suggestions_size", 378 IDS_OPTIONS_SETTINGS_LANGUAGES_MOZC_SUGGESTIONS_SIZE, 379 PrefService::SYNCABLE_PREF } 380}; 381COMPILE_ASSERT(kNumMozcIntegerPrefs == arraysize(kMozcIntegerPrefs), 382 TheSizeShouldMatch); 383 384// --------------------------------------------------------------------------- 385// For keyboard stuff 386// --------------------------------------------------------------------------- 387const int kXkbAutoRepeatDelayInMs = 500; 388const int kXkbAutoRepeatIntervalInMs = 50; 389const char kPreferredKeyboardLayout[] = "PreferredKeyboardLayout"; 390 391void RegisterPrefs(PrefService* local_state) { 392 // We use an empty string here rather than a hardware keyboard layout name 393 // since input_method::GetHardwareInputMethodId() might return a fallback 394 // layout name if local_state->RegisterStringPref(kHardwareKeyboardLayout) 395 // is not called yet. 396 local_state->RegisterStringPref(kPreferredKeyboardLayout, 397 "", 398 PrefService::UNSYNCABLE_PREF); 399} 400 401} // namespace language_prefs 402} // namespace chromeos 403