Translation

This topic explains how to define the NLS translation of vocabulary elements that can be displayed in different user experiences including native or web clients. Because vocabulary elements may be displayed in various user-experience including Native or Web clients, they have to translated.

This page discusses:

In the RDF File

To do so, use the <rdfs:label xml:lang="en">[label]</rdfs:label> construct.

Using External Files

Note: The use of external files for translation purposes is possible on-premises only.

In general, for a given vocabulary, named "XXX", the NLS translation of pertaining elements must be delivered in a separate file:

  • For Web-client, in a file named PLMVocabulary_XXX.properties and located in PLMVocabulary\CNext\resources\m1msgcatalog.
  • For Rich-client, in a file named PLMVocabulary_XXX.CATNls and located in PLMVocabularyNLS\CNext\resources\msgcatalog.
  • If any, customized NLS definition for a DS vocabulary can be delivered through a file with the same name but appended with suffix custom, i.e. PLMVocabulary_XXX_Custom.properties (and .CATNls).

Based on the files naming conventions quoted above, the search of NLS entries occurs in the following order:

  • First, PLMVocabulary_XXX_Custom
  • Then, PLMVocabulary_XXX.

For a Predicate
Enter <predicate.predicate_name>=<predicate_nls_string>. Note that predicate. is a keyword.

Example in a .properties file: project=Collaborative Space.

For Predicate Enumerated Values
For a predicate of a XXX vocabulary, it may be useful to define a set of possible values along with a range axiom. In this case, the NLS translation of these values can be defined:
  • In the vocabulary NLS file, PLMVocabulary_XXX.properties (and .CATNls) under the format: <predicate_name>.<val1>=<val1_nls_string>.

    Example in a file_fr.properties:

    country=Pays
    country.UnitedStates=Etats Unis
    country.Germany=Allemagne

  • By referencing existing NLS files where the NLS translation for the values is already defined. This will prevent redundant definitions and hence inconsistencies.

To reuse existing NLS definition for a vocabulary named "XXX", the NLS referenced file must be declared in a file named:

  • PLMVocabulary_XXX_Resources.properties for a web-client
  • PLMVocabulary_XXX_Resources.CATRsc for a rich-client

For a given predicate foo, the declaration must indicate the alternate resource files (for example alt_file1), and optionally the prefix for NLS entries of the values: foo.valuesNlsFile=alt_file1[.<prefix1>], alt_file2[.<prefix2>],....

The file called alt_file1.properties (or CATNls) contains the following entries: <prefix1>.val1=<val1_nls_string>.

Example

For values of the policy predicate, you may want to reuse an existing NLS definition, and hence, deliver (for a Web-client) the file named PLMVocabulary_ds6w_Resources.properties declared as follows:

policy.valuesNlsFile=emxFrameworkStringResource.emxFramework.Policy

In the emxFrameworkStringResource.properties file, NLS entries for policies look as follows:

emxFramework.Policy.VPLM_SMB_Definition=Global Design Definition