Search Unity

No Such Localization Asset Forum

Discussion in 'Assets and Asset Store' started by hk1ll3r, May 1, 2020.

  1. hk1ll3r

    hk1ll3r

    Joined:
    Sep 13, 2018
    Posts:
    88
    This thread is for discussing "No Such Localization" asset.

    You can ask questions and request features.
     
  2. hk1ll3r

    hk1ll3r

    Joined:
    Sep 13, 2018
    Posts:
    88
    ✨ Update 1.2 is out (June 5, 2020)

    - Support added for language detection and saving.
    - Support added for locales.
    - The inspector editors have been reworked. Now you can select languages from dropdown menus instead of text fields. This makes language selection easier and less prone to error.
     
  3. hk1ll3r

    hk1ll3r

    Joined:
    Sep 13, 2018
    Posts:
    88
    ✨ Update 1.3 is out (June 25, 2020)

    - Full source code included with Pro version.
    - Make file sources work on mobile platforms.
    - Other minor fixes and improvements.
     
  4. emusiceducation123

    emusiceducation123

    Joined:
    Jul 22, 2020
    Posts:
    4
    I tried NoSuchLocalization and imported it into a fresh 2d project. it works in unity but when I try to build for iOS, it has the following error. Can you help?
    ArgumentException: The Assembly UnityEditor is referenced by NoSuchLocalizationCore ('Assets/NoSuchLocalization/Plugins/NoSuchLocalizationCore/NoSuchLocalizationCore.dll'). But the dll is not allowed to be included or could not be found.
    UnityEditor.AssemblyHelper.AddReferencedAssembliesRecurse (System.String assemblyPath, System.Collections.Generic.List`1[T] alreadyFoundAssemblies, System.String[] allAssemblyPaths, System.String[] foldersToSearch, System.Collections.Generic.Dictionary`2[TKey,TValue] cache, UnityEditor.BuildTarget target) (at /Users/builduser/buildslave/unity/build/Editor/Mono/AssemblyHelper.cs:154)
    UnityEditor.AssemblyHelper.AddReferencedAssembliesRecurse (System.String assemblyPath, System.Collections.Generic.List`1[T] alreadyFoundAssemblies, System.String[] allAssemblyPaths, System.String[] foldersToSearch, System.Collections.Generic.Dictionary`2[TKey,TValue] cache, UnityEditor.BuildTarget target) (at /Users/builduser/buildslave/unity/build/Editor/Mono/AssemblyHelper.cs:160)
    UnityEditor.AssemblyHelper.FindAssembliesReferencedBy (System.String[] paths, System.String[] foldersToSearch, UnityEditor.BuildTarget target) (at /Users/builduser/buildslave/unity/build/Editor/Mono/AssemblyHelper.cs:194)
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr) (at /Users/builduser/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:197)
     
  5. hk1ll3r

    hk1ll3r

    Joined:
    Sep 13, 2018
    Posts:
    88
    What version of No Such Localization and Unity Editor are you using? It is easy to fix once I can can get a repro.
     
  6. emusiceducation123

    emusiceducation123

    Joined:
    Jul 22, 2020
    Posts:
    4
    Last edited: Aug 9, 2020
  7. hk1ll3r

    hk1ll3r

    Joined:
    Sep 13, 2018
    Posts:
    88
    Submitted version 1.4 with fix :)
     
  8. emusiceducation123

    emusiceducation123

    Joined:
    Jul 22, 2020
    Posts:
    4
    What was the issue? Do you have a private build? It seems unity asset store still has 1.3.
     
  9. hk1ll3r

    hk1ll3r

    Joined:
    Sep 13, 2018
    Posts:
    88
    Included source code in the asset so that the binary matches your target. It takes a few days for the asset store to review and approve the new version. Stay tuned just a few days.
     
  10. emusiceducation123

    emusiceducation123

    Joined:
    Jul 22, 2020
    Posts:
    4
    ok, thank you!
     
  11. tomislav_

    tomislav_

    Joined:
    Sep 22, 2013
    Posts:
    4
    I have localization service script in every scene. When I change language in first scene - how to make that in other scenes language also change? Thanks.
     
  12. hk1ll3r

    hk1ll3r

    Joined:
    Sep 13, 2018
    Posts:
    88
    At runtime, make sure there is only 1 active instance of the service in the scene.

    solution 1) You could check the "save language" option in the services. That way the service saves the language to prefs. The next instance will set the language at scene load when it becomes active.

    solution 2) Make your service a singleton with "DontDestroyOnLoad" set on it. That way changing the scene will not affect the localization service object.
     
  13. tomislav_

    tomislav_

    Joined:
    Sep 22, 2013
    Posts:
    4
    Thanks. Solution 2 worked for me. I think this feature is important for many users because we all have many scenes and should be explained in help. Solution 1 did not work. Also Playmaker action for set, change and get language would be appreciated. Anyway GREAT ASSSET. :)
     
  14. hk1ll3r

    hk1ll3r

    Joined:
    Sep 13, 2018
    Posts:
    88
    That's a good idea. I'll add it to the manual in the next update. I'll also look into Playmaker actions. Haven't had time to do it. Getting a nudge from users helps with motivation :)
     
  15. steve_mmsoft

    steve_mmsoft

    Joined:
    Apr 29, 2020
    Posts:
    4
    I just started using your package. It looks good so far.

    Is there a way to run two different languages simultaneously? I have a game where the operator is different from the player - so we may want the options screen in German while the game HUD is in Spanish. Since LocalizationService.CurrentLocale is a global I'm not sure how to do this.
     
  16. hk1ll3r

    hk1ll3r

    Joined:
    Sep 13, 2018
    Posts:
    88
    Currently it is not possible to have the game UI in two different languages. That is going to be pretty much the case with any Localization tool. The idea is that the user looking at the screen knows a single language.

    Is your game local multiplayer so two people look at the same screen? In that case it is more likely that they speak the same language.

    Do different characters in your game speak different languages? If so having each speak their language will confuse the user since the user will understand only one of them. Usually in these cases the developers keep all dialog in a single language (say spanish in your case which is the user's language) and the German guy (operator) speaks broken spanish or jibber-jabber translated in game to Spanish somehow (subtitles, etc.)


    If you really want to do it, as a not-so-user-friendly workaround, you can do this in your code:
    Code (CSharp):
    1.  
    2. LocalizationService.CurrentLocale = "spanish";
    3. string esStr = LocalizationService.GetPhraseTranslation("my_phrase_1");
    4. // Use esStr manually instead of relying on text component localizers. For example:
    5. mySpanishHUDText.text = esStr;
    6.  
    7. LocalizationService.CurrentLocale = "german";
    8. string geStr = LocalizationService.GetPhraseTranslation("my_phrase_2");
    9. // Use geStr
     
  17. trinistry

    trinistry

    Joined:
    Feb 2, 2014
    Posts:
    15
    Hi, after upgrading unity versions, I'm now getting
    Code (CSharp):
    1. Assets\NoSuchLocalization\Plugins\RTLTMPro\Scripts\Editor\RTLTextMeshProEditor.cs(8,41): error CS0246: The type or namespace name 'TMP_UiEditorPanel' could not be found (are you missing a using directive or an assembly reference?)
    2.  
    and
    Code (CSharp):
    1. Assets\NoSuchLocalization\Plugins\RTLTMPro\Scripts\Editor\RTLTextMeshProEditor.cs(30,30): error CS0115: 'RTLTextMeshProEditor.OnInspectorGUI()': no suitable method found to override
    I'm on Unity 2019.4.25f1 and TextMeshPro version 2.1.6.


    Edit: I was able to resolve that by manually importing the newest version RTLTMpro (after deleting the one that came with your asset). Additionally, I also have to delete the Newtonsoft.json dll that came with your asset, because I have it in my project already. Considering that I don't even use either TextMesh Pro nor RTL languages, that was a bit of a hassle to be honest, but at least I can now start using it (I hope ;) )
     
    Last edited: Apr 27, 2021
  18. hk1ll3r

    hk1ll3r

    Joined:
    Sep 13, 2018
    Posts:
    88
    This is a known bug in the RTLTextMeshPro package. Glad you could figure this out. I'll update the localization asset to make it easier for users who don't use RTL. Thanks for reporting this!!
     
  19. hk1ll3r

    hk1ll3r

    Joined:
    Sep 13, 2018
    Posts:
    88
    ✨ Update 1.5 is out (June 1, 2021)
    - conditional compilation, now the package will work without the extra libraries out of the box. If additional libraries are not in the project, this asset works with reduced functionality.
     
  20. hk1ll3r

    hk1ll3r

    Joined:
    Sep 13, 2018
    Posts:
    88
    Update 1.5 is out (June 1st, 2021)
    - updated dependency libraries to latest UPM versions.
    - Unity 2020 compatible out of the box.
    - conditional compilation so that the package works even without the dependencies with reduced functionality.

    Happy localizing!
     
  21. hk1ll3r

    hk1ll3r

    Joined:
    Sep 13, 2018
    Posts:
    88
    ✨ Update 1.6 is out (August 7th, 2021)

    - Load Translations from Google Sheets
    - Other fixes and improvements.
     
  22. tareckoo

    tareckoo

    Joined:
    Mar 23, 2019
    Posts:
    2
    Untitled-1.jpg Arabic not working with TextMeshPro 3.0.6 with unity 2020 LTS
    also i used NoSuchStudio V1.6 pro any help here please ??
     
  23. hk1ll3r

    hk1ll3r

    Joined:
    Sep 13, 2018
    Posts:
    88
    To use RTL languages including Arabic, you need the RTLTMPro open-source package (available on github). To install you can follow install instructions from either of these sources:
    1. The github repo 's install instructions section. We recommend installing from OpenUPM.
    2. No Such Studio: Localization documentation: Localization -> Getting Started -> Add Additional Packages
    3. The instructions are also included in the manual.pdf that comes with No Such Localization: Section 3. Add Additional Packages of "Getting Started" article in the manual. Manual.pdf is located at the root of the package.
    After adding RTLTMPro things should work. If you face other issues please contact us here or on our discord server.
     
  24. marcuslelus

    marcuslelus

    Joined:
    Jun 18, 2018
    Posts:
    67
    @hk1ll3r Will this work with AOT compilation (IL2CPP)? The Dynamic Variable Replacement feature concerns me...
     
  25. hk1ll3r

    hk1ll3r

    Joined:
    Sep 13, 2018
    Posts:
    88
    Our asset is AOT / mobile built friendly.

    The variable replacement has no external dependencies. For working with complex user types our asset uses NewtonSoftJson which is used by Unity internally.