Makes it easy to translate your resource fields.
Looking for maintainers. See fabn#26
Current released version on rubygems is 1.0.0.pre
, I won't call it 1.0.0 until some issues has been solved,
but, as reported in this PR it should work with both
AA 1.0.0 and AA 1.1.0.
Current version targets Rails 4.x through Rails 7.x and ActiveAdmin >= 1.0.0.
gem 'activeadmin-globalize', '~> 1.0.0.pre'
Previous version with support for Rails 3 is maintained in branch support/0.6.x
- active_admin.js:
//= require active_admin/active_admin_globalize.js
- active_admin.css:
*= require active_admin/active_admin_globalize
active_admin_translates :title, :description do
validates_presence_of :title
end
Important note: I'm working on a fix for #4 because after AA deprecated and then removed #form_buffers the syntax shown below for form declaration doesn't work as is. See comments in code and discussion to fix it until I found a solution.
# For usage with strong parameters you'll need to permit them
permit_params translations_attributes: [:id, :locale, :title, :description, :_destroy]
index do
# textual translation status
translation_status
# or with flag icons
translation_status_flags
# ...
actions
end
# This was the original syntax proposed in this gem, however currently it doesn't work
form do |f|
# ...
f.translated_inputs "Translated fields", switch_locale: false do |t|
t.input :title
t.input :description
end
# ...
end
# Instead you have to nest the block inside an #inputs block and the title
# should be passed to the inputs method
form do |f|
# ...
f.inputs "Translated fields" do
f.translated_inputs 'ignored title', switch_locale: false do |t|
t.input :title
t.input :description
end
end
# ...
end
# You can also set locales to show in tabs
# For example we want to show English translation fields without tab, and want to show other languages within tabs
form do |f|
# ...
f.inputs do
Globalize.with_locale(:en) do
f.input :title
end
end
f.inputs "Translated fields" do
f.translated_inputs 'ignored title', switch_locale: false, available_locales: (I18n.available_locales - [:en]) do |t|
t.input :title
t.input :description
end
end
# ...
end
# You can also set default language tab
# For example we want to make Bengali translation tab as default
form do |f|
# ...
f.inputs "Translated fields" do
f.translated_inputs 'ignored title', switch_locale: false, default_locale: :bn do |t|
t.input :title
t.input :description
end
end
# ...
end
If switch_locale
is set, each tab will be rendered switching locale.
To use the dashed locale keys as 'pt-BR' or 'pt-PT' you need to convert a string to symbol (in application.rb)
config.i18n.available_locales = [:en, :it, :de, :es, :"pt-BR"]
This work is based on original idea by @stefanoverna, I needed it for AA 0.6.x so I forked the original project and expanded it with more features.