Get Term Translation in Editor

More
4 years 1 month ago #903 by adamliu
Hi, I just want to know if there's a way to get the translation in the editor, because I want to generate some xml that uses the translation. I tried to use GetTermTranslation(), seems it doesn't work. Thanks.

Please Log in or Create an account to join the conversation.

More
4 years 1 month ago #904 by Frank
Hi,
To access the translation from a custom editor/inspector, you need to first load the LanguageSources if they are not already loaded. And then you can access the mTerms and mLanguages variables inside the source:
LocalizationManager.UpdateSources();                               // If the sources are not loaded yet, this will load them

var languageSource = LocalizationManager.Sources[0];   // This is the I2Languages.prefab. Any other source in the Globals Source array or the scene 
                                                                                                        // will also be in the array

// languageSource.Languages is an array with all the languages <name and code>
// languageSource.mTerms  is an array with all the terms and its translations


foreach (TermData data in languageSource.mTerms)
{
     Debug.Log( data.Term );     // Key

    //  Print all translatiosn for this term
     foreach (var translation in data.Languages )
           Debug.Log(translation);
}

I tried to use GetTermTranslation(), seems it doesn't work


What do you mean by "it doesn't work"?
If you try getting the GetTermTranslation(xx) where xx is a valid term it should return the translation for the current language or the first one.
If in the editor, you may need to add a LocalizationManager.UpdateSources() before calling that function.

Hope that helps,
Frank

Are you :-) Give I2L 5 stars!
Are you :-( Please lets us know how to improve it!
To get the betas as soon as they are ready, check this out

Please Log in or Create an account to join the conversation.

More
4 years 1 month ago #905 by adamliu
Yeah guess it's because the UpdateSources() thing. I didn't call it before I call LocalizationManager.GetTermTranslation. So when I called LocalizationManager.Sources.Count, the result is 0. But after I saw your reply I called LocalizationManager.Sources.Count again, and it become 1... Now the problem is solved. Thanks you.

Please Log in or Create an account to join the conversation.

Time to create page: 0.147 seconds
Template by JoomlaShine