XLIFF Parser
This is a library for reading and writing localized text stored in XLIFF format.
⚠ This is work in progress - check below for the current status of the implementation.
Examples
Reading XLIFF file
let path: PathBuf =
.iter
.collect;
let translations = load;
let translation = translations.t;
assert_eq!;
assert_eq!;
Reading XLIFF string
let xliff_string = r#"<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
<file original="HelloWidgets/en.lproj/InfoPlist.strings" source-language="en" target-language="en" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="12.0" build-num="12A6159"/>
</header>
<body>
<trans-unit id="CFBundleName" xml:space="preserve">
<source>HelloWidgets</source>
<target>HelloWidgets Translated</target>
<note>Bundle name</note>
</trans-unit>
</body>
</file>
</xliff>"#;
let translations = load_str;
let translation = translations.t;
Changelog
Parse XLIFF 1.2
Implementation status
.
-
<xliff>-
<file>-
<header>-
<skl>-
<internal-file> | <external-file>
-
-
<phase-group>-
<phase> -
note
-
-
<glossary>-
<internal-file> | <external-file>
-
-
<reference>-
<internal-file> | <external-file>
-
-
<count-group>-
<count>
-
-
<tool> -
<prop-group>-
<prop>
-
-
<note>
-
-
<body>-
<group>-
<context-group>-
<context>
-
-
<count-group>-
<count>
-
-
<prop-group>-
<prop>
-
-
<note>
-
-
<trans-unit>-
<source> -
<target> -
<context-group>-
<context>
-
-
<count-group>-
<count>
-
-
<prop-group>-
<prop>
-
-
<seg-srouce> -
<note> -
<alt-trans>
-
-
<bin-unit>-
<bin-source> -
<bin-target> -
<context-group>-
<context>
-
-
<count-group>-
<count>
-
-
<prop-group>-
<prop>
-
-
-
-
<note> -
<trans-unit>
-
-
Roadmap
-
Basic support for importing translations from XLIFF 1.2
-
Provide a t("key") interface
-
Complete parsing support for XLIFF 1.2
-
Support loading files which contain multiple languages
-
Export translations to XLIFF 1.2
-
Import translations from XLIFF 2.0
-
Export translations to XLIFF 2.0