Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Papyrus/Papyrus Developer Guide/Externalize Strings In Java"

(Created page with "====in java code==== #messages/string visible by the user must be in a Messages.properties file, located in a java package called '''your.plugin.name.messages''' #Exception me...")
 
Line 28: Line 28:
  
  
[[File:ExternalizationMenu.png]]
+
[[File:ExternalizationMenu.png |1000px]]
  
 
*step 2: give a nice name to the string
 
*step 2: give a nice name to the string
  
  
[[File:giveAniceName.png]]
+
[[File:giveAniceName.png |1000px]]
  
 
*step3: configure the output package
 
*step3: configure the output package
  
  
[[File:configureOutput.png]]
+
[[File:configureOutput.png |1000px]]
  
 
*step 4: the result
 
*step 4: the result
  
  
[[File:resultExternalizationt.png]]
+
[[File:resultExternalizationt.png |1000px]]
  
 
=====How to process to manage strings in your plugin.xml file?=====
 
=====How to process to manage strings in your plugin.xml file?=====

Revision as of 05:32, 25 January 2018

in java code

  1. messages/string visible by the user must be in a Messages.properties file, located in a java package called your.plugin.name.messages
  2. Exception message must not be translated, even if they are visible by the final user. We need to avoid to receive bugs with exception message in another language than english.
  3. String hidden for the final user, must have the tag //$NON-NLS-index. (index starting to 1, with no space between the // and the $.
  4. Each string displayed to the user, must be written in one string:

Bad code:

String fileName = "aFileName";

String message = "The file " + fileName + " can't be found";

This message is splitted in 2 strings. It is not good, because the translator doesn't know what he is translating and the order of the words can change from english to another language, so we recommand:

Good code:

String fileName = "aFileName";

String message = NLS.bind("The file {0} can't be found", fileName);

In this message, there is only one string to translate, the translator, can move the {0} to the good location in the new language. The method String#format should work fine too.

How to process to manage strings in your java file?
  • step 1: Open the Externalization menu: Left Click -> Source-> Externalize Strings...:


ExternalizationMenu.png

  • step 2: give a nice name to the string


GiveAniceName.png

  • step3: configure the output package


ConfigureOutput.png

  • step 4: the result


ResultExternalizationt.png

How to process to manage strings in your plugin.xml file?

In plugin.xml, you should do the same thing, from the Overview tab. The output folder shouldn't changed:


PluginExternalization.png

How to define if a string must be externalized creating a new extension point?

Set the field translatable to true:


PluginTranslatable.png

Back to the top