예제 #1
0
        private void button9_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Filter = "json files|*.json";
            if (openFileDialog.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            var scriptItems = JsonConvert.DeserializeObject <List <ScriptItem2> >(File.ReadAllText(openFileDialog.FileName));

            List <ScriptItemV2> nItems = new List <ScriptItemV2>();

            foreach (var item in scriptItems)
            {
                ScriptItemV2 sItem = new ScriptItemV2();

                sItem.Name      = item.Name;
                sItem.NameTrans = item.NameTrans;
                foreach (var textItem in item.TextList)
                {
                    int key = textItem.Text.Length;
                    if (sItem.TextList.ContainsKey(key))
                    {
                        sItem.TextList[key].Add(textItem);
                    }
                    else
                    {
                        sItem.TextList.Add(key, new List <ScriptSubItem>()
                        {
                            textItem
                        });
                    }
                }
                nItems.Add(sItem);
            }

            File.WriteAllText(Path.Combine(Path.GetDirectoryName(openFileDialog.FileName), Path.GetFileNameWithoutExtension(openFileDialog.FileName) + "_V2.json"),
                              JsonConvert.SerializeObject(nItems, Formatting.Indented));
        }
예제 #2
0
        private void ConvertAndTranslate(string path)
        {
            var scriptItems            = JsonConvert.DeserializeObject <List <ScriptItem> >(File.ReadAllText(path));
            List <ScriptItemV2> siVer2 = new List <ScriptItemV2>();

            foreach (var item in scriptItems)
            {
                if (string.IsNullOrEmpty(item.Name) && string.IsNullOrEmpty(item.Text))
                {
                    continue;
                }
                int index = siVer2.FindIndex(a => a.Name == item.Name);
                if (index == -1)
                {
                    ScriptItemV2 item2 = new ScriptItemV2();
                    if (!string.IsNullOrWhiteSpace(item.Name))
                    {
                        item2.Name      = item.Name;
                        item2.NameTrans = Program.tools.CompareAndReplace(item.Name, Program.tools.names);
                    }
                    ScriptSubItem subItem = new ScriptSubItem();
                    subItem.Text           = item.Text;
                    subItem.TransText      = item.TextTrans;
                    subItem.ChoiceDataList = new List <ScriptSubItem>(item.ChoiceDataList);
                    int key = subItem.Text.Length;
                    if (item2.TextList.ContainsKey(key))
                    {
                        item2.TextList[key].Add(subItem);
                    }
                    else
                    {
                        item2.TextList.Add(key, new List <ScriptSubItem>()
                        {
                            subItem
                        });
                    }
                    siVer2.Add(item2);
                }
                else
                {
                    ScriptSubItem subItem = new ScriptSubItem();
                    subItem.Text           = item.Text;
                    subItem.TransText      = item.TextTrans;
                    subItem.ChoiceDataList = new List <ScriptSubItem>(item.ChoiceDataList);
                    int key = subItem.Text.Length;

                    if (siVer2[index].TextList.ContainsKey(key))
                    {
                        siVer2[index].TextList[key].Add(subItem);
                    }
                    else
                    {
                        siVer2[index].TextList.Add(key, new List <ScriptSubItem>()
                        {
                            subItem
                        });
                    }
                }
            }
            File.WriteAllText("DialogueTextsV2.json", JsonConvert.SerializeObject(siVer2, Formatting.Indented));
        }