private TranslationStringsCollection LoadLanguageFile(Language lang, string enFile) { var prefix = Path.GetFileName(enFile.Substring(0, enFile.Length - 8)); var langFile = $"{prefix}.{lang.Code}.json"; var appLang = TranslationStringsCatalog.LoadLanguageFromFile(Path.Combine(_appTranslationsFolder, langFile)); var userLang = TranslationStringsCatalog.LoadLanguageFromFile(Path.Combine(_userTranslationsFolder, langFile)); var tsc = new TranslationStringsCollection(); if (appLang != null) { foreach (var kv in appLang.Collection.Settings) { tsc.Settings[kv.Key] = kv.Value; } foreach (var kv in appLang.Collection.Strings) { tsc.Strings[kv.Key] = kv.Value; } } if (userLang != null) { foreach (var kv in userLang.Collection.Settings) { tsc.Settings[kv.Key] = kv.Value; } foreach (var kv in userLang.Collection.Strings) { tsc.Strings[kv.Key] = kv.Value; } } return(tsc); }
public TranslationsProvider( [Import] TranslationStringsCatalog catalog, [ImportMany("AutoTranslate")] IEnumerable <Lazy <object> > autoTranslate, [Import(AllowDefault = true)] IApplicationInfo appInfo) { _catalog = catalog; _autoTranslate = autoTranslate; _appInfo = appInfo; }
/// <summary> /// Construct the translator form /// </summary> public TranslationForm() { InitializeComponent(); _catalog = Common.Container.Get <TranslationStringsCatalog>(); _appInfo = Common.Container.Get <IApplicationInfo>(); _appTranslationsFolder = Path.Combine(Path.GetDirectoryName(GetType().Assembly.Location), "Translations"); _userTranslationsFolder = _appInfo.GetApplicationSettingsFolder("Translations"); var source = new DataTable("Translations"); source.Columns.Add("ID", typeof(string)); source.Columns.Add("Type", typeof(string)); source.Columns.Add("FriendlyID", typeof(string)); source.Columns.Add("English", typeof(string)); source.Columns.Add("Translation", typeof(string)); dataGridView.DataSource = source; PopulateLanguageList(); PopulateFileList(); }