Multi language solutions best practices
Hi again. I don't know if this is the best place for this question, but I will try...
Here in Spain, about 70% of our clients sell their products and services in at least 3 languages: Spanish, Catalan/Basque/Galician and English. Some of them use more than 3 languages (Spanish, English, French, German, Italian, Portuguese). So, we want to be able to develop multi language applications with Ninox.
What does a proper multi language app need?
There are mainly three requirements, in order of importance:
- Field content translation (only for fields that need to be translated). For example, a product name and description needs translation, but a boolean or price field does not need translation.
- Translation management: a query or view that allows to check the translation status of the database fields.
- Interface translation. Ninox is a multi language platform, BUT only for its basic user interface. What we want is to be able to translate table names (not very important), field/views/buttons/labels names and pop-up messages.
1. Field Content translation
There are two approaches:
- Create a duplicate table (for each table) for each language, and set one of the tables as the "main language". For example, the table "Products" in a solution with 3 languages would have three versions: Products_es, Products_en, Products_pt (for Spanish, English and Portuguese)
- Create a complete solution with only the "main language" set of tables (no language table) and then a translations table: it would have an entry for each field with the translated content. In this case, the table would have: field id, table id, record id, translated content 1, translated content 2, etc.
I think the second approach is nicer, because it will allow to manage ALL the translations in one single place.
2. Interface translation
Field labels. It seems cumbersome (but doable): simply by hiding the default label and using a formula field. It requires the creation of as many formulas as there are fields, but at least it's possible and easy to do (but not to maintain). It we use the "multiple table approach" then it's easier: the field names for each table are in their target name (but then, it would be a maintenance nightmare, because you will need to recreate ALL the formulas for each target language, as Ninox uses the label of each field in its formulas)
Table names. There is no solution (at least not an official one). BUT if we use the multiple tables approach, we can show/hide the other language tables. For example, if I use English as the main language, I will show only the Products_en table and hide the Products_es and Products_fr tables.
3. Translation management
If we use the "translations table" approach, then its very easy to maintain the proper field translation: you can query the table for the empty fields in a target language and that's it.
If we use the multiple tables approach (Products_es, Products_en, etc) then there is no easy way. Still doable, but very difficult to sync the same field in different tables.
Last but not least
Ideally, the interface and the field content showed to the end user would display the proper language content. For example, if I "prefer" the English language, then all the field names, table names and FIELD CONTENT will display in English.
It is "easy" if we use the "multiple tables approach" for field content (we just simply display and work with the target language table, for example, Products_en) and cumbersome (I don't know a proper approach) if we use the single translations table.
Regards
28 replies
-
I redesign it, you could try it now.
Use Localization menu in admin mode to translate all captions and tooltips.
It work on could and on app. You try it with the app attached on previous post
Content aside
- Status Answered
-
5
Likes
- 8 mths agoLast active
- 28Replies
- 914Views
-
10
Following