Parsing XLIFF in Catalyst
This article references the correspondence (mapping) between the State attribute found in XLIFF for individual string and the Status in Alchemy Catalyst.
Inserting an XLIFF file in a Catalyst project, a mapping of the state and state-qualifier values to Catalyst states is applied as follows:
STATE (independent values)
State = The status of a particular translation in a <target> or <bin-target> element in XLIFF format
XLIFF State
|
Catalyst Status
|
Description
|
final
|
Signed Off
|
Indicates the terminating state. |
signed-off
|
Indicates that changes are reviewed and approved. |
needs-review-adaptation
|
For Review
|
Indicates only non-textual information needs review. |
needs-review-l10n
|
Indicates both text and non-textual information needs review. |
needs-review-translation
|
Indicates that only the text of the item needs to be reviewed. |
translated
|
Indicates that the item has been translated. |
needs-adaptation
|
Untranslated
(except when Source != Target;
then it becomes For Review)
|
Indicates only non-textual information needs adaptation. |
needs-l10n
|
Indicates both text and non-textual information needs adaptation. |
needs-translation
|
Indicates that the item needs to be translated. |
new
|
Indicates that the item is new. For example, translation units that were not in a previous version of the document. |
This Source != Target takes precedence when dealing with the Untranslated states.
STATE-QUALIFIER (independent values)
State-qualifier = Describes the state of a particular translation in a <target> or <bin-target> element in XLIFF format.
XLIFF State-qualifier
|
Catalyst Status
|
Description
|
exact-match
|
Leveraged
|
Indicates an exact match. An exact match occurs when a source text of a segment is exactly the same as the source text of a segment that was translated previously. |
id-match
|
Indicates a match based on matching IDs (in addition to matching text). |
leveraged-glossary
|
Indicates a translation derived from a glossary. |
leveraged-inherited
|
Indicates a translation derived from existing translation. |
leveraged-repository
|
Indicates a translation derived from a translation repository. |
leveraged-tm
|
Indicates a translation derived from a translation memory. |
tm-suggestion
|
Indicates the translation is suggested by translation memory. |
fuzzy-match
|
Fuzzy Match
|
Indicates a fuzzy match. A fuzzy match occurs when a source text of a segment is very similar to the source text of a segment that was translated previously (e.g. when the difference is casing, a few changed words, white-space discrepancy, etc.). |
leveraged-mt
|
Machine Translated
|
Indicates a translation derived from machine translation. |
mt-suggestion
|
Indicates the translation is suggested by machine translation. |
rejected-grammar
|
Nothing – A Catalyst status is not assigned
|
Indicates that the item has been rejected because of incorrect grammar. |
rejected-inaccurate
|
Indicates that the item has been rejected because it is incorrect. |
rejected-length
|
Indicates that the item has been rejected because it is too long or too short. |
rejected-spelling
|
Indicates that the item has been rejected because of incorrect spelling. |
STATE and STATE-QUALIFIER (combined values)
When both state and state-qualifier exists in the same <trans-unit>, this is the combined status that should be adopted when parsing the file into Catalyst:
xliff ‘state’ attribute
|
Catalyst Status
|
final
|
Signed Off
(state-qualifier ignored)
|
signed-off
|
needs-review-adaptation
|
For Review
When mapping to
For Review in Catalyst, we look at the state-qualifier - according to table
|
needs-review-l10n
|
needs-review-translation
|
translated
|
needs-adaptation
|
Untranslated
(state-qualifier ignored)
(If Source != Target,
it becomes For Review)
|
needs-l10n
|
needs-translation
|
new
|
|
|
XLIFF ‘state-qualifier’ attribute
|
Catalyst Status
|
exact-match
|
Leveraged
|
id-match
|
leveraged-glossary
|
leveraged-inherited
|
leveraged-repository
|
leveraged-tm
|
tm-suggestion
|
fuzzy-match
|
Fuzzy Match
|
leveraged-mt
|
Machine Translated
|
mt-suggestion
|
rejected-grammar
|
Remains with standard For Review
|
rejected-inaccurate
|
rejected-length
|
rejected-spelling
|
|
When neither state nor state-qualifier is found in the <trans-unit> and Source does not equal Target, the Target must contain a translation; therefore Catalyst parses the segments with For Review status.
Source != Target takes precedence when dealing with the Untranslated state.
Extracting out of Catalyst to XLIFF
When writing out to XLIFF format through Extract Files... the Catalyst status is mapped to the XLIFF state values as follows:
Writing out Edited segments
Catalyst Status
|
xliff state attribute
|
state-qualifier attribute
|
Signed Off
|
signed-off
|
|
Leveraged
|
needs-review-l10n
|
exact-match
|
For Review
|
|
Fuzzy Match
|
fuzzy-matched
|
Machine Translated
|
mt-suggestion
|
Untranslated
|
Nothing – A state is not written into the file
|
|
Maintaining XLIFF state and state-qualifier attribute that have not been edited
Maintain state attributes
If we are not editing segments, we should maintain the state value that was there e.g.
- We read in an XLIFF file with a segment that says needs-adaptation.
- We map it as Untranslated within Catalyst.
- If no editing or translation happens to that segment, we should try to write it back out as needs-adaptation.
Maintain state-qualifier attributes
If we are not editing segments, we should maintain the state-qualifier value that was there e.g.
- We read in an XLIFF file with a segment that says rejected-spelling
- We ignore it from a Catalyst point of view
- If no editing or translation happens to that segment, we should maintain that value when extracting the file - rejected-spelling
Reverted XLIFF written out of Catalyst
When a file already containing existing states in the XLIFF file has been reverted within Catalyst and then extracted without any translation, this is the status on those target nodes when extracted.
Original State
|
Catalyst Status
|
Reverted Catalyst Status
|
Extracted XLIFF Status
|
final
|
Signed Off
|
Untranslated
|
needs-translation
(state-qualifier if it was present is also removed)
|
signed-off
|
needs-review-adaptation
|
For Review
|
needs-review-l10n
|
needs-review-translation
|
translated
|
needs-adaptation
|
Untranslated
(except when Source != Target)
|
Preserves original state and state-qualifier of the segment as these were seen as an Untranslated state, and Catalyst preserves the original state when not edited.
|
needs-l10n
|
needs-translation
|
new
|
Products or Versions Affected
Last updated with Catalyst 11
|