<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://okapiframework.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Amake</id>
	<title>Okapi Framework - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://okapiframework.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Amake"/>
	<link rel="alternate" type="text/html" href="http://okapiframework.org/wiki/index.php/Special:Contributions/Amake"/>
	<updated>2026-04-15T03:26:33Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>http://okapiframework.org/wiki/index.php?title=Okapi_Filters_Plugin_for_OmegaT&amp;diff=662</id>
		<title>Okapi Filters Plugin for OmegaT</title>
		<link rel="alternate" type="text/html" href="http://okapiframework.org/wiki/index.php?title=Okapi_Filters_Plugin_for_OmegaT&amp;diff=662"/>
		<updated>2017-04-20T11:44:23Z</updated>

		<summary type="html">&lt;p&gt;Amake: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
[http://www.omegat.org/ OmegaT] is a free and open-source translation tool that offers support for many file formats. It also provides a plugin mechanism to use addition filters.&lt;br /&gt;
&lt;br /&gt;
Several of the [[Filters|Okapi filters]] have been packaged into a plugin that works with OmegaT's plugin interface. This allows you to use the filters seamlessly directly from OmegaT.&lt;br /&gt;
&lt;br /&gt;
==Filters Included==&lt;br /&gt;
&lt;br /&gt;
Currently support for the following formats are included:&lt;br /&gt;
&lt;br /&gt;
* Doxygen-commented files (using the [[Doxygen Filter]])&lt;br /&gt;
* HTML files (using the [[HTML Filter]])&lt;br /&gt;
* InDesign IDML files (using the [[IDML Filter]])&lt;br /&gt;
* JSON files (using the [[JSON Filter]])&lt;br /&gt;
* Qt TS files (using the [[TS Filter]])&lt;br /&gt;
* Trados TagEditor TTX files (using the [[TTX Filter]])&lt;br /&gt;
* Transifex projects (using the [[Transifex Filter]])&lt;br /&gt;
* Wordfast Pro TXML files (using the [[TXML Filter]])&lt;br /&gt;
* XLIFF 1.2 documents (using the [[XLIFF Filter]])&lt;br /&gt;
* XLIFF 2 documents ([[#Support for XLIFF 2|see more information]])&lt;br /&gt;
* XML files (using the [[XML Filter]])&lt;br /&gt;
* XML files (using the [[XML Stream Filter]])&lt;br /&gt;
* YAML files (using the [[YAML Filter]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{WarningBox|Note that the TTX filter is set by default to auto-detect pre-segmented files.&lt;br /&gt;
* If no segments are detected, the filter extract all text by creating its own TTX segmentation.&lt;br /&gt;
* If one or more segments are detected '''only the existing segments are passed to OmegaT'''. So if a file is only half segmented you will not get the un-segmented text in OmegaT. In those cases you can:&lt;br /&gt;
** define your own filter settings file for TTX&lt;br /&gt;
** use [[Rainbow]] to create an OmegaT project where the TTX filter is forced to extract the non-segmented text.}}&lt;br /&gt;
&lt;br /&gt;
Note that several of the formats supported by the plug-in are also supported by OmegaT native filters. You should select which filter to use by enable/disable it in the &amp;lt;cite&amp;gt;File Filters&amp;lt;/cite&amp;gt; dialog. If several filters are set for a given format, the first one in the list is used by default.&lt;br /&gt;
&lt;br /&gt;
==Filter Parameters==&lt;br /&gt;
&lt;br /&gt;
Starting in m24 you can specify a custom filter parameters file for each of the filter that supports options.&lt;br /&gt;
&lt;br /&gt;
Use OmegaT's &amp;lt;cite&amp;gt;Options&amp;lt;/cite&amp;gt; button in the &amp;lt;cite&amp;gt;File Filters&amp;lt;/cite&amp;gt; dialog box to select whether you want to use the default settings, or a custom filter parameters file (&amp;lt;code&amp;gt;.fprm&amp;lt;/code&amp;gt; extension) where you have stored your options.&lt;br /&gt;
&lt;br /&gt;
You cannot create or edit the filter parameters file from OmegaT, but you can use [[Rainbow]] to do this (menu &amp;lt;cite&amp;gt;Tools&amp;lt;/cite&amp;gt; &amp;gt; &amp;lt;cite&amp;gt;Filter Configurations&amp;lt;/cite&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
{{WarningBox|&lt;br /&gt;
* All filter parameters files you use in OmegaT must be in the same directory.&lt;br /&gt;
* Make sure the parameters files have the extension &amp;lt;code&amp;gt;.fprm&amp;lt;/code&amp;gt; and start with the filter identifier. For example: &amp;lt;code&amp;gt;okf_idml@myConfig.fprm&amp;lt;/code&amp;gt;, not just &amp;lt;code&amp;gt;myConfig.fprm&amp;lt;/code&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
* Starting with m24, make sure you are using Java 1.7 or above (OmegaT 3.6 and earlier can run on lower versions of Java).&lt;br /&gt;
* Make sure you have [http://www.omegat.org/en/downloads.html OmegaT 2.2.3 or above].&lt;br /&gt;
** OmegaT 4.0.0+ requires version 1.0-m30+ of this plugin.&lt;br /&gt;
&lt;br /&gt;
==Download and Installation==&lt;br /&gt;
&lt;br /&gt;
Download the file &amp;lt;code&amp;gt;okapiFiltersForOmegaT-&amp;lt;version&amp;gt;-dist.zip&amp;lt;/code&amp;gt; from: &lt;br /&gt;
&lt;br /&gt;
* '''https://bintray.com/okapi/Distribution/OmegaT_Plugin (for the stable release)'''&lt;br /&gt;
&lt;br /&gt;
* or http://okapiframework.org/snapshots (for the development snapshot)&lt;br /&gt;
&lt;br /&gt;
To install the plugin:&lt;br /&gt;
&lt;br /&gt;
* Locate your OmegaT &amp;lt;code&amp;gt;plugins&amp;lt;/code&amp;gt; directory (see your platform below).&lt;br /&gt;
* Copy the plugin's JAR file to the &amp;lt;code&amp;gt;plugins&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
* Restart OmegaT.&lt;br /&gt;
* Some file formats (like XLIFF, HTML, etc.) have already native OmegaT filters. OmegaT uses the first enabled filter available. So if you want, for example, OmegaT to use the Okapi XLIFF filter rather than the native OmegaT XLIFF filter, make sure to disable (uncheck) the OmegaT native filter in the &amp;lt;cite&amp;gt;File Filters&amp;lt;/cite&amp;gt; dialog (menu: &amp;lt;cite&amp;gt;Options &amp;gt; File Filters&amp;lt;/cite&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
On Windows you can install the plugin to the &amp;lt;code&amp;gt;plugins&amp;lt;/code&amp;gt; directory where OmegaT is installed (e.g. &amp;lt;code&amp;gt;C:\Program Files\OmegaT&amp;lt;/code&amp;gt;) or to your Application Data directory:&lt;br /&gt;
* Windows XP: &amp;lt;code&amp;gt;C:\Documents and Settings\&amp;amp;lt;username&amp;amp;gt;\Application Data\OmegaT&amp;lt;/code&amp;gt;&lt;br /&gt;
* Windows Vista or later: &amp;lt;code&amp;gt;C:\Users\&amp;amp;lt;username&amp;amp;gt;\AppData\Roaming\OmegaT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
On OS X you are recommended to install the plugin to &amp;lt;code&amp;gt;/Users/&amp;amp;lt;username&amp;amp;gt;/Library/Preferences/OmegaT/plugins&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;Library&amp;lt;/code&amp;gt; folder in your home directory may be hidden; to access it from the Finder, select &amp;lt;cite&amp;gt;Go &amp;gt; Go to Folder&amp;lt;/cite&amp;gt; from the main menu and enter &amp;lt;code&amp;gt;~/Library/Preferences/OmegaT/plugins&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Okapi requires Java 1.7. The Mac-specific version of OmegaT 3.1.9 or later is bundled with Java 1.8, so you don't need to do anything. If you are running a &amp;quot;without JRE&amp;quot; version or an older version, you will have to install Java 1.7 or later and ensure that OmegaT is launched with it.&lt;br /&gt;
&lt;br /&gt;
===Linux &amp;amp; BSD===&lt;br /&gt;
&lt;br /&gt;
On Linux and BSD you can install the plugin to the &amp;lt;code&amp;gt;plugins&amp;lt;/code&amp;gt; directory where OmegaT is installed (alongside &amp;lt;code&amp;gt;OmegaT.jar&amp;lt;/code&amp;gt;) or to &amp;lt;code&amp;gt;~/.omegat/plugins&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Segmentation==&lt;br /&gt;
&lt;br /&gt;
For the file formats that represent segments, such as TTX, be aware that the segmentation created by OmegaT is not carried back into the translated document. For example, an unsegmented paragraph of two sentences may be translated as two separate segments in OmegaT (and produce two TM entries), but it is merged back as a single paragraph (between segment markers because that is the only way to store translation) in the translated TTX file.&lt;br /&gt;
&lt;br /&gt;
You can use the [[Segmentation Step]] in [[Rainbow]], or the [[Tikal - Miscellaneous Commands#Segment_Files|Segmentation command of Tikal]] to create a pre-segmented TTX file before opening it in OmegaT.&lt;br /&gt;
&lt;br /&gt;
Note that any line-break in the source text is considered a segment break by Trados TagEditor, even when it is within an existing segment. Opening a segment that includes a line-break with TagEditor results in a segment withing segment.&lt;br /&gt;
&lt;br /&gt;
==Pre-Translation==&lt;br /&gt;
&lt;br /&gt;
TTX documents may contain segments that are already translated. The translation of such segments is loaded as the current translation in OmegaT.&lt;br /&gt;
&lt;br /&gt;
Note that the target language of the OmegaT project must match the target language specified in the TTX file. The target language of a TTX file is defined in the attribute &amp;lt;code&amp;gt;TargetLanguage&amp;lt;/code&amp;gt; of the &amp;lt;code&amp;gt;&amp;amp;lt;UserSettings&amp;gt;&amp;lt;/code&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
==Testing a Filter==&lt;br /&gt;
&lt;br /&gt;
Some file formats are difficult to extract and merge. If you want to be sure that the translated file merges back properly and is a valid file. One step toward verifying this is to re-extract the merged file and compare the first extraction with the second.&lt;br /&gt;
&lt;br /&gt;
* Open the original file in OmegaT&lt;br /&gt;
* Save it.&lt;br /&gt;
* Go to the &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; directory and copy the file you have saved some place else.&lt;br /&gt;
* Go back to OmegaT and open the file you have just copied.&lt;br /&gt;
* Both files should have the exact same source content. If they do not it is likely that the saved file was not generated properly. You should [http://code.google.com/p/okapi/issues/list fill a bug report] to make sure the problem is corrected.&lt;br /&gt;
&lt;br /&gt;
==Support for XLIFF 2==&lt;br /&gt;
&lt;br /&gt;
{{NoteBox|This feature is available starting from the version 0.25 and is beta.}}&lt;br /&gt;
&lt;br /&gt;
* Only basic core support is implemented&lt;br /&gt;
* The &amp;lt;code&amp;gt;translate='no'&amp;lt;/code&amp;gt; attribute in unit or annotations is not supported yet.&lt;br /&gt;
* The &amp;lt;code&amp;gt;canResegment='no'&amp;lt;/code&amp;gt; flags are not supported yet.&lt;br /&gt;
* Annotations are stripped out&lt;br /&gt;
* No module is supported yet&lt;br /&gt;
* Existing target is set as OmegaT &amp;quot;fuzzy match&amp;quot; if its status is &amp;quot;initial&amp;quot; or &amp;quot;translated&amp;quot;, not fuzzy for &amp;quot;reviewed&amp;quot; and &amp;quot;final&amp;quot;.&lt;br /&gt;
* Inline codes are mapped to &amp;lt;code&amp;gt;&amp;amp;lt;gN&amp;gt;&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;&amp;amp;lt;/gN&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;lt;xN/&amp;gt;&amp;lt;/code&amp;gt; for now.&lt;br /&gt;
* Notes are not displayed in OmegaT.&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
You can find examples of valid XLIFF 2 documents [http://tools.oasis-open.org/version-control/browse/wsvn/xliff/trunk/xliff-20/test-suite/valid/?op=dl&amp;amp;rev=0&amp;amp;isdir=1 in the SVN repository of the XLIFF TC]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
'''With this plugin installed I get an error when opening my OmegaT project'''&lt;br /&gt;
&lt;br /&gt;
If the error is &amp;lt;code&amp;gt;java.lang.NoSuchMethodError: org.omegat.filters2.FilterContext.getProjectProperties()Lorg/omegat/core/data/ProjectProperties;&amp;lt;/code&amp;gt; then you are using an older version of this plugin with a newer version of OmegaT (see [[#Requirements]]). Update your plugin.&lt;br /&gt;
&lt;br /&gt;
[[Category:Filters]]&lt;/div&gt;</summary>
		<author><name>Amake</name></author>
	</entry>
	<entry>
		<id>http://okapiframework.org/wiki/index.php?title=Okapi_Filters_Plugin_for_OmegaT&amp;diff=661</id>
		<title>Okapi Filters Plugin for OmegaT</title>
		<link rel="alternate" type="text/html" href="http://okapiframework.org/wiki/index.php?title=Okapi_Filters_Plugin_for_OmegaT&amp;diff=661"/>
		<updated>2017-04-20T11:34:43Z</updated>

		<summary type="html">&lt;p&gt;Amake: /* Download and Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
[http://www.omegat.org/ OmegaT] is a free and open-source translation tool that offers support for many file formats. It also provides a plugin mechanism to use addition filters.&lt;br /&gt;
&lt;br /&gt;
Several of the [[Filters|Okapi filters]] have been packaged into a plugin that works with OmegaT's plugin interface. This allows you to use the filters seamlessly directly from OmegaT.&lt;br /&gt;
&lt;br /&gt;
==Filters Included==&lt;br /&gt;
&lt;br /&gt;
Currently support for the following formats are included:&lt;br /&gt;
&lt;br /&gt;
* Doxygen-commented files (using the [[Doxygen Filter]])&lt;br /&gt;
* HTML files (using the [[HTML Filter]])&lt;br /&gt;
* InDesign IDML files (using the [[IDML Filter]])&lt;br /&gt;
* JSON files (using the [[JSON Filter]])&lt;br /&gt;
* Qt TS files (using the [[TS Filter]])&lt;br /&gt;
* Trados TagEditor TTX files (using the [[TTX Filter]])&lt;br /&gt;
* Transifex projects (using the [[Transifex Filter]])&lt;br /&gt;
* Wordfast Pro TXML files (using the [[TXML Filter]])&lt;br /&gt;
* XLIFF 1.2 documents (using the [[XLIFF Filter]])&lt;br /&gt;
* XLIFF 2 documents ([[#Support for XLIFF 2|see more information]])&lt;br /&gt;
* XML files (using the [[XML Filter]])&lt;br /&gt;
* XML files (using the [[XML Stream Filter]])&lt;br /&gt;
* YAML files (using the [[YAML Filter]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{WarningBox|Note that the TTX filter is set by default to auto-detect pre-segmented files.&lt;br /&gt;
* If no segments are detected, the filter extract all text by creating its own TTX segmentation.&lt;br /&gt;
* If one or more segments are detected '''only the existing segments are passed to OmegaT'''. So if a file is only half segmented you will not get the un-segmented text in OmegaT. In those cases you can:&lt;br /&gt;
** define your own filter settings file for TTX&lt;br /&gt;
** use [[Rainbow]] to create an OmegaT project where the TTX filter is forced to extract the non-segmented text.}}&lt;br /&gt;
&lt;br /&gt;
Note that several of the formats supported by the plug-in are also supported by OmegaT native filters. You should select which filter to use by enable/disable it in the &amp;lt;cite&amp;gt;File Filters&amp;lt;/cite&amp;gt; dialog. If several filters are set for a given format, the first one in the list is used by default.&lt;br /&gt;
&lt;br /&gt;
==Filter Parameters==&lt;br /&gt;
&lt;br /&gt;
Starting in m24 you can specify a custom filter parameters file for each of the filter that supports options.&lt;br /&gt;
&lt;br /&gt;
Use OmegaT's &amp;lt;cite&amp;gt;Options&amp;lt;/cite&amp;gt; button in the &amp;lt;cite&amp;gt;File Filters&amp;lt;/cite&amp;gt; dialog box to select whether you want to use the default settings, or a custom filter parameters file (&amp;lt;code&amp;gt;.fprm&amp;lt;/code&amp;gt; extension) where you have stored your options.&lt;br /&gt;
&lt;br /&gt;
You cannot create or edit the filter parameters file from OmegaT, but you can use [[Rainbow]] to do this (menu &amp;lt;cite&amp;gt;Tools&amp;lt;/cite&amp;gt; &amp;gt; &amp;lt;cite&amp;gt;Filter Configurations&amp;lt;/cite&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
{{WarningBox|&lt;br /&gt;
* All filter parameters files you use in OmegaT must be in the same directory.&lt;br /&gt;
* Make sure the parameters files have the extension &amp;lt;code&amp;gt;.fprm&amp;lt;/code&amp;gt; and start with the filter identifier. For example: &amp;lt;code&amp;gt;okf_idml@myConfig.fprm&amp;lt;/code&amp;gt;, not just &amp;lt;code&amp;gt;myConfig.fprm&amp;lt;/code&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
==Download and Installation==&lt;br /&gt;
&lt;br /&gt;
Download the file &amp;lt;code&amp;gt;okapiFiltersForOmegaT-&amp;lt;version&amp;gt;-dist.zip&amp;lt;/code&amp;gt; from: &lt;br /&gt;
&lt;br /&gt;
* '''https://bintray.com/okapi/Distribution/OmegaT_Plugin (for the stable release)'''&lt;br /&gt;
&lt;br /&gt;
* or http://okapiframework.org/snapshots (for the development snapshot)&lt;br /&gt;
&lt;br /&gt;
To install the plugin:&lt;br /&gt;
&lt;br /&gt;
* Starting with m24, make sure you are using Java 1.7 or above (OmegaT can run on lower versions of Java).&lt;br /&gt;
* Make sure you have [http://www.omegat.org/en/downloads.html OmegaT 2.2.3 or above].&lt;br /&gt;
** Note that OmegaT 4.0.0 or later requires version 1.0-m30 or later of this plugin.&lt;br /&gt;
* Locate your OmegaT &amp;lt;code&amp;gt;plugins&amp;lt;/code&amp;gt; directory (see your platform below).&lt;br /&gt;
* Copy the plugin's JAR file to the &amp;lt;code&amp;gt;plugins&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
* Restart OmegaT.&lt;br /&gt;
* Some file formats (like XLIFF, HTML, etc.) have already native OmegaT filters. OmegaT uses the first enabled filter available. So if you want, for example, OmegaT to use the Okapi XLIFF filter rather than the native OmegaT XLIFF filter, make sure to disable (uncheck) the OmegaT native filter in the &amp;lt;cite&amp;gt;File Filters&amp;lt;/cite&amp;gt; dialog (menu: &amp;lt;cite&amp;gt;Options &amp;gt; File Filters&amp;lt;/cite&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
On Windows you can install the plugin to the &amp;lt;code&amp;gt;plugins&amp;lt;/code&amp;gt; directory where OmegaT is installed (e.g. &amp;lt;code&amp;gt;C:\Program Files\OmegaT&amp;lt;/code&amp;gt;) or to your Application Data directory:&lt;br /&gt;
* Windows XP: &amp;lt;code&amp;gt;C:\Documents and Settings\&amp;amp;lt;username&amp;amp;gt;\Application Data\OmegaT&amp;lt;/code&amp;gt;&lt;br /&gt;
* Windows Vista or later: &amp;lt;code&amp;gt;C:\Users\&amp;amp;lt;username&amp;amp;gt;\AppData\Roaming\OmegaT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
On OS X you are recommended to install the plugin to &amp;lt;code&amp;gt;/Users/&amp;amp;lt;username&amp;amp;gt;/Library/Preferences/OmegaT/plugins&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;Library&amp;lt;/code&amp;gt; folder in your home directory may be hidden; to access it from the Finder, select &amp;lt;cite&amp;gt;Go &amp;gt; Go to Folder&amp;lt;/cite&amp;gt; from the main menu and enter &amp;lt;code&amp;gt;~/Library/Preferences/OmegaT/plugins&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Okapi requires Java 1.7. The Mac-specific version of OmegaT 3.1.9 or later is bundled with Java 1.8, so you don't need to do anything. If you are running a &amp;quot;without JRE&amp;quot; version or an older version, you will have to install Java 1.7 or later and ensure that OmegaT is launched with it.&lt;br /&gt;
&lt;br /&gt;
===Linux &amp;amp; BSD===&lt;br /&gt;
&lt;br /&gt;
On Linux and BSD you can install the plugin to the &amp;lt;code&amp;gt;plugins&amp;lt;/code&amp;gt; directory where OmegaT is installed (alongside &amp;lt;code&amp;gt;OmegaT.jar&amp;lt;/code&amp;gt;) or to &amp;lt;code&amp;gt;~/.omegat/plugins&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Segmentation==&lt;br /&gt;
&lt;br /&gt;
For the file formats that represent segments, such as TTX, be aware that the segmentation created by OmegaT is not carried back into the translated document. For example, an unsegmented paragraph of two sentences may be translated as two separate segments in OmegaT (and produce two TM entries), but it is merged back as a single paragraph (between segment markers because that is the only way to store translation) in the translated TTX file.&lt;br /&gt;
&lt;br /&gt;
You can use the [[Segmentation Step]] in [[Rainbow]], or the [[Tikal - Miscellaneous Commands#Segment_Files|Segmentation command of Tikal]] to create a pre-segmented TTX file before opening it in OmegaT.&lt;br /&gt;
&lt;br /&gt;
Note that any line-break in the source text is considered a segment break by Trados TagEditor, even when it is within an existing segment. Opening a segment that includes a line-break with TagEditor results in a segment withing segment.&lt;br /&gt;
&lt;br /&gt;
==Pre-Translation==&lt;br /&gt;
&lt;br /&gt;
TTX documents may contain segments that are already translated. The translation of such segments is loaded as the current translation in OmegaT.&lt;br /&gt;
&lt;br /&gt;
Note that the target language of the OmegaT project must match the target language specified in the TTX file. The target language of a TTX file is defined in the attribute &amp;lt;code&amp;gt;TargetLanguage&amp;lt;/code&amp;gt; of the &amp;lt;code&amp;gt;&amp;amp;lt;UserSettings&amp;gt;&amp;lt;/code&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
==Testing a Filter==&lt;br /&gt;
&lt;br /&gt;
Some file formats are difficult to extract and merge. If you want to be sure that the translated file merges back properly and is a valid file. One step toward verifying this is to re-extract the merged file and compare the first extraction with the second.&lt;br /&gt;
&lt;br /&gt;
* Open the original file in OmegaT&lt;br /&gt;
* Save it.&lt;br /&gt;
* Go to the &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; directory and copy the file you have saved some place else.&lt;br /&gt;
* Go back to OmegaT and open the file you have just copied.&lt;br /&gt;
* Both files should have the exact same source content. If they do not it is likely that the saved file was not generated properly. You should [http://code.google.com/p/okapi/issues/list fill a bug report] to make sure the problem is corrected.&lt;br /&gt;
&lt;br /&gt;
==Support for XLIFF 2==&lt;br /&gt;
&lt;br /&gt;
{{NoteBox|This feature is available starting from the version 0.25 and is beta.}}&lt;br /&gt;
&lt;br /&gt;
* Only basic core support is implemented&lt;br /&gt;
* The &amp;lt;code&amp;gt;translate='no'&amp;lt;/code&amp;gt; attribute in unit or annotations is not supported yet.&lt;br /&gt;
* The &amp;lt;code&amp;gt;canResegment='no'&amp;lt;/code&amp;gt; flags are not supported yet.&lt;br /&gt;
* Annotations are stripped out&lt;br /&gt;
* No module is supported yet&lt;br /&gt;
* Existing target is set as OmegaT &amp;quot;fuzzy match&amp;quot; if its status is &amp;quot;initial&amp;quot; or &amp;quot;translated&amp;quot;, not fuzzy for &amp;quot;reviewed&amp;quot; and &amp;quot;final&amp;quot;.&lt;br /&gt;
* Inline codes are mapped to &amp;lt;code&amp;gt;&amp;amp;lt;gN&amp;gt;&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;&amp;amp;lt;/gN&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;lt;xN/&amp;gt;&amp;lt;/code&amp;gt; for now.&lt;br /&gt;
* Notes are not displayed in OmegaT.&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
You can find examples of valid XLIFF 2 documents [http://tools.oasis-open.org/version-control/browse/wsvn/xliff/trunk/xliff-20/test-suite/valid/?op=dl&amp;amp;rev=0&amp;amp;isdir=1 in the SVN repository of the XLIFF TC]&lt;br /&gt;
&lt;br /&gt;
[[Category:Filters]]&lt;/div&gt;</summary>
		<author><name>Amake</name></author>
	</entry>
	<entry>
		<id>http://okapiframework.org/wiki/index.php?title=HTML_Filter&amp;diff=641</id>
		<title>HTML Filter</title>
		<link rel="alternate" type="text/html" href="http://okapiframework.org/wiki/index.php?title=HTML_Filter&amp;diff=641"/>
		<updated>2016-11-29T04:28:51Z</updated>

		<summary type="html">&lt;p&gt;Amake: /* Inline Code Finder */ YAML block literal should not have escapes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Filters Header}}&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
The HTML Filter is an Okapi component that implements the IFilter interface for HTML and XHTML documents.&lt;br /&gt;
&lt;br /&gt;
==Processing Details==&lt;br /&gt;
&lt;br /&gt;
===Input Encoding===&lt;br /&gt;
&lt;br /&gt;
The filter decides which encoding to use for the input document using the following logic:&lt;br /&gt;
&lt;br /&gt;
* If the document has an encoding declaration it is used. &lt;br /&gt;
* Otherwise, the input encoding used is the default encoding that was specified when setting the filter options. &lt;br /&gt;
&lt;br /&gt;
===Output Encoding===&lt;br /&gt;
&lt;br /&gt;
If the output encoding is UTF-8:&lt;br /&gt;
&lt;br /&gt;
* If the input encoding was also UTF-8, a Byte-Order-Mark is used for the output document only if one was detected in the input document. &lt;br /&gt;
* If the input encoding was not UTF-8, no Byte-Order-Mark is used in the output document. &lt;br /&gt;
&lt;br /&gt;
If the input file has no declared encoding, the filter tries to add one in output. A &amp;lt;code&amp;gt;&amp;amp;lt;meta&amp;gt;&amp;lt;/code&amp;gt; tag for HTML files, or a &amp;lt;code&amp;gt;&amp;amp;lt;meta /&amp;gt;&amp;lt;/code&amp;gt; tag for XHTML files. The potential addition is done only if there is a &amp;lt;code&amp;gt;&amp;amp;lt;head&amp;gt;&amp;lt;/code&amp;gt; element in the file.&lt;br /&gt;
&lt;br /&gt;
===Line-Breaks===&lt;br /&gt;
&lt;br /&gt;
The type of line-breaks of the output is the same as the one of the original input.&lt;br /&gt;
&lt;br /&gt;
===Entities===&lt;br /&gt;
&lt;br /&gt;
Character and numeric entities are converted to Unicode. Entities defined in a DTD or schema are passed through without change.&lt;br /&gt;
&lt;br /&gt;
Note that text entity declarations can be processed by the [[DTD Filter]].&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
&lt;br /&gt;
===Built-in Configuration===&lt;br /&gt;
&lt;br /&gt;
The HTML filter does not currently have a user interface to modify its configuration files. By default the HTML filter uses a minimalist configuration file that does not create structural groupings. For example, a table group or list group will never be created.&lt;br /&gt;
&lt;br /&gt;
There is a predefined maximalist configuration (&amp;lt;code&amp;gt;okf_html-wellFormed&amp;lt;/code&amp;gt;) that can be used if structural groupings are needed. The caveat is that any structural tags that map to groups must be well formed, that is, they must have a start and end tag. Otherwise the filter return an error.&lt;br /&gt;
&lt;br /&gt;
===HTML Configuration Syntax===&lt;br /&gt;
&lt;br /&gt;
For the truly brave, you can create your own HTML configuration files. These configurations are written in [http://www.yaml.org/ YAML].  See the &amp;lt;code&amp;gt;[https://bitbucket.org/okapiframework/okapi/src/master/okapi/filters/html/src/main/resources/net/sf/okapi/filters/html/wellformedConfiguration.yml wellformedConfiguration.yml]&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;[https://bitbucket.org/okapiframework/okapi/src/master/okapi/filters/html/src/main/resources/net/sf/okapi/filters/html/nonwellformedConfiguration.yml nonwellformedConfiguration.yml]&amp;lt;/code&amp;gt; for examples. &lt;br /&gt;
&lt;br /&gt;
HTML tags are associated with rules. These rules are used by the filter to process the input document.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
* All attributes and elements names should be in '''lowercase''' in the configuration file, regardless of their casing in the document.&lt;br /&gt;
* Element or attributes with a prefix should be declared with the prefix (and between single quotes) in the configuration (e.g. &amp;lt;code&amp;gt;'xml:lang'&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
==== Configuring Element Rules ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;elements&amp;lt;/code&amp;gt; section of the configuration consists of a set of key-value pairs.  Each key is an element name, and the value is the rules for that element, represented as another set of key-value pairs.  An element declaration should include one or more of the available element rules:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ruleTypes&amp;lt;/code&amp;gt;&lt;br /&gt;
| Basic description of how the filter treats this tag.  See [[#Rule Types]].&lt;br /&gt;
|-  &lt;br /&gt;
| &amp;lt;code&amp;gt;idAttributes&amp;lt;/code&amp;gt;&lt;br /&gt;
| A list containing attributes which may provide the segment ID for text contained within this element. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;conditions&amp;lt;/code&amp;gt;&lt;br /&gt;
| A condition that further restricts this rule.  For example, to indicate that the element should only be handled if it contains an attribute with a certain value.  See [[#Condition Syntax]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;translatableAttributes&amp;lt;/code&amp;gt;&lt;br /&gt;
| Contains information about translatable attributes in this element. See [[#Configuring Translatable Attributes]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;elementType&amp;lt;/code&amp;gt;&lt;br /&gt;
| Indicates the corresponding XLIFF 1.2 &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; value for this element.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;writableLocalizationAttributes&amp;lt;/code&amp;gt;&lt;br /&gt;
| Specifies attributes which are writable, but not translatable. (TODO) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Rule Types ====&lt;br /&gt;
The rules types are the following:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;INLINE&amp;lt;/code&amp;gt;&lt;br /&gt;
| A tag which may occur inside a text run. For example &amp;lt;code&amp;gt;&amp;amp;lt;b&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;lt;i&amp;gt;&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;&amp;amp;lt;u&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;GROUP&amp;lt;/code&amp;gt;&lt;br /&gt;
| Defines a group of elements that are structurally bound. For example &amp;lt;code&amp;gt;&amp;amp;lt;table&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;lt;div&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EXCLUDE&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prevents extraction of any text until the end tag of the same element is found. For example, if the content between a &amp;lt;code&amp;gt;&amp;amp;lt;script&amp;gt;&amp;lt;/code&amp;gt; element should not be extracted then define &amp;lt;code&amp;gt;&amp;amp;lt;script&amp;gt;&amp;lt;/code&amp;gt; as &amp;lt;code&amp;gt;EXCLUDE&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;INCLUDE&amp;lt;/code&amp;gt;&lt;br /&gt;
| Overrides any current exclusions. This allows exceptions for children of &amp;lt;code&amp;gt;EXCLUDE&amp;lt;/code&amp;gt;d elements.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TEXTUNIT&amp;lt;/code&amp;gt;&lt;br /&gt;
| A tag that starts a complex text unit. Examples include &amp;lt;code&amp;gt;&amp;amp;lt;p&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;lt;title&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;lt;h1&amp;gt;&amp;lt;/code&amp;gt;. Complex text units carry their surrounding tags along with any extracted text.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PRESERVE_WHITESPACE&amp;lt;/code&amp;gt;&lt;br /&gt;
| A tag that must preserve its white spaces as-is. For example &amp;lt;code&amp;gt;&amp;amp;lt;pre&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ATTRIBUTES_ONLY&amp;lt;/code&amp;gt;&lt;br /&gt;
| A tag that has localizable or translatable attributes but does not have translatable content. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ATTRIBUTE_TRANS&amp;lt;/code&amp;gt;&lt;br /&gt;
| A translatable attribute. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ATTRIBUTE_WRITABLE&amp;lt;/code&amp;gt;&lt;br /&gt;
| A writable or modifiable attribute, but not translatable.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ATTRIBUTE_READONLY&amp;lt;/code&amp;gt;&lt;br /&gt;
| A read-only attribute, extracted but that cannot be modified. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Configuring Translatable Attributes ====&lt;br /&gt;
Translatable attributes may be specified in two ways, depending on the level of complexity needed.  &lt;br /&gt;
&lt;br /&gt;
If all the specified attributes should always be translated, they can be exposed as a simple list.  For example, the definition for the &amp;lt;code&amp;gt;&amp;amp;lt;area&amp;amp;gt;&amp;lt;/code&amp;gt; element specifies that &amp;lt;code&amp;gt;accesskey&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;area&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt; attributes are translatable:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;  area:&lt;br /&gt;
    ruleTypes: [ATTRIBUTES_ONLY]&lt;br /&gt;
    translatableAttributes: [accesskey, area, alt]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, if additional restrictions on translatable attributes are present, the &amp;lt;code&amp;gt;translatableAttributes&amp;lt;/code&amp;gt; rule may be specified as a set of key-value pairs, with each key being a translatable attribute and each value being an (optional) list of conditions, using the [[#Condition Syntax]].  For example, this snippet defines the handling of the &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;amp;gt;&amp;lt;/code&amp;gt; element in the built-in configurations:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
  input:&lt;br /&gt;
    ruleTypes: [INLINE]&lt;br /&gt;
    translatableAttributes:&lt;br /&gt;
      alt: [type, NOT_EQUALS, [file, hidden, image, password]]&lt;br /&gt;
      value: [type, NOT_EQUALS, [file, hidden, image, password]]&lt;br /&gt;
      accesskey: [type, NOT_EQUALS, [file, hidden, image, password]]&lt;br /&gt;
      title: [type, NOT_EQUALS, [file, hidden, image, password]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies that there are four attributes (&amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;accesskey&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;) that are translatable.  The translatability of each of these attributes is conditional on the &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;amp;gt;&amp;lt;/code&amp;gt; element not having particular &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; values.&lt;br /&gt;
&lt;br /&gt;
==== Condition Syntax ====&lt;br /&gt;
&lt;br /&gt;
Rule conditions are expressed as a list of the form&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[attribute, operation, value]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;attribute&amp;lt;/code&amp;gt;&lt;br /&gt;
| The name of the attribute which the condition applies to.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;operation&amp;lt;/code&amp;gt;&lt;br /&gt;
| Available operations are &amp;lt;code&amp;gt;EQUALS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NOT_EQUALS&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;MATCHES&amp;lt;/code&amp;gt;.  &amp;lt;code&amp;gt;EQUALS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NOT_EQUALS&amp;lt;/code&amp;gt; test for (case-insensitive) string matches, while &amp;lt;code&amp;gt;MATCHES&amp;lt;/code&amp;gt; uses a regular expression.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;&lt;br /&gt;
| The value of the attribute to be compared using the operation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Inline Code Finder===&lt;br /&gt;
&lt;br /&gt;
You can define a set of regular expressions to capture span of extracted text that should be treated as inline codes. For example, some element content may have variables that need to be protected from modification and treated as codes. Use the &amp;lt;code&amp;gt;useCodeFinder&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;codeFinderRules&amp;lt;/code&amp;gt; options for this.&lt;br /&gt;
&lt;br /&gt;
 useCodeFinder: true&lt;br /&gt;
 codeFinderRules: &amp;quot;#v1\ncount.i=1\nrule0=\\bVAR\\d\\b&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Note that the regular expression is &amp;quot;&amp;lt;code&amp;gt;\bVAR\d\b&amp;lt;/code&amp;gt;&amp;quot; but you must escape the backslash in the YAML notation as well.&lt;br /&gt;
&lt;br /&gt;
You can also use this alternate syntax, which is slightly easier to read:&lt;br /&gt;
&lt;br /&gt;
 useCodeFinder: true&lt;br /&gt;
 codeFinderRules: |-&lt;br /&gt;
    #v1&lt;br /&gt;
    count.i=1&lt;br /&gt;
    rule0=\bVAR\d\b&lt;br /&gt;
&lt;br /&gt;
The options above will set the text &amp;quot;&amp;lt;code&amp;gt;VAR1&amp;lt;/code&amp;gt;&amp;quot; as in-line code in the following HTML:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;p&amp;gt;Number of files = VAR1&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To facilitate the creation of code finder rules [[Rainbow - Code Finder Editor|Rainbow provides the Code Finder Editor]].&lt;br /&gt;
&lt;br /&gt;
===Character Entity References in Output===&lt;br /&gt;
&lt;br /&gt;
By default extended characters are not using character entity references in output (e.g. &amp;lt;code&amp;gt;&amp;amp;amp;copy;&amp;lt;/code&amp;gt; for the character '&amp;amp;copy').&lt;br /&gt;
&lt;br /&gt;
You can change this by specifying the &amp;lt;code&amp;gt;escapeCharacters&amp;lt;/code&amp;gt; rule with a string of all the characters you wish to see output as character entity reference. Any specified character that is not extended or has no HTML character entity defined is processed like a normal character.&lt;br /&gt;
&lt;br /&gt;
For example, given the following rule:&lt;br /&gt;
&lt;br /&gt;
 escapeCharacters: &amp;quot;© €µÆĄ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The output of &amp;lt;code&amp;gt;&amp;amp;lt;p&amp;gt;© €µÆĄ&amp;amp;lt;/p&amp;gt;&amp;lt;/code&amp;gt; (assuming the output encoding is UTF-8) will be:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;p&amp;gt;&amp;amp;amp;copy;&amp;amp;amp;nbsp;&amp;amp;amp;euro;&amp;amp;amp;micro;&amp;amp;amp;AElig;Ą&amp;amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Only the character &amp;lt;code&amp;gt;Ą&amp;lt;/code&amp;gt; (U+0104) is not represented as an entity reference because there is no HTML character entity defined for it.&lt;br /&gt;
&lt;br /&gt;
===Inline CDATA===&lt;br /&gt;
&lt;br /&gt;
For formats that use CDATA in ways that undesirably break the flow of text, you can set the filter to treat CDATA as if it was an inline element like so:&lt;br /&gt;
&lt;br /&gt;
  inlineCdata: true&lt;br /&gt;
&lt;br /&gt;
Then markup such as &amp;lt;code&amp;gt;&amp;amp;lt;p&amp;gt;Text with &amp;amp;lt;![CDATA[inline]]&amp;gt; CDATA&amp;amp;lt;/p&amp;gt;&amp;lt;/code&amp;gt; will be extracted as if &amp;lt;code&amp;gt;&amp;amp;lt;![CDATA[&amp;lt;/code&amp;gt; was a regular inline opening tag and &amp;lt;code&amp;gt;]]&amp;gt;&amp;lt;/code&amp;gt; was a regular inline closing tag.&lt;br /&gt;
&lt;br /&gt;
===Excluding By Default===&lt;br /&gt;
&lt;br /&gt;
Normally, there is an implicit &amp;quot;default rule&amp;quot; to include elements.  If the filter configuration contained no tag information at all, the default behavior of the filter would be to expose all PCDATA for translation.  Sometimes it is useful to change this behavior in order to make your configuration more concise.  This can be done by setting the &amp;lt;code&amp;gt;exclude_by_default&amp;lt;/code&amp;gt; option in your config.&lt;br /&gt;
&lt;br /&gt;
For example, if you wished to have a custom configuration that exposed the translation of the &amp;lt;code&amp;gt;&amp;amp;lt;title&amp;amp;gt;&amp;lt;/code&amp;gt; element but nothing else.  You could specify this as&lt;br /&gt;
&lt;br /&gt;
 exclude_by_default: true&lt;br /&gt;
 // .... other configuration&lt;br /&gt;
 elements:&lt;br /&gt;
    title:&lt;br /&gt;
      ruleTypes: [TEXTUNIT]&lt;br /&gt;
&lt;br /&gt;
===Quote Mode===&lt;br /&gt;
Escaping of quote and apostrophe (single quote) characters can be changed by adding these lines to the config file:&lt;br /&gt;
&lt;br /&gt;
 quoteModeDefined: true&lt;br /&gt;
 quoteMode: 3&lt;br /&gt;
&lt;br /&gt;
'''Current quote modes:'''&lt;br /&gt;
&lt;br /&gt;
* Do not escape single or double quotes: '''UNESCAPED = 0'''&lt;br /&gt;
* Escape single and double quotes to a named entity: '''ALL = 1'''&lt;br /&gt;
* Escape double quotes to a named entity, and single quotes to a numeric entity: '''NUMERIC_SINGLE_QUOTES = 2'''&lt;br /&gt;
* Escape double quotes only: '''DOUBLE_QUOTES_ONLY = 3'''&lt;br /&gt;
&lt;br /&gt;
==Limitations==&lt;br /&gt;
&lt;br /&gt;
* In the current version of the filter the content of &amp;lt;code&amp;gt;&amp;amp;lt;style&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;lt;script&amp;gt;&amp;lt;/code&amp;gt; elements is not extracted.&lt;br /&gt;
* Tags from server-side scripts such as PHP, ASPX, JSP, etc. are not formally supported and will be treated as non-translatable.&lt;br /&gt;
&lt;br /&gt;
[[Category:Filters]]&lt;/div&gt;</summary>
		<author><name>Amake</name></author>
	</entry>
	<entry>
		<id>http://okapiframework.org/wiki/index.php?title=HTML_Filter&amp;diff=66</id>
		<title>HTML Filter</title>
		<link rel="alternate" type="text/html" href="http://okapiframework.org/wiki/index.php?title=HTML_Filter&amp;diff=66"/>
		<updated>2016-03-26T01:27:53Z</updated>

		<summary type="html">&lt;p&gt;Amake: /* HTML Configuration Syntax */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Filters Header}}&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
The HTML Filter is an Okapi component that implements the IFilter interface for HTML and XHTML documents.&lt;br /&gt;
&lt;br /&gt;
==Processing Details==&lt;br /&gt;
&lt;br /&gt;
===Input Encoding===&lt;br /&gt;
&lt;br /&gt;
The filter decides which encoding to use for the input document using the following logic:&lt;br /&gt;
&lt;br /&gt;
* If the document has an encoding declaration it is used. &lt;br /&gt;
* Otherwise, the input encoding used is the default encoding that was specified when setting the filter options. &lt;br /&gt;
&lt;br /&gt;
===Output Encoding===&lt;br /&gt;
&lt;br /&gt;
If the output encoding is UTF-8:&lt;br /&gt;
&lt;br /&gt;
* If the input encoding was also UTF-8, a Byte-Order-Mark is used for the output document only if one was detected in the input document. &lt;br /&gt;
* If the input encoding was not UTF-8, no Byte-Order-Mark is used in the output document. &lt;br /&gt;
&lt;br /&gt;
If the input file has no declared encoding, the filter tries to add one in output. A &amp;lt;code&amp;gt;&amp;amp;lt;meta&amp;gt;&amp;lt;/code&amp;gt; tag for HTML files, or a &amp;lt;code&amp;gt;&amp;amp;lt;meta /&amp;gt;&amp;lt;/code&amp;gt; tag for XHTML files. The potential addition is done only if there is a &amp;lt;code&amp;gt;&amp;amp;lt;head&amp;gt;&amp;lt;/code&amp;gt; element in the file.&lt;br /&gt;
&lt;br /&gt;
===Line-Breaks===&lt;br /&gt;
&lt;br /&gt;
The type of line-breaks of the output is the same as the one of the original input.&lt;br /&gt;
&lt;br /&gt;
===Entities===&lt;br /&gt;
&lt;br /&gt;
Character and numeric entities are converted to Unicode. Entities defined in a DTD or schema are passed through without change.&lt;br /&gt;
&lt;br /&gt;
Note that text entity declarations can be processed by the [[DTD Filter]].&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
&lt;br /&gt;
===Built-in Configuration===&lt;br /&gt;
&lt;br /&gt;
The HTML filter does not currently have a user interface to modify its configuration files. By default the HTML filter uses a minimalist configuration file that does not create structural groupings. For example, a table group or list group will never be created.&lt;br /&gt;
&lt;br /&gt;
There is a predefined maximalist configuration (&amp;lt;code&amp;gt;okf_html-wellFormed&amp;lt;/code&amp;gt;) that can be used if structural groupings are needed. The caveat is that any structural tags that map to groups must be well formed, that is, they must have a start and end tag. Otherwise the filter return an error.&lt;br /&gt;
&lt;br /&gt;
===HTML Configuration Syntax===&lt;br /&gt;
&lt;br /&gt;
For the truly brave, you can create your own HTML configuration files. These configurations are written in [http://www.yaml.org/ YAML].  See the &amp;lt;code&amp;gt;[https://bitbucket.org/okapiframework/okapi/src/master/okapi/filters/html/src/main/resources/net/sf/okapi/filters/html/wellformedConfiguration.yml wellformedConfiguration.yml]&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;[https://bitbucket.org/okapiframework/okapi/src/master/okapi/filters/html/src/main/resources/net/sf/okapi/filters/html/nonwellformedConfiguration.yml nonwellformedConfiguration.yml]&amp;lt;/code&amp;gt; for examples. &lt;br /&gt;
&lt;br /&gt;
HTML tags are associated with rules. These rules are used by the filter to process the input document.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
* All attributes and elements names should be in '''lowercase''' in the configuration file, regardless of their casing in the document.&lt;br /&gt;
* Element or attributes with a prefix should be declared with the prefix (and between single quotes) in the configuration (e.g. &amp;lt;code&amp;gt;'xml:lang'&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
==== Configuring Element Rules ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;elements&amp;lt;/code&amp;gt; section of the configuration consists of a set of key-value pairs.  Each key is an element name, and the value is the rules for that element, represented as another set of key-value pairs.  An element declaration should include one or more of the available element rules:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ruleTypes&amp;lt;/code&amp;gt;&lt;br /&gt;
| Basic description of how the filter treats this tag.  See [[#Rule Types]].&lt;br /&gt;
|-  &lt;br /&gt;
| &amp;lt;code&amp;gt;idAttributes&amp;lt;/code&amp;gt;&lt;br /&gt;
| A list containing attributes which may provide the segment ID for text contained within this element. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;conditions&amp;lt;/code&amp;gt;&lt;br /&gt;
| A condition that further restricts this rule.  For example, to indicate that the element should only be handled if it contains an attribute with a certain value.  See [[#Condition Syntax]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;translatableAttributes&amp;lt;/code&amp;gt;&lt;br /&gt;
| Contains information about translatable attributes in this element. See [[#Configuring Translatable Attributes]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;elementType&amp;lt;/code&amp;gt;&lt;br /&gt;
| Indicates the corresponding XLIFF 1.2 &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; value for this element.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;writableLocalizationAttributes&amp;lt;/code&amp;gt;&lt;br /&gt;
| Specifies attributes which are writable, but not translatable. (TODO) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Rule Types ====&lt;br /&gt;
The rules types are the following:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;INLINE&amp;lt;/code&amp;gt;&lt;br /&gt;
| A tag which may occur inside a text run. For example &amp;lt;code&amp;gt;&amp;amp;lt;b&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;lt;i&amp;gt;&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;&amp;amp;lt;u&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;GROUP&amp;lt;/code&amp;gt;&lt;br /&gt;
| Defines a group of elements that are structurally bound. For example &amp;lt;code&amp;gt;&amp;amp;lt;table&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;lt;div&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;EXCLUDE&amp;lt;/code&amp;gt;&lt;br /&gt;
| Prevents extraction of any text until the end tag of the same element is found. For example, if the content between a &amp;lt;code&amp;gt;&amp;amp;lt;script&amp;gt;&amp;lt;/code&amp;gt; element should not be extracted then define &amp;lt;code&amp;gt;&amp;amp;lt;script&amp;gt;&amp;lt;/code&amp;gt; as &amp;lt;code&amp;gt;EXCLUDE&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;INCLUDE&amp;lt;/code&amp;gt;&lt;br /&gt;
| Overrides any current exclusions. This allows exceptions for children of &amp;lt;code&amp;gt;EXCLUDE&amp;lt;/code&amp;gt;d elements.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TEXTUNIT&amp;lt;/code&amp;gt;&lt;br /&gt;
| A tag that starts a complex text unit. Examples include &amp;lt;code&amp;gt;&amp;amp;lt;p&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;lt;title&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;lt;h1&amp;gt;&amp;lt;/code&amp;gt;. Complex text units carry their surrounding tags along with any extracted text.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PRESERVE_WHITESPACE&amp;lt;/code&amp;gt;&lt;br /&gt;
| A tag that must preserve its white spaces as-is. For example &amp;lt;code&amp;gt;&amp;amp;lt;pre&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ATTRIBUTES_ONLY&amp;lt;/code&amp;gt;&lt;br /&gt;
| A tag that has localizable or translatable attributes but does not have translatable content. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ATTRIBUTE_TRANS&amp;lt;/code&amp;gt;&lt;br /&gt;
| A translatable attribute. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ATTRIBUTE_WRITABLE&amp;lt;/code&amp;gt;&lt;br /&gt;
| A writable or modifiable attribute, but not translatable.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ATTRIBUTE_READONLY&amp;lt;/code&amp;gt;&lt;br /&gt;
| A read-only attribute, extracted but that cannot be modified. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Configuring Translatable Attributes ====&lt;br /&gt;
Translatable attributes may be specified in two ways, depending on the level of complexity needed.  &lt;br /&gt;
&lt;br /&gt;
If all the specified attributes should always be translated, they can be exposed as a simple list.  For example, the definition for the &amp;lt;code&amp;gt;&amp;amp;lt;area&amp;amp;gt;&amp;lt;/code&amp;gt; element specifies that &amp;lt;code&amp;gt;accesskey&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;area&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt; attributes are translatable:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;  area:&lt;br /&gt;
    ruleTypes: [ATTRIBUTES_ONLY]&lt;br /&gt;
    translatableAttributes: [accesskey, area, alt]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, if additional restrictions on translatable attributes are present, the &amp;lt;code&amp;gt;translatableAttributes&amp;lt;/code&amp;gt; rule may be specified as a set of key-value pairs, with each key being a translatable attribute and each value being an (optional) list of conditions, using the [[#Condition Syntax]].  For example, this snippet defines the handling of the &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;amp;gt;&amp;lt;/code&amp;gt; element in the built-in configurations:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
  input:&lt;br /&gt;
    ruleTypes: [INLINE]&lt;br /&gt;
    translatableAttributes:&lt;br /&gt;
      alt: [type, NOT_EQUALS, [file, hidden, image, password]]&lt;br /&gt;
      value: [type, NOT_EQUALS, [file, hidden, image, password]]&lt;br /&gt;
      accesskey: [type, NOT_EQUALS, [file, hidden, image, password]]&lt;br /&gt;
      title: [type, NOT_EQUALS, [file, hidden, image, password]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies that there are four attributes (&amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;accesskey&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;) that are translatable.  The translatability of each of these attributes is conditional on the &amp;lt;code&amp;gt;&amp;amp;lt;input&amp;amp;gt;&amp;lt;/code&amp;gt; element not having particular &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; values.&lt;br /&gt;
&lt;br /&gt;
==== Condition Syntax ====&lt;br /&gt;
&lt;br /&gt;
Rule conditions are expressed as a list of the form&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[attribute, operation, value]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;attribute&amp;lt;/code&amp;gt;&lt;br /&gt;
| The name of the attribute which the condition applies to.&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;operation&amp;lt;/code&amp;gt;&lt;br /&gt;
| Available operations are &amp;lt;code&amp;gt;EQUALS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NOT_EQUALS&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;MATCHES&amp;lt;/code&amp;gt;.  &amp;lt;code&amp;gt;EQUALS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NOT_EQUALS&amp;lt;/code&amp;gt; test for (case-insensitive) string matches, while &amp;lt;code&amp;gt;MATCHES&amp;lt;/code&amp;gt; uses a regular expression.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;&lt;br /&gt;
| The value of the attribute to be compared using the operation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Inline Code Finder===&lt;br /&gt;
&lt;br /&gt;
You can define a set of regular expressions to capture span of extracted text that should be treated as inline codes. For example, some element content may have variables that need to be protected from modification and treated as codes. Use the &amp;lt;code&amp;gt;useCodeFinder&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;codeFinderRules&amp;lt;/code&amp;gt; options for this.&lt;br /&gt;
&lt;br /&gt;
 useCodeFinder: true&lt;br /&gt;
 codeFinderRules: &amp;quot;#v1\ncount.i=1\nrule0=\\bVAR\\d\\b&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The options above will set the text &amp;quot;&amp;lt;code&amp;gt;VAR1&amp;lt;/code&amp;gt;&amp;quot; as in-line code in the following HTML:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;p&amp;gt;Number of files = VAR1&amp;amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the regular expression is &amp;quot;&amp;lt;code&amp;gt;\bVAR\d\b&amp;lt;/code&amp;gt;&amp;quot; but you must escape the backslash in the YAML notation as well.&lt;br /&gt;
&lt;br /&gt;
To facilitate the creation of code finder rules [[Rainbow - Code Finder Editor|Rainbow provides the Code Finder Editor]].&lt;br /&gt;
&lt;br /&gt;
===Character Entity References in Output===&lt;br /&gt;
&lt;br /&gt;
By default extended characters are not using character entity references in output (e.g. &amp;lt;code&amp;gt;&amp;amp;amp;copy;&amp;lt;/code&amp;gt; for the character '&amp;amp;copy').&lt;br /&gt;
&lt;br /&gt;
You can change this by specifying the &amp;lt;code&amp;gt;escapeCharacters&amp;lt;/code&amp;gt; rule with a string of all the characters you wish to see output as character entity reference. Any specified character that is not extended or has no HTML character entity defined is processed like a normal character.&lt;br /&gt;
&lt;br /&gt;
For example, given the following rule:&lt;br /&gt;
&lt;br /&gt;
 escapeCharacters: &amp;quot;© €µÆĄ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The output of &amp;lt;code&amp;gt;&amp;amp;lt;p&amp;gt;© €µÆĄ&amp;amp;lt;/p&amp;gt;&amp;lt;/code&amp;gt; (assuming the output encoding is UTF-8) will be:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;p&amp;gt;&amp;amp;amp;copy;&amp;amp;amp;nbsp;&amp;amp;amp;euro;&amp;amp;amp;micro;&amp;amp;amp;AElig;Ą&amp;amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Only the character &amp;lt;code&amp;gt;Ą&amp;lt;/code&amp;gt; (U+0104) is not represented as an entity reference because there is no HTML character entity defined for it.&lt;br /&gt;
&lt;br /&gt;
===Inline CDATA===&lt;br /&gt;
&lt;br /&gt;
For formats that use CDATA in ways that undesirably break the flow of text, you can set the filter to treat CDATA as if it was an inline element like so:&lt;br /&gt;
&lt;br /&gt;
  inlineCdata: true&lt;br /&gt;
&lt;br /&gt;
Then markup such as &amp;lt;code&amp;gt;&amp;amp;lt;p&amp;gt;Text with &amp;amp;lt;![CDATA[inline]]&amp;gt; CDATA&amp;amp;lt;/p&amp;gt;&amp;lt;/code&amp;gt; will be extracted as if &amp;lt;code&amp;gt;&amp;amp;lt;![CDATA[&amp;lt;/code&amp;gt; was a regular inline opening tag and &amp;lt;code&amp;gt;]]&amp;gt;&amp;lt;/code&amp;gt; was a regular inline closing tag.&lt;br /&gt;
&lt;br /&gt;
===Excluding By Default===&lt;br /&gt;
&lt;br /&gt;
Normally, there is an implicit &amp;quot;default rule&amp;quot; to include elements.  If the filter configuration contained no tag information at all, the default behavior of the filter would be to expose all PCDATA for translation.  Sometimes it is useful to change this behavior in order to make your configuration more concise.  This can be done by setting the &amp;lt;code&amp;gt;exclude_by_default&amp;lt;/code&amp;gt; option in your config.&lt;br /&gt;
&lt;br /&gt;
For example, if you wished to have a custom configuration that exposed the translation of the &amp;lt;code&amp;gt;&amp;amp;lt;title&amp;amp;gt;&amp;lt;/code&amp;gt; element but nothing else.  You could specify this as&lt;br /&gt;
&lt;br /&gt;
 exclude_by_default: true&lt;br /&gt;
 // .... other configuration&lt;br /&gt;
 elements:&lt;br /&gt;
    title:&lt;br /&gt;
      ruleTypes: [TEXTUNIT]&lt;br /&gt;
&lt;br /&gt;
===Quote Mode===&lt;br /&gt;
Escaping of quote and apostrophe (single quote) characters can be changed by adding these lines to the config file:&lt;br /&gt;
&lt;br /&gt;
 quoteModeDefined: true&lt;br /&gt;
 quoteMode: 3&lt;br /&gt;
&lt;br /&gt;
'''Current quote modes:'''&lt;br /&gt;
&lt;br /&gt;
* Do not escape single or double quotes: '''UNESCAPED = 0'''&lt;br /&gt;
* Escape single and double quotes to a named entity: '''ALL = 1'''&lt;br /&gt;
* Escape double quotes to a named entity, and single quotes to a numeric entity: '''NUMERIC_SINGLE_QUOTES = 2'''&lt;br /&gt;
* Escape double quotes only: '''DOUBLE_QUOTES_ONLY = 3'''&lt;br /&gt;
&lt;br /&gt;
==Limitations==&lt;br /&gt;
&lt;br /&gt;
* In the current version of the filter the content of &amp;lt;code&amp;gt;&amp;amp;lt;style&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;lt;script&amp;gt;&amp;lt;/code&amp;gt; elements is not extracted.&lt;br /&gt;
* Tags from server-side scripts such as PHP, ASPX, JSP, etc. are not formally supported and will be treated as non-translatable.&lt;br /&gt;
&lt;br /&gt;
[[Category:Filters]]&lt;/div&gt;</summary>
		<author><name>Amake</name></author>
	</entry>
	<entry>
		<id>http://okapiframework.org/wiki/index.php?title=Full-Width_Conversion_Step&amp;diff=342</id>
		<title>Full-Width Conversion Step</title>
		<link rel="alternate" type="text/html" href="http://okapiframework.org/wiki/index.php?title=Full-Width_Conversion_Step&amp;diff=342"/>
		<updated>2015-10-07T12:21:42Z</updated>

		<summary type="html">&lt;p&gt;Amake: /* Parameters */ Note availability of new options&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Steps Header}}&lt;br /&gt;
__TOC__&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
This step converts characters in text units from or to full-width form.&lt;br /&gt;
&lt;br /&gt;
Takes: Filter events. Sends: Filter events.&lt;br /&gt;
&lt;br /&gt;
For historical reasons, some Asian character sets have two display forms for some characters: half-width and full-width. This step allows you to convert from one form to the other. The modification is done in the text of the text units for the specified target locale. If there is no text for the specified target, the source text is copied to the target and processed.&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Convert full width characters to half-width or ASCII equivalents&amp;lt;/cite&amp;gt; &amp;amp;mdash; Select this option to convert all full-width character to their half-width or ASCII equivalent. For example, the character 'Ｑ' (U+FF31) is converted to 'Q' (U+0051) and the character 'サ' (U+30B5) is converted to 'ｻ' (U+FF7B).&lt;br /&gt;
&lt;br /&gt;
Additional non-Full-width characters can also be converted:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Include Squared Latin Abbreviations of the CJK Compatibility block&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to also convert the Squared Latin Abbreviations of the CJK Compatibility block into sequences of non-CJK characters. For example '㏀' (U+33C0) to &amp;quot;kΩ&amp;quot; (U+006B, U+03A9).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Include special characters of the Letter-Like Symbols block&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to also convert several characters of the Letter-Like Symbols block to character sequences. The conversions are shown in the following table:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| '''Letter-Like Symbol'''&lt;br /&gt;
| '''Character sequence'''&lt;br /&gt;
|-&lt;br /&gt;
|U+2100||a/c&lt;br /&gt;
|-&lt;br /&gt;
|U+2101||a/s&lt;br /&gt;
|-&lt;br /&gt;
|U+2105||c/o&lt;br /&gt;
|-&lt;br /&gt;
|U+2103||°C&lt;br /&gt;
|-&lt;br /&gt;
|U+2109||°F&lt;br /&gt;
|-&lt;br /&gt;
|U+2116||No&lt;br /&gt;
|-&lt;br /&gt;
|U+212A||K&lt;br /&gt;
|-&lt;br /&gt;
|U+212B||Å&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Include Japanese Katakana and associated punctuation&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to convert Japanese Katakana and associated punctuation (。、「」, etc.) into their half-width forms. This is a separate option (and off by default) in order to facilitate normalizing modern Japanese text: Japanese text may contain full-width alphanumeric characters that should be normalized to half-width, while Katakana should remain full-width. (Available in 0.29-SNAPSHOT and later)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Convert half-width and ASCII characters to full width equivalents&amp;lt;/cite&amp;gt; &amp;amp;mdash; Select this option to convert all half-width and ASCII characters to their full-width equivalent. For example, the character 'Q' (U+0051) is converted to 'Ｑ' (U+FF31) and the character 'ｻ' (U+FF7B) is converted to 'サ' (U+30B5).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Convert only the ASCII characters&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to convert only the ASCII characters to full-width. When this option is set only ASCII characters are affected, half-width chracaters are left half-width.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Convert only Japanese Katakana and associated punctuation&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to convert Japanese Katakana and associated punctuation (｡､｢｣, etc.) into their full-width forms. This is a separate option in order to facilitate normalizing modern Japanese text: Japanese text may contain half-width Katakana that should be converted to full-width, while alphanumeric characters should remain half-width. (Available in 0.29-SNAPSHOT and later)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Normalize output&amp;lt;/cite&amp;gt; &amp;amp;mdash; Apply Unicode NFC normalization to the output text (if any conversions are made). Converting half-width forms to full-width can result in decomposed forms, for instance ﾌﾟ (U+FF8C U+FF9F) → プ (U+30D5 U+309A). Normalization ensures that the standard representation is used: プ (U+30D7). (Available in 0.29-SNAPSHOT and later)&lt;br /&gt;
&lt;br /&gt;
==Limitations==&lt;br /&gt;
&lt;br /&gt;
None known.&lt;br /&gt;
&lt;br /&gt;
[[Category:Steps]]&lt;/div&gt;</summary>
		<author><name>Amake</name></author>
	</entry>
	<entry>
		<id>http://okapiframework.org/wiki/index.php?title=Open_Standards&amp;diff=184</id>
		<title>Open Standards</title>
		<link rel="alternate" type="text/html" href="http://okapiframework.org/wiki/index.php?title=Open_Standards&amp;diff=184"/>
		<updated>2015-09-11T12:53:09Z</updated>

		<summary type="html">&lt;p&gt;Amake: /* GMX - Global information management Metrics eXchange */ Update to GMX-V 2.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
The localization and translation industry uses several standards to exchange data between tools. It is very important for tools to support such standards.&lt;br /&gt;
&lt;br /&gt;
* They avoid your data to be locked into proprietary formats.&lt;br /&gt;
* Using standards also allows you to approach the translation process with a broader choice of options and more flexibility.&lt;br /&gt;
&lt;br /&gt;
The applications and components of the Okapi Framework support standards when possible.&lt;br /&gt;
&lt;br /&gt;
==XLIFF - XML Localisation Interchange File Format==&lt;br /&gt;
&lt;br /&gt;
Maintained by the XLIFF Technical Committee at OASIS, XLIFF provides a common markup language for extracted localizable text.&lt;br /&gt;
&lt;br /&gt;
* [http://docs.oasis-open.org/xliff/xliff-core/xliff-core.html XLIFF 1.2 specification]&lt;br /&gt;
* [http://www.oasis-open.org/committees/xliff/ The OASIS XLIFF Technical Committee home page]&lt;br /&gt;
* [[XLIFF|An overview of XLIFF]]&lt;br /&gt;
&lt;br /&gt;
Many components of the framework use XLIFF. The framework also includes an [[XLIFF Filter]].&lt;br /&gt;
&lt;br /&gt;
==TMX - Translation Memory eXchange==&lt;br /&gt;
&lt;br /&gt;
TMX covers the exchange of translation memory data.&lt;br /&gt;
&lt;br /&gt;
TMX was originally maintained by the OSCAR Committee at LISA. In March 2011 LISA was closed. The OSCAR standards have been put under Creative Commons license and the specifications moved to new hosts.&lt;br /&gt;
&lt;br /&gt;
* [http://www.gala-global.org/oscarStandards/tmx/tmx14b.html TMX 1.4b specification]&lt;br /&gt;
* [[TMX|An overview of TMX]]&lt;br /&gt;
&lt;br /&gt;
Many components of the framework use TMX. The framework also includes a [[TMX Filter]].&lt;br /&gt;
&lt;br /&gt;
==SRX - Segmentation Rules eXchange==&lt;br /&gt;
&lt;br /&gt;
SRX addresses the exchange of segmentation rules between tools. The version 1.0 of SRX has been implemented different ways by different tools and has limited usage for exchange. The version 2.0 of SRX has been implemented with better consistency.&lt;br /&gt;
&lt;br /&gt;
SRX was originally maintained by the OSCAR Committee at LISA. In March 2011 LISA was closed. The OSCAR standards have been put under Creative Commons license and the specifications moved to new hosts.&lt;br /&gt;
&lt;br /&gt;
* [http://www.gala-global.org/oscarStandards/srx/srx20.html SRX 2.0 specification]&lt;br /&gt;
* [[SRX|An overview of SRX]]&lt;br /&gt;
&lt;br /&gt;
The segmentation engine provided in the framework implements SRX 2.0. You can see it in action in [[Ratel|Ratel, the framework's editor to create and maintain SRX documents]].&lt;br /&gt;
&lt;br /&gt;
==TBX - Term Base eXchange==&lt;br /&gt;
&lt;br /&gt;
TBX is designed to allow the exchange of terminology databases between tools. TBX the same as '''ISO 30042'''. Because TBX is quite complex, its adoption has been slow and OSCAR has come up with '''TBX-Basic''', a sub-set of the more general TBX.&lt;br /&gt;
&lt;br /&gt;
TBX was originally maintained by the OSCAR Committee at LISA. In March 2011 LISA was closed. The OSCAR standards have been put under Creative Commons license and the specifications moved to new hosts.&lt;br /&gt;
&lt;br /&gt;
* [http://www.gala-global.org/oscarStandards/tbx/tbx_oscar.pdf TBX Specification]&lt;br /&gt;
* [http://www.gala-global.org/oscarStandards/tbx/tbx-basic.html Information for TBX-Basic]&lt;br /&gt;
&lt;br /&gt;
The [[Quality Check Step]], which is also used in [[CheckMate]], supports TBX as one of its glossary formats.&lt;br /&gt;
&lt;br /&gt;
==ITS - Internationalization Tag Set==&lt;br /&gt;
&lt;br /&gt;
ITS is a W3C namespace that provides internationalization information and support in XML documents.&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/TR/its/ ITS 1.0 specification]&lt;br /&gt;
* [http://www.w3.org/International/its/ig/ The W3C ITS Interest Group home page]&lt;br /&gt;
* [http://www.w3.org/International/its/ig/simple-example.html Examples of XML documents with ITS markup]&lt;br /&gt;
* [[ITS|An overview of ITS]]&lt;br /&gt;
&lt;br /&gt;
Several components of the framework support and use ITS. See the [[ITS Components]] page for details.&lt;br /&gt;
&lt;br /&gt;
Related to ITS, the [http://www.w3.org/TR/xml-i18n-bp/ Best Practices for XML Internationalization W3C Note] can help you designing and authoring XML documents in a way they are easier to localize.&lt;br /&gt;
&lt;br /&gt;
==GMX - Global information management Metrics eXchange==&lt;br /&gt;
&lt;br /&gt;
GMX is a family of standards of globalization and localization-related metrics. The three components of GMX are:&lt;br /&gt;
&lt;br /&gt;
* Volume (V) Global Information Management Metrics Volume addresses the issue of quantifying the workload for a given localization or translation task. GMX-V provides a standard and more precise definition of the statistics necessary for to assess the quantity of text (and costs) associated with language-related globalization tasks.&lt;br /&gt;
* Complexity (C) (proposed). GMX-C will provide a standard metric for the assessment of textual complexity with regard to globalization tasks. This format has not yet been defined.&lt;br /&gt;
* Quality (Q) (proposed). GMX-Q will provide a standard format for the specification of quality requirements for globalization tasks, thus allowing quality expectations to be specified in contracts and other agreements and verified. This format has not yet been defined.&lt;br /&gt;
&lt;br /&gt;
GMX was originally maintained by the OSCAR Committee at LISA. In March 2011 LISA was closed. The OSCAR standards have been put under Creative Commons license and the specifications moved to new hosts.&lt;br /&gt;
&lt;br /&gt;
* [http://www.xtm-intl.com/manuals/gmx-v/GMX-V-2.0.html GMX-V 2.0 specification]&lt;br /&gt;
&lt;br /&gt;
Steps such as the [[Word Count Step]], [[Character Count Step]], and the [[Scoping Report Step]] provided in the framework use GMX-V 2.0.&lt;br /&gt;
&lt;br /&gt;
==OAXAL - Open Architecture for XML Authoring and Localization==&lt;br /&gt;
&lt;br /&gt;
Maintain by OASIS, OAXAL is a reference architecture that describes a processing model for authoring and localizing XML documents using open standards.&lt;br /&gt;
&lt;br /&gt;
* [http://www.oasis-open.org/committees/download.php/35736/OASIS%20Open%20Architecture%20for%20XML%20Authoring%20and%20Localization%20Reference%20Model%20%28OAXAL%29.pdf OAXAL 1.0 specification]&lt;br /&gt;
&lt;br /&gt;
===OAXAL 1.0 Conformance Statement===&lt;br /&gt;
&lt;br /&gt;
This statement confirms that the Okapi Framework is an OAXAL 1.0 Level 2 compliant application as per the [http://wiki.oasis-open.org/oaxal/#A4ConformanceGuidelines OAXAL Reference Architecture 1.0 Specification conformance requirements], implementing the following constituent standards:&lt;br /&gt;
&lt;br /&gt;
* W3C ITS 1.0&lt;br /&gt;
* OASIS XLIFF 1.2&lt;br /&gt;
* LISA TMX 1.4b&lt;br /&gt;
* LISA SRX 2.0&lt;br /&gt;
* LISA TBX 1.0&lt;br /&gt;
* LISA GMX/V 1.0&lt;br /&gt;
&lt;br /&gt;
[[Category:GMX]] [[Category:ITS]] [[Category:SRX]] [[Category:TMX]] [[Category:XLIFF]]&lt;/div&gt;</summary>
		<author><name>Amake</name></author>
	</entry>
	<entry>
		<id>http://okapiframework.org/wiki/index.php?title=Character_Count_Step&amp;diff=182</id>
		<title>Character Count Step</title>
		<link rel="alternate" type="text/html" href="http://okapiframework.org/wiki/index.php?title=Character_Count_Step&amp;diff=182"/>
		<updated>2015-09-11T12:49:33Z</updated>

		<summary type="html">&lt;p&gt;Amake: Add GMX category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Steps Header}}&lt;br /&gt;
__TOC__&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
This step performs character counts on the different parts of a set of documents.&lt;br /&gt;
&lt;br /&gt;
Takes: Filter events. Sends: Filter events.&lt;br /&gt;
&lt;br /&gt;
The character counts are saved as annotations that can be used in other steps. For example, the [[Scoping Report Step]] can generate a report from the character counts.&lt;br /&gt;
&lt;br /&gt;
The character count generated follows the [http://www.xtm-intl.com/manuals/gmx-v/GMX-V-2.0.html GMX-V 2.0 standard].&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
&lt;br /&gt;
A character count annotation is always set to each text unit. In addition you can also set annotation for other resources:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;cite&amp;gt;Batches&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to get an annotation of the character count per batch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Batch items&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to get an annotation of the character count per batch item.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Documents&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to get an annotation of the character count per document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Sub-documents&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to get an annotation of the character count per sub-document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Groups&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to get an annotation of the character count per group.&lt;br /&gt;
&lt;br /&gt;
==Limitations==&lt;br /&gt;
&lt;br /&gt;
None known.&lt;br /&gt;
&lt;br /&gt;
[[Category:Steps]]  [[Category:GMX]]&lt;/div&gt;</summary>
		<author><name>Amake</name></author>
	</entry>
	<entry>
		<id>http://okapiframework.org/wiki/index.php?title=Word_Count_Step&amp;diff=188</id>
		<title>Word Count Step</title>
		<link rel="alternate" type="text/html" href="http://okapiframework.org/wiki/index.php?title=Word_Count_Step&amp;diff=188"/>
		<updated>2015-09-11T12:49:17Z</updated>

		<summary type="html">&lt;p&gt;Amake: Add GMX category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Steps Header}}&lt;br /&gt;
__TOC__&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
This step performs word counts on the different parts of a set of documents.&lt;br /&gt;
&lt;br /&gt;
Takes: Filter events. Sends: Filter events.&lt;br /&gt;
&lt;br /&gt;
The word counts are saved as annotations that can be used in other steps. For example, the [[Scoping Report Step]] can generate a report from the word counts.&lt;br /&gt;
&lt;br /&gt;
The word count generated follows the [http://www.xtm-intl.com/manuals/gmx-v/GMX-V-2.0.html GMX-V 2.0 standard].&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
&lt;br /&gt;
A word count annotation is always set to each text unit. In addition you can also set annotation for other resources:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;cite&amp;gt;Batches&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to get an annotation of the word count per batch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Batch items&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to get an annotation of the word count per batch item.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Documents&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to get an annotation of the word count per document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Sub-documents&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to get an annotation of the word count per sub-document.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Groups&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to get an annotation of the word count per group.&lt;br /&gt;
&lt;br /&gt;
==Limitations==&lt;br /&gt;
&lt;br /&gt;
None known.&lt;br /&gt;
&lt;br /&gt;
[[Category:Steps]] [[Category:GMX]]&lt;/div&gt;</summary>
		<author><name>Amake</name></author>
	</entry>
	<entry>
		<id>http://okapiframework.org/wiki/index.php?title=Scoping_Report_Step&amp;diff=186</id>
		<title>Scoping Report Step</title>
		<link rel="alternate" type="text/html" href="http://okapiframework.org/wiki/index.php?title=Scoping_Report_Step&amp;diff=186"/>
		<updated>2015-09-11T12:47:04Z</updated>

		<summary type="html">&lt;p&gt;Amake: Document character count fields&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Steps Header}}&lt;br /&gt;
__TOC__&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
This step creates a template-based report on various counts (word count, character count, etc.) and optionally leveraged data.&lt;br /&gt;
&lt;br /&gt;
Takes: Filter events. Sends: Filter events.&lt;br /&gt;
&lt;br /&gt;
In order to have leveraging statistics with this step, your pipeline needs to include, prior this step, one or more steps that leverage translations, such as the [[Leveraging Step]]. Some filters, such as the [[XLIFF Filter]] may also generate resources with leveraged data. For just generating word- or character-count annotations, without report, use the [[Word Count Step]] or [[Character Count Step]].&lt;br /&gt;
&lt;br /&gt;
For a list of the types of matches possible in the counts, see the &amp;quot;[[Match Types]]&amp;quot; page.&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Project name&amp;lt;/cite&amp;gt; &amp;amp;mdash; Enter the name that is placed in the title of the report.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Custom template&amp;lt;/cite&amp;gt; &amp;amp;mdash; Enter URI or the full path of the custom template to be used to generate the report. If the custom template filed is left empty, or if the specified URI is not found, the default template is used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Output path&amp;lt;/cite&amp;gt; &amp;amp;mdash; Enter the full path of the report file to generate. You can use the &amp;lt;code&amp;gt;${rootDir}&amp;lt;/code&amp;gt; variable, as well as any of the [[Template:Locales Variables|source or target locale variables]] (&amp;lt;code&amp;gt;${srcLoc}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;${trgloc}&amp;lt;/code&amp;gt;, etc).&lt;br /&gt;
&lt;br /&gt;
==Templates==&lt;br /&gt;
&lt;br /&gt;
Templates are used by the Scoping Report Step to generate reports looking exactly the way you would like them to. Currently plain text and HTML formats are supported in templates.&lt;br /&gt;
The Scoping Report Step includes a default HTML report, that displays general information about the project and its items. You can specify your own custom report with the step parameter &amp;lt;cite&amp;gt;Custom template&amp;lt;/cite&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Templates contain text and report fields. Report fields are enclosed in brackets. Table rows are enclosed in brackets around a row of column fields. A template can look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Project Name: [PROJECT_NAME]&lt;br /&gt;
Creation Date: [PROJECT_DATE]&lt;br /&gt;
Target Locale: [PROJECT_TARGET_LOCALE]&lt;br /&gt;
&lt;br /&gt;
File,Exact Previous Version Matches,Exact Local Context Matches,100% Matches,Fuzzy Matches,Repetitions,Total,&lt;br /&gt;
[[ITEM_NAME],[ITEM_EXACT_PREVIOUS_VERSION],[ITEM_EXACT_LOCAL_CONTEXT],[ITEM_EXACT],[ITEM_FUZZY],[ITEM_GMX_REPETITION_MATCHED_WORD_COUNT],[ITEM_TOTAL_WORD_COUNT],]&lt;br /&gt;
Total,[PROJECT_EXACT_PREVIOUS_VERSION],[PROJECT_EXACT_LOCAL_CONTEXT],[PROJECT_EXACT],[PROJECT_FUZZY],[PROJECT_GMX_REPETITION_MATCHED_WORD_COUNT],[PROJECT_TOTAL_WORD_COUNT]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This template will produce something similar to this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Project Name: Community website&lt;br /&gt;
Creation Date: 17.03.2011 23:21:23 CET&lt;br /&gt;
Target Locale: fr-ca&lt;br /&gt;
&lt;br /&gt;
File,Exact Previous Version Matches,Exact Local Context Matches,100% Matches,Fuzzy Matches,Repetitions,Total,&lt;br /&gt;
D:\SVN\OKAPI\steps\scopingreport\target\test-classes\net\sf\okapi\steps\scopingreport\aa324.html,10,23,12,57,132,23,&lt;br /&gt;
D:\SVN\OKAPI\steps\scopingreport\target\test-classes\net\sf\okapi\steps\scopingreport\form.html,31,22,13,17,19,17,&lt;br /&gt;
D:\SVN\OKAPI\steps\scopingreport\target\test-classes\net\sf\okapi\steps\scopingreport\W3CHTMHLTest1.html,10,23,12,57,12,54,&lt;br /&gt;
Total,210,323,512,357,312,154&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Report fields==&lt;br /&gt;
&lt;br /&gt;
Templates should contain placeholders for calculable report data. Those placeholders are called report fields and are filled up automatically by the Scoping Report Step.&lt;br /&gt;
&lt;br /&gt;
Please note, that calculation of most of the fields' values is performed by separate steps, e.g. [[Word Count Step]], [[Character Count Step]], or [[Leveraging Step]]. The Scoping Report Step generally speaking is a presentation layer, displaying information provided by other steps. So if you forget to include a required step in your pipeline, you will see zeros in the generated report.&lt;br /&gt;
&lt;br /&gt;
Report fields can contain word or character counts for the entire project or an individual item in the project. Report fields for those count types are respectively prefixed with &amp;lt;code&amp;gt;REPORT_&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ITEM_&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
The tables below show how report fields are related to count categories, and list example steps that provide information for related word or character counts.&lt;br /&gt;
&lt;br /&gt;
====General project fields====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| '''Report field''' || '''Example of provider''' || '''Description'''&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_NAME ||  || Name of the project as set in the step parameters.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_DATE ||  || Date and time when the report was generated.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_SOURCE_LOCALE ||  || Source locale, obtained automatically.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_TARGET_LOCALE ||  || Target locale, obtained automatically.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_TOTAL_WORD_COUNT || Word Count Step || Total number of words, both translatable and non-translatable, in all items of the project.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_TOTAL_CHARACTER_COUNT || Character Count Step || Total number of characters, excluding whitespace and punctuation, both translatable, and non-translatable in all items of the project.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_WHITESPACE_CHARACTER_COUNT || Character Count Step || Total number of whitespace characters, both translatable and non-translatable, in all items of the project.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_PUNCTUATION_CHARACTER_COUNT || Character Count Step || Total number of punctuation characters, both translatable and non-translatable, in all items of the project.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_OVERALL_CHARACTER_COUNT || Character Count Step || Total number of characters, including whitespace and punctuation, both translatable and non-translatable, in all items of the project.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====General item fields====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| '''Report field''' || '''Example of provider''' || '''Description'''&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_NAME ||  || Name of the item (full file name).&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_SOURCE_LOCALE ||  || Source locale, obtained automatically.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_TARGET_LOCALE ||  || Target locale, obtained automatically.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_TOTAL_WORD_COUNT || Word Count Step || Total number of words, both translatable and non-translatable, in the current item.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_TOTAL_CHARACTER_COUNT || Character Count Step || Total number of characters, excluding whitespace and punctuation, both translatable and non-translatable, in the current item.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_WHITESPACE_CHARACTER_COUNT || Character Count Step || Total number of whitespace characters, both translatable and non-translatable, in the current item.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_PUNCTUATION_CHARACTER_COUNT || Character Count Step || Total number of punctuation characters, both translatable and non-translatable, in the current item.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_OVERALL_CHARACTER_COUNT || Character Count Step || Total number of characters, including whitespace and punctuation, both translatable and non-translatable, in the current item.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Project fields for Okapi count categories====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| '''Report field''' || '''Example of provider''' || '''Okapi word count category''' || '''Description'''&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_EXACT_UNIQUE_ID || Leveraging Step || EXACT_UNIQUE_ID || Matches EXACT and matches a unique id.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_EXACT_PREVIOUS_VERSION || Leveraging Step || EXACT_PREVIOUS_VERSION ||  Matches EXACT and comes from the preceding version of the same document (i.e., if v4 is leveraged this match must come from v3, not v2 or v1!!).&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_EXACT_LOCAL_CONTEXT || Leveraging Step || EXACT_LOCAL_CONTEXT || Matches EXACT and a small number of segments before and/or after.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_EXACT_DOCUMENT_CONTEXT || Repetition Analysis Step || EXACT_DOCUMENT_CONTEXT || Matches EXACT and comes from the same document.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_EXACT_STRUCTURAL || Leveraging Step || EXACT_STRUCTURAL || Matches EXACT and the structural type of the segment (title, paragraph, list element etc.)&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_EXACT || Leveraging Step || EXACT || Matches text and codes exactly.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_EXACT_TEXT_ONLY_UNIQUE_ID || Leveraging Step || EXACT_TEXT_ONLY_UNIQUE_ID || Matches EXACT_TEXT_ONLY and matches a unique id.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_EXACT_TEXT_ONLY_PREVIOUS_VERSION || Leveraging Step || EXACT_TEXT_ONLY_PREVIOUS_VERSION || Matches EXACT_TEXT_ONLY and comes from a previous version of the same document.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_EXACT_TEXT_ONLY || Leveraging Step || EXACT_TEXT_ONLY || Matches text exactly, but there is a difference in one or more codes.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_EXACT_REPAIRED || Leveraging Step || EXACT_REPAIRED || Matches text and codes exactly, but only after the result of some automated repair (e.g. number replacement, code repair, capitalization, punctuation etc.)&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_FUZZY_UNIQUE_ID || Leveraging Step || FUZZY_UNIQUE_ID || Matches FUZZY and matches a unique id.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_FUZZY_PREVIOUS_VERSION || Leveraging Step || FUZZY_PREVIOUS_VERSION || Matches FUZZY and comes from a previous version of the same document.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_FUZZY || Leveraging Step || FUZZY || Matches both text and/or codes partially.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_FUZZY_REPAIRED || Leveraging Step || FUZZY_REPAIRED || Matches both text and/or codes partially and some automated repair (e.g. number replacement, code repair, capitalization, punctuation etc..) was applied to the target.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_PHRASE_ASSEMBLED || - || PHRASE_ASSEMBLED || Matches assembled from phrases in the TM or other resources (different algorithms could be used).&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_MT || Leveraging Step || MT || Indicates a translation coming from an MT engine.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_CONCORDANCE || - || CONCORDANCE || TM concordance or phrase match (usually a word or term only)&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_NOCATEGORY ||  || n/a || Does not match any of the Okapi word count categories. This field is calculated by subtracting the sum of all words in all categories above from the total word count.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_NONTRANSLATABLE_WORD_COUNT || Word Count Step  || n/a || Number of words that match either of non-translatable Okapi word count categories.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_TRANSLATABLE_WORD_COUNT || Word Count Step  || n/a || Number of words that match neither of non-translatable Okapi word count categories, and thus need translation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Character count categories are also available; replace &amp;lt;code&amp;gt;WORD&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;CHARACTER&amp;lt;/code&amp;gt; or add the suffix &amp;lt;code&amp;gt;_CHARACTER&amp;lt;/code&amp;gt; to the fields above to yield the character equivalent. Character counts exclude whitespace and punctuation characters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Item fields for Okapi count categories====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| '''Report field''' || '''Example of provider''' || '''Okapi word count category''' || '''Description'''&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_EXACT_UNIQUE_ID || Leveraging Step || EXACT_UNIQUE_ID || Matches EXACT and matches a unique id.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_EXACT_PREVIOUS_VERSION || Leveraging Step || EXACT_PREVIOUS_VERSION ||  Matches EXACT and comes from the preceding version of the same document (i.e., if v4 is leveraged this match must come from v3, not v2 or v1!!).&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_EXACT_LOCAL_CONTEXT || Leveraging Step || EXACT_LOCAL_CONTEXT || Matches EXACT and a small number of segments before and/or after.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_EXACT_DOCUMENT_CONTEXT || Repetition Analysis Step || EXACT_DOCUMENT_CONTEXT || Matches EXACT and comes from the same document.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_EXACT_STRUCTURAL || Leveraging Step || EXACT_STRUCTURAL || Matches EXACT and the structural type of the segment (title, paragraph, list element etc.)&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_EXACT || Leveraging Step || EXACT || Matches text and codes exactly.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_EXACT_TEXT_ONLY_UNIQUE_ID || Leveraging Step || EXACT_TEXT_ONLY_UNIQUE_ID || Matches EXACT_TEXT_ONLY and matches a unique id.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_EXACT_TEXT_ONLY_PREVIOUS_VERSION || Leveraging Step || EXACT_TEXT_ONLY_PREVIOUS_VERSION || Matches EXACT_TEXT_ONLY and comes from a previous version of the same document.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_EXACT_TEXT_ONLY || Leveraging Step || EXACT_TEXT_ONLY || Matches text exactly, but there is a difference in one or more codes.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_EXACT_REPAIRED || Leveraging Step || EXACT_REPAIRED || Matches text and codes exactly, but only after the result of some automated repair (e.g. number replacement, code repair, capitalization, punctuation etc.)&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_FUZZY_UNIQUE_ID || Leveraging Step || FUZZY_UNIQUE_ID || Matches FUZZY and matches a unique id.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_FUZZY_PREVIOUS_VERSION || Leveraging Step || FUZZY_PREVIOUS_VERSION || Matches FUZZY and comes from a previous version of the same document.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_FUZZY || Leveraging Step || FUZZY || Matches both text and/or codes partially.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_FUZZY_REPAIRED || Leveraging Step || FUZZY_REPAIRED || Matches both text and/or codes partially and some automated repair (e.g. number replacement, code repair, capitalization, punctuation etc..) was applied to the target.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_PHRASE_ASSEMBLED || - || PHRASE_ASSEMBLED || Matches assembled from phrases in the TM or other resources (different algorithms could be used).&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_MT || Leveraging Step || MT || Indicates a translation coming from an MT engine.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_CONCORDANCE || - || CONCORDANCE || TM concordance or phrase match (usually a word or term only)&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_NOCATEGORY ||  || n/a || Does not match any of the Okapi word count categories. This field is calculated by subtracting the sum of all words in all categories above from the total word count.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_NONTRANSLATABLE_WORD_COUNT || Word Count Step  || n/a || Number of words that match either of non-translatable Okapi word count categories.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_TRANSLATABLE_WORD_COUNT || Word Count Step  || n/a || Number of words that match neither of non-translatable Okapi word count categories, and thus need translation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Character count categories are also available; replace &amp;lt;code&amp;gt;WORD&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;CHARACTER&amp;lt;/code&amp;gt; or add the suffix &amp;lt;code&amp;gt;_CHARACTER&amp;lt;/code&amp;gt; to the fields above to yield the character equivalent. Character counts exclude whitespace and punctuation characters.&lt;br /&gt;
&lt;br /&gt;
====Project fields for GMX count categories====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| '''Report field''' || '''Example of provider''' || '''GMX word count category''' || '''Description'''&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_GMX_PROTECTED_WORD_COUNT || || ProtectedWordCount || An accumulation of the word count for text that has been marked as 'protected', or otherwise not translatable (XLIFF text enclosed in &amp;lt;code&amp;gt;&amp;amp;lt;mrk mtype=&amp;quot;protected&amp;quot;&amp;gt;&amp;lt;/code&amp;gt; elements).&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_GMX_EXACT_MATCHED_WORD_COUNT || Leveraging Step || ExactMatchedWordCount || An accumulation of the word count for text units that have been matched unambiguously with a prior translation and thus require no translator input.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_GMX_LEVERAGED_MATCHED_WORD_COUNT || Leveraging Step || LeveragedMatchedWordCount || An accumulation of the word count for text units that have been matched against a leveraged translation memory database.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_GMX_REPETITION_MATCHED_WORD_COUNT || Repetition Analysis Step || RepetitionMatchedWordCount || An accumulation of the word count for repeating text units that have not been matched in any other form. Repetition matching is deemed to take precedence over fuzzy matching.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_GMX_FUZZY_MATCHED_WORD_COUNT || Leveraging Step || FuzzyMatchedWordCount || An accumulation of the word count for text units that have been fuzzy matched against a leveraged translation memory database.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_GMX_ALPHANUMERIC_ONLY_TEXT_UNIT_WORD_COUNT ||  || AlphanumericOnlyTextUnitWordCount || An accumulation of the word count for text units that have been identified as containing only alphanumeric words.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_GMX_NUMERIC_ONLY_TEXT_UNIT_WORD_COUNT ||  || NumericOnlyTextUnitWordCount || An accumulation of the word count for text units that have been identified as containing only numeric words.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_GMX_MEASUREMENT_ONLY_TEXT_UNIT_WORD_COUNT ||  || MeasurementOnlyTextUnitWordCount || An accumulation of the word count from measurement-only text units.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_GMX_NOCATEGORY ||  || n/a || Does not match any of the GMX word count categories. This field is calculated by subtracting the sum of all words in all categories above from the total word count.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_GMX_NONTRANSLATABLE_WORD_COUNT || Word Count Step  || n/a || Number of words that match either of non-translatable GMX word count categories.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PROJECT_GMX_TRANSLATABLE_WORD_COUNT || Word Count Step  || n/a || Number of words that match neither of non-translatable GMX word count categories, and thus need translation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Character count categories are also available; replace &amp;lt;code&amp;gt;WORD&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;CHARACTER&amp;lt;/code&amp;gt; or add the suffix &amp;lt;code&amp;gt;_CHARACTER&amp;lt;/code&amp;gt; to the fields above to yield the character equivalent. Character counts exclude whitespace and punctuation characters.&lt;br /&gt;
&lt;br /&gt;
====Item fields for GMX count categories====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| '''Report field''' || '''Example of provider''' || '''GMX word count category''' || '''Description'''&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_GMX_PROTECTED_WORD_COUNT ||  || ProtectedWordCount || An accumulation of the word count for text that has been marked as 'protected', or otherwise not translatable (XLIFF text enclosed in &amp;lt;mrk mtype=&amp;quot;protected&amp;quot;&amp;gt; elements).&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_GMX_EXACT_MATCHED_WORD_COUNT || Leveraging Step || ExactMatchedWordCount || An accumulation of the word count for text units that have been matched unambiguously with a prior translation and thus require no translator input.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_GMX_LEVERAGED_MATCHED_WORD_COUNT || Leveraging Step || LeveragedMatchedWordCount || An accumulation of the word count for text units that have been matched against a leveraged translation memory database.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_GMX_REPETITION_MATCHED_WORD_COUNT || Repetition Analysis Step || RepetitionMatchedWordCount || An accumulation of the word count for repeating text units that have not been matched in any other form. Repetition matching is deemed to take precedence over fuzzy matching.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_GMX_FUZZY_MATCHED_WORD_COUNT || Leveraging Step || FuzzyMatchedWordCount || An accumulation of the word count for text units that have been fuzzy matched against a leveraged translation memory database.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_GMX_ALPHANUMERIC_ONLY_TEXT_UNIT_WORD_COUNT ||  || AlphanumericOnlyTextUnitWordCount || An accumulation of the word count for text units that have been identified as containing only alphanumeric words.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_GMX_NUMERIC_ONLY_TEXT_UNIT_WORD_COUNT ||  || NumericOnlyTextUnitWordCount || An accumulation of the word count for text units that have been identified as containing only numeric words.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_GMX_MEASUREMENT_ONLY_TEXT_UNIT_WORD_COUNT ||  || MeasurementOnlyTextUnitWordCount || An accumulation of the word count from measurement-only text units.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_GMX_NOCATEGORY ||  || n/a || Does not match any of the GMX word count categories. This field is calculated by subtracting the sum of all words in all categories above from the total word count.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_GMX_NONTRANSLATABLE_WORD_COUNT || Word Count Step  || n/a || Number of words that match either of non-translatable GMX word count categories.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| ITEM_GMX_TRANSLATABLE_WORD_COUNT || Word Count Step  || n/a || Number of words that match neither of non-translatable GMX word count categories, and thus need translation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Character count categories are also available; replace &amp;lt;code&amp;gt;WORD&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;CHARACTER&amp;lt;/code&amp;gt; or add the suffix &amp;lt;code&amp;gt;_CHARACTER&amp;lt;/code&amp;gt; to the fields above to yield the character equivalent. Character counts exclude whitespace and punctuation characters.&lt;br /&gt;
&lt;br /&gt;
==Limitations==&lt;br /&gt;
&lt;br /&gt;
None known.&lt;br /&gt;
&lt;br /&gt;
[[Category:Steps]] [[Category:GMX]]&lt;/div&gt;</summary>
		<author><name>Amake</name></author>
	</entry>
	<entry>
		<id>http://okapiframework.org/wiki/index.php?title=Table_Filter&amp;diff=68</id>
		<title>Table Filter</title>
		<link rel="alternate" type="text/html" href="http://okapiframework.org/wiki/index.php?title=Table_Filter&amp;diff=68"/>
		<updated>2015-05-21T02:00:47Z</updated>

		<summary type="html">&lt;p&gt;Amake: /* CSV Actions */ Document &amp;quot;add qualifiers&amp;quot; option&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Filters Header}}&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
The Table Filter is an Okapi component that implements the IFilter interface for plain text  documents. The filter is implemented in the class &amp;lt;code&amp;gt;net.sf.okapi.filters.table.TableFilter&amp;lt;/code&amp;gt; of the library.&lt;br /&gt;
&lt;br /&gt;
==Processing Details==&lt;br /&gt;
&lt;br /&gt;
===Input Encoding===&lt;br /&gt;
&lt;br /&gt;
The filter decides which encoding to use for the input file using the following logic:&lt;br /&gt;
&lt;br /&gt;
* If the file has a Unicode Byte-Order-Mark:&lt;br /&gt;
** Then, the corresponding encoding (e.g. UTF-8, UTF-16, etc.) is used. &lt;br /&gt;
* Otherwise, the input encoding used is the default encoding that was specified when setting the filter options. &lt;br /&gt;
&lt;br /&gt;
===Output Encoding===&lt;br /&gt;
&lt;br /&gt;
If the output encoding is UTF-8:&lt;br /&gt;
&lt;br /&gt;
* If the input encoding was also UTF-8, a Byte-Order-Mark is used for the output document only if one was detected in the input document. &lt;br /&gt;
* If the input encoding was not UTF-8, no Byte-Order-Mark is used in the output document.&lt;br /&gt;
&lt;br /&gt;
===Line-Breaks===&lt;br /&gt;
&lt;br /&gt;
The type of line-breaks of the output is the same as the one of the original input.&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
&lt;br /&gt;
===Table Tab===&lt;br /&gt;
&lt;br /&gt;
====Table Type====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;CSV&amp;lt;/cite&amp;gt; &amp;amp;mdash; Select this option to work with formats where the columns are separated by a single character such as a comma, a semi-colon, a tab, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;TSV&amp;lt;/cite&amp;gt; &amp;amp;mdash; Select this option to work with formats where the columns are separated by one or more tabs (i.e. two consecutive tabs do not mark an empty column). Note that for formats where the column separator is a single tab you should select &amp;lt;cite&amp;gt;CSV&amp;lt;/cite&amp;gt; with a tab as the separator.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Fixed-width columns&amp;lt;/cite&amp;gt; &amp;amp;mdash; Select this option to work with formats where each column has a fixed width.&lt;br /&gt;
&lt;br /&gt;
====Table Properties====&lt;br /&gt;
&lt;br /&gt;
When the table file contains a header with column names and optionally other info, you can specify which line contains column names, and from which line the actual table data are starting.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Values start at line&amp;lt;/cite&amp;gt; &amp;amp;mdash; Specify the line number of the first table row (default 1, the data start from the beginning of the file, no header presents).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Line with column names&amp;lt;/cite&amp;gt; &amp;amp;mdash; Specify the number of the line containing column names (default 0, i.e. no line with column names).&lt;br /&gt;
&lt;br /&gt;
Lines are numbered from 1. The default settings describe a table without a header with column names, data start from the beginning of the file, the above table properties will be 1 and 0.&lt;br /&gt;
&lt;br /&gt;
If you have a table which 1-st line contains column names, and consecutive lines (from 2 on) contain table data like in most CSV files, then specify 2 and 1 for the properties.&lt;br /&gt;
&lt;br /&gt;
====CSV Options====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Field delimiter&amp;lt;/cite&amp;gt; &amp;amp;mdash; Character separating fields in a row. Default is comma (,).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Text qualifier&amp;lt;/cite&amp;gt; &amp;amp;mdash; Character before and after field value to allow field delimiters inside the field. For instance, this field will not be broken into parts though comma is a field delimiter: [&amp;quot;Field, containing comma&amp;quot;]. Default is the quotation mark (&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
====CSV Escaping Mode====&lt;br /&gt;
&lt;br /&gt;
If a field contains the active text qualifier (e.g. quotation mark), then all occurrences of that qualifier should be escaped. For instance, [&amp;quot;Text, &amp;quot;&amp;quot;quoted text&amp;quot;&amp;quot;&amp;quot;] or [&amp;quot;Text, \&amp;quot;quoted text\&amp;quot;&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Duplicate qualifier&amp;lt;/cite&amp;gt; &amp;amp;mdash; Escaping is performed by duplication of the active qualifier set in the CSV options group, e.g. [&amp;quot;Text, &amp;quot;&amp;quot;quoted text&amp;quot;&amp;quot;&amp;quot;]. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Backslash&amp;lt;/cite&amp;gt; &amp;amp;mdash; Escaping is performed by prefixing all occurrences of the active qualifier with the backslash character (\), e.g. [&amp;quot;Text, \&amp;quot;quoted text\&amp;quot;&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
====CSV Actions====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Exclude qualifiers from extracted text&amp;lt;/cite&amp;gt; &amp;amp;mdash; If selected, qualifiers are removed from the text and go to the TU skeleton.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Exclude leading/trailing white spaces from extracted text&amp;lt;/cite&amp;gt; &amp;amp;mdash; if selected, then trimming of leading/trailing white spaces is performed based on the trimming mode:&lt;br /&gt;
&lt;br /&gt;
* Only entries without qualifiers &amp;amp;mdash; only non-qualified field values are trimmed, leading and trailing spaces remain in qualified fields (e.g. [&amp;quot;  text &amp;quot;] becomes [  text ], and [  non-qualified  ] becomes [non-qualified] ).&lt;br /&gt;
&lt;br /&gt;
* All &amp;amp;mdash; both non-qualified and qualified field values are trimmed of leading and trailing spaces (e.g. [&amp;quot;  text &amp;quot;] becomes [text], and [  non-qualified  ] becomes [non-qualified] ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Add qualifiers to output when appropriate&amp;lt;/cite&amp;gt; &amp;amp;mdash; If selected, upon output qualifiers will be added (if not already present) to any value that contains a field delimiter or line break as part of its textual content.&lt;br /&gt;
&lt;br /&gt;
====Extraction Mode====&lt;br /&gt;
&lt;br /&gt;
If the table contains a header (i.e. one or more lines in the beginning of the file, containing description of the data, names of fields etc.), you can specify whether you want to extract the header data and/or data from the table body.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Extract header lines&amp;lt;/cite&amp;gt; &amp;amp;mdash; When selected, you can choose among these options:&lt;br /&gt;
&lt;br /&gt;
* Column names only &amp;amp;mdash; only column names will be sent as separate TextUnits, one for every column name.&lt;br /&gt;
&lt;br /&gt;
* All &amp;amp;mdash; all header lines will be sent as TUs (the column names line will be sent as a series of TUs for every column name, other lines will be sent as one TU for every line).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Extract table data&amp;lt;/cite&amp;gt; &amp;amp;mdash; When selected, TUs will be created for the table data (values in the table body), one TU for every row/column value.&lt;br /&gt;
&lt;br /&gt;
===Columns Tab===&lt;br /&gt;
&lt;br /&gt;
====Extraction Mode====&lt;br /&gt;
&lt;br /&gt;
Extraction mode directs the filter in what columns contain translatable text to be extracted and placed on text units. Text in the columns not containing translatable text will be placed in a skeleton.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Extract from all columns&amp;lt;/cite&amp;gt; &amp;amp;mdash; All columns contain translatable text.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Extract by column definitions&amp;lt;/cite&amp;gt; &amp;amp;mdash; The filter detects the translatable text based on column definitions provided in the Column definitions table (see below).&lt;br /&gt;
&lt;br /&gt;
====Number of Columns====&lt;br /&gt;
&lt;br /&gt;
This group tells the filter how to detect the number of columns in a table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Defined by values&amp;lt;/cite&amp;gt; &amp;amp;mdash; Number of columns is detected for every individual row, not for the whole table. If different rows contain different number of values, then different number of TUs will be sent for different rows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Defined by column names&amp;lt;/cite&amp;gt; &amp;amp;mdash; Number of columns in the table is determined by the number of column names. If the number of actual values in a row exceeds the number of column names, values in extra columns are dropped. If some expected data are missing in some rows, empty TUs are created for the missing columns data.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Fixed number of columns&amp;lt;/cite&amp;gt; &amp;amp;mdash; Number of columns is explicitly specified by the spinner value (1-100, default 2). Extra columns are dropped, empty TUs are created for missing columns.&lt;br /&gt;
&lt;br /&gt;
====Column Definitions====&lt;br /&gt;
&lt;br /&gt;
You can add or modify definitions for columns of your table.&lt;br /&gt;
&lt;br /&gt;
Every column has a 1-based index and a type:&lt;br /&gt;
&lt;br /&gt;
* Source &amp;amp;mdash; the column contains text in a source language.&lt;br /&gt;
&lt;br /&gt;
* Source ID &amp;amp;mdash; the column provides a unique ID for a source column. This ID becomes the name of the created text unit resource.&lt;br /&gt;
&lt;br /&gt;
* Target &amp;amp;mdash; the column contains text in target language for a given source column. &lt;br /&gt;
&lt;br /&gt;
* Comment &amp;amp;mdash; the column contains a comment for a specified source column.&lt;br /&gt;
&lt;br /&gt;
* Record ID &amp;amp;mdash; the column provides an ID for the current record (row).&lt;br /&gt;
&lt;br /&gt;
Every row in the table (can be multi-line by the means of text qualifiers) is considered a record. Every record can have a record ID (e.g. a database table primary key). It is possible not only to have several target columns for one source, but also several source columns in one table. To tell source columns one from another, you can specify an ID suffix. If a given source column doesn't have a source ID attached (in a source ID column), then the filter will append the ID suffix for that source column to the record ID, thus creating a name for the text unit.&lt;br /&gt;
&lt;br /&gt;
===Options Tab===&lt;br /&gt;
&lt;br /&gt;
====Text Unit Processing====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Allow trimming&amp;lt;/cite&amp;gt; &amp;amp;mdash; For CSV table type this option works together with &amp;lt;cite&amp;gt;CSV actions&amp;lt;/cite&amp;gt; - &amp;lt;cite&amp;gt;Exclude leading/trailing white spaces from extracted text&amp;lt;/cite&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Trim leading spaces and tabs - if selected, extracted text is trimmed left.&lt;br /&gt;
&lt;br /&gt;
* Trim trailing spaces and tabs - if selected, extracted text is trimmed right.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Convert \t \n \\ \uXXXX into characters&amp;lt;/cite&amp;gt; &amp;amp;mdash; If selected, escape sequences are converted to regular characters.&lt;br /&gt;
&lt;br /&gt;
====Multi-Line Text Units====&lt;br /&gt;
&lt;br /&gt;
When extracted text is multi-line, this group controls the way of combining multiple lines in a single text unit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Separate lines with line feeds&amp;lt;/cite&amp;gt; &amp;amp;mdash; multiple lines are extracted like a text run with \n separating the original lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Unwrap lines&amp;lt;/cite&amp;gt; &amp;amp;mdash; multiple lines are merged in a single text run, a space is inserted in-between the original lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Create inline codes for line breaks&amp;lt;/cite&amp;gt; &amp;amp;mdash; multiple lines are extracted like a single text run with an inline code containing the original line break and separating the lines.&lt;br /&gt;
&lt;br /&gt;
====Inline Codes====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Has inline codes as defined below&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to use the specified regular expressions on the text of the extracted items. Any match will be converted to an inline code.&lt;br /&gt;
&lt;br /&gt;
{{CodeFinder Help}}&lt;br /&gt;
&lt;br /&gt;
==Limitations==&lt;br /&gt;
&lt;br /&gt;
None known.&lt;br /&gt;
&lt;br /&gt;
[[Category:Filters]]&lt;/div&gt;</summary>
		<author><name>Amake</name></author>
	</entry>
	<entry>
		<id>http://okapiframework.org/wiki/index.php?title=Tikal_-_Miscellaneous_Commands&amp;diff=54</id>
		<title>Tikal - Miscellaneous Commands</title>
		<link rel="alternate" type="text/html" href="http://okapiframework.org/wiki/index.php?title=Tikal_-_Miscellaneous_Commands&amp;diff=54"/>
		<updated>2014-09-09T07:45:56Z</updated>

		<summary type="html">&lt;p&gt;Amake: /* Output Scoping Report */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tikal Common Menu}}&lt;br /&gt;
__TOC__&lt;br /&gt;
==Segment Files==&lt;br /&gt;
&lt;br /&gt;
This command applies [[SRX|SRX segmentation rules]] to the input files. If the file format supports segmented output (e.g. [[XLIFF Filter|XLIFF]], [[TTX Filter|TTX]]) the result of the segmentation is written in the output files.&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;code&amp;gt;-seg&amp;lt;/code&amp;gt; option to specify that the extracted text should be segmented. Use &amp;lt;code&amp;gt;-seg&amp;lt;/code&amp;gt; without file name to use the default segmentation rules, use &amp;quot;&amp;lt;code&amp;gt;-seg myRules.srx&amp;lt;/code&amp;gt;&amp;quot; to specify your own rules. The rules file must be in SRX format.&lt;br /&gt;
&lt;br /&gt;
The output files have a &amp;lt;code&amp;gt;.out&amp;lt;/code&amp;gt; extension pre-pended to the original extension. For example, if your original file is &amp;lt;code&amp;gt;myFile.html&amp;lt;/code&amp;gt;, the translated document should be &amp;lt;code&amp;gt;myFile.out.html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The syntax of this command is:&lt;br /&gt;
&lt;br /&gt;
 -s [options] inputFile [inputFile2...]&lt;br /&gt;
&lt;br /&gt;
Where the options are:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-fc configId&amp;lt;/code&amp;gt; || The identifier of the filter configuration to use for the extraction.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-ie encoding&amp;lt;/code&amp;gt; || The encoding name of the input files. this is used only if the filter cannot detect the encoding from the input file itself.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-sl srcLang&amp;lt;/code&amp;gt; || The code of the source language of the input files. [[Tikal - Usage#Source and Target Languages|See more details...]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-tl trgLang&amp;lt;/code&amp;gt; || The code of the target language for the output (also used in the input if the input documents are multilingual). [[Tikal - Usage#Source and Target Languages|See more details...]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|nowrap=&amp;quot;nowrap&amp;quot;| &amp;lt;code&amp;gt;-seg [srxFile]&amp;lt;/code&amp;gt; || The segmentation rules to utilize. To specify the default rules that come with the installation, use &amp;lt;code&amp;gt;-seg&amp;lt;/code&amp;gt; without filename. The default rules are in &amp;lt;code&amp;gt;config/defaultSegmentation.srx&amp;lt;/code&amp;gt; in your Okapi main directory.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|nowrap=&amp;quot;nowrap&amp;quot;|&amp;lt;code&amp;gt;-rd rootDirectory&amp;lt;/code&amp;gt; || The root directory (by default the user's home directory).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
 tikal -s myFile.xlf&lt;br /&gt;
&lt;br /&gt;
Creates an output document named &amp;lt;code&amp;gt;myFile.out.xlf&amp;lt;/code&amp;gt; from the input document &amp;lt;code&amp;gt;myFile.xlf&amp;lt;/code&amp;gt;. The entries in the output have been segmented according the default segmentation rules.&lt;br /&gt;
&lt;br /&gt;
==List Filter Configurations==&lt;br /&gt;
&lt;br /&gt;
This command lists all the filter configurations available for Tikal. The configurations listed are the ones you can use as filter configurations the the input files (&amp;lt;code&amp;gt;-fc&amp;lt;/code&amp;gt; option). This configuration indicates how to extract the document.&lt;br /&gt;
&lt;br /&gt;
The syntax of this command is:&lt;br /&gt;
&lt;br /&gt;
 -lfc | -listconf&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
 tikal -listconf&lt;br /&gt;
&lt;br /&gt;
Lists all the filter configurations currently available.&lt;br /&gt;
&lt;br /&gt;
==Edit Filter Configurations==&lt;br /&gt;
&lt;br /&gt;
This command edits or view filter configurations.&lt;br /&gt;
&lt;br /&gt;
{{NoteBox|This command requires access to UI editors that are available only if you have one of the okapi-apps platform-specific distribution. If you run this command from the okapi-lib cross-platform distribution you will get an error. To edit filter configurations in the okapi-lib distribution, open the &amp;lt;code&amp;gt;.fprm&amp;lt;/code&amp;gt; files. Make sure to always save your modifications in UTF-8.}}&lt;br /&gt;
&lt;br /&gt;
The syntax of this command is:&lt;br /&gt;
&lt;br /&gt;
 -e [[-fc] configId]&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
 tikal -e okf_regex@myConfig&lt;br /&gt;
&lt;br /&gt;
Edits the filter configuration &amp;lt;code&amp;gt;okf_regex@myConfig&amp;lt;/code&amp;gt;. This is a user configuration for the [[Regex Filter]].&lt;br /&gt;
&lt;br /&gt;
 tikal -e&lt;br /&gt;
&lt;br /&gt;
Opens the &amp;lt;cite&amp;gt;[[Filter Configurations]]&amp;lt;/cite&amp;gt; dialog box, where all the available configurations are listed and can be viewed or edited, and from where you can create new configurations.&lt;br /&gt;
&lt;br /&gt;
==Output Scoping Report==&lt;br /&gt;
&lt;br /&gt;
This command allows you to output a scoping report including word count, matching statistics, etc.&lt;br /&gt;
&lt;br /&gt;
The report will be output to stdout. The content is the same as the [[Scoping Report Step]]'s default template:&lt;br /&gt;
* Date&lt;br /&gt;
* File list&lt;br /&gt;
* Total word count&lt;br /&gt;
* If leveraging is used:&lt;br /&gt;
** Exact Local Context match word count&lt;br /&gt;
** 100% Match word count&lt;br /&gt;
** Fuzzy Match word count&lt;br /&gt;
** Repetition word count&lt;br /&gt;
&lt;br /&gt;
The syntax of this command is:&lt;br /&gt;
&lt;br /&gt;
  -sr [options] inputFile [inputFile2...]&lt;br /&gt;
&lt;br /&gt;
Available options:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-fc configId&amp;lt;/code&amp;gt; || The identifier of the filter configuration to use for the extraction.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-ie encoding&amp;lt;/code&amp;gt; || The encoding name of the input files. this is used only if the filter cannot detect the encoding from the input file itself.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-sl srcLang&amp;lt;/code&amp;gt; || The code of the source language of the input files. [[Tikal - Usage#Source and Target Languages|See more details...]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-tl trgLang&amp;lt;/code&amp;gt; || The code of the target language for the output (also used in the input if the input documents are multilingual). [[Tikal - Usage#Source and Target Languages|See more details...]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|nowrap=&amp;quot;nowrap&amp;quot;| &amp;lt;code&amp;gt;-seg [srxFile]&amp;lt;/code&amp;gt; || The segmentation rules to utilize. To specify the default rules that come with the installation, use &amp;lt;code&amp;gt;-seg&amp;lt;/code&amp;gt; without filename. The default rules are in &amp;lt;code&amp;gt;config/defaultSegmentation.srx&amp;lt;/code&amp;gt; in your Okapi main directory.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|nowrap=&amp;quot;nowrap&amp;quot;| &amp;lt;code&amp;gt;-pen tmDirectory&amp;amp;#x7c;&amp;lt;br/&amp;gt;-tt hostname[:port]&amp;amp;#x7c;&amp;lt;br/&amp;gt;-gs configFile&amp;amp;#x7c;&amp;lt;br/&amp;gt;-mm [key]&amp;amp;#x7c;&amp;lt;br/&amp;gt;-gg configFile&amp;amp;#x7c;&amp;lt;br/&amp;gt;-apertium [configFile]&amp;amp;#x7c;&amp;lt;br/&amp;gt;-ms configFile&amp;amp;#x7c;&amp;lt;br/&amp;gt;-tda configFile&amp;lt;/code&amp;gt;&lt;br /&gt;
| A translation resource connector to use to translate the document: &amp;lt;code&amp;gt;-pen&amp;lt;/code&amp;gt; for the [[Pensieve TM Connector]], &amp;lt;code&amp;gt;-tt&amp;lt;/code&amp;gt; for the [[Translate Toolkit TM Connector]], &amp;lt;code&amp;gt;-gs&amp;lt;/code&amp;gt; for the [[GlobalSight TM Connector]], &amp;lt;code&amp;gt;-mm&amp;lt;/code&amp;gt; for [[MyMemory TM Connector]], &amp;lt;code&amp;gt;-gg&amp;lt;/code&amp;gt; for the [[Google MT v2 Connector]],  &amp;lt;code&amp;gt;-apertium&amp;lt;/code&amp;gt; for the [[Apertium MT Connector]], &amp;lt;code&amp;gt;-ms&amp;lt;/code&amp;gt; for the [[Microsoft Translator Connector]], and &amp;lt;code&amp;gt;-tda&amp;lt;/code&amp;gt; for the [[TDA Translation Repository Connector]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-opt threshold&amp;lt;/code&amp;gt; || TM query option: The threshold is a number between 0 and 100. If this option is not set the default is 95. Note that this option may be limited for some search engines because of the way they are configured.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-maketmx [tmxFile]&amp;lt;/code&amp;gt; || Generates a TMX document with all the entries leveraged. You can specify the name of the document, if you do not it will be named &amp;lt;code&amp;gt;pretrans.tmx&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Tikal]] [[Category:Filters]] [[Category:Segmentation]]&lt;/div&gt;</summary>
		<author><name>Amake</name></author>
	</entry>
	<entry>
		<id>http://okapiframework.org/wiki/index.php?title=Tikal&amp;diff=462</id>
		<title>Tikal</title>
		<link rel="alternate" type="text/html" href="http://okapiframework.org/wiki/index.php?title=Tikal&amp;diff=462"/>
		<updated>2014-09-09T07:30:57Z</updated>

		<summary type="html">&lt;p&gt;Amake: Document Tikal scoping report&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Tikal1.png|thumb|Tikal on Macintosh]]&lt;br /&gt;
{| cellpadding=&amp;quot;8&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[Image:TikalIcon.png]]&lt;br /&gt;
|&lt;br /&gt;
Help Topics:&lt;br /&gt;
|&lt;br /&gt;
* [[Tikal - Usage|Usage]]&lt;br /&gt;
* [[Tikal - Extraction Commands#Extract Files|Extract Files]]&lt;br /&gt;
* [[Tikal - Extraction Commands#Merge Files|Merge Files]]&lt;br /&gt;
* [[Tikal - Extraction Commands#Extract Files to Moses|Extract Files to Moses]]&lt;br /&gt;
* [[Tikal - Extraction Commands#Leverage Files from Moses|Leverage Files from Moses]]&lt;br /&gt;
* [[Tikal - Translation Commands#Add Translation to a Resource|Add Translation to a Resource]]&lt;br /&gt;
|&lt;br /&gt;
* [[Tikal - Translation Commands#Translate Files|Translate Files]]&lt;br /&gt;
* [[Tikal - Translation Commands#Query Translation Resources|Query Translation Resources]]&lt;br /&gt;
* [[Tikal - Conversion Commands#Convert to PO Format|Convert to PO Format]]&lt;br /&gt;
* [[Tikal - Conversion Commands#Convert to TMX Format|Convert to TMX Format]]&lt;br /&gt;
* [[Tikal - Conversion Commands#Convert to Table Format|Convert to Table Format]]&lt;br /&gt;
* [[Tikal - Conversion Commands#Import into Pensieve TM|Import into Pensieve TM]]&lt;br /&gt;
|&lt;br /&gt;
* [[Tikal - Conversion Commands#Export TMX from Pensieve TM|Export TMX from Pensieve TM]]&lt;br /&gt;
* [[Tikal - Miscellaneous Commands#Segment Files|Segment Files]]&lt;br /&gt;
* [[Tikal - Miscellaneous Commands#List Filter Configurations|List Filter Configurations]]&lt;br /&gt;
* [[Tikal - Miscellaneous Commands#Edit Filter Configurations|Edit Filter Configurations]]&lt;br /&gt;
* [[Tikal - Miscellaneous Commands#Output Scoping Report|Output Scoping Report]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Tikal is a cross-platform command-line tool that performs some simple localization-related tasks, such as:&lt;br /&gt;
&lt;br /&gt;
* Extract and merge [[XLIFF|XLIFF documents]].&lt;br /&gt;
* Query different MT and TM systems.&lt;br /&gt;
* Perform format conversions.&lt;br /&gt;
* Translate directly files in various formats using TM or MT systems.&lt;br /&gt;
* Segment a source text.&lt;br /&gt;
* And more...&lt;br /&gt;
&lt;br /&gt;
Like other Okapi applications, Tikal uses the components provided by the Okapi libraries, for example [[Connectors|the connectors to different translation resource engines]] such as [[Apertium MT Connector|Apertium MT]], [[Translate Toolkit TM Connector|Translate Toolkit TM]], [[Google MT v2 Connector|Google MT]], [[Microsoft Translator Connector|Microsoft Translator]], [[MyMemory TM Connector|MyMemory TM]], etc.&lt;br /&gt;
&lt;br /&gt;
Tikal also uses the [[Filters|Okapi filters]], allowing you to process files in many different formats, such as: [[HTML Filter|HTML]], [[OpenOffice Filter|ODT]], [[OpenXML Filter|DOCX]], [[PO Filter|PO]], [[XLIFF Filter|XLIFF]], [[TMX Filter|TMX]], [[XML Filter|XML]], and many more. Its extraction and merge functions let you create easily [[XLIFF|XLIFF documents]].&lt;br /&gt;
&lt;br /&gt;
==Download==&lt;br /&gt;
&lt;br /&gt;
Tikal is available from both the okapi-apps and the okapi-lib distributions:&lt;br /&gt;
&lt;br /&gt;
* '''Stable release (okapi-apps): http://bintray.com/okapi/Distribution/Okapi_Applications&lt;br /&gt;
* Stable release (okapi-lib): http://bintray.com/okapi/Distribution/Okapi_Lib&lt;br /&gt;
* Development release (snapshot): http://okapi.opentag.com/snapshots&lt;br /&gt;
&lt;br /&gt;
[[Category:Tikal]]&lt;/div&gt;</summary>
		<author><name>Amake</name></author>
	</entry>
	<entry>
		<id>http://okapiframework.org/wiki/index.php?title=Text_Modification_Step&amp;diff=356</id>
		<title>Text Modification Step</title>
		<link rel="alternate" type="text/html" href="http://okapiframework.org/wiki/index.php?title=Text_Modification_Step&amp;diff=356"/>
		<updated>2013-11-22T06:37:17Z</updated>

		<summary type="html">&lt;p&gt;Amake: /* Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Steps Header}}&lt;br /&gt;
__TOC__&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
This step modifies the content of the text units.&lt;br /&gt;
&lt;br /&gt;
Takes: Filter events. Sends: Filter events.&lt;br /&gt;
&lt;br /&gt;
Text units set as non-translatable are not modified.&lt;br /&gt;
&lt;br /&gt;
Text units with existing translations are modified only if requested.&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Type of change to perform&amp;lt;/cite&amp;gt; &amp;amp;mdash; Select a kind of change to apply. Several are available:&lt;br /&gt;
&lt;br /&gt;
* Keep the original text&lt;br /&gt;
* Replace letters with Xs and digits with Ns.&lt;br /&gt;
* Remove text but keep inline codes.&lt;br /&gt;
* Replace selected ASCII characters with Extended Latin characters.&lt;br /&gt;
* Replace selected ASCII characters with Cyrillic characters.&lt;br /&gt;
* Replace selected ASCII characters with Arabic characters.&lt;br /&gt;
* Replace selected ASCII characters with Chinese characters.&lt;br /&gt;
&lt;br /&gt;
Note that the result of the character substitution is not meant have any specific meaning beyond being a set of characters in a given script. This function does not perform a translation, or a transliteration, or any other meaningful linguistic operation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Add the following prefix&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to add a prefix at the start of each text unit. Enter the text of the prefix.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Add the following suffix&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to add a suffix at the end of each text unit. Enter the text of the suffix.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Append the name of the item&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to add the name of each text unit at the end of its value. If the text unit has no name associated, the extraction ID is added instead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Append the extraction ID of the item&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to add the extraction ID of each text unit at the end of its value. Extraction IDs are filter-specific.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Marks segments with '[' and ']' delimiters&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to add delimiters to the segments in each text unit. The delimiters are just around the text (after the prefix if one is added, and before the item name, extraction ID, and suffix if they are added). If the text unit is not segmented, the delimiters are added at the front and back of the full content of the text unit.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Expand the text&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to expand the text. If the content is less than 31 characters it is expanded by 50% or at least one character. If it is longer than 30 characters, it is expanded by 100%. Empty strings are not expanded.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Modify also the items without text&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to apply the changes also to text units that have no text (i.e. are empty, or contain only white spaces or codes).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Modify also the items with an existing translation&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to apply the changes also to text units that already have a translation (e.g. for multilingual files).&lt;br /&gt;
&lt;br /&gt;
==Limitations==&lt;br /&gt;
&lt;br /&gt;
None known.&lt;br /&gt;
&lt;br /&gt;
[[Category:Steps]]&lt;/div&gt;</summary>
		<author><name>Amake</name></author>
	</entry>
	<entry>
		<id>http://okapiframework.org/wiki/index.php?title=Cleanup_Step&amp;diff=428</id>
		<title>Cleanup Step</title>
		<link rel="alternate" type="text/html" href="http://okapiframework.org/wiki/index.php?title=Cleanup_Step&amp;diff=428"/>
		<updated>2013-11-22T06:00:43Z</updated>

		<summary type="html">&lt;p&gt;Amake: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Steps Header}}&lt;br /&gt;
__TOC__&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
This step cleans strings by normalizing quotes, punctuation, etc. ready for further processing.&lt;br /&gt;
&lt;br /&gt;
Takes: Filter events. Sends: Filter events.&lt;br /&gt;
&lt;br /&gt;
By default, all whitespace is normalized before any further processing is performed; all multiple space, tab, etc. characters are replaced with a single instance.&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Normalize quotation marks&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to replace all quotation marks with straight double quotes (&amp;amp;quot;) and all apostrophes with single straight quotes (&amp;amp;#39;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Mark segments matching default regular expressions for removal&amp;lt;/cite&amp;gt; &amp;amp;mdash; This option is not currently used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Mark segments matching user defined regular expressions for removal&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to remove text units that contain text that matches the user defined regular expression.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Check for corrupt or unexpected characters&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to detect and remove text units that contain common corrupt character strings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Remove unnecessary segments from text unit&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to remove text units that have been marked for removal or have no target text.&lt;br /&gt;
&lt;br /&gt;
==Limitations==&lt;br /&gt;
&lt;br /&gt;
Does not work with Asian or bi-directional languages.&lt;br /&gt;
&lt;br /&gt;
[[Category:Steps]]&lt;/div&gt;</summary>
		<author><name>Amake</name></author>
	</entry>
	<entry>
		<id>http://okapiframework.org/wiki/index.php?title=Tikal_-_Translation_Commands&amp;diff=70</id>
		<title>Tikal - Translation Commands</title>
		<link rel="alternate" type="text/html" href="http://okapiframework.org/wiki/index.php?title=Tikal_-_Translation_Commands&amp;diff=70"/>
		<updated>2013-11-13T05:50:11Z</updated>

		<summary type="html">&lt;p&gt;Amake: /* Translate Files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tikal Common Menu}}&lt;br /&gt;
__TOC__&lt;br /&gt;
==Translate Files==&lt;br /&gt;
&lt;br /&gt;
This command creates a pre-translated version of the input files. It is basically the same thing as running an [[Tikal - Extraction Commands#Extract Files|Extract Files command]] (with pre-translation) immediately followed by a [[Tikal - Extraction Commands#Merge Files|Merge Files command]].&lt;br /&gt;
&lt;br /&gt;
By default, some extensions are mapped to a specific filter configuration (for example: &amp;lt;code&amp;gt;.docx&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;okf_openxml&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.odt&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;okf_openoffice&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.po&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;okf_po&amp;lt;/code&amp;gt;, etc.). But you can define your own configuration and specify it as well using the &amp;lt;code&amp;gt;-fc&amp;lt;/code&amp;gt; option. To get a list of all available filter configurations use the [[Tikal - Miscellaneous Commands#List Filter Configurations|List Filter Configurations command]]. For more details the filters available and their configurations, see each [[Filters|filter's documentation]].&lt;br /&gt;
&lt;br /&gt;
You can use the &amp;lt;code&amp;gt;-seg&amp;lt;/code&amp;gt; option to specify that the extracted text should be segmented. Use &amp;lt;code&amp;gt;-seg&amp;lt;/code&amp;gt; without file name to use the default segmentation rules, use &amp;quot;&amp;lt;code&amp;gt;-seg myRules.srx&amp;lt;/code&amp;gt;&amp;quot; to specify your own rules. The rules file must be in SRX format.&lt;br /&gt;
&lt;br /&gt;
The output files have a &amp;lt;code&amp;gt;.out&amp;lt;/code&amp;gt; extension prepended to the original extension. For example, if your original file is &amp;lt;code&amp;gt;myFile.html&amp;lt;/code&amp;gt;, the translated document should be &amp;lt;code&amp;gt;myFile.out.html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The syntax of this command is:&lt;br /&gt;
&lt;br /&gt;
 -t [options] inputFile [inputFile2...]&lt;br /&gt;
&lt;br /&gt;
Where the options are:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-fc configId&amp;lt;/code&amp;gt; || The identifier of the filter configuration to use for the extraction.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-ie encoding&amp;lt;/code&amp;gt; || The encoding name of the input files. This is used only if the filter cannot detect the encoding from the input file itself.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-sl srcLang&amp;lt;/code&amp;gt; || The code of the source language of the input files. [[Tikal - Usage#Source and Target Languages|See more details...]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-tl trgLang&amp;lt;/code&amp;gt; || The code of the target language for the output (also used in the input if the input documents are multilingual). [[Tikal - Usage#Source and Target Languages|See more details...]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-seg [srxFile]&amp;lt;/code&amp;gt; || The segmentation rules to utilize. To specify the default rules that come with the installation, use &amp;lt;code&amp;gt;-seg&amp;lt;/code&amp;gt; without filename. The default rules are in &amp;lt;code&amp;gt;config/defaultSegmentation.srx&amp;lt;/code&amp;gt; in your Okapi main directory.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|nowrap=&amp;quot;nowrap&amp;quot;| &amp;lt;code&amp;gt;-pen tmDirectory&amp;amp;#x7c;&amp;lt;br/&amp;gt;-tt [hostname[:port]]&amp;amp;#x7c;&amp;lt;br/&amp;gt;-gs configFile&amp;amp;#x7c;&amp;lt;br/&amp;gt;-mm [key]&amp;amp;#x7c;&amp;lt;br/&amp;gt;-gg configFile&amp;amp;#x7c;&amp;lt;br/&amp;gt;-apertium [configFile]&amp;amp;#x7c;&amp;lt;br/&amp;gt;-ms configFile&amp;amp;#x7c;&amp;lt;br/&amp;gt;-tda configFile&amp;amp;#x7c;&amp;lt;br/&amp;gt;-bi bilingualFile&amp;lt;/code&amp;gt;&lt;br /&gt;
| A translation resource connector to use to translate the document: &amp;lt;code&amp;gt;-pen&amp;lt;/code&amp;gt; for the [[Pensieve TM Connector]], &amp;lt;code&amp;gt;-tt&amp;lt;/code&amp;gt; for the [[Translate Toolkit TM Connector]], &amp;lt;code&amp;gt;-gs&amp;lt;/code&amp;gt; for the [[GlobalSight TM Connector]], &amp;lt;code&amp;gt;-mm&amp;lt;/code&amp;gt; for [[MyMemory TM Connector]], &amp;lt;code&amp;gt;-gg&amp;lt;/code&amp;gt; for the [[Google MT v2 Connector]], &amp;lt;code&amp;gt;-apertium&amp;lt;/code&amp;gt; for the [[Apertium MT Connector]], &amp;lt;code&amp;gt;-ms&amp;lt;/code&amp;gt; for the [[Microsoft Translator Connector]], &amp;lt;code&amp;gt;-tda&amp;lt;/code&amp;gt; for the [[TDA Translation Repository Connector]], and &amp;lt;code&amp;gt;-bi&amp;lt;/code&amp;gt; for the [[Bilingual File Connector]].&lt;br /&gt;
&lt;br /&gt;
The leveraging occurs after segmentation, if you have specified segmentation rules.&lt;br /&gt;
&lt;br /&gt;
Note that some Internet-based resource may be slow and result in lengthy processing time. Be also aware that some translation resources may not always provide a good handling of inline codes.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-opt threshold&amp;lt;/code&amp;gt; || TM query option: The threshold is a number between 0 and 100. If this option is not set the default is 95. Note that this option may be limited for some search engines because of the way they are configured.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-maketmx [tmxFile]&amp;lt;/code&amp;gt; || Generates a TMX document with all the entries leveraged. You can specify the name of the document, if you do not it will be named &amp;lt;code&amp;gt;pretrans.tmx&amp;lt;/code&amp;gt;.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|nowrap=&amp;quot;nowrap&amp;quot;|&amp;lt;code&amp;gt;-rd rootDirectory&amp;lt;/code&amp;gt; || The root directory (by default the user's home directory).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
 tikal -t *.html -sl en -tl eo -apertium&lt;br /&gt;
&lt;br /&gt;
Translate from English to Esperanto all .html files in the current directory, using the default Apertium MT server. No segmentation is used.&lt;br /&gt;
&lt;br /&gt;
==Query Translation Resources==&lt;br /&gt;
&lt;br /&gt;
This command queries one or more translation resources for a given text.&lt;br /&gt;
&lt;br /&gt;
You can query all resources at once. When querying several resources, the results are shown per resource, not sorted by best score as a whole.&lt;br /&gt;
&lt;br /&gt;
The syntax of this command is:&lt;br /&gt;
&lt;br /&gt;
 -q &amp;quot;text&amp;quot; [options]&lt;br /&gt;
&lt;br /&gt;
Where the options are:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-sl srcLang&amp;lt;/code&amp;gt; || The code of the source language (language of the text queried). [[Tikal - Usage#Source and Target Languages|See more details...]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-tl trgLang&amp;lt;/code&amp;gt; || The code of the target language (language of the requested translation). [[Tikal - Usage#Source and Target Languages|See more details...]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-pen directory&amp;lt;/code&amp;gt; || Queries a [[Pensieve TM Connector|Pensieve TM]] stored in a given directory.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-opentran&amp;lt;/code&amp;gt; || Queries the [[OpenTran Translation Repository Connector|Open-Tran translation repository]]. This requires Internet access.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-gs configFile&amp;lt;/code&amp;gt; || Queries a [[GlobalSight TM Connector|GlobalSight TM]] server. This requires Internet access.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-tt [hostname[:port]]&amp;lt;/code&amp;gt; || Queries the specified [[Translate Toolkit TM Connector|Translate Toolkit TM]] server. The server can be local or remote.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-mm [key]&amp;lt;/code&amp;gt; || Queries the [[MyMemory TM Connector|MyMemory TM]] with an optional key access (use &amp;lt;code&amp;gt;mmDemo123&amp;lt;/code&amp;gt; for demo). They key is for backward compatibility. This requires Internet access.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-gg configFile&amp;lt;/code&amp;gt; || Queries the [[Google MT v2 Connector|Google MT paid service]]. This requires Internet access. The &amp;lt;code&amp;gt;-google&amp;lt;/code&amp;gt; parameter works also like &amp;lt;code&amp;gt;-gg&amp;lt;/code&amp;gt; (it used to invoke the v1 of Google Translate which has been discontinued).&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-apertium [configFile]&amp;lt;/code&amp;gt; || Queries the specified [[Apertium MT Connector|Apertium MT]] server (local or remote). A default remote server is provided.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-ms configFile&amp;lt;/code&amp;gt; || Queries the [[Microsoft Translator Connector|Microsoft Translator service]]. This requires Internet access.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-tda configFile&amp;lt;/code&amp;gt; || Queries the [[TDA Translation Repository Connector|TDA translation repository]]. This requires Internet access.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-bi bilingualFile&amp;lt;/code&amp;gt; || Queries a [[Bilingual File Connector|bilingual file]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|nowrap=&amp;quot;nowrap&amp;quot;| &amp;lt;code&amp;gt;-opt threshold[:maxhits]&amp;lt;/code&amp;gt; || TM query options: The threshold is a number between 0 and 100. The maximum number of hits is a number above 0. If this option is not set each TM engine uses its own defaults. If this option is set, all TM engines are set to use the specified options. Note that parameters of some engines may be limited by their server-side configuration.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Because the text of the query cannot be associated with a given file format, there is no support for format-specific inline codes. However, when querying a resource that is inline-code aware, you can use HTML-like tags to replace codes: For example, in &amp;quot;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Open the &amp;lt;x&amp;gt;window&amp;lt;/x&amp;gt;&amp;lt;x/&amp;gt;.&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;quot; the tags &amp;quot;&amp;lt;code&amp;gt;&amp;amp;lt;x&amp;gt;&amp;lt;/code&amp;gt;&amp;quot;, &amp;quot;&amp;lt;code&amp;gt;&amp;amp;lt;/x&amp;gt;&amp;lt;/code&amp;gt;&amp;quot; and &amp;quot;&amp;lt;code&amp;gt;&amp;amp;lt;x/&amp;gt;&amp;lt;/code&amp;gt;&amp;quot; are interpreted as opening, closing and placeholder inline codes, and the query processed as such. When querying resources that are not inline code-aware, the tags are treated as plain text. You can use any well-formed XML syntax, not necessarily an element &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
 tikal -q &amp;quot;open file&amp;quot; -sl en&lt;br /&gt;
&lt;br /&gt;
Queries the default translation resource ([[OpenTran Translation Repository Connector|Open-Tran]]) for the text &amp;quot;&amp;lt;code&amp;gt;open file&amp;lt;/code&amp;gt;&amp;quot; in English. The target language by default is French. Note: You could omit the -sl option if you are running from a English system.&lt;br /&gt;
&lt;br /&gt;
 tikal -q &amp;quot;open &amp;lt;x&amp;gt;file&amp;lt;/x&amp;gt;&amp;quot; -sl en -pen mytm -opt 60:20&lt;br /&gt;
&lt;br /&gt;
Queries the Pensieve TM located in &amp;lt;code&amp;gt;mytm&amp;lt;/code&amp;gt; for the text &amp;quot;&amp;lt;code&amp;gt;open &amp;amp;lt;x&amp;gt;file&amp;amp;lt;/x&amp;gt;&amp;lt;/code&amp;gt;&amp;quot; in English. The target language by default is French. Because Pensieve TM can work with inline codes, the tags &amp;quot;&amp;lt;code&amp;gt;&amp;amp;lt;x&amp;gt;&amp;lt;/code&amp;gt;&amp;quot; and &amp;quot;&amp;lt;code&amp;gt;&amp;amp;lt;/x&amp;gt;&amp;lt;/code&amp;gt;&amp;quot; are processed as inline codes. The threshold is set to 60 and the maximum hits is set to 20.&lt;br /&gt;
&lt;br /&gt;
 tikal -q &amp;quot;open file&amp;quot; -ms appid.key&lt;br /&gt;
&lt;br /&gt;
Queries the [[Microsoft Translator Connector|Microsoft Translator engine]] for the English text &amp;quot;&amp;lt;code&amp;gt;open file&amp;lt;/code&amp;gt;&amp;quot; in French. The file &amp;lt;code&amp;gt;appid.key&amp;lt;/code&amp;gt; contains your Microsoft AppId value. Those keys are free, but you need to register to have one. See http://www.bing.com/developers/appids.aspx for details.&lt;br /&gt;
&lt;br /&gt;
 tikal -q &amp;quot;open file&amp;quot; -opentran -sl en -tl zu&lt;br /&gt;
&lt;br /&gt;
Queries the Open-Tran translation repository for the English text &amp;quot;&amp;lt;code&amp;gt;open file&amp;lt;/code&amp;gt;&amp;quot; in Zulu.&lt;br /&gt;
&lt;br /&gt;
 tikal -q &amp;quot;open file&amp;quot; -tt localhost:8080 -sl en -tl af&lt;br /&gt;
&lt;br /&gt;
Queries a local Translate Toolkit TM server located on &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://localhost:8080&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The source is English and the requested translation is Afrikaans.&lt;br /&gt;
&lt;br /&gt;
 tikal -q &amp;quot;Data type&amp;quot; -tda myTDAInfo.cfg -sl en-us -tl fr=fr&lt;br /&gt;
&lt;br /&gt;
Queries the TDA translation repository to get the French translation of the US English text &amp;quot;&amp;lt;code&amp;gt;Data type&amp;lt;/code&amp;gt;&amp;quot;. The file &amp;lt;code&amp;gt;myTDAInfo.cfg&amp;lt;/code&amp;gt; holds the options and credentials to access the repository.&lt;br /&gt;
&lt;br /&gt;
==Add Translation to a Resource==&lt;br /&gt;
&lt;br /&gt;
This command adds a translation (source and target text) to a given translation resource.&lt;br /&gt;
&lt;br /&gt;
For now this command is implemented only for the [[Microsoft Translator Connector|Microsoft Translator]] resource.&lt;br /&gt;
&lt;br /&gt;
The syntax of this command is:&lt;br /&gt;
&lt;br /&gt;
 -a &amp;quot;source text&amp;quot; &amp;quot;target text&amp;quot; [options] -ms configFile&lt;br /&gt;
&lt;br /&gt;
Where the options are:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt; || The rating to associate with the translation. The value must be between 1 and 10 (included). By default it is set to 6. MT results have generally a rating of 5.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-sl srcLang&amp;lt;/code&amp;gt; || The code of the source language (language of the source text). [[Tikal - Usage#Source and Target Languages|See more details...]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;-tl trgLang&amp;lt;/code&amp;gt; || The code of the target language (language of the target text). [[Tikal - Usage#Source and Target Languages|See more details...]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: Because the provided text cannot be associated with a given file format, you should use HTML-like tags to replace codes: For example, in &amp;quot;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;Open the &amp;lt;x&amp;gt;window&amp;lt;/x&amp;gt;&amp;lt;x/&amp;gt;.&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;quot; the tags &amp;quot;&amp;lt;code&amp;gt;&amp;amp;lt;x&amp;gt;&amp;lt;/code&amp;gt;&amp;quot;, &amp;quot;&amp;lt;code&amp;gt;&amp;amp;lt;/x&amp;gt;&amp;lt;/code&amp;gt;&amp;quot; and &amp;quot;&amp;lt;code&amp;gt;&amp;amp;lt;x/&amp;gt;&amp;lt;/code&amp;gt;&amp;quot; are interpreted as opening, closing and placeholder inline codes, and the query processed as such.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
 tikal -a &amp;quot;Text to add&amp;quot; &amp;quot;Texte à ajouter&amp;quot; -sl en -tl fr -ms myConfig.cfg&lt;br /&gt;
&lt;br /&gt;
Adds the pair &amp;quot;Text to add&amp;quot; + &amp;quot;Texte à ajouter&amp;quot; to the [[Microsoft Translator Connector|Microsoft Translator]]'s repository. The source language is English and the target language is French. The file &amp;lt;code&amp;gt;myConfig.cfg&amp;lt;/code&amp;gt; contains the parameters to access the engine.&lt;br /&gt;
&lt;br /&gt;
[[Category:Tikal]] [[Category:Connectors]] [[Category:Filters]]&lt;/div&gt;</summary>
		<author><name>Amake</name></author>
	</entry>
	<entry>
		<id>http://okapiframework.org/wiki/index.php?title=Bilingual_File_Connector&amp;diff=144</id>
		<title>Bilingual File Connector</title>
		<link rel="alternate" type="text/html" href="http://okapiframework.org/wiki/index.php?title=Bilingual_File_Connector&amp;diff=144"/>
		<updated>2013-11-13T05:48:41Z</updated>

		<summary type="html">&lt;p&gt;Amake: /* Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Connectors Header}}&lt;br /&gt;
__TOC__&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
This connector allows one to directly query any Okapi-supported bilingual file format.&lt;br /&gt;
&lt;br /&gt;
Under the hood it imports the specified file to a temporary [[Pensieve TM]]; all queries are actually serviced by the [[Pensieve TM Connector]].&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Bilingual file&amp;lt;/cite&amp;gt; &amp;amp;mdash; The path of the file to use. The file must be a bilingual file such as a TMX, PO, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Input encoding&amp;lt;/cite&amp;gt; &amp;amp;mdash; The encoding of the bilingual file. This is only used if the filter cannot auto-detect the encoding. The default depends on your system.&lt;br /&gt;
&lt;br /&gt;
==Limitations==&lt;br /&gt;
&lt;br /&gt;
* Okapi must be able to auto-detect the appropriate file filter for the bilingual file. In practice this means that the file must have the correct extension (e.g. &amp;lt;code&amp;gt;.tmx&amp;lt;/code&amp;gt; for TMX files, etc.).&lt;br /&gt;
&lt;br /&gt;
* Custom filter configurations are currently not supported.&lt;br /&gt;
&lt;br /&gt;
[[Category:Connectors]]&lt;/div&gt;</summary>
		<author><name>Amake</name></author>
	</entry>
	<entry>
		<id>http://okapiframework.org/wiki/index.php?title=Wiki_Filter&amp;diff=82</id>
		<title>Wiki Filter</title>
		<link rel="alternate" type="text/html" href="http://okapiframework.org/wiki/index.php?title=Wiki_Filter&amp;diff=82"/>
		<updated>2013-05-24T07:57:14Z</updated>

		<summary type="html">&lt;p&gt;Amake: /* Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Filters Header}}&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
The Wiki Filter is an Okapi component for extracting translatable text from wiki markup. Currently the only supported style of markup is [https://www.dokuwiki.org/dokuwiki Dokuwiki].&lt;br /&gt;
&lt;br /&gt;
  === &amp;lt;span class=&amp;quot;hi&amp;quot;&amp;gt;Header&amp;lt;/span&amp;gt; ===&lt;br /&gt;
  &amp;lt;span class=&amp;quot;hi&amp;quot;&amp;gt;Paragraph&amp;lt;/span&amp;gt;&lt;br /&gt;
   * &amp;lt;span class=&amp;quot;hi&amp;quot;&amp;gt;List item&amp;lt;/span&amp;gt;&lt;br /&gt;
    * &amp;lt;span class=&amp;quot;hi&amp;quot;&amp;gt;List item&amp;lt;/span&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;nowiki&amp;gt;{{image.jpg|&amp;lt;/nowiki&amp;gt;&amp;lt;span class=&amp;quot;hi&amp;quot;&amp;gt;Image caption&amp;lt;/span&amp;gt;}}&lt;br /&gt;
  &lt;br /&gt;
  ^ &amp;lt;span class=&amp;quot;hi&amp;quot;&amp;gt;Table header 1&amp;lt;/span&amp;gt; ^ &amp;lt;span class=&amp;quot;hi&amp;quot;&amp;gt;Table header 2&amp;lt;/span&amp;gt; |&lt;br /&gt;
  | &amp;lt;span class=&amp;quot;hi&amp;quot;&amp;gt;Table cell 1&amp;lt;/span&amp;gt; | &amp;lt;span class=&amp;quot;hi&amp;quot;&amp;gt;Table cell 2&amp;lt;/span&amp;gt; |&lt;br /&gt;
&lt;br /&gt;
==Processing Details==&lt;br /&gt;
&lt;br /&gt;
===Input Encoding===&lt;br /&gt;
&lt;br /&gt;
The filter decides which encoding to use for the input document using the following logic:&lt;br /&gt;
&lt;br /&gt;
* If the file has a Unicode Byte-Order-Mark:&lt;br /&gt;
** Then, the corresponding encoding (e.g. UTF-8, UTF-16, etc.) is used. &lt;br /&gt;
* Otherwise, the input encoding used is the default encoding that was specified when opening the document.&lt;br /&gt;
&lt;br /&gt;
===Inline Codes===&lt;br /&gt;
All Dokuwiki syntax described [https://www.dokuwiki.org/syntax here] is supported.&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
&lt;br /&gt;
Prevent the filter from collapsing whitespace by setting &amp;lt;code&amp;gt;preserve_whitespace: true&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You may define custom inline codes as follows:&lt;br /&gt;
&lt;br /&gt;
  custom_codes:&lt;br /&gt;
    - pattern: &amp;quot;'''REGEX_PATTERN'''&amp;quot;&lt;br /&gt;
    - {start_pattern: &amp;quot;'''REGEX_PATTERN'''&amp;quot;, end_pattern: &amp;quot;'''REGEX_PATTERN'''&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
Specify just &amp;lt;code&amp;gt;pattern&amp;lt;/code&amp;gt; for a placeholder tag; specify a &amp;lt;code&amp;gt;start_pattern&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;end_pattern&amp;lt;/code&amp;gt; for opening/closing tag pairs.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Item&lt;br /&gt;
!Description&lt;br /&gt;
!Example value&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;REGEX_PATTERN&amp;lt;/code&amp;gt;&lt;br /&gt;
|Any valid regex that matches non-zero-width runs of text within the comment. Matches will be turned into codes according to the parameters as described above.&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;\[(path|menu)[^\]]*\]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Limitations==&lt;br /&gt;
&lt;br /&gt;
* Attributes of inline codes (link and image URLs, etc.) are not exposed for translation or special processing.&lt;br /&gt;
* Embedded HTML, PHP, etc., is not extracted.&lt;br /&gt;
&lt;br /&gt;
[[Category:Filters]]&lt;/div&gt;</summary>
		<author><name>Amake</name></author>
	</entry>
	<entry>
		<id>http://okapiframework.org/wiki/index.php?title=Template:Steps_Header&amp;diff=104</id>
		<title>Template:Steps Header</title>
		<link rel="alternate" type="text/html" href="http://okapiframework.org/wiki/index.php?title=Template:Steps_Header&amp;diff=104"/>
		<updated>2013-03-05T08:16:02Z</updated>

		<summary type="html">&lt;p&gt;Amake: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float: right; border: 1px solid; background: white; margin:1em; margin-top:1px; padding:0.5em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0.2em; padding-right: 0.5em;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Steps|Steps List and Overview]]&lt;br /&gt;
* [[Knowledge Base#Pipelines and Steps|Articles on Pipelines and Steps in the Knowledge Base]]&lt;br /&gt;
* [[Rainbow - Utilities|All Rainbow Utilities]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Amake</name></author>
	</entry>
	<entry>
		<id>http://okapiframework.org/wiki/index.php?title=Rainbow_-_Main_Window&amp;diff=248</id>
		<title>Rainbow - Main Window</title>
		<link rel="alternate" type="text/html" href="http://okapiframework.org/wiki/index.php?title=Rainbow_-_Main_Window&amp;diff=248"/>
		<updated>2013-01-31T03:18:30Z</updated>

		<summary type="html">&lt;p&gt;Amake: /* Root */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Rainbow Common Menu}}&lt;br /&gt;
__TOC__&lt;br /&gt;
===Input List Tabs===&lt;br /&gt;
&lt;br /&gt;
====Root====&lt;br /&gt;
&lt;br /&gt;
Each input list is associated with a root. Each list can have a different root. This root is displayed above the tabs, allowing you to see it even when another type of tab is selected.&lt;br /&gt;
&lt;br /&gt;
To change a root:&lt;br /&gt;
&lt;br /&gt;
* Select &amp;lt;cite&amp;gt;Edit Root&amp;lt;/cite&amp;gt; in the &amp;lt;cite&amp;gt;Input&amp;lt;/cite&amp;gt; menu (or the context menu),&lt;br /&gt;
* or press &amp;lt;tt&amp;gt;F2&amp;lt;/tt&amp;gt;,&lt;br /&gt;
* or click on the browse button near the root.&lt;br /&gt;
&lt;br /&gt;
To use for root the directory where the project is saved leaves the root field empty. If the project is not saved yet, the root will point to your home directory.&lt;br /&gt;
&lt;br /&gt;
When a new project has not been saved yet, the default root is the user's home directory. The first time you add a document to one of the input lists, Rainbow will automatically change the root of that list as well as the &amp;lt;cite&amp;gt;Filter Parameters&amp;lt;/cite&amp;gt; option to the directory where the added document is located.&lt;br /&gt;
&lt;br /&gt;
If there is already an input document in the list and you add one that cannot use root currently defined, the tool will try to adjust the root automatically (and all the relative path of the document already in the list. If the documents are on different shares or drives you may not be able to adjust the root.&lt;br /&gt;
&lt;br /&gt;
Expansion of system environment variables such as &amp;lt;code&amp;gt;${HOME}&amp;lt;/code&amp;gt;, as well as the Okapi-specific &amp;lt;code&amp;gt;${rootDir}&amp;lt;/code&amp;gt; (the location of the .rnb file when saved; the user's home directory when unsaved), is supported.&lt;br /&gt;
&lt;br /&gt;
====Input Documents====&lt;br /&gt;
&lt;br /&gt;
To add a document in a list:&lt;br /&gt;
&lt;br /&gt;
* Select the &amp;lt;cite&amp;gt;Add Documents&amp;lt;/cite&amp;gt; in the &amp;lt;cite&amp;gt;Input&amp;lt;/cite&amp;gt; menu (or the context menu), &lt;br /&gt;
* or press &amp;lt;tt&amp;gt;Ctrl+Insert&amp;lt;/tt&amp;gt;, &lt;br /&gt;
* or drag the documents and drop them on the list.&lt;br /&gt;
&lt;br /&gt;
You can move the documents up and down in the list (for example to align them with another list) by using the commands &amp;lt;cite&amp;gt;Move Up&amp;lt;/cite&amp;gt; and &amp;lt;cite&amp;gt;Move Down&amp;lt;/cite&amp;gt; in the &amp;lt;cite&amp;gt;Input&amp;lt;/cite&amp;gt; menu (or the context menu), or press &amp;lt;tt&amp;gt;Alt+Up&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Alt+Down&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To select all documents in the list press &amp;lt;tt&amp;gt;Ctrl+A&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To remove documents from a list: Select the documents you want to remove and select &amp;lt;cite&amp;gt;Remove Documents&amp;lt;/cite&amp;gt; in the &amp;lt;cite&amp;gt;Input&amp;lt;/cite&amp;gt; menu (or the context menu), or press &amp;lt;tt&amp;gt;Delete&amp;lt;/tt&amp;gt;. You will be prompted to confirm the removal. Removing a document from the list does not affect the real document in any way.&lt;br /&gt;
&lt;br /&gt;
To associate a document with a specific filter configuration: Select the document and select &amp;lt;cite&amp;gt;Edit Document Properties&amp;lt;/cite&amp;gt; in the &amp;lt;cite&amp;gt;Input&amp;lt;/cite&amp;gt; menu (or context menu), or press &amp;lt;tt&amp;gt;Alt+Enter&amp;lt;/tt&amp;gt;, or double-click on the &amp;lt;cite&amp;gt;Filter Configuration&amp;lt;/cite&amp;gt; column. This will open the &amp;lt;cite&amp;gt;Input Document Properties&amp;lt;/cite&amp;gt; dialog box where you can make changes.&lt;br /&gt;
&lt;br /&gt;
===Languages and Encodings Tab===&lt;br /&gt;
&lt;br /&gt;
====Source====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Language&amp;lt;/cite&amp;gt; &amp;amp;mdash; Enter or select the code of the source language.&lt;br /&gt;
&lt;br /&gt;
The language codes can be any type of BCP-47 code, or POSIX locales.&lt;br /&gt;
&lt;br /&gt;
Note: Locale and Languages. Nowadays there is not many difference between a language code and a locale code, as the new language tags of the BCP-47 includes sub-tags that represent various regional or special variants, as well as script difference. For example, &amp;lt;code&amp;gt;ES-005&amp;lt;/code&amp;gt; stands for Latin-America Spanish, &amp;lt;code&amp;gt;zh-Hant-tw&amp;lt;/code&amp;gt; for Traditional Chinese used in Taiwan, etc. For more information about BCP-47 see http://tools.ietf.org/html/rfc4647, and this overview: http://www.w3.org/International/articles/language-tags/. See also the &amp;quot;[[How to Add Languages to Rainbow]]&amp;quot; article.&lt;br /&gt;
&lt;br /&gt;
The terms locale and language used interchangeably in Rainbow's interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Encoding&amp;lt;/cite&amp;gt; &amp;amp;mdash; Enter or select the name of the encoding for the source language. This is the default source encoding. You can overwrite this value for each input document in the &amp;lt;cite&amp;gt;Input Document Properties&amp;lt;/cite&amp;gt; dialog.&lt;br /&gt;
&lt;br /&gt;
You can obtain a list of all encodings supported by your system with the &amp;lt;cite&amp;gt;Tools&amp;lt;/cite&amp;gt; &amp;gt; &amp;lt;cite&amp;gt;List Available Encodings&amp;lt;/cite&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
When used as an input encoding, the encoding defined here and in the &amp;lt;cite&amp;gt;Input Document Properties&amp;lt;/cite&amp;gt; dialog, may be superseded by the encoding automatically detected in the input file.&lt;br /&gt;
&lt;br /&gt;
====Target====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Language&amp;lt;/cite&amp;gt; &amp;amp;mdash; Enter or select the code of the target language.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Encoding&amp;lt;/cite&amp;gt; &amp;amp;mdash; Enter or select the name of the encoding for the target language. This is the default target encoding. You can overwrite this value for each input document in the &amp;lt;cite&amp;gt;Input Document Properties&amp;lt;/cite&amp;gt; dialog.&lt;br /&gt;
&lt;br /&gt;
===Other Settings Tab===&lt;br /&gt;
&lt;br /&gt;
====Output====&lt;br /&gt;
&lt;br /&gt;
Some utilities generate one output document for each input document (e.g. Encoding Conversion). You can choose the location and the name of these output files here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Use this root&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to replace the input root by the root entered in this field.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Custom sub-folder&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to add an extra sub-directory between the root and the relative path of the output file. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Original input root = C:\myProject&lt;br /&gt;
Relative input path = mySubDir\myFile.ext&lt;br /&gt;
      Use this root = D:\myOutput&lt;br /&gt;
  Custom sub-folder = ExtraSubDir&lt;br /&gt;
&lt;br /&gt;
Before = C:\myProject\mySubDir\myFile.ext&lt;br /&gt;
 After = D:\myOutput\ExtrasubDir\\mySubDir\myFile.ext&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Use an extension&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to use a specific extension in the output file. Enter the extension (with its period) in the field.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Replace&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to replace the extension of the input filename by the one defined here. (For example: &amp;quot;&amp;lt;code&amp;gt;file.old&amp;lt;/code&amp;gt;&amp;quot; becomes &amp;quot;&amp;lt;code&amp;gt;file.new&amp;lt;/code&amp;gt;&amp;quot;). The old extension is the last part of the text preceded by a period. (For example: &amp;quot;&amp;lt;code&amp;gt;file.old1.old2&amp;lt;/code&amp;gt;&amp;quot; becomes &amp;quot;&amp;lt;code&amp;gt;file.old1.new&amp;lt;/code&amp;gt;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Append&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to add the extension defined here at the end of the existing one. (For example: &amp;quot;&amp;lt;code&amp;gt;file.old&amp;lt;/code&amp;gt;&amp;quot; becomes &amp;quot;&amp;lt;code&amp;gt;file.old.new&amp;lt;/code&amp;gt;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Prepend&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to place the extension defined here just before the existing one. (For example: &amp;quot;&amp;lt;code&amp;gt;file.old&amp;lt;/code&amp;gt;&amp;quot; becomes &amp;quot;&amp;lt;code&amp;gt;file.new.old&amp;lt;/code&amp;gt;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Add the following prefix&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to add a specific prefix text at the beginning of the filename. Enter the prefix string.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Add the following suffix&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set the option to add a specific suffix at the end of the filename (before any '.' character).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Replace this text&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to replace the text given in this field by the one given in the &amp;lt;cite&amp;gt;By this text&amp;lt;/cite&amp;gt; field.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;By this text&amp;lt;/cite&amp;gt; &amp;amp;mdash; Enter the text to replace the one provided in the &amp;lt;cite&amp;gt;Replace this text&amp;lt;/cite&amp;gt; field.&lt;br /&gt;
&lt;br /&gt;
Note that replacements are done on the full path (i.e. in the directory part as well as the filename part).&lt;br /&gt;
&lt;br /&gt;
Anywhere in the output fields you can use a set of variables based on the source and target locales. They will be replaced by their corresponding runtime equivalents:&lt;br /&gt;
&lt;br /&gt;
{{Locales Variables}}&lt;br /&gt;
&lt;br /&gt;
====Filter Parameters====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Use custom parameters folder&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to define an absolute location for the directory where the filter parameters files reside. If this option is not set, the filter parameters files are expected to be in the project directory&lt;br /&gt;
&lt;br /&gt;
[[Category:Rainbow]]&lt;/div&gt;</summary>
		<author><name>Amake</name></author>
	</entry>
	<entry>
		<id>http://okapiframework.org/wiki/index.php?title=Doxygen_Filter&amp;diff=86</id>
		<title>Doxygen Filter</title>
		<link rel="alternate" type="text/html" href="http://okapiframework.org/wiki/index.php?title=Doxygen_Filter&amp;diff=86"/>
		<updated>2012-10-10T08:17:51Z</updated>

		<summary type="html">&lt;p&gt;Amake: /* Whitespace */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Filters Header}}&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
The Doxygen Filter is an Okapi component for extracting [http://www.stack.nl/~dimitri/doxygen/ Doxygen]-style comments from source code. An example:&lt;br /&gt;
&lt;br /&gt;
  /*! &amp;lt;span class=&amp;quot;hi&amp;quot;&amp;gt;A test class&amp;lt;/span&amp;gt; */&lt;br /&gt;
  class Test&lt;br /&gt;
  {&lt;br /&gt;
    public:&lt;br /&gt;
      /** &amp;lt;span class=&amp;quot;hi&amp;quot;&amp;gt;An enum type.&amp;lt;/span&amp;gt;&lt;br /&gt;
       * &amp;lt;span class=&amp;quot;hi&amp;quot;&amp;gt;The documentation block cannot be put after the enum!&amp;lt;/span&amp;gt;&lt;br /&gt;
       */&lt;br /&gt;
      enum EnumType&lt;br /&gt;
      {&lt;br /&gt;
        int EVal1, /**&amp;lt; &amp;lt;span class=&amp;quot;hi&amp;quot;&amp;gt;enum value 1&amp;lt;/span&amp;gt; */&lt;br /&gt;
        int EVal2 /**&amp;lt; &amp;lt;span class=&amp;quot;hi&amp;quot;&amp;gt;enum value 2&amp;lt;/span&amp;gt; */&lt;br /&gt;
      };&lt;br /&gt;
      void member(); //!&amp;lt; &amp;lt;span class=&amp;quot;hi&amp;quot;&amp;gt;a member function.&amp;lt;/span&amp;gt;&lt;br /&gt;
    protected:&lt;br /&gt;
      int value; /*!&amp;lt; &amp;lt;span class=&amp;quot;hi&amp;quot;&amp;gt;an integer value&amp;lt;/span&amp;gt; */&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
C++-style (&amp;lt;code&amp;gt;///&amp;lt;/code&amp;gt;), Javadoc-style (&amp;lt;code&amp;gt;/**&amp;lt;/code&amp;gt;), Qt-style (&amp;lt;code&amp;gt;/*!&amp;lt;/code&amp;gt;), and Python-style (&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;'''&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;quot;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt;) comment blocks are supported.&lt;br /&gt;
&lt;br /&gt;
==Processing Details==&lt;br /&gt;
&lt;br /&gt;
===Input Encoding===&lt;br /&gt;
&lt;br /&gt;
The filter decides which encoding to use for the input document using the following logic:&lt;br /&gt;
&lt;br /&gt;
* If the file has a Unicode Byte-Order-Mark:&lt;br /&gt;
** Then, the corresponding encoding (e.g. UTF-8, UTF-16, etc.) is used. &lt;br /&gt;
* Otherwise, the input encoding used is the default encoding that was specified when opening the document. &lt;br /&gt;
&lt;br /&gt;
===Inline Codes===&lt;br /&gt;
&lt;br /&gt;
The full set of Doxygen [http://www.stack.nl/~dimitri/doxygen/commands.html special commands], [http://www.stack.nl/~dimitri/doxygen/htmlcmds.html HTML commands], and [http://www.stack.nl/~dimitri/doxygen/xmlcmds.html XML commands] are recognized and interpreted. For instance,&lt;br /&gt;
&lt;br /&gt;
  /*! \class Test class.h &amp;quot;inc/class.h&amp;quot;&lt;br /&gt;
   *  \brief This is a test class.&lt;br /&gt;
   *&lt;br /&gt;
   * Some details about the Test class&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
will be extracted to the following Text Units:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;&amp;lt;1/&amp;gt;&amp;lt;2/&amp;gt; This is a test class.&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;Some details about the Test class&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Line Numbers===&lt;br /&gt;
&lt;br /&gt;
The filter preserves line numbers so that a one-to-one correspondence between source line number and translated line number is maintained.&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
&lt;br /&gt;
Supported Doxygen commands are listed in one of three categories:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;custom_commands&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;doxygen_commands&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;html_commands&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can customize the behavior of the filter by editing existing entries or adding new ones. An example &amp;lt;code&amp;gt;doxygen_commands&amp;lt;/code&amp;gt; entry:&lt;br /&gt;
&lt;br /&gt;
  doxygen_commands:&lt;br /&gt;
    '''COMMAND_NAME''': &lt;br /&gt;
      type: '''TYPE'''&lt;br /&gt;
      inline: '''INLINE'''&lt;br /&gt;
      pair: '''PAIR_CMD_NAME'''&lt;br /&gt;
      translatable: '''CMD_TRANSLATABLE'''&lt;br /&gt;
      parameters: &lt;br /&gt;
        - name: '''PARAM_NAME'''&lt;br /&gt;
          length: '''LENGTH'''&lt;br /&gt;
          required: '''REQUIRED'''&lt;br /&gt;
          translatable: '''PARAM_TRANSLATABLE'''&lt;br /&gt;
        - ...&lt;br /&gt;
&lt;br /&gt;
Replace '''bold''' items above with custom data conforming to the following.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Item&lt;br /&gt;
!Description&lt;br /&gt;
!Example value&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;COMMAND_NAME&amp;lt;/code&amp;gt;&lt;br /&gt;
|The name of the command as it will appear in the Doxygen comment, without any prefix or suffix bits. E.g. &amp;lt;code&amp;gt;\code{.py}&amp;lt;/code&amp;gt; should be &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt;. Case-sensitive.&lt;br /&gt;
|&amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;&lt;br /&gt;
|The &amp;quot;type&amp;quot; of the command, specifically one of &amp;lt;code&amp;gt;PLACEHOLDER&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;OPENING&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;CLOSING&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&amp;lt;code&amp;gt;PLACEHOLDER&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;INLINE&amp;lt;/code&amp;gt;&lt;br /&gt;
|Whether the command should be considered an inline item (&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;) or a block-level element (&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;). Default: &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;PAIR_CMD_NAME&amp;lt;/code&amp;gt;&lt;br /&gt;
|For &amp;lt;code&amp;gt;OPENING&amp;lt;/code&amp;gt;- and &amp;lt;code&amp;gt;CLOSING&amp;lt;/code&amp;gt;-type commands, this identifies the paired command. E.g. &amp;lt;code&amp;gt;\code&amp;lt;/code&amp;gt; is paired with &amp;lt;code&amp;gt;\endcode&amp;lt;/code&amp;gt;, so for &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt; we have &amp;lt;code&amp;gt;pair: endcode&amp;lt;/code&amp;gt;. Not required for &amp;lt;code&amp;gt;PLACEHOLDER&amp;lt;/code&amp;gt; commands.&lt;br /&gt;
|&amp;lt;code&amp;gt;endcode&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;CMD_TRANSLATABLE&amp;lt;/code&amp;gt;&lt;br /&gt;
|Indicates whether the entire content of the command is translatable or not. This is intended for block-level &amp;lt;code&amp;gt;OPENING&amp;lt;/code&amp;gt; commands that delimit entire blocks such as &amp;lt;code&amp;gt;\code&amp;lt;/code&amp;gt;. Default: &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;PARAM_NAME&amp;lt;/code&amp;gt;&lt;br /&gt;
|The name of a parameter. This is for organizational purposes only, and is not used by the filter.&lt;br /&gt;
|&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;LENGTH&amp;lt;/code&amp;gt;&lt;br /&gt;
|The length of the parameter, specifically one of &amp;lt;code&amp;gt;WORD&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LINE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PHRASE&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;PARAGRAPH&amp;lt;/code&amp;gt;. These map to the designations described at the top of the [http://www.stack.nl/~dimitri/doxygen/commands.html special commands page], except for &amp;lt;code&amp;gt;PHRASE&amp;lt;/code&amp;gt; which indicates a string bounded by double quotes like &amp;lt;code&amp;gt;&amp;quot;image caption&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&amp;lt;code&amp;gt;WORD&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;REQUIRED&amp;lt;/code&amp;gt;&lt;br /&gt;
|Whether the parameter is required (&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;) or optional (&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;). This affects how aggressively the filter tries to interpret proceeding text as a parameter. Default: &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;PARAM_TRANSLATABLE&amp;lt;/code&amp;gt;&lt;br /&gt;
|Indicates whether the parameter is translatable (&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;) or not (&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;). Each parameter may be set independently, though untranslatable parameters following translatable ones will be recorded as separate inline codes. Default: &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;.&lt;br /&gt;
|&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
* The &amp;lt;code&amp;gt;parameters&amp;lt;/code&amp;gt; listing is optional.&lt;br /&gt;
* When present, parameters should be listed in the order in which they are written following the command.&lt;br /&gt;
* Parameters with non-whitespace delimiters (e.g. &amp;lt;code&amp;gt;'''.py'''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;\code{'''.py'''}&amp;lt;/code&amp;gt;) are not currently supported.&lt;br /&gt;
&lt;br /&gt;
You may also define custom commands as follows (all of the above options except &amp;lt;code&amp;gt;COMMAND_NAME&amp;lt;/code&amp;gt; are supported; the following is a minimal case):&lt;br /&gt;
&lt;br /&gt;
  custom_commands:&lt;br /&gt;
    - pattern: &amp;quot;'''REGEX_PATTERN'''&amp;quot;&lt;br /&gt;
      type: '''TYPE'''&lt;br /&gt;
      ...&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Item&lt;br /&gt;
!Description&lt;br /&gt;
!Example value&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;REGEX_PATTERN&amp;lt;/code&amp;gt;&lt;br /&gt;
|Any valid regex that matches non-zero-width runs of text within the comment. Matches will be turned into codes according to the parameters as described above.&lt;br /&gt;
|&amp;lt;code&amp;gt;###ACCESS_CHECKS###.*?;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Whitespace===&lt;br /&gt;
Prevent the filter from collapsing whitespace by setting &amp;lt;code&amp;gt;preserve_whitespace: true&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Limitations==&lt;br /&gt;
&lt;br /&gt;
* Single linebreaks in a text run that are not part of a Doxygen command are collapsed. No effort is made to enforce a maximum line width upon output, so essentially each translatable paragraph will be collapsed to a single (potentially very long) line.&lt;br /&gt;
* Command parameters with non-whitespace delimiters (e.g. &amp;lt;code&amp;gt;'''.py'''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;\code{'''.py'''}&amp;lt;/code&amp;gt;) are not currently supported.&lt;br /&gt;
* Non-translatable command parameters are not exposed for any special processing.&lt;br /&gt;
&lt;br /&gt;
[[Category:Filters]]&lt;/div&gt;</summary>
		<author><name>Amake</name></author>
	</entry>
	<entry>
		<id>http://okapiframework.org/wiki/index.php?title=Regex_Filter&amp;diff=10</id>
		<title>Regex Filter</title>
		<link rel="alternate" type="text/html" href="http://okapiframework.org/wiki/index.php?title=Regex_Filter&amp;diff=10"/>
		<updated>2012-10-10T06:11:12Z</updated>

		<summary type="html">&lt;p&gt;Amake: /* Overview */ Link fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Filters Header}}&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
The Regex Filter is an Okapi component that implements the IFilter interface for any type of text-based formats where the text can be captured using [[Regular Expressions|regular expressions]]. The filter is implemented in the &amp;lt;code&amp;gt;class net.sf.okapi.filters.regex.RegexFilter&amp;lt;/code&amp;gt; of the library.&lt;br /&gt;
&lt;br /&gt;
The filter can work with any text-based document. You define rules with regular expressions that indicate what part of the document to process. Each rule is associated with an action telling the filter what to do with the different capturing groups of its regular expression.&lt;br /&gt;
&lt;br /&gt;
For example, if you have the following input document:&lt;br /&gt;
&lt;br /&gt;
 [ID1]=Text for ID1&lt;br /&gt;
 [ID2]:Text for ID2&lt;br /&gt;
&lt;br /&gt;
...and a rule with the following regular expression:&lt;br /&gt;
&lt;br /&gt;
 ^\[(.*?)](=|:)(.*?)$&lt;br /&gt;
&lt;br /&gt;
...and that rule is set to the action &amp;lt;cite&amp;gt;Extract the content&amp;lt;/cite&amp;gt; and has the capturing group 3 assigned to the source group and the capturing group 1 assigned to the identifier group.&lt;br /&gt;
&lt;br /&gt;
...then:&lt;br /&gt;
&lt;br /&gt;
* Each line in the input document will match the rule. &lt;br /&gt;
* A new text unit will be created for each match, with its name set to the content of the capturing group 1, and its source text set to the content of the capturing group 3. &lt;br /&gt;
&lt;br /&gt;
 [&amp;lt;span class=&amp;quot;green&amp;quot;&amp;gt;ID1&amp;lt;/span&amp;gt;]=&amp;lt;span class=&amp;quot;hi&amp;quot;&amp;gt;Text for ID1&amp;lt;/span&amp;gt;&lt;br /&gt;
 [&amp;lt;span class=&amp;quot;green&amp;quot;&amp;gt;ID2&amp;lt;/span&amp;gt;]:&amp;lt;span class=&amp;quot;hi&amp;quot;&amp;gt;Text for ID2&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ^\[&amp;lt;span class=&amp;quot;green&amp;quot;&amp;gt;(.*?)&amp;lt;/span&amp;gt;](=|:)&amp;lt;span class=&amp;quot;hi&amp;quot;&amp;gt;(.*?)&amp;lt;/span&amp;gt;$&lt;br /&gt;
&lt;br /&gt;
And if you were to represent the parsed information in XLIFF, it would look something like this:&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
 &amp;amp;lt;body&amp;gt;&lt;br /&gt;
  &amp;amp;lt;trans-unit id=&amp;quot;1&amp;quot; resname=&amp;quot;&amp;lt;span class=&amp;quot;green&amp;quot;&amp;gt;ID1&amp;lt;/span&amp;gt;&amp;quot; xml:space=&amp;quot;preserve&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;source xml:lang=&amp;quot;en&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;hi&amp;quot;&amp;gt;Text for ID1&amp;lt;/span&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
  &amp;amp;lt;/trans-unit&amp;gt;&lt;br /&gt;
  &amp;amp;lt;trans-unit id=&amp;quot;2&amp;quot; resname=&amp;quot;&amp;lt;span class=&amp;quot;green&amp;quot;&amp;gt;ID2&amp;lt;/span&amp;gt;&amp;quot; xml:space=&amp;quot;preserve&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;amp;lt;source xml:lang=&amp;quot;en&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;hi&amp;quot;&amp;gt;Text for ID2&amp;lt;/span&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
  &amp;amp;lt;/trans-unit&amp;gt;&lt;br /&gt;
 &amp;amp;lt;/body&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
==Processing Details==&lt;br /&gt;
&lt;br /&gt;
===Input Encoding===&lt;br /&gt;
&lt;br /&gt;
The filter decides which encoding to use for the input document using the following logic:&lt;br /&gt;
&lt;br /&gt;
* If the file has a Unicode Byte-Order-Mark:&lt;br /&gt;
** Then, the corresponding encoding (e.g. UTF-8, UTF-16, etc.) is used. &lt;br /&gt;
* Otherwise, the input encoding used is the default encoding that was specified when opening the document. &lt;br /&gt;
&lt;br /&gt;
===Output Encoding===&lt;br /&gt;
&lt;br /&gt;
The filter does not recognize any encoding declarations in the document, and therefore cannot update them.&lt;br /&gt;
&lt;br /&gt;
If the output encoding is UTF-8:&lt;br /&gt;
&lt;br /&gt;
* If the input encoding was also UTF-8, a Byte-Order-Mark is used for the output document only if one was detected in the input document. &lt;br /&gt;
* If the input encoding was not UTF-8, no Byte-Order-Mark is used in the output document. &lt;br /&gt;
&lt;br /&gt;
===Line-Breaks===&lt;br /&gt;
&lt;br /&gt;
The type of line-breaks of the output is the same as the one of the original input.&lt;br /&gt;
&lt;br /&gt;
===Parsing===&lt;br /&gt;
&lt;br /&gt;
Here is how an input document is parsed:&lt;br /&gt;
&lt;br /&gt;
# The filter sets the current search position at the top of the document. &lt;br /&gt;
# It searches for the first possible rule that has a match from a current position. &lt;br /&gt;
# It takes the match and applies whatever action is associated with the rule. &lt;br /&gt;
# It moves the current search position at the end of the match. &lt;br /&gt;
# The steps 2, 3, and 4 are repeated until no more matches are found or the search position reaches the end of the document. &lt;br /&gt;
&lt;br /&gt;
===Actions===&lt;br /&gt;
&lt;br /&gt;
Each rule is associated with one of several possible actions. Depending on the action, you can associate different parts of the text that matches the rule with a specific role. This is done with the capturing groups. The source group, the target group, the identifier group and the note group.&lt;br /&gt;
&lt;br /&gt;
A capturing group is a part of the regular expression between parentheses. The capturing group 0 is the whole match, then other capturing groups are numbered by counting their opening parentheses from left to right. For example, in the expression (A)(B(C)) there are three groups:&lt;br /&gt;
&lt;br /&gt;
# (A)&lt;br /&gt;
# (B(C))&lt;br /&gt;
# (C)&lt;br /&gt;
&lt;br /&gt;
The following table summarizes what each action does, and what the different groups it may use:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| '''Action''' || '''Effect''' || '''Source''' || '''Target''' || '''Identifier''' || '''Note'''&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;cite&amp;gt;Extract the strings in the source group&amp;lt;/cite&amp;gt;&lt;br /&gt;
| Sends a &amp;lt;code&amp;gt;TEXT_UNIT&amp;lt;/code&amp;gt; event for each string found in the source capturing group.&lt;br /&gt;
| Must be defined. It is where the string or strings to extract are taken from.&lt;br /&gt;
| Not used.&lt;br /&gt;
| If defined: It is the name for the first text unit. If there is more than one string to extract, a sequential number (starting at 2) is appended to it, and used as the name of the other text units.&lt;br /&gt;
| If defined: It is the ''note'' property associated to each text unit corresponding to each extracted string.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;cite&amp;gt;Extract the content of the source group&amp;lt;/cite&amp;gt;&lt;br /&gt;
| Sends a single &amp;lt;code&amp;gt;TEXT_UNIT&amp;lt;/code&amp;gt; event based on the different capturing groups.&lt;br /&gt;
| Must be defined. It is the source text of the text unit.&lt;br /&gt;
| If defined: It is the target text of the text unit.&lt;br /&gt;
| If defined: It is the name of the text unit.&lt;br /&gt;
| If defined: It is the note property associated to the text unit.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;cite&amp;gt;Treat the source group as comment&amp;lt;/cite&amp;gt;&lt;br /&gt;
| Process the source capturing group for localization directives (if requested) and leaves the content of the whole expression's match untouched.&lt;br /&gt;
| Must be defined. It is processed for localization directives if that option is set.&lt;br /&gt;
| Not used.&lt;br /&gt;
| Not used.&lt;br /&gt;
| Not used.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;cite&amp;gt;Do not extract&amp;lt;/cite&amp;gt;&lt;br /&gt;
| Leaves the content of the whole expression's match untouched.&lt;br /&gt;
| Not used.&lt;br /&gt;
| Not used.&lt;br /&gt;
| Not used.&lt;br /&gt;
| Not used.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;cite&amp;gt;Start a section&amp;lt;/cite&amp;gt;&lt;br /&gt;
| Sends a &amp;lt;code&amp;gt;START_GROUP&amp;lt;/code&amp;gt; event. If the option &amp;lt;cite&amp;gt;Auto-close previous section when a new one starts&amp;lt;/cite&amp;gt; is set, you '''must not''' define a corresponding end section. If that option is not set, you '''must''' define a rule to close this section.&lt;br /&gt;
| Not used.&lt;br /&gt;
| Not used.&lt;br /&gt;
| If defined: It is the name of the section being opened. A section corresponds to a &amp;lt;code&amp;gt;&amp;amp;lt;group&amp;gt;&amp;lt;/code&amp;gt; in XLIFF.&lt;br /&gt;
| If defined: It is the note property associated to the section being opened.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &amp;lt;cite&amp;gt;End a section&amp;lt;/cite&amp;gt;&lt;br /&gt;
| Sends an &amp;lt;code&amp;gt;END_GROUP&amp;lt;/code&amp;gt; event. &lt;br /&gt;
| Not used.&lt;br /&gt;
| Not used.&lt;br /&gt;
| Not used.&lt;br /&gt;
| Not used.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
&lt;br /&gt;
===Rules Tab===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Add&amp;lt;/cite&amp;gt; &amp;amp;mdash; Click this button to add a new rule to the list. This opens the &amp;lt;cite&amp;gt;Edit Rule&amp;lt;/cite&amp;gt; dialog box with the new rule.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Rename&amp;lt;/cite&amp;gt; &amp;amp;mdash; Click this button to rename the rule currently selected. Note that two rules can have the same name, but this is obviously not recommended.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Remove&amp;lt;/cite&amp;gt; &amp;amp;mdash; Click this button to delete the rule currently selected from the list. No confirmation is asked.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Edit&amp;lt;/cite&amp;gt; &amp;amp;mdash; Click this button to edit the rule currently selected. This opens the &amp;lt;cite&amp;gt;Edit Rule&amp;lt;/cite&amp;gt; dialog box.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Move Up&amp;lt;/cite&amp;gt; &amp;amp;mdash; Click this button to move the rule currently selected up in the list. Rules are evaluated in the order of the list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Move Down&amp;lt;/cite&amp;gt; &amp;amp;mdash; Click this button to move the rule currently selected down in the list. Rules are evaluated in the order of the list.&lt;br /&gt;
&lt;br /&gt;
====Rule properties====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Preserve white spaces&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to preserve all white spaces of the extracted text. If this option is not set the extracted content is unwrapped: That is any sequence of consecutive white spaces is replaced by a single space character, and any white space character at the start or the end of the content is trimmed out. White spaces here are: spaces, tabs, carriage returns, and line-feeds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Has inline codes&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to enable the conversion of some part of the extracted text into inline codes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Edit Inline Codes Patterns&amp;lt;/cite&amp;gt; &amp;amp;mdash; Click this button to open the &amp;lt;cite&amp;gt;Inline Codes Patterns&amp;lt;/cite&amp;gt; dialog box where you can define rules for converting parts of text into inline codes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Auto-close previous section when a new one starts&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to automatically close any opened section when a new one is starting. Section are defined with the &amp;lt;cite&amp;gt;Start a section&amp;lt;/cite&amp;gt; action. This option allows you to define only start of sections. If this option is not set, each &amp;lt;cite&amp;gt;Start a section&amp;lt;/cite&amp;gt; action must have a corresponding &amp;lt;cite&amp;gt;End a section&amp;lt;/cite&amp;gt; action.&lt;br /&gt;
&lt;br /&gt;
====Regular expressions options====&lt;br /&gt;
&lt;br /&gt;
This set of options are used for all rules defined in the list. If you need to overwrite an option for a given rule, use the &amp;lt;code&amp;gt;(?idmsux-idmsux)&amp;lt;/code&amp;gt; construct in the pattern for that rule.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Dot also matches line-feed&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to enable the dot operator to match line-feeds.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Multi-line&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option so the expressions &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt; match just after or just before, respectively, a line terminator or the end of the input sequence. If this option is not set these expressions only match at the beginning and the end of the entire input sequence.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Ignore case differences&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to ignore differences between letter cases. If this option is set &amp;quot;&amp;lt;code&amp;gt;abc&amp;lt;/code&amp;gt;&amp;quot; is seen as identical as &amp;quot;&amp;lt;code&amp;gt;Abc&amp;lt;/code&amp;gt;&amp;quot;. If this option is not set, both strings are seen as different.&lt;br /&gt;
&lt;br /&gt;
===Options Tab===&lt;br /&gt;
&lt;br /&gt;
====Localization directives====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Use localization directives when they are present&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to enable the filter to recognize localization directives. If this option is not set, any localization directive in the input file will be ignored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Extract items outside the scope of localization directives&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option to extract any translatable item that is not within the scope of a localization directive. Selecting to extract or not outside localization directives allows you to mark up fewer parts of the source document. This option is enabled only when the Use localization directives when they are present option is set.&lt;br /&gt;
&lt;br /&gt;
====Strings====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Beginning of string&amp;lt;/cite&amp;gt; &amp;amp;mdash; Enter the character specifying the start of a string. Entering several characters defines several ways to start a string.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;End of string&amp;lt;/cite&amp;gt; &amp;amp;mdash; Enter the character specifying the end of a string. If you have defined several beginning characters, you must defined an equal number of end characters, and the position of each end character must correspond to the position of its corresponding beginning character.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Escaped characters use back-slash prefix&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option if the way to escape a character is to have a back-slash prefix (e.g. &amp;lt;code&amp;gt;\&amp;quot;&amp;lt;/code&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;Escaped characters are doubled&amp;lt;/cite&amp;gt; &amp;amp;mdash; Set this option if the way to escape a character is to double it (e.g. &amp;lt;code&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
====Content type====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;MIME type of the document&amp;lt;/cite&amp;gt; &amp;amp;mdash; Enter the MIME type value to use when extracting content with this parameters. The value is used to identify the type of document. It may also change the way the text is written back into the original format. Most of the time &amp;lt;code&amp;gt;text/plain&amp;lt;/code&amp;gt; should be fine.&lt;br /&gt;
&lt;br /&gt;
==Limitations==&lt;br /&gt;
&lt;br /&gt;
* The whole document is loaded in memory to apply the regular expressions. This may cause issues with very large documents.&lt;br /&gt;
* The option &amp;lt;cite&amp;gt;Extract strings outside the rules&amp;lt;/cite&amp;gt; is not yet implemented.&lt;br /&gt;
&lt;br /&gt;
[[Category:Filters]]&lt;/div&gt;</summary>
		<author><name>Amake</name></author>
	</entry>
</feed>