public static bool SwitchLanguage(LanguageCode code) { if (availableLanguages.Contains(code + "")) { DoSwitch(code); return(true); } else { Debug.LogError("Could not switch from language " + currentLanguage + " to " + code); if (currentLanguage == LanguageCode.N) { if (availableLanguages.Count > 0) { DoSwitch(LocalizationSettings.GetLanguageEnum(availableLanguages[0])); Debug.LogError("Switched to " + currentLanguage + " instead"); } else { Debug.LogError("Please verify that you have the file: Resources/Languages/" + code + ""); Debug.Break(); } } return(false); } }
void LoadSettings() { if (loadedSettings || settings == null) { return; } loadedSettings = true; useSystemLang = settings.useSystemLanguagePerDefault; langCode = LocalizationSettings.GetLanguageEnum(settings.defaultLangCode); }
public void InitialData(string lang) { string str0 = LanguageWin.CodeToName(LocalizationSettings.GetLanguageEnum(lang)); name1.text = str0; englishName.text = Language.CodeToEnglishName(LocalizationSettings.GetLanguageEnum(lang)); this.lang = lang; if (LocalizationSettings.GetLanguageEnum(lang) == Language.CurrentLanguage()) { print(transform.position); parent.glowSprite.transform.position = new Vector3(transform.position.x, transform.position.y - 0.115f, 0); } }
static Language() { //if(settings == null) // settings = (LocalizationSettings)Resources.Load("Languages/" + System.IO.Path.GetFileNameWithoutExtension(settingsAssetPath), typeof(LocalizationSettings)); LoadAvailableLanguages(); bool useSystemLanguagePerDefault = settings.useSystemLanguagePerDefault; LanguageCode useLang = LocalizationSettings.GetLanguageEnum(settings.defaultLangCode); //ISO 639-1 (two characters). See: http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes //See if we can use the local system language: if so, we overwrite useLang /* * if (useSystemLanguagePerDefault) * { * //Use Unity system lang * LanguageCode localLang = LanguageNameToCode(Application.systemLanguage); * //Otherwise try .NET cultureinfo; doesnt work on mobile systems * if (localLang == LanguageCode.N) * { * string langISO = CultureInfo.CurrentCulture.TwoLetterISOLanguageName; * if(langISO!="iv") //IV = InvariantCulture * localLang = LocalizationSettings.GetLanguageEnum(langISO); * } * if (availableLanguages.Contains(localLang + "")) * useLang = localLang; * } */ #if UNITY_IPHONE string systemLang = PlayerPrefs.GetString("iOS_systemLanguage"); Debug.Log("==============\nLang:" + systemLang + "\n=============="); if (systemLang != "zh-Hans") { useLang = LanguageCode.TW; } #elif UNITY_ANDROID useLang = LanguageCode.ZH; #endif //See if we can use the last used language (playerprefs) string lastLang = PlayerPrefs.GetString("M2H_lastLanguage", ""); if (lastLang != "" && availableLanguages.Contains(lastLang)) { SwitchLanguage(lastLang); } else { SwitchLanguage(useLang); } }
static Language() { //if(settings == null) // settings = (LocalizationSettings)Resources.Load("Languages/" + System.IO.Path.GetFileNameWithoutExtension(settingsAssetPath), typeof(LocalizationSettings)); LoadAvailableLanguages(); InitCountryNames(); bool useSystemLanguagePerDefault = settings.useSystemLanguagePerDefault; LanguageCode useLang = LocalizationSettings.GetLanguageEnum(settings.defaultLangCode); //ISO 639-1 (two characters). See: http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes //See if we can use the local system language: if so, we overwrite useLang if (useSystemLanguagePerDefault) { //Use Unity system lang LanguageCode localLang = LanguageNameToCode(Application.systemLanguage); //Otherwise try .NET cultureinfo; doesnt work on mobile systems if (localLang == LanguageCode.N) { string langISO = CultureInfo.CurrentCulture.TwoLetterISOLanguageName; if (langISO != "iv") //IV = InvariantCulture { localLang = LocalizationSettings.GetLanguageEnum(langISO); } } if (availableLanguages.Contains(localLang + "")) { useLang = localLang; } } //See if we can use the last used language (playerprefs) string lastLang = PlayerPrefs.GetString("M2H_lastLanguage", ""); if (lastLang != "" && availableLanguages.Contains(lastLang)) { SwitchLanguage(lastLang); } else { SwitchLanguage(useLang); } }
void LoadSettings() { if (loadedSettings) { return; } loadedSettings = true; gDocsURL = EditorPrefs.GetString(PlayerSettings.productName + "gDocs"); if (File.Exists(settingsAssetPath)) { settings = (LocalizationSettings)AssetDatabase.LoadAssetAtPath(settingsAssetPath, typeof(LocalizationSettings)); } else { Debug.LogError("does not exist, moved"); } useSystemLang = settings.useSystemLanguagePerDefault; langCode = LocalizationSettings.GetLanguageEnum(settings.defaultLangCode); }
void LoadSettings() { if (loadedSettings) { return; } loadedSettings = true; gDocsURL = EditorPrefs.GetString(PlayerSettings.productName + "gDocs"); TextAsset ta = (TextAsset)Resources.Load("Languages/settings", typeof(TextAsset)); if (ta != null) { string data = ta.text; string[] lines = data.Split('\n'); if (lines.Length >= 2) { useSystemLang = (lines[0] == "1"); langCode = LocalizationSettings.GetLanguageEnum(lines[1]); } } }
public static bool SwitchLanguage(string langCode) { return(SwitchLanguage(LocalizationSettings.GetLanguageEnum(langCode))); }
static Language() { LoadAvailableLanguages(); bool useSystemLanguagePerDefault = settings.useSystemLanguagePerDefault; LanguageCode useLang = LocalizationSettings.GetLanguageEnum(settings.defaultLangCode); //ISO 639-1 (two characters). See: http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes //See if we can use the last used language (playerprefs) string lastLang = PlayerPrefs.GetString("M2H_lastLanguage", ""); if (lastLang != "" && availableLanguages.Contains(lastLang)) { SwitchLanguage(lastLang); } else { //See if we can use the local system language: if so, we overwrite useLang if (useSystemLanguagePerDefault) { //Attempt 1. Use Unity system lang LanguageCode localLang = LanguageNameToCode(Application.systemLanguage); if (localLang == LanguageCode.N) { //Attempt 2. Otherwise try .NET cultureinfo; doesnt work on mobile systems // Also returns EN (EN-US) on my dutch pc (interface is english but Country®ion is Netherlands) //BUGGED IN MONO? See: http://forum.unity3d.com/threads/5452-Getting-user-s-language-preference string langISO = CultureInfo.CurrentCulture.TwoLetterISOLanguageName; if (langISO != "iv") //IV = InvariantCulture { localLang = LocalizationSettings.GetLanguageEnum(langISO); } } if (availableLanguages.Contains(localLang + "")) { useLang = localLang; } else { //We dont have the local lang..try a few common exceptions if (localLang == LanguageCode.PT) { // we did't have PT, can we show PT_BR instead? if (availableLanguages.Contains(LanguageCode.PT_BR + "")) { useLang = LanguageCode.PT_BR; } } if (localLang == LanguageCode.ZH) { // we did't have CN, can we show ZH_CN instead? if (availableLanguages.Contains(LanguageCode.ZH_CN + "")) { useLang = LanguageCode.ZH_CN; } else if (availableLanguages.Contains(LanguageCode.ZH_TW + "")) { useLang = LanguageCode.ZH_TW; } } else if (localLang == LanguageCode.EN) { // Same idea as above.. if (availableLanguages.Contains(LanguageCode.EN_GB + "")) { useLang = LanguageCode.EN_GB; } } else if (localLang == LanguageCode.EN) { // Same idea as above.. if (availableLanguages.Contains(LanguageCode.EN_US + "")) { useLang = LanguageCode.EN_US; } } } } SwitchLanguage(useLang); } }