Tôi cảm thấy như tôi đang thiếu một cái gì đó thực sự đơn giản và tôi tiếp tục quay bánh xe của tôi về vấn đề này.Quốc tế hóa các trang tĩnh với Rails
Tôi hiện đang quốc tế hóa hoạt động trong suốt ứng dụng của mình. Các bản dịch hoạt động và các tuyến hoạt động hoàn hảo. Ít nhất, hầu hết trang web hoạt động ngoại trừ các tuyến đường đến hai trang tĩnh của tôi, các trang "Giới thiệu" và "Câu hỏi thường gặp" của tôi.
Mỗi liên kết khác trong toàn bộ ứng dụng trỏ đến tuyến đường được bản địa hóa thích hợp. Ví dụ: nếu tôi chọn "tiếng Pháp" làm ngôn ngữ của tôi, các liên kết sẽ trỏ đến "(/:locale)/controller(.:format) thích hợp". Tuy nhiên, bất chấp những thay đổi tôi thực hiện trong suốt ứng dụng, liên kết của tôi cho "Giới thiệu" và "Câu hỏi thường gặp" từ chối trỏ đến "../fr/static/about" và luôn trỏ đến "/ static/about".
Để làm cho những vấn đề xa lạ hơn, khi tôi chạy các tuyến đường rake tôi thấy: "các trang GET (/:locale)/static/:permalink(.:format) # show {: locale =>/en | fr /}"
và khi tôi nhập thủ công "../fr/static/about" trang sẽ dịch hoàn hảo.
Tuyến My file:
devise_for :users
scope "(:locale)", :locale => /en|fr/ do
get 'static/:permalink', :controller => 'pages', :action => 'show'
resources :places, only: [:index, :show, :destroy]
resources :homes, only: [:index, :show]
match '/:locale' => 'places#index'
get '/'=>'places#index',:as=>"root"
end
ApplicationController của tôi:
before_filter :set_locale
def set_locale
I18n.locale=params[:locale]||I18n.default_locale
end
def default_url_options(options={})
logger.debug "default_url_options is passed options: #{options.inspect}\n"
{ :locale => I18n.locale }
end
và Trang My Bộ điều khiển:
class PagesController < ApplicationController
before_filter :validate_page
PAGES = ['about_us', 'faq']
def show
render params[:permalink]
end
def validate_page
redirect_to :status => 404 unless PAGES.include?(params[:permalink])
end
end
Tôi sẽ rất biết ơn sự giúp đỡ nào ... đó là chỉ là một trong những ngày đó.
Chỉnh sửa: Cảm ơn Terry vì đã chạy bộ để đưa vào chế độ xem.
<div class="container-fluid nav-collapse">
<ul class="nav">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><%= t(:'navbar.about') %><b class="caret"></b></a>
<ul class="dropdown-menu">
<li><%=link_to t(:'navbar.about_us'), "/static/about_us"%></li>
<li><%=link_to t(:'navbar.faq'), "/static/faq"%></li>
<li><%=link_to t(:'navbar.blog'), '#' %></li>
</ul>
</li>
Chế độ xem hiển thị liên kết như thế nào? –