diff options
Diffstat (limited to 'chromeos/ime')
-rw-r--r-- | chromeos/ime/component_extension_ime_manager.cc | 1 | ||||
-rwxr-xr-x | chromeos/ime/gen_input_methods.py | 34 | ||||
-rw-r--r-- | chromeos/ime/input_method_descriptor.cc | 2 | ||||
-rw-r--r-- | chromeos/ime/input_method_descriptor.h | 6 | ||||
-rw-r--r-- | chromeos/ime/input_method_whitelist.cc | 1 | ||||
-rw-r--r-- | chromeos/ime/input_methods.txt | 118 |
6 files changed, 89 insertions, 73 deletions
diff --git a/chromeos/ime/component_extension_ime_manager.cc b/chromeos/ime/component_extension_ime_manager.cc index 954c8cc..7c13f5a 100644 --- a/chromeos/ime/component_extension_ime_manager.cc +++ b/chromeos/ime/component_extension_ime_manager.cc @@ -136,6 +136,7 @@ input_method::InputMethodDescriptors component_extension_imes_[i].id, component_extension_imes_[i].engines[j].engine_id), component_extension_imes_[i].engines[j].display_name, + std::string(), // TODO(uekawa): Set short name. component_extension_imes_[i].engines[j].layouts, component_extension_imes_[i].engines[j].language_codes, false, // Do not use IME on login screen. diff --git a/chromeos/ime/gen_input_methods.py b/chromeos/ime/gen_input_methods.py index 6f3e74c..31b1ea2 100755 --- a/chromeos/ime/gen_input_methods.py +++ b/chromeos/ime/gen_input_methods.py @@ -16,8 +16,8 @@ Run it like: It will produce output that looks like: // This file is automatically generated by gen_input_methods.py -#ifndef CHROME_BROWSER_CHROMEOS_INPUT_METHOD_INPUT_METHODS_H_ -#define CHROME_BROWSER_CHROMEOS_INPUT_METHOD_INPUT_METHODS_H_ +#ifndef CHROMEOS_IME_INPUT_METHODS_H_ +#define CHROMEOS_IME_INPUT_METHODS_H_ namespace chromeos { namespace input_method { @@ -26,20 +26,21 @@ struct InputMethodsInfo { const char* input_method_id; const char* language_code; const char* xkb_keyboard_id; + const char* indicator; bool is_login_keyboard; }; const InputMethodsInfo kInputMethods[] = { - {"xkb:us::eng", "en-US", "us", true}, - {"xkb:us:dvorak:eng", "en-US", "us(dvorak)", true}, - {"xkb:be::fra", "fr", "be", true}, - {"xkb:br::por", "pt-BR", "br", true}, - {"xkb:ru::rus", "ru", "ru", false}, + {"xkb:us::eng", "en-US", "us", "US", true}, + {"xkb:us:dvorak:eng", "en-US", "us(dvorak)", "DV", true}, + {"xkb:be::fra", "fr", "be", "BE", true}, + {"xkb:br::por", "pt-BR", "br", "BR", true}, + {"xkb:ru::rus", "ru", "ru", "RU", false}, }; } // namespace input_method } // namespace chromeos -#endif // CHROME_BROWSER_CHROMEOS_INPUT_METHOD_INPUT_METHODS_H_ +#endif // CHROMEOS_IME_INPUT_METHODS_H_ """ @@ -48,8 +49,8 @@ import re import sys OUTPUT_HEADER = """// Automatically generated by gen_input_methods.py -#ifndef CHROME_BROWSER_CHROMEOS_INPUT_METHOD_INPUT_METHODS_H_ -#define CHROME_BROWSER_CHROMEOS_INPUT_METHOD_INPUT_METHODS_H_ +#ifndef CHROMEOS_IME_INPUT_METHODS_H_ +#define CHROMEOS_IME_INPUT_METHODS_H_ namespace chromeos { namespace input_method { @@ -58,6 +59,7 @@ struct InputMethodsInfo { const char* input_method_id; const char* language_code; const char* xkb_layout_id; + const char* indicator; bool is_login_keyboard; }; const InputMethodsInfo kInputMethods[] = { @@ -65,7 +67,8 @@ const InputMethodsInfo kInputMethods[] = { CPP_FORMAT = '#if %s\n' ENGINE_FORMAT = (' {"%(input_method_id)s", "%(language_code)s", ' + - '"%(xkb_layout_id)s", %(is_login_keyboard)s},\n') + '"%(xkb_layout_id)s", "%(indicator)s", ' + + '%(is_login_keyboard)s},\n') OUTPUT_FOOTER = """ }; @@ -73,7 +76,7 @@ OUTPUT_FOOTER = """ } // namespace input_method } // namespace chromeos -#endif // CHROME_BROWSER_CHROMEOS_INPUT_METHOD_INPUT_METHODS_H_ +#endif // CHROMEOS_IME_INPUT_METHODS_H_ """ def CreateEngineHeader(engines): @@ -107,14 +110,15 @@ def main(argv): if not line or re.match(r'#', line): continue columns = line.split() - assert len(columns) == 3 or len(columns) == 4, "Invalid format: " + line + assert len(columns) == 4 or len(columns) == 5, "Invalid format: " + line engine = {} engine['input_method_id'] = columns[0] engine['xkb_layout_id'] = columns[1] engine['language_code'] = columns[2] + engine['indicator'] = columns[3] is_login_keyboard = "false" - if len(columns) == 4: - assert columns[3] == "login", "Invalid attribute: " + columns[3] + if len(columns) == 5: + assert columns[4] == "login", "Invalid attribute: " + columns[4] is_login_keyboard = "true" engine['is_login_keyboard'] = is_login_keyboard engines.append(engine) diff --git a/chromeos/ime/input_method_descriptor.cc b/chromeos/ime/input_method_descriptor.cc index 7e6cb15..49b0360 100644 --- a/chromeos/ime/input_method_descriptor.cc +++ b/chromeos/ime/input_method_descriptor.cc @@ -16,6 +16,7 @@ namespace input_method { InputMethodDescriptor::InputMethodDescriptor( const std::string& id, const std::string& name, + const std::string& indicator, const std::vector<std::string>& keyboard_layouts, const std::vector<std::string>& language_codes, bool is_login_keyboard, @@ -25,6 +26,7 @@ InputMethodDescriptor::InputMethodDescriptor( name_(name), keyboard_layouts_(keyboard_layouts), language_codes_(language_codes), + indicator_(indicator), is_login_keyboard_(is_login_keyboard), options_page_url_(options_page_url), input_view_url_(input_view_url) { diff --git a/chromeos/ime/input_method_descriptor.h b/chromeos/ime/input_method_descriptor.h index b63b54f..ab7cfb4 100644 --- a/chromeos/ime/input_method_descriptor.h +++ b/chromeos/ime/input_method_descriptor.h @@ -21,6 +21,7 @@ class CHROMEOS_EXPORT InputMethodDescriptor { InputMethodDescriptor(); InputMethodDescriptor(const std::string& id, const std::string& name, + const std::string& indicator, const std::vector<std::string>& keyboard_layouts, const std::vector<std::string>& language_codes, bool is_login_keyboard, @@ -31,6 +32,7 @@ class CHROMEOS_EXPORT InputMethodDescriptor { // Accessors const std::string& id() const { return id_; } const std::string& name() const { return name_; } + const std::string& indicator() const { return indicator_; } const std::vector<std::string>& language_codes() const { return language_codes_; } @@ -61,6 +63,10 @@ class CHROMEOS_EXPORT InputMethodDescriptor { // Language code like "ko", "ja", "en-US", and "zh-CN". std::vector<std::string> language_codes_; + // A short indicator string that is displayed when the input method + // is selected, like "US". + std::string indicator_; + // True if this input method can be used on login screen. bool is_login_keyboard_; diff --git a/chromeos/ime/input_method_whitelist.cc b/chromeos/ime/input_method_whitelist.cc index c6cd097e..57704e5 100644 --- a/chromeos/ime/input_method_whitelist.cc +++ b/chromeos/ime/input_method_whitelist.cc @@ -44,6 +44,7 @@ InputMethodWhitelist::GetSupportedInputMethods() const { input_methods->push_back(InputMethodDescriptor( kInputMethods[i].input_method_id, "", + kInputMethods[i].indicator, layouts, languages, kInputMethods[i].is_login_keyboard, diff --git a/chromeos/ime/input_methods.txt b/chromeos/ime/input_methods.txt index 22650aa..a570da7 100644 --- a/chromeos/ime/input_methods.txt +++ b/chromeos/ime/input_methods.txt @@ -1,7 +1,7 @@ # The list of keyboard layouts that we support. The keyboard layout metadata is # also defined here. # -# Each non-comment line contains the following tab-separated columns. +# Each non-comment line contains the following tab-or-space-separated columns. # # 1) The input method ID used by Chrome. (ex. "xkb:ca::fra") You should *NEVER* # change the ID since the ID might be written in user's ~/Preferences. For @@ -16,9 +16,11 @@ # two-letter upper-case country code should be added (ex. "en-US", "zh-TW"). # See http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes for details. # We can specify multiple language code with comma separator. -# 4) The additional attibution. -# no-login: Spcified keyboard layout will not be used on login screen or lock -# screen. +# 4) The indicator string (ex. INTL for xkb:us:intl:eng). This string will be +# shown in system tray or indicator window. +# 5) The additional attibution. +# login: Specified keyboard layout will be used on login screen or lock +# screen. # # Notes: # When adding a line to this list, please also add a mapping from the input @@ -39,76 +41,76 @@ # # U.S. English -xkb:us::eng us en-US,en-AU,id,fil,ms login -xkb:us:intl:eng us(intl) en-US,nl,pt-BR login -xkb:us:altgr-intl:eng us(altgr-intl) en-US login -xkb:us:dvorak:eng us(dvorak) en-US login -xkb:us:colemak:eng us(colemak) en-US login +xkb:us::eng us en-US,en-AU,id,fil,ms US login +xkb:us:intl:eng us(intl) en-US,nl,pt-BR INTL login +xkb:us:altgr-intl:eng us(altgr-intl) en-US EXTD login +xkb:us:dvorak:eng us(dvorak) en-US DV login +xkb:us:colemak:eng us(colemak) en-US CO login # U.S. English entiries have to be above the Dutch entry so that xkb:us:intl:eng # will be selected as the default keyboard when the UI language is set to Dutch. # Dutch -xkb:be::nld be nl login +xkb:be::nld be nl BE login # We don't support xkb:nl::nld. See b/4430951. # French -xkb:fr::fra fr fr login -xkb:be::fra be fr login -xkb:ca::fra ca fr login -xkb:ch:fr:fra ch(fr) fr login -xkb:ca:multix:fra ca(multix) fr login +xkb:fr::fra fr fr FR login +xkb:be::fra be fr BE login +xkb:ca::fra ca fr CA login +xkb:ch:fr:fra ch(fr) fr CH login +xkb:ca:multix:fra ca(multix) fr CA login # German -xkb:de::ger de de login -xkb:de:neo:ger de(neo) de login -xkb:be::ger be de login -xkb:ch::ger ch de login +xkb:de::ger de de DE login +xkb:de:neo:ger de(neo) de NEO login +xkb:be::ger be de BE login +xkb:ch::ger ch de CH login # Japanese # |kMozcJaInputMethodIds| in ibus_ui_controller.cc should also be updated when # a new Mozc Japanese IME for another keyboard layout is added. -xkb:jp::jpn jp ja login +xkb:jp::jpn jp ja JA login # Russian -xkb:ru::rus ru ru -xkb:ru:phonetic:rus ru(phonetic) ru +xkb:ru::rus ru ru RU +xkb:ru:phonetic:rus ru(phonetic) ru RU # Keyboard layouts. -xkb:br::por br pt-BR login -xkb:bg::bul bg bg -xkb:bg:phonetic:bul bg(phonetic) bg -xkb:ca:eng:eng ca(eng) en-CA login -xkb:cz::cze cz cs login -xkb:cz:qwerty:cze cz(qwerty) cs login -xkb:ee::est ee et login -xkb:es::spa es es login -xkb:es:cat:cat es(cat) ca login -xkb:dk::dan dk da login -xkb:gr::gre gr el -xkb:il::heb il he -xkb:latam::spa latam es,es-419 login -xkb:lt::lit lt lt login -xkb:lv:apostrophe:lav lv(apostrophe) lv login -xkb:hr::scr hr hr login -xkb:gb:extd:eng gb(extd) en-GB login -xkb:gb:dvorak:eng gb(dvorak) en-GB login -xkb:fi::fin fi fi login -xkb:hu::hun hu hu login -xkb:it::ita it it login -xkb:is::ice is is login -xkb:no::nob no nb login -xkb:pl::pol pl pl login -xkb:pt::por pt pt-PT login -xkb:ro::rum ro ro login -xkb:se::swe se sv login -xkb:sk::slo sk sk -xkb:si::slv si sl login -xkb:rs::srp rs sr -xkb:tr::tur tr tr login -xkb:ua::ukr ua uk -xkb:by::bel by be -xkb:am:phonetic:arm am hy -xkb:ge::geo ge ka -xkb:mn::mon mn mn +xkb:br::por br pt-BR BR login +xkb:bg::bul bg bg BG +xkb:bg:phonetic:bul bg(phonetic) bg BG +xkb:ca:eng:eng ca(eng) en-CA CA login +xkb:cz::cze cz cs CZ login +xkb:cz:qwerty:cze cz(qwerty) cs CS login +xkb:ee::est ee et EE login +xkb:es::spa es es ES login +xkb:es:cat:cat es(cat) ca CAS login +xkb:dk::dan dk da DK login +xkb:gr::gre gr el GR +xkb:il::heb il he IL +xkb:latam::spa latam es,es-419 LA login +xkb:lt::lit lt lt LT login +xkb:lv:apostrophe:lav lv(apostrophe) lv LV login +xkb:hr::scr hr hr HR login +xkb:gb:extd:eng gb(extd) en-GB GB login +xkb:gb:dvorak:eng gb(dvorak) en-GB DV login +xkb:fi::fin fi fi FI login +xkb:hu::hun hu hu HU login +xkb:it::ita it it IT login +xkb:is::ice is is IS login +xkb:no::nob no nb NO login +xkb:pl::pol pl pl PL login +xkb:pt::por pt pt-PT PT login +xkb:ro::rum ro ro RO login +xkb:se::swe se sv SE login +xkb:sk::slo sk sk SK +xkb:si::slv si sl SI login +xkb:rs::srp rs sr RS +xkb:tr::tur tr tr TR login +xkb:ua::ukr ua uk UA +xkb:by::bel by be BY +xkb:am:phonetic:arm am hy AM +xkb:ge::geo ge ka GE +xkb:mn::mon mn mn MN # TODO(yusukes): Support xkb:latam:deadtilde:spa and/or xkb:latam:nodeadkeys:spa # if necessary. |