Difference between revisions of "LRM strings Support"

From Lingoport Wiki
Jump to: navigation, search
(Example Project Definition File)
(Example Project Definition File)
Line 11: Line 11:
 
"tDx-oc-GBE.text" = "The username or \"password\" was incorrect.";
 
"tDx-oc-GBE.text" = "The username or \"password\" was incorrect.";
 
</pre>
 
</pre>
  +
  +
== ''strings'' parser type ==
  +
=== valid IOS .strings syntax ===
  +
Files that use the ''strings'' parser are expected to have valid IOS .strings syntax
  +
  +
=== .strings uses the ''strings'' parser type===
  +
When defining a project containing LRM Standard .strings resource files, there is no need to define a ''&lt;parser-type&gt;'' as the ''strings'' parser will always be used.
  +
  +
=== unique file extension needs to define ''strings'' parser type ===
  +
If a unique file extension is a valid .strings file, then the ''&lt;parser-type&gt;'' should be ''strings'' in the project definition file.
   
 
== Example Project Definition File ==
 
== Example Project Definition File ==

Revision as of 16:19, 1 September 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.";

strings parser type

valid IOS .strings syntax

Files that use the strings parser are expected to have valid IOS .strings syntax

.strings uses the strings parser type

When defining a project containing LRM Standard .strings resource files, there is no need to define a <parser-type> as the strings parser will always be used.

unique file extension needs to define strings parser type

If a unique file extension is a valid .strings file, then the <parser-type> should be strings in the project definition file.

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>0</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>
     <!-- parser-type not needed since .strings is a standard LRM extension that maps to the strings parser type -->
     <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>
     <!-- parser-type is required because .myext is not a standard LRM 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.