diff options
author | Eike Rathke <erack@redhat.com> | 2012-11-20 15:07:35 +0100 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2012-11-20 15:08:47 +0100 |
commit | b134b6dd76843ba4423006bc22ecd527e98e683a (patch) | |
tree | 602770825ccbfca349efc810c649d64310e85c16 /i18npool/inc | |
parent | d5d7232fb5eac4a449cd35ab605075a30c7324d3 (diff) |
slowly stabbing MsLangId::convert...() to death
Change-Id: I0134593f8ba664b7a8e8a14f54485b96b749418d
Diffstat (limited to 'i18npool/inc')
-rw-r--r-- | i18npool/inc/i18npool/mslangid.hxx | 195 |
1 files changed, 74 insertions, 121 deletions
diff --git a/i18npool/inc/i18npool/mslangid.hxx b/i18npool/inc/i18npool/mslangid.hxx index 120d9c6313d4..eba15ad944d9 100644 --- a/i18npool/inc/i18npool/mslangid.hxx +++ b/i18npool/inc/i18npool/mslangid.hxx @@ -26,20 +26,10 @@ #include "i18npool/lang.h" #include <com/sun/star/lang/Locale.hpp> -// 0 := normal usage -// 1 := force LanguageTag and make all conversion functions private to make the -// compiler bail out -#define I18NPOOL_FORCE_LANGUAGETAG 0 - /** Methods related to Microsoft language IDs. For details about MS-LANGIDs please see lang.h */ class I18NISOLANG_DLLPUBLIC MsLangId { - -#if I18NPOOL_FORCE_LANGUAGETAG - friend class LanguageTag; -#endif - public: /// Create a LangID from a primary and a sublanguage. @@ -93,73 +83,6 @@ public: static LanguageType getRealLanguage( LanguageType nLang ); -#if I18NPOOL_FORCE_LANGUAGETAG -private: -#endif - - /** @short: Convert a LanguageType to a Locale, resolving LANGUAGE_SYSTEM. - - @ATTENTION: A round trip convertLanguageToLocale( - convertLocaleToLanguage( ...)) is NOT possible because this - method substitutes LANGUAGE_SYSTEM and the like. If round-trip - is desired, you MUST use convertLanguageToLocale( ..., false) - instead. - */ - static void convertLanguageToLocale( LanguageType nLang, - ::com::sun::star::lang::Locale & rLocale ); - - - /** @short: Convert a LanguageType to a Locale with handling of - getRealLanguage(). - - @descr: If bResolveSystem==true don't use to convert a Language to a - Locale for file storage because it substitutes LANGUAGE_SYSTEM - and LANGUAGE_NONE and similar, use only at runtime! If - bResolveSystem==false a LANGUAGE_SYSTEM results in an empty - Locale. - - @ATTENTION: A round trip convertLanguageToLocale( - convertLocaleToLanguage( ...)) using the default parameter is - NOT possible because this method - substitutes LANGUAGE_SYSTEM and the like. If round-trip is - desired, you MUST use convertLanguageToLocale( ..., false) - instead. - */ - static ::com::sun::star::lang::Locale convertLanguageToLocale( - LanguageType nLang, bool bResolveSystem = true ); - - - /** Convert a Locale to a LanguageType with handling of an empty language - name designating the SYSTEM language. - */ - static LanguageType convertLocaleToLanguage( const ::com::sun::star::lang::Locale & rLocale ); - - - /** Convert a LanguageType to a Locale, resolving LANGUAGE_SYSTEM, falling - back to a default locale if no exact match was found. - */ - static ::com::sun::star::lang::Locale convertLanguageToLocaleWithFallback( LanguageType nLang ); - - - /** Convert a Locale to a LanguageType with handling of an empty language - name designating the SYSTEM language, falling back to a default locale - if no exact match was found. - */ - static LanguageType convertLocaleToLanguageWithFallback( - const ::com::sun::star::lang::Locale & rLocale ); - - - /** To be used only by LanguageTag. */ - I18NISOLANG_DLLPRIVATE static LanguageType lookupFallbackLanguage( LanguageType nLang ); - - /** To be used only by LanguageTag. */ - I18NISOLANG_DLLPRIVATE static ::com::sun::star::lang::Locale lookupFallbackLocale( - const ::com::sun::star::lang::Locale & rLocale ); - - -#if I18NPOOL_FORCE_LANGUAGETAG -public: -#endif // TODO: refactor to LanguageTag? Used only in // i18npool/source/localedata/localedata.cxx @@ -170,50 +93,12 @@ public: static ::com::sun::star::lang::Locale getFallbackLocale( const ::com::sun::star::lang::Locale & rLocale ); -#if I18NPOOL_FORCE_LANGUAGETAG -private: -#endif - - // ----------------------------- - // - ConvertLanguageToIsoNames - - // ----------------------------- - - static void convertLanguageToIsoNames( LanguageType nLang, - rtl::OUString& rLangStr, rtl::OUString& rCountry ); - static void convertLanguageToIsoNames( LanguageType nLang, - rtl::OString& rLangStr, rtl::OString& rCountry ); - static rtl::OUString convertLanguageToIsoString( LanguageType nLang, - sal_Unicode cSep = '-' ); - static rtl::OString convertLanguageToIsoByteString( LanguageType nLang, - sal_Char cSep = '-' ); - - // ----------------------------- - // - ConvertIsoNamesToLanguage - - // ----------------------------- - - static LanguageType convertIsoNamesToLanguage( const rtl::OUString& rLang, - const rtl::OUString& rCountry ); - static LanguageType convertIsoNamesToLanguage( const rtl::OString& rLang, - const rtl::OString& rCountry ); - static LanguageType convertIsoStringToLanguage( - const rtl::OUString& rString, sal_Unicode cSep = '-' ); - -#if I18NPOOL_FORCE_LANGUAGETAG -public: -#endif + // TODO: refactor to LanguageTag, used only in // i18npool/source/isolang/inunx.cxx to convert Unix locale string static LanguageType convertUnxByteStringToLanguage( const rtl::OString& rString ); -#if I18NPOOL_FORCE_LANGUAGETAG -private: -#endif - - -#if I18NPOOL_FORCE_LANGUAGETAG -public: -#endif static LanguageType resolveSystemLanguageByScriptType( LanguageType nLang, sal_Int16 nType ); @@ -308,6 +193,79 @@ public: // --------------------------------------------------------------------------- + /** Encapsulated conversion methods used by LanguageTag and conversions, + not to be used by anything else. + */ + class Conversion + { + private: + + friend class LanguageTag; + + friend ::com::sun::star::lang::Locale MsLangId::getFallbackLocale( + const ::com::sun::star::lang::Locale & rLocale ); + + friend LanguageType MsLangId::convertUnxByteStringToLanguage( + const rtl::OString& rString ); + + + /** Convert a Locale to a LanguageType with handling of an empty + language name designating LANGUAGE_SYSTEM. + */ + I18NISOLANG_DLLPRIVATE static LanguageType convertLocaleToLanguage( + const ::com::sun::star::lang::Locale & rLocale ); + + /** Used by convertLocaleToLanguage(Locale) */ + I18NISOLANG_DLLPRIVATE static LanguageType convertIsoNamesToLanguage( + const rtl::OUString& rLang, const rtl::OUString& rCountry ); + + + /** Used by convertUnxByteStringToLanguage(OString) */ + I18NISOLANG_DLLPRIVATE static LanguageType convertIsoNamesToLanguage( + const rtl::OString& rLang, const rtl::OString& rCountry ); + + + /** Convert a LanguageType to a Locale. + + @param bResolveSystem + If bResolveSystem==true, a LANGUAGE_SYSTEM is resolved. + If bResolveSystem==false, a LANGUAGE_SYSTEM results in an + empty Locale. + */ + I18NISOLANG_DLLPRIVATE static ::com::sun::star::lang::Locale convertLanguageToLocale( + LanguageType nLang, bool bResolveSystem ); + + /** Convert a LanguageType to a Locale, resolving LANGUAGE_SYSTEM. + + Used by convertLanguageToLocale(LanguageType,bool) + */ + I18NISOLANG_DLLPRIVATE static void convertLanguageToLocale( + LanguageType nLang, ::com::sun::star::lang::Locale & rLocale ); + + /** Used by convertLanguageToLocale(LanguageType,Locale) */ + I18NISOLANG_DLLPRIVATE static void convertLanguageToIsoNames( + LanguageType nLang, rtl::OUString& rLangStr, rtl::OUString& rCountry ); + + + I18NISOLANG_DLLPRIVATE static LanguageType lookupFallbackLanguage( LanguageType nLang ); + + I18NISOLANG_DLLPRIVATE static ::com::sun::star::lang::Locale lookupFallbackLocale( + const ::com::sun::star::lang::Locale & rLocale ); + + + /** Convert a LanguageType to a Locale, resolving LANGUAGE_SYSTEM, + falling back to a default locale if no exact match was found. + + Used by getFallbackLocale(Locale) + */ + I18NISOLANG_DLLPRIVATE static ::com::sun::star::lang::Locale convertLanguageToLocaleWithFallback( + LanguageType nLang ); + + /** Used by convertLanguageToLocaleWithFallback(LanguageType) */ + I18NISOLANG_DLLPRIVATE static ::com::sun::star::lang::Locale lookupFallbackLocale( + LanguageType nLang ); + }; + private: static LanguageType nConfiguredSystemLanguage; @@ -323,11 +281,6 @@ private: // Substitute LANGUAGE_SYSTEM for LANGUAGE_SYSTEM_DEFAULT and // LANGUAGE_PROCESS_OR_USER_DEFAULT, other values aren't touched. I18NISOLANG_DLLPRIVATE static inline LanguageType simplifySystemLanguages( LanguageType nLang ); - - // Several locale lookups with fall-back - I18NISOLANG_DLLPRIVATE static LanguageType lookupFallbackLanguage( - const ::com::sun::star::lang::Locale & rLocale ); - I18NISOLANG_DLLPRIVATE static ::com::sun::star::lang::Locale lookupFallbackLocale( LanguageType nLang ); }; |