diff options
author | Eike Rathke <erack@redhat.com> | 2012-11-16 18:44:19 +0100 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2012-11-16 18:45:05 +0100 |
commit | 3eb4304af99265c898835cd307ba7d689038996b (patch) | |
tree | 3f35698617a8fa89555382ba88dcdbefa1670d1d | |
parent | bin/lo-pack-sources: fix to work with submodules (diff) | |
download | core-3eb4304af99265c898835cd307ba7d689038996b.tar.gz core-3eb4304af99265c898835cd307ba7d689038996b.zip |
added LanguageTag::getIsoLanguageCountry() method
Change-Id: I8917c2958f021f11933d9da7fec8ef01609387c8
-rw-r--r-- | i18npool/inc/i18npool/languagetag.hxx | 15 | ||||
-rw-r--r-- | i18npool/source/languagetag/languagetag.cxx | 14 |
2 files changed, 29 insertions, 0 deletions
diff --git a/i18npool/inc/i18npool/languagetag.hxx b/i18npool/inc/i18npool/languagetag.hxx index 5666fd158600..552110dc4366 100644 --- a/i18npool/inc/i18npool/languagetag.hxx +++ b/i18npool/inc/i18npool/languagetag.hxx @@ -95,6 +95,21 @@ public: */ LanguageType getLanguageType( bool bResolveSystem = true ) const; + /** Obtain ISO strings for language and country. + + This is a convenience method for places that so far use only language and + country to replace the MsLangId::convert...IsoNames...() calls. Avoid + use in new code. + + ATTENTION! May return empty strings if the language tag is not + expressable in valid ISO codes! + + @see isIsoLocale() + + Always resolves an empty tag to the system locale. + */ + void getIsoLanguageCountry( rtl::OUString& rLanguage, rtl::OUString& rCountry ) const; + /** Get ISO 639 language code, or BCP 47 language. Always resolves an empty tag to the system locale. diff --git a/i18npool/source/languagetag/languagetag.cxx b/i18npool/source/languagetag/languagetag.cxx index 3e655ee87bb3..f863ae2ca7b1 100644 --- a/i18npool/source/languagetag/languagetag.cxx +++ b/i18npool/source/languagetag/languagetag.cxx @@ -618,6 +618,20 @@ LanguageType LanguageTag::getLanguageType( bool bResolveSystem ) const } +void LanguageTag::getIsoLanguageCountry( rtl::OUString& rLanguage, rtl::OUString& rCountry ) const +{ + if (!isIsoLocale()) + { + rLanguage = OUString(); + rCountry = OUString(); + return; + } + // After isIsoLocale() it's safe to call getLanguage() for ISO code. + rLanguage = getLanguage(); + rCountry = getCountry(); +} + + namespace { |