iOS - Country and Language Specific Localization

753 Views Asked by At

We are migrating our app from iOS6 to iOS7 and we use programmatic way of creating view (rather from storyboard or nibs).

We are trying to support multiple countries with different languages. Example,

  • English for - China, India, US
  • Simplied Chinese for- Taiwan, China

There can be custom override's for specfic country from the basic language localization set. Now I need to have a common base for language bundles and country specific bundles.

Common Language Bundles: (base language bundles)

  • en.lproj
  • zh_hans.lproj

Country Specific Override Bundles: (if i have custom text for each specific countries)

  • ch(ina)_en.lproj
  • ch(ina)_hans.lproj
  • us_en.lproj

Problem:

  1. Resource files (Translations) have to be duplicated for each countries(chinese, taiwan) with english, chinese. How can we avoid this ?. Images are also duplicated sometimes, it is a maintenance problem, if we start support more than 10 countries.
  2. Android supports delta overrides of translations for each language translation per country, do we have anything in iOS similar to that ?.

I know it is not supported out of the box from iOS. What is the right way to achieve the same without duplicating the resources ?. Any hints or ideas to achieve the same ?.

Thanks, Alex

1

There are 1 best solutions below

0
On

I hope I've understood correctly.

1a.Image files will only need to be duplicated per language if they contain text or "imagery" that requires translation otherwise there should only be one version. From memory, you select which image files you want to be translated.

2a.A translation is needed for each language you want to support - there is no way round this (obviously). These usually live in "strings" files which you send off for translation.

2b.If you don't supply a specific translation for a string it defaults to the "base" translation. Unfortunately, I don't know how this would work with two "base" translations or even if this is possible as usually the base translation is the language you developed in. You will need to investigate further.

2c.You will need to manage deltas to your strings file yourself - through GIT perhaps? This is annoying but do-able although there may be third-party products that can do this.