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); }
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 { } } }
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); }
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); }
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 } }
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); } }
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); } }
public static TransfluentLanguage Clone(TransfluentLanguage original) { return(new TransfluentLanguage(original.m_name, original.m_code, original.m_id)); }
//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); } }
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; }
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); }
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); } }