Project

get_pomo

0.03
No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
Ruby/Gettext: A .po and .mo file parser/generator
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

This project is no longer maintained.

If you only need to handle PO files you might want to check out PoParser

If you only need the raw PO data parsed to a ruby hash check out PoParser's core simple_po_parser

get_pomo

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
  • obsolete translations are included if enabled
  • fuzzy can be set/unset
  • references of non unique translations can be merged
  • 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, first with obsolete messages second without
    translations = GetPomo::PoFile.parse(File.read('xxx.po'), :parse_obsoletes => true) + GetPomo::PoFile.parse(File.read('yyy.po'))

    #and use the data...
    msgids = translations.reject{|t|t.plural? or t.fuzzy? or t.obsolete?}.map(&:msgid)

    #or write a new po file (unique by msgid, with merged references for non uniques)...
    File.open('xxx.po','w){|f|f.print(GetPomo::PoFile.to_text(translations, :merge => true))}

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)

Authors

Michael Grosser
michael@grosser.it
License: MIT
Build Status