Ejemplo n.º 1
0
        private void LoadLocalization(ZipArchiveEntry entry, Match match)
        {
            string name      = match.Groups["filename"].Value;
            string nameSpace = match.Groups["namespace"].Value;

            bool isJson = match.Groups["filetype"].Value.Equals("json", StringComparison.InvariantCultureIgnoreCase);

            using (var stream = entry.Open())
            {
                var text = Encoding.UTF8.GetString(stream.ReadToSpan(entry.Length));
                LanguageResource lang;

                if (isJson)
                {
                    lang = MCJsonConvert.DeserializeObject <LanguageResource>(text);
                }
                else
                {
                    lang = LanguageResource.ParseLangFile(text);
                }

                lang.CultureName = name;
                lang.Namespace   = nameSpace;

                _languageCache[$"{nameSpace}:{name}"] = lang;
            }
        }