Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is a proper way for naming of message properties in i18n?

Tags:

We do have a website which should be translate into different languages. Some of the wording is in message properties files ready for translation. I want now add the rest of the text into these files.

What is a good way to name the text blocks?

<view>.<type>.<name> 

We mostly have webpages and some of the elements/modules are repeating on some sites.

like image 711
skurt Avatar asked Dec 06 '10 11:12

skurt


People also ask

What is i18n file?

Angular Internationalizationlink Internationalization, sometimes referenced as i18n, is the process of designing and preparing your project for use in different locales around the world. Localization is the process of building versions of your project for different locales.

Why do we use i18n?

The process of i18n enables the use of Unicode to display local languages, supports hardware preferred by the target audiences, and ensures that the user interface design can accommodate content with different text lengths and directionality. I18n separates localizable elements from the source code.


1 Answers

As far as I know, no "standard" exists. Therefore it is pretty hard to tell what is proper and what is improper way of naming resource keys. However, based on my experience, I could recommend this way:

property file name: <module>.properties resource keys: <view or dialog>[.<sub-context>].<control-type>.<name> 

We may discuss if it is proper way to put every strings from one module into one property files - probably it could be right if updates doesn't happen often and there are not so many messages. Otherwise you might think about one file per view.

As for key naming strategy: it is important for the Translator (sounds like film with honorable governor Arnold S. isn't it?) to have a Context. Translation may actually depend on it, i.e. in Polish you would translate a message in a different way if it is page/dialog/whatever title and in totally different way if it is text on a button.

One example of such resource key could be:

preferences.password_area.label.username=User name 

It gives enough hints to the Translator about what it actually is, which could result in correct translation...

like image 117
Paweł Dyda Avatar answered Oct 16 '22 10:10

Paweł Dyda