Пример #1
0
 internal void ExtendedSave_CardBeingLoaded(ChaFile file)
 {
     if (file != null && CurrentCardLoadTranslationMode != CardLoadTranslationMode.Disabled)
     {
         file.StartMonitoredCoroutine(CardNameManager.TranslateCardNames(file));
     }
 }
Пример #2
0
        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));
        }
Пример #3
0
        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;
        }
Пример #4
0
        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()));
        }
Пример #5
0
        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);
            }
        }