static void Main(string[] path)
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            if (!string.IsNullOrWhiteSpace(string.Join("", path)))
            {
                string ustFileStr = File.ReadAllText(string.Join("", path))
                                    .Replace(UstHeader, "");

                UstData = new FileIniDataParser().Parser.Parse(ustFileStr);

                UstData.Sections.RemoveSection("#PREV");
                UstData.Sections.RemoveSection("#NEXT");
                UstData.Sections.RemoveSection("#SETTING");

                //foreach (var itemSection in UstData.Sections)
                Parallel.ForEach(UstData.Sections, itemSection =>
                {
                    if (itemSection.Keys["Lyric"] == "R")
                    {
                        return;
                    }
                    try
                    {
                        if (itemSection.Keys["Lyric"].Contains(" "))
                        {
                            itemSection.Keys["Lyric"] = itemSection.Keys["Lyric"].Trim().Split(' ')[0] + " " +
                                                        KanaConverter.RomajiToHiragana(itemSection.Keys["Lyric"].Trim()
                                                                                       .Split(' ')[1]);
                        }
                        else
                        {
                            itemSection.Keys["Lyric"] = KanaConverter.RomajiToHiragana(itemSection.Keys["Lyric"]);
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                    }
                });

                File.WriteAllText(string.Join("", path),
                                  UstHeader + UstData.ToString().Replace(" = ", "=").Replace("\r\n\r\n", "\r\n"), EncodeJPN);
            }
            else
            {
                Console.WriteLine("未包含应有的参数,请作为UTAU插件使用");
                Console.ReadKey();
            }
        }
Beispiel #2
0
        public void Translate()
        {
            if (L.Source == "")
            {
                return;
            }
            L.Source = Regex.Replace(L.Source, @"\p{Cs}", "");

            switch (WhatLanguage())
            {
            case "ko":
                L.SoruceType   = "ko";
                L.Korean       = L.Source;
                L.Japanese     = Translate("ko", "ja", L.Korean);
                L.Retranslated = Translate("ja", "ko", L.Japanese);
                break;

            case "ja":
                L.SoruceType   = "ja";
                L.Japanese     = L.Source;
                L.Korean       = Translate("ko", "ja", L.Japanese);
                L.Retranslated = Translate("ja", "ko", L.Korean);
                break;

            case "rmj":
                L.SoruceType   = "rmj";
                L.Japanese     = KanaConverter.RomajiToHiragana(L.Source);
                L.Korean       = Translate("ko", "ja", L.Japanese);
                L.Retranslated = Translate("ja", "ko", L.Korean);
                break;

            case "err":
                L.SoruceType = "err";
                return;

            default:
                L.SoruceType = "err";
                return;
            }
            MakeFurigana(L.Japanese);
        }
Beispiel #3
0
 public static string ParseRomaji(this string romaji)
 {
     return(KanaConverter.RomajiToHiragana(romaji));
 }
 public static string RomajiToHiragana(string input)
 {
     return(KanaConverter.RomajiToHiragana(input));
 }