Difference between revisions of "Transform Framework"

From Lingoport Wiki
Jump to: navigation, search
(Created page with "LRM supports a number of file types out of the box (See Supported Resource Bundles). However, other file types may represent user facing strings to be translated. In that...")
 
(Use the transform framework)
Line 8: Line 8:
 
The transform framework needs three scripts in order to fit in with LRM. The three scripts need to be under the <code>$JENKINS_HOME/lingoport/transform/<nameoftransform>/</code> directory.
 
The transform framework needs three scripts in order to fit in with LRM. The three scripts need to be under the <code>$JENKINS_HOME/lingoport/transform/<nameoftransform>/</code> directory.
   
The <nameoftransform> must be indicative of the type of transformation to apply. For instance, it could be <code>loc</code> to handle .loc files (see below). In that case, three scripts will need to be under <code>/var/lib/jenkins/lingoport/transform/loc</code> for a typical installation where the <code>jenkins</code> user is under <code>/var/lib/jenkins</code>
+
The <nameoftransform> must be indicative of the type of transformation to apply. For instance, it could be <code>loc</code> to handle .loc files (see below). In that case, three scripts will need to be under <code>/var/lib/jenkins/lingoport/transform/loc</code> for a typical installation where the <code>jenkins</code> user is under <code>/var/lib/jenkins</code>.
  +
  +
The three scripts to write are:
  +
* transform_from_repo.sh: How to transform the files from the repository so they fit into an LRM supported file type
  +
* transform_to_repo.sh: How to transform translated/pseudo-localized files in an LRM supported file type into the repository file type
  +
* transform_files_list.sh: How to transform the file names from the LRM supported file naming into the repository file naming
  +
  +
When those scripts are written, the transformation is defined in the config directory of the on-boarded project with the <code>transform.properties</code>. This file contains one properties, 'transform'. For instance, if <code>loc</code> is the directory with those three scripts under <code>$JENKINS_HOME/lingoport/transform/</code> for a <PROJECT> under a <GROUP>, the file will be:
  +
<code>$JENKINS_HOME/Lingoport_Data/L10nStreamlining/<GROUP>/projects/<PROJECT>/config/transform.properties</code>
  +
<pre>
  +
transform=loc
  +
</pre>
   
   

Revision as of 15:31, 24 April 2019

LRM supports a number of file types out of the box (See Supported Resource Bundles). However, other file types may represent user facing strings to be translated. In that case, some customization is required to on-board those projects. The bash script transform framework facilitates the customization.

Analyze the file types

If the file types fall into a category not supported by LRM out of the box, the first thing to do is to see what is the closest file types supported by LRM.

Use the transform framework

The transform framework needs three scripts in order to fit in with LRM. The three scripts need to be under the $JENKINS_HOME/lingoport/transform/<nameoftransform>/ directory.

The <nameoftransform> must be indicative of the type of transformation to apply. For instance, it could be loc to handle .loc files (see below). In that case, three scripts will need to be under /var/lib/jenkins/lingoport/transform/loc for a typical installation where the jenkins user is under /var/lib/jenkins.

The three scripts to write are:

  • transform_from_repo.sh: How to transform the files from the repository so they fit into an LRM supported file type
  • transform_to_repo.sh: How to transform translated/pseudo-localized files in an LRM supported file type into the repository file type
  • transform_files_list.sh: How to transform the file names from the LRM supported file naming into the repository file naming

When those scripts are written, the transformation is defined in the config directory of the on-boarded project with the transform.properties. This file contains one properties, 'transform'. For instance, if loc is the directory with those three scripts under $JENKINS_HOME/lingoport/transform/ for a <PROJECT> under a <GROUP>, the file will be: $JENKINS_HOME/Lingoport_Data/L10nStreamlining/<GROUP>/projects/<PROJECT>/config/transform.properties

transform=loc


Example: .loc files

Say the repository contains resource files like the following hmUiMessage.loc file:

;hmUiMessage.loc
;*********************************************************************
#include hmUiMain.loc
;*********************************************************************
message1	The first message
message2	The second message
message3	The third message
message4	The fourth message

The file may not be in ASCII or UTF-8 format; For instance this file is in UTF-16BE

A supported file format that is close to this one is properties.

==