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}


CrOS-Libchrome-Original-Commit: 8b581d8b638951f98c0fb0c0116ac18b355b825e
5 files changed
tree: eb94679d5320c20370d92f63937841095c932ccd
  1. base/
  2. build/
  3. components/
  4. dbus/
  5. device/
  6. ipc/
  7. mojo/
  8. testing/
  9. third_party/
  10. ui/