summaryrefslogtreecommitdiff
path: root/i18nlangtag
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2013-07-10 15:57:25 +0200
committerEike Rathke <erack@redhat.com>2013-07-10 15:59:19 +0200
commit1e744d5d9de568aeef6794365dc6f2bf84537ddb (patch)
treeebe07251cc7f5f1d9a8dbbef9e24fd23ba7949a2 /i18nlangtag
parenta9e0c222f504104124485ef4684ce6f79d3dee52 (diff)
changed getIsoLanguageCountry() to getIsoLanguageScriptCountry()
And don't write ODF *:script if *:language is not written either. Change-Id: If6d49cc6fbb8d566cc59edf35ed7991d57d941c0
Diffstat (limited to 'i18nlangtag')
-rw-r--r--i18nlangtag/source/languagetag/languagetag.cxx21
1 files changed, 13 insertions, 8 deletions
diff --git a/i18nlangtag/source/languagetag/languagetag.cxx b/i18nlangtag/source/languagetag/languagetag.cxx
index 7d475806b3c9..13e25f8b8197 100644
--- a/i18nlangtag/source/languagetag/languagetag.cxx
+++ b/i18nlangtag/source/languagetag/languagetag.cxx
@@ -877,17 +877,22 @@ LanguageType LanguageTag::getLanguageType( bool bResolveSystem ) const
}
-void LanguageTag::getIsoLanguageCountry( OUString& rLanguage, OUString& rCountry ) const
+void LanguageTag::getIsoLanguageScriptCountry( OUString& rLanguage, OUString& rScript, OUString& rCountry ) const
{
- if (!isIsoLocale())
+ // Calling isIsoODF() first is a predicate for getLanguage(), getScript()
+ // and getCountry() to work correctly in this context.
+ if (isIsoODF())
{
- rLanguage = OUString();
- rCountry = OUString();
- return;
+ rLanguage = getLanguage();
+ rScript = getScript();
+ rCountry = getCountry();
+ }
+ else
+ {
+ rLanguage = (isIsoLanguage( getLanguage()) ? getLanguage() : OUString());
+ rScript = (isIsoScript( getScript()) ? getScript() : OUString());
+ rCountry = (isIsoCountry( getCountry()) ? getCountry() : OUString());
}
- // After isIsoLocale() it's safe to call getLanguage() for ISO code.
- rLanguage = getLanguage();
- rCountry = getCountry();
}