10#ifndef INCLUDED_I18NLANGTAG_LANGUAGETAG_HXX
11#define INCLUDED_I18NLANGTAG_LANGUAGETAG_HXX
14#include <rtl/locale.h>
15#include <rtl/ustring.hxx>
16#include <com/sun/star/lang/Locale.hpp>
35#define I18NLANGTAG_QLT_ASCII "qlt"
89 explicit LanguageTag(
const OUString & rBcp47LanguageTag,
bool bCanonicalize =
false );
92 explicit LanguageTag(
const css::lang::Locale & rLocale );
103 explicit LanguageTag(
const OUString& rBcp47,
const OUString& rLanguage,
104 std::u16string_view rScript,
const OUString& rCountry );
110 explicit LanguageTag(
const rtl_Locale & rLocale );
126 const OUString &
getBcp47(
bool bResolveSystem =
true )
const;
134 OUString getBcp47MS()
const;
150 const css::lang::Locale &
getLocale(
bool bResolveSystem =
true )
const;
159 LanguageType getLanguageType(
bool bResolveSystem =
true )
const;
173 void getIsoLanguageScriptCountry( OUString& rLanguage,
174 OUString& rScript, OUString& rCountry )
const;
198 OUString getLanguageAndScript()
const;
276 LanguageTag & reset(
const OUString & rBcp47LanguageTag );
279 LanguageTag & reset(
const css::lang::Locale & rLocale );
327 ::std::vector< OUString > getFallbackStrings(
bool bIncludeFullBcp47 )
const;
365 static ::std::vector< OUString >::const_iterator getFallback( const ::std::vector< OUString > & rList,
366 const OUString & rReference );
391 static ::std::vector< css::lang::Locale >::const_iterator getMatchingFallback(
392 const ::std::vector< css::lang::Locale > & rList,
393 const css::lang::Locale & rReference );
401 bool equals(
const LanguageTag & rLanguageTag )
const;
432 static css::lang::Locale convertToLocale(
LanguageType nLangID,
bool bResolveSystem =
true );
441 static LanguageType convertToLanguageType(
const css::lang::Locale& rLocale,
bool bResolveSystem =
true );
457 static OUString
convertToBcp47(
const css::lang::Locale& rLocale,
bool bResolveSystem =
true );
471 static css::lang::Locale convertToLocale(
const OUString& rBcp47,
bool bResolveSystem =
true );
483 static LanguageType convertToLanguageType(
const OUString& rBcp47 );
496 static LanguageType convertToLanguageTypeWithFallback(
const OUString& rBcp47 );
509 static css::lang::Locale convertToLocaleWithFallback(
const OUString& rBcp47 );
516 static LanguageType convertToLanguageTypeWithFallback(
const css::lang::Locale& rLocale );
544 static bool isValidBcp47(
const OUString& rString, OUString* o_pCanonicalized,
545 PrivateUse ePrivateUse = PrivateUse::ALLOW );
552 static void setConfiguredSystemLanguage(
LanguageType nLang );
555 static void disable_lt_tag_parse();
557 typedef std::shared_ptr< LanguageTagImpl >
ImplPtr;
575 void syncVarsFromRawImpl()
const;
576 void syncVarsFromImpl()
const;
583 void convertFromRtlLocale();
593 static bool isIsoLanguage(
const OUString& rLanguage );
594 static bool isIsoScript(
const OUString& rScript );
595 static bool isIsoCountry(
const OUString& rRegion );
bool convertLocaleToLang(bool bAllowOnTheFlyID)
void convertLangToLocale()
bool synCanonicalize()
Canonicalize if not yet done and synchronize initialized conversions.
OUString const & getGlibcLocaleString() const
static OUString convertToBcp47(const css::lang::Locale &rLocale)
Convert Locale to BCP 47 string without resolving system and creating temporary LanguageTag instances...
OUString const & getLanguage() const
LanguageTagImpl & operator=(const LanguageTagImpl &rLanguageTagImpl)
OUString const & getScript() const
OUString const & getCountry() const
LanguageTag::ScriptType getScriptType() const
OUString const & getVariants() const
OUString const & getBcp47() const
bool isValidBcp47() const
void convertBcp47ToLocale()
void setScriptType(LanguageTag::ScriptType st)
void convertBcp47ToLang()
Wrapper for liblangtag BCP 47 language tags, MS-LangIDs, locales and conversions in between.
bool isSystemLocale() const
If this tag was constructed as an empty tag denoting the system locale.
css::lang::Locale maLocale
PrivateUse
Enums to be used with isValidBcp47().
@ DISALLOW
Disallow all private-use and 'qlt' local-use, other 'qaa' to 'qtz' local-use are allowed.
ScriptType
ScriptType for a language.
std::shared_ptr< LanguageTagImpl > ImplPtr
LanguageTag(LanguageTag const &)=default
LanguageTag(LanguageTag &&)=default
#define I18NLANGTAG_DLLPUBLIC
constexpr OUStringLiteral I18NLANGTAG_QLT
const LanguageTag & getLocale()
bool operator<(const wwFont &r1, const wwFont &r2)
bool operator!=(const XclExpString &rLeft, const XclExpString &rRight)
bool operator==(const XclFontData &rLeft, const XclFontData &rRight)