public static void LoadContent()
    {
        LocalizationAssistant main = FindObjectOfType <LocalizationAssistant>();

        content = null;
        if (!main)
        {
            return;
        }

        content = new Dictionary <SystemLanguage, Dictionary <string, string> >();
        foreach (SystemLanguage language in main.languages)
        {
            content.Add(language, LocalizationAssistant.Load(language));
        }

        keys.Clear();
        foreach (Dictionary <string, string> _phrases in content.Values)
        {
            keys.AddRange(_phrases.Keys);
        }
        keys = keys.Distinct().ToList();
        keys.Sort();
        UpdateKeysMenu();
    }
    void Awake () {
        main = this;
        if (PlayerPrefs.HasKey("Language")) {
            current_language = (SystemLanguage) Enum.Parse(typeof(SystemLanguage), PlayerPrefs.GetString("Language"));
        } else {
            current_language = use_system_language_by_default ? Application.systemLanguage : default_language;
            PlayerPrefs.SetString("Language", current_language.ToString());
        }
        if (!languages.Contains(current_language))
            current_language = SystemLanguage.English;
        if (!languages.Contains(current_language))
            current_language = languages[0];

        LearnLanguage(current_language);
    }
Beispiel #3
0
    void OnEnable()
    {
        main      = (DinaLabel)target;
        assistant = FindObjectOfType <LocalizationAssistant>();
        if (LocalizationAssistantEditor.content == null)
        {
            LocalizationAssistantEditor.LoadContent();
        }

        if (!DinaLabel.initialized)
        {
            DinaLabel.Initialize();
        }

        mask_values = DinaLabel.words.Keys.ToList();
        mask_values.Sort();
    }
    public override void OnInspectorGUI()
    {
        if (!metaTarget)
        {
            EditorGUILayout.HelpBox("LocalizationAssistant is missing", MessageType.Error);
            return;
        }
        main = (LocalizationAssistant)metaTarget;
        Undo.RecordObject(main, "localization changings");

        if (main.languages.Count == 0)
        {
            main.languages.Add(SystemLanguage.English);
        }

        EditorGUILayout.BeginVertical(EditorStyles.textArea, GUILayout.ExpandWidth(true));
        main.use_system_language_by_default = GUILayout.Toggle(main.use_system_language_by_default, "Use system language by default");
        if (!main.use_system_language_by_default)
        {
            List <string> languages = main.languages.Select(x => x.ToString()).ToList();
            int           id        = languages.IndexOf(main.default_language.ToString());
            if (id < 0)
            {
                id = 0;
            }
            id = EditorGUILayout.Popup("Default language", id, languages.ToArray());
            main.default_language = (SystemLanguage)System.Enum.Parse(typeof(SystemLanguage), languages[id]);
        }
        EditorGUILayout.EndVertical();
        EditorGUILayout.Space();

        EditorGUILayout.BeginVertical(EditorStyles.textArea, GUILayout.ExpandWidth(true));

        #region Languages list panel
        EditorGUILayout.BeginHorizontal();

        GUILayout.Label("-", EditorStyles.centeredGreyMiniLabel, GUILayout.Width(20));
        GUILayout.Label("Edit", EditorStyles.centeredGreyMiniLabel, GUILayout.Width(35));
        GUILayout.Label("Name", EditorStyles.centeredGreyMiniLabel, GUILayout.Width(200));

        EditorGUILayout.EndHorizontal();

        foreach (SystemLanguage language in main.languages)
        {
            EditorGUILayout.BeginHorizontal();

            if (GUILayout.Button("X", GUILayout.Width(20)))
            {
                main.languages.Remove(language);
                break;
            }
            if (GUILayout.Button("Edit", GUILayout.Width(35)))
            {
                BerryPanel.CreateBerryPanel().EditLocalization(language);
            }
            EditorGUILayout.LabelField(language.ToString(), GUILayout.Width(200));

            EditorGUILayout.EndHorizontal();
        }
        #endregion

        EditorGUILayout.Space();


        #region "Add new" panel
        EditorGUILayout.BeginHorizontal();
        GUI.enabled = !main.languages.Contains(new_language);
        if (GUILayout.Button("Add", GUILayout.Width(40)))
        {
            main.languages.Add(new_language);
        }
        GUI.enabled = true;

        new_language = (SystemLanguage)EditorGUILayout.EnumPopup(new_language, GUILayout.Width(200));
        EditorGUILayout.EndHorizontal();
        #endregion

        EditorGUILayout.EndVertical();
    }