OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/chromeos/input_method/input_method_util.h" | 5 #include "chrome/browser/chromeos/input_method/input_method_util.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <functional> | 8 #include <functional> |
9 #include <map> | 9 #include <map> |
10 #include <utility> | 10 #include <utility> |
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
427 if (extension_ime_util::GetInputMethodIDByEngineID( | 427 if (extension_ime_util::GetInputMethodIDByEngineID( |
428 kMappingImeIdToMediumLenNameResourceId[i].engine_id) == | 428 kMappingImeIdToMediumLenNameResourceId[i].engine_id) == |
429 input_method.id()) { | 429 input_method.id()) { |
430 return delegate_->GetLocalizedString( | 430 return delegate_->GetLocalizedString( |
431 kMappingImeIdToMediumLenNameResourceId[i].resource_id); | 431 kMappingImeIdToMediumLenNameResourceId[i].resource_id); |
432 } | 432 } |
433 } | 433 } |
434 return GetInputMethodShortName(input_method); | 434 return GetInputMethodShortName(input_method); |
435 } | 435 } |
436 | 436 |
437 base::string16 InputMethodUtil::GetInputMethodLongName( | 437 base::string16 InputMethodUtil::GetInputMethodLongNameInternal( |
438 const InputMethodDescriptor& input_method) const { | 438 const InputMethodDescriptor& input_method, bool for_oobe) const { |
439 if (!input_method.name().empty() && !IsKeyboardLayout(input_method.id())) { | 439 if (!input_method.name().empty() && !IsKeyboardLayout(input_method.id())) { |
440 // If the descriptor has a name, use it. | 440 // If the descriptor has a name, use it. |
441 return base::UTF8ToUTF16(input_method.name()); | 441 return base::UTF8ToUTF16(input_method.name()); |
442 } | 442 } |
443 | 443 |
444 // We don't show language here. Name of keyboard layout or input method | 444 // We don't show language here. Name of keyboard layout or input method |
445 // usually imply (or explicitly include) its language. | 445 // usually imply (or explicitly include) its language. |
446 | |
447 // Special case for German, French and Dutch: these languages have multiple | 446 // Special case for German, French and Dutch: these languages have multiple |
448 // keyboard layouts and share the same layout of keyboard (Belgian). We need | 447 // keyboard layouts and share the same layout of keyboard (Belgian). We need |
449 // to show explicitly the language for the layout. For Arabic, Amharic, and | 448 // to show explicitly the language for the layout. |
450 // Indic languages: they share "Standard Input Method". | |
451 const base::string16 standard_input_method_text = | |
452 delegate_->GetLocalizedString( | |
453 IDS_OPTIONS_SETTINGS_LANGUAGES_M17N_STANDARD_INPUT_METHOD); | |
454 DCHECK(!input_method.language_codes().empty()); | 449 DCHECK(!input_method.language_codes().empty()); |
455 const std::string language_code = input_method.language_codes().at(0); | 450 const std::string language_code = input_method.language_codes().at(0); |
456 | 451 |
457 base::string16 text = TranslateString(input_method.id()); | 452 base::string16 text = (for_oobe || input_method.name().empty()) |
458 if (text == standard_input_method_text || | 453 ? TranslateString(input_method.id()) |
459 language_code == "de" || | 454 : base::UTF8ToUTF16(input_method.name()); |
460 language_code == "fr" || | 455 if (language_code == "de" || language_code == "fr" || language_code == "nl") { |
461 language_code == "nl") { | |
462 const base::string16 language_name = delegate_->GetDisplayLanguageName( | 456 const base::string16 language_name = delegate_->GetDisplayLanguageName( |
463 language_code); | 457 language_code); |
464 | |
465 text = language_name + base::UTF8ToUTF16(" - ") + text; | 458 text = language_name + base::UTF8ToUTF16(" - ") + text; |
466 } | 459 } |
467 | 460 |
468 DCHECK(!text.empty()); | 461 DCHECK(!text.empty()); |
469 return text; | 462 return text; |
470 } | 463 } |
471 | 464 |
| 465 |
| 466 base::string16 InputMethodUtil::GetInputMethodLongNameStripped( |
| 467 const InputMethodDescriptor& input_method) const { |
| 468 return GetInputMethodLongNameInternal(input_method, true /* for_oobe */); |
| 469 } |
| 470 |
| 471 base::string16 InputMethodUtil::GetInputMethodLongName( |
| 472 const InputMethodDescriptor& input_method) const { |
| 473 return GetInputMethodLongNameInternal(input_method, false /* for_oobe */); |
| 474 } |
| 475 |
472 const InputMethodDescriptor* InputMethodUtil::GetInputMethodDescriptorFromId( | 476 const InputMethodDescriptor* InputMethodUtil::GetInputMethodDescriptorFromId( |
473 const std::string& input_method_id) const { | 477 const std::string& input_method_id) const { |
474 InputMethodIdToDescriptorMap::const_iterator iter = | 478 InputMethodIdToDescriptorMap::const_iterator iter = |
475 id_to_descriptor_.find(input_method_id); | 479 id_to_descriptor_.find(input_method_id); |
476 if (iter == id_to_descriptor_.end()) | 480 if (iter == id_to_descriptor_.end()) |
477 return NULL; | 481 return NULL; |
478 return &(iter->second); | 482 return &(iter->second); |
479 } | 483 } |
480 | 484 |
481 bool InputMethodUtil::GetInputMethodIdsFromLanguageCode( | 485 bool InputMethodUtil::GetInputMethodIdsFromLanguageCode( |
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
754 "US", | 758 "US", |
755 layouts, | 759 layouts, |
756 languages, | 760 languages, |
757 true, // login keyboard. | 761 true, // login keyboard. |
758 GURL(), // options page, not available. | 762 GURL(), // options page, not available. |
759 GURL()); // input view page, not available. | 763 GURL()); // input view page, not available. |
760 } | 764 } |
761 | 765 |
762 } // namespace input_method | 766 } // namespace input_method |
763 } // namespace chromeos | 767 } // namespace chromeos |
OLD | NEW |