0
我有一個使用多種語言的應用程序,現在我想在URL中整合語言。類似這樣的:https://example.com/en/main/cars
https://example.com/fr/main/cars
等等。該應用程序完美適用於所有語言,只有URL中缺少該語言。如何將語言整合到Sinatra的URL中
我已經檢查過this和this但我沒有成功。我會感謝任何幫助。
在helpers.rb
我:
def set_locale(new_locale)
allowed_locales = %w[ de en fr it sk ]
if allowed_locales.map{|l| l.to_sym }.include?(new_locale.to_sym)
session[:locale] = new_locale.to_sym
else
session[:locale] = default_locale
end
end
alias_method :set_lang, :set_locale
def locale
session[:locale] || default_locale
end
def default_locale
:de
end
def t(*args)
I18n.locale = locale
I18n.t(*args)
end
def l(*args)
I18n.locale = locale
I18n.l(*args)
end
在app.rb
我定義是這樣的:
Class Something < Sinatra::Application
helpers Sinatra::Something::Helpers
I18n.load_path += Dir[File.join(settings.root, 'locales', '??.yml').to_s]
before "/*" do
set_locale params[:locale] if params[:locale]
set_locale params[:lang] if params[:lang]
set_locale params[:l] if params[:l]
end
end