added LanguageTag::getGlibcLocaleString()

Change-Id: I5e77026f5c016d912fa342a5e1bca08eb445b15c
This commit is contained in:
Eike Rathke 2013-03-28 14:51:21 +01:00
parent a93f651c34
commit 33f26ca42f
2 changed files with 36 additions and 0 deletions

View File

@ -158,6 +158,19 @@ public:
*/
OUString getRegion() const;
/** Get a GLIBC locale string.
Always resolves an empty tag to the system locale.
@param rEncoding
An encoding to be appended to language_country, for example
".UTF-8" including the dot.
@return The resulting GLIBC locale string if it could be constructed,
if not an empty string is returned.
*/
OUString getGlibcLocaleString( const OUString & rEncoding ) const;
/** If language tag has a non-default script specified.
*/
bool hasScript() const;

View File

@ -950,6 +950,29 @@ OUString LanguageTag::getRegion() const
}
OUString LanguageTag::getGlibcLocaleString( const OUString & rEncoding ) const
{
OUString aRet;
if (isIsoLocale())
{
OUString aCountry( getCountry());
if (aCountry.isEmpty())
aRet = getLanguage() + rEncoding;
else
aRet = getLanguage() + "_" + aCountry + rEncoding;
}
else
{
/* FIXME: use the aImplIsoLangGLIBCModifiersEntries table from
* i18npool/source/isolang/isolang.cxx or let liblangtag handle it. So
* far no code was prepared for anything else than a simple
* language_country locale so we don't loose anything here right now.
* */
}
return aRet;
}
bool LanguageTag::hasScript() const
{
if (!mbCachedScript)