A simple and extendable .mo and .po file parser/generator.
Advanteges over original mo / po-parser:
- simple architecture + easy to extend/modify
- emtpy msgstr translations are read
- comments are included
- fuzzy can be set/unset
- multiple translations can be combined in a new po file(with comments and fuzzy and ...)
- po files can be written from any kind of input
- easy mo-file handling/merging
- po/mo file handling is identical, if you know one, you know both
Setup
sudo gem install get_pomo
Static interface
#parse po files
translations = GetPomo::PoFile.parse(File.read('xxx.po')) + GetPomo::PoFile.parse(File.read('yyy.po'))
#and use the data...
msgids = translations.reject{|t|t.plural? or t.fuzzy?}.map(&:msgid)
#or write a new po file (unique by msgid)...
File.open('xxx.po','w){|f|f.print(GetPomo::PoFile.to_text(translations))}
Instance interface
p = GetPomo::PoFile.new
p.add_translations_from_text(File.read('...'))
...
p.translations
p.to_text
GetPomo::MoFile
behaves identical.
TODO
- extracting of version/pluralisation_rule/plurals/translator... (from msgid "")
- the vendor/mofile is really complex, maybe it can be refactored (also some parts are not needed)
Author
Michael Grosser
[email protected]
Hereby placed under public domain, do what you want, just do not hold me accountable...