I'm using a vanilla Sitecore 82u6.
When checking the .showconfig.aspx
page I realized that the default language name is:
<setting name="ClientLanguage" value="en" patch:source="Sitecore.DefaultLanguage.config"/>
On the Sitecore.Globalization.LanguageDefinition
class, the name property is defined by the following logic:
this._name = id + (!string.IsNullOrEmpty(this._region) ? "-" + region : string.Empty);
But if we look at the LanguageDefinitions
list on the same page, we can't find a language with this name
<languageDefinitions>
<languages>
<language id="af" region="ZA" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_South_Africa.PNG"/>
<language id="ar" region="AE" codepage="65001" encoding="utf-8" charset="windows-1256" icon="flags/16x16/flag_united_arab_emirates.png"/>
<language id="ar" region="BH" codepage="65001" encoding="utf-8" charset="windows-1256" icon="flags/16x16/flag_Bahrain.PNG"/>
<language id="ar" region="DZ" codepage="65001" encoding="utf-8" charset="windows-1256" icon="flags/16x16/flag_Algeria.PNG"/>
<language id="ar" region="EG" codepage="65001" encoding="utf-8" charset="windows-1256" icon="flags/16x16/flag_Egypt.PNG"/>
<language id="ar" region="IQ" codepage="65001" encoding="utf-8" charset="windows-1256" icon="flags/16x16/flag_Iraq.PNG"/>
<language id="ar" region="JO" codepage="65001" encoding="utf-8" charset="windows-1256" icon="flags/16x16/flag_Jordan.PNG"/>
<language id="ar" region="KW" codepage="65001" encoding="utf-8" charset="windows-1256" icon="flags/16x16/flag_Kuwait.PNG"/>
<language id="ar" region="LB" codepage="65001" encoding="utf-8" charset="windows-1256" icon="flags/16x16/flag_Lebanon.PNG"/>
<language id="ar" region="LY" codepage="65001" encoding="utf-8" charset="windows-1256" icon="flags/16x16/flag_Libya.PNG"/>
<language id="ar" region="MA" codepage="65001" encoding="utf-8" charset="windows-1256" icon="flags/16x16/flag_Morocco.PNG"/>
<language id="ar" region="OM" codepage="65001" encoding="utf-8" charset="windows-1256" icon="flags/16x16/flag_Oman.PNG"/>
<language id="ar" region="QA" codepage="65001" encoding="utf-8" charset="windows-1256" icon="flags/16x16/flag_Qatar.PNG"/>
<language id="ar" region="SA" codepage="65001" encoding="utf-8" charset="windows-1256" icon="flags/16x16/flag_Saudi_Arabia.PNG"/>
<language id="ar" region="SY" codepage="65001" encoding="utf-8" charset="windows-1256" icon="flags/16x16/flag_Syria.PNG"/>
<language id="ar" region="TN" codepage="65001" encoding="utf-8" charset="windows-1256" icon="flags/16x16/flag_Tunisia.PNG"/>
<language id="ar" region="YE" codepage="65001" encoding="utf-8" charset="windows-1256" icon="flags/16x16/flag_Yemen.PNG"/>
<language id="be" region="BY" codepage="65001" encoding="utf-8" charset="koi8-r" icon="flags/16x16/flag_Belarus.PNG"/>
<language id="bg" region="BG" codepage="65001" encoding="utf-8" charset="koi8-r" icon="flags/16x16/flag_Bulgaria.PNG"/>
<language id="ca" region="ES" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Spain.PNG"/>
<language id="cs" region="CZ" codepage="65001" encoding="utf-8" charset="iso-8859-2" icon="flags/16x16/flag_Czech_Republic.PNG"/>
<language id="da" region="" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Denmark.PNG" spellchecker="da-DK.tdf"/>
<language id="de" region="AT" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Austria.PNG"/>
<language id="de" region="CH" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Switzerland.PNG"/>
<language id="de" region="DE" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Germany.PNG" spellchecker="de-DE.tdf"/>
<language id="de" region="LI" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Liechtenstein.PNG"/>
<language id="de" region="LU" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Luxembourg.PNG"/>
<language id="el" region="GR" codepage="65001" encoding="utf-8" charset="iso-8859-7" icon="flags/16x16/flag_Greece.PNG"/>
<language id="en" region="AU" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Australia.PNG"/>
<language id="en" region="BZ" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Belize.PNG"/>
<language id="en" region="CA" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Canada.PNG"/>
<language id="en" region="GB" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_great_britain.png" spellchecker="en-GB.tdf"/>
<language id="en" region="IE" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Ireland.PNG"/>
<language id="en" region="JM" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Jamaica.PNG"/>
<language id="en" region="NZ" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_New_Zealand.PNG"/>
<language id="en" region="PH" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_philippines.png"/>
<language id="en" region="TT" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Trinidad_and_Tobago.PNG"/>
<language id="en" region="US" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_USA.PNG" spellchecker="en-US.tdf"/>
<language id="en" region="ZA" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_South_Africa.PNG"/>
<language id="en" region="ZW" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Zimbabwe.PNG"/>
<language id="es" region="AR" codepage="65001" encoding="utf-8" charset="windows-1256" icon="flags/16x16/flag_Argentina.PNG"/>
<language id="es" region="BO" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Bolivia.PNG"/>
<language id="es" region="CL" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Chile.PNG"/>
<language id="es" region="CO" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Colombia.PNG"/>
<language id="es" region="CR" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Costa_Rica.PNG"/>
<language id="es" region="DO" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Dominican_Republic.PNG"/>
<language id="es" region="EC" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_equador.png"/>
<language id="es" region="ES" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Spain.PNG" spellchecker="es-ES.tdf"/>
<language id="es" region="GT" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Guatemala.PNG"/>
<language id="es" region="HN" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Honduras.PNG"/>
<language id="es" region="MX" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Mexico.PNG"/>
<language id="es" region="NI" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Nicaragua.PNG"/>
<language id="es" region="PA" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Panama.PNG"/>
<language id="es" region="PE" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Peru.PNG"/>
<language id="es" region="PR" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Puerto_Rico.PNG"/>
<language id="es" region="PY" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Paraquay.PNG"/>
<language id="es" region="SV" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_El_Salvador.PNG"/>
<language id="es" region="UY" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Uruquay.PNG"/>
<language id="es" region="VE" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Venezuela.PNG"/>
<language id="et" region="EE" codepage="65001" encoding="utf-8" charset="windows-1257" icon="flags/16x16/flag_Estonia.PNG"/>
<language id="eu" region="ES" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Spain.PNG"/>
<language id="fa" region="IR" codepage="65001" encoding="utf-8" charset="windows-1256" icon="flags/16x16/flag_Iran.PNG"/>
<language id="fi" region="FI" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Finland.PNG"/>
<language id="fo" region="FO" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Faroe_Islands.PNG"/>
<language id="fr" region="BE" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Belgium.PNG"/>
<language id="fr" region="CA" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Canada.PNG"/>
<language id="fr" region="CH" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Switzerland.PNG"/>
<language id="fr" region="FR" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_France.PNG" spellchecker="fr-FR.tdf"/>
<language id="fr" region="LU" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Luxembourg.PNG"/>
<language id="fr" region="MC" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_monaco.png"/>
<language id="gl" region="ES" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Spain.PNG"/>
<language id="gu" region="IN" codepage="65001" encoding="utf-8" charset="koi8-r" icon="flags/16x16/flag_India.PNG"/>
<language id="he" region="IL" codepage="65001" encoding="utf-8" charset="windows-1255" icon="flags/16x16/flag_Israel.PNG"/>
<language id="hi" region="IN" codepage="65001" encoding="utf-8" charset="koi8-r" icon="flags/16x16/flag_India.PNG"/>
<language id="hr" region="BA" codepage="65001" encoding="utf-8" charset="iso-8859-2" icon="flags/16x16/flag_Bosnia_and_Herzegovina.PNG"/>
<language id="hr" region="HR" codepage="65001" encoding="utf-8" charset="iso-8859-2" icon="flags/16x16/flag_Croatia.PNG"/>
<language id="hu" region="HU" codepage="65001" encoding="utf-8" charset="iso-8859-2" icon="flags/16x16/flag_Hungary.PNG"/>
<language id="hy" region="AM" codepage="65001" encoding="utf-8" charset="koi8-r" icon="flags/16x16/flag_Armenia.PNG"/>
<language id="id" region="ID" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Indonesia.PNG"/>
<language id="is" region="IS" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Iceland.PNG"/>
<language id="it" region="CH" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Switzerland.PNG"/>
<language id="it" region="IT" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Italy.PNG" spellchecker="it-IT.tdf"/>
<language id="ja" region="JP" codepage="65001" encoding="utf-8" charset="iso-2022-jp" icon="flags/16x16/flag_Japan.PNG"/>
<language id="ka" region="GE" codepage="65001" encoding="utf-8" charset="koi8-r" icon="flags/16x16/flag_Georgia.PNG"/>
<language id="kk" region="KZ" codepage="65001" encoding="utf-8" charset="koi8-r" icon="flags/16x16/flag_Kazakhstan.PNG"/>
<language id="kn" region="IN" codepage="65001" encoding="utf-8" charset="koi8-r" icon="flags/16x16/flag_India.PNG"/>
<language id="ko" region="KR" codepage="65001" encoding="utf-8" charset="ks_c_5601-1987" icon="flags/16x16/flag_south_korea.png"/>
<language id="ky" region="KG" codepage="65001" encoding="utf-8" charset="koi8-r" icon="flags/16x16/flag_Kyrgyzstan.PNG"/>
<language id="lt" region="LT" codepage="65001" encoding="utf-8" charset="windows-1257" icon="flags/16x16/flag_Lithuania.PNG"/>
<language id="lv" region="LV" codepage="65001" encoding="utf-8" charset="windows-1257" icon="flags/16x16/flag_Latvia.PNG"/>
<language id="mi" region="NZ" codepage="65001" encoding="utf-8" charset="koi8-r" icon="flags/16x16/flag_New_Zealand.PNG"/>
<language id="mk" region="MK" codepage="65001" encoding="utf-8" charset="koi8-r" icon="flags/16x16/flag_Macedonia.PNG"/>
<language id="mn" region="MN" codepage="65001" encoding="utf-8" charset="koi8-r" icon="flags/16x16/flag_Mongolia.PNG"/>
<language id="mr" region="IN" codepage="65001" encoding="utf-8" charset="koi8-r" icon="flags/16x16/flag_India.PNG"/>
<language id="ms" region="BN" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_brunei.png "/>
<language id="ms" region="MY" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Malaysia.PNG"/>
<language id="mt" region="MT" codepage="65001" encoding="utf-8" charset="koi8-r" icon="flags/16x16/flag_Malta.PNG"/>
<language id="nb" region="NO" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Norway.PNG"/>
<language id="nl" region="BE" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Belgium.PNG"/>
<language id="nl" region="NL" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Netherlands.PNG"/>
<language id="nn" region="NO" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Norway.PNG"/>
<language id="pa" region="IN" codepage="65001" encoding="utf-8" charset="koi8-r" icon="flags/16x16/flag_India.PNG"/>
<language id="pl" region="PL" codepage="65001" encoding="utf-8" charset="iso-8859-2" icon="flags/16x16/flag_Poland.PNG"/>
<language id="pt" region="BR" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Brazil.PNG"/>
<language id="pt" region="PT" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Portugal.PNG"/>
<language id="ro" region="RO" codepage="65001" encoding="utf-8" charset="iso-8859-2" icon="flags/16x16/flag_Romania.PNG"/>
<language id="ru" region="RU" codepage="65001" encoding="utf-8" charset="koi8-r" icon="flags/16x16/flag_Russia.PNG"/>
<language id="sa" region="IN" codepage="65001" encoding="utf-8" charset="koi8-r" icon="flags/16x16/flag_India.PNG"/>
<language id="se" region="FI" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Finland.PNG"/>
<language id="se" region="NO" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Norway.PNG"/>
<language id="se" region="SE" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Sweden.PNG"/>
<language id="sk" region="SK" codepage="65001" encoding="utf-8" charset="iso-8859-2" icon="flags/16x16/flag_Slovakia.PNG"/>
<language id="sl" region="SI" codepage="65001" encoding="utf-8" charset="iso-8859-2" icon="flags/16x16/flag_Slovenia.PNG"/>
<language id="sq" region="AL" codepage="65001" encoding="utf-8" charset="iso-8859-2" icon="flags/16x16/flag_Albania.PNG"/>
<language id="sv" region="FI" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Finland.PNG"/>
<language id="sv" region="SE" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Sweden.PNG"/>
<language id="sw" region="KE" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_Kenya.PNG"/>
<language id="ta" region="IN" codepage="65001" encoding="utf-8" charset="koi8-r" icon="flags/16x16/flag_India.PNG"/>
<language id="te" region="IN" codepage="65001" encoding="utf-8" charset="koi8-r" icon="flags/16x16/flag_India.PNG"/>
<language id="th" region="TH" codepage="65001" encoding="utf-8" charset="windows-874" icon="flags/16x16/flag_Thailand.PNG"/>
<language id="tn" region="ZA" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_South_Africa.PNG"/>
<language id="tr" region="TR" codepage="65001" encoding="utf-8" charset="iso-8859-9" icon="flags/16x16/flag_Turkey.PNG"/>
<language id="tt" region="RU" codepage="65001" encoding="utf-8" charset="koi8-r" icon="flags/16x16/flag_Russia.PNG"/>
<language id="uk" region="UA" codepage="65001" encoding="utf-8" charset="koi8-r" icon="flags/16x16/flag_Ukraine.PNG"/>
<language id="ur" region="PK" codepage="65001" encoding="utf-8" charset="windows-1256" icon="flags/16x16/flag_pakistan.png "/>
<language id="vi" region="VN" codepage="65001" encoding="utf-8" charset="windows-1258" icon="flags/16x16/flag_Vietnam.PNG"/>
<language id="xh" region="ZA" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_South_Africa.PNG"/>
<language id="zh" region="CN" codepage="65001" encoding="utf-8" charset="gb2312" icon="flags/16x16/flag_china.png"/>
<language id="zh" region="SG" codepage="65001" encoding="utf-8" charset="gb2312" icon="flags/16x16/flag_Singapore.PNG"/>
<language id="zh" region="TW" codepage="65001" encoding="utf-8" charset="big5" icon="flags/16x16/flag_Taiwan.PNG"/>
<language id="zu" region="ZA" codepage="65001" encoding="utf-8" charset="iso-8859-1" icon="flags/16x16/flag_South_Africa.PNG"/>
</languages>
</languageDefinitions>
That means that if you parse each one of the above language definition names using
LanguageDefinitions.Definitions.Select(definition => Language.Parse(definition.Name));
None of them would be equals to
Language.Parse("en")
Since the Language.Equals(..)
uses
language1.Name.Equals(language2.Name, StringComparison.OrdinalIgnoreCase);
Do you guys know what I'm missing here? I'm pretty sure that one of my assumptions here is not correct since that OOTB setup works properly.