Expand description
Port to Rust of the Python library polib.
Install
cargo add rspolib
Usage
use rspolib::{pofile, prelude::*};
let po = pofile("./tests-data/flags.po").unwrap();
for entry in &po.entries {
println!("{}", entry.msgid);
}
po.save("./file.po");
See the documentation at docs.rs/rspolib
Python bindings
Quick examples
Read and save a PO file
use rspolib::{pofile, Save};
let file = pofile("tests-data/obsoletes.po").unwrap();
for entry in file.translated_entries() {
println!("{}", &entry.msgid);
}
file.save("tests-data/docs/pofile_save.po");
Read and save a MO file
// You can include the prelude to access to all the methods
use rspolib::{mofile, prelude::*};
let mut file = mofile("tests-data/all.mo").unwrap();
for entry in &file.entries {
// All entries are translated in MO files
println!("{}", entry.msgid);
}
file.save("tests-data/docs/mofile_save.mo");
Features
- Unicode Line Breaking formatting support.
- Correct handling of empty and non existent PO fields values.
- Detailed error handling parsing PO and MO files.
- Custom byte order MO files generation.
General view
Items of the same level can be converted between them,
for example a POEntry can be converted to a MOEntry using
MOEntry::from(&POEntry)
because MOEntrys implement the
From trait for &POEntry.
All of the conversions that make sense are implemented for
all the structs. For example, to get the representation of a
POFile just call to_string()
or to get the binary representation
of bytes of a MOFile calls as_bytes()
.
Modules
- Errors generated by the parsers
- rspolib prelude
Structs
- A struct to compare two entries.
- File options struct passed when creating a new PO or MO file
- MO file entry representing a message
- MO file
- PO file entry representing a message
- PO file
Constants
- Magic number of little endian mo files encoding
- Magic number of big endian mo files encoding
Traits
- Provides functions to convert to MO files content as bytes
- Merge entries and files
- Concatenates
msgid
+EOT
+msgctxt
- Save file with the
save
method - Save file as a MO file with the
save_as_mofile
method - Save file as a PO file with the
save_as_pofile
method - Provides a function
translated
to represent if an entry struct is translated