Created
December 16, 2011 14:53
-
-
Save biow0lf/1486342 to your computer and use it in GitHub Desktop.
liquid + i18n from rails
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# lib/liquid_i18n_rails.rb | |
module LiquidI18nRails | |
def t(string) | |
I18n.t(string.to_sym) | |
end | |
end | |
# config/initializers/liquid.rb | |
require 'liquid_i18n_rails' | |
Liquid::Template.register_filter LiquidI18nRails | |
# and then: | |
{{ 'string' | t }} | |
# where 'string' is name of sym for I18n.t | |
# it will do .to_sym automatically |
Thanks! this was super helpful in connecting the filter to the I18n API.
I found that our translations needed to be able to do interpolation, so I expanded this class to allow it to be used like {{ 'fundraiser.donate' | val: 'amount', my_amount | t }}
. I also edited it to raise errors in development when a liquid template is rendered with missing translations. I've added a gist of it with a spec in another gist.
I couldn't find anything on liquid for translations with arguments so I did something like this
module LiquidI18nRails
def t(string, arguments = nil)
I18n.t(string.to_sym, arguments.with_indifferent_access)
end
end
now can translate it like this
{{ 'hello.world' | t: data: 'yourname' }}
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@phlegx
I18n.l