mirror of
https://github.com/discourse/discourse.git
synced 2025-06-02 12:34:34 +08:00
FEATURE: Can override any translation via an admin interface
This commit is contained in:
@ -25,6 +25,21 @@ describe I18n::Backend::DiscourseI18n do
|
||||
expect(backend.translate(:en, 'wat', count: 3)).to eq("Hello 3")
|
||||
end
|
||||
|
||||
it 'can be searched by key or value' do
|
||||
expect(backend.search(:en, 'fo')).to eq({'foo' => 'Foo in :en'})
|
||||
expect(backend.search(:en, 'foo')).to eq({'foo' => 'Foo in :en' })
|
||||
expect(backend.search(:en, 'Foo')).to eq({'foo' => 'Foo in :en' })
|
||||
expect(backend.search(:en, 'hello')).to eq({'wat' => 'Hello %{count}' })
|
||||
expect(backend.search(:en, 'items.one')).to eq({'items.one' => 'one item' })
|
||||
end
|
||||
|
||||
it 'can return multiple results' do
|
||||
results = backend.search(:en, 'item')
|
||||
|
||||
expect(results['items.one']).to eq('one item')
|
||||
expect(results['items.other']).to eq('%{count} items')
|
||||
end
|
||||
|
||||
describe '#exists?' do
|
||||
it 'returns true when a key is given that exists' do
|
||||
expect(backend.exists?(:de, :bar)).to eq(true)
|
||||
@ -67,12 +82,21 @@ describe I18n::Backend::DiscourseI18n do
|
||||
expect(I18n.translate('foo')).to eq('new value')
|
||||
end
|
||||
|
||||
it "can be searched" do
|
||||
TranslationOverride.upsert!('en', 'wat', 'Overwritten value')
|
||||
expect(I18n.search('wat', backend: backend)).to eq({'wat' => 'Overwritten value'})
|
||||
expect(I18n.search('Overwritten', backend: backend)).to eq({'wat' => 'Overwritten value'})
|
||||
expect(I18n.search('Hello', backend: backend)).to eq({})
|
||||
end
|
||||
|
||||
it 'supports disabling' do
|
||||
TranslationOverride.upsert!('en', 'foo', 'meep')
|
||||
orig_title = I18n.t('title')
|
||||
TranslationOverride.upsert!('en', 'title', 'overridden title')
|
||||
|
||||
I18n.overrides_disabled do
|
||||
expect(I18n.translate('foo')).to eq('meep')
|
||||
expect(I18n.translate('title')).to eq(orig_title)
|
||||
end
|
||||
expect(I18n.translate('title')).to eq('overridden title')
|
||||
end
|
||||
|
||||
it 'supports interpolation' do
|
||||
@ -104,10 +128,12 @@ describe I18n::Backend::DiscourseI18n do
|
||||
|
||||
it "returns client overrides" do
|
||||
TranslationOverride.upsert!('en', 'js.foo', 'bar')
|
||||
TranslationOverride.upsert!('en', 'admin_js.beep', 'boop')
|
||||
json = ::JSON.parse(I18n.client_overrides_json)
|
||||
|
||||
expect(json).to be_present
|
||||
expect(json['js.foo']).to eq('bar')
|
||||
expect(json['admin_js.beep']).to eq('boop')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user