Ich habe eine mehrsprachige Anwendung, die die Sprache für einen Link ändert, der sich immer oben auf der Seite befindet.Lokalität der Schienen ändert sich, aber Pfade in Verbindungen bleiben gleich
<%= link_to "English", :locale => 'en' %>
<%= link_to "French", :locale => 'fr' %>
Wenn ich auf einen der Links klicken, wird der param [: locale] Änderungen und alle Übersetzungen in Ordnung erscheinen. Wenn ich jedoch auf eine URL klicke, bleibt die Verknüpfung mit dem aktuellen Gebietsschema. Es ändert nicht den tatsächlichen Pfad mit der neuen URL.
-Controller
before_action :set_locale
def default_url_options
{ locale: I18n.locale }
end
def set_locale
I18n.locale = params[:locale]
end
Routen
namespace :admin do
scope "(:locale)", locale: /en|fr/ do
// resources
end
end
ich möchte, wenn ich auf den Link klicken locale, alles in den Seitenänderungen einschließlich der Pfade zu ändern. Derzeit wird nur die korrekte Übersetzungsdatei geladen, aber die Pfade werden nicht aktualisiert.
Danke!
Vielen Dank für Ihren Vorschlag, ich habe es versucht und leider hat es nicht funktioniert. –
Antwort wurde aktualisiert. hat es funktioniert? – adcosta
würde es nicht funktionieren, da Sie dort auf root umleiten. Ich möchte, dass es auf der gleichen Seite bleibt. Ich habe auch versucht url_for(). –