/// <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); }
/// <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); }
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); }
/// <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); }
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)); }