如何在Spree i18n中处理URL的语言环境?

时间:2019-05-04 06:16:30

标签: ruby-on-rails spree

我想修复网址复制这样的网址。 http://localhost:3000/ja/shop/ja/products/apache-baseball-jersey/'

前几天,我在我的Rails应用中使用spree_i18n设置了狂欢。 并像这样设置Gemfile。

# Spree
gem 'spree', '~> 3.7.2'
gem 'spree_gateway', '~> 3.4'
gem 'spree_i18n', github: 'spree-contrib/spree_i18n'
gem 'spree_globalize', github: 'spree-contrib/spree_globalize'
gem 'spree_paypal_express', github: 'spree-contrib/better_spree_paypal_express'

另外,这是我的路线。

Rails.application.routes.draw do
scope "(:locale)", locale: /en|ja/ do
   get '/' => 'frontpage#index'
   mount Spree::Core::Engine, at: '/shop

我的默认语言环境是英语,支持的语言环境是日语。 理想的网址类似于“ https://somedomain/(locale)/product”。

那我该怎么办?

1 个答案:

答案 0 :(得分:0)

区域设置重复

在我看来,像Spree的引擎和spree_i18n已经在处理基于语言环境的路由一样。

删除scope "(:locale)", locale: /en|ja/应该删除重复项。

删除“ / shop”

如果您希望将“ https://somedomain/(locale)/product”作为您的URL,则意味着从中删除“ / shop”。您可以通过在下面的根目录上直接安装spree的引擎来实现:mount Spree::Core::Engine, at: '/。请注意,这样做,您添加的任何路线都可能与引擎定义的路线发生冲突。