diff options
author | jshin <jshin@chromium.org> | 2015-08-07 03:11:09 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-08-07 10:11:42 +0000 |
commit | 8b581d8b638951f98c0fb0c0116ac18b355b825e (patch) | |
tree | 58623cbfa64540aca8cb288b29bf8a0efbb2327b /base/BUILD.gn | |
parent | 3bc71b8291a88cc35c21d05d9fb99787cccfddf5 (diff) | |
download | chromium_src-8b581d8b638951f98c0fb0c0116ac18b355b825e.zip chromium_src-8b581d8b638951f98c0fb0c0116ac18b355b825e.tar.gz chromium_src-8b581d8b638951f98c0fb0c0116ac18b355b825e.tar.bz2 |
Add ICU message format support
Adopt and customize a ICU message format wrapper used at Google to meet
Chromium's need.
This will enable formatting of 'complex messages' requiring plural and/or
selector (e.g. gender or 'single vs multiple') support with more than one
parameters.
Besides, l10n_util::GetPluralStringF* is rewritten to use this API.
I'm also planning to use this API to add a similar support to Chromium's
JavaScript-based UI and extensions.
References:
MessageFormat specs:
http://icu-project.org/apiref/icu4j/com/ibm/icu/text/MessageFormat.html
http://icu-project.org/apiref/icu4c/classicu_1_1DecimalFormat.html#details
Examples:
http://userguide.icu-project.org/formatparse/messages
message_formatter_unittest.cc
go/plurals inside Google.
BUG=481734
TEST=base_unittests --gtest_filter="MessageFormat*"
Review URL: https://codereview.chromium.org/1140153005
Cr-Commit-Position: refs/heads/master@{#342327}
Diffstat (limited to 'base/BUILD.gn')
-rw-r--r-- | base/BUILD.gn | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/base/BUILD.gn b/base/BUILD.gn index b8ae3a9..6f364a9 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn @@ -987,6 +987,8 @@ component("i18n") { "i18n/icu_string_conversions.h", "i18n/icu_util.cc", "i18n/icu_util.h", + "i18n/message_formatter.cc", + "i18n/message_formatter.h", "i18n/number_formatting.cc", "i18n/number_formatting.h", "i18n/rtl.cc", @@ -1006,10 +1008,12 @@ component("i18n") { ] defines = [ "BASE_I18N_IMPLEMENTATION" ] configs += [ "//build/config/compiler:wexit_time_destructors" ] + public_deps = [ + "//third_party/icu", + ] deps = [ ":base", "//base/third_party/dynamic_annotations", - "//third_party/icu", ] if (!is_debug) { @@ -1261,6 +1265,7 @@ test("base_unittests") { "i18n/char_iterator_unittest.cc", "i18n/file_util_icu_unittest.cc", "i18n/icu_string_conversions_unittest.cc", + "i18n/message_formatter_unittest.cc", "i18n/number_formatting_unittest.cc", "i18n/rtl_unittest.cc", "i18n/streaming_utf8_validator_unittest.cc", |