Wednesday, May 22, 2013

N=21 - Internationalisation - i18n - N+1 days of MvvmCross

Today I talk through an introduction about how to provide some localised text to your UI.

The code for today is at:

The slides are on:

Today I tried a slightly different style - I tried slides and a pre-built demo. Let me know what you think of this style - is it useful? Better? Worse? Different?

Coming up soon.... more on custom controls, and then time for custom presenters too - tabs, panoramas, hamburger-slideout-views, etc...

A full and fabulous index for N+1 is on

Previously in N+1:


  1. Can't wait demo with custom presenters! I don't believe that tab-based applications development is so non-trivial as it looks like. :-)

  2. Hello, Stuart!

    As for localization MvvmCross approach... Do I understand correctly, that current approach mentioned does not consider any "not-straight-forward" localizations, i.e., something like:
    LocalizeString("StringName", KittensCount)
    where the actual string template is "There are {0} kitten(s) found" (including plurals/genders localization)?


  3. Hello, Stuart!
    Thank you for you posts! Very useful!
    I have problem with Internationalisation fo iOS. I downloaded source from And when i run Babel.Touch i see "Babel|FirstViewModel|ExampleTest"( Android project work fine. Could you help me? Thanks.

    1. Hi Alexey. Take a look at the videos, try writing your own version, add debug trace and see if you can work it out - you'll learn lots on the way. Good luck. Stuart

    2. Thank you for answer, Stuart! When i added link files, i forgot to change build action "Content".
      At the moment I have another problem.
      When I check on the device, localization works fine, but when i change configuration to Ad-Hoc and install ipa file on device. I get "ProjectName|NameViewModel|NameTest".
      Did you have it?

    3. No - I've not tested in adhoc, but have tested on device.

  4. .GetType() is not available in my TextProviderBuilder ��

    1. Try using this: "this.GetType().GetTypeInfo().Assembly" and add a reference to "System.Reflection"