Example #1
0
    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);
        }
    }
Example #2
0
    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);
        }
    }
Example #4
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);
        }
    }
Example #5
0
    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);
        }
    }
Example #6
0
    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]);
            }
        }
    }
Example #8
0
 public static bool SwitchLanguage(string langCode)
 {
     return(SwitchLanguage(LocalizationSettings.GetLanguageEnum(langCode)));
 }
Example #9
0
    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&region 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);
        }
    }