po_to_json
Convert gettext PO files to JSON to use in your javascript app, based on po2json.pl by DuckDuckGo, Inc.. Ideally you'll use this on a Rake task that creates JSON versions of your PO files, which can later be used from javascript with Jed
Versions
For a list of the tested and supported Ruby and JSON versions please take a look at the wokflow.
Installation
gem 'po_to_json', '~> 2.1.1'
Versioning
This library aims to adhere to Semantic Versioning 2.0.0. Violations of this scheme should be reported as bugs. Specifically, if a minor or patch version is released that breaks backward compatibility, a new version should be immediately released that restores compatibility. Breaking changes to the public API will only be introduced with new major versions.
As a result of this policy, you can (and should) specify a dependency on this gem using the Pessimistic Version Constraint with two digits of precision.
For example:
spec.add_dependency 'po_to_json', '~> 2.1.1'
Usage
Most common use would be to generate a Jed ready javascript file. For example, in a Rails project:
require 'po_to_json'
json = PoToJson.new(
Rails.root.join('locale', 'de', 'app.po')
).generate_for_jed('de')
Rails.root.join(
'app',
'assets',
'javascripts',
'locale',
'de',
'app.js'
).write(json)
If you need a pretty json, add pretty: true
to generate_for_jed
, like the
following example:
require 'po_to_json'
json = PoToJson.new(
Rails.root.join('locale', 'de', 'app.po')
).generate_for_jed('de', pretty: true)
Rails.root.join(
'app',
'assets',
'javascripts',
'locale',
'de',
'app.js'
).write(json)
The javascript file generated has a global "locales" object with an attribute corresponding to the generated language:
i18n = new Jed(locales['de'])
i18n.gettext('Hello World') // Should evaluate to 'Hallo Welt'
Contributing
Fork -> Patch -> Spec -> Push -> Pull Request
Authors
License
MIT
Copyright
Copyright (c) 2012-2015 Dropmysite.com <https://dropmyemail.com>
Copyright (c) 2015 Webhippie <http://www.webhippie.de>