Search Unity

  1. Unity 2019.2 is now released.
    Dismiss Notice

I2 Localization ( The most complete Localization solution for Unity )

Discussion in 'Assets and Asset Store' started by Inter-Illusion, Feb 27, 2014.

  1. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    468
    Hi,
    I haven't been able to reproduce this issue, can you please give me a bit more context to help me figure out how to break the appname localization for IOS?

    Can you let me know what Unity version are you using?

    What I2 Localization version?

    Are you running on a Mac, using one of the plugins that allow building from windows, or using the build cloud?

    Do you have any other plugin in your project that could be modifying the IOS project and overriding the I2 Localization settings? If you can email me the list of plugins you are using, I can try building with all of them included in a project.

    If you delete the last build, and do a clean build, does the project still has the wrong settings?

    All the IOS settings is performed by the Post process file: Assets\I2\Localization\Scripts\Editor\PostProcessBuild_IOS.cs
    Do you see any console error related to that when building the project?

    Thanks,
    Frank
     
  2. Alexey_Ukhov

    Alexey_Ukhov

    Joined:
    Sep 20, 2017
    Posts:
    5
    Hi Frank, I use unity 5.6.2 and many plugins (Chartboost, Google play, Firebase and others). After your message I found solution - just add execution order for PostProcessBuild_IOS.cs - [PostProcessBuild(10000)], and now app name localized! Thanks.
     
  3. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    468
    Hi,
    I like that solution. For the next release I will add the execution order to avoid further conflicts with other plugins!!
    Thanks!
    Frank
     
  4. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    692
    Hi,

    First Topic: Reload Local Localization Table
    I wrote a little tool for my project which parses all csharp scripts to find terms which have no entry in the localization table. those terms are added to the table then.
    However, they do not appear in the I2Languages prefab inspector. To get them there I have to import the table again by hand.
    I would prefer to have an option to simply reload the file with one click instead.
    Under Spreadsheets/Local there is the loca-file specified anyways. I guess it wouldn't be too hard to add a "Reload" button next to the File-Input-Field...

    Or did I miss something?


    Second Topic: CultureInfo
    I would like to have an option to store the CultureInfo of the current Language not inside Thread.CurrentThread.CurrentCulture (where also CultureInfo.CurrentCulture points to), but in a separate variable e.g. inside LocalizationManager.
    I have a Parsing Manager which helps me to parse strings to some types (I need this for generic saving and loading of data).
    To be sure that the data can always be parsed I would like to set the CurrentCulture to Invariant. Otherwise I could e.g. save a DateTime object with en-US culture and try to load it with de-DE culture. This would either fail or give me the wrong date because day and month are swapped.

    So, it would be really nice if you could implement an option in the new version which allows you to store the CultureInfo separately.
     
    Last edited: Mar 2, 2018
  5. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    468
    When you click the Import, the dialog will already highlight the file you specified, and then its just clicking OK to import. So, its a two buttons click.
    But I see that it maybe nice to have an extra one-click action to reload. I will add that to my todo list!

    I like that suggestion a lot! Will add it to the next beta.

    Hope that helps,
    Frank[/quote][/quote]
     
    Hosnkobf likes this.
  6. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    468
    ALSO:
    If you are running that tool inside Unity, you can add the things you find directly into the LanguageSource:

    Code (csharp):
    1.  
    2. var termData = LocalizationManager.Sources[0].AddTerm("My New Term");
    3. termData.Languages[0] = "Hello";
    4. termData.Languages[1] = "Hola";
    5.  
    6. ....
    7. LocalizationManager.Sources[0].UpdateDictionary();
    8.  
    Hope that helps,
    Frank
     
    Hosnkobf likes this.
  7. HaakonL

    HaakonL

    Joined:
    Mar 13, 2014
    Posts:
    113
    Hi,

    I find the parameters part to be really confusing and/or hard to deal with. Why can't we just do something like

    LocalizationManager.GetTranslation("Result Screen/Winner Text", ["Rebecca"]);

    And in the prefab, the term "Result Screen/Winner Text" would look like "The winner is {0}".
     
  8. HaakonL

    HaakonL

    Joined:
    Mar 13, 2014
    Posts:
    113
    I fixed it temporarily by adding a new method to the LocalizationManager.cs partial class. Now I can do

    LocalizationManager.GetTranslationWithParams("Version", Application.version);

    with as many parameters as I want.

    The term Version is "Version {0}"

    And the helper method is


    public static string GetTranslationWithParams(string term, params object[] parameters)
    {
    var trans = GetTranslation(term);
    return string.Format(trans, parameters);
    }
     
  9. Hosnkobf

    Hosnkobf

    Joined:
    Aug 23, 2016
    Posts:
    692
    you can do it with named parameters:
    Code (CSharp):
    1. string localized = new LocalizedString("Result Screen/Winner Text");
    2. // Translation: "The winner is {[winner]}"
    3. LocalizationManager.ApplyLocalizationParams(ref localized,
    4.     new Dictionary<string, object>() { { "winner", "Rebecca" } });
     
  10. slake_it

    slake_it

    Joined:
    Aug 2, 2015
    Posts:
    74
    does it have the option to auto detect phone language & select the default language based on phone language ?
     
  11. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    468
    slake_it likes this.
  12. IceBeamGames

    IceBeamGames

    Joined:
    Feb 9, 2014
    Posts:
    116
    Hey Inter.

    I am having an annoying bug with I2. My colleague added I2 and created the initial DB. I updated on my machine and started to add some new terms for the tutorial, like this one:

    Code (CSharp):
    1. private LocalizedString tutorialHackDevice = "TUTORIAL HACK DEVICE";
    When I use this string in the editor, everything works fine, but when I make a 64bit pc build the LocalizedString "tutorialHackDevice" is null. The weirdest thing is that these string work on my colleague's builds.

    Is there something I am not doing correctly?

    EDIT: Fixed it It was related to the Google Live Synchronization. I had an old local DB without the strings stored in the local save file that was out of date because the Auto Update Frequency was set to weekly.
     
    Last edited: Mar 27, 2018
    Inter-Illusion likes this.
  13. mmvlad

    mmvlad

    Joined:
    Dec 31, 2014
    Posts:
    85
    @Inter-Illusion Hi, first of all - great plugin, been using it in production for a long time now.

    Question: In my new game I want to add terms in runtime. Basically I use code similar to what you have in ImportCsv(...). I create/get term and set its values. But after I exit play mode in editor - runtime terms are added to LanguagePrefab. Why this happens and how can I prevent it? Thank you
     
  14. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    468
    When you add or modify Terms from LocalizationManager.Source[0], you are changing the terms in I2Languages.prefab.
    Because this prefab is referenced directly and not instantiated, any change you do while playing in the editor will remain after you exit play mode.
    To avoid this, just create a new GameObject in your scene, add a LanguageSource component, languages, and terms as you please, all those changes will be deleted after you finish playing.
    Code (csharp):
    1.  
    2.         LanguageSource source = new GameObject("Source").AddComponent<LanguageSource>();
    3.  
    4.         source.AddLanguage("English");
    5.         source.AddLanguage("Spanish");
    6.         source.AddLanguage("Arabic");
    7.  
    8.         var termData1 = source.AddTerm("Term1");
    9.         termData1.Languages[0] = "Hello";
    10.  
    11.         var termData2 = source.AddTerm("Term2");
    12.         termData2.Languages[1] = "Bienvenido";
    13.  
    The source will be automatically added to the LocalizationManager, and any Localize component will be able to use it.
     
  15. mmvlad

    mmvlad

    Joined:
    Dec 31, 2014
    Posts:
    85
    @Inter-Illusion thanks for the super quick response. Works like a charm.
     
  16. Lafydi336

    Lafydi336

    Joined:
    Apr 11, 2018
    Posts:
    4
    Plugins certainly solve the problem, but not completely and not for a long. I used to try to solve localization problems myself. My project required continuous game localization . Moreover, it requires simultaneous updating for 5 languages. I'm satisfied with the result.
     
  17. LSPredator

    LSPredator

    Joined:
    Jun 23, 2014
    Posts:
    8
    Hi, thank you for your awesome asset!
    But I have strange problem. I edit some localization texts in my game. Build android apk. If my device already have installed my game than after I update game by new apk, I don't see in game any localization changes. If my device don't have installed my game and I install new apk, than I see new localization changes.
    I don't understand what happen.
    It seems that users who have my game can't see new localization changes.
    Please help.
     
  18. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    468
    Hi,
    That issue is related to having Google Live Synchronization enabled, but your Spreadsheet and editor are not up-to-date.
    See this for a solution:
    http://inter-illusion.com/forum/i2-localization/924-inconsistency-between-editor-and-device#2459

    Basically, what happens is that you modified your editor I2Languages.prefab, but not exported the changes to Google Spreadsheet. Then, when the game run in the device, it detects that the spreadsheet doesn't match, so it downloads the data and uses that instead.

    The solution is to either disable google live synchronization (set update frequency to NEVER) or export to spreadsheet the new data.

    Version 2.8.6 (can be downloaded from the beta folder) has a change to warn you about this. In the editor, the plugin now checks if the spreadsheet and languagesource are not in sync and shows you a warning about it, so that in the device you don't get this problem.

    Hope that helps,
    Frank
     
    LSPredator likes this.
  19. LSPredator

    LSPredator

    Joined:
    Jun 23, 2014
    Posts:
    8
    Now I see. Thanks you for the explanation!
     
  20. justtime

    justtime

    Joined:
    Oct 6, 2013
    Posts:
    289
    Today i tried to sync my sheets with unity and got an error "Unable to access google". Firewall is switched off. If i click verify next error will arrive "Unable to access the WebService"
     
  21. 5argon

    5argon

    Joined:
    Jun 10, 2013
    Posts:
    1,265
    On the latest version it seems to have some problems :
    - When clicking on the language name at any term to preview, it would always previews the last language not the clicked ones. Currently I changed line 418-421 of LocalizationEditor_Terms_Description.cs to
    Code (CSharp):
    1.                         if (forcePreview )
    2.                             LocalizationManager.LocalizeAll();
    3.                         //else
    4.                             //localizeCmp.OnLocalize(true);
    And it seems to correct the problem but I am not sure about other side effects.

    - TextMeshPro which comes with the new Unity Package Manager (2018.2+) stops adding "TextMeshPro" preprocessor. When I add that manually, after a compilation it will also forcibly removes that preprocessor. This means I2 cannot localize TextMeshPro at all because the script was deleted out.
     
  22. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    468
    Hi,

    Is this still happening, or was it a temporal access problem? Can you please let me know what unity version and I2L version are you using?
    Did you updated recently from an old I2L? Did the URL in the WebService text field is still pointing to the WebService in your Google Drive?

    I was unable to reproduce that issue (previewing the previous language), however, I found a couple problems that maybe causing what you see:
    - Changing some TMPro parameters caused the inspector to call Disabled/Enabled which prevented the preview from happening.
    - Clicking the Language name was not previewing the translation

    Both of those issue are now fixed in 2.8.6a4 (can be downloaded from the beta folder)

    Thanks for reporting this, it seems that the TMPro version that comes from the Package Manager uses a different dll (Unity.TextMeshPro instead of just TextMeshPro), so the upgrade manager was unable to find the plugin.

    The last 2.8.6a4 has a fix for that.
    If you can't download the beta at the moment, you could disable the Plugin detection in the unity menu: Tools/I2 Localization/Enable Plugins/Disable Plugin Detection" and then type the TextMeshPro tag in the settings.

    Or change the file UpgradeManager.cs line 141 to
    Code (csharp):
    1.  
    2. .Where( assembly => assembly.FullName.Contains(AssemblyType) )
    3.  
    Hope that helps,
    Frank
     
  23. IceBeamGames

    IceBeamGames

    Joined:
    Feb 9, 2014
    Posts:
    116
    Hey Frank.

    I'm trying to "on whether the game its running on a Touch device or a PC, etc." as I want to change a term on the PlayStation platform. But clicking on the terms select tab doesn't seem to work? Is it because I need to update my version?
     
  24. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    468
    Hi,
    What version of I2L are you using?
    Up to a couple versions ago, the plugin only supported Touch/Normal specializations. However, a couple releases ago, the specializations changed, a now you define a lot more platforms and even custom specializations.
    upload_2018-4-30_10-18-24.png
    This specializations are hierarchical, so, you can add a custom text for PS4 or add a "Controller" specialization and it will work for PS4, Xbox, etc.

    Hope that helps,
    Frank
     
  25. lindsaytalbot

    lindsaytalbot

    Joined:
    Sep 11, 2015
    Posts:
    27
    I'm having trouble with i2 on UWP and TextMeshPro where the localize component can't find the the TMP component and won't translate it. The localize target just reads "None" and the drop down only has "Prefab".

    Any idea how to fix this? Unity 2017.2.0p2
     
  26. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    468
    Hi,
    There have been several changes in TMPro recently and some of them have broken the I2L integration. I have released fix for them in 2.8.5 and another one in 2.8.6.

    To fix the issues, the ideal is to download the latest I2L (2.8.6f1) from the beta folder. I sent it to the AssetStore yesterday but it may take a couple days to be approved, in the meantime you can get it from the beta folder.

    Alternatively, you can check these workarounds:
    https://forum.unity.com/threads/i2-...olution-for-unity.231226/page-10#post-3474858
    http://inter-illusion.com/forum/i2-localization/1044-objects-not-localizing-in-unity-2018-1-beta

    Hope that helps,
    Frank
     
    lindsaytalbot likes this.
  27. Wajdik

    Wajdik

    Joined:
    Feb 4, 2015
    Posts:
    205
    Hi,
    Please there is a way to check if a localization key (for example "MyLocalizationKey") exists in the I2Languages prefab before calling LocalizationManager.GetTranslation("MyLocalizationKey")?

    Thanks
     
  28. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    468
    Code (csharp):
    1.  
    2. bool termExists =  (LocalizationManager.GetTermData("MyLocalizationKey") !=null );
    3.  
    That returns the internal TermData or null if it doesn't exists.
    Calling GetTermData, will search using the Sources Dictionary and initialize things if needed.

    Hope that helps,
    Frank
     
  29. Ozone_ABN

    Ozone_ABN

    Joined:
    Jan 11, 2014
    Posts:
    12
    Hello,

    I'm trying to get I2L to run on iOS, but I get the following execution errors every time:

    Schnappschuss (2018-05-09 16.52.30).png

    I set up a completely new project on Unity 2018.1f2, installed I2L 2.8.6f1 and chose the example "I2Localization Standard Components" as scene and compiled it for iOS.
    As soon as I try to start the project with XCode on my iPhone X with iOS 11.3.1, I get the exception.
    Am I doing something wrong?

    Thanks
    Jörg
     
  30. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    468
    Hi,
    This seems related to this unity bug (https://issuetracker.unity3d.com/is...using-runtimeinitializeonloadmethod-attribute)
    Its marked as fixed in 2018.1, but in my own testings, I'm still getting it.

    A workaround to make it work, its to comment the function AutoStart in line 70 of Assets\I2\Localization\Scripts\Utils\LocalizationParamsManager.cs
    Code (csharp):
    1.  
    2.         public virtual void OnEnable()
    3.         {
    4.             if (_AutoRegister)
    5.                 DoAutoRegister();
    6.         }
    7.  
    8.         //[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
    9.         //public void AutoStart()
    10.         //{
    11.         //    if (_AutoRegister)
    12.         //        DoAutoRegister();
    13.         //}
    14.  
    15.         public void DoAutoRegister()
    16.         {
    17.  
    That will not stop the params functionality given that the manager autoRegister itself in OnEnable and that triggers a relocalization if needed.
    I'm adding a proper fix to next the release.

    Hope that helps, and please, let me know if it works fine for you.

    Thanks,
    Frank
     
  31. lindsaytalbot

    lindsaytalbot

    Joined:
    Sep 11, 2015
    Posts:
    27
    Hi Frank. Updated to the latest i2 (2.8.6 f1) and the latest TMP (1.2.2) and still getting the bug where i2 cannot find the TMP component on Universal Windows Platform.

    I've tested with Unity 2017.2 and 2018.1

    Here's a screen cap from a fresh demo project I made. On the left is UWP while on the right is how it looks on Android, iOS, tvOS and Windows Standalone.



    This isn't just a bug in editor. It also prevents the localize component from working on device
     
    Last edited: May 10, 2018
  32. lindsaytalbot

    lindsaytalbot

    Joined:
    Sep 11, 2015
    Posts:
    27
    Hurrah! I finally solved the issue. i2 is expecting a scripting define symbol which has to be manually added. Adding "TextMeshPro" to the build settings for UWP solved the issue.
     
  33. andcad

    andcad

    Joined:
    Jul 10, 2017
    Posts:
    3
    Hello I have same problem and how can i fixed. And i am send mail for support no any news and mail.
    Thank you
     
  34. Ozone_ABN

    Ozone_ABN

    Joined:
    Jan 11, 2014
    Posts:
    12
    Hello Frank,

    thanks, that fixed the problem for me.

    Regards
    Jörg
     
    Inter-Illusion likes this.
  35. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    468
    Are you still seeing the crash, after commenting that function? Or is it ok now?
    Also, I have not received any email related to this, if you send it, could you please verify that it was to inter.illusion mail?
     
  36. andcad

    andcad

    Joined:
    Jul 10, 2017
    Posts:
    3
    Not working game opening and get the error.

     
  37. sevensails

    sevensails

    Joined:
    Aug 22, 2013
    Posts:
    483
    I have the exact same crash! Is there already a fix?
     
  38. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    468
    I sent a new version to the AssetStore v2.8.6f2, but it could take a few days for it to be approved.
    In the meantime, you can download it directly from the beta folder.

    Hope that helps,
    Frank
     
  39. andcad

    andcad

    Joined:
    Jul 10, 2017
    Posts:
    3
    Thank you.
     
  40. Igualop

    Igualop

    Joined:
    Mar 1, 2017
    Posts:
    23
    Hello,

    I'm having an issue with parameters after I've updated from 2.8.5f1 to 2.8.6f2. Consider that I'm using the param "textKey" set as "RETURN" and I have "On missing translation" option set as "Show Warning".

    Previous the following label: "<color=#fffc00>[{[textKey]}]</color> Enter Text..."

    would be localized to: "<color=#fffc00>[RETURN]</color> Enter Text..."

    after the update is being localized as: "<color=#fffc00>[<!-Missing Translation [RETURN]-!>]</color> Enter Text..."

    I did notice the following change in "LocalizationManager_Parameters.cs" (Line 75):

    Code (CSharp):
    1. // check if Param is Localized
    2. string newResult;
    3. if (LocalizationManager.TryGetTranslation(result, out newResult, applyParameters:false))
    4. {
    5.     result = newResult;
    6. }
    If I'm not mistaken "LocalizationManager.TryGetTranslation" will always return true since I have "Show Warning" set so my text will be replaced with the "Missing Translation" text.
     
  41. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    468
    Hi,
    Thanks for reporting this bug! Indeed that happens when enabling "show warning" when the term is not found.
    I added a proper fix for this into 2.8.7a3 (can be downloaded from the beta folder).

    If you can't update to that version just yet, here is a workaround:
    replace that code with:
    Code (csharp):
    1.  
    2.                     // check if Param is Localized
    3.                     var source = LocalizationManager.GetSourceContaining(result);
    4.                     if (source!=null)
    5.                     {
    6.                         int idx = source.GetLanguageIndex(LocalizationManager.CurrentLanguage);
    7.                         if (idx>=0)
    8.                         {
    9.                             var termData = LocalizationManager.GetTermData(result);
    10.                             result = termData.GetTranslation(idx);
    11.                         }
    12.                     }
    13.  
    I simplified that for the beta version, but it required changes in other functions to return both the term and language source its in.
    Hope that helps, and thanks for reporting this bug!
    Frank

    EDIT: I also added a Unity Test so that this never happens again in a future version. Thanks!
     
    Last edited: May 16, 2018
    Igualop likes this.
  42. Killersan

    Killersan

    Joined:
    May 27, 2014
    Posts:
    76
    Not sure why but parse strings from the scripts stopped working for few months, maybe it wasn't refreshed and adjusted to suit new API? Any clues?
     
  43. hungrybelome

    hungrybelome

    Joined:
    Dec 31, 2014
    Posts:
    271
    Hello, is it possible to just enter in the value for the first language, and then make the term translate for the rest of the missing translations via an API call, just like the "Translate All" button in the inspector GUI? I was hoping for something like termData.GetMissingTranslations()
     
  44. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    468
    Yes, you use the GoogleTranslation API to call the translations by code. There is an example of the different ways of doing that in Assets\I2\Localization\Examples\Common\Scripts\RealTimeTranslation.cs

    basically you create some queries, call the translation, and then use the query results:
    Code (csharp):
    1.  
    2.             TermData termData = source.GetTermData("MyTerm");
    3.             termData.Languages[0] = "Hello";
    4.             string sourceLang = source.mLanguages[0].Code;
    5.  
    6.             var dict = new Dictionary<string, TranslationQuery>();
    7.             GoogleTranslation.AddQuery(termData.Languages[0], sourceLang, source.mLanguages[1].Code, dict);
    8.             GoogleTranslation.AddQuery(termData.Languages[0], sourceLang, source.mLanguages[2].Code, dict);
    9.  
    10.             GoogleTranslation.Translate(dict, OnMultitranslationReady);
    11.  
    Code (csharp):
    1.  
    2. void OnMultitranslationReady(Dictionary<string, TranslationQuery> dict, string errorMsg)
    3.         {
    4.             if (!string.IsNullOrEmpty(errorMsg))
    5.             {
    6.                 Debug.LogError(errorMsg);
    7.                 return;
    8.             }
    9.  
    10.             TermData termData = source.GetTermData("MyTerm");
    11.             termData.Languages[1] = GoogleTranslation.GetQueryResult(termData.Languages[0], source.mLanguages[1].Code, dict);
    12.             termData.Languages[2] = GoogleTranslation.GetQueryResult(termData.Languages[0], source.mLanguages[2].Code, dict);
    13.         }
    14.  
    Will add a fix for this in the next beta. Thanks for reporting it!!
     
  45. TailoraSAS

    TailoraSAS

    Joined:
    Jul 18, 2015
    Posts:
    5
    Hi,
    On the last version from the Asset Store, there is some layout problems on Macs with the retina display.
    I managed to solve them by changing some of the lines in LocalizationEditor_Terms.cs with the function "EditorGUIUtility.pixelsPerPoint"

    Line 274
    Code (CSharp):
    1. float listWidth = Mathf.Max (Screen.width/EditorGUIUtility.pixelsPerPoint, mTermList_MaxWidth);
    Line 338
    Code (CSharp):
    1. mTermList_MaxWidth = (Screen.width/EditorGUIUtility.pixelsPerPoint)-120;
    I hope it will help you for the next version.
     
    Inter-Illusion likes this.
  46. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    468
    I just updated I2Loc to support finding terms in code when used as GetTranslation(xxx), TryGetTranslation(xxx), GetTermTranslation(xxx) and SetTerm(xxx).
    The changes are in 2.8.7b1.
    Hope that helps,
    Frank
     
  47. mendo

    mendo

    Joined:
    Apr 7, 2013
    Posts:
    5
    Hello!
    Been using i2loc for a while, very happy with the package :)

    Is there a way to add the Description of each term to the spreadsheet?

    The only solution I've found is to add a new and disabled language description.. but ideally I wouldn't have to do that since there's already a Description filed on each term. Having a description in the spreadsheet is very helpful when sending it to translate to someone else..

    Thank you!
     
  48. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    468
    Hi,
    Description and Term's type are stored in the Google Spreadsheet as Notes in the Term's name cell.
    upload_2018-5-30_11-9-27.png

    To create them, either add the description in Unity and export to google, or right-click in the term's name and select "Add Note", then add the type and description:
    e.g.
    Code (csharp):
    1.  
    2. Type:Text
    3. Description
    4. Example Text
    5.  
    The notes will show when you hover the mouse over the term's name, that way they are only visible when the translator needs to know more about the term.

    Hope that helps,
    Frank
     
  49. mendo

    mendo

    Joined:
    Apr 7, 2013
    Posts:
    5
    Got it, didn't realize they were added as notes :)

    Brilliant, thanks Frank!
     
  50. plourdegui

    plourdegui

    Joined:
    Mar 24, 2017
    Posts:
    5
    What is the reason for removing the "_AutoRegister" mechanism in LocalizationParamsManager in the latest version?

    This causes DoAutoRegister to be called, hence calling LocalizationManager.LocalizeAll and therefore making the "On Localize Call" being called again, overwriting the variable substitutions that we perform in the initial call.
    As a hack-fix, for the moment, we need to comment-out DoAutoRegister altogether to avoid the wrong behavior. We are not certain of the side effects of this hack.

    Is there a workaround or is this a bug?
    Thanks!