| Index: third_party/libaddressinput/chromium/cpp/src/address_data.cc
|
| diff --git a/third_party/libaddressinput/chromium/cpp/src/address_data.cc b/third_party/libaddressinput/chromium/cpp/src/address_data.cc
|
| index 51d36c6d9d63153296da075856c3cfe536f09cce..08da6ca153507e543ff5af83d100f3008bc052ee 100644
|
| --- a/third_party/libaddressinput/chromium/cpp/src/address_data.cc
|
| +++ b/third_party/libaddressinput/chromium/cpp/src/address_data.cc
|
| @@ -24,6 +24,7 @@
|
|
|
| #include "region_data_constants.h"
|
| #include "rule.h"
|
| +#include "util/string_util.h"
|
|
|
| namespace i18n {
|
| namespace addressinput {
|
| @@ -65,7 +66,16 @@ void AddressData::FormatForDisplay(std::vector<std::string>* lines) const {
|
| rule.CopyFrom(Rule::GetDefault());
|
| rule.ParseSerializedRule(RegionDataConstants::GetRegionData(country_code));
|
|
|
| - const std::vector<std::vector<FormatElement> >& format = rule.GetFormat();
|
| + // If latinized rules are available and the |language_code| of this address is
|
| + // not the primary language code for the region, then use the latinized
|
| + // formatting rules.
|
| + const std::vector<std::vector<FormatElement> >& format =
|
| + rule.GetLatinFormat().empty() ||
|
| + language_code.empty() ||
|
| + NormalizeLanguageCode(language_code) ==
|
| + NormalizeLanguageCode(rule.GetLanguage())
|
| + ? rule.GetFormat() : rule.GetLatinFormat();
|
| +
|
| for (size_t i = 0; i < format.size(); ++i) {
|
| std::string line;
|
| for (size_t j = 0; j < format[i].size(); ++j) {
|
| @@ -107,28 +117,5 @@ void AddressData::SetFieldValue(AddressField field, const std::string& value) {
|
| }
|
| }
|
|
|
| -const std::string& AddressData::GuessLanguageCode() const {
|
| - Rule rule;
|
| - rule.CopyFrom(Rule::GetDefault());
|
| - if (!rule.ParseSerializedRule(
|
| - RegionDataConstants::GetRegionData(country_code))) {
|
| - return language_code;
|
| - }
|
| -
|
| - std::vector<std::string>::const_iterator lang_it =
|
| - std::find(rule.GetLanguages().begin(),
|
| - rule.GetLanguages().end(),
|
| - language_code);
|
| - if (lang_it != rule.GetLanguages().end()) {
|
| - return *lang_it;
|
| - }
|
| -
|
| - if (!rule.GetLanguage().empty()) {
|
| - return rule.GetLanguage();
|
| - }
|
| -
|
| - return language_code;
|
| -}
|
| -
|
| } // namespace addressinput
|
| } // namespace i18n
|
|
|