コード例 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="db"></param>
        /// <param name="input"></param>
        /// <param name="mode"></param>
        /// <returns></returns>
        static public int ImportToSingleLanguageDBFromFile(SingleLanguageDB db, ILocalizationFile input,
                                                           LocalizationDB.ImportMode mode = LocalizationDB.ImportMode.kReplace)
        {
            // for now, all input file will be marked as english...
            if (!input.VerifyHeader("english"))
            {
                return(0);
            }
            int importCount = 0;
            int count       = input.CountLines();

            if (count > 0)
            {
                for (int i = 0; i < count; ++i)
                {
                    if (input.IsLineLocalizationData(i))
                    {
                        string tag  = "";
                        int    ver  = 0;
                        string data = "";
                        string rest = "";
                        input.GetData(i, ref tag, ref ver, ref data, ref rest);
                        if (db.Import(tag, ver, data, mode))
                        {
                            ++importCount;
                        }
                    }
                }
            }
            return(importCount);
        }
コード例 #2
0
        /// <summary>
        /// Merge input into target.
        /// </summary>
        /// <param name="target"></param>
        /// <param name="input"></param>
        /// <param name="mode"></param>
        /// <returns></returns>
        static public int MergeIn(SingleLanguageDB target, SingleLanguageDB input, LocalizationDB.ImportMode mode = LocalizationDB.ImportMode.kReplace)
        {
            int count = 0;

            foreach (var entry in input)
            {
                foreach (var kv in entry.Value)
                {
                    if (target.Import(entry.Key, kv.Key, kv.Value, mode))
                    {
                        ++count;
                    }
                }
            }
            return(count);
        }
コード例 #3
0
        public bool Import(string tag, int ver, string text, LocalizationDB.ImportMode mode)
        {
            if (!data.ContainsKey(tag))
            {
                data[tag] = new SortedDictionary <int, string>();
            }

            if (mode == LocalizationDB.ImportMode.kReplace)
            {
                data[tag][ver] = text;
            }
            else
            {
                if (!data[tag].ContainsKey(ver))
                {
                    data[tag][ver] = text;
                }
                else
                {
                    return(false);
                }
            }
            return(true);
        }
コード例 #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="db"></param>
        /// <param name="path"></param>
        /// <param name="fileFormat"></param>
        /// <param name="overridePattern"></param>
        /// <param name="mode"></param>
        /// <returns></returns>
        static public int BatchImportToSingleLanguageDB(SingleLanguageDB db, string path, LocalizationFileFormat fileFormat,
                                                        string overridePattern = null, LocalizationDB.ImportMode mode = LocalizationDB.ImportMode.kReplace)
        {
            if (!Directory.Exists(path))
            {
                return(0);
            }

            string pattern    = overridePattern != null ? overridePattern : fileFormat.GetLocalizationFileInstance().DefaultNamePattern();
            int    totalCount = 0;

            foreach (var filename in Directory.EnumerateFiles(path, pattern))
            {
                ILocalizationFile file = fileFormat.GetLocalizationFileInstance();
                file.Read(filename);
                totalCount += ImportToSingleLanguageDBFromFile(db, file, mode);
            }
            return(totalCount);
        }
コード例 #5
0
 static public int BatchImportToSingleLanguageDB(SingleLanguageDB db, string path, string fileFormatString,
                                                 string overridePattern = null, LocalizationDB.ImportMode mode = LocalizationDB.ImportMode.kReplace)
 {
     return(BatchImportToSingleLanguageDB(db, path, LocalizationFileFormat.GetFileFormat(fileFormatString), overridePattern, mode));
 }