Search Unity

  1. Unity 2019.1 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. 00christian00

    00christian00

    Joined:
    Jul 22, 2012
    Posts:
    777
    I am using 2018.2.5 and I2 Loc 2.8.8 f1, building for Android.
    I just sent you an email with my invoice for the beta builds.
     
  2. muratmenevse

    muratmenevse

    Joined:
    Feb 16, 2015
    Posts:
    7
    Could you be more specific about "custom one"? I need arabic for dynamic text which means I add some variables to the text which changes like numbers. Order "five" "pizza", both pizza and five might change.
     
  3. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    454
    "Custom" means, that instead of relying in the ArabicFixer dll as previously, the current version of I2 Localization uses a different implementation.
    The new implementation supports Parameters, Plurals, Numbers, etc as well as corrects the rendering of RTL languages (not just for Arabic languages)
     
  4. 5argon

    5argon

    Joined:
    Jun 10, 2013
    Posts:
    1,124
    Hi, in the current 2018.3.0b2 the drawer for Localization component instantly crashes Unity! It does not crash if I turn on Debug inspector before clicking the object with it, but soon after I return to normal inspector it crash. Unity window disappear instantly, and this is all that was printed in Editor.log

    When I created a new TextMeshPro > attach the Localize component it didn't crash, until I select a term then it instantly crash.
     
    Last edited: Sep 27, 2018
  5. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    454
    Hi,
    That's a known issue.
    https://forum.unity.com/threads/i2-...olution-for-unity.231226/page-11#post-3694471

    The assetstore version of I2Localization (v2.8.8) doesn't support the beta version of Unity 2018.3 as they changed the way prefabs are stored and some other skin changes.
    I uploaded v2.8.9b3 to the I2 Localization beta folder that fixes that issue. You can download it and use that if you are using the beta of Unity.

    I will be uploading I2L 2.8.9 to the AssetStore in a couple weeks
     
    5argon likes this.
  6. Jaruz

    Jaruz

    Joined:
    Jul 4, 2018
    Posts:
    3
    Hey there,

    I'm using I2 Localization for the first time and so far it's been pretty smooth. I'm grabbing translations through a google doc and it works fine in game.

    However, when I make a PC or Mac build, the localization doesn't work in game. This happen to anyone else?

    Thanks! Overall great asset.
     
  7. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    454
    Hi,
    That seems like a setup issue with Google Live Synchronization.
    http://inter-illusion.com/forum/i2-localization/924-inconsistency-between-editor-and-device#2459

    If you linked the LanguageSource with Google and the "Update Frequency" is set to anything other than NEVER in the Google Spreadsheet Tab (default is WEEKLY), the plugin automatically checks the Spreadsheet at runtime to see if its different from the LanguageSource Data. If its different, then it downloads the spreadsheet in the device and uses that data instead of the one from the LanguageSource.

    That allows you to change translations without having to do a build, and have all your players automatically download the new translations.
    However, you have to be careful while developing. If you add terms to your LanguageSource or change translations, then you have to Export that data to the Spreadsheet, otherwise, the plugin will see the spreadsheet as out of sync and try downloading it.

    Most likely you are also getting a warning in the console showing that the Spreadsheet is out of sync and need to be synchronized.

    To solve the issue:
    - Export your I2Languages.prefab to Google.
    - (optional on mobile devices) Uninstall the game from your device to clear all the Downloaded data.
    - Build and deploy the game again

    It should work as expected.

    Alternatively, you can set the Google Update Frequency to NEVER to skip the Google Live Synchronization feature.

    Hope that helps,
    Frank
     
  8. 5argon

    5argon

    Joined:
    Jun 10, 2013
    Posts:
    1,124
    Currently there is a slight usability problem with TextMeshPro's fallback font. For example I have one font for English which fallback to an another texture with Japanese fonts if it found any font that is not available. Of course when this happen, it is because English texts were replaced with Japanese by I2Localization.

    But the fallback font will share the same settings as the English font. Particulary, I have character spacing set quite nice for that English font but when used on Japanese kanji it looks too spaced out and weird. Can I2Loc do something like modifying the font's properties along with translation as well? Also what if there are both English and Japanese text in the same text game object? In that case I want only the Japanese part to have lower character spacing, not affecting English part.
     
  9. Jaruz

    Jaruz

    Joined:
    Jul 4, 2018
    Posts:
    3
    Heyo. So a combination of that + making a global version of the LanguageSource fixed the problem.

    Thank you so much for your quick response time and detailed solution! You're the best. Keep kickin ass.

    -Chris

     
  10. AlexNanomonx

    AlexNanomonx

    Joined:
    Jan 4, 2017
    Posts:
    14
    Hi, I was wondering if I could make a feature request. We just realized we weren't following this rule, to support these messages we need to localize our Info.plist file. Our game is localized into several languages using I2Loc, and we need to add more localized strings to our infoplist.strings. I know I2Loc is able to do this with the app name, it'd be great if we could use the plugin to do it with other iOS keys. My current fix uses your library to append localized strings in the iOS xcode build. But now we've got these localized files sitting apart from the rest of our localization, just asking to cause problems in 6 months when we've completely forgotten about them.
     
  11. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    454
  12. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    454
    Can you please make a small repro scene and email it to me. I may not be understanding you correctly, as I tried a few combinations and this seems to be working correctly.

    Here are a few tips:
    - When you set the main term and the second term. The main one will modify the text of the label, while the secondary one will change the label font.
    - The label font will only change if there is a translation for that language (main term), as it makes no sense to show english text with a Japanese font.
    - When setting the secondary term, it has to be a font, not a texture. That way, the entire font is changed including all its properties.
    - If you need to change font inside the text (part English, part Japanese), then you should use the rich text tags TMPro has for deciding what font goes into what characters.

    If you can please email me repro project/scene, I can give it a try and see what's wrong with the setup that its behaving correctly!!
    Hope that helps,
    Frank
     
  13. DragonsanStudios

    DragonsanStudios

    Joined:
    Nov 6, 2017
    Posts:
    41
    We got a bit more complex use case.
    We are finalizing Auction House for our framework and there is a search box in it, so we would like to search item by its selected language key value, or part of the value. For example, when someone will put the sword in the search input field, we would like to search all key values for the language which contain %sword% value in the specific category and return the original keys, so we could search it in the main database at the end.

    Is it already possible and if so, how we can achieve it?
     
  14. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    454
    Hi,
    You can use the LocalizationManager.GetTermsList( categoryName ) to get the list of all terms belonging to that category. Then, its just filtering to all those that contain the given word.

    Code (csharp):
    1.  
    2.             string category = "Weapons";
    3.             string filter = "sword";
    4.             var termNames = LocalizationManager.GetTermsList(category).Where(x => x.Contains(filter)).ToList();
    5.  
    Hope that helps,
    Frank
     
  15. 5argon

    5argon

    Joined:
    Jun 10, 2013
    Posts:
    1,124
    The 2.8.9b3 version error on pressing Replace/Merge/Add New

    Code (CSharp):
    1. InvalidCastException: Specified cast is not valid.
    2. I2.Loc.LocalizationEditor.Import_Google (I2.Loc.eSpreadsheetUpdateMode UpdateMode) (at Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Google.cs:471)
    3. I2.Loc.LocalizationEditor+<>c__DisplayClass226_0.<OnGUI_GoogleButtons_ImportExport>b__0 () (at Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Google.cs:306)
    4. I2.Loc.GUITools.OnDelayedCall () (at Assets/I2/Localization/Scripts/Editor/EditorTools.cs:38)
    5. UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at /Users/builduser/buildslave/unity/build/Editor/Mono/EditorApplication.cs:198)
    If I edit line 471 to cast to LanguageSourceAsset then :

    Code (CSharp):
    1. InvalidCastException: Specified cast is not valid.
    2. I2.Loc.LocalizationEditor.OnImported_Google (System.String Result, System.String Error, I2.Loc.eSpreadsheetUpdateMode UpdateMode) (at Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Google.cs:504)
    3. I2.Loc.LocalizationEditor.OnImported_Google_Replace (System.String Result, System.String Error) (at Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Google.cs:492)
    4. I2.Loc.LocalizationEditor.CheckForConnection () (at Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Google.cs:536)
    5. UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at /Users/builduser/buildslave/unity/build/Editor/Mono/EditorApplication.cs:198)
    Which need the same fix, then it is fine.

    Sorry, I was meaning to say this use case, part English and part Japanese. I will try writing a script to wrap different spacing on the Japanese words then.
     
    Last edited: Oct 8, 2018
  16. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    454
    Thanks for reporting that issue with the beta.
    The same problem was affecting other parts of the editor.

    I just uploaded to the beta folder v2.8.9b4 that fixes all of those.
    Thanks!
    Frank
     
  17. DragonsanStudios

    DragonsanStudios

    Joined:
    Nov 6, 2017
    Posts:
    41
    Thank you Frank, but it's not exactly what we would like to achieve.
    We would like to find part of the word in the actually selected language (translation) and Terms which are used to translate these values.
    From the opposite direction, we would like to get terms where part of the translation suits to the searched word.
     
  18. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    454
    Then, instead of comparing the term name (x), compare against the translation of the term (LocalizationManager.GetTermTranslation(x))
    Code (csharp):
    1.  
    2. string category = "Weapons";
    3. string filter = "sword";
    4. var termNames = LocalizationManager.GetTermsList(category).Where(x => LocalizationManager.GetTermTranslation(x).Contains(filter)).ToList();
    5.  
    Now, if you want to find the word in both the termName or its translation:
    Code (csharp):
    1.  
    2. string category = "Weapons";
    3. string filter = "sword";
    4. var termNames = LocalizationManager.GetTermsList(category)
    5.                       .Where(x => { return x.Contains(filter) || LocalizationManager.GetTermTranslation(x).Contains(filter);} )
    6.                       .ToList();
    7.  
    Hope that helps,
    Frank
     
  19. IronHelmet

    IronHelmet

    Joined:
    May 2, 2017
    Posts:
    17
    Hello Inter-Illusion. Thanks for your wonderful plug in.

    I am trying to use the Translate button on the languages tab to auto translate all incomplete entries with placeholder text, but it is failing with an error "Unable to access Google or invalid request", however, when I use the Translate All button on an individual key the auto translation works just fine.

    Any ideas what might be causing the problem?


    update: Also, there is a tiny typo in the help at "Texts like "The winner is {[WINNER}]" can be translated at runtime to "The winner is Frank"."
     
  20. simonmeijer

    simonmeijer

    Joined:
    May 22, 2017
    Posts:
    7
    Hi, I'm wondering if it is possible to re-arrange the order of the terms in the exported spreadsheets. In the asset file I ordered everything by giving each term an alphabetic name; for instance '001 Title' and '002 subtext', but that does not seem to make any difference while exporting. I think the terms are sorted in the order of their creation.
     
  21. vjb

    vjb

    Joined:
    Nov 15, 2013
    Posts:
    6
    Hi,

    I'm using version 2.8.8 f1 and unity 2018.2.12f1

    I was trying to export CSV and it worked no problems. When I try to import that same CSV back in with a one letter change I get a bad spreadsheet format. When I open the file in Excel after the failed attempt all of the fields are smashed together in one column.
     
  22. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    1,999
    Hi, is there any way to auto set the secondary tern to <none>? I'm having to do this so many times manually it's driving me insane! :)
     
  23. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    454
    From the editor, just type Localize in the project view, that will select all objects with a Localize component. Then, select them all, and go to the Secondary Term and change it to <none>.
    That will change all secondary terms in your scene to <none>

    If instead, you want to do it form code (custom inspector or called from the menus):
    Code (csharp):
    1.  
    2. Localize[] objs = GameObject.FindObjectsOfType<Localize>();
    3. foreach (Localize cmp in objs)
    4. {
    5.     cmp.SecondaryTerm = "-";
    6. }
    7.  
    Can you please email me the exported CSV file and the new one?
    I want to double check what exactly is the problem, but my guess is that is either:
    - Wrong Separator: CSV files can be separated by (,), tabs, (;), etc. Depending on the option you have set in excel, you need to select that same option as the Column Separator in I2Loc.
    - Wrong encoding: If that's the case you may also see some weird characters all around. Just be sure the encoding you export in excel is the same as the one set in I2 Localization.

    But again, if you email me the CSV files I can give you an exact answer.

    By default, I2 Localization doesn't change the order in which the terms are sent to the Spreadsheet given that you can easily change the Data Sort type in the Spreadsheet to be (Alphabetical A to Z, Z to A, etc).
    Also, by not changing the order, the export/import speed is faster.

    But if you want to force it to be alphabetical, just open the file
    Assets\I2\Localization\Scripts\LanguageSource\LanguageSource_Export_CSV.cs

    and in line 23 (function Export_I2CSV) do:
    Code (csharp):
    1.  
    2.             Builder.Append ("[ln]");
    3. //------- Add this line
    4.             mTerms.Sort((a, b) => string.CompareOrdinal(a.Term, b.Term));
    5. //--------------------------
    6.             int nLanguages = (mLanguages.Count);
    7.  
    I will add an option to the exporter inspector to allow for this as well.

    Hope that helps,
    Frank
     
  24. AntonAxelLind

    AntonAxelLind

    Joined:
    Jul 17, 2018
    Posts:
    2
    Hi!

    Awesome plugin, keep up the great work :).

    I have a question/feature-request. In the game I am working on we want the google spreadsheet to always sync when in staging/development, but not for our production builds. For production builds we only want a small list of "overrides" for any typos we discover after release.

    I can achieve this by changing the spreadsheet settings whenever building for production. I also have to change the "eSpreadsheetUpdateMode" to "merge" internally, where it was previously set to "replace". Then I can have an empty sheet online somewhere, and override any strings at a later point. Without the "merge" code change the sheet would just replace whatever was shipped with the game, even if the sheet online is empty.

    My question is, could you expose this option for "merging" when using live synchronisation? And also, do you see any risk with my current "custom" fix?
     
  25. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    454
    Hi,
    What is normally advisable, is to develop your game using a spreadsheet.
    Then, once you do a build and send it to the store, make a duplicate of that spreadsheet. And call them something like "MyGame v1" and the new one "MyGame v2"

    Then, link your editor to "MyGame v2" and do all your edits and new changes in that spreadsheet. Then, if you release to the store a new update, do the same procedure, duplicate "MyGame v2", and name the new one "MyGame v3".

    This way, you can be sure, that you are editing your localization and that will not break your already released game. But, if you find a typo or other thing wrong, you can always open the spreadsheet corresponding to that version of the game, correct the translation and it will be automatically synced to every device using that version of the game.

    Said that, I like the option of selecting (Replace/Merge/AddNew) for the automatic update, in case your case is set differently. I will add that to my todo list for one of the new betas.

    Hope that helps,
    Frank
     
  26. hungrybelome

    hungrybelome

    Joined:
    Dec 31, 2014
    Posts:
    230
    Hello, is the version 2.8.9f1 package missing the Resources/I2Languages.prefab? I get this error:

    Code (CSharp):
    1. Unable to find Global Language at Assets/Resources/I2Languages.prefab
    2. UnityEngine.Debug:Log(Object)
    3. I2.Loc.UpgradeManager:OpenGlobalSource() (at Assets/I2/Localization/Scripts/Editor/UpgradeManager.cs:234)
    And this is the package contents: https://i.imgur.com/oitIJHfr.png
     
  27. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    454
    Hi,
    Thanks for reporting this!

    Because of the changes with how prefab work in Unity 2018.3, now I2 Localization v2.8.9 uses ScriptableObjects instead of prefabs. So, I2Languages.prefab is now I2Languages.asset.

    But it seems that I forgot to update the Menu option to locate that asset, that's why the OpenGlobalSource function is failing. I will update that right away. In the meantime, a workaround is to manually click in the I2Languages.asset in the Resources folder instead of using the menu or the locate button.
     
    hungrybelome likes this.
  28. hungrybelome

    hungrybelome

    Joined:
    Dec 31, 2014
    Posts:
    230
    Great, thanks!
     
  29. AntonAxelLind

    AntonAxelLind

    Joined:
    Jul 17, 2018
    Posts:
    2
    Thanks for the reply! We have the option to force upgrade older versions of our game, so I think keeping one list of overrides will be the simplest work-flow in our case. We can just leave comments in the spreadsheet about which version the string was overridden in. So thank you for adding the merge option to your todo list :).

    I saw this in the documentation:

    "It could happen when testing the game locally and installing different version of it, that it keep using the value in the PlayerPrefs instead of using the one built into the game. When this happens, it can be solved by deleting the game from the device and re-installing it."

    We experienced this quite allot when testing. Could this never happen in a live version and why?
     
  30. winxalex

    winxalex

    Joined:
    Jun 29, 2014
    Posts:
    106

    Attached Files:

    Last edited: Nov 6, 2018
  31. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    454
    Hi,
    That looks like a missing Referenced asset issue.
    Things to check:

    - When you reference an image/asset, if its from a resource folder, the plugin will just keep its name and load it at runtime. Otherwise, it will add a reference to that asset into the Localize (Asset References section) or LanguageSource (Assets tab)
    http://inter-illusion.com/assets/I2LocalizationManual/AssetsTab.html

    So, it can be happening that you add the reference to a Localize component, but you are trying to use it in another Localize component (that will only work, if the first localize is loaded and localized, so that it adds the references to the Resource Manager).
    In most cases, you will want the references to be added to the I2Languages Assts's tab. That way, all Localize component will be able to use them.

    - If you modify the name of the Asset in the Spreadsheet, it wont work, unless you have the new asset also referenced in the LanguageSource or the Localise component.

    In General, to fix that issue, check that whoever uses the asset/image, has a reference to the asset.

    Said that, if the references seem to be fine, can you please, email me a small repro project where I could inspect your setup. That way I will be able to tell you quickly what's wrong and how to solve it.
    An easy way of doing this, is to duplicate that scene, remove all except for that image GameObject, and email me that with your LanguageSource.
     
  32. Xblade-Imperium42

    Xblade-Imperium42

    Joined:
    Jan 12, 2016
    Posts:
    581
    Anyone else having i2 ONLY work in the Unity editor? Unity 2018.2 >> Doesn't work built with Windows x64 (il2cpp) standalone:

    upload_2018-11-10_3-0-39.png
     
  33. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    454
    Xblade-Imperium42 likes this.
  34. Xblade-Imperium42

    Xblade-Imperium42

    Joined:
    Jan 12, 2016
    Posts:
    581
    Hey thx, I will try it -- but I was really interested in this feature:

    EDIT:
    * I exported to Google Sheets (from editor) and it reflected on live - oops, I was just missing the terms, I suppose! What is the recommended workflow for this?

    * Also, is there a way to add descriptions to the sheet? Or would that impact performance? For example, confusing ones with a bunch of rich text:

    <color=#asdf123><b><size=80%>Small phrase, but confusing because of tags - description column would rock</size></b></color>

    * I just found a bug - I was following the guideline of using the text as the term name, but it doesn't play well with rich tags. It shows up in language source (awkwardly, but does), but doesn't upload to google sheets. I'll keep this in mind for naming:



    * Any progress in the previous email about the swapping languages in the Unity editor? I will click on English so it temporarily swaps, but as soon as I click out, it swaps back to Chinese (the non-default / 2nd language). You said it could have to do with the way the languages were named? Here was that screencast: http://recordit.co/8DehvC8ux2

    ^ And a new screencast: http://recordit.co/qG4Y3kpYVM -- Whenever I click out, it'll swap back to the secondary language instead of primary. I have to workaround by finding the I2Languages and manually clicking "show" which is a bit tedious each time.
     
    Last edited: Nov 10, 2018
  35. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    454
    There are many way to setup the spreadsheet to fit your development workflow, but what I normally suggest is this:

    - You link your editor to an Spreadsheet. While you are developing, you add modify that spreadsheet as you need.
    Once you are ready, you make a build and deploy your game. Any change you make to the spreadsheet will automatically be deployed to all your players.

    - Now you move into develop the first update, but you don't want any change you are making to be deployed to the live version, so you need to duplicate the spreadsheet and link the new one to the editor.

    This way, each released version will have its own spreadsheet. And if you find a typo or need to make a change, you can adjust them and any player using that version of the game will get the changes. But they will not get the changes you are just developing as thats in a new spreadsheet.

    Here are a few more details about that:
    https://forum.unity.com/threads/i2-...olution-for-unity.231226/page-12#post-3835513

    I have a fix for that, will upload it to the beta folder in a couple days! (sorry the delay there, but those changes are coupled with another feature I was already implemented, so I'm going to finish it and release both to the beta, most likely v2.8.10a2)

    Anything text you put in the Term's description is added to spreadsheet as a Note in the Term's name cell.
    upload_2018-11-12_11-54-31.png

    You are free to manually add them as well, and they will get synchronized to Unity.

    I have been having a hard time reproducing this issue. So, what I did is to start writing a few new Unity Tests, to perform as many of this operation (clicking in several Localize component languages fields and LanguageSource's languages, to detect if at any time it stays in a bad language. I have ran the tests several times in a loop, but so far haven't had the issue.

    I'm finishing now a new feature I wanted to push, and will return to write more tests for other cases that could relate to this. I'm hopping one of them triggers this issue. So far I tried with lots of combinations, including random Language names (even not matching the default languages name), enabled, disabled languages, fallbacks, etc.

    I will let you know as soon as I find the issue. sorry about this delay!
     
    Xblade-Imperium42 likes this.
  36. Xblade-Imperium42

    Xblade-Imperium42

    Joined:
    Jan 12, 2016
    Posts:
    581
    So let's say I *just* added i2 and I now have to add thousands of Localization scripts to every single TextMesh Pro Text GameObject in the hierarchy:

    I was looking here - http://www.inter-illusion.com/assets/I2LocalizationManual/ParsingthescenesforMissingorUnus.html

    I clicked "Parse" on the scenes I wanted, it froze for a minute, then nothing happened~

    Shouldn't it fill the terms? Or does it only do this if it *already* has the Localization script on it?

    What is the best/easiest way to add the localization script to NEW text components, if not this tool?

    PS: Do you have a Discord?

    EDIT: I think I got it! http://www.inter-illusion.com/assets/I2LocalizationManual/FindingLabelswithoutlocalization.html

    But .... having some issues with rich text, still: Any workarounds for the rich text bugs?



    And some misc baking errors:



    EDIT 2: Seems like some of the misc errors are from missing escape characters (like \" for quotes)



    EDIT 3: Yep, all of them were because of that - in your auto gen parsing tool, replace " with \"
     
    Last edited: Nov 15, 2018
  37. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    454
    A fix for that is now ready, the new code just removes any tag and assigns just the text to the Term's name.
    I will upload that change to the beta folder later today! (v2.8.10a2)

    Looking into that now, Will add this fix to today beta as well.

    Hope that helps,
    Frank
     
  38. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    454
    2.8.10a2 is now in the beta folder.
    It fixes the issue with the tags and some character combinations causing errors in baking, synchronization, etc.

    i42-Xblade, this version, guarantees that any term manually created or automatically detected will have a valid form. However, in your case, the terms are already created and because the tags were just partially removed, is hard to refix it.
    So, you may have to delete all your terms from I2Languages (or at least the ones with issues), and delete the Localize component of the affected terms.
    Then, add the Localize component again, and it will automatically detect the term from the label's text (this time without tags or bad characters), and will create the terms in the LanguageSource.

    Hope that helps,
    Frank
     
  39. Xblade-Imperium42

    Xblade-Imperium42

    Joined:
    Jan 12, 2016
    Posts:
    581
    Cheers, I'll check that out. I also noticed that auto sync'ing isn't working -- In the editor, it looks fine. However, when built, text was scrambled:



    With this setup (focusing on the word "Butler" that replaced "Quit", for some reason):

    - You may need to open the image in a new window to see the full size -



    I wasn't sure what happened.I then went back to Unity and it said my sheets were out of sync, and that I should "export replace" to fix it.

    I did that, and... well, it fixed it. However, now I'm a bit worried: Why wasn't this syncing automatically? I have both checked to 'always' sync with as low as a 60 second resync cooldown:

     
  40. Ladace

    Ladace

    Joined:
    Dec 7, 2014
    Posts:
    29
    Hi @Inter-Illusion CustomLocalizeCallback.cs has a typo on line 13, `Enable()` should be `OnEnable()`. This makes the script not working. Please fix it in the next release.
     
    maxi_sn likes this.
  41. Xblade-Imperium42

    Xblade-Imperium42

    Joined:
    Jan 12, 2016
    Posts:
    581
    We're back to an awkward crossroad:

    upload_2018-11-21_1-36-11.png

    Hmm, while English is selected, it's using Chinese instead. English is blank - does it have to do with fallbacks? Shouldn't it fallback to English, the first language? Why would it fallback to Chinese, the 2nd language? You can see my config in the post above.

    EDIT: On missing translations, "fallback" is the option. However, what decides fallback? I would figure the 1st language set -- is this assumption correct? However, if English is already set as the fallback (top slot), why would the fallback default to traditional Chinese?



    What are your thoughts?

    EDIT 2: I realized I didn't grab the beta, but would the beta fix this one? I'll look for it now.
     
    Last edited: Nov 22, 2018
  42. MardukCorp

    MardukCorp

    Joined:
    May 21, 2016
    Posts:
    62
    I'm getting the following warning in the editor when I save a scene containing a GameObject with the "I2 Localize" component:
    Can't figure out what I'm missing here.
     
  43. Xblade-Imperium42

    Xblade-Imperium42

    Joined:
    Jan 12, 2016
    Posts:
    581
    I am having trouble finding the beta. Where can I find this, @Inter-Illusion ?

    Also, what is generally the timeframe between beta and Unity store updates?
     
  44. Xblade-Imperium42

    Xblade-Imperium42

    Joined:
    Jan 12, 2016
    Posts:
    581
    Apologies to bump, but I believe a week is acceptable :) still looking for that beta link. Sent an email, too. Can't move on until I'm able to get the fix from beta, or a patch is released to the official store.
     
    Last edited: Nov 29, 2018
  45. Caruos

    Caruos

    Joined:
    Dec 30, 2016
    Posts:
    37
    Hello,
    I'm currently trying to combine NodeCanvas' Dialogue System with I2 Localization.

    I found this module intended to link NodeCanvas and I2 Localization. I made a new project with NodeCanvas and I2 Localization, and I put the additional module folder in the Assets directory. I can't compile because I get the following error messages :

    Assets/NodeCanvas-I2Localization-master/unity-project/Assets/NodeCanvas Integrations/I2 Localization/Tasks/Actions/Dialogue/I2Say.cs(26,120): error CS1061: Type `I2.Loc.LanguageSource' does not contain a definition for `GetTranslation' and no extension method `GetTranslation' of type `I2.Loc.LanguageSource' could be found. Are you missing an assembly reference?

    Assets/NodeCanvas-I2Localization-master/unity-project/Assets/NodeCanvas Integrations/I2 Localization/Tasks/Actions/Dialogue/I2Say.cs(43,33): error CS0117: `ParadoxNotion.Design.EditorUtils' does not contain a definition for `BBParameterField'

    Assets/NodeCanvas-I2Localization-master/unity-project/Assets/NodeCanvas Integrations/I2 Localization/Tasks/Actions/Dialogue/I2Say.cs(53,64): error CS1061: Type `I2.Loc.LanguageSource' does not contain a definition for `GetTermsList' and no extension method `GetTermsList' of type `I2.Loc.LanguageSource' could be found. Are you missing an assembly reference?

    Assets/NodeCanvas-I2Localization-master/unity-project/Assets/NodeCanvas Integrations/I2 Localization/Tasks/Actions/Dialogue/I2SayRandom.cs(23,114): error CS1061: Type `I2.Loc.LanguageSource' does not contain a definition for `GetTranslation' and no extension method `GetTranslation' of type `I2.Loc.LanguageSource' could be found. Are you missing an assembly reference?

    Assets/NodeCanvas-I2Localization-master/unity-project/Assets/NodeCanvas Integrations/I2 Localization/Tasks/Actions/Dialogue/I2SayRandom.cs(70,64): error CS1061: Type `I2.Loc.LanguageSource' does not contain a definition for `GetTermsList' and no extension method `GetTermsList' of type `I2.Loc.LanguageSource' could be found. Are you missing an assembly reference?

    Assets/NodeCanvas-I2Localization-master/unity-project/Assets/NodeCanvas Integrations/I2 Localization/Tasks/Actions/I2GetTranslation.cs(26,129): error CS1061: Type `I2.Loc.LanguageSource' does not contain a definition for `GetTranslation' and no extension method `GetTranslation' of type `I2.Loc.LanguageSource' could be found. Are you missing an assembly reference?

    Assets/NodeCanvas-I2Localization-master/unity-project/Assets/NodeCanvas Integrations/I2 Localization/Tasks/Actions/I2GetTranslation.cs(39,42): error CS0117: `ParadoxNotion.Design.EditorUtils' does not contain a definition for `BBParameterField'

    Assets/NodeCanvas-I2Localization-master/unity-project/Assets/NodeCanvas Integrations/I2 Localization/Tasks/Actions/I2GetTranslation.cs(41,41): error CS0117: `ParadoxNotion.Design.EditorUtils' does not contain a definition for `BBParameterField'

    Assets/NodeCanvas-I2Localization-master/unity-project/Assets/NodeCanvas Integrations/I2 Localization/Tasks/Actions/I2GetTranslation.cs(47,36): error CS0117: `ParadoxNotion.Design.EditorUtils' does not contain a definition for `BBParameterField'

    Assets/NodeCanvas-I2Localization-master/unity-project/Assets/NodeCanvas Integrations/I2 Localization/Tasks/Actions/I2GetTranslation.cs(50,39): error CS0117: `ParadoxNotion.Design.EditorUtils' does not contain a definition for `BBParameterField'

    Assets/NodeCanvas-I2Localization-master/unity-project/Assets/NodeCanvas Integrations/I2 Localization/Tasks/Actions/I2GetTranslation.cs(55,73): error CS1061: Type `I2.Loc.LanguageSource' does not contain a definition for `GetTermsList' and no extension method `GetTermsList' of type `I2.Loc.LanguageSource' could be found. Are you missing an assembly reference?

    Assets/NodeCanvas-I2Localization-master/unity-project/Assets/NodeCanvas Integrations/I2 Localization/Tasks/Actions/I2SetTerm.cs(51,42): error CS0117: `ParadoxNotion.Design.EditorUtils' does not contain a definition for `BBParameterField'

    Assets/NodeCanvas-I2Localization-master/unity-project/Assets/NodeCanvas Integrations/I2 Localization/Tasks/Actions/I2SetTerm.cs(54,47): error CS1061: Type `I2.Loc.LanguageSource' does not contain a definition for `GetTermsList' and no extension method `GetTermsList' of type `I2.Loc.LanguageSource' could be found. Are you missing an assembly reference?

    Some of the errors have been fixed on the NodeCanvas forum, but most of the remaining errors come from the module trying to call "languageSource.value.GetTranslation(term.value)" and "languageSource.value.GetTermsList()". Since this module was made in January 2018, maybe it was written with an I2 Localization build has been depreciated ? Do you know how to change these calls to make the functions work ?
     
  46. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    454
    Hmm, i missed the unity notification for this thread, seems that sometimes unity "forgets" we clicked the "watch thread" option! Sorry about that.

    Hi, I sent you an invite a while ago. Not sure if you already accepted it or are still missing the beta. If need me to send the invite again, please let me know!

    I was not aware of that github.
    On I2Localization 2.8.9, the way the sources are stored changed because of the Unity change with the new prefab flow.
    Most of the errors you listed related to
    "Type `I2.Loc.LanguageSource' does not contain a definition for `GetTermsList' "
    can be fixed by changing from
    Code (csharp):
    1.  
    2. languageSource.value.GetTranslation(term.value)
    3.  
    to
    Code (csharp):
    1.  
    2. languageSource.value.mSource.GetTranslation(term.value)
    3.  
    The errors related to "`ParadoxNotion.Design.EditorUtils' does not contain a definition for `BBParameterField'" are related to NodeCanvas, so I'm not sure how to fix those as I don't have NodeCanvas myself. I hope those are the one you mentioned are explained in the NodeCanvas forums.

    Please let me know if that fixes the issues, or if you get any new one.
    Hope that helps,
    Frank
     
  47. Caruos

    Caruos

    Joined:
    Dec 30, 2016
    Posts:
    37
    Thanks a lot for your answer !
    By following your advice (and the advice on Nodecanvas's thread), and by replacing localizeObject.value.Source.GetTermsList() by localizeObject.value.Source.mSource.GetTermsList(), I managed to compile ! I'll try it out and keep you updated, I'm really excited by all the possibilities !
     
  48. Pyroman311

    Pyroman311

    Joined:
    Aug 14, 2010
    Posts:
    87
    Hello...I don't know if I'm missing something but I don't have the secondary tab on anything...

    halp.png

    2017.1.2p2
    i2 v2.8.9 f1
    using TMP

    Would also like to know how to setup the font term while using TMP. Do I select Object or Material? Do I use the material of the font or the font asset created from TMP.

    Thanks!
     
  49. Xblade-Imperium42

    Xblade-Imperium42

    Joined:
    Jan 12, 2016
    Posts:
    581
    @Inter-Illusion How did you send this invite? Nope, never received it: You mentioned beta once or twice, but never actually gave me a link/invite. Yes, I definitely would like a link. That is, indeed, why I've been bumping this and emailing you since Nov 23 for this invite link :p



    It's been feeling very carrot-on-a-stick, where the beta is the solution but I've been waiting so long for it with several requests, I feel a bit left out in the cold. The sooner you're available to send it, the more I'd appreciate it. I bumped the email chain, if that helps. Thank you~
     
    Last edited: Dec 8, 2018
  50. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    454
    Hi, sorry for that, I thought it was you who I added to the beta, but it was another user that contacted me around the same days.
    Your emails, were reported by google as spam and buried in that folder, I never read it, until I saw the image in your post above and looked for it.
    I'm really sorry about that.
    I just send you an invite.

    Hope that helps,
    Frank