Recursos i18n-js para EmberJS ou qualquer outra estrutura Javascript.

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 Localeapphttp://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