Rails i18n locale editor
Proof of concept of live locale editor for Ruby on Rails
Features
-
edit translations in-place in overlay window right on your live site
-
cool firebug-like translation key selector for localized strings
-
ajax lazy updating for better user experience
-
taranslations listing (index)
-
select which locales to show in translations index
-
show only keys with missing translations
-
unobtrusive JS inclusion - if jQuery is not included in project and async autoloads it from CDN as noConflict(), then loads itself
-
tested in Firefox and Chromium
-
tested on rails 2.3.8, 2.3.2 with bundler see: gembundler.com/rails23.html
-
not designed as production CMS, it’s for developers
Installation
add to your Gemfile:
gem "i18n_locale_editor"
run:
bundle install
add to your layout’s <HEAD> section:
=include_i18n_editor
start server with environment variable:
I18N_EDITOR=true script/server
TODO
-
tests
-
code review and documentation
-
rails 3 support
-
test it on real-life translator’s workflow to save clicks and improve efficiency (maybe add ‘commit and next’ to editor)
-
auto copy js asset and include by gem version in init.rb
-
when open in editor is requested, add locale from key to be shown on index if it is not set in session yet
-
when open in editor is requeseed and “show only missing” is enabled, check if the requested key is in the result set, if not cancel the fileter and retry
-
it will copy javascript assets to RAILS_ROOT/public/i18n_locale_editor on every init, find some better and unobtrusive way
-
raise if not vaild html accepted as transalation
-
show key name in modal window
-
move all javascript functions to i18n namespace to prevent colision
-
make hash_tools as inherited class ExtendedHash from Hash (eradicate monkey patching)
-
extract translation controller name, model name, routing nammespace to some config and make it dynamic
-
ESC to close modal window
-
possibility to load another translations in modal
-
toggle wym editor in modal (cool)
-
change localization key from id to rel in span I18n monkey patch
-
git, subversion support for tracking changes
-
escape path for eval in hash_tools.rb (!!!)
-
translation workflow design
-
translation key is held in span id=“en.translation.key”. check if the ‘id’ attribute can contain dots
-
title, buttons, select options are broken - filter them out
-
create tools for refactoring - especially path rename
-
paginantion on index
-
list missing translations
-
api for external access
-
scopes support for api (how)
-
export all locales to csv (it’s done, but not included in this gem)
-
import all locales from csv (it’s done, but not included in this gem)
-
key hitcounter
-
test in Opera, IE and other browsers…
-
review these issues and move them to the github’s task tracker :)
Copyright
Copyright © 2011 Adam Kliment, Virtualmater s.r.o. See LICENSE for details.