TL;DR
我正在做一个多语言&区域RubyonRails(6.0(项目。我希望URL不包含默认的语言环境&区域(I18n(,而所有其他语言和区域必须出现。
电流:
mysite.com/en-us/xyzmysite.com/es-mx/xyz
预期:
mysite.com/xyzmysite.com/es-mx/xyz
附加信息:
因此,我正在为一个客户端开发一个多语言应用程序,将一个简单的Wordpress网站变成一个真正的Web应用程序。大多数要求都发生在登录之后,因此我不关心SEO的角度。
然而,最初的网站只有英文。我们仍然重用(重建(几个可以公开访问的页面,这些页面在谷歌的SERP中排名很好。我们不能失去这些网站,即使是在短期内,所以301重定向不会做到这一点。
现在,我现在拥有的是针对语言和地区的URL-这里有一个摘录:
- myapp.com/en-us/xyz
- myapp.com/en-gb/xyz
- myapp.com/es mx/xyz
- myapp.com/he il/xyz
- myapp.com/hi在/xyz
一切都很好,除了我需要英文-美国版本,这是不出现在URL中的默认语言和地区。
- en-US:myapp.com/xyz-->默认语言(应为:无区域设置!(
- en-GB:myapp.com/en-GB/xyz
- es MX:myapp.com/es MX/xyz
- he IL:myapp.com/he IL/xyz
- 嗨在:myapp.com/嗨在/xyz
我浏览了可用的资源,但什么都找不到:
- https://guides.rubyonrails.org/i18n.html
- 如何避免在生成的URL中添加默认区域设置
非常感谢任何指针或可能的解决方案!
假设您的application_controller.rb中有
def default_url_options
{ locale: I18n.locale }
end
尝试
def default_url_options
{ locale: ((I18n.locale == I18n.default_locale) ? nil : I18n.locale) }
end