summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2013-09-10 23:13:06 +0200
committerEike Rathke <erack@redhat.com>2013-09-10 23:22:25 +0200
commitb6cd9d8d5042fb24deb58bd762d8266867d1d0f4 (patch)
tree7ded7f8c64e3849c8c82c8c041d43b3e8accf02f
parentbc273e9e0d7b3a8c17beffa71a3165eb1c034d82 (diff)
changed all 'sh' language to 'sr-Latn'
Change-Id: Iafadaea87501bc3675eaf2856b5050a7e3ecaa37
-rw-r--r--i18nlangtag/qa/cppunit/test_languagetag.cxx34
-rw-r--r--i18nlangtag/source/isolang/isolang.cxx23
-rw-r--r--i18nlangtag/source/languagetag/languagetag.cxx22
-rw-r--r--i18npool/Library_localedata_euro.mk6
-rw-r--r--i18npool/source/localedata/data/sr_Latn_ME.xml (renamed from i18npool/source/localedata/data/sh_ME.xml)23
-rw-r--r--i18npool/source/localedata/data/sr_Latn_RS.xml (renamed from i18npool/source/localedata/data/sh_RS.xml)3
-rw-r--r--i18npool/source/localedata/data/sr_Latn_YU.xml (renamed from i18npool/source/localedata/data/sh_YU.xml)23
-rw-r--r--i18npool/source/localedata/localedata.cxx6
-rw-r--r--instsetoo_native/util/pack.lst6
-rw-r--r--l10ntools/source/ulfconv/msi-encodinglist.txt2
-rw-r--r--setup_native/source/packinfo/spellchecker_selection.txt4
-rw-r--r--solenv/inc/langlist.mk2
12 files changed, 100 insertions, 54 deletions
diff --git a/i18nlangtag/qa/cppunit/test_languagetag.cxx b/i18nlangtag/qa/cppunit/test_languagetag.cxx
index aace20a3d8ff..72297cc50c8e 100644
--- a/i18nlangtag/qa/cppunit/test_languagetag.cxx
+++ b/i18nlangtag/qa/cppunit/test_languagetag.cxx
@@ -130,12 +130,7 @@ void TestLanguageTag::testAllTags()
CPPUNIT_ASSERT( aLocale.Language == "qlt" );
CPPUNIT_ASSERT( aLocale.Country == "RS" );
CPPUNIT_ASSERT( aLocale.Variant == s_sr_Latn_RS );
- /* TODO: conversion doesn't know this yet, once it does activate test. */
-#if 0
CPPUNIT_ASSERT( sr_RS.getLanguageType() == LANGUAGE_USER_SERBIAN_LATIN_SERBIA );
-#else
- CPPUNIT_ASSERT( sr_RS.getLanguageType() == LANGUAGE_SYSTEM );
-#endif
CPPUNIT_ASSERT( sr_RS.isValidBcp47() == true );
CPPUNIT_ASSERT( sr_RS.isIsoLocale() == false );
CPPUNIT_ASSERT( sr_RS.isIsoODF() == true );
@@ -146,6 +141,35 @@ void TestLanguageTag::testAllTags()
}
{
+ OUString s_sh_RS( "sh-RS" );
+ LanguageTag sh_RS( s_sh_RS, true );
+ lang::Locale aLocale = sh_RS.getLocale();
+ CPPUNIT_ASSERT( sh_RS.getBcp47() == s_sh_RS );
+ CPPUNIT_ASSERT( aLocale.Language == "sh" );
+ CPPUNIT_ASSERT( aLocale.Country == "RS" );
+ CPPUNIT_ASSERT( aLocale.Variant == "" );
+ CPPUNIT_ASSERT( sh_RS.getLanguageType() == LANGUAGE_USER_SERBIAN_LATIN_SERBIA );
+ CPPUNIT_ASSERT( sh_RS.isValidBcp47() == true );
+ CPPUNIT_ASSERT( sh_RS.isIsoLocale() == true );
+ CPPUNIT_ASSERT( sh_RS.isIsoODF() == true );
+ CPPUNIT_ASSERT( sh_RS.getLanguage() == "sh" );
+ CPPUNIT_ASSERT( sh_RS.getCountry() == "RS" );
+ CPPUNIT_ASSERT( sh_RS.getScript() == "" );
+ CPPUNIT_ASSERT( sh_RS.getLanguageAndScript() == "sh" );
+ ::std::vector< OUString > sh_RS_Fallbacks( sh_RS.getFallbackStrings( true));
+ CPPUNIT_ASSERT( sh_RS_Fallbacks.size() == 6);
+ CPPUNIT_ASSERT( sh_RS_Fallbacks[0] == "sh-RS");
+ CPPUNIT_ASSERT( sh_RS_Fallbacks[1] == "sr-Latn-RS");
+ CPPUNIT_ASSERT( sh_RS_Fallbacks[2] == "sr-Latn");
+ CPPUNIT_ASSERT( sh_RS_Fallbacks[3] == "sr-RS");
+ CPPUNIT_ASSERT( sh_RS_Fallbacks[4] == "sr");
+ CPPUNIT_ASSERT( sh_RS_Fallbacks[5] == "sh");
+ CPPUNIT_ASSERT( sh_RS.makeFallback().getBcp47() == "sr-Latn-RS");
+ CPPUNIT_ASSERT( sh_RS.getBcp47() == "sr-Latn-RS");
+ CPPUNIT_ASSERT( sh_RS.getLanguageType() == LANGUAGE_USER_SERBIAN_LATIN_SERBIA );
+ }
+
+ {
OUString s_ca_ES_valencia( "ca-ES-valencia" );
LanguageTag ca_ES_valencia( s_ca_ES_valencia, true );
lang::Locale aLocale = ca_ES_valencia.getLocale();
diff --git a/i18nlangtag/source/isolang/isolang.cxx b/i18nlangtag/source/isolang/isolang.cxx
index 74eb73790ebf..76ad252a3edc 100644
--- a/i18nlangtag/source/isolang/isolang.cxx
+++ b/i18nlangtag/source/isolang/isolang.cxx
@@ -283,12 +283,12 @@ static IsoLanguageCountryEntry const aImplIsoLangEntries[] =
{ LANGUAGE_SERBIAN_CYRILLIC, "sr", "CS", false }, // alias to be able to integrate localizations, rsc needs it
{ LANGUAGE_USER_SERBIAN_CYRILLIC_MONTENEGRO, "sr", "ME", false },
{ LANGUAGE_SERBIAN_CYRILLIC_BOSNIA_HERZEGOVINA, "sr", "BA", false },
- { LANGUAGE_USER_SERBIAN_LATIN_SERBIA, "sh", "RS", false }, // Serbian Latin in Serbia; kludge, needed to be sr_Latn_RS instead, script codes not supported yet
- { LANGUAGE_SERBIAN_LATIN, "sh", "YU", false }, // legacy Serbian Latin in Serbia and Montenegro (former Yugoslavia); kludge, needed to be sr_Latn_CS instead, script codes not supported yet
- { LANGUAGE_SERBIAN_LATIN, "sh", "CS", false }, // Serbian Latin in Serbia and Montenegro; kludge, needed to be sr_Latn_CS instead, script codes not supported yet
- { LANGUAGE_USER_SERBIAN_LATIN_MONTENEGRO, "sh", "ME", false }, // Serbian Latin in Montenegro; kludge, needed to be sr_Latn_ME instead, script codes not supported yet
- { LANGUAGE_SERBIAN_LATIN_BOSNIA_HERZEGOVINA, "sh", "BA", false },
- { LANGUAGE_SERBIAN_LATIN_NEUTRAL, "sh", "" , false }, // kludge, needed to be sr_Latn instead, script codes not supported yet
+ { LANGUAGE_USER_SERBIAN_LATIN_SERBIA, "sh", "RS", true }, // legacy kludge, is sr-Latn-RS now
+ { LANGUAGE_SERBIAN_LATIN, "sh", "YU", true }, // legacy kludge, is sr-Latn-YU now
+ { LANGUAGE_SERBIAN_LATIN, "sh", "CS", true }, // legacy kludge, is sr-Latn-CS now
+ { LANGUAGE_USER_SERBIAN_LATIN_MONTENEGRO, "sh", "ME", true }, // legacy kludge, is sr-Latn-ME now
+ { LANGUAGE_SERBIAN_LATIN_BOSNIA_HERZEGOVINA, "sh", "BA", true }, // legacy kludge, is sr-Latn-BA now
+ { LANGUAGE_SERBIAN_LATIN_NEUTRAL, "sh", "" , true }, // legacy kludge, is sr-Latn now
{ LANGUAGE_ARMENIAN, "hy", "AM", false },
{ LANGUAGE_AZERI_LATIN, "az", "AZ", false },
// { LANGUAGE_AZERI_CYRILLIC, "az", "AZ", false }, // script codes not supported yet
@@ -575,9 +575,14 @@ static IsoLanguageCountryEntry const aImplIsoLangEntries[] =
static IsoLanguageScriptCountryEntry const aImplIsoLangScriptEntries[] =
{
- // MS-LangID ISO639-ISO15924, ISO3166
-// { LANGUAGE_USER_SERBIAN_LATIN_SERBIA, "sr-Latn", "RS" }, // for example, once we support it in l10n; TODO: adapt unit test in this case
- { LANGUAGE_DONTKNOW, "", "" } // marks end of table
+ // MS-LangID ISO639-ISO15924, ISO3166
+ { LANGUAGE_USER_SERBIAN_LATIN_SERBIA, "sr-Latn", "RS" },
+ { LANGUAGE_SERBIAN_LATIN, "sr-Latn", "CS" }, // Serbian Latin in Serbia and Montenegro; note that not all applications may know about the 'CS' reusage mess, see https://en.wikipedia.org/wiki/ISO_3166-2:CS
+ { LANGUAGE_SERBIAN_LATIN, "sr-Latn", "YU" }, // legacy Serbian Latin in Yugoslavia
+ { LANGUAGE_USER_SERBIAN_LATIN_MONTENEGRO, "sr-Latn", "ME" },
+ { LANGUAGE_SERBIAN_LATIN_BOSNIA_HERZEGOVINA,"sr-Latn", "BA" },
+ { LANGUAGE_SERBIAN_LATIN_NEUTRAL, "sr-Latn", "" },
+ { LANGUAGE_DONTKNOW, "", "" } // marks end of table
};
static Bcp47CountryEntry const aImplBcp47CountryEntries[] =
diff --git a/i18nlangtag/source/languagetag/languagetag.cxx b/i18nlangtag/source/languagetag/languagetag.cxx
index 3e1b33191086..7e3a7d7d12e7 100644
--- a/i18nlangtag/source/languagetag/languagetag.cxx
+++ b/i18nlangtag/source/languagetag/languagetag.cxx
@@ -1239,17 +1239,31 @@ LanguageTag & LanguageTag::makeFallback()
aVec.push_back( aLanguage + "-CN");
aVec.push_back( aLanguage);
}
+ else if (aLanguage == "sh")
+ {
+ ::std::vector< OUString > aRep( LanguageTag( "sr-Latn-" + aCountry).getFallbackStrings( true));
+ aVec.insert( aVec.end(), aRep.begin(), aRep.end());
+ aVec.push_back( aLanguage); // 'sh' after all 'sr...'?
+ }
else if (aLanguage == "ca" && aCountry == "XV")
{
- ::std::vector< OUString > aCav( LanguageTag( "ca-ES-valencia").getFallbackStrings( true));
- aVec.insert( aVec.end(), aCav.begin(), aCav.end());
+ ::std::vector< OUString > aRep( LanguageTag( "ca-ES-valencia").getFallbackStrings( true));
+ aVec.insert( aVec.end(), aRep.begin(), aRep.end());
// Already includes 'ca' language fallback.
}
else
aVec.push_back( aLanguage);
}
- else if (bIncludeFullBcp47)
- aVec.push_back( aLanguage);
+ else
+ {
+ if (bIncludeFullBcp47)
+ aVec.push_back( aLanguage);
+ if (aLanguage == "sh")
+ {
+ ::std::vector< OUString > aRep( LanguageTag( "sr-Latn").getFallbackStrings( true));
+ aVec.insert( aVec.end(), aRep.begin(), aRep.end());
+ }
+ }
return aVec;
}
diff --git a/i18npool/Library_localedata_euro.mk b/i18npool/Library_localedata_euro.mk
index c6d33dd591f9..8b533ed0a441 100644
--- a/i18npool/Library_localedata_euro.mk
+++ b/i18npool/Library_localedata_euro.mk
@@ -76,11 +76,11 @@ $(eval $(call gb_Library_add_generated_exception_objects,localedata_euro,\
CustomTarget/i18npool/localedata/localedata_rue_SK \
CustomTarget/i18npool/localedata/localedata_ru_RU \
CustomTarget/i18npool/localedata/localedata_sc_IT \
- CustomTarget/i18npool/localedata/localedata_sh_ME \
- CustomTarget/i18npool/localedata/localedata_sh_RS \
- CustomTarget/i18npool/localedata/localedata_sh_YU \
CustomTarget/i18npool/localedata/localedata_sk_SK \
CustomTarget/i18npool/localedata/localedata_sl_SI \
+ CustomTarget/i18npool/localedata/localedata_sr_Latn_ME \
+ CustomTarget/i18npool/localedata/localedata_sr_Latn_RS \
+ CustomTarget/i18npool/localedata/localedata_sr_Latn_YU \
CustomTarget/i18npool/localedata/localedata_sr_ME \
CustomTarget/i18npool/localedata/localedata_sr_RS \
CustomTarget/i18npool/localedata/localedata_sr_YU \
diff --git a/i18npool/source/localedata/data/sh_ME.xml b/i18npool/source/localedata/data/sr_Latn_ME.xml
index b039f01fc9d2..86aee0b27ac6 100644
--- a/i18npool/source/localedata/data/sh_ME.xml
+++ b/i18npool/source/localedata/data/sr_Latn_ME.xml
@@ -20,20 +20,21 @@
<Locale versionDTD="2.0.3" allowUpdateFromCLDR="yes" version="1.2">
<LC_INFO>
<Language>
- <LangID>sh</LangID>
+ <LangID>qlt</LangID>
<DefaultName>Serbian Latin</DefaultName>
</Language>
<Country>
<CountryID>ME</CountryID>
<DefaultName>Serbia</DefaultName>
</Country>
+ <Variant>sr-Latn-ME</Variant>
</LC_INFO>
- <LC_CTYPE ref="sh_RS"/>
- <LC_FORMAT ref="sh_RS" replaceTo="[$€-C81A]"/>
- <LC_COLLATION ref="sh_RS"/>
- <LC_SEARCH ref="sh_RS"/>
- <LC_INDEX ref="sh_RS"/>
- <LC_CALENDAR ref="sh_RS"/>
+ <LC_CTYPE ref="sr_Latn_RS"/>
+ <LC_FORMAT ref="sr_Latn_RS" replaceTo="[$€-C81A]"/>
+ <LC_COLLATION ref="sr_Latn_RS"/>
+ <LC_SEARCH ref="sr_Latn_RS"/>
+ <LC_INDEX ref="sr_Latn_RS"/>
+ <LC_CALENDAR ref="sr_Latn_RS"/>
<LC_CURRENCY>
<Currency default="true" usedInCompatibleFormatCodes="true">
<CurrencyID>EUR</CurrencyID>
@@ -50,9 +51,9 @@
<DecimalPlaces>2</DecimalPlaces>
</Currency>
</LC_CURRENCY>
- <LC_TRANSLITERATION ref="sh_RS"/>
- <LC_MISC ref="sh_RS"/>
- <LC_NumberingLevel ref="sh_RS"/>
- <LC_OutLineNumberingLevel ref="sh_RS"/>
+ <LC_TRANSLITERATION ref="sr_Latn_RS"/>
+ <LC_MISC ref="sr_Latn_RS"/>
+ <LC_NumberingLevel ref="sr_Latn_RS"/>
+ <LC_OutLineNumberingLevel ref="sr_Latn_RS"/>
</Locale>
diff --git a/i18npool/source/localedata/data/sh_RS.xml b/i18npool/source/localedata/data/sr_Latn_RS.xml
index 7c4e622c4a6e..c1373b760491 100644
--- a/i18npool/source/localedata/data/sh_RS.xml
+++ b/i18npool/source/localedata/data/sr_Latn_RS.xml
@@ -20,13 +20,14 @@
<Locale versionDTD="2.0.3" allowUpdateFromCLDR="no" version="1.0">
<LC_INFO>
<Language>
- <LangID>sh</LangID>
+ <LangID>qlt</LangID>
<DefaultName>Serbian Latin</DefaultName>
</Language>
<Country>
<CountryID>RS</CountryID>
<DefaultName>Serbia</DefaultName>
</Country>
+ <Variant>sr-Latn-RS</Variant>
</LC_INFO>
<LC_CTYPE>
<Separators>
diff --git a/i18npool/source/localedata/data/sh_YU.xml b/i18npool/source/localedata/data/sr_Latn_YU.xml
index f46c96d8efec..7197448668ad 100644
--- a/i18npool/source/localedata/data/sh_YU.xml
+++ b/i18npool/source/localedata/data/sr_Latn_YU.xml
@@ -20,20 +20,21 @@
<Locale versionDTD="2.0.3" allowUpdateFromCLDR="yes" version="1.2">
<LC_INFO>
<Language>
- <LangID>sh</LangID>
+ <LangID>qlt</LangID>
<DefaultName>Serbian Latin</DefaultName>
</Language>
<Country>
<CountryID>YU</CountryID>
<DefaultName>Serbia and Montenegro</DefaultName>
</Country>
+ <Variant>sr-Latn-YU</Variant>
</LC_INFO>
- <LC_CTYPE ref="sh_RS"/>
- <LC_FORMAT ref="sh_RS" replaceTo="[$Din-81A]"/>
- <LC_COLLATION ref="sh_RS"/>
- <LC_SEARCH ref="sh_RS"/>
- <LC_INDEX ref="sh_RS"/>
- <LC_CALENDAR ref="sh_RS"/>
+ <LC_CTYPE ref="sr_Latn_RS"/>
+ <LC_FORMAT ref="sr_Latn_RS" replaceTo="[$Din-81A]"/>
+ <LC_COLLATION ref="sr_Latn_RS"/>
+ <LC_SEARCH ref="sr_Latn_RS"/>
+ <LC_INDEX ref="sr_Latn_RS"/>
+ <LC_CALENDAR ref="sr_Latn_RS"/>
<LC_CURRENCY>
<Currency default="true" usedInCompatibleFormatCodes="true">
<CurrencyID>CSD</CurrencyID>
@@ -50,9 +51,9 @@
<DecimalPlaces>2</DecimalPlaces>
</Currency>
</LC_CURRENCY>
- <LC_TRANSLITERATION ref="sh_RS"/>
- <LC_MISC ref="sh_RS"/>
- <LC_NumberingLevel ref="sh_RS"/>
- <LC_OutLineNumberingLevel ref="sh_RS"/>
+ <LC_TRANSLITERATION ref="sr_Latn_RS"/>
+ <LC_MISC ref="sr_Latn_RS"/>
+ <LC_NumberingLevel ref="sr_Latn_RS"/>
+ <LC_OutLineNumberingLevel ref="sr_Latn_RS"/>
</Locale>
diff --git a/i18npool/source/localedata/localedata.cxx b/i18npool/source/localedata/localedata.cxx
index 9c9d991e0358..f99e35512bbc 100644
--- a/i18npool/source/localedata/localedata.cxx
+++ b/i18npool/source/localedata/localedata.cxx
@@ -133,9 +133,9 @@ static const struct {
{ "ro_RO", lcl_DATA_EURO },
{ "cy_GB", lcl_DATA_EURO },
{ "bg_BG", lcl_DATA_EURO },
- { "sh_ME", lcl_DATA_EURO },
- { "sh_RS", lcl_DATA_EURO },
- { "sh_YU", lcl_DATA_EURO },
+ { "sr_Latn_ME", lcl_DATA_EURO },
+ { "sr_Latn_RS", lcl_DATA_EURO },
+ { "sr_Latn_YU", lcl_DATA_EURO },
{ "sr_ME", lcl_DATA_EURO },
{ "sr_RS", lcl_DATA_EURO },
{ "sr_YU", lcl_DATA_EURO },
diff --git a/instsetoo_native/util/pack.lst b/instsetoo_native/util/pack.lst
index 1de49d104f7b..7f6c914f5271 100644
--- a/instsetoo_native/util/pack.lst
+++ b/instsetoo_native/util/pack.lst
@@ -7,13 +7,13 @@
# Product List_of_platforms List_of_languages Target
-LibreOffice unxlngi6.pro,unxmacxi.pro,unxsoli4.pro,unxsols4.pro,wntmsci12.pro,unxlngx6.pro en-US|ar|bg|bn|ca|ca-valencia|cs|da|de|el|en-GB|es|et|eu|fi|fr|ga|gl|he|hu|it|ja|km|ko|lt|mk|nb|nl|om|pl|pt|pt-BR|ru|sh|sl|sr|sv|tr|vi|zh-CN|zh-TW openoffice
+LibreOffice unxlngi6.pro,unxmacxi.pro,unxsoli4.pro,unxsols4.pro,wntmsci12.pro,unxlngx6.pro en-US|ar|bg|bn|ca|ca-valencia|cs|da|de|el|en-GB|es|et|eu|fi|fr|ga|gl|he|hu|it|ja|km|ko|lt|mk|nb|nl|om|pl|pt|pt-BR|ru|sl|sr|sr-Latn|sv|tr|vi|zh-CN|zh-TW openoffice
#LibreOffice unxlngi6,unxmacxi,unxsoli4,unxsols4,wntmsci12 en-US openoffice
#LibreOffice_Dev unxlngi6.pro,unxsoli4.pro,unxsols4.pro,wntmsci12.pro,unxmacxi.pro,unxlngx6.pro en-US openofficedev
LibreOffice_SDK unxlngi6.pro,unxmacxi.pro,unxsoli4.pro,unxsols4.pro,wntmsci12.pro,unxlngx6.pro en-US sdkoo
#LibreOffice_Dev_SDK unxlngi6.pro,unxmacxi.pro,unxsoli4.pro,unxsols4.pro,wntmsci12.pro,unxlngx6.pro en-US sdkoodev
LibreOffice_Test unxlngi6.pro,unxmacxi.pro,unxsoli4.pro,unxsols4.pro,wntmsci12.pro,unxlngx6.pro en-US test
-LibreOfficeLanguagepack unxlngi6.pro,unxmacxi.pro,unxsoli4.pro,unxsols4.pro,wntmsci12.pro,unxlngx6.pro en-US|ar|as|ast|be|bg|bn|ca|ca-valencia|cs|da|de|dz|el|en-GB|eo|es|et|eu|fi|fr|ga|gl|gu|he|hi|hu|id|is|it|ja|ka|km|kn|ko|ku|lt|lv|mk|ml|mr|my|nb|nl|nn|oc|om|or|pa-IN|pl|pt|pt-BR|ro|ru|sh|si|sk|sl|sr|sv|ta|te|th|tr|ug|uk|uz|vi|zh-CN|zh-TW ooolanguagepack
+LibreOfficeLanguagepack unxlngi6.pro,unxmacxi.pro,unxsoli4.pro,unxsols4.pro,wntmsci12.pro,unxlngx6.pro en-US|ar|as|ast|be|bg|bn|ca|ca-valencia|cs|da|de|dz|el|en-GB|eo|es|et|eu|fi|fr|ga|gl|gu|he|hi|hu|id|is|it|ja|ka|km|kn|ko|ku|lt|lv|mk|ml|mr|my|nb|nl|nn|oc|om|or|pa-IN|pl|pt|pt-BR|ro|ru|si|sk|sl|sr|sr-Latn|sv|ta|te|th|tr|ug|uk|uz|vi|zh-CN|zh-TW ooolanguagepack
#LibreOfficeLanguagepack unxlngi6,unxsoli4,unxsols4,wntmsci12,unxmacxi de ooolanguagepack
-#LibreOfficeDevLanguagepack unxlngi6.pro,unxsoli4.pro,unxsols4.pro,wntmsci12.pro,unxlngx6.pro,unxmacxi.pro ar|as|ast|bg|bn|ca|ca-valencia|cs|da|de|dz|el|en-GB|es|et|eu|fi|fr|ga|gl|gu|he|hi|hu|id|is|it|ja|km|kn|ko|lt|lv|mk|ml|mr|my|nb|nl|nn|oc|om|or|pa-IN|pl|pt|pt-BR|ru|sh|si|sk|sl|sr|sv|ta|te|th|tr|ug|uk|vi|zh-CN|zh-TW ooodevlanguagepack
+#LibreOfficeDevLanguagepack unxlngi6.pro,unxsoli4.pro,unxsols4.pro,wntmsci12.pro,unxlngx6.pro,unxmacxi.pro ar|as|ast|bg|bn|ca|ca-valencia|cs|da|de|dz|el|en-GB|es|et|eu|fi|fr|ga|gl|gu|he|hi|hu|id|is|it|ja|km|kn|ko|lt|lv|mk|ml|mr|my|nb|nl|nn|oc|om|or|pa-IN|pl|pt|pt-BR|ru|si|sk|sl|sr|sr-Latn|sv|ta|te|th|tr|ug|uk|vi|zh-CN|zh-TW ooodevlanguagepack
diff --git a/l10ntools/source/ulfconv/msi-encodinglist.txt b/l10ntools/source/ulfconv/msi-encodinglist.txt
index 529fabda8fc1..efa66c0fa064 100644
--- a/l10ntools/source/ulfconv/msi-encodinglist.txt
+++ b/l10ntools/source/ulfconv/msi-encodinglist.txt
@@ -132,13 +132,13 @@ sat 0 1606 # Santali
sb 0 1070 # Sorbian
sc 0 3047
sd 0 1113 # Sindhi
-sh 0 2074 # Serbian Latin
si 0 2133
sid 0 1669 # Sidama, fake LCID
sk 0 1051 # Slovak
sl 0 1060 # Slovenian
sq 0 1052 # Albanian
sr 0 3098 # Serbian Cyrillic
+sr-Latn 0 2074 # Serbian Latin
sr-SP 0 3098 # Serbian Cyrillic
ss 0 1579 # Swazi
st 0 1072 # Southern Sotho, Sutu
diff --git a/setup_native/source/packinfo/spellchecker_selection.txt b/setup_native/source/packinfo/spellchecker_selection.txt
index 909c166a64cc..6799ba5d12a3 100644
--- a/setup_native/source/packinfo/spellchecker_selection.txt
+++ b/setup_native/source/packinfo/spellchecker_selection.txt
@@ -74,8 +74,8 @@ sk = "sk"
sl = "sl"
sv = "sv,de"
sr = "sr"
-# ! Note the package 'sr' also holds the dictionaries for 'sh' !
-sh = "sr"
+# ! Note the package 'sr' also holds the dictionaries for 'sr-Latn' (formerly 'sh') !
+sr-Latn = "sr"
sw = "sw"
te = "te"
th = "th"
diff --git a/solenv/inc/langlist.mk b/solenv/inc/langlist.mk
index 56560370b7d7..57234e333841 100644
--- a/solenv/inc/langlist.mk
+++ b/solenv/inc/langlist.mk
@@ -99,7 +99,7 @@ rw \
sa-IN \
sat \
sd \
-sh \
+sr-Latn \
si \
sid \
sk \