| 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 | |
| 572 std::wstring GetString(int message_id) { | |
| 573 return UTF16ToWide(GetStringUTF16(message_id)); | |
| 574 } | |
| 575 #endif | |
| 576 | |
| 577 std::string GetStringUTF8(int message_id) { | 571 std::string GetStringUTF8(int message_id) { |
| 578 return UTF16ToUTF8(GetStringUTF16(message_id)); | 572 return UTF16ToUTF8(GetStringUTF16(message_id)); |
| 579 } | 573 } |
| 580 | 574 |
| 581 string16 GetStringUTF16(int message_id) { | 575 string16 GetStringUTF16(int message_id) { |
| 582 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 576 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
| 583 string16 str = rb.GetLocalizedString(message_id); | 577 string16 str = rb.GetLocalizedString(message_id); |
| 584 AdjustParagraphDirectionality(&str); | 578 AdjustParagraphDirectionality(&str); |
| 585 | 579 |
| 586 return str; | 580 return str; |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 623 } | 617 } |
| 624 #endif | 618 #endif |
| 625 | 619 |
| 626 string16 formatted = ReplaceStringPlaceholders(format_string, replacements, | 620 string16 formatted = ReplaceStringPlaceholders(format_string, replacements, |
| 627 offsets); | 621 offsets); |
| 628 AdjustParagraphDirectionality(&formatted); | 622 AdjustParagraphDirectionality(&formatted); |
| 629 | 623 |
| 630 return formatted; | 624 return formatted; |
| 631 } | 625 } |
| 632 | 626 |
| 633 #if CRBUG_9911_OBSOLETE_GOING_AWAY | |
| 634 #if !defined(WCHAR_T_IS_UTF16) | |
| 635 std::wstring GetStringF(int message_id, const std::wstring& a) { | |
| 636 return UTF16ToWide(GetStringFUTF16(message_id, WideToUTF16(a))); | |
| 637 } | |
| 638 | |
| 639 std::wstring GetStringF(int message_id, | |
| 640 const std::wstring& a, | |
| 641 const std::wstring& b) { | |
| 642 return UTF16ToWide(GetStringFUTF16(message_id, WideToUTF16(a), | |
| 643 WideToUTF16(b))); | |
| 644 } | |
| 645 | |
| 646 std::wstring GetStringF(int message_id, | |
| 647 const std::wstring& a, | |
| 648 const std::wstring& b, | |
| 649 const std::wstring& c) { | |
| 650 return UTF16ToWide(GetStringFUTF16(message_id, WideToUTF16(a), | |
| 651 WideToUTF16(b), WideToUTF16(c))); | |
| 652 } | |
| 653 | |
| 654 std::wstring GetStringF(int message_id, | |
| 655 const std::wstring& a, | |
| 656 const std::wstring& b, | |
| 657 const std::wstring& c, | |
| 658 const std::wstring& d) { | |
| 659 return UTF16ToWide(GetStringFUTF16(message_id, WideToUTF16(a), WideToUTF16(b), | |
| 660 WideToUTF16(c), WideToUTF16(d))); | |
| 661 } | |
| 662 #endif | |
| 663 #endif | |
| 664 | |
| 665 std::string GetStringFUTF8(int message_id, | 627 std::string GetStringFUTF8(int message_id, |
| 666 const string16& a) { | 628 const string16& a) { |
| 667 return UTF16ToUTF8(GetStringFUTF16(message_id, a)); | 629 return UTF16ToUTF8(GetStringFUTF16(message_id, a)); |
| 668 } | 630 } |
| 669 | 631 |
| 670 std::string GetStringFUTF8(int message_id, | 632 std::string GetStringFUTF8(int message_id, |
| 671 const string16& a, | 633 const string16& a, |
| 672 const string16& b) { | 634 const string16& b) { |
| 673 return UTF16ToUTF8(GetStringFUTF16(message_id, a, b)); | 635 return UTF16ToUTF8(GetStringFUTF16(message_id, a, b)); |
| 674 } | 636 } |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 718 const string16& c, | 680 const string16& c, |
| 719 const string16& d) { | 681 const string16& d) { |
| 720 std::vector<string16> replacements; | 682 std::vector<string16> replacements; |
| 721 replacements.push_back(a); | 683 replacements.push_back(a); |
| 722 replacements.push_back(b); | 684 replacements.push_back(b); |
| 723 replacements.push_back(c); | 685 replacements.push_back(c); |
| 724 replacements.push_back(d); | 686 replacements.push_back(d); |
| 725 return GetStringF(message_id, replacements, NULL); | 687 return GetStringF(message_id, replacements, NULL); |
| 726 } | 688 } |
| 727 | 689 |
| 728 #if CRBUG_9911_OBSOLETE_GOING_AWAY | |
| 729 std::wstring GetStringF(int message_id, const std::wstring& a, size_t* offset) { | |
| 730 DCHECK(offset); | |
| 731 std::vector<size_t> offsets; | |
| 732 std::vector<string16> replacements; | |
| 733 replacements.push_back(WideToUTF16(a)); | |
| 734 string16 result = GetStringF(message_id, replacements, &offsets); | |
| 735 DCHECK(offsets.size() == 1); | |
| 736 *offset = offsets[0]; | |
| 737 return UTF16ToWide(result); | |
| 738 } | |
| 739 | |
| 740 std::wstring GetStringF(int message_id, | |
| 741 const std::wstring& a, | |
| 742 const std::wstring& b, | |
| 743 std::vector<size_t>* offsets) { | |
| 744 std::vector<string16> replacements; | |
| 745 replacements.push_back(WideToUTF16(a)); | |
| 746 replacements.push_back(WideToUTF16(b)); | |
| 747 return UTF16ToWide(GetStringF(message_id, replacements, offsets)); | |
| 748 } | |
| 749 #endif | |
| 750 | |
| 751 string16 GetStringFUTF16(int message_id, const string16& a, size_t* offset) { | 690 string16 GetStringFUTF16(int message_id, const string16& a, size_t* offset) { |
| 752 DCHECK(offset); | 691 DCHECK(offset); |
| 753 std::vector<size_t> offsets; | 692 std::vector<size_t> offsets; |
| 754 std::vector<string16> replacements; | 693 std::vector<string16> replacements; |
| 755 replacements.push_back(a); | 694 replacements.push_back(a); |
| 756 string16 result = GetStringF(message_id, replacements, &offsets); | 695 string16 result = GetStringF(message_id, replacements, &offsets); |
| 757 DCHECK(offsets.size() == 1); | 696 DCHECK(offsets.size() == 1); |
| 758 *offset = offsets[0]; | 697 *offset = offsets[0]; |
| 759 return result; | 698 return result; |
| 760 } | 699 } |
| 761 | 700 |
| 762 string16 GetStringFUTF16(int message_id, | 701 string16 GetStringFUTF16(int message_id, |
| 763 const string16& a, | 702 const string16& a, |
| 764 const string16& b, | 703 const string16& b, |
| 765 std::vector<size_t>* offsets) { | 704 std::vector<size_t>* offsets) { |
| 766 std::vector<string16> replacements; | 705 std::vector<string16> replacements; |
| 767 replacements.push_back(a); | 706 replacements.push_back(a); |
| 768 replacements.push_back(b); | 707 replacements.push_back(b); |
| 769 return GetStringF(message_id, replacements, offsets); | 708 return GetStringF(message_id, replacements, offsets); |
| 770 } | 709 } |
| 771 | 710 |
| 772 #if CRBUG_9911_OBSOLETE_GOING_AWAY | |
| 773 std::wstring GetStringF(int message_id, int a) { | |
| 774 return GetStringF(message_id, UTF8ToWide(base::IntToString(a))); | |
| 775 } | |
| 776 | |
| 777 std::wstring GetStringF(int message_id, int64 a) { | |
| 778 return GetStringF(message_id, UTF8ToWide(base::Int64ToString(a))); | |
| 779 } | |
| 780 #endif | |
| 781 | |
| 782 string16 GetStringFUTF16Int(int message_id, int a) { | 711 string16 GetStringFUTF16Int(int message_id, int a) { |
| 783 return GetStringFUTF16(message_id, UTF8ToUTF16(base::IntToString(a))); | 712 return GetStringFUTF16(message_id, UTF8ToUTF16(base::IntToString(a))); |
| 784 } | 713 } |
| 785 | 714 |
| 786 string16 GetStringFUTF16Int(int message_id, int64 a) { | 715 string16 GetStringFUTF16Int(int message_id, int64 a) { |
| 787 return GetStringFUTF16(message_id, UTF8ToUTF16(base::Int64ToString(a))); | 716 return GetStringFUTF16(message_id, UTF8ToUTF16(base::Int64ToString(a))); |
| 788 } | 717 } |
| 789 | 718 |
| 790 string16 TruncateString(const string16& string, size_t length) { | 719 string16 TruncateString(const string16& string, size_t length) { |
| 791 if (string.size() <= length) | 720 if (string.size() <= length) |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 876 DCHECK(collator); | 805 DCHECK(collator); |
| 877 UErrorCode error = U_ZERO_ERROR; | 806 UErrorCode error = U_ZERO_ERROR; |
| 878 UCollationResult result = collator->compare( | 807 UCollationResult result = collator->compare( |
| 879 static_cast<const UChar*>(lhs.c_str()), static_cast<int>(lhs.length()), | 808 static_cast<const UChar*>(lhs.c_str()), static_cast<int>(lhs.length()), |
| 880 static_cast<const UChar*>(rhs.c_str()), static_cast<int>(rhs.length()), | 809 static_cast<const UChar*>(rhs.c_str()), static_cast<int>(rhs.length()), |
| 881 error); | 810 error); |
| 882 DCHECK(U_SUCCESS(error)); | 811 DCHECK(U_SUCCESS(error)); |
| 883 return result; | 812 return result; |
| 884 } | 813 } |
| 885 | 814 |
| 886 // Compares the character data stored in two different std:wstring strings by | |
| 887 // specified Collator instance. | |
| 888 UCollationResult CompareStringWithCollator(const icu::Collator* collator, | |
| 889 const std::wstring& lhs, | |
| 890 const std::wstring& rhs) { | |
| 891 DCHECK(collator); | |
| 892 UCollationResult result; | |
| 893 #if defined(WCHAR_T_IS_UTF32) | |
| 894 // Need to convert to UTF-16 to be compatible with UnicodeString's | |
| 895 // constructor. | |
| 896 string16 lhs_utf16 = WideToUTF16(lhs); | |
| 897 string16 rhs_utf16 = WideToUTF16(rhs); | |
| 898 | |
| 899 result = CompareString16WithCollator(collator, lhs_utf16, rhs_utf16); | |
| 900 #else | |
| 901 result = CompareString16WithCollator(collator, lhs, rhs); | |
| 902 #endif | |
| 903 return result; | |
| 904 } | |
| 905 | |
| 906 // Specialization of operator() method for string16 version. | 815 // Specialization of operator() method for string16 version. |
| 907 template <> | 816 template <> |
| 908 bool StringComparator<string16>::operator()(const string16& lhs, | 817 bool StringComparator<string16>::operator()(const string16& lhs, |
| 909 const string16& rhs) { | 818 const string16& rhs) { |
| 910 // If we can not get collator instance for specified locale, just do simple | 819 // If we can not get collator instance for specified locale, just do simple |
| 911 // string compare. | 820 // string compare. |
| 912 if (!collator_) | 821 if (!collator_) |
| 913 return lhs < rhs; | 822 return lhs < rhs; |
| 914 return CompareString16WithCollator(collator_, lhs, rhs) == UCOL_LESS; | 823 return CompareString16WithCollator(collator_, lhs, rhs) == UCOL_LESS; |
| 915 }; | 824 }; |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 958 for (size_t i = 0; i < arraysize(kAcceptLanguageList); ++i) { | 867 for (size_t i = 0; i < arraysize(kAcceptLanguageList); ++i) { |
| 959 if (!IsLocaleNameTranslated(kAcceptLanguageList[i], display_locale)) | 868 if (!IsLocaleNameTranslated(kAcceptLanguageList[i], display_locale)) |
| 960 // TODO(jungshik) : Put them at the of the list with language codes | 869 // TODO(jungshik) : Put them at the of the list with language codes |
| 961 // enclosed by brackets instead of skipping. | 870 // enclosed by brackets instead of skipping. |
| 962 continue; | 871 continue; |
| 963 locale_codes->push_back(kAcceptLanguageList[i]); | 872 locale_codes->push_back(kAcceptLanguageList[i]); |
| 964 } | 873 } |
| 965 } | 874 } |
| 966 | 875 |
| 967 } // namespace l10n_util | 876 } // namespace l10n_util |
| OLD | NEW |