I18NDefinitions

Revision as of 12:07, 5 November 2009 by Admin (Talk | contribs)


Definitions and explanations of what is i18n and what is l10n and the difference between them


The focus of these definitions are related to their use in the development of NetBeans.

Information from Ken Frank, Tools I18N Quality and Testing Team

contact kfrank@netbeans.org for more information or to provide comments on this document



Definitions of I18N

Here are just a couple of definitions and clarifications of the term I18N. There are others that can be found in various books or web pages. As mentioned above, the focus of these definitions is in the context of NetBeans.

I18N (i18n) or internationalization, is the coding and implementation in the actual product code and in the layout and structure of the product files and product itself, that enables the following to happen:

  • When the product is translated by translation team, that the translated messages and documents will be shown in the language of the user of the localized product when that user runs the localized product under their own locale -- its the i18n infrastructure and and coding and layout that enables this to happen.
  • When any user of the product, even if it is not translated for any language, runs in another locale and uses characters of the language of that locale as part of using the product, such as in creating applications or files -- that the product handles this properly -- that is, that the characters show correctly and are processed, read and written correctly --- this is another aspect of i18n
  • That the features or functionality of the product that might show time, date and number and currency separators or signs, show as per the locale the user is in when they run the product in a given locale.


Another definition of Internationalization (I18N) is that its the process of designing and coding a product so it can perform properly when it is translated and then when product is used in different locales.




Other information about i18n development:

   * i18n implementation is done by the same developers who develop all other parts of the product. This makes sense since they know the product code and design very well and since i18n is just another part of the product (although for sure an important part like other aspects of the product like ui design and layout, functionality, performance, etc)
   * i18n development implements the NetBeans policies about how translated files are to be named and where they live in localized jars and where those jars and other localized files live in an installed product, so that when someone is running a translated version of NetBeans in a locale for which it has been translated, the user will see the correct translated messages and documentation.
   * i18n coding and implementation is done in the same time frame as the rest of the product because:
  • there really is just one product - the localized files are not a product, but only translated files installed into the basic product.
  • since the parts of i18n that are not related to enabling translations to work ok are needed to be complete for even the first release of a product fcs version, then that i18n work needs to happen during the same development/testing cycle as the rest of the product version (some of these non "enabling translations to be found ok" parts relate to encoding handling, input of other languages, showing time and date per locale, etc
  • since even the translations need to be ready within a short time after the release of the fcs of the English version of the product, the part of i18n related to "enabling translations to be found ok" needs to be implemented also during the same development and test cycle as the rest of the product.
  • (there really is just one product - the localized files are not a product, but only translated files installed into the basic product.)



   * i18n does not entail actual translation of the product files or documents.
   * I18N does not require one to know another language to be able to do the implementation or testing since it does not involve needing to use an actual translated netbeans, and in fact, i18n work needs to and can happen before a translated netbeans for a given product release can be done.
   * I18N testing is testing the i18n implementation that has been done.
   * I18N testing is not L10N (translation) testing and does not test a translated product for the validity or correctness of the translations.  Likewise, L10N testing is not I18N testing.  L10N testing is the testing to verify the validity and correctness of the translations.




L10N (translation, localization)

One definition of l10n ( localization) is that it is the translation of product messages, labels and documents so that a user who runs the product in the locale for which it has been translated, will be able to see those messages and labels in their own language.


   * As defined above, Localization (L10N) refers to the process of translating messages and documentation.
  • The localized files are then built into the regular product and are installed at their proper location in that same product.
  • Localization/translation does not involve changes to the source code of the product.


   * L10N  (translation) is done by separate teams and community members, since l10n does requires people to know the language they are translating for, however those doing the just the translations do not necessarily need to know how to use or to use the product.
   * L10N testing is testing a localized product to make sure the localization process (mostly translation) has been done correctly.
  • L10N testing is the testing to verify the validity and correctness of the translations.
  • It is not I18N testing.
Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo