Expand description
PO and MO files manipulation library.
Port to Rust of the Python library polib. The implementation differs a bit to make it even better.
Quick start
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.
- More 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
- Bitwise conversions
- Errors generated by the parsers
- rspolib prelude
Structs
- 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
savemethod - Save file as a MO file with the
save_as_mofilemethod - Save file as a PO file with the
save_as_pofilemethod - Provides a function
translatedto represent if some struct is translated