internal void ExtendedSave_CardBeingLoaded(ChaFile file) { if (file != null && CurrentCardLoadTranslationMode != CardLoadTranslationMode.Disabled) { file.StartMonitoredCoroutine(CardNameManager.TranslateCardNames(file)); } }
internal IEnumerator RegisterReplacementsWrapper(ChaFile file, bool alreadyTranslated = false) { if (file == null) { yield break; } // handle card translation BEFORE registering replacements if (!alreadyTranslated && CurrentCardLoadTranslationMode != CardLoadTranslationMode.Disabled) { file.StartMonitoredCoroutine(CardNameManager.TranslateCardNames(file)); yield return(null); } //StartCoroutine(RegisterReplacements(file)); /*yield return*/ file.StartMonitoredCoroutine(RegisterReplacements(file)); }
public static IEnumerator TranslateFullNameCoroutine(this ChaFile chaFile, Action <string> callback) { var origName = chaFile.GetFullName(); chaFile.StartMonitoredCoroutine( CardNameTranslationManager.Instance.TranslateCardName(origName, new NameScope(chaFile.GetSex()), Handlers.AddNameToCache(origName), r => { callback(r.Succeeded ? r.TranslatedText : string.Empty); })); yield break; }
public static IEnumerator TranslateFullNameCoroutine(this ChaFile chaFile, Action <string> callback) { int started; var nameTypes = new[] { "lastname", "firstname" }; var names = nameTypes.Select(n => string.Empty).ToList(); started = names.Count; for (var i = 0; i < nameTypes.Length; i++) { var dest = i; var nameTypeIndex = GeBoAPI.Instance.ChaFileNameToIndex(nameTypes[i]); var name = names[i] = chaFile.GetName(nameTypeIndex); chaFile.StartMonitoredCoroutine( CardNameTranslationManager.Instance.TranslateCardName(name, new NameScope(chaFile.GetSex(), chaFile.GetNameType(nameTypeIndex)), r => { if (r.Succeeded) { names[dest] = r.TranslatedText; } started--; })); } bool IsDone() { return(started == 0); } yield return(new WaitUntil(IsDone)); if (TranslationHelper.KK_GivenNameFirst.Value) { names.Reverse(); } callback(string.Join(TranslationHelper.SpaceJoiner, names.ToArray())); }
public IEnumerator TranslateCardNames(ChaFile file) { var regId = file.GetRegistrationID(); // if it's in progress and the controller is available then // the outstanding job will handle things if (_cardsInProgress.Contains(regId)) { yield break; } _cardsInProgress.Add(regId); if (CardNeedsTranslation(file)) { file.StartMonitoredCoroutine(new CardJob(file, CardComplete).Start()); } else { CardComplete(file); } }