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