Friday, 5 June 2015

Localization in Unity for free! Asset Store Review.



Learning how to localize your game in Unity is much easier than you think. I have to admit, that it was one of the things that "scare" me most of creating professional level video games. Fortunately, Unity is lucky enough to count with SmartLocalization on the Asset Store. Since it is one of my favourite assets on the store I will ignore the fact that it is more than two years old and it has already plenty of reviews and I will make my own :)

Localization, also called l10n, is a term that covers everything that will make your users from around the globe feel like they are at home whenever they turn on your game. This means that not only text should be localized, but also pictures or audio. Ideal localization should be also done on the fly depending of the user preferences without affecting the performance of the game. Before localizing, ROAR! I had very clear that this is what

The good news is that SmartLocalization is this and much more! :)

The better news? It's free! :D


I will not talk here about how it works, how to install it or how to use it and so on. I you haven't tried it already stop wasting your time! Download it from the Asset Store and check the official tutorials :)

Instead, I will go straight to the Pros and Cons and hopefully that will convince you why this is such an amazing asset to use in your projects :)

PROS:
  • It's easy to use: you don't need to write a single line of code to use it in your project (almost true :P)
  • It's complete: it contains all the features you need to fully localize your game. Text, Pictures and Audio.
  • It's very smart: managing references from the scene can be tricky and you can end up wasting a lot of RAM. The Plug-in automatically creates copies of your localized assets and stores them in the Resources folder to load them dynamically. All done in the background... sweet! Isn't it? :D
  • It saves a lot of time: starting with the fact that you will not have to write your own localization system. Other of the features is automatic connection to Windows translating service (also free).
  • It's flexible: you can use it with the plain old Unity, with Unity 4.6 uGUI or with NGUI. Even at the same time if you want!
  • It's reliable: never crashed or failed to me. As far as I know one of the most stable Plug-ins I have used.
  • It has good support: this is the kind of developer that replies every single comment on the store and post in the forum.
  • It has extra features: if you like it, you can buy the PRO version that contains even more features! :)
  • It's free: I think I already said it but... it even allows you to modify part of the code! :D
CONS:
  • UI could be better: specially the editor scripts could have a little bit better usability. I modified almost all of them to fit my needs.
  • Works only in Play mode: unfortunately, there is not much to scratch with the editor scripts because the Plug-in only works when you click the Play button.
  • Has loose ends: correct me if I am wrong, but the Plug-in doesn't have a solid way to allow the user to change the language of the game and store that preference for future sessions. I wrote a "wrapper" script to take care of it (you have to out it into every scene of your game).

using UnityEngine;
using System.Collections;
using System.Globalization;
using SmartLocalization;

public class LanguageController : MonoBehaviour {
 
   protected LanguageManager languageManager;

   // Priority order of where the controller finds the chosen language
   // 1. PlayerPrefs
   // 2. System
   // 3. "English"
   public string playerPrefsString = "language";
 
   void Start () {
      languageManager = LanguageManager.Instance;
  
      if (PlayerPrefs.HasKey(playerPrefsString)){
         // 1. PlayerPrefs
         ChangeLanguage(PlayerPrefs.GetString(playerPrefsString));
      } else {
         ChangeLanguage(languageManager.GetSupportedSystemLanguageCode());
      }
   }

   public void ChangeLanguage(string languageCode = "en"){
      if (languageManager.IsLanguageSupported(languageCode)){
         PlayerPrefs.SetString(playerPrefsString, languageCode);
         languageManager.ChangeLanguage(languageCode);
         languageManager.defaultLanguage = languageCode;
      }
   }
}

All in all this Plug-in is a must! I totally recommend: 5/5
★★★★


SmartLocalization Plug-in in the Asset Store. Developed by janeTech

If you are using another Localization Plug-in, I would love to hear from it! Specially if you think it surpasses SmartLocalization. Maybe you want to share your experience with it? Please do! :)

6 comments:

  1. Thanks for the review! Stuff like this is what keeps us going :)

    ReplyDelete
  2. Hey Juan! If you're interested in localization tools, you could also give https://poeditor.com a go. You can use it for free up to 1000 strings.

    ReplyDelete
  3. Globalization has decidedly made promoting straightforward for various associations wherever all through the world. Translation or limitation is an astoundingly fundamental part of an association's globalization for it can speak to the snapshot of truth the associations. Here are possibilities for the Game restriction organizations, Game confinement Services, Video games localization, Gaming Translation Agency, Gaming Translation Company and Gaming Translation Services.

    ReplyDelete
  4. Very interesting information here I can find
    find a prostitute Aussie

    ReplyDelete