Some languages can be written using two or more different scripts. For example Serbian language is mostly written in Cyrillic script but it can also be written using Latin script. Chinese is written in two scripts: Simplified and Traditional Chinese. Because there are more than two scripts the language code itself does not uniquely specify the language. This script neutral language code can be used with both scripts. The following table show different language, script and country combinations on three different languages:
|Script and country neutral language||en||zh||sr|
|Country neutral language and script||-||zh-Hans
|Language and country||en-US
|Language, script and country||-||-||sr-Cyrl-RS
English uses only one script: Latin. This is why there is no need for a script code in the culture id. Culture id must contain the language id (en) and it can optionally contain a country code (US, GB, AU, ...).
Chinese uses two scripts: Simplified and Traditional. Simplified is used in China and Singapore. Traditional is used in Taiwan, Hong Kong and Macao. Because one region does not use more than one script the culture that contains a country part (e.g. zh-CN) does not need a script part. However if there is no country part then the script part is needed (e.g. zh-Hans). It is possible to have a culture code without a script (zh) but this is not a unique code. It can either mean Simplified or Traditional Chinese.
Serbian also uses two scripts: Cyrillic and Latin. Unlike Chinese both scripts are used on every country using Serbian language. This is why a culture code with only language and country (e.g. sr-RS) is not enough. It is not unique but needs a script part (e.g. sr-Cyrl-RS).
By default Sisulizer does not use script neutral language codes with multi script languages but always uses the code that contains script code (e.g. zh vs. zh-Hans/zh-Hant). However .NET allows you to use script neutral language code and they might even be handy in some cases. This is why Sisulizer also gives you a possibility to use them. If you use a script neutral language code you have to choose the script that uses the neutral code. The following table contains those languages that use more than one script.
|Value||Script 1||Script 2||.NET version||Country makes script unique|
|Chinese||Simplified Chinese||Traditional Chinese||All||Yes|
|Bosnian||Latin||Cyrillic||4.0 or later||No|
|Inuktitut||Latin||Syllabics||4.0 or later||No|
If you want to turn on the script neutral language codes choose the script that is the primary script. For example if you have Chinese Simplified and Chinese Traditional in your Sisulizer project Sisulizer creates zh-Hans\assemblyname.resources.dll and zh-Hant\assemblyname.resources.dll. If you set Use neutral Chinese to On Simplified Chinese Sisulizer creates zh\assemblyname.resources.dll and zh-Hant\assemblyname.resources.dll. If you check Traditional Chinese Sisulizer creates zh-Hans\assemblyname.resources.dll and zh\assemblyname.resources.dll.
In addition of the usage of script neutral Chinese you can choose how country neutral Chinese is coded. There are two methods:
|Value||.NET version||Description||Simplified Chinese||Traditional Chinese|
|Standard||All||Script code is added after language code.||zh-Hans||zh-Hant|
|Legacy||All||CHS or CHT is added after language code.||zh-CHS||zh-CHT|
Neutral Chinese coding combo is used to select what coding is used.
|Default||The default coding is used. If you use .NET 3.5 or older the legacy coding (e.g. zh-CHS/zh-CHT) is used. If you use .NET 4.0 or later the standard coding (e.g. zh-Hans/zh-Hant) is used.|
|Legacy||The legacy coding is always used, even with .NET 4.0 or later.|
|New||The standard coding is always used, even with .NET 3.5 or older.|
All .NET versions up to 4.6.1 accept both codings but this might change in the future .NET versions. This is why we recommend using the default coding.