polib
A Rust library to read, manipulate and write GNU gettext translation data in .po
format.
A Message represents a translation of a text entry from the source language to a target language.
A Catalog holds a collection of Messages, and is stored in a .po
file.
.po
file```rust use polib::po_file; use std::error::Error; use std::path::Path;
fn main() -> Result<(), Box
.po
filerust
let mut catalog = po_file::parse(Path::new(&input_file))?;
let mut filtered: usize = 0;
for mut message in catalog.messages_mut() {
if !message.is_translated() || message.is_fuzzy() {
message.delete();
filtered += 1;
}
}
po_file::write(&catalog, Path::new(&output_file))?;
println!("{} untranslated or fuzzy translations removed.", filtered);
rust
let mut catalog = po_file::parse(Path::new(&input_file))?;
for mut message in catalog.messages_mut() {
if !message.is_translated() {
if message.is_singular() {
message.set_msgstr(/* some 3rdparty provided */translate(message.msgid()))?;
}
}
}
po_file::write(&catalog, Path::new(&output_file))?;
.po
file to .mo
formatrust
mo_file::compile_from_po(Path::new(&input), Path::new(&output))?;
Refer to docs.rs.