LRM Android Support
Naming Conventions
Android resources files are named strings.xml
. Typically, an Android application will have one strings.xml
base file located under a directory named values
. The corresponding translated resource bundle will be also named strings.xml
and located under a directory named values-fr
(for French) at the same level as values
.
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 since <default-locale>en</default-locale>
) 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> <!-- parser-type not needed since .xml is a standard LRM extension that maps to the xml parser type --> <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-extension> <!-- parser-type is required because .myext is not a standard LRM extension --> <extension>myext</extension> <!-- There is no need to copy over a parser.xml because the default xml parser is for Android files --> <parser-type>xml</parser-type> <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-file>**/string.xml</include-dir-file> <include-dir-file>**/*.myext</include-dir-file> </includes> <excludes> <exclude-dir-file>**/source/bin/**</exclude-dir-file> </excludes> </dirset> </lrmconf>