private void DeleteKey(string fullKeyFileName, string key)
 {
     foreach (var language in config.gameExistLanguages)
     {
         DataTable data = LanguageDataUtils. LoadFileData(language, fullKeyFileName);
         data.RemoveData(key);
         LanguageDataEditorUtils.SaveData(language, fullKeyFileName, data);
     }
 }
    void SaveData()
    {
        LanguageDataUtils. SaveEditorConfig(config);
        LanguageDataEditorUtils.SaveData(currentLanguage, selectFullFileName, currentFileDataTable);

        LanguageManager.IsInit = false;

        LanguageManager.Release();
        GlobalEvent.DispatchEvent(EditorEvent.LanguageDataEditorChange);
    }
    private void AddNewKey(string fullKeyFileName, string key)
    {
        foreach (var language in config.gameExistLanguages)
        {
            DataTable data = LanguageDataUtils.LoadFileData(language, fullKeyFileName);
            SingleData sd = new SingleData();
            sd.Add(LanguageManager.c_mainKey, key);
            sd.Add(LanguageManager.c_valueKey, "");
            data.AddData(sd);

            LanguageDataEditorUtils.SaveData(language, fullKeyFileName, data);
        }
    }
    void SaveData()
    {
        LanguageDataUtils.SaveEditorConfig(config);
        LanguageDataEditorUtils.SaveData(currentLanguage, selectFullFileName, currentFileDataTable);



        LanguageManager.Release();
        LanguageManager.SetLanguage(currentLanguage);

        GlobalEvent.DispatchEvent(EditorEvent.LanguageDataEditorChange);
        UnityEditor.AssetDatabase.Refresh();
    }
예제 #5
0
    void MergeLanguage(string path, SystemLanguage language)
    {
        Debug.Log("MergeLanguage " + path);

        string languageKey = FileTool.GetFileNameByPath(FileTool.RemoveExpandName(path)).Replace(LanguageManager.c_DataFilePrefix + language + "_", "").Replace("_", "/");

        Debug.Log("languageKey " + languageKey);

        string    content     = ResourceIOTool.ReadStringByFile(path);
        DataTable aimLanguage = DataTable.Analysis(content);

        DataTable localLanguage = LanguageDataUtils.LoadFileData(language, languageKey);

        foreach (var key in aimLanguage.TableIDs)
        {
            string value = aimLanguage[key].GetString(LanguageManager.c_valueKey);

            SingleData sd = new SingleData();
            sd.Add(LanguageManager.c_mainKey, key);
            sd.Add(LanguageManager.c_valueKey, value);

            if (!localLanguage.TableIDs.Contains(key))
            {
                Debug.Log("新增字段 " + key + " -> " + value);
                localLanguage.AddData(sd);
            }
            else
            {
                if (localLanguage[key].GetString(LanguageManager.c_valueKey) != value)
                {
                    Debug.Log("更新字段 key" + key + " Value >" + localLanguage[key].GetString(LanguageManager.c_valueKey) + "< newValue >" + value + "<");
                    localLanguage[key] = sd;
                }
            }
        }

        LanguageDataEditorUtils.SaveData(language, languageKey, localLanguage);
    }
    public Dictionary<string, string> CreateLanguageNewFile(SystemLanguage language, string fullKeyFileName, Dictionary<string, string> contentDic)
    {
        Dictionary<string, string> keyPaths = new Dictionary<string, string>();

        DataTable data = new DataTable();
        data.TableKeys.Add(LanguageManager.c_mainKey);
        data.TableKeys.Add(LanguageManager.c_valueKey);
        data.SetDefault(LanguageManager.c_valueKey, "NoValue");
        if (contentDic != null)
        {
            foreach (var item in contentDic)
            {
                SingleData sd = new SingleData();
                sd.Add(LanguageManager.c_mainKey, item.Key);
                sd.Add(LanguageManager.c_valueKey, item.Value);
                data.AddData(sd);
                keyPaths.Add(item.Key, fullKeyFileName + "/" + item.Key);
            }

        }
        LanguageDataEditorUtils.SaveData(language, fullKeyFileName, data);
        return keyPaths;
    }
    private void AddNewKey(SystemLanguage language, string fullKeyFileName, string[] keys)
    {
        if (keys == null || keys.Length == 0)
        {
            return;
        }
        DataTable data = LanguageDataUtils.LoadFileData(language, fullKeyFileName);

        foreach (var key in keys)
        {
            if (data.ContainsKey(key))
            {
                continue;
            }
            SingleData sd = new SingleData();
            sd.Add(LanguageManager.c_mainKey, key);
            sd.Add(LanguageManager.c_valueKey, "");
            data.AddData(sd);
        }
        LanguageDataEditorUtils.SaveData(language, fullKeyFileName, data);

        UnityEditor.AssetDatabase.Refresh();
    }