private static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                ShowUsageInfo();
                return;
            }

            string path = args[0];

            if (File.Exists(path) == false)
            {
                ShowUsageInfo();
                return;
            }
            string extension = Path.GetExtension(path);

            if (String.Equals(extension, ".xml", StringComparison.OrdinalIgnoreCase))
            {
                using (FileStream inputStream = new FileStream(path, FileMode.Open))
                    using (StreamReader xmlReader = new StreamReader(inputStream, Encoding.UTF8))
                        using (FileStream outputStream = new FileStream(path.Substring(0, path.Length - 4), FileMode.Create))
                        {
                            XmlSerializer serializer = new XmlSerializer(typeof(LangFile));
                            LangFile      file       = serializer.Deserialize(xmlReader) as LangFile;
                            if (file == null)
                            {
                                Console.WriteLine("XML was not not a valid LangFile");
                                return;
                            }
                            file.Write(outputStream);
                        }
            }
            else if (String.Equals(extension, ".lng", StringComparison.OrdinalIgnoreCase) ||
                     String.Equals(extension, ".lng2", StringComparison.OrdinalIgnoreCase))
            {
                var dictionary = GetDictionary(DefaultDictionaryPath);
                using (FileStream inputStream = new FileStream(path, FileMode.Open))
                    using (FileStream outputStream = new FileStream(path + ".xml", FileMode.Create))
                        using (StreamWriter xmlWriter = new StreamWriter(outputStream, Encoding.UTF8))
                        {
                            LangFile      file       = LangFile.ReadLangFile(inputStream, dictionary);
                            XmlSerializer serializer = new XmlSerializer(typeof(LangFile));
                            serializer.Serialize(xmlWriter, file);
                        }
            }
            else
            {
                ShowUsageInfo();
            }
        }
Exemple #2
0
        private static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                ShowUsageInfo();
                return;
            }

            string path = args[0];

            if (File.Exists(path) == false)
            {
                ShowUsageInfo();
                return;
            }
            string extension = Path.GetExtension(path);

            if (extension == ".xml")
            {
                using (FileStream inputStream = new FileStream(path, FileMode.Open))
                    using (StreamReader xmlReader = new StreamReader(inputStream, Encoding.UTF8))
                        using (FileStream outputStream = new FileStream(path.Substring(0, path.Length - 4), FileMode.Create))
                        {
                            XmlSerializer serializer = new XmlSerializer(typeof(LangFile));
                            LangFile      file       = serializer.Deserialize(xmlReader) as LangFile;
                            if (file == null)
                            {
                                Console.WriteLine("XML was not not a valid LangFile");
                                return;
                            }
                            file.Write(outputStream);
                        }
            }
            else if (Regex.Match(extension, @"^\.lng#\w{3}$", RegexOptions.IgnoreCase).Success)
            {
                using (FileStream inputStream = new FileStream(path, FileMode.Open))
                    using (FileStream outputStream = new FileStream(path + ".xml", FileMode.Create))
                        using (StreamWriter xmlWriter = new StreamWriter(outputStream, Encoding.UTF8))
                        {
                            LangFile      file       = LangFile.ReadLangFile(inputStream);
                            XmlSerializer serializer = new XmlSerializer(typeof(LangFile));
                            serializer.Serialize(xmlWriter, file);
                        }
            }
            else
            {
                ShowUsageInfo();
            }
        }
Exemple #3
0
        public static void WriteQuestLangs(string dir, params CoreDetails[] coreDetails)
        {
            List <LangEntry> langList            = new List <LangEntry>();
            List <string>    notificationLangIds = new List <string>();

            foreach (CoreDetails core in coreDetails)
            {
                string notifId = core.progressLangID;

                if (!notificationLangIds.Contains(notifId) && UpdateNotifsManager.isCustomNotification(notifId))
                {
                    notificationLangIds.Add(notifId);
                }

                langList.Add(new LangEntry("name_q" + core.QuestNum, core.QuestTitle, 5));
                langList.Add(new LangEntry("info_q" + core.QuestNum, core.QuestDesc, 5));
            }

            foreach (string langId in notificationLangIds)
            {
                langList.Add(new LangEntry(langId, UpdateNotifsManager.GetDisplayNotification(langId) + " [%d/%d]", 5));
            }

            LangFile questLng = new LangFile(langList);

            string fileName = "";

            if (coreDetails.Length > 1)
            {
                fileName = $"ih_q{coreDetails[0].QuestNum}_q{coreDetails[coreDetails.Length - 1].QuestNum}";
            }
            else if (coreDetails.Length > 0)
            {
                fileName = $"ih_quest_q{coreDetails[0].QuestNum}";
            }

            foreach (string language in lngLanguages)
            {
                string lngPath = $@"{dir}/Assets/tpp/pack/ui/lang/lang_default_data_{language}_fpk/Assets/tpp/lang/ui";
                string lngFile = Path.Combine(lngPath, $"{fileName}.{language}.lng2");
                Directory.CreateDirectory(lngPath);

                using (FileStream outputStream = new FileStream(lngFile, FileMode.Create))
                {
                    questLng.Write(outputStream);
                }
            }
        }
Exemple #4
0
        private static void Main(string[] args)
        {
            if (args.Length == 0 || args.Length > 3)
            {
                ShowUsageInfo();
                return;
            }

            string path           = args[0];
            bool   outputHashes   = false;
            string dictionaryPath = DefaultDictionaryPath;

            if (args.Length > 1)
            {
                for (int i = 1; i < args.Length; i++)
                {
                    string arg  = args[i];
                    string argL = args[i].ToLower();
                    if (argL == "-outputhashes" || argL == "-o")
                    {
                        outputHashes = true;
                    }
                    else
                    {
                        if (argL == "-dictionary" || argL == "-d")
                        {
                            if (i + 1 < args.Length)
                            {
                                dictionaryPath = args[i + 1];
                            }
                        }
                    }
                }
            }

            if (File.Exists(path) == false)
            {
                ShowUsageInfo();
                return;
            }

            string extension = Path.GetExtension(path);

            if (String.Equals(extension, ".xml", StringComparison.OrdinalIgnoreCase))
            {
                using (FileStream inputStream = new FileStream(path, FileMode.Open))
                    using (StreamReader xmlReader = new StreamReader(inputStream, Encoding.UTF8))
                        using (FileStream outputStream = new FileStream(path.Substring(0, path.Length - 4), FileMode.Create))
                        {
                            XmlSerializer serializer = new XmlSerializer(typeof(LangFile));
                            LangFile      file       = serializer.Deserialize(xmlReader) as LangFile;
                            if (file == null)
                            {
                                Console.WriteLine("XML was not not a valid LangFile");
                                return;
                            }
                            file.Write(outputStream);
                        }
            }
            else if (String.Equals(extension, ".lng", StringComparison.OrdinalIgnoreCase) ||
                     String.Equals(extension, ".lng2", StringComparison.OrdinalIgnoreCase))
            {
                var dictionary = GetDictionary(dictionaryPath);
                using (FileStream inputStream = new FileStream(path, FileMode.Open))
                    using (FileStream outputStream = new FileStream(path + ".xml", FileMode.Create))
                        using (StreamWriter xmlWriter = new StreamWriter(outputStream, Encoding.UTF8))
                        {
                            LangFile      file       = LangFile.ReadLangFile(inputStream, dictionary);
                            XmlSerializer serializer = new XmlSerializer(typeof(LangFile));
                            serializer.Serialize(xmlWriter, file);
                            if (outputHashes)
                            {
                                HashSet <string> uniqueHashes = new HashSet <string>();
                                foreach (LangEntry entry in file.Entries)
                                {
                                    ulong langIdHash = entry.Key;
                                    uniqueHashes.Add(langIdHash.ToString("x"));
                                }
                                List <string> hashes = uniqueHashes.ToList <string>();
                                hashes.Sort();
                                string fileDirectory    = Path.GetDirectoryName(path);
                                string hashesOutputPath = Path.Combine(fileDirectory, string.Format("{0}_langIdHashes.txt", Path.GetFileName(path)));
                                File.WriteAllLines(hashesOutputPath, hashes.ToArray <string>());
                            }
                        }
            }
            else
            {
                ShowUsageInfo();
            }
        }