2016-12-11 7 views
0

나는 the recommended Sinatra recipe 다음에 I18n이있는 간단한 Sinatra 앱을 설정하고 Rack:Locale을 사용하여 언어를 결정하려고합니다.Sinatra I18n Rack :: Locale을 사용하는 폴백

내 app.rb :

require 'rubygems' 
require 'sinatra' 
require 'rack/contrib' 
require 'i18n' 
require 'i18n/backend/fallbacks' 
require 'tilt/haml' 

use Rack::Locale 

configure do 
    I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks) 
    I18n.load_path = Dir[File.join(settings.root, 'locales', '*.yml')] 
    I18n.backend.load_translations 
end 

helpers do 
    def t(*args) 
    I18n.t(*args) 
    end 
end 

get '/' do 
    haml :index 
end 

내 로케일/en.yml : 나는 rackup를 실행하고 내시나 응용 프로그램의 루트 경로를 방문 할 때

en: 
    welcome: "Welcome!" 

, 나는 다음을 얻을 :

I18n::InvalidLocale at/
"en-US" is not a valid locale 
file: i18n.rb location: enforce_available_locales! line: 284 

나는 I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)이 처리 할 것이라고 생각했는데,를 찾지 못했습니다.3210 그리고 다시 en (나는 가지고있다)에 떨어지고, 명백하게. 내가 뭘 놓치고 있니?

답변

0

추가 :

I18n.enforce_available_locales = false