5

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:

  1. 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.
  2. Translation management: a query or view that allows to check the translation status of the database fields. 
  3. 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:

  1. 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)
  2. 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

null
    • Ninox developper
    • Jacques_TUR
    • 1 yr ago
    • Reported - view

    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 

      • buy
      • 1 yr ago
      • Reported - view

      Jacques TUR Works so well, Thank you Jacques, very tempting to build a real business app on this . How stable would it be with future versions of Ninox ?

      • Ninox developper
      • Jacques_TUR
      • 1 yr ago
      • Reported - view

      buy 

      The code I created only modifies the display and in that, it is not dangerous for the data and the application. But, as I don't master the Ninox code, I can't be responsible for any commercialization. That's why all sources are available to everyone. 

      Ninox is aware of what I do. I asked them if they don't mind if I use some of their code for translation. They told me that they don't have a problem with that but that they won't take any responsibility if there is a problem.

      They also told me that the translation was part of their future development. So if my code doesn't work anymore, it will probably be replaced by Ninox's code. This has already happened with the auto-completion in the code editor.

      • Consultant and developer
      • Javier
      • 1 yr ago
      • Reported - view

      Jacques TUR thanks for the info. So, if Ninox team is already working in the multi language solution, I think the best bet is to wait (hope not very much) for the "official" solution.

      Thanks again,

Content aside

  • Status Answered
  • 5 Likes
  • 7 mths agoLast active
  • 28Replies
  • 898Views
  • 10 Following