LRM Properties Support

From Lingoport Wiki
Revision as of 16:09, 22 September 2016 by Olibouban (talk | contribs) (Created page with "== Naming Conventions == Properties files are used by applications written in many programming languages, such as Java. Java for instance has a full fledged standard infrastru...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Naming Conventions

Properties files are used by applications written in many programming languages, such as Java. Java for instance has a full fledged standard infrastructure to handle resources (strings mostly) from properties files. Typically, an application will have many .properties base files located under different directories. The base file typically does not have a locale suffix as it serves as the default locale when resources are missing in another locale. See https://docs.oracle.com/javase/tutorial/essential/environment/properties.html .

For a base file named resources.properties, the corresponding French file will be in the same directory and the locale will be added to the file name: resources_fr.properties.

For optimum use of LRM, we strongly recommend that base files be named uniquely. If you have two files for instance, do not name them both resources.properties. Name them something different, like resources.properties and messages.properties

For example, for a few locales, the directory structure and file names would be:

 res/values/strings.xml
 res/values-de/strings.xml
 res/values-es/strings.xml
 res/values-fr/strings.xml
 res/values-it/strings.xml
 res/values-ja/strings.xml
 res/values-ko/strings.xml
 res/values-pt/strings.xml
 res/values-ru/strings.xml
 res/values-zh/strings.xml

The bold file is the base file (U.S. English in this instance) to be translated into German, Spanish, French, Italian, Japanese, Korean, Portugese, Russian, and Chinese.

Example strings.xml File For Android

 <?xml version="1.0" encoding="utf-8"?>
 <resources xmlns:tools="http://schemas.android.com/tools">
  <string name="menu_find">Find</string>
  <string name="menu_historical_search">Search Historical Records</string>
  <string name="person_activity_title">Person</string>
  <string name="label_person_tree_button">View This Tree</string>
  <string name="label_person_other">Other</string>
  <string name="label_person_name">Name</string>
  <string name="label_person_details">Details</string>
  <string name="fact_detail_sub_header_reason">Reason This Information Is Correct</string>
  <string name="fact_detail_footer_modified">Modified</string>
  <string name="fact_detail_send_email_chooser">Choose an Email Client</string>
  <string name="fact_detail_send_email_error_no_client">Email app not found</string>
  <string name="fact_name_label">Name</string>
 </resources>

Example of Project Definition File

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<lrmconf>
 <model-version>3.0.18</model-version>
 <project-name>mobile-android</project-name>
 <project-desc>Lingoport mobile-android project</project-desc>
 <group-name>Lingoport</group-name>
 <top-level-dir>/var/lib/jenkins/jobs/Lingoport.mobile-android/workspace</top-level-dir>
 <detect-errors>
   <missed-trans-error>0</missed-trans-error>
   <parameter-mismatch-error>1</parameter-mismatch-error>
 </detect-errors>
 <track-back-locale/>
 <pseudo-locale/>
 <target-locales>
   <locale>de</locale>
   <locale>es</locale>
   <locale>fr</locale>
   <locale>ja</locale>
   <locale>zh</locale>
 </target-locales>
 <default-locale>en</default-locale>
 <resource-extensions>
   <resource-extension>
     <extension>xml</extension>
     <file-name-pattern/>
     <use-pattern-on-dflt-locale>0</use-pattern-on-dflt-locale>
     <file-location-pattern>*-l-c-v</file-location-pattern>
     <use-location-pattern-on-dflt-locale>0</use-location-pattern-on-dflt-locale>
     <base-file-encoding>UTF-8</base-file-encoding>
     <localized-file-encoding>UTF-8</localized-file-encoding>
     <parameter-regex-pattern><![CDATA[%d|%s|%d+$s|%d+$d|%\{w+\}]]></parameter-regex-pattern>
   </resource-extension>
 </resource-extensions>
  <dirset>
   <includes>
     <include-dir>**/**</include-dir>
   </includes>
   <excludes>
     <exclude-dir-file>**/.sonar-ide.properties</exclude-dir-file>
     <exclude-dir-file>**/acceptance-test.properties</exclude-dir-file>
     <exclude-dir-file>**/application.properties</exclude-dir-file>
     <exclude-dir-file>**/catalina.properties</exclude-dir-file>
     <exclude-dir-file>**/config.properties</exclude-dir-file>
     <exclude-dir-file>**/grinder.properties</exclude-dir-file>
     <exclude-dir-file>**/integration.properties</exclude-dir-file>
     <exclude-dir-file>**/logging.properties</exclude-dir-file>
     <exclude-dir-file>**/values-eo/**</exclude-dir-file>
     <exclude-dir-file>**/values-xx/**</exclude-dir-file>
     <exclude-dir-file>**/LRMScans/**</exclude-dir-file>
     <exclude-dir-file>**/GlobalyzerScans/**</exclude-dir-file>
   </excludes>
 </dirset>
</lrmconf>