Синатра маршруты и i18n - PullRequest
       1

Синатра маршруты и i18n

3 голосов
/ 22 февраля 2011
set :locales, %w[en it]
set :default_locale, 'it'
set :locale_pattern, /^\/?(#{Regexp.union(settings.locales)})(\/.+)$/

helpers do
  def locale
    @locale || settings.default_locale
  end
end

before('/:locale/*') { |params| @locale = params.first } # params shouldn't be a Hash?

Я не могу получить другие страницы, начинающиеся с / en /:

get '/attivita/:activity' do |activity|
  erb "attivita/#{activity.to_sym}".to_sym
end

Должен ли я пестить маршруты с помощью: locale где-нибудь?Спасибо

1 Ответ

2 голосов
/ 26 февраля 2011

Ваш блок before дает мне wrong number of arguments (2 for 1) на Sinatra 1.1.3.

С before из Как определить язык по URL в Синатре работает для меня:

before do
  @locale, request.path_info = $1, $2 if request.path_info =~ settings.locale_pattern
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...