public bool CardNeedsTranslation(ChaFile file) { var sex = file.GetSex(); return(file.EnumerateNames().Any(name => StringUtils.ContainsJapaneseChar(name.Value) && !NoTranslate[new NameScope(sex, file.GetNameType(name.Key))].Contains(name.Value))); }
protected virtual IEnumerable <KeyValuePair <string, string> > GetNamesToRegister(ChaFile chaFile) { var handled = HashSetPool <string> .Get(); var controller = chaFile.GetTranslationHelperController(); try { foreach (var nameEntry in chaFile.EnumerateNames()) { var name = nameEntry.Value; if (handled.Contains(name)) { continue; } handled.Add(name); yield return(new KeyValuePair <string, string>(name, name)); if (controller == null) { continue; } var origName = controller.OriginalNames[nameEntry.Key]; if (origName.IsNullOrEmpty() || origName == name || handled.Contains(origName)) { continue; } handled.Add(origName); yield return(new KeyValuePair <string, string>(origName, origName)); } var fullname = chaFile.GetFullName(); foreach (var name in new[] { fullname, chaFile.GetOriginalFullName(), chaFile.GetFormattedOriginalName() }) { if (handled.Contains(name)) { continue; } handled.Add(name); yield return(new KeyValuePair <string, string>(name, name)); } } finally { HashSetPool <string> .Release(handled); } }
protected virtual void ApplyTranslations(ChaFile file) { if (file.TryGetTranslationHelperController(out var controller)) { controller.ApplyTranslations(); return; } var sex = file.GetSex(); // partially loaded, no controller available foreach (var entry in file.EnumerateNames()) { var scope = new NameScope(sex, file.GetNameType(entry.Key)); if (TryGetRecentTranslation(scope, entry.Value, out var translatedName) && !TranslationHelper.NameStringComparer.Equals(translatedName, entry.Value)) { file.SetName(entry.Key, translatedName); } } }
private IEnumerable <string> GetNamesToRegister(ChaFile chaFile) { var handled = new HashSet <string>(); foreach (var name in chaFile.EnumerateNames().Select(n => n.Value)) { if (handled.Contains(name)) { continue; } handled.Add(name); yield return(name); } var fullname = chaFile.GetFullName(); if (handled.Contains(fullname)) { yield break; } yield return(fullname); }
private void ApplyTranslations(ChaFile file) { if (file.TryGetTranslationHelperController(out var controller)) { controller.ApplyTranslations(); return; } var sex = file.GetSex(); // partially loaded, no controller available foreach (var entry in file.EnumerateNames()) { var scope = new NameScope(sex, file.GetNameType(entry.Key)); if (NoTranslate[scope].Contains(entry.Value)) { continue; } if (RecentTranslationsByName[scope].TryGetValue(entry.Value, out var translatedName)) { file.SetName(entry.Key, translatedName); } } }
public static string GetName(this ChaFile chaFile, int index) { return(chaFile.EnumerateNames().Where(e => e.Key == index).Select(e => e.Value).FirstOrDefault()); }
public virtual bool CardNeedsTranslation(ChaFile file) { return(file.EnumerateNames().Any(name => StringUtils.ContainsJapaneseChar(name.Value))); }