Для сайта, на котором я строил сайт Middleman, я локализую целые шаблоны, как описано в документах внизу базы данных "Localization" section. Таким образом, соответствующая часть файла дерево выглядит следующим образом:Ссылка Middleman link_to для локализованных шаблонов
/localizable
|
|- index.en.html.haml
|- index.ru.html.haml
|- about.en.html.haml
|- about.ru.html.haml
Я могу связать с index.en страницы на about.en страницы с помощью помощник пути так:
= link_to 'about me', '/about.html'
Но когда Я пытаюсь сделать подобный трюк, чтобы создать ссылку со страницы index.ru на страницу about.ru:
= link_to 'some russian text', '/russian/about.html'
помощник не работает. Он игнорирует папку /russian
и создает ссылку на /about.html в корне.
Я что-то упускаю или помощник пути неприменим для локализованных шаблонов? Является единственным вариантом использовать тег <a>
напрямую?
============
Update1: соответствующие части моего config.ru файла:
set :css_dir, 'stylesheets'
set :js_dir, 'javascripts'
set :images_dir, 'images'
activate :relative_assets
set :relative_links, true
activate :i18n, :langs => [:en, :ru], :lang_map => { :en => :english, :ru => :russian }
activate :blog do |blog|
blog.prefix = "blog"
blog.paginate = true
end
# Build-specific configuration
configure :build do
# For example, change the Compass output style for deployment
# activate :minify_css
# Minify Javascript on build
# activate :minify_javascript
# Enable cache buster
# activate :asset_hash
# Use relative URLs
# activate :relative_assets
# Or use a different image path
# set :http_prefix, "/Content/images/"
end
Извините за поздний ответ - мне потребовалось некоторое время, чтобы вернуться к этому проекту. Я обновил свой вопрос, чтобы включить соответствующую информацию из моего файла config.ru. В отличие от проблемы, описанной в вашей первой ссылке, ': i18n' активируется перед' build'. – azangru
Изменение '= link_to 'обо мне', '/ about.html'' to' = link_to' обо мне ','/# {I18n.locale}/about.html'', как было предложено во второй ссылке, почти работает. . Только путь, который он создает, - '/ru/about.html', тогда как я переустановил 'ru' на 'russian', поэтому полученный URL-адрес недействителен.Мне нужно создать '/russian/about.html'. – azangru
Хорошо, я сделал несколько тестов и знаю, почему ваша конфигурация не работает, я могу сделать редактирование ответа, но не знаю, почему ваша текущая конфигурация не работает, может быть ошибка или странные взаимодействия, потому что у нас есть префикс по умолчанию. – vickzzzzz