Skip to content

Commit dfcf37a

Browse files
committed
translate with interpolation
1 parent 70e2879 commit dfcf37a

File tree

4 files changed

+12
-5
lines changed

4 files changed

+12
-5
lines changed

lib/liquid-rails/filters/translate_filter.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
module Liquid
22
module Rails
33
module TranslateFilter
4-
def translate(key, locale = nil, scope = nil)
5-
locale ||= ::I18n.locale.to_s
4+
def translate(key, options={})
5+
options = { 'locale' => ::I18n.locale.to_s }.merge(options)
66

7-
@context.registers[:view].translate(key.to_s, locale: locale, scope: scope)
7+
@context.registers[:view].translate(key.to_s, options.with_indifferent_access)
88
end
9+
alias_method :t, :translate
910
end
1011
end
1112
end

spec/dummy/config/locales/en.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
en:
22
welcome: 'Welcome everyone!'
3+
welcome_name: 'Welcome, %{name}'
34
links:
45
home: 'Home'

spec/dummy/config/locales/km.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
km:
22
welcome: 'សូមស្វាគមន៍'
3+
welcome_name: 'សូមស្វាគមន៍ %{name}'
34
links:
45
home: 'ទំព័រដើម'

spec/lib/liquid-rails/filters/translate_filter_spec.rb

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,15 @@ module Rails
1414
end
1515

1616
it 'translate with specified locale' do
17-
expect(::Liquid::Variable.new("'welcome' | translate: 'km'").render(context)).to eq('សូមស្វាគមន៍')
17+
expect(::Liquid::Variable.new("'welcome' | translate: locale: 'km'").render(context)).to eq('សូមស្វាគមន៍')
1818
end
1919

2020
it 'translate with scope' do
21-
expect(::Liquid::Variable.new("'home' | translate: 'km', 'links'").render(context)).to eq('ទំព័រដើម')
21+
expect(::Liquid::Variable.new("'home' | translate: locale: 'km', scope: 'links'").render(context)).to eq('ទំព័រដើម')
22+
end
23+
24+
it 'translate with interpolation' do
25+
expect(::Liquid::Variable.new("'welcome_name' | translate: locale: 'en', name: 'Jeremy'").render(context)).to eq('Welcome, Jeremy')
2226
end
2327
end
2428
end

0 commit comments

Comments
 (0)