diff options
author | Eike Rathke <erack@redhat.com> | 2012-11-30 16:16:20 +0100 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2012-11-30 17:27:07 +0100 |
commit | 84f24288ee5883cd533985ee9ff66b60046bd4ac (patch) | |
tree | 801acecdd38c28c5109461baaf49b48bc9b5268d | |
parent | 7baca04727fbd3297c6e4b9815bf2a4695175e2e (diff) |
added rtl_Locale convenience ctor
Change-Id: I195506b32a5cbf751ac90ad1ab13680097c8c428
-rw-r--r-- | i18npool/inc/i18npool/languagetag.hxx | 8 | ||||
-rw-r--r-- | i18npool/source/languagetag/languagetag.cxx | 22 |
2 files changed, 30 insertions, 0 deletions
diff --git a/i18npool/inc/i18npool/languagetag.hxx b/i18npool/inc/i18npool/languagetag.hxx index cefb0de81c9a..0b3eeddd150f 100644 --- a/i18npool/inc/i18npool/languagetag.hxx +++ b/i18npool/inc/i18npool/languagetag.hxx @@ -16,6 +16,8 @@ #include <i18npool/i18npooldllapi.h> #include <i18npool/lang.h> +typedef struct _rtl_Locale rtl_Locale; // as in rtl/locale.h + /** Wrapper for liblangtag BCP 47 language tags, MS-LangIDs, locales and conversions in between. @@ -57,6 +59,12 @@ public: */ explicit LanguageTag( const rtl::OUString& rLanguage, const rtl::OUString& rCountry ); + /** Init LanguageTag with rtl_Locale. + + This is a convenience ctor. + */ + explicit LanguageTag( const rtl_Locale & rLocale ); + LanguageTag( const LanguageTag & rLanguageTag ); ~LanguageTag(); LanguageTag& operator=( const LanguageTag & rLanguageTag ); diff --git a/i18npool/source/languagetag/languagetag.cxx b/i18npool/source/languagetag/languagetag.cxx index 8ec730c292ec..fc5b0586c5d3 100644 --- a/i18npool/source/languagetag/languagetag.cxx +++ b/i18npool/source/languagetag/languagetag.cxx @@ -13,6 +13,7 @@ #include <rtl/bootstrap.hxx> #include <osl/file.hxx> #include <rtl/instance.hxx> +#include <rtl/locale.h> //#define erDEBUG @@ -229,6 +230,27 @@ LanguageTag::LanguageTag( const rtl::OUString& rLanguage, const rtl::OUString& r } +LanguageTag::LanguageTag( const rtl_Locale & rLocale ) + : + maLocale( rLocale.Language, rLocale.Country, rLocale.Variant), + mpImplLangtag( NULL), + mnLangID( LANGUAGE_DONTKNOW), + meIsValid( DECISION_DONTKNOW), + meIsIsoLocale( DECISION_DONTKNOW), + meIsIsoODF( DECISION_DONTKNOW), + mbSystemLocale( maLocale.Language.isEmpty()), + mbInitializedBcp47( false), + mbInitializedLocale( !mbSystemLocale), + mbInitializedLangID( false), + mbCachedLanguage( false), + mbCachedScript( false), + mbCachedCountry( false), + mbIsFallback( false) +{ + theDataRef::get().incRef(); +} + + LanguageTag::LanguageTag( const LanguageTag & rLanguageTag ) : maLocale( rLanguageTag.maLocale), |