LCOV - code coverage report
Current view: top level - i18npool/source/isolang - mslangid.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 97 161 60.2 %
Date: 2012-08-25 Functions: 20 27 74.1 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 48 102 47.1 %

           Branch data     Line data    Source code
       1                 :            : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2                 :            : /*
       3                 :            :  * This file is part of the LibreOffice project.
       4                 :            :  *
       5                 :            :  * This Source Code Form is subject to the terms of the Mozilla Public
       6                 :            :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7                 :            :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8                 :            :  *
       9                 :            :  * This file incorporates work covered by the following license notice:
      10                 :            :  *
      11                 :            :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12                 :            :  *   contributor license agreements. See the NOTICE file distributed
      13                 :            :  *   with this work for additional information regarding copyright
      14                 :            :  *   ownership. The ASF licenses this file to you under the Apache
      15                 :            :  *   License, Version 2.0 (the "License"); you may not use this file
      16                 :            :  *   except in compliance with the License. You may obtain a copy of
      17                 :            :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18                 :            :  */
      19                 :            : 
      20                 :            : #include <sal/config.h>
      21                 :            : #include <rtl/ustring.hxx>
      22                 :            : #include <rtl/string.hxx>
      23                 :            : #include <com/sun/star/i18n/ScriptType.hpp>
      24                 :            : 
      25                 :            : #include "i18npool/mslangid.hxx"
      26                 :            : 
      27                 :            : 
      28                 :            : LanguageType MsLangId::nConfiguredSystemLanguage   = LANGUAGE_SYSTEM;
      29                 :            : LanguageType MsLangId::nConfiguredSystemUILanguage = LANGUAGE_SYSTEM;
      30                 :            : 
      31                 :            : LanguageType MsLangId::nConfiguredWesternFallback  = LANGUAGE_SYSTEM;
      32                 :            : LanguageType MsLangId::nConfiguredAsianFallback    = LANGUAGE_SYSTEM;
      33                 :            : LanguageType MsLangId::nConfiguredComplexFallback  = LANGUAGE_SYSTEM;
      34                 :            : 
      35                 :            : // static
      36                 :        368 : void MsLangId::setConfiguredSystemLanguage( LanguageType nLang )
      37                 :            : {
      38                 :        368 :     nConfiguredSystemLanguage = nLang;
      39                 :        368 : }
      40                 :            : 
      41                 :            : 
      42                 :            : // static
      43                 :        158 : void MsLangId::setConfiguredSystemUILanguage( LanguageType nLang )
      44                 :            : {
      45                 :        158 :     nConfiguredSystemUILanguage = nLang;
      46                 :        158 : }
      47                 :            : 
      48                 :            : // static
      49                 :        474 : void MsLangId::setConfiguredWesternFallback( LanguageType nLang )
      50                 :            : {
      51                 :        474 :     nConfiguredWesternFallback = nLang;
      52                 :        474 : }
      53                 :            : 
      54                 :            : // static
      55                 :          0 : void MsLangId::setConfiguredAsianFallback( LanguageType nLang )
      56                 :            : {
      57                 :          0 :     nConfiguredAsianFallback = nLang;
      58                 :          0 : }
      59                 :            : 
      60                 :            : // static
      61                 :          0 : void MsLangId::setConfiguredComplexFallback( LanguageType nLang )
      62                 :            : {
      63                 :          0 :     nConfiguredComplexFallback = nLang;
      64                 :          0 : }
      65                 :            : 
      66                 :            : // static
      67                 :     441348 : inline LanguageType MsLangId::simplifySystemLanguages( LanguageType nLang )
      68                 :            : {
      69         [ +  + ]:     441348 :     switch (nLang)
      70                 :            :     {
      71                 :            :         case LANGUAGE_PROCESS_OR_USER_DEFAULT :
      72                 :            :         case LANGUAGE_SYSTEM_DEFAULT :
      73                 :            :         case LANGUAGE_SYSTEM :
      74                 :     229616 :             nLang = LANGUAGE_SYSTEM;
      75                 :     229616 :             break;
      76                 :            :         default:
      77                 :            :             ;   // nothing
      78                 :            :     }
      79                 :     441348 :     return nLang;
      80                 :            : }
      81                 :            : 
      82                 :            : // static
      83                 :     439987 : LanguageType MsLangId::getRealLanguage( LanguageType nLang )
      84                 :            : {
      85      [ +  +  + ]:     439987 :     switch (simplifySystemLanguages( nLang))
      86                 :            :     {
      87                 :            :         case LANGUAGE_SYSTEM :
      88         [ +  + ]:     229440 :             if (nConfiguredSystemLanguage == LANGUAGE_SYSTEM)
      89                 :         21 :                 nLang = getSystemLanguage();
      90                 :            :             else
      91                 :     229419 :                 nLang = nConfiguredSystemLanguage;
      92                 :     229440 :             break;
      93                 :            :         case LANGUAGE_NONE :
      94         [ +  - ]:          9 :             if (nConfiguredSystemUILanguage == LANGUAGE_SYSTEM)
      95                 :          9 :                 nLang = getSystemUILanguage();
      96                 :            :             else
      97                 :          0 :                 nLang = nConfiguredSystemUILanguage;
      98                 :          9 :             break;
      99                 :            :         default:
     100                 :            :             /* TODO: would this be useful here? */
     101                 :            :             //nLang = MsLangId::getReplacementForObsoleteLanguage( nLang);
     102                 :            :             ;   // nothing
     103                 :            :     }
     104         [ +  + ]:     439987 :     if (nLang == LANGUAGE_DONTKNOW)
     105                 :          5 :         nLang = LANGUAGE_ENGLISH_US;
     106                 :     439987 :     return nLang;
     107                 :            : }
     108                 :            : 
     109                 :            : 
     110                 :            : // static
     111                 :      73389 : LanguageType MsLangId::resolveSystemLanguageByScriptType( LanguageType nLang, sal_Int16 nType )
     112                 :            : {
     113         [ -  + ]:      73389 :     if (nLang == LANGUAGE_NONE)
     114                 :          0 :         return nLang;
     115                 :            : 
     116                 :      73389 :     nLang = getRealLanguage(nLang);
     117 [ +  + ][ +  + ]:      73389 :     if (nType != ::com::sun::star::i18n::ScriptType::WEAK && getScriptType(nLang) != nType)
                 [ +  - ]
     118                 :            :     {
     119      [ +  +  - ]:      48926 :         switch(nType)
     120                 :            :         {
     121                 :            :             case ::com::sun::star::i18n::ScriptType::ASIAN:
     122         [ +  - ]:      24463 :                 if (nConfiguredAsianFallback == LANGUAGE_SYSTEM)
     123                 :      24463 :                     nLang = LANGUAGE_CHINESE_SIMPLIFIED;
     124                 :            :                 else
     125                 :          0 :                     nLang = nConfiguredAsianFallback;
     126                 :      24463 :                 break;
     127                 :            :             case ::com::sun::star::i18n::ScriptType::COMPLEX:
     128         [ +  - ]:      24463 :                 if (nConfiguredComplexFallback == LANGUAGE_SYSTEM)
     129                 :      24463 :                     nLang = LANGUAGE_HINDI;
     130                 :            :                 else
     131                 :          0 :                     nLang = nConfiguredComplexFallback;
     132                 :      24463 :                 break;
     133                 :            :             default:
     134         [ #  # ]:          0 :                 if (nConfiguredWesternFallback == LANGUAGE_SYSTEM)
     135                 :          0 :                     nLang = LANGUAGE_ENGLISH_US;
     136                 :            :                 else
     137                 :          0 :                     nLang = nConfiguredWesternFallback;
     138                 :      48926 :                 break;
     139                 :            :         }
     140                 :            :     }
     141                 :      73389 :     return nLang;
     142                 :            : }
     143                 :            : 
     144                 :            : // static
     145                 :     857159 : void MsLangId::convertLanguageToLocale( LanguageType nLang,
     146                 :            :         ::com::sun::star::lang::Locale & rLocale )
     147                 :            : {
     148         [ -  + ]:     857159 :     if (!rLocale.Variant.isEmpty())
     149                 :          0 :         rLocale.Variant = rtl::OUString();
     150                 :     857159 :     convertLanguageToIsoNames( nLang, rLocale.Language, rLocale.Country);
     151                 :     857159 : }
     152                 :            : 
     153                 :            : 
     154                 :            : // static
     155                 :     217177 : ::com::sun::star::lang::Locale MsLangId::convertLanguageToLocale(
     156                 :            :         LanguageType nLang, bool bResolveSystem )
     157                 :            : {
     158                 :     217177 :     ::com::sun::star::lang::Locale aLocale;
     159 [ +  + ][ +  + ]:     217177 :     if (!bResolveSystem && simplifySystemLanguages( nLang) == LANGUAGE_SYSTEM)
                 [ +  + ]
     160                 :            :         ;   // nothing => empty locale
     161                 :            :     else
     162                 :            :     {
     163                 :            :         // Still resolve LANGUAGE_DONTKNOW if resolving is not requested,
     164                 :            :         // but not LANGUAGE_NONE or others.
     165 [ +  + ][ +  + ]:     217001 :         if (bResolveSystem || nLang == LANGUAGE_DONTKNOW)
     166         [ +  - ]:     215821 :             nLang = MsLangId::getRealLanguage( nLang);
     167         [ +  - ]:     217001 :         convertLanguageToLocale( nLang, aLocale);
     168                 :            :     }
     169                 :     217177 :     return aLocale;
     170                 :            : }
     171                 :            : 
     172                 :            : 
     173                 :            : // static
     174                 :     625800 : LanguageType MsLangId::convertLocaleToLanguage(
     175                 :            :         const ::com::sun::star::lang::Locale& rLocale )
     176                 :            : {
     177                 :            :     // empty language => LANGUAGE_SYSTEM
     178         [ +  + ]:     625800 :     if (rLocale.Language.isEmpty())
     179                 :      22391 :         return LANGUAGE_SYSTEM;
     180                 :            : 
     181                 :            :     LanguageType nRet = convertIsoNamesToLanguage( rLocale.Language,
     182                 :     603409 :             rLocale.Country);
     183         [ +  + ]:     603409 :     if (nRet == LANGUAGE_DONTKNOW)
     184                 :          9 :         nRet = LANGUAGE_SYSTEM;
     185                 :            : 
     186                 :     625800 :     return nRet;
     187                 :            : }
     188                 :            : 
     189                 :            : 
     190                 :            : // static
     191                 :         57 : LanguageType MsLangId::convertLocaleToLanguageWithFallback(
     192                 :            :             const ::com::sun::star::lang::Locale & rLocale )
     193                 :            : {
     194                 :            :     // empty language => LANGUAGE_SYSTEM
     195         [ -  + ]:         57 :     if (rLocale.Language.isEmpty())
     196                 :          0 :         return lookupFallbackLanguage( LANGUAGE_SYSTEM);
     197                 :            : 
     198                 :         57 :     return lookupFallbackLanguage( rLocale);
     199                 :            : }
     200                 :            : 
     201                 :            : 
     202                 :            : // static
     203                 :     149543 : ::com::sun::star::lang::Locale MsLangId::convertLanguageToLocaleWithFallback(
     204                 :            :         LanguageType nLang )
     205                 :            : {
     206                 :     149543 :     return lookupFallbackLocale( MsLangId::getRealLanguage( nLang));
     207                 :            : }
     208                 :            : 
     209                 :            : 
     210                 :            : // static
     211                 :     149978 : ::com::sun::star::lang::Locale MsLangId::getFallbackLocale(
     212                 :            :             const ::com::sun::star::lang::Locale & rLocale )
     213                 :            : {
     214                 :            :     // empty language => LANGUAGE_SYSTEM
     215         [ +  + ]:     149978 :     if (rLocale.Language.isEmpty())
     216                 :     149543 :         return convertLanguageToLocaleWithFallback( LANGUAGE_SYSTEM);
     217                 :            : 
     218                 :     149978 :     return lookupFallbackLocale( rLocale);
     219                 :            : }
     220                 :            : 
     221                 :            : // static
     222                 :     597882 : bool MsLangId::isRightToLeft( LanguageType nLang )
     223                 :            : {
     224         [ -  + ]:     597882 :     switch( nLang & LANGUAGE_MASK_PRIMARY )
     225                 :            :     {
     226                 :            :         case LANGUAGE_ARABIC_SAUDI_ARABIA & LANGUAGE_MASK_PRIMARY :
     227                 :            :         case LANGUAGE_HEBREW              & LANGUAGE_MASK_PRIMARY :
     228                 :            :         case LANGUAGE_YIDDISH             & LANGUAGE_MASK_PRIMARY :
     229                 :            :         case LANGUAGE_URDU                & LANGUAGE_MASK_PRIMARY :
     230                 :            :         case LANGUAGE_FARSI               & LANGUAGE_MASK_PRIMARY :
     231                 :            :         case LANGUAGE_KASHMIRI            & LANGUAGE_MASK_PRIMARY :
     232                 :            :         case LANGUAGE_SINDHI              & LANGUAGE_MASK_PRIMARY :
     233                 :            :         case LANGUAGE_UIGHUR_CHINA        & LANGUAGE_MASK_PRIMARY :
     234                 :            :         case LANGUAGE_USER_KYRGYZ_CHINA   & LANGUAGE_MASK_PRIMARY :
     235                 :          0 :             return true;
     236                 :            : 
     237                 :            :         default:
     238                 :     597882 :             break;
     239                 :            :     }
     240                 :     597882 :     return false;
     241                 :            : }
     242                 :            : 
     243                 :            : // static
     244                 :      31533 : bool MsLangId::isSimplifiedChinese( LanguageType nLang )
     245                 :            : {
     246 [ -  + ][ #  # ]:      31533 :     return isChinese(nLang) && !isTraditionalChinese(nLang);
     247                 :            : }
     248                 :            : 
     249                 :            : // static
     250                 :          0 : bool MsLangId::isSimplifiedChinese( const ::com::sun::star::lang::Locale & rLocale )
     251                 :            : {
     252 [ #  # ][ #  # ]:          0 :     return rLocale.Language == "zh" && !isTraditionalChinese(rLocale);
     253                 :            : }
     254                 :            : 
     255                 :            : // static
     256                 :        387 : bool MsLangId::isTraditionalChinese( LanguageType nLang )
     257                 :            : {
     258                 :        387 :     bool bRet = false;
     259         [ -  + ]:        387 :     switch (nLang)
     260                 :            :     {
     261                 :            :         case LANGUAGE_CHINESE_TRADITIONAL:
     262                 :            :         case LANGUAGE_CHINESE_HONGKONG:
     263                 :            :         case LANGUAGE_CHINESE_MACAU:
     264                 :          0 :             bRet = true;
     265                 :            :         default:
     266                 :        387 :             break;
     267                 :            :     }
     268                 :        387 :     return bRet;
     269                 :            : }
     270                 :            : 
     271                 :            : // static
     272                 :          0 : bool MsLangId::isTraditionalChinese( const ::com::sun::star::lang::Locale & rLocale )
     273                 :            : {
     274 [ #  # ][ #  # ]:          0 :     return rLocale.Language == "zh" && (rLocale.Country == "TW" || rLocale.Country == "HK" || rLocale.Country == "MO");
         [ #  # ][ #  # ]
     275                 :            : }
     276                 :            : 
     277                 :            : //static
     278                 :      31533 : bool MsLangId::isChinese( LanguageType nLang )
     279                 :            : {
     280                 :      31533 :     return MsLangId::getPrimaryLanguage(nLang) == LANGUAGE_CHINESE;
     281                 :            : }
     282                 :            : 
     283                 :            : //static
     284                 :       2511 : bool MsLangId::isKorean( LanguageType nLang )
     285                 :            : {
     286                 :       2511 :     return MsLangId::getPrimaryLanguage(nLang) == LANGUAGE_KOREAN;
     287                 :            : }
     288                 :            : 
     289                 :            : // static
     290                 :        432 : bool MsLangId::isCJK( LanguageType nLang )
     291                 :            : {
     292         [ -  + ]:        432 :     switch (nLang & LANGUAGE_MASK_PRIMARY)
     293                 :            :     {
     294                 :            :         case LANGUAGE_CHINESE  & LANGUAGE_MASK_PRIMARY:
     295                 :            :         case LANGUAGE_JAPANESE & LANGUAGE_MASK_PRIMARY:
     296                 :            :         case LANGUAGE_KOREAN   & LANGUAGE_MASK_PRIMARY:
     297                 :          0 :             return true;
     298                 :            :         default:
     299                 :        432 :             break;
     300                 :            :     }
     301                 :        432 :     return false;
     302                 :            : }
     303                 :            : 
     304                 :            : // static
     305                 :          0 : bool MsLangId::isFamilyNameFirst( LanguageType nLang )
     306                 :            : {
     307 [ #  # ][ #  # ]:          0 :     return isCJK(nLang) || nLang == LANGUAGE_HUNGARIAN;
     308                 :            : }
     309                 :            : 
     310                 :            : // static
     311                 :          0 : bool MsLangId::hasForbiddenCharacters( LanguageType nLang )
     312                 :            : {
     313                 :          0 :     return isCJK(nLang);
     314                 :            : }
     315                 :            : 
     316                 :            : 
     317                 :            : // static
     318                 :          0 : bool MsLangId::needsSequenceChecking( LanguageType nLang )
     319                 :            : {
     320         [ #  # ]:          0 :     switch (nLang & LANGUAGE_MASK_PRIMARY)
     321                 :            :     {
     322                 :            :         case LANGUAGE_BURMESE & LANGUAGE_MASK_PRIMARY:
     323                 :            :         case LANGUAGE_KHMER   & LANGUAGE_MASK_PRIMARY:
     324                 :            :         case LANGUAGE_LAO     & LANGUAGE_MASK_PRIMARY:
     325                 :            :         case LANGUAGE_THAI    & LANGUAGE_MASK_PRIMARY:
     326                 :          0 :             return true;
     327                 :            :         default:
     328                 :          0 :             break;
     329                 :            :     }
     330                 :          0 :     return false;
     331                 :            : }
     332                 :            : 
     333                 :            : 
     334                 :            : // static
     335                 :    2179298 : sal_Int16 MsLangId::getScriptType( LanguageType nLang )
     336                 :            : {
     337                 :            :     sal_Int16 nScript;
     338      [ -  -  + ]:    2179298 :     switch( nLang )
     339                 :            :     {
     340                 :            :         // CJK
     341                 :            :         // all LANGUAGE_CHINESE_... are caught below
     342                 :            :         case LANGUAGE_JAPANESE:
     343                 :            :         case LANGUAGE_KOREAN:
     344                 :            :         case LANGUAGE_KOREAN_JOHAB:
     345                 :            :         case LANGUAGE_USER_KOREAN_NORTH:
     346                 :          0 :             nScript = ::com::sun::star::i18n::ScriptType::ASIAN;
     347                 :          0 :             break;
     348                 :            : 
     349                 :            :         // CTL
     350                 :            :         // all LANGUAGE_ARABIC_... are caught below
     351                 :            :         case LANGUAGE_AMHARIC_ETHIOPIA:
     352                 :            :         case LANGUAGE_ASSAMESE:
     353                 :            :         case LANGUAGE_BENGALI:
     354                 :            :         case LANGUAGE_BENGALI_BANGLADESH:
     355                 :            :         case LANGUAGE_BURMESE:
     356                 :            :         case LANGUAGE_FARSI:
     357                 :            :         case LANGUAGE_HEBREW:
     358                 :            :         case LANGUAGE_YIDDISH:
     359                 :            :         case LANGUAGE_USER_YIDDISH_US:
     360                 :            :         case LANGUAGE_MARATHI:
     361                 :            :         case LANGUAGE_PUNJABI:
     362                 :            :         case LANGUAGE_GUJARATI:
     363                 :            :         case LANGUAGE_HINDI:
     364                 :            :         case LANGUAGE_KANNADA:
     365                 :            :         case LANGUAGE_KASHMIRI:
     366                 :            :         case LANGUAGE_KASHMIRI_INDIA:
     367                 :            :         case LANGUAGE_KHMER:
     368                 :            :         case LANGUAGE_LAO:
     369                 :            :         case LANGUAGE_MALAYALAM:
     370                 :            :         case LANGUAGE_MANIPURI:
     371                 :            :         case LANGUAGE_MONGOLIAN_MONGOLIAN:
     372                 :            :         case LANGUAGE_NEPALI:
     373                 :            :         case LANGUAGE_NEPALI_INDIA:
     374                 :            :         case LANGUAGE_ORIYA:
     375                 :            :         case LANGUAGE_SANSKRIT:
     376                 :            :         case LANGUAGE_SINDHI:
     377                 :            :         case LANGUAGE_SINDHI_PAKISTAN:
     378                 :            :         case LANGUAGE_SINHALESE_SRI_LANKA:
     379                 :            :         case LANGUAGE_SYRIAC:
     380                 :            :         case LANGUAGE_TAMIL:
     381                 :            :         case LANGUAGE_TELUGU:
     382                 :            :         case LANGUAGE_THAI:
     383                 :            :         case LANGUAGE_TIBETAN:
     384                 :            :         case LANGUAGE_DZONGKHA:
     385                 :            :         case LANGUAGE_URDU:
     386                 :            :         case LANGUAGE_URDU_PAKISTAN:
     387                 :            :         case LANGUAGE_URDU_INDIA:
     388                 :            :         case LANGUAGE_USER_KURDISH_IRAQ:
     389                 :            :         case LANGUAGE_USER_KURDISH_IRAN:
     390                 :            :         case LANGUAGE_DHIVEHI:
     391                 :            :         case LANGUAGE_USER_BODO_INDIA:
     392                 :            :         case LANGUAGE_USER_DOGRI_INDIA:
     393                 :            :         case LANGUAGE_USER_MAITHILI_INDIA:
     394                 :            :         case LANGUAGE_UIGHUR_CHINA:
     395                 :            :         case LANGUAGE_USER_LIMBU:
     396                 :            :         case LANGUAGE_USER_KYRGYZ_CHINA:
     397                 :          0 :             nScript = ::com::sun::star::i18n::ScriptType::COMPLEX;
     398                 :          0 :             break;
     399                 :            : 
     400                 :            : // currently not knowing scripttype - defaulted to LATIN:
     401                 :            : /*
     402                 :            : #define LANGUAGE_ARMENIAN                   0x042B
     403                 :            : #define LANGUAGE_INDONESIAN                 0x0421
     404                 :            : #define LANGUAGE_KAZAK                      0x043F
     405                 :            : #define LANGUAGE_KONKANI                    0x0457
     406                 :            : #define LANGUAGE_MACEDONIAN                 0x042F
     407                 :            : #define LANGUAGE_TATAR                      0x0444
     408                 :            : */
     409                 :            : 
     410                 :            :     default:
     411      [ +  -  + ]:    2179298 :         switch ( nLang & LANGUAGE_MASK_PRIMARY )
     412                 :            :         {
     413                 :            :             // CJK catcher
     414                 :            :             case LANGUAGE_CHINESE & LANGUAGE_MASK_PRIMARY:
     415                 :          3 :                 nScript = ::com::sun::star::i18n::ScriptType::ASIAN;
     416                 :          3 :                 break;
     417                 :            :             // CTL catcher
     418                 :            :             case LANGUAGE_ARABIC_SAUDI_ARABIA & LANGUAGE_MASK_PRIMARY:
     419                 :          0 :                 nScript = ::com::sun::star::i18n::ScriptType::COMPLEX;
     420                 :          0 :                 break;
     421                 :            :             // Western (actually not necessarily Latin but also Cyrillic, for example)
     422                 :            :             default:
     423                 :    2179295 :                 nScript = ::com::sun::star::i18n::ScriptType::LATIN;
     424                 :            :         }
     425                 :    2179298 :         break;
     426                 :            :     }
     427                 :    2179298 :     return nScript;
     428                 :            : }
     429                 :            : 
     430                 :            : 
     431                 :            : // static
     432                 :        598 : LanguageType MsLangId::getReplacementForObsoleteLanguage( LanguageType nLang, bool bUserInterfaceSelection )
     433                 :            : {
     434   [ +  -  -  -  :        598 :     switch (nLang)
          -  -  -  -  -  
             -  -  -  -  
                      - ]
     435                 :            :     {
     436                 :            :         default:
     437                 :        598 :             break;  // nothing
     438                 :            :         case LANGUAGE_OBSOLETE_USER_LATIN:
     439                 :          0 :             nLang = LANGUAGE_LATIN;
     440                 :          0 :             break;
     441                 :            :         case LANGUAGE_OBSOLETE_USER_MAORI:
     442                 :          0 :             nLang = LANGUAGE_MAORI_NEW_ZEALAND;
     443                 :          0 :             break;
     444                 :            :         case LANGUAGE_OBSOLETE_USER_KINYARWANDA:
     445                 :          0 :             nLang = LANGUAGE_KINYARWANDA_RWANDA;
     446                 :          0 :             break;
     447                 :            :         case LANGUAGE_OBSOLETE_USER_UPPER_SORBIAN:
     448                 :          0 :             nLang = LANGUAGE_UPPER_SORBIAN_GERMANY;
     449                 :          0 :             break;
     450                 :            :         case LANGUAGE_OBSOLETE_USER_LOWER_SORBIAN:
     451                 :          0 :             nLang = LANGUAGE_LOWER_SORBIAN_GERMANY;
     452                 :          0 :             break;
     453                 :            :         case LANGUAGE_OBSOLETE_USER_OCCITAN:
     454                 :          0 :             nLang = LANGUAGE_OCCITAN_FRANCE;
     455                 :          0 :             break;
     456                 :            :         case LANGUAGE_OBSOLETE_USER_BRETON:
     457                 :          0 :             nLang = LANGUAGE_BRETON_FRANCE;
     458                 :          0 :             break;
     459                 :            :         case LANGUAGE_OBSOLETE_USER_KALAALLISUT:
     460                 :          0 :             nLang = LANGUAGE_KALAALLISUT_GREENLAND;
     461                 :          0 :             break;
     462                 :            :         case LANGUAGE_OBSOLETE_USER_LUXEMBOURGISH:
     463                 :          0 :             nLang = LANGUAGE_LUXEMBOURGISH_LUXEMBOURG;
     464                 :          0 :             break;
     465                 :            :         case LANGUAGE_OBSOLETE_USER_KABYLE:
     466                 :          0 :             nLang = LANGUAGE_TAMAZIGHT_LATIN;
     467                 :          0 :             break;
     468                 :            : 
     469                 :            :         // The following are not strictly obsolete but should be mapped to a
     470                 :            :         // replacement locale when encountered.
     471                 :            : 
     472                 :            :         // no_NO is an alias for nb_NO
     473                 :            :         case LANGUAGE_NORWEGIAN:
     474                 :          0 :             nLang = LANGUAGE_NORWEGIAN_BOKMAL;
     475                 :          0 :             break;
     476                 :            : 
     477                 :            :         // #i94435# A Spanish variant that differs only in collation details we
     478                 :            :         // do not support.
     479                 :            :         case LANGUAGE_SPANISH_DATED:
     480                 :          0 :             nLang = LANGUAGE_SPANISH_MODERN;
     481                 :          0 :             break;
     482                 :            : 
     483                 :            :          // Do not use ca-XV for document content.
     484                 :            :          /* TODO: remove in case we implement BCP47 language tags. */
     485                 :            :         case LANGUAGE_USER_CATALAN_VALENCIAN:
     486         [ #  # ]:          0 :             if (!bUserInterfaceSelection)
     487                 :          0 :                 nLang = LANGUAGE_CATALAN;
     488                 :          0 :             break;
     489                 :            :     }
     490                 :        598 :     return nLang;
     491                 :            : }
     492                 :            : 
     493                 :            : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10