Ejemplo n.º 1
0
        public static void downloadTranslationSetsFromLanguageCodeList(List <string> languageCodes, string groupid = null)
        {
            TransfluentEditorWindowMediator mediator = getAuthenticatedMediator();

            if (mediator == null)
            {
                return;
            }

            foreach (string languageCode in languageCodes)
            {
                try
                {
                    mediator.setCurrentLanguageFromLanguageCode(languageCode);
                    TransfluentLanguage currentlanguage = mediator.GetCurrentLanguage();

                    List <TransfluentTranslation> translations = mediator.knownTextEntries(groupid);
                    //Debug.Log("CURRENT LANGUAGE:" + currentlanguage.code + " translation count:" + translations.Count);
                    if (translations.Count > 0)
                    {
                        GameTranslationSet set = GameTranslationGetter.GetTranslaitonSetFromLanguageCode(languageCode) ??
                                                 ResourceCreator.CreateSO <GameTranslationSet>(GameTranslationGetter.fileNameFromLanguageCode(languageCode));

                        set.language = currentlanguage;
                        Dictionary <string, Dictionary <string, string> > groupToTranslationMap = groupidToDictionaryMap(translations);
                        foreach (var kvp in groupToTranslationMap)
                        {
                            Dictionary <string, string> dictionaryOfStrings = kvp.Value;
                            if (languageCode.Equals("xx-xx"))                            //backwards string
                            {
                                dictionaryOfStrings = cleanBackwardsLanguageStringDictionary(dictionaryOfStrings);
                            }
                            set.mergeInSet(kvp.Key, dictionaryOfStrings);
                        }

                        EditorUtility.SetDirty(set);
                        AssetDatabase.SaveAssets();
                    }
                }
                catch (Exception e)
                {
                    Debug.LogError("error while downloading translations:" + e.Message + " stack:" + e.StackTrace);
                }
            }
        }
        public void addToDB(string key, string value)
        {
            string currentGroup = _translationDB.groupBeingShown;
            TranslationConfigurationSO  config = ResourceLoadFacade.LoadConfigGroup(_translationDB.groupBeingShown);
            Dictionary <string, string> translationDictionary = _translationDB.allKnownTranslations;
            GameTranslationSet          gameTranslationSet    =
                GameTranslationGetter.GetTranslaitonSetFromLanguageCode(config.sourceLanguage.code);

            bool exists = translationDictionary.ContainsKey(key);

            if (!exists)
            {
                translationDictionary.Add(key, key);
            }

            gameTranslationSet.mergeInSet(currentGroup, translationDictionary);
            //_translationDB.allKnownTranslations.Add(key,value);
        }
            public static void setKeyInDefaultLanguageDB(string key, string value, string groupid = "")
            {
                //Debug.LogWarning("Make sure to set language to game source language before saving a new translation key");
                Dictionary <string, string> translationDictionary =
                    TranslationUtility.getUtilityInstanceForDebugging().allKnownTranslations;
                TranslationConfigurationSO config = ResourceLoadFacade.LoadConfigGroup(groupid);

                GameTranslationSet gameTranslationSet =
                    GameTranslationGetter.GetTranslaitonSetFromLanguageCode(config.sourceLanguage.code);

                bool exists = translationDictionary.ContainsKey(key);

                if (!exists)
                {
                    translationDictionary.Add(key, key);
                }
                translationDictionary[key] = value;                 //find a way to make sure the the SO gets set dirty?

                gameTranslationSet.mergeInSet(groupid, translationDictionary);
                //EditorUtility.SetnDirty(TransfluentUtility.getUtilityInstanceForDebugging());
            }
    private static void saveSet(TransfluentLanguage language, Dictionary <string, string> pairs, string groupid = null)
    {
        try
        {
            string             languageCode = language.code;
            GameTranslationSet set          = GameTranslationGetter.GetTranslaitonSetFromLanguageCode(languageCode) ??
                                              ResourceCreator.CreateSO <GameTranslationSet>(
                GameTranslationGetter.fileNameFromLanguageCode(languageCode));
            if (set.language == null)
            {
                set.language = language;
            }
            set.mergeInSet(groupid, pairs);

            EditorUtility.SetDirty(set);
            AssetDatabase.SaveAssets();
        }
        catch (Exception e)
        {
            Debug.LogError("error while saving imported translations:" + e.Message + " stack:" + e.StackTrace);
        }
    }