Exemplo n.º 1
0
        public void testBackwardsLanguage()
        {
            LanguageList list = getLanguageList();

            Assert.NotNull(list);
            Assert.IsTrue(list.languages.Count > 0);

            TransfluentLanguage englishLanguage = list.getLangaugeByCode("en-us");
            TransfluentLanguage lang            = list.getLangaugeByCode(TransfluentLanguage.BACKWARDS_LANGUAGE_NAME);

            Assert.AreNotEqual(englishLanguage.code, 0);
            Assert.NotNull(lang);

            //post text key
            string textToSave = "this is sample text" + Random.value;
            var    saveOp     = new SaveTextKey
                                (
                language: englishLanguage.id,
                text: textToSave,
                text_id: HELLO_WORLD_TEXT_KEY
                                );
            bool saved = saveOp.Parse(justCall(saveOp));

            Debug.Log("Saved successfullly:" + saved);

            var testForExistance = new GetTextKey
                                   (
                languageID: englishLanguage.id,
                text_id: HELLO_WORLD_TEXT_KEY
                                   );
            string keyFromDB = testForExistance.Parse(justCall(testForExistance));

            Assert.IsFalse(string.IsNullOrEmpty(keyFromDB));
            Assert.AreEqual(textToSave, keyFromDB);
        }
    public void testInstance()
    {
        var destinationLanguage = new TransfluentLanguage { code = "fo-o", id = 501, name = "foo" };

        var instance = new TranslationUtilityInstance
        {
            destinationLanguage = destinationLanguage,
            allKnownTranslations = new Dictionary<string, string>
            {
                {"hello world", "world hello"},
                {"formatted {0} text", "formatted text"}
            },
        };

        string toTranslateDoesNotExist = "THIS DOES NOT EXIST";
        Assert.AreEqual(instance.getTranslation(toTranslateDoesNotExist), toTranslateDoesNotExist);

        string toTranslateDoesNotExist2 = "THIS DOES NOT EXIST formattted {0}";
        Assert.AreEqual(instance.getFormattedTranslation(toTranslateDoesNotExist2, "nope"),
            string.Format(toTranslateDoesNotExist2, "nope"));

        string formattedStringThatExists = "formatted {0} text blah blah blah";
        Assert.AreEqual(instance.getFormattedTranslation(formattedStringThatExists, "success"),
                        string.Format(formattedStringThatExists, "success"));

        string toTranslateAndExists = "hello world";
        string translationResult = "world hello";
        Assert.AreEqual(translationResult, instance.getTranslation(toTranslateAndExists));
    }
    public void testInstance()
    {
        var destinationLanguage = new TransfluentLanguage {
            code = "fo-o", id = 501, name = "foo"
        };

        var instance = new TranslationUtilityInstance
        {
            destinationLanguage  = destinationLanguage,
            allKnownTranslations = new Dictionary <string, string>
            {
                { "hello world", "world hello" },
                { "formatted {0} text", "formatted text" }
            },
        };

        string toTranslateDoesNotExist = "THIS DOES NOT EXIST";

        Assert.AreEqual(instance.getTranslation(toTranslateDoesNotExist), toTranslateDoesNotExist);

        string toTranslateDoesNotExist2 = "THIS DOES NOT EXIST formattted {0}";

        Assert.AreEqual(instance.getFormattedTranslation(toTranslateDoesNotExist2, "nope"),
                        string.Format(toTranslateDoesNotExist2, "nope"));

        string formattedStringThatExists = "formatted {0} text blah blah blah";

        Assert.AreEqual(instance.getFormattedTranslation(formattedStringThatExists, "success"),
                        string.Format(formattedStringThatExists, "success"));

        string toTranslateAndExists = "hello world";
        string translationResult    = "world hello";

        Assert.AreEqual(translationResult, instance.getTranslation(toTranslateAndExists));
    }
    public static void ExportAllNGUILocalizations()
    {
        string assetPath = getLocalizationPath();

        GameTranslationSet[] allTranslations = Resources.LoadAll <GameTranslationSet>("");
        const string         groupid         = "NGUI"; //TODO: allow for a group selector with NGUI as the default

        var nativeLanguageNameToKnownTranslationGroups = new Dictionary <string, Dictionary <string, string> >();

        foreach (GameTranslationSet set in allTranslations)
        {
            var allPairs = set.getGroup(groupid).getDictionaryCopy();
            if (allPairs.Count == 0)
            {
                continue;
            }
            TransfluentLanguage firstLanguage = set.language;

            string nativeLanguageName = takeLanguageCodeAndTurnItIntoNativeName(firstLanguage.code);
            nativeLanguageNameToKnownTranslationGroups.Add(nativeLanguageName, allPairs);
        }

        var    exporter = new NGUICSVExporter(nativeLanguageNameToKnownTranslationGroups);
        string csv      = exporter.getCSV();

        File.WriteAllText(assetPath, csv);
        AssetDatabase.ImportAsset(assetPath, ImportAssetOptions.ForceSynchronousImport);
    }
Exemplo n.º 5
0
        public static void uploadTranslationSet(List <string> languageCodes, string groupid)
        {
            TransfluentEditorWindowMediator mediator = getAuthenticatedMediator();

            if (mediator == null)
            {
                return;
            }

            foreach (string languageCode in languageCodes)
            {
                try
                {
                    GameTranslationSet set = GameTranslationGetter.GetTranslaitonSetFromLanguageCode(languageCode);
                    GameTranslationSet.GroupOfTranslations groupData = set.getGroup(groupid);
                    TransfluentLanguage lang = ResourceLoadFacade.getLanguageList().getLangaugeByCode(languageCode);
                    if (groupData.translations.Count > 0)
                    {
                        mediator.SaveGroupToServer(groupData, lang);
                    }
                }
                catch
                {
                }
            }
        }
Exemplo n.º 6
0
        public bool showCurrentLanguage()
        {
            var languageList = _mediator.getLanguageList();

            showAllLanugages = EditorGUILayout.Toggle("Show all langauges, not just simplified list", showAllLanugages);
            var languageNames = showAllLanugages ?
                                languageList.getListOfIdentifiersFromLanguageList() :
                                languageList.getSimplifiedListOfIdentifiersFromLanguageList();

            TransfluentLanguage currentLanguage = _mediator.GetCurrentLanguage();
            int currentLanguageIndex            = -1;

            if (currentLanguage != null)
            {
                currentLanguageIndex = languageNames.IndexOf(currentLanguage.name);
            }

            int newLanguageIndex = EditorGUILayout.Popup("Current language", currentLanguageIndex, languageNames.ToArray());

            if (currentLanguageIndex != newLanguageIndex)
            {
                currentLanguage = languageList.getLangaugeByName(languageNames[newLanguageIndex]);
                _mediator.setCurrentLanguage(currentLanguage);
                return(true);
            }
            return(false);
        }
        public void setCurrentLanugageCode(string languageCode)
        {
            List <string> knownCodes = getAllLanguageCodes();

            if (!knownCodes.Contains(languageCode))
            {
                throw new Exception("Tried to set language to an unknown language code");
            }

            currentLanguage = allLanguagesSupported.getLangaugeByCode(languageCode);
        }
Exemplo n.º 8
0
        public void getKeyThatDoesNotExist()
        {
            TransfluentLanguage englishLanguage = getLanguageList().getLangaugeByCode("en-us");

            var testForExistance = new GetTextKey
                                   (
                languageID: englishLanguage.id,
                text_id: "THIS_DOES_NOT_EXIST" + Random.value
                                   );
            string rawOutput = justCall(testForExistance);

            testForExistance.Parse(rawOutput);
        }
        public void getLanguages()
        {
            var language = new RequestAllLanguages();
            var requester = new SyncronousEditorWebRequest();

            LanguageList list = language.Parse(requester.request(language).text);
            Assert.NotNull(list);

            englishLanguage = list.getLangaugeByCode("en-us");
            backwardsLanguage = list.getLangaugeByCode(TransfluentLanguage.BACKWARDS_LANGUAGE_NAME);
            languageCache = list;
            Assert.AreNotEqual(englishLanguage.code, 0);
            Assert.NotNull(backwardsLanguage);
        }
Exemplo n.º 10
0
        public void getLanguages()
        {
            var language  = new RequestAllLanguages();
            var requester = new SyncronousEditorWebRequest();

            LanguageList list = language.Parse(requester.request(language).text);

            Assert.NotNull(list);

            englishLanguage   = list.getLangaugeByCode("en-us");
            backwardsLanguage = list.getLangaugeByCode(TransfluentLanguage.BACKWARDS_LANGUAGE_NAME);
            languageCache     = list;
            Assert.AreNotEqual(englishLanguage.code, 0);
            Assert.NotNull(backwardsLanguage);
        }
    public static void ImportAllNGUILocalizations()
    {
        LanguageList list             = ResourceLoadFacade.getLanguageList();
        string       nguiLocalization = ResourceLoadFacade.LoadResource <TextAsset>("Localization").text;
        var          importer         = new NGUILocalizationCSVImporter(nguiLocalization);
        Dictionary <string, Dictionary <string, string> > map = importer.getMapOfLanguagesToKeyValueTranslations();

        foreach (var languageCommonNameToKeyValues in map)
        {
            string commonName = languageCommonNameToKeyValues.Key;
            Dictionary <string, string> keyValues = languageCommonNameToKeyValues.Value;
            string languageCode = takeLanguageNameAndTurnItIntoAKnownLanguageCode(commonName);

            TransfluentLanguage language = list.getLangaugeByCode(languageCode);
            saveSet(language, keyValues, "NGUI");             //groupid -- NGUI
        }
    }
Exemplo n.º 12
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);
                }
            }
        }
    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);
        }
    }
Exemplo n.º 14
0
        public void SaveRetrieveKey(string keyToSaveAndThenGet, TransfluentLanguage language)
        {
            //post text key
            string textToSave = textToSetTestTokenTo + Random.value;
            var    saveOp     = new SaveTextKey
                                (
                language: language.id,
                text: textToSave,
                text_id: keyToSaveAndThenGet
                                );
            string callText = justCall(saveOp);

            Assert.IsTrue(saveOp.Parse(callText));
            var testForExistance = new GetTextKey
                                   (
                languageID: language.id,
                text_id: keyToSaveAndThenGet
                                   );
            string stringFromServer = testForExistance.Parse(justCall(testForExistance));

            Assert.IsFalse(string.IsNullOrEmpty(stringFromServer));
            Assert.AreEqual(textToSave, stringFromServer);

            //save it back to what we expect it to be
            saveOp = new SaveTextKey
                     (
                language: language.id,
                text: textToSetTestTokenTo,
                text_id: keyToSaveAndThenGet
                     );
            callText = justCall(saveOp);
            Assert.IsTrue(saveOp.Parse(callText));

            stringFromServer = testForExistance.Parse(justCall(testForExistance));
            Assert.AreEqual(textToSetTestTokenTo, stringFromServer);
        }
 public void SaveGroupToServer(GameTranslationSet.GroupOfTranslations groupOfTranslations, TransfluentLanguage language)
 {
     var saveText = new SaveSetOfKeys(language.id, groupOfTranslations.getDictionaryCopy(), groupOfTranslations.groupid);
     try
     {
         makeCall(saveText);
     }
     catch(CallException exception)
     {
         Debug.LogError("error making setText call:" + exception.Message);
     }
 }
Exemplo n.º 16
0
 public static TransfluentLanguage Clone(TransfluentLanguage original)
 {
     return(new TransfluentLanguage(original.m_name, original.m_code, original.m_id));
 }
Exemplo n.º 17
0
        //TODO: how to encode content so that group ids are handled
        public string SendFileContents(Dictionary<string, string> keys, TransfluentLanguage sourceLanguage, string groupid, string comment)
        {
            //<?xml version=""1.0"" encoding=""UTF-8"" ?>
            //<?xml version=""1.0"" encoding=""UTF-8"" ?>
            string headerFormat = @"
            <locale>
            <id>{0}</id>
            <code>{1}</code>
            <name>{2}</name>
            ";
            //ie 148, en-us, "English US"
            string header = string.Format(headerFormat, sourceLanguage.id, sourceLanguage.code, sourceLanguage.name);
            string footer = "</locale>";

            string textsFormat = "<texts>{0}</texts>";
            string individualTextFormat = @"<text>
            <textId>{0}</textId>
            <textString>{1}</textString>
            </text>
            ";
            StringBuilder sb = new StringBuilder();
            foreach(KeyValuePair<string, string> kvp in keys)
            {
                sb.AppendFormat(individualTextFormat, kvp.Key, kvp.Value);
            }

            string texts = string.Format(textsFormat, sb.ToString());

            string contentToSend = string.Format("{0}\n{1}\n{2}", header, texts, footer);

            return contentToSend;
        }
 public void setCurrentLanguage(TransfluentLanguage lang)
 {
     _keyStore.set("CURRENT_LANGUAGE", lang.code);
     currentLanguage = lang;
 }
    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);
        }
    }
Exemplo n.º 20
0
 public static TransfluentLanguage Clone(TransfluentLanguage original)
 {
     return new TransfluentLanguage(original.m_name, original.m_code, original.m_id);
 }
        public int numberOfMissingTranslationsBetweenLanguages(TransfluentLanguage sourceLang, TransfluentLanguage destLang, string groupid)
        {
            var sourceSet = GameTranslationGetter.GetTranslaitonSetFromLanguageCode(sourceLang.code);
            var destSet = GameTranslationGetter.GetTranslaitonSetFromLanguageCode(destLang.code);

            var sourceGroup = sourceSet.getGroup(groupid);
            var sourceKeys = new List<string>(sourceGroup.getDictionaryCopy().Keys);
            var destKeys = new List<string>();
            if(destSet != null)
            {
                destKeys.AddRange(destSet.getGroup(groupid).getDictionaryCopy().Keys);
            }
            return numberOfMissingKeysFromLists(sourceKeys, destKeys);
        }
 public void setCurrentLanguageFromLanguageCode(string languageCode)
 {
     _keyStore.set("CURRENT_LANGUAGE", languageCode);
     currentLanguage = allLanguagesSupported.getLangaugeByCode(languageCode);
 }
        public void setCurrentLanugageCode(string languageCode)
        {
            List<string> knownCodes = getAllLanguageCodes();
            if(!knownCodes.Contains(languageCode)) throw new Exception("Tried to set language to an unknown language code");

            currentLanguage = allLanguagesSupported.getLangaugeByCode(languageCode);
        }
 public void setCurrentLanguage(TransfluentLanguage lang)
 {
     _keyStore.set("CURRENT_LANGUAGE", lang.code);
     currentLanguage = lang;
 }
Exemplo n.º 25
0
        public void SaveRetrieveKey(string keyToSaveAndThenGet, TransfluentLanguage language)
        {
            //post text key
            string textToSave = textToSetTestTokenTo + Random.value;
            var saveOp = new SaveTextKey
                (
                language: language.id,
                text: textToSave,
                text_id: keyToSaveAndThenGet
                );
            string callText = justCall(saveOp);
            Assert.IsTrue(saveOp.Parse(callText));
            var testForExistance = new GetTextKey
                (
                languageID: language.id,
                text_id: keyToSaveAndThenGet
                );
            string stringFromServer = testForExistance.Parse(justCall(testForExistance));

            Assert.IsFalse(string.IsNullOrEmpty(stringFromServer));
            Assert.AreEqual(textToSave, stringFromServer);

            //save it back to what we expect it to be
            saveOp = new SaveTextKey
                (
                language: language.id,
                text: textToSetTestTokenTo,
                text_id: keyToSaveAndThenGet
                );
            callText = justCall(saveOp);
            Assert.IsTrue(saveOp.Parse(callText));

            stringFromServer = testForExistance.Parse(justCall(testForExistance));
            Assert.AreEqual(textToSetTestTokenTo, stringFromServer);
        }
Exemplo n.º 26
0
    private void DisplaySelectedTranslationConfiguration(TranslationConfigurationSO so)
    {
        List <string> knownLanguageDisplayNames = showAllLanguages ?
                                                  _languages.getListOfIdentifiersFromLanguageList() :
                                                  _languages.getSimplifiedListOfIdentifiersFromLanguageList();

        int sourceLanguageIndex = knownLanguageDisplayNames.IndexOf(so.sourceLanguage.name);

        if (sourceLanguageIndex < 0)
        {
            sourceLanguageIndex = 0;
        }
        EditorGUILayout.LabelField(string.Format("group identifier:{0}", so.translation_set_group));
        EditorGUILayout.LabelField(string.Format("source language:{0}", so.sourceLanguage.name));

        sourceLanguageIndex = EditorGUILayout.Popup(sourceLanguageIndex, knownLanguageDisplayNames.ToArray());
        if (GUILayout.Button("SET Source to this language" + knownLanguageDisplayNames[sourceLanguageIndex]))
        {
            so.sourceLanguage = _languages.getLangaugeByName(knownLanguageDisplayNames[sourceLanguageIndex]);
        }

        EditorGUILayout.LabelField("destination language(s):");
        TransfluentLanguage removeThisLang = null;

        foreach (TransfluentLanguage lang in so.destinationLanguages)
        {
            GUILayout.Space(10);
            EditorGUILayout.LabelField("destination language:" + lang.name);
            if (GUILayout.Button("Remove", GUILayout.Width(100)))
            {
                removeThisLang = lang;
            }
        }
        if (removeThisLang != null)
        {
            so.destinationLanguages.Remove(removeThisLang);
            saveCurrentConfig();
        }

        GUILayout.Space(30);

        newDestinationLanguageIndex = EditorGUILayout.Popup(newDestinationLanguageIndex, knownLanguageDisplayNames.ToArray());

        if (GUILayout.Button("Create a new Destination Language"))
        {
            TransfluentLanguage lang = _languages.getLangaugeByName(knownLanguageDisplayNames[newDestinationLanguageIndex]);
            if (so.sourceLanguage.id == lang.id)
            {
                EditorUtility.DisplayDialog("Error", "Cannot have the source language be the destination language", "OK", "");
                return;
            }
            foreach (TransfluentLanguage exists in so.destinationLanguages)
            {
                if (exists.id != lang.id)
                {
                    continue;
                }
                EditorUtility.DisplayDialog("Error", "You already have added this language: " + lang.name, "OK", "");
                return;
            }

            so.destinationLanguages.Add(lang);

            GUILayout.Space(10);

            saveCurrentConfig();
        }
        GUILayout.Space(10);
        var translationQualityStrings = new List <string>()
        {
            OrderTranslation.TranslationQuality.NATIVE_SPEAKER.ToString(),
            OrderTranslation.TranslationQuality.PROFESSIONAL_TRANSLATOR.ToString(),
            OrderTranslation.TranslationQuality.PAIR_OF_TRANSLATORS.ToString(),
        };
        int currentIndex = translationQualityStrings.IndexOf(so.QualityToRequest.ToString());
        int newIndex     = EditorGUILayout.Popup("Desired Translation Quality:", currentIndex, translationQualityStrings.ToArray());

        if (newIndex != currentIndex)
        {
            so.QualityToRequest = (OrderTranslation.TranslationQuality)newIndex + 1;
        }
    }
 public void setCurrentLanguageFromLanguageCode(string languageCode)
 {
     _keyStore.set("CURRENT_LANGUAGE", languageCode);
     currentLanguage = allLanguagesSupported.getLangaugeByCode(languageCode);
 }
        public void SaveGroupToServer(GameTranslationSet.GroupOfTranslations groupOfTranslations, TransfluentLanguage language)
        {
            var saveText = new SaveSetOfKeys(language.id, groupOfTranslations.getDictionaryCopy(), groupOfTranslations.groupid);

            try
            {
                makeCall(saveText);
            }
            catch (CallException exception)
            {
                Debug.LogError("error making setText call:" + exception.Message);
            }
        }