LibreOffice Module i18nlangtag (master) 1
Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | Friends | List of all members
LanguageTagImpl Class Reference
Collaboration diagram for LanguageTagImpl:
[legend]

Public Member Functions

 LanguageTagImpl (const LanguageTag &rLanguageTag)
 
 LanguageTagImpl (const LanguageTagImpl &rLanguageTagImpl)
 
 ~LanguageTagImpl ()
 
LanguageTagImploperator= (const LanguageTagImpl &rLanguageTagImpl)
 

Private Types

enum  Decision {
  DECISION_DONTKNOW ,
  DECISION_NO ,
  DECISION_YES
}
 
enum  Extraction {
  EXTRACTED_NONE ,
  EXTRACTED_LSC ,
  EXTRACTED_LV ,
  EXTRACTED_LR ,
  EXTRACTED_C_LOCALE ,
  EXTRACTED_X ,
  EXTRACTED_X_JOKER ,
  EXTRACTED_KNOWN_BAD
}
 

Private Member Functions

OUString const & getBcp47 () const
 
OUString const & getLanguage () const
 
OUString const & getScript () const
 
OUString const & getCountry () const
 
OUString getRegion () const
 
OUString const & getVariants () const
 
bool hasScript () const
 
OUString const & getGlibcLocaleString () const
 
void setScriptType (LanguageTag::ScriptType st)
 
LanguageTag::ScriptType getScriptType () const
 
bool isIsoLocale () const
 
bool isIsoODF () const
 
bool isValidBcp47 () const
 
void convertLocaleToBcp47 ()
 
bool convertLocaleToLang (bool bAllowOnTheFlyID)
 
void convertBcp47ToLocale ()
 
void convertBcp47ToLang ()
 
void convertLangToLocale ()
 
void convertLangToBcp47 ()
 
bool canonicalize ()
 
bool synCanonicalize ()
 Canonicalize if not yet done and synchronize initialized conversions. More...
 
OUString getLanguageFromLangtag ()
 
OUString getScriptFromLangtag ()
 
OUString getRegionFromLangtag ()
 
OUString getVariantsFromLangtag ()
 
LanguageTag::ImplPtr registerOnTheFly (LanguageType nRegisterID)
 Generates on-the-fly LangID and registers the maBcp47,mnLangID pair. More...
 
bool cacheSimpleLSCV ()
 Obtain Language, Script, Country and Variants via simpleExtract() and assign them to the cached variables if successful. More...
 

Static Private Member Functions

static Extraction simpleExtract (const OUString &rBcp47, OUString &rLanguage, OUString &rScript, OUString &rCountry, OUString &rRegion, OUString &rVariants)
 Of a language tag of the form lll[-Ssss][-CC][-vvvvvvvv] extract the portions. More...
 
static OUString convertToBcp47 (const css::lang::Locale &rLocale)
 Convert Locale to BCP 47 string without resolving system and creating temporary LanguageTag instances. More...
 

Private Attributes

css::lang::Locale maLocale
 
OUString maBcp47
 
OUString maCachedLanguage
 cache getLanguage() More...
 
OUString maCachedScript
 cache getScript() More...
 
OUString maCachedCountry
 cache getCountry() More...
 
OUString maCachedVariants
 cache getVariants() More...
 
OUString maCachedGlibcString
 cache getGlibcLocaleString() More...
 
lt_tag_t * mpImplLangtag
 liblangtag pointer More...
 
LanguageType mnLangID
 
LanguageTag::ScriptType meScriptType
 
Decision meIsValid
 
Decision meIsIsoLocale
 
Decision meIsIsoODF
 
Decision meIsLiblangtagNeeded
 whether processing with liblangtag needed More...
 
bool mbSystemLocale: 1
 
bool mbInitializedBcp47: 1
 
bool mbInitializedLocale: 1
 
bool mbInitializedLangID: 1
 
bool mbCachedLanguage: 1
 
bool mbCachedScript: 1
 
bool mbCachedCountry: 1
 
bool mbCachedVariants: 1
 
bool mbCachedGlibcString: 1
 

Friends

class LanguageTag
 

Detailed Description

Definition at line 258 of file languagetag.cxx.

Member Enumeration Documentation

◆ Decision

Enumerator
DECISION_DONTKNOW 
DECISION_NO 
DECISION_YES 

Definition at line 271 of file languagetag.cxx.

◆ Extraction

Enumerator
EXTRACTED_NONE 
EXTRACTED_LSC 
EXTRACTED_LV 
EXTRACTED_LR 
EXTRACTED_C_LOCALE 
EXTRACTED_X 
EXTRACTED_X_JOKER 
EXTRACTED_KNOWN_BAD 

Definition at line 358 of file languagetag.cxx.

Constructor & Destructor Documentation

◆ LanguageTagImpl() [1/2]

LanguageTagImpl::LanguageTagImpl ( const LanguageTag rLanguageTag)
explicit

Definition at line 399 of file languagetag.cxx.

References UNKNOWN.

◆ LanguageTagImpl() [2/2]

LanguageTagImpl::LanguageTagImpl ( const LanguageTagImpl rLanguageTagImpl)
explicit

Definition at line 423 of file languagetag.cxx.

References mpImplLangtag.

◆ ~LanguageTagImpl()

LanguageTagImpl::~LanguageTagImpl ( )

Definition at line 492 of file languagetag.cxx.

References mpImplLangtag.

Member Function Documentation

◆ cacheSimpleLSCV()

bool LanguageTagImpl::cacheSimpleLSCV ( )
private

Obtain Language, Script, Country and Variants via simpleExtract() and assign them to the cached variables if successful.

Returns
simpleExtract() successfully extracted and cached.

Definition at line 2042 of file languagetag.cxx.

References EXTRACTED_LR, EXTRACTED_LSC, EXTRACTED_LV, maBcp47, maCachedCountry, maCachedLanguage, maCachedScript, maCachedVariants, mbCachedCountry, mbCachedLanguage, mbCachedScript, mbCachedVariants, and simpleExtract().

Referenced by getLanguageFromLangtag(), getRegionFromLangtag(), getScriptFromLangtag(), and getVariantsFromLangtag().

◆ canonicalize()

bool LanguageTagImpl::canonicalize ( )
private

◆ convertBcp47ToLang()

void LanguageTagImpl::convertBcp47ToLang ( )
private

◆ convertBcp47ToLocale()

void LanguageTagImpl::convertBcp47ToLocale ( )
private

◆ convertLangToBcp47()

void LanguageTagImpl::convertLangToBcp47 ( )
private

◆ convertLangToLocale()

void LanguageTagImpl::convertLangToLocale ( )
private

◆ convertLocaleToBcp47()

void LanguageTagImpl::convertLocaleToBcp47 ( )
private

◆ convertLocaleToLang()

bool LanguageTagImpl::convertLocaleToLang ( bool  bAllowOnTheFlyID)
private

◆ convertToBcp47()

OUString LanguageTagImpl::convertToBcp47 ( const css::lang::Locale &  rLocale)
staticprivate

Convert Locale to BCP 47 string without resolving system and creating temporary LanguageTag instances.

Definition at line 2831 of file languagetag.cxx.

References I18NLANGTAG_QLT.

Referenced by canonicalize(), LanguageTag::convertToBcp47(), LanguageTag::registerImpl(), and registerOnTheFly().

◆ getBcp47()

const OUString & LanguageTagImpl::getBcp47 ( ) const
private

◆ getCountry()

OUString const & LanguageTagImpl::getCountry ( ) const
private

◆ getGlibcLocaleString()

OUString const & LanguageTagImpl::getGlibcLocaleString ( ) const
private

◆ getLanguage()

OUString const & LanguageTagImpl::getLanguage ( ) const
private

◆ getLanguageFromLangtag()

OUString LanguageTagImpl::getLanguageFromLangtag ( )
private

◆ getRegion()

OUString LanguageTagImpl::getRegion ( ) const
private

Definition at line 1928 of file languagetag.cxx.

References getRegionFromLangtag().

Referenced by isIsoLocale(), and isIsoODF().

◆ getRegionFromLangtag()

OUString LanguageTagImpl::getRegionFromLangtag ( )
private

◆ getScript()

OUString const & LanguageTagImpl::getScript ( ) const
private

Definition at line 1870 of file languagetag.cxx.

References getScriptFromLangtag(), maCachedScript, and mbCachedScript.

Referenced by LanguageTag::getScript(), hasScript(), and isIsoODF().

◆ getScriptFromLangtag()

OUString LanguageTagImpl::getScriptFromLangtag ( )
private

◆ getScriptType()

LanguageTag::ScriptType LanguageTagImpl::getScriptType ( ) const
private

Definition at line 2017 of file languagetag.cxx.

References meScriptType.

Referenced by LanguageTag::getScriptType().

◆ getVariants()

OUString const & LanguageTagImpl::getVariants ( ) const
private

Definition at line 1934 of file languagetag.cxx.

References getVariantsFromLangtag(), maCachedVariants, and mbCachedVariants.

Referenced by LanguageTag::getVariants(), and isIsoODF().

◆ getVariantsFromLangtag()

OUString LanguageTagImpl::getVariantsFromLangtag ( )
private

◆ hasScript()

bool LanguageTagImpl::hasScript ( ) const
private

Definition at line 2001 of file languagetag.cxx.

References getScript(), maCachedScript, and mbCachedScript.

Referenced by LanguageTag::hasScript().

◆ isIsoLocale()

bool LanguageTagImpl::isIsoLocale ( ) const
private

◆ isIsoODF()

bool LanguageTagImpl::isIsoODF ( ) const
private

◆ isValidBcp47()

bool LanguageTagImpl::isValidBcp47 ( ) const
private

◆ operator=()

LanguageTagImpl & LanguageTagImpl::operator= ( const LanguageTagImpl rLanguageTagImpl)

◆ registerOnTheFly()

LanguageTag::ImplPtr LanguageTagImpl::registerOnTheFly ( LanguageType  nRegisterID)
private

Generates on-the-fly LangID and registers the maBcp47,mnLangID pair.

Parameters
nRegisterIDIf not 0 and not LANGUAGE_DONTKNOW, suggest (!) to use that ID instead of generating an on-the-fly ID. Implementation may still generate an ID if the suggested ID is already used for another language tag.
Returns
NULL if no ID could be obtained or registration failed.

Definition at line 600 of file languagetag.cxx.

References convertToBcp47(), getNextOnTheFlyLanguage(), LANGUAGE_DONTKNOW, maBcp47, maLocale, mbInitializedBcp47, mbInitializedLangID, mbInitializedLocale, mnLangID, SAL_INFO, and SAL_WARN.

Referenced by convertLocaleToLang().

◆ setScriptType()

void LanguageTagImpl::setScriptType ( LanguageTag::ScriptType  st)
private

Definition at line 2029 of file languagetag.cxx.

References meScriptType, and LanguageTag::UNKNOWN.

Referenced by LanguageTag::setScriptType().

◆ simpleExtract()

LanguageTagImpl::Extraction LanguageTagImpl::simpleExtract ( const OUString &  rBcp47,
OUString &  rLanguage,
OUString &  rScript,
OUString &  rCountry,
OUString &  rRegion,
OUString &  rVariants 
)
staticprivate

Of a language tag of the form lll[-Ssss][-CC][-vvvvvvvv] extract the portions.

Does not check case or content!

Returns
EXTRACTED_LSC if simple tag was detected (i.e. one that would fulfill the isIsoODF() condition), EXTRACTED_LV if a tag with variant was detected, EXTRACTED_LR if a tag with 3-digit UN M.49 region code was detected EXTRACTED_C_LOCALE if a 'C' locale was detected, EXTRACTED_X if x-... privateuse tag was detected, EXTRACTED_X_JOKER if "*" joker was detected, EXTRACTED_KNOWN_BAD if a bad but known (to be remapped) tag was detected EXTRACTED_NONE else.

Definition at line 2447 of file languagetag.cxx.

References EXTRACTED_C_LOCALE, EXTRACTED_KNOWN_BAD, EXTRACTED_LR, EXTRACTED_LSC, EXTRACTED_LV, EXTRACTED_NONE, EXTRACTED_X, EXTRACTED_X_JOKER, and SAL_INFO.

Referenced by cacheSimpleLSCV(), and canonicalize().

◆ synCanonicalize()

bool LanguageTagImpl::synCanonicalize ( )
private

Friends And Related Function Documentation

◆ LanguageTag

friend class LanguageTag
friend

Definition at line 269 of file languagetag.cxx.

Member Data Documentation

◆ maBcp47

OUString LanguageTagImpl::maBcp47
mutableprivate

◆ maCachedCountry

OUString LanguageTagImpl::maCachedCountry
mutableprivate

◆ maCachedGlibcString

OUString LanguageTagImpl::maCachedGlibcString
mutableprivate

cache getGlibcLocaleString()

Definition at line 284 of file languagetag.cxx.

Referenced by getGlibcLocaleString(), and operator=().

◆ maCachedLanguage

OUString LanguageTagImpl::maCachedLanguage
mutableprivate

◆ maCachedScript

OUString LanguageTagImpl::maCachedScript
mutableprivate

◆ maCachedVariants

OUString LanguageTagImpl::maCachedVariants
mutableprivate

◆ maLocale

css::lang::Locale LanguageTagImpl::maLocale
mutableprivate

◆ mbCachedCountry

bool LanguageTagImpl::mbCachedCountry
mutableprivate

◆ mbCachedGlibcString

bool LanguageTagImpl::mbCachedGlibcString
mutableprivate

Definition at line 300 of file languagetag.cxx.

Referenced by getGlibcLocaleString(), and operator=().

◆ mbCachedLanguage

bool LanguageTagImpl::mbCachedLanguage
mutableprivate

◆ mbCachedScript

bool LanguageTagImpl::mbCachedScript
mutableprivate

◆ mbCachedVariants

bool LanguageTagImpl::mbCachedVariants
mutableprivate

◆ mbInitializedBcp47

bool LanguageTagImpl::mbInitializedBcp47
mutableprivate

◆ mbInitializedLangID

bool LanguageTagImpl::mbInitializedLangID
mutableprivate

◆ mbInitializedLocale

bool LanguageTagImpl::mbInitializedLocale
mutableprivate

◆ mbSystemLocale

bool LanguageTagImpl::mbSystemLocale
private

◆ meIsIsoLocale

Decision LanguageTagImpl::meIsIsoLocale
mutableprivate

Definition at line 289 of file languagetag.cxx.

Referenced by canonicalize(), convertLocaleToBcp47(), isIsoLocale(), and operator=().

◆ meIsIsoODF

Decision LanguageTagImpl::meIsIsoODF
mutableprivate

Definition at line 290 of file languagetag.cxx.

Referenced by canonicalize(), isIsoODF(), and operator=().

◆ meIsLiblangtagNeeded

Decision LanguageTagImpl::meIsLiblangtagNeeded
mutableprivate

whether processing with liblangtag needed

Definition at line 291 of file languagetag.cxx.

Referenced by canonicalize(), getGlibcLocaleString(), operator=(), and synCanonicalize().

◆ meIsValid

Decision LanguageTagImpl::meIsValid
mutableprivate

Definition at line 288 of file languagetag.cxx.

Referenced by canonicalize(), isValidBcp47(), and operator=().

◆ meScriptType

LanguageTag::ScriptType LanguageTagImpl::meScriptType
mutableprivate

Definition at line 287 of file languagetag.cxx.

Referenced by getScriptType(), operator=(), and setScriptType().

◆ mnLangID

LanguageType LanguageTagImpl::mnLangID
mutableprivate

◆ mpImplLangtag

lt_tag_t* LanguageTagImpl::mpImplLangtag
mutableprivate

The documentation for this class was generated from the following file: