Skip to content

Library for reading and writing localized text stored in XLIFF format.

License

Notifications You must be signed in to change notification settings

kkostov/hb-rs-xliff

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XLIFF Parser

Build Status

This is a library for reading and writing localized text stored in XLIFF format.

Docs

⚠ This is work in progress - check below for the current status of the implementation.

Examples

Reading XLIFF file

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..."
);

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 = T::load_str(xliff_string);
let translation = translations.t(None, "CFBundleName");

Changelog

Version history

Parse XLIFF 1.2

Spec

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>

Acknowledgements

  • Depends on quick-xml

  • The names "OASIS" and "XLIFF" are trademarks of OASIS, the owner and developer of the XLIFF specification.

About

Library for reading and writing localized text stored in XLIFF format.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages