Difference between revisions of "LRM strings Support"

From Lingoport Wiki
Jump to: navigation, search
(Example Project Definition File)
Line 19: Line 19:
 
<project-name>DemoIOS</project-name>
 
<project-name>DemoIOS</project-name>
 
<project-desc>This is a sample LRM Project definition file, configured for IOS resource files</project-desc>
 
<project-desc>This is a sample LRM Project definition file, configured for IOS resource files</project-desc>
<!--group-name contains either the company name or the group name. -->
 
 
<group-name>acme</group-name>
 
<group-name>acme</group-name>
<!-- Example, linux -->
 
<!--<top-level-dir>/var/lib/job/workspace/acme/source</top-level-dir>-->
 
 
<top-level-dir>C:\acme\source</top-level-dir>
 
<top-level-dir>C:\acme\source</top-level-dir>
 
<detect-errors>
 
<detect-errors>
<!--If set to '0' (false), then the 'missed translation' error will not be triggered-->
 
<!--if the non-base file has the same text as the base file.-->
 
<!--Missed Translation error will still occur if the base file has a different key or if-->
 
<!--the base file has changed since it was last prepped.-->
 
 
<missed-trans-error>1</missed-trans-error>
 
<missed-trans-error>1</missed-trans-error>
 
<parameter-mismatch-error>1</parameter-mismatch-error>
 
<parameter-mismatch-error>1</parameter-mismatch-error>
 
</detect-errors>
 
</detect-errors>
<!--If you wish to create Track Back resource files, enter the Track Back locale such as `br`-->
 
<!--The track back locale is mutually exclusive of the base (default) locale, target locales and pseudo-locale-->
 
 
<track-back-locale>br</track-back-locale>
 
<track-back-locale>br</track-back-locale>
<!--If you wish to pseudo-localized your files enter a pseudo-locale-->
 
<!--The pseudo-locale is mutually exclusive of the base (default) locale and target locales-->
 
 
<pseudo-locale>eo</pseudo-locale>
 
<pseudo-locale>eo</pseudo-locale>
<!--Target locales are the locales where the corresponding resource files will be translated. -->
 
<!--These target locales are mutually exclusive of the base (default) locale-->
 
 
<target-locales>
 
<target-locales>
 
<locale>es_MX</locale>
 
<locale>es_MX</locale>
Line 45: Line 32:
 
<locale>fr_FR</locale>
 
<locale>fr_FR</locale>
 
</target-locales>
 
</target-locales>
<!--Default locale is the base locale. This is the locale where corresponding resource files will not be translated.-->
 
<!--The base (default) locale is mutually exclusive of the target locales-->
 
 
<default-locale>en_US</default-locale>
 
<default-locale>en_US</default-locale>
 
<resource-extensions>
 
<resource-extensions>
<!--The file-name-pattern and/or file-location-pattern indicate the pattern of the-->
 
<!--localized file names (file-name-pattern) and the localized folder names (file-location-pattern).-->
 
<!--If the names contain the locale then a pattern of 1,c and v will be used.-->
 
<!--If the names contain the Locale ID then LCID will be used.-->
 
<!--Example pattern using locale-->
 
<!-- If your localized resource files use their locale in their names then the locale pattern will-->
 
<!-- be used where l stands for language; c for country; v for variant; and the characters between-->
 
<!-- are used as the separator characters.-->
 
<!-- <file-name-pattern>*_l_c_v</file-name-pattern>-->
 
<!--Example pattern using LCID (locale ID)-->
 
<!-- If your resource files are under a folder named 'resources' with an LCID suffix separated by an-->
 
<!-- underscore, then the pattern would be:-->
 
<!-- <file-location-pattern>resources_LCID</file-location-pattern>-->
 
 
<resource-extension>
 
<resource-extension>
<extension>strings</extension>
+
'''<extension>strings</extension>'''
<file-name-pattern/>
+
'''<file-name-pattern/>'''
  +
'''<use-pattern-on-dflt-locale>1</use-pattern-on-dflt-locale>'''
<!--If the base resource files use the file-name-pattern in their name -->
 
  +
'''<file-location-pattern>l_c_v</file-location-pattern>'''
<!--then set use-pattern-on-dflt-locale to 1, if not then set to 0-->
 
<use-pattern-on-dflt-locale>1</use-pattern-on-dflt-locale>
+
'''<use-location-pattern-on-dflt-locale>1</use-location-pattern-on-dflt-locale>'''
<file-location-pattern>l_c_v</file-location-pattern>
+
'''<base-file-encoding>UTF-8</base-file-encoding>'''
  +
'''<localized-file-encoding>UTF-8</localized-file-encoding>'''
<!--If the base resource files use the file-location-pattern in their name -->
 
  +
'''<parameter-regex-pattern><![CDATA[(%([dsf]|(\d+\$[dsf@])|(\.\d+f)|@))|%\{\w+\}]]></parameter-regex-pattern>'''
<!--then set use-location-pattern-on-dflt-locale to 1, if not then set to 0-->
 
  +
</resource-extension>
<use-location-pattern-on-dflt-locale>1</use-location-pattern-on-dflt-locale>
 
  +
<resource-extension>
<base-file-encoding>UTF-8</base-file-encoding>
 
  +
'''<extension>''myext''</extension>'''
<localized-file-encoding>UTF-8</localized-file-encoding>
 
  +
'''''<parser-type>strings</parser-type>'''''
<!--Default pattern for strings is '![CDATA[(%([dsf]|(\d+\$[dsf@])|(\.\d+f)|@))|%\{\w+\}]]'-->
 
  +
'''<file-name-pattern/>'''
<parameter-regex-pattern><![CDATA[(%([dsf]|(\d+\$[dsf@])|(\.\d+f)|@))|%\{\w+\}]]></parameter-regex-pattern>
 
  +
'''<use-pattern-on-dflt-locale>1</use-pattern-on-dflt-locale>'''
  +
'''<file-location-pattern>l_c_v</file-location-pattern>'''
  +
'''<use-location-pattern-on-dflt-locale>1</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[(%([dsf]|(\d+\$[dsf@])|(\.\d+f)|@))|%\{\w+\}]]></parameter-regex-pattern>'''
 
</resource-extension>
 
</resource-extension>
 
</resource-extensions>
 
</resource-extensions>
 
<dirset>
 
<dirset>
  +
<includes>
<!--Define the search patterns to include and/or exclude. (Uses Apache Ant pattern search).-->
 
  +
<include-dir-file>**/src/**</include-dir-file>
<!--Examples: -->
 
  +
</includes>
<!-- A. '**/*.properties' matches all .properties files/dirs in a directory tree.-->
 
  +
<excludes>
<!-- B. 'test/a??.resx' matches all files/dirs which start with an 'a', -->
 
  +
<exclude-dir-file>**/src/test/**</exclude-dir-file>
<!-- then two more characters and then '.resx', in a directory called test.-->
 
  +
</excludes>
<!-- C. '**' matches everything in a directory tree. -->
 
<!-- D. '**/source/**/XYZ*' matches all files/dirs which start with 'XYZ'-->
 
<!-- and where there is a parent directory called source (e.g. 'abc/source/def/ghi/XYZ123'). -->
 
<includes>
 
<!--Directories to include in the search for base resource files -->
 
<!--Examples: -->
 
<!-- <include-dir>**/source/**</include-dir>-->
 
<include-dir>**/**</include-dir>
 
</includes>
 
<excludes>
 
<!--Directories or files to exclude in the search -->
 
<!--Examples: -->
 
<!-- <exclude-dir-file>**/source/bin/**</exclude-dir-file> -->
 
<!-- <exclude-dir-file>**/fileToIgnore.*</exclude-dir-file> -->
 
</excludes>
 
 
</dirset>
 
</dirset>
  +
 
</lrmconf>
 
</lrmconf>
   

Revision as of 20:52, 31 August 2017

Example .strings file


/* Class = "IBUILabel"; text = "or"; ObjectID = "DTz-P6-Y3D"; */
"DTz-P6-Y3D.text" = "or";

/* Class = "IBUITextField"; placeholder = "Username"; ObjectID = "FiC-Ph-wbo"; */
"FiC-Ph-wbo.placeholder" = "Username";

/* Class = "IBUILabel"; text = "The username or password was incorrect."; ObjectID = "tDx-oc-GBE"; */
"tDx-oc-GBE.text" = "The username or \"password\" was incorrect.";

Example Project Definition File

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<lrmconf>
 <model-version>2.0.11</model-version>
 <project-name>DemoIOS</project-name>
 <project-desc>This is a sample LRM Project definition file, configured for IOS resource files</project-desc>
 <group-name>acme</group-name>
 <top-level-dir>C:\acme\source</top-level-dir>
 <detect-errors>
   <missed-trans-error>1</missed-trans-error>
   <parameter-mismatch-error>1</parameter-mismatch-error>
 </detect-errors>
 <track-back-locale>br</track-back-locale>
 <pseudo-locale>eo</pseudo-locale>
 <target-locales>
   <locale>es_MX</locale>
   <locale>fr_CA</locale>
   <locale>fr_FR</locale>
 </target-locales>
 <default-locale>en_US</default-locale>
 <resource-extensions>
   <resource-extension>
     <extension>strings</extension>
     <file-name-pattern/>
     <use-pattern-on-dflt-locale>1</use-pattern-on-dflt-locale>
     <file-location-pattern>l_c_v</file-location-pattern>
     <use-location-pattern-on-dflt-locale>1</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[(%([dsf]|(\d+\$[dsf@])|(\.\d+f)|@))|%\{\w+\}]]></parameter-regex-pattern>
   </resource-extension>
   <resource-extension>
     <extension>myext</extension>
     <parser-type>strings</parser-type>
     <file-name-pattern/>
     <use-pattern-on-dflt-locale>1</use-pattern-on-dflt-locale>
     <file-location-pattern>l_c_v</file-location-pattern>
     <use-location-pattern-on-dflt-locale>1</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[(%([dsf]|(\d+\$[dsf@])|(\.\d+f)|@))|%\{\w+\}]]></parameter-regex-pattern>
   </resource-extension>
 </resource-extensions>
 <dirset>
    <includes>
       <include-dir-file>**/src/**</include-dir-file>
    </includes>
    <excludes>
      <exclude-dir-file>**/src/test/**</exclude-dir-file>
    </excludes>
 </dirset>
</lrmconf>

Why don't Bad iOS Comments Trigger Errors?

If an IOS file has a comment that is not ended properly, no error is thrown. For example, if a comment doesn't have an ending */, such as /*Bad comment no errors are found.

This is due to the formatting of iOS. This type of bad comments would typically be created on the base files.

Note key/value pairs are not effected. Noticed when LRM_RESEND tag was added, the info in the Changed Key values included LRM_RESEND.