TMX 1.4 Compliance Verification

OSCAR Recommendation, 27 January 2006

This version:
http://www.lisa.org/tmx/comp14-20060127.htm
Latest version:
http://www.lisa.org/tmx/comp.htm
Previous version:
http://www.lisa.org/tmx/comp14-20050517.htm
Editor:
Yves Savourel <ysavourel@translate.com>

Copyright © Localisation Industry Standards Association [LISA] 1997-2004. All Rights Reserved.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to LISA.

The limited permissions granted above are perpetual and will not be revoked by LISA or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and LISA DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

 


Abstract

This document defines the process to verify compliance for TMX Export and Import, starting at TMX version 1.4.

Status of this Document

This OSCAR Recommendation was approved for publication by the OSCAR Steering Committee. It is a stable document which represents the consensus of the committee. Comments may be sent to tmx@lisa.org.

Table of Contents

1. Introduction
1.2. Compliance and Certification
1.3. Verification Process
2. Level 1 Compliance
2.1. Level 1 Import
2.1.1. Test Import1A - Internal Classic White Spaces
2.1.2. Test Import1B - XML Syntax
2.1.3. Test Import1C - Multiple Languages
2.1.4. Test Import1D - UTF-8 with BOM
2.1.5. Test Import1E - UTF-8 without BOM
2.1.6. Test Import1F - UTF-16 LE
2.1.7. Test Import1G - UTF-16 BE
2.1.8. Test Import1H - ASCII
2.1.9. Test Import1I - Internal Asian White Spaces
2.1.10. Test Import1J - Language Selection
2.1.11. Test Import1K - No Import
2.1.12. Test Import1L - All Elements and Attributes
2.2. Level 1 Export
2.2.1. Test Export1A - RC
2.2.2. Test Export1B - HTML
2.2.3. Test Export1C - Java Properties
2.2.4. Test Export1D - Portable Object
2.2.5. Test Export1E - XLIFF
3. Level 2 Compliance
3.1. Level 2 Import
3.1.1. Test Import2A - Content Markup Syntax in HTML
3.1.2. Test Import2B - Content Markup Syntax in RTF
3.1.3. Test Import2C - All Elements and Attributes
3.2. Level 2 Export
3.2.1. Test Export2A - HTML

1. Introduction

TMX offers two levels of implementation:

Level 1 (Plain Text Only) - Support for the container only. The data inside each <seg> element is plain text, without Content Markup. This level is enough when the data do not have inline codes, for example software messages. It is not sufficient for documentation-type formats.
Level 2 (Content Markup and Segmentation) - Support for container, content, and segmentation. The application uses the TMX Content Markup, to allow any other tools supporting also TMX Level 2 to re-create the translated version of an original document by using only the TMX document. This level also requires the publication of the segmentation rules that were used to create the TMX-formatted data in a format conforming to the Segmentation Rules eXchange format (SRX).

Note that the compliance levels of TMX version 1.3 are not the same as for version 1.4, even for Level 1.

This document outlines the process to follow to verify that a given application is compliant with one or both of TMX 1.4 implementation levels.

1.1. Compliance and Certification

An application can be said compliant with a given level when it passes the corresponding set(s) of tests described in this document.

An application is certified only when it passes the compliance verification, and when this verification is done by one of the entities accredited for this purpose by the LISA organization. The certification logo(s) can be used only for certified applications. Certified applications are listed in the LISA Web site.

1.2. Verification Process

The process is divided in two main parts: one for Level 1 and another for Level 2. Note that in order to be Level 2 compliant, the application must also pass Level 1 tests.

Because the application may support only import or export of TMX, the tests are organized accordingly. Note that if the application supports both functionalities it must pass both sets of test to be compliant.

Exceptions:

Exceptions must be assessed manually and documented during the certification. All tests that can be run must be.

There is no guaranty for an application that offers compliance at the highest level to provide perfect interoperable TM. In addition to segmentation, different tools have different ways to handle a variety of aspect of the content. For example, one tool supporting RC file may choose to un-escape all quotes in the text, while another one will select to leave the escaped character alone. Such discrepancies are not addressed currently in TMX.

2. Level 1 Compliance

The Level 1 Compliance verifies mostly TMX structure, white spaces handling and how the application deals with non-ASCII characters and special characters in XML such as '<', or '&', XML syntax, encodings, and so forth.

2.1. Level 1 Import

To qualify for Level 1 Import compliance, the application must pass all tests in this section, except when indicated.

2.1.1. Test Import1A - Internal Classic White Spaces

Test for internal classic white spaces handling. The application must pass this test.

  1. Create an empty TM for the application. The source language is EN-US and the target language is FR-CA.
  2. Import the file ImportTest1A.tmx. All entries should import correctly and without modification of the content.
  3. Open ImportTest1A.txt or ImportTest1A.rtf in the application and translate the paragraphs with the imported TM. Make sure to use segment that corresponds to the paragraphs (as some default segmentation engines will see the tabulation characters as segment separators).
  4. Do you have only exact matches?
    • If yes:
      1. Compare the translated file with ImportTest1A_fr-ca.txt or ImportTest1A_fr-ca.rtf.
      2. Do they have identical text?
        • If yes: Test Import1A passes.
        • If no: Test Import1A fails.
    • If no: Test Import1A fails.

2.1.2. Test Import1B - XML Syntax

Test for XML syntax handling. The application must pass this test.

  1. Create an empty TM for the application. The source language is EN-US and the target language is FR-CA.
  2. Import the file ImportTest1B.tmx.
  3. Open ImportTest1B.txt or ImportTest1B.rtf in the application and translate the paragraphs with the imported TM.
  4. Do you have only exact matches?
    • If yes:
      1. Compare the translated file with ImportTest1B_fr-ca.txt or ImportTest1B_fr-ca.rtf.
      2. Do they have identical text?
        • If yes: Test Import1B passes.
        • If no: Test Import1B fails.
    • If no: Test Import1B fails.

2.1.3. Test Import1C - Multiple Languages

Test for multiple languages in the TMX documents. The application must pass this test.

  1. Create an empty TM for the application. The source language is EN-US and the target language is FR-CA.
  2. Import the file ImportTest1C.tmx. If the application let you choose which languages to import, select EN-US for source and FR-CA for target.
  3. Open ImportTest1C.txt or ImportTest1C.rtf in the application and translate the paragraphs with the imported TM.
  4. Do you have only exact matches?
    • If yes:
      1. Compare the translated file with ImportTest1C_fr-ca.txt or ImportTest1C_fr-ca.rtf.
      2. Do they have identical text?
        • If yes: Test Import1C passes.
        • If no: Test Import1C fails.
    • If no: Test Import1C fails.

2.1.4. Test Import1D - UTF-8 with BOM

Test for extended characters handling with UTF-8 document (with BOM). The application must pass this test.

  1. Create an empty TM for the application. The source language is EN-US and the target language is EN-GB.
  2. Import the file ImportTest1D.tmx.
  3. Open ImportTest1D.txt (this file is encoded in UTF-8) or ImportTest1D.rtf in the application and translate the paragraphs with the imported TM.
  4. Do you have only exact matches?
    • If yes:
      1. Compare the translated file with ImportTest1D_en-gb.txt or ImportTest1D_en-gb.rtf.
      2. Do they have identical text?
        • If yes: Test Import1D passes.
        • If no: Test Import1D fails.
    • If no: Test Import1D fails.

2.1.5. Test Import1E - UTF-8 without BOM

Test for extended characters handling with UTF-8 document (without BOM). The application must pass this test.

  1. Create an empty TM for the application. The source language is EN-US and the target language is EN-GB.
  2. Import the file ImportTest1E.tmx.
  3. Open ImportTest1E.txt (this file is encoded in UTF-8) or ImportTest1E.rtf in the application and translate the paragraphs with the imported TM.
  4. Do you have only exact matches?
    • If yes:
      1. Compare the translated file with ImportTest1E_en-gb.txt or ImportTest1E_en-gb.rtf.
      2. Do they have identical text?
        • If yes: Test Import1E passes.
        • If no: Test Import1E fails.
    • If no: Test Import1E fails.

2.1.6. Test Import1F - UTF-16 LE

Test for extended characters handling with UTF-16 document (Little-Endian). The application must pass this test.

  1. Create an empty TM for the application. The source language is EN-US and the target language is EN-GB.
  2. Import the file ImportTest1F.tmx.
  3. Open ImportTest1F.txt (this file is encoded in UTF-8) or ImportTest1F.rtf in the application and translate the paragraphs with the imported TM.
  4. Do you have only exact matches?
    • If yes:
      1. Compare the translated file with ImportTest1F_en-gb.txt or ImportTest1F_en-gb.rtf.
      2. Do they have identical text?
        • If yes: Test Import1F passes.
        • If no: Test Import1F fails.
    • If no: Test Import1F fails.

2.1.7. Test Import1G - UTF-16 BE

Test for extended characters handling with UTF-16 document (Big-Endian). The application must pass this test.

  1. Create an empty TM for the application. The source language is EN-US and the target language is EN-GB.
  2. Import the file ImportTest1G.tmx.
  3. Open ImportTest1G.txt (this file is encoded in UTF-8) or ImportTest1G.rtf in the application and translate the paragraphs with the imported TM.
  4. Do you have only exact matches?
    • If yes:
      1. Compare the translated file with ImportTest1G_en-gb.txt or ImportTest1G_en-gb.rtf.
      2. Do they have identical text?
        • If yes: Test Import1G passes.
        • If no: Test Import1G fails.
    • If no: Test Import1G fails.

2.1.8. Test Import1H - ASCII

Test for extended characters handling with ASCII encoding. The application must pass this test.

  1. Create an empty TM for the application. The source language is EN-US and the target language is EN-GB.
  2. Import the file ImportTest1H.tmx.
  3. Open ImportTest1H.txt (this file is encoded in UTF-8) or ImportTest1H.rtf in the application and translate the paragraphs with the imported TM.
  4. Do you have only exact matches?
    • If yes:
      1. Compare the translated file with ImportTest1H_en-gb.txt or ImportTest1H_en-gb.rtf.
      2. Do they have identical text?
        • If yes: Test Import1H passes.
        • If no: Test Import1H fails.
    • If no: Test Import1H fails.

2.1.9. Test Import1I - Internal Asian White Spaces

Test for internal Asian white spaces handling. The application can skip this test only if it does not support Japanese as target language.

  1. Create an empty TM for the application. The source language is EN-US and the target language is JA-JP.
  2. Import the file ImportTest1I.tmx. All entries should import correctly and without modification of the content.
  3. Open ImportTest1I.txt or ImportTest1I.rtf in the application and translate the paragraphs with the imported TM.
  4. Do you have only exact matches?
    • If yes:
      1. Compare the translated file with ImportTest1I_ja-jp.txt or ImportTest1I_ja-jp.rtf.
      2. Do they have identical text?
        • If yes: Test Import1I passes.
        • If no: Test Import1I fails.
    • If no: Test Import1I fails.

2.1.10. Test Import1J - Language Selection

Test for language selection handling. The application must pass this test.

  1. Create an empty TM for the application. The source language is EN-US and the target language is EN-GB.
  2. Import the file ImportTest1J_many.tmx.
  3. Does the application support also TMX export?
    • If yes:
      1. Export to TMX the TM generated during the import (if possible for only EN-US and EN-GB entries). Call the output ImportTest1JApp.tmx (where App is the name of the application).
      2. Start TMXCheck.
      3. Select the command Verify Validity and Compliance from the File menu.
      4. Select ImportTest1JApp.tmx (document to verify) and click OK.
      5. Select ImportTest1J.tmx (model document) and click OK.
      6. Are there any validation errors or compliance errors?
        • If yes: Test Import1J fails.
        • If no: Test Import1J passes.
    • If no:
      1. Export the TM generated during the import in some format you can verify in a text editor.
      2. Does the file includes only the same entries than in ImportTest1J.tmx and are they identical?
        • If yes: Test Import1J passes.
        • If no: Test Import1J fails.

2.1.11. Test Import1K - No Import

Test to check how a TM with no entries in the source and target languages is handled (no entry should be imported). The application must pass this test.

  1. Create an empty TM for the application. The source language is EN-US and the target language is EN-GB.
  2. Import the file ImportTest1K.tmx.
  3. Are any entries imported?
    • If yes: Test Import1K fails.
    • If no: Test Import1K passes.

2.1.12. Test Import1L - All Elements and Attributes

The aim of this test is to verify that the application can open and import a document that make use of the full range of element and attribute possible in TMX Level 1. The application is not required to import all information, just the content of the segments. The application must pass this test.

  1. Create an empty TM for the application. The source language is EN-US and the target language is EN-GB.
  2. Import the file ImportTest1L.tmx.
  3. Does the application support also TMX export?
    • If yes:
      1. Export to TMX the TM generated during the import (if possible for only EN-US and EN-GB entries). Call the output ImportTest1LApp.tmx (where App is the name of the application).
      2. Start TMXCheck.
      3. Select the command Verify Validity and Compliance from the File menu.
      4. Select ImportTest1LApp.tmx (document to verify) and click OK.
      5. Select ImportTest1L.tmx (model document) and click OK.
      6. Are there any validation errors or compliance errors?
        • If yes: Test Import1L fails.
        • If no: Test Import1L passes.
    • If no:
      1. Export the TM generated during the import in some format you can verify in a text editor.
      2. Does the file includes all the segments in ImportTest1L.tmx and are they identical?
        • If yes: Test Import1L passes.
        • If no: Test Import1L fails.

2.2. Level 1 Export

To qualify for Level 1 Export compliance, the application must pass as many test as it can. If the application support more than one original formats, it must pass the tests for all the original formats it supports. For example if the application supports only RC files, it must pass Export1A, and does not have to pass the others tests. But if the application supports RC files and HTML files, it can only the tests that are not for RC or HTML.

If the application supports none of the original formats proposed, the tester should contact the TMX committee to get an additional test.

2.2.1. Test Export1A - RC

General test for extended characters, white spaces, and special characters. The application can skip this test only if it does not support translation of RC files.

  1. Create an empty TM for the application. The source language is EN-US and the target language is FR-CA.
  2. Open ExportTest1A.rc in the application (the encoding of the file is windows-1252) and translate the paragraphs according the translated file ExportTest1A_fr.rc.
  3. Export the TM generated during the translation to TMX. Call the output ExportTest1AApp.tmx (where App is the name of the application).
  4. Start TMXCheck.
  5. Select the command Verify Validity and Compliance from the File menu.
  6. Select ExportTest1AApp.tmx (document to verify) and click OK.
  7. Select ExportTest1A.tmx (model document) and click OK.
  8. Are there any validation errors or compliance errors?
    • If yes: Test Export1A fails.
    • If no: Test Export1A passes.

2.2.2. Test Export1B - HTML

General test for extended characters, and special characters. (Note that there is non-breaking spaces in the test file). The application can skip this test only if it does not support translation of HTML files.

  1. Create an empty TM for the application. The source language is EN-US and the target language is FR-CA.
  2. Open ExportTest1B.htm in the application and translate the paragraphs according the translated file ExportTest1B_fr.htm.
  3. Export the TM generated during the translation to TMX. Call the output ExportTest1CApp.tmx (where App is the name of the application).
  4. Start TMXCheck.
  5. Select the command Verify Validity and Compliance from the File menu.
  6. Select ExportTest1BApp.tmx (document to verify) and click OK.
  7. Select ExportTest1B.tmx (model document) and click OK.
  8. Are there any validation errors or compliance errors?
    • If yes: Test Export1B fails.
    • If no: Test Export1B passes.

2.2.3. Test Export1C - Java Properties

General test for extended characters, white spaces, and special characters. The application can skip this test only if it does not support translation of Java Properties files.

  1. Create an empty TM for the application. The source language is EN-US and the target language is FR-CA.
  2. Open ExportTest1C.properties in the application and translate the paragraphs according the translated file ExportTest1C_fr.properties.
  3. Export the TM generated during the translation to TMX. Call the output ExportTest1CApp.tmx (where App is the name of the application).
  4. Start TMXCheck.
  5. Select the command Verify Validity and Compliance from the File menu.
  6. Select ExportTest1CApp.tmx (document to verify) and click OK.
  7. Select ExportTest1C.tmx (model document) and click OK.
  8. Are there any validation errors or compliance errors?
    • If yes: Test Export1C fails.
    • If no: Test Export1C passes.

2.2.4. Test Export1D - Portable Object

General test for extended characters, white spaces, and special characters. The application can skip this test only if it does not support translation of Portable Object (PO) files.

  1. Create an empty TM for the application. The source language is EN-US and the target language is FR-CA.
  2. Open ExportTest1D.po in the application (the encoding of the file is iso-8859-1) and translate the paragraphs according the translated file ExportTest1D_fr.po.
  3. Export the TM generated during the translation to TMX. Call the output ExportTest1DApp.tmx (where App is the name of the application).
  4. Start TMXCheck.
  5. Select the command Verify Validity and Compliance from the File menu.
  6. Select ExportTest1DApp.tmx (document to verify) and click OK.
  7. Select ExportTest1D.tmx (model document) and click OK.
  8. Are there any validation errors or compliance errors?
    • If yes: Test Export1D fails.
    • If no: Test Export1D passes.

2.2.5. Test Export1E - XLIFF

General test for extended characters, white spaces, and special characters. The application can skip this test only if it does not support translation of XLIFF documents.

  1. Create an empty TM for the application. The source language is EN-US and the target language is FR-CA.
  2. Open ExportTest1E.xlf in the application and translate the paragraphs according the translation provided in the <alt-trans> elements.
  3. Export the TM generated during the translation to TMX. Call the output ExportTest1EApp.tmx (where App is the name of the application).
  4. Start TMXCheck.
  5. Select the command Verify Validity and Compliance from the File menu.
  6. Select ExportTest1EApp.tmx (document to verify) and click OK.
  7. Select ExportTest1E.tmx (model document) and click OK.
  8. Are there any validation errors or compliance errors?
    • If yes: Test Export1E fails.
    • If no: Test Export1E passes.

3. Level 2 Compliance

The Level 2 compliance verifies mostly how the application deals with content markup. To qualify for Level 2 compliance, the application must also qualify for Level 1 compliance.

3.1. Level 2 Import

To qualify for Level 2 Import compliance, the application must pass all tests in this section, except the tests applying to formats not supported by the application.

If the application supports none of the original formats proposed, the tester should contact the TMX committee to get an additional test.

3.1.1. Test Import2A - Content Markup Syntax in HTML

Test for content markup syntax. The application can skip this test only if it does not support translation of HTML files.

  1. Create an empty TM for the application. The source language is EN-US and the target language is FR-CA.
  2. Import the file ImportTest2A.tmx. All entries should import correctly.
  3. Open ImportTest2A.htm in the application and translate the paragraphs with the imported TM. Only one paragraph has two sentences, all other should be treated as a single segment.
  4. Do you have only exact matches?
    • If yes:
      1. Compare the translated file with ImportTest2A_fr-ca.htm.
      2. Do they have identical text and formatting?
        • If yes: Test Import2A passes.
        • If no: Test Import2A fails.
    • If no: Test Import2A fails.

3.1.2. Test Import2B - Content Markup Syntax in RTF

Test for content markup syntax. The application can skip this test only if it does not support translation of RTF files.

  1. Create an empty TM for the application. The source language is EN-US and the target language is FR-CA.
  2. Import the file ImportTest2B.tmx. All entries should import correctly.
  3. Open ImportTest2B.rtf in the application and translate the paragraphs with the imported TM. Only one paragraph has two sentences, all other should be treated as a single segment.
  4. Do you have only exact matches?
    • If yes:
      1. Compare the translated file with ImportTest2B_fr-ca.rtf.
      2. Do they have identical text and formatting?
        • If yes: Test Import2B passes.
        • If no: Test Import2B fails.
    • If no: Test Import2B fails.

3.1.3. Test Import2C - All Elements and Attributes

The aim of this test is to verify that the application can open and import a document that make use of the full range of element and attribute possible in TMX Level 2. The application is not required to import all information, just the content of the segments (except the <hi> element), and within the each inline elements in a given segment, only the required attributes are mandatory to import. Because there may be different ways to handle sub-flow, the result of the test can also ignore any <sub> element.

Note that if the difference between the expected results and the results produced by the tool are optional attributes (such as the x attribute), the test is considered to pass.

  1. Create an empty TM for the application. The source language is EN-US and the target language is EN-GB.
  2. Import the file ImportTest2C.tmx.
  3. Does the application support also TMX export?
    • If yes:
      1. Export to TMX the TM generated during the import (if possible for only EN-US and EN-GB entries). Call the output ImportTest2CApp.tmx (where App is the name of the application).
      2. Start TMXCheck.
      3. Select the command Verify Validity and Compliance from the File menu.
      4. Select ImportTest2CApp.tmx (document to verify) and click OK.
      5. Select ImportTest2C.tmx (model document) and click OK.
      6. Are there any validation errors or compliance errors?
        • If yes: Test Import2C fails.
        • If no: Test Import2C passes.
    • If no:
      1. Export the TM generated during the import in some format you can verify in a text editor.
      2. Does the file includes all the segments in ImportTest2C.tmx, does each exported segment include all inline elements (except <hi> and <sub> which can be not imported), and does each inline element include identical required attributes?
        • If yes: Test Import2C passes.
        • If no: Test Import2C fails.

3.2. Level 2 Export

To qualify for Level 2 Export compliance, the application must pass all tests in this section, except the tests applying to formats not supported by the application.

If the application supports none of the original formats proposed, the tester should contact the TMX committee to get an additional test.

To qualify for Level 2 compliance, the tool tested must allow to generate a Segmentation Rules eXchange (SRX) document with the TMX output document. The SRX file must be valid when verified against its corresponding SRX DTD or schema.

3.2.1. Test Export2A - HTML

Note that if the difference between the expected results and the results produced by the tool are optional attributes (such as the x attribute), the test is considered to pass.

Test for content markup handling from HTML. The application can skip this test only if it does not support translation of HTML files.

  1. Create an empty TM for the application. The source language is EN-US and the target language is FR-CA.
  2. Open ExportTest2A.htm in the application and translate the paragraphs according the translated file ExportTest2A_fr.htm.
  3. Export the TM generated during the translation to TMX. Call the output ExportTest2AApp.tmx (where App is the name of the application).
  4. Start TMXCheck.
  5. Select the command Verify Validity and Compliance from the File menu.
  6. Select ExportTest2AApp.tmx (document to verify) and click OK.
  7. Select ExportTest2A.tmx (model document) and click OK.
  8. Are there any validation errors or compliance errors?
    • If yes: Test Export2A fails.
    • If no: Test Export2A passes.

 

-end-