Is there a way to localize the application on different platforms

We are developing an application that runs on different platforms (Windows, Windows RT, MacOSX, iOS, Android).

The problem is how easy it is to manage different localizations on different platforms. Language files on different platforms have different formats (some of them are based on xml, others are simple key-value pairs, and others are completely crazy formats, for example, on MacOS)

Iโ€™m sure that we are not the first company with this problem, but I couldnโ€™t find an easy-to-use solution with the ability to have one โ€œdata sourceโ€ where the lines are collected in different languages โ€‹โ€‹(the user interface for translators will be better), and then you can export it in different formats for different platforms.

Anyone have a solution to this problem?

Hello Alexander

+7
source share
4 answers

I recommend using the GNU Gettext toolchain for control and at runtime use

  • an alternative implementation for reading at runtime, e.g. Boost.Locale ,
  • native implementation (.mo format is pretty trivial) or
  • use the Translate Toolkit to convert message directories to another format to your liking.

You cannot use the libintl GNU Gettext component because it is licensed under the LGPL and both the Apple AppStore and the Windows Live Store are not compatible with this license. But it's really trivial to override the bit you need at runtime.

The Translate Toolkit actually renames all or most of the GNU Gettext and supports many additional localization formats, but for the Gettext .po format, most free tools are available for it (for example, poedit for local editing and Weblate for online editing), so I recommend sticking with it in any case. And read the GNU Gettext manual , it describes the proposed process and the rationale behind it.

I have a good experience with the toolchain. The Translate Toolkit is an easy script when you need special processing, for example, extracting translatable strings from your custom resource files and Weblate is easy to use for your translators, especially when you rely on business partners and testers in different countries for most translations like us.

The Translate Toolkit also supports extracting translated strings from HTML, so the same process can be used to translate your website.

+2
source

I did a project for iPhone and Android that had a lot of translations, and I think that I have exactly the solution you are looking for.

The way I decided was to put all the translation texts in an Excel spreadsheet and use the VBA macro to create the .string and .xml translation files. You can download my example Excel sheet plus VBA macro:

http://members.home.nl/bas.de.reuver/files/multilanguage.zip

More recently, I also added the preliminary output of Visual Studio.resx, although this has not been verified.

edit: By the way, my javascript xcode / eclipse converter can also be used.

+1
source

you can save your translations to https://l10n.ws and get it through the API

+1
source

Disclaimer: Iโ€™m the CTO and co-founder of Tethras, but Iโ€™ll try to answer it so that itโ€™s more than just โ€œusing our service.โ€

As loldop points out, you really need to normalize your content on all platforms if you want a universal solution for managing localized content. This can be a big problem and require a lot of coding and scripting and calling various tools from different SDKs to get a common format that will serve the localization needs of all the different file formats that you need to support. The length and complexity of my previous sentence is inversely proportional to the amount of work that you will need to do to get a favorable solution for all this.

At Tethras, we have created a platform that eliminates the need to publish multi-platform software publishers. We support all native formats from the above platforms and can use translations from one file format to another. For example, translate the contents in Localizable.strings from an iOS application into several languages, then upload the equivalent strings.xml file from Android or foo.resx from Windows RT to the system and it will automatically use translations for you. Any untranslated lines will be marked, and you can order updates for these lines.

In fact, Tethras is a CMS for localized content in many different file formats.

0
source

All Articles