OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "app/l10n_util.h" | 5 #include "app/l10n_util.h" |
6 | 6 |
7 #if defined(TOOLKIT_USES_GTK) | 7 #if defined(TOOLKIT_USES_GTK) |
8 #include <glib/gutils.h> | 8 #include <glib/gutils.h> |
9 #endif | 9 #endif |
10 | 10 |
(...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
561 } | 561 } |
562 if (token_index == 0 && (token_len < 1 || token_len > 3)) { | 562 if (token_index == 0 && (token_len < 1 || token_len > 3)) { |
563 return false; | 563 return false; |
564 } else if (token_len < 1 || token_len > 8) { | 564 } else if (token_len < 1 || token_len > 8) { |
565 return false; | 565 return false; |
566 } | 566 } |
567 | 567 |
568 return true; | 568 return true; |
569 } | 569 } |
570 | 570 |
| 571 #if CRBUG_9911_OBSOLETE_GOING_AWAY |
571 std::wstring GetString(int message_id) { | 572 std::wstring GetString(int message_id) { |
572 return UTF16ToWide(GetStringUTF16(message_id)); | 573 return UTF16ToWide(GetStringUTF16(message_id)); |
573 } | 574 } |
| 575 #endif |
574 | 576 |
575 std::string GetStringUTF8(int message_id) { | 577 std::string GetStringUTF8(int message_id) { |
576 return UTF16ToUTF8(GetStringUTF16(message_id)); | 578 return UTF16ToUTF8(GetStringUTF16(message_id)); |
577 } | 579 } |
578 | 580 |
579 string16 GetStringUTF16(int message_id) { | 581 string16 GetStringUTF16(int message_id) { |
580 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 582 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
581 string16 str = rb.GetLocalizedString(message_id); | 583 string16 str = rb.GetLocalizedString(message_id); |
582 AdjustParagraphDirectionality(&str); | 584 AdjustParagraphDirectionality(&str); |
583 | 585 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
621 } | 623 } |
622 #endif | 624 #endif |
623 | 625 |
624 string16 formatted = ReplaceStringPlaceholders(format_string, replacements, | 626 string16 formatted = ReplaceStringPlaceholders(format_string, replacements, |
625 offsets); | 627 offsets); |
626 AdjustParagraphDirectionality(&formatted); | 628 AdjustParagraphDirectionality(&formatted); |
627 | 629 |
628 return formatted; | 630 return formatted; |
629 } | 631 } |
630 | 632 |
| 633 #if CRBUG_9911_OBSOLETE_GOING_AWAY |
631 #if !defined(WCHAR_T_IS_UTF16) | 634 #if !defined(WCHAR_T_IS_UTF16) |
632 std::wstring GetStringF(int message_id, const std::wstring& a) { | 635 std::wstring GetStringF(int message_id, const std::wstring& a) { |
633 return UTF16ToWide(GetStringFUTF16(message_id, WideToUTF16(a))); | 636 return UTF16ToWide(GetStringFUTF16(message_id, WideToUTF16(a))); |
634 } | 637 } |
635 | 638 |
636 std::wstring GetStringF(int message_id, | 639 std::wstring GetStringF(int message_id, |
637 const std::wstring& a, | 640 const std::wstring& a, |
638 const std::wstring& b) { | 641 const std::wstring& b) { |
639 return UTF16ToWide(GetStringFUTF16(message_id, WideToUTF16(a), | 642 return UTF16ToWide(GetStringFUTF16(message_id, WideToUTF16(a), |
640 WideToUTF16(b))); | 643 WideToUTF16(b))); |
641 } | 644 } |
642 | 645 |
643 std::wstring GetStringF(int message_id, | 646 std::wstring GetStringF(int message_id, |
644 const std::wstring& a, | 647 const std::wstring& a, |
645 const std::wstring& b, | 648 const std::wstring& b, |
646 const std::wstring& c) { | 649 const std::wstring& c) { |
647 return UTF16ToWide(GetStringFUTF16(message_id, WideToUTF16(a), | 650 return UTF16ToWide(GetStringFUTF16(message_id, WideToUTF16(a), |
648 WideToUTF16(b), WideToUTF16(c))); | 651 WideToUTF16(b), WideToUTF16(c))); |
649 } | 652 } |
650 | 653 |
651 std::wstring GetStringF(int message_id, | 654 std::wstring GetStringF(int message_id, |
652 const std::wstring& a, | 655 const std::wstring& a, |
653 const std::wstring& b, | 656 const std::wstring& b, |
654 const std::wstring& c, | 657 const std::wstring& c, |
655 const std::wstring& d) { | 658 const std::wstring& d) { |
656 return UTF16ToWide(GetStringFUTF16(message_id, WideToUTF16(a), WideToUTF16(b), | 659 return UTF16ToWide(GetStringFUTF16(message_id, WideToUTF16(a), WideToUTF16(b), |
657 WideToUTF16(c), WideToUTF16(d))); | 660 WideToUTF16(c), WideToUTF16(d))); |
658 } | 661 } |
659 #endif | 662 #endif |
| 663 #endif |
660 | 664 |
661 std::string GetStringFUTF8(int message_id, | 665 std::string GetStringFUTF8(int message_id, |
662 const string16& a) { | 666 const string16& a) { |
663 return UTF16ToUTF8(GetStringFUTF16(message_id, a)); | 667 return UTF16ToUTF8(GetStringFUTF16(message_id, a)); |
664 } | 668 } |
665 | 669 |
666 std::string GetStringFUTF8(int message_id, | 670 std::string GetStringFUTF8(int message_id, |
667 const string16& a, | 671 const string16& a, |
668 const string16& b) { | 672 const string16& b) { |
669 return UTF16ToUTF8(GetStringFUTF16(message_id, a, b)); | 673 return UTF16ToUTF8(GetStringFUTF16(message_id, a, b)); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
714 const string16& c, | 718 const string16& c, |
715 const string16& d) { | 719 const string16& d) { |
716 std::vector<string16> replacements; | 720 std::vector<string16> replacements; |
717 replacements.push_back(a); | 721 replacements.push_back(a); |
718 replacements.push_back(b); | 722 replacements.push_back(b); |
719 replacements.push_back(c); | 723 replacements.push_back(c); |
720 replacements.push_back(d); | 724 replacements.push_back(d); |
721 return GetStringF(message_id, replacements, NULL); | 725 return GetStringF(message_id, replacements, NULL); |
722 } | 726 } |
723 | 727 |
| 728 #if CRBUG_9911_OBSOLETE_GOING_AWAY |
724 std::wstring GetStringF(int message_id, const std::wstring& a, size_t* offset) { | 729 std::wstring GetStringF(int message_id, const std::wstring& a, size_t* offset) { |
725 DCHECK(offset); | 730 DCHECK(offset); |
726 std::vector<size_t> offsets; | 731 std::vector<size_t> offsets; |
727 std::vector<string16> replacements; | 732 std::vector<string16> replacements; |
728 replacements.push_back(WideToUTF16(a)); | 733 replacements.push_back(WideToUTF16(a)); |
729 string16 result = GetStringF(message_id, replacements, &offsets); | 734 string16 result = GetStringF(message_id, replacements, &offsets); |
730 DCHECK(offsets.size() == 1); | 735 DCHECK(offsets.size() == 1); |
731 *offset = offsets[0]; | 736 *offset = offsets[0]; |
732 return UTF16ToWide(result); | 737 return UTF16ToWide(result); |
733 } | 738 } |
734 | 739 |
735 std::wstring GetStringF(int message_id, | 740 std::wstring GetStringF(int message_id, |
736 const std::wstring& a, | 741 const std::wstring& a, |
737 const std::wstring& b, | 742 const std::wstring& b, |
738 std::vector<size_t>* offsets) { | 743 std::vector<size_t>* offsets) { |
739 std::vector<string16> replacements; | 744 std::vector<string16> replacements; |
740 replacements.push_back(WideToUTF16(a)); | 745 replacements.push_back(WideToUTF16(a)); |
741 replacements.push_back(WideToUTF16(b)); | 746 replacements.push_back(WideToUTF16(b)); |
742 return UTF16ToWide(GetStringF(message_id, replacements, offsets)); | 747 return UTF16ToWide(GetStringF(message_id, replacements, offsets)); |
743 } | 748 } |
| 749 #endif |
744 | 750 |
745 string16 GetStringFUTF16(int message_id, const string16& a, size_t* offset) { | 751 string16 GetStringFUTF16(int message_id, const string16& a, size_t* offset) { |
746 DCHECK(offset); | 752 DCHECK(offset); |
747 std::vector<size_t> offsets; | 753 std::vector<size_t> offsets; |
748 std::vector<string16> replacements; | 754 std::vector<string16> replacements; |
749 replacements.push_back(a); | 755 replacements.push_back(a); |
750 string16 result = GetStringF(message_id, replacements, &offsets); | 756 string16 result = GetStringF(message_id, replacements, &offsets); |
751 DCHECK(offsets.size() == 1); | 757 DCHECK(offsets.size() == 1); |
752 *offset = offsets[0]; | 758 *offset = offsets[0]; |
753 return result; | 759 return result; |
754 } | 760 } |
755 | 761 |
756 string16 GetStringFUTF16(int message_id, | 762 string16 GetStringFUTF16(int message_id, |
757 const string16& a, | 763 const string16& a, |
758 const string16& b, | 764 const string16& b, |
759 std::vector<size_t>* offsets) { | 765 std::vector<size_t>* offsets) { |
760 std::vector<string16> replacements; | 766 std::vector<string16> replacements; |
761 replacements.push_back(a); | 767 replacements.push_back(a); |
762 replacements.push_back(b); | 768 replacements.push_back(b); |
763 return GetStringF(message_id, replacements, offsets); | 769 return GetStringF(message_id, replacements, offsets); |
764 } | 770 } |
765 | 771 |
| 772 #if CRBUG_9911_OBSOLETE_GOING_AWAY |
766 std::wstring GetStringF(int message_id, int a) { | 773 std::wstring GetStringF(int message_id, int a) { |
767 return GetStringF(message_id, UTF8ToWide(base::IntToString(a))); | 774 return GetStringF(message_id, UTF8ToWide(base::IntToString(a))); |
768 } | 775 } |
769 | 776 |
770 std::wstring GetStringF(int message_id, int64 a) { | 777 std::wstring GetStringF(int message_id, int64 a) { |
771 return GetStringF(message_id, UTF8ToWide(base::Int64ToString(a))); | 778 return GetStringF(message_id, UTF8ToWide(base::Int64ToString(a))); |
772 } | 779 } |
| 780 #endif |
| 781 |
| 782 string16 GetStringFUTF16(int message_id, int a) { |
| 783 return GetStringFUTF16(message_id, UTF8ToUTF16(base::IntToString(a))); |
| 784 } |
| 785 |
| 786 string16 GetStringFUTF16(int message_id, int64 a) { |
| 787 return GetStringFUTF16(message_id, UTF8ToUTF16(base::Int64ToString(a))); |
| 788 } |
773 | 789 |
774 string16 TruncateString(const string16& string, size_t length) { | 790 string16 TruncateString(const string16& string, size_t length) { |
775 if (string.size() <= length) | 791 if (string.size() <= length) |
776 // String fits, return it. | 792 // String fits, return it. |
777 return string; | 793 return string; |
778 | 794 |
779 if (length == 0) { | 795 if (length == 0) { |
780 // No room for the elide string, return an empty string. | 796 // No room for the elide string, return an empty string. |
781 return string16(); | 797 return string16(); |
782 } | 798 } |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
880 string16 lhs_utf16 = WideToUTF16(lhs); | 896 string16 lhs_utf16 = WideToUTF16(lhs); |
881 string16 rhs_utf16 = WideToUTF16(rhs); | 897 string16 rhs_utf16 = WideToUTF16(rhs); |
882 | 898 |
883 result = CompareString16WithCollator(collator, lhs_utf16, rhs_utf16); | 899 result = CompareString16WithCollator(collator, lhs_utf16, rhs_utf16); |
884 #else | 900 #else |
885 result = CompareString16WithCollator(collator, lhs, rhs); | 901 result = CompareString16WithCollator(collator, lhs, rhs); |
886 #endif | 902 #endif |
887 return result; | 903 return result; |
888 } | 904 } |
889 | 905 |
890 // Specialization of operator() method for std::wstring version. | |
891 template <> | |
892 bool StringComparator<std::wstring>::operator()(const std::wstring& lhs, | |
893 const std::wstring& rhs) { | |
894 // If we can not get collator instance for specified locale, just do simple | |
895 // string compare. | |
896 if (!collator_) | |
897 return lhs < rhs; | |
898 return CompareStringWithCollator(collator_, lhs, rhs) == UCOL_LESS; | |
899 }; | |
900 | |
901 #if !defined(WCHAR_T_IS_UTF16) | |
902 // Specialization of operator() method for string16 version. | 906 // Specialization of operator() method for string16 version. |
903 template <> | 907 template <> |
904 bool StringComparator<string16>::operator()(const string16& lhs, | 908 bool StringComparator<string16>::operator()(const string16& lhs, |
905 const string16& rhs) { | 909 const string16& rhs) { |
906 // If we can not get collator instance for specified locale, just do simple | 910 // If we can not get collator instance for specified locale, just do simple |
907 // string compare. | 911 // string compare. |
908 if (!collator_) | 912 if (!collator_) |
909 return lhs < rhs; | 913 return lhs < rhs; |
910 return CompareString16WithCollator(collator_, lhs, rhs) == UCOL_LESS; | 914 return CompareString16WithCollator(collator_, lhs, rhs) == UCOL_LESS; |
911 }; | 915 }; |
912 #endif // !defined(WCHAR_T_IS_UTF16) | |
913 | |
914 void SortStrings(const std::string& locale, | |
915 std::vector<std::wstring>* strings) { | |
916 SortVectorWithStringKey(locale, strings, false); | |
917 } | |
918 | 916 |
919 void SortStrings16(const std::string& locale, | 917 void SortStrings16(const std::string& locale, |
920 std::vector<string16>* strings) { | 918 std::vector<string16>* strings) { |
921 SortVectorWithStringKey(locale, strings, false); | 919 SortVectorWithStringKey(locale, strings, false); |
922 } | 920 } |
923 | 921 |
924 const std::vector<std::string>& GetAvailableLocales() { | 922 const std::vector<std::string>& GetAvailableLocales() { |
925 static std::vector<std::string> locales; | 923 static std::vector<std::string> locales; |
926 if (locales.empty()) { | 924 if (locales.empty()) { |
927 int num_locales = uloc_countAvailable(); | 925 int num_locales = uloc_countAvailable(); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
960 for (size_t i = 0; i < arraysize(kAcceptLanguageList); ++i) { | 958 for (size_t i = 0; i < arraysize(kAcceptLanguageList); ++i) { |
961 if (!IsLocaleNameTranslated(kAcceptLanguageList[i], display_locale)) | 959 if (!IsLocaleNameTranslated(kAcceptLanguageList[i], display_locale)) |
962 // TODO(jungshik) : Put them at the of the list with language codes | 960 // TODO(jungshik) : Put them at the of the list with language codes |
963 // enclosed by brackets instead of skipping. | 961 // enclosed by brackets instead of skipping. |
964 continue; | 962 continue; |
965 locale_codes->push_back(kAcceptLanguageList[i]); | 963 locale_codes->push_back(kAcceptLanguageList[i]); |
966 } | 964 } |
967 } | 965 } |
968 | 966 |
969 } // namespace l10n_util | 967 } // namespace l10n_util |
OLD | NEW |