### NLS Editor

The NLS Editor allows to edit the different properties files containing the translated text entries. It is a efficient way to edit all the property files for multilingual texts in one go.

#### Accessing the NLS Editor

Search for the `*.nls` files in the `shared` projects. Select Open With ▸ NLS Editor in the context menu

#### The NLS Editor

The screenshot below shows the opened NLS editor. In the first column the `key` values are shown that are used in accessing translations through `TEXTS.get("key")`. The second columns holds the default translations followed by columns holding the translations for other translated languages.

#### Action Buttons

Actions on the top right corner:

| Refresh NLS Project | Reload the content of the editor.
| Show NLS entry usage | For each row, search in the Java code where the NLS Key is used. Results are displayed in the first column.
| New entry…​ | Opens the New Text Entry Wizard
| New language…​ | Opens the Add a Language Wizard
| Import…​ | Import the NLS entries of an external file
| Export…​ | Export the NLS entries to an external file

Import and Export requires additional components.

Hide inherited rows checkbox

On the top of each column, the text fields allow you to filter the entries in the table. With the Reset button on the right you will empty those filters.

The entries in the table can be directly edited by pressing F2 or double-clicking into a text cell.

On each row it is possible to call following context menu:

| Modify Entry | Opens the New Text Entry Wizard
| Find references to 'Xxx' | Search in the Java code where the NLS Key is used.
| Remove Xxx | Delete the NLS Entry from the files

#### Default Mapping to Properties Files

The mapping between the properties files is registered in the "Text Provider Service" class. Per default the files follow this pattern: `<your application>.shared/src/main/resources/<identifier of the project>/texts/Texts<language>.properties`

where:

- `<identifier of the project>` is a chain of folders following the same convention as the Java source files with the package name. For example the `org.eclipse.contacts.shared` project uses `org/eclipse/scout/contacts/shared` as path.

- `<language>` is an identifier of the language and the country. Some possible file names:

  - `Texts.properties` is the default language

  - `Texts_de.properties` is for german

  - `Texts_fr_BE` will be for french in Belgium

Go back to the Scout Tooling.

Do you want to improve this document? Have a look at the sources on GitHub.