Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    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:
    598

    I'm glad to announce that the I2 Localization plugin is available in the Asset Store

    It initially was targeted to improve the localization of NGUI by introducing custom editors with tons of tools to easy the workflow.

    But currently, it is the single most complete Localization system in the Assetstore supporting lot of plugins (uGUI, NGUI, TextMeshPro, DF-GUI, 2DToolkit, among others).

    It includes lot of Advanced Tools to easily localize every part of the project, while also allowing shared spreadsheets for external translators.

    I2L can automatically translate texts using Google Translator (offline and even at runtime for translating chat messages) while keeping track of terms that are no longer used, even when spread over multiple scenes.

    Also allows categorizing and multi-filters to easily parse large databases and provide tools to detect common errors and suggest fixes.

    Here is a short trailer showing how it works!



    Version 2.0.0

    While the plugin was pending review in the store I continue updating it and adding features to easy the localization process. I will be sending it for review early next week but anyone who buy the plugin will get access to download the latest one directly.


    The new changes allow localizing not only Labels, Sprites, and UITextures, but also Sounds, Fonts, Prefabs, Atlasses.

    Other features Include:

    • DF-GUI
    • uGUI as of the latest Unity Beta (uGui only available for Unity Beta Testers).
    • Localization of several elements in each target (Labels localize the text and the Font according to the language, Sprites modify the SpriteName and the Atlas, etc)
    • Categorizing Keys for easy browsing
    • Compile-Time-Checking for terms used in the scripts.



    And a lot more!

    Release notes for the current version (1.0.2) up to the latest alpha (2.0.0 a1) can be found at the Inter-Illusion Forums





    If you have any suggestion on how to improve the plugin or need help setting it up, don't hesitate in joining the Inter-Illusion forum

    Thanks a lot for all the support and the suggestions of everyone that joined the beta! It helped a lot!
     
    Last edited: Sep 7, 2021
    DizzyWascal, Mauri and shkar-noori like this.
  2. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Hi Guys,

    I’m glad to announce that I2 Localization 2.0.0 was sent to the AssetStore.

    The new version provides support for automatic fixing of Arabic and other Right-To-Left languages with corrected Tashkeel and Hindu numbers.



    More details can be found on the release notes

    BTW, remember that all those who purchased the I2 Localization can contact me to get access to the download section and be able of downloading the latest version without waiting for it to be available in the AssetStore.

    Thanks
    Frank
     
    Last edited: Mar 4, 2014
  3. Zeblote

    Zeblote

    Joined:
    Feb 8, 2013
    Posts:
    1,102
    Your website is broken
     
  4. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Hi,

    Thanks for pointing that up!
    I had a typo in the URL. Now its pointing to the correct location.

    Thanks
     
  5. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    Is it downloading all the languages to be available at runtime? Can't really tell from the video.

    Also, nice music for the movie. Where did it come from?
     
  6. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    The languages setup happens on the Editor and that information is saved within the game. Currently, for downloading extra languages at runtime you could add them to another LanguageSource and download it as a bundle. The plugin is able to use several Languages Source at the same time for expanding the terms and languages.

    Nonetheless, I like a lot that idea of getting the info from the Spreadsheets at runtime. In the next versions I will move the code that downloads the Spreadsheets data from the Custom Editor into the Language Source.

    That way, when the game starts, the language source could check if the Spreadsheet has changed and if so download the data and add that to its cache. That will make possible to add new languages and corrections after the game is live on the store.

    This functionality may not work on all platforms without a workaround, but it will be an awesome feature to have on the platforms that support it!

    About the trailer music: Its "Two Steps From Hell-SkyWorld-Extreme Music".
    I was searching for a trailer like sound band and this was the first hit. I really loved it from the first time I heard it!!
     
  7. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Good news,

    The latest update was approved and its life in the Store!

    Among its new changes the update includes default Language Variations (United Kingdom English vs United State English, etc).



    In total over 170 languages and variations are supported and the AutoTranslation is set to use the regions as well.
     
  8. Apiweb

    Apiweb

    Joined:
    Nov 26, 2011
    Posts:
    57
    This is the best location component that I have ever used.
    Become a multi-language game is very simple, easy and fast, it works out of the box.
    Integrates it with Ngui (or DFGUI) is faster. And we can translate the terms in the interface itself, using Gdocs spreadsheets, categorizing terms. It is much easier to manage languages​​, I recommend.
     
  9. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Hi guys,

    Just wanted to let you know that version 2.0.1 of the I2 Localization plugin is now available at the I2 Community.

    This new version adds lot of fixes and tweaks for making the editors as intuitive as possible.
    Check the release notes at the inter illusion forum

    Thanks for all the feedback! And if there is any other feature that you feel is missing, please let me know!
     
  10. nilton_felicio

    nilton_felicio

    Joined:
    May 17, 2012
    Posts:
    66

    I wonder if all the functions work with Unity free?
     
  11. Apiweb

    Apiweb

    Joined:
    Nov 26, 2011
    Posts:
    57
    Yes, everything works in Unity free.
    I am using this plugin and it is perfect, make a game multi-language is more simple and easy, and maintain translation files, it is also very simple.
    Highly recommend.
     
  12. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Hi,

    Thanks Apiweb! I'm glad you have found the plugin useful!

    Today I have more good news: Version 2.0.1 was approved and it’s on the AssetStore.

    This version fixes several issues and makes the Editor far more intuitive than before.

    Also, a feature that I think will be interesting for project accessing the localization directly on the code is the Compile Time Checking:



    The editor is able to auto-generate an script file and exposes some of the terms as variables. That way if you make a Typo the compiler will warn you about it. That eliminates the need of accessing Terms by string which could introduce errors because of Typos, Terms no longer existing, etc.

    I hope you find this useful and if you have any other suggestion, please don’t hesitate in posting here or at the Inter-Illusion forum.


    Also, The plugin is now temporally on Sale. 50% OFF!!


    Thanks,
    Frank
     
    Last edited: Mar 14, 2014
  13. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Hi guys!

    Check this video/tutorial describing how to localize a Project containing Labels/Sounds/Textures. It shows how to interact with the Unity Standard components, but the same procedure works for NGUI, DF-GUI and uGUI.



    Let me know if you have any questions or join the inter inter-illusion forum for better support.
    Thanks,
    Frank
     
  14. BrUnO-XaVIeR

    BrUnO-XaVIeR

    Joined:
    Dec 6, 2010
    Posts:
    1,687
    Hmm... This look great; I will probably use it.
     
  15. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    In the video I'm localizing a GUIText.text
    Also you can at the same time localize the GUIText.font

    That way the text can use different fonts according to the language. This is useful for handling Chinese and other non-Latin languages etc.

    BTW, The plugin is now 50% OFF until version 2.0.2 gets approved in the Store!
     
    Last edited: Mar 21, 2014
  16. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Hi guys!

    I'm glad to announce that version 2.0.3 b1 is available for download at the i2 community!

    If you bought the plugin and don't have access to the community, send me an email and I will add you!
     
  17. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Version 2.0.2 is now live on the Asset Store.
    But remember that you can download 2.0.3 b1 from the i2 community while the asset store approve it.
     
  18. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Hi guys!

    Version 2.0.3 b2 is available for download from the Private Community.

    It adds fixing for when the localized targets have invalid atlas/Fonts. Localization of Prefabs is used as the last option to easy the localization of projects with deep hierarchies, among others.

    As always, thanks for all the feedback! It has really help making the plugin this big!
     
  19. halfbot

    halfbot

    Joined:
    Sep 22, 2013
    Posts:
    19
  20. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Hi halfbot

    It seems that google updated the spreadsheet format. Every spreadsheet created after april 1st uses the new format.

    The url of the new docs are like:
    https://docs.google.com/spreadsheets/d/1kpLLgfi8tbOdUTQFFm78SamYa

    instead of the classic:
    https://docs.google.com/spreadsheet/ccc?key=0Ao0r8tFfhPVbdE5QRGZLZzNELXc4T3FNTENQZGpDQWc

    The current google API seems to have problems writing data as reported at
    https://code.google.com/a/google.co... ID Type Status Priority Stars Opened Summary

    While that gets fixed you could duplicate one of the spreadsheet with the classic format. The plugin exports fine to those spreadsheets.

    You could open the following spreadsheet and make a copy into your google drive:
    https://g.co/oldsheets

    Just follow the link, and then in the menu select "File\Make a Copy". That will create an spreadsheet with the format you need to export the localization data.
     
    Last edited: Apr 11, 2014
  21. halfbot

    halfbot

    Joined:
    Sep 22, 2013
    Posts:
    19
    Great. Thanks for the tip!

     
  22. gshape

    gshape

    Joined:
    Aug 8, 2012
    Posts:
    104
    Hi! This plugin looks great! I am about to purchase this plugin.

    Just a newbie question for you about translating to Chinese. My project is currently support English only with a "Normal" font type (English only) of NGUI, and I would like to support Chinese now. How do I achieve this purpose with your plugin please? Or I can only use a "Dynamic" font to achieve this?

    Could you please kindly show me some hints?
    Thanks.
     
  23. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Hi gshape,

    Adding chinese translation to your project with the I2 Localization is as easy at it can gets.

    When localizing a label with the plugin you can specify which text the label is going to show for each language, and also which font will be used.
    That way you can have a font for the Latin languages and another font to display the Chinese texts.

    In the standard example scene I used the Arial font for a language and the Comic Sans for other languages to show that the plugin can change fonts depending on the Language. You can use a similar approach in your project.

    Be aware that the plugin doesn't impose any constraint on the type of font you use. For NGUI you can set either bitmap fonts or dynamic fonts. You can even combine them. That way you can have a bitmap font to render your Latin Languages and a dynamic font to render Chinese.

    So the common way is:
    1- Create a font for the English/Spanish and another font for Chinese
    2- Add a Term to your Language Source with the name of the English Font
    3- Flag the term as type Font
    4- Drag for each language the font you want to use.

    Thats it! Every localized label will find the font its using and will try to find an alternative font matching the font name in the Language Source.
     
  24. gshape

    gshape

    Joined:
    Aug 8, 2012
    Posts:
    104
    Sounds great and easy! Thank you!
    It's on my buying list already and will try to use it later. :)
     
  25. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Hi guys!!

    I'm glad to announce that version 2.0.3 f1 is now available for download.



    It now supports 2D ToolKit components.
    Now you can localize TextMeshes, Sprites, Fonts and Collections!!
     
  26. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Version 2.0.3 is now live on the store!
     
  27. phpnato

    phpnato

    Joined:
    Aug 16, 2013
    Posts:
    14
    Not working for 2D Toolkit. The scene sample does not work. The version I'm using is 2.0.3 f2. The language is changed but the textMesh continues with the same text.

    My 2D Toolkit version is: 2.4.0
     
  28. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Hi,

    Have you checked if the 2DToolKit target is enabled in the plugin? (i.e. The Script Define Symbols on the Player settings has TK2DToolKit defined)

    To avoid compilation errors all targets are disabled by default until you select a language source. At that point the UpgradeManager.EnablePlugins() function is called and the detected plugins are defined in the Player Settings.

    If the automatic detection is skipped or hasn't been executed, you can force it with the menu command: (Tools/I2 Localization/Enable Plugins)

    I updated the documentation pdf to explain the auto detection of the plugins and how to setup it manually in case it fail.
    http://www.inter-illusion.com/assets/I2Localization.pdf (page 6)

    Hope that helps
    Frank
     
  29. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Hi Guys,

    The I2 Localization plugin is now on the 24h Sale at 50% OFF!

    If you thought on boosting your localization this is the best moment ever!
    Enjoy the deal!
     
  30. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
  31. Wild-Factor

    Wild-Factor

    Joined:
    Oct 11, 2010
    Posts:
    607
    Info: If your google account has 2 step verification, you need an app password to access your spreadsheet.

    One Question:
    I want to be able to select the key in my own component. How can I do that ?

    For example a component "ErrorMessage"

    and in the code:
    Code (CSharp):
    1.  
    2.  
    3. public string termErrorMessage;
    4.  
    5. void OnDisplay()
    6. {
    7.         MyGUI.text =    ScriptLocalization.ErrorHeader + iErrorCode + ":"  +   I2.Loc.LocalizationManager.GetTermTranslation(termErrorMessage);
    8.  
    9. }
    10.  
    11.  
    and having a nice drop down list in the inspector to select the right termErrorMessage.
     
  32. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Hi,
    Thanks for the suggestion, I will be including a custom PropertyDrawer for getting the terms out of the LanguageSource and displaying them in a dropdown.
    Nonetheless, while I release it, you could use the Popup drawer to show the errors you are interested on.
    https://github.com/anchan828/property-drawer-collection/tree/master/Popup

    And rewrite the code into something like:
    Code (csharp):
    1.  
    2. [Popup("Error1","Error2","Error3","Error4")]
    3. public string termErrorMessage;
    4.  
     
  33. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Hey guys!

    I'm glad to announce that the I2 Localization plugin now has support for localizing TextMesh Pro!


    This feature is available in version 2.2.0 and should be in the AssetStore in a few days!
     
  34. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Sharing more good news:

    As of version 2.2.0, I2 Localization supports nested terms!

    That way a term can be assigned to categories or subcategories, which will make finding terms easier than ever!

    When in the editor, each of the categories and subcategories will be displayed as a nested menu.
     
  35. spartan

    spartan

    Joined:
    Mar 10, 2010
    Posts:
    174
    Can't call LocalizationManager.HasLanguage from my script under Assets/Scripts
    I2 Localization is installed on it's default folder: Assets/I2

    " Unexpected symbol `LocalizationManager'"
     
  36. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    To avoid conflicts, all classes in the I2 Localization are inside the I2.Loc namespace.
    so you can do:

    Code (csharp):
    1.  
    2. using I2.Loc;
    3.  
    4. void YourFunction()
    5. {
    6.        LocalizationManager.HasLanguage("English");
    7. }
    8.  
    or just:

    Code (csharp):
    1.  
    2. void YourFunction()
    3. {
    4.        I2.Loc.LocalizationManager.HasLanguage("English");
    5. }
    6.  
     
  37. spartan

    spartan

    Joined:
    Mar 10, 2010
    Posts:
    174
    Unexpected symbol `I2'
     
  38. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Hi,
    That seems to be an issue with the compilation order. It seems that your script is being compiled before compiling the I2 Localization.

    Are you using java? If using java, you may need to move the I2 folder into the plugins folder, so that the I2 classes get compiled before the java scripts.

    If that doesn't fix the issue, can you send me the file were you are having problems, to see if I can reproduce it over here and guide you to the solution?

    Thanks,
    Frank
     
  39. spartan

    spartan

    Joined:
    Mar 10, 2010
    Posts:
    174
    I'm using C#, I'll send you a PM with a test project link
     
  40. spartan

    spartan

    Joined:
    Mar 10, 2010
    Posts:
    174
    Frank, have you checked the project? (Sent the link by PM few days ago)
     
  41. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Ohh, sorry I haven't replied before. I missed the PM notification. I will check the project as soon as I get back home today and will reply right after.

    If possible, when you get any other issue/question, try posting them at the I2 Localization forums, I should get a notification there for sure and its easy to track conversations there for me :)

    thank
     
  42. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Hi spartan,
    I just checked the project you sent me and the issue why it was not recognizing the LocalizationManager is because it was missing the closing parenthesis on the if.

    It will work if you change your code from:
    Code (csharp):
    1.  
    2.     void Start () {
    3.             if ( LocalizationManager.HasLanguage("English")
    4.                    LocalizationManager.CurrentLanguage = "English";
    5.     }
    6.  
    Into this
    Code (csharp):
    1.  
    2.     void Start () {
    3.             if ( LocalizationManager.HasLanguage("English") )  //<-- see here the missing parenthesis
    4.                    LocalizationManager.CurrentLanguage = "English";
    5.     }
    6.  
    Hope that helps and let me know if you get any other issue integrating the plugin.
    Frank
     
  43. spartan

    spartan

    Joined:
    Mar 10, 2010
    Posts:
    174
    lol, thanks Frank :)
     
  44. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Hey Guys!

    I just released a new version of the plugin, it can be downloaded from the I2 Community and in a few days should be available in the Asset Store.

    The New Unity UI support was updated to the latest 4.6 build and the example scene was redone to make it easier to understand and interact. Now uGUI supports not only Text and Images/Sprites but also RawImage!

    There are also more improvements in the Right-To-Left languages. And also a new example scene showing how to setup it and how it looks in the game.


    Also, there are improvements regarding how the plugin recognices the languages. Now it will fallback to any region if there device region is not localized (e.g. ifdevice is "English (Canada)" it will try using that, but if that region is not localized, it will fallback to any other English region)
     
  45. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    2,255
    This package looks good.

    I'm looking to allow my players to edit/add their own languages possibly by adding a txt file or spreadsheet in a folder which is loaded at runtime. Is this possible with your asset?

    Thanks
     
  46. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Hi derkoi,

    Yes, in the current version you can load a CSV file at runtime and add it to the language source. And your player should be able to edit the CSV file with excel, notepad, etc.

    Nonetheless, I'm about to release version 2.3 which radically changes how data is imported/exported. With the new system, you can create your spreadsheets in google, and once you link them to your game, the game will automatically download the latest changes from google.
    So, you can build your game, send it to the store and give your players a google spreadsheet that they can tweak. Every modification they make will be automatically downloaded and used!
    You can even setup several sources in your game, to make some terms not modifiables.

    There are quite a few improvements in 2.3 regarding the external sources. I already have a working 2.3, but I will be doing some internal testing over the next days to ensure backward compatibility and will release it as soon as possible. I will also add a detailed explanation of the new features and how to stop them.
     
  47. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    2,255
    Thanks for the reply. Exactly what i was hoping, I'll purchase right away.
     
  48. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Hey guys!
    For version 2.3 I rewrote the way the plugin links with the Google Spreadsheets. Now there is no need to store your username/password and the synchronization can happen even after the game is sent to the store!

    I just made a new video showing how the Google Live Synchronization could help you fix Typos and other errors even after the game is deployed!!



    Here you can find more info about it and even tutorials on how to setup the localizations and connection with google :)
    http://inter-illusion.com/tools/i2-localization
     
  49. sevensails

    sevensails

    Joined:
    Aug 22, 2013
    Posts:
    483
    I`m trying to Build to Windows Store. But I got these errors! Any suggestion?.

    Assets\I2\Localization\Scripts\Google\SimpleJSON.cs(446,14): error CS0234: The type or namespace name 'Directory' does not exist in the namespace 'System.IO' (are you missing an assembly reference?)

    Assets\I2\Localization\Scripts\Google\SimpleJSON.cs(446,55): error CS0234: The type or namespace name 'FileInfo' does not exist in the namespace 'System.IO' (are you missing an assembly reference?)

    Assets\I2\Localization\Scripts\Google\SimpleJSON.cs(447,28): error CS0234: The type or namespace name 'File' does not exist in the namespace 'System.IO' (are you missing an assembly reference?)

    Assets\I2\Localization\Scripts\Google\SimpleJSON.cs(566,28): error CS0234: The type or namespace name 'File' does not exist in the namespace 'System.IO' (are you missing an assembly reference?)
     
  50. Inter-Illusion

    Inter-Illusion

    Joined:
    Jan 5, 2014
    Posts:
    598
    Hi,
    To fix the compile errors and be able to build for METRO, add (&& !NETFX_CORE) at the end of line 2 in SimpleJSON.cs

    It should look like this:
    Code (csharp):
    1.  
    2. //#define USE_SharpZipLib
    3. #if !UNITY_WEBPLAYER && !NETFX_CORE
    4. #define USE_FileIO
    5. #endif
    6.  
    I'm adding that change to version 2.3.1.
    Thanks for reporting the issue.
    Frank