Meine Rails App ist auf Schienen 4.0.2 und ich habe ein Problem beim Umschalten Übersetzungen mit der locale
Variable und der params[:locale]
aus dem URL-Schema nach dem offiziellen Schienen guide. Ich habe eine einzelne Seite Website unter .Locale schaltet nicht in Rails 4
Meine Routen für Internationalisierung:
scope "(:locale)", locale: /en|de/ do
#my routes here
end
Meine Anwendung Controller
before_filter :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
#Rails.application.routes.default_url_options[:locale]= I18n.locale
end
# app/controllers/application_controller.rb
def default_url_options(options = {})
{ locale: I18n.locale }.merge options
end
Die Links die locale-Variablen in der Ansicht zu ändern:
<%= link_to_unless I18n.locale == :en, "English", locale: :en %>
|
<%= link_to_unless I18n.locale == :de, "Deutsch", locale: :de %>
Was geschieht: die locale
Variable ist gesetzt richtig, aber die Übersetzungen wechseln nicht. Wenn ich eine der Übersetzungsdateien entferne (derzeit für Englisch und Deutsch), wechselt die Sprache zur verbleibenden Übersetzungsdatei. Wenn ich die andere Übersetzungsdatei zurücksetze und versuche, zu ihr zu wechseln, indem ich die Gebietsschemavariable ändere, schaltet sie nie auf die andere Sprache um.
Warum ändert mein Code die Übersetzungen nicht?
Ich hoffe, Sie können das Patch, weil Rails 4.0.2 einige ernste Sicherheitsprobleme hat und die Verwendung von 4.0.13 wird dringend empfohlen. Ein Tool wie [Gem Canary] (https://gemcanary.com/) kann Ihnen bei Problemen wie diesem helfen, bevor es zu Problemen kommt. – tadman
Ich habe die gemset rails 4.0.13 gepatcht, danke für den Hinweis. – nuxxxx