Crates.io | xliff |
lib.rs | xliff |
version | 0.3.0-alpha.4 |
source | src |
created_at | 2019-07-20 14:04:41.353931 |
updated_at | 2020-09-11 14:03:41.008699 |
description | Library for reading and writing localized text stored in XLIFF format. |
homepage | |
repository | https://github.com/kkostov/hb-rs-xliff |
max_upload_size | |
id | 150345 |
size | 48,814 |
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.
let path: PathBuf = [env!("CARGO_MANIFEST_DIR"), "tests", "simplev1_2.xliff"]
.iter()
.collect();
let translations = T::load(&path);
let translation = translations.t(None, "Some text");
assert_eq!(
translation.source_text().unwrap(),
"Some text"
);
assert_eq!(
translation.target_text().unwrap(),
"je précise quelque chose de très..."
);
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 = T::load_str(xliff_string);
let translation = translations.t(None, "CFBundleName");
.
<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>