Enquanto brincava com os caras da travis-ci, tive a oportunidade de olhar para algumas soluções diferentes para colocar o i18n e trabalhar em um aplicativo EmberJS. Uma solução foi gerar os ativos i18n por meio de filtros da web do pipeline de rake e alimentá-los no i18n-js. Esta solução funciona com um repositório de ativos de IU totalmente isolado, por exemplo, nenhum aplicativo Rails é necessário. Você pode usar qualquer API de back-end que desejar para alimentar seu front end.
Onde está o bife?
https://github.com/randym/rake-pipeline-web-filters
Ou você pode aumentar o PR para colocar isso no repositório oficial:
https://github.com/wycats/rake-pipeline-web-filters/pull/38
DETALHES
(ou um mini-howto)
Em seu Gemfile:
gem 'rake-pipeline-web-filters', github: 'randym/rake-pipeline-web-filters'
Em seu AssetFile:
require 'rake-pipeline-web-filters'
output 'public/javascripts'
input 'locales' do
match '**/*.yml' do
ember_i18n :use_i18n_js => true
end
concat 'localizations.js'
end
um pequeno bundle exec rakep magic mais tarde e as localizações para i18n-js estão prontas para uso.
Mas por que não tornar sua vida um pouco mais fácil?
Um pouquinho de café para se tornar um ajudante de guiador:
Handlebars.registerHelper 't', (key) ->
safe I18n.t(key)
E as visualizações do guidão só precisam de:
{{ t home.name }}
Se você estiver usando o Localeapp – http://www.localeapp.com/
( deveria estar! )
Aqui está uma tarefa rápida para obter todas as suas traduções:
desc "update all locale files from localeapp"
task :update_locales do
require 'localeapp'
system 'localeapp pull'
end
end
Então, bundle exec rake update_locales e bundle exec rakep chuta para fora todos os recursos de que você precisa para obter um front-end JS funcionando bem com i18n!
Não se esqueça
de usar o sabor i18n-js da localização JS em vez do pop fnando de 18n-js ultra legal do EmberJS em seus ativos de fornecedor!
https://github.com/fnando/i18n-js/blob/master/vendor/assets/javascripts/i18n.js
alternativamente
Se você estiver trabalhando com um aplicativo rails monolítico , a gem i18n-js ( https://github.com/fnando/i18n-js ) irá sugar todas as suas localizações e colocá-las no pipeline de ativos.
Outro grande truque aqui é usar a joia a seguir para enviar quaisquer traduções ausentes de volta ao Localeapp para que seus tradutores tenham o conjunto completo de chaves que requerem localização.
https://github.com/randym/localeapp-i18n-js
Se você tiver Localeapp configurado em seu aplicativo Rails, tudo que você precisa fazer é adicionar:
#/app/assets/javascripts/application.js
//= require localeapp-i18n-js
Questões?
dê-nos um grito: @morgan_randy