Rails I18n 不包括 URL 中的默认语言环境

Rails I18n do not include default locale in URL

TL;DR

我正在从事一个多语言和区域 Ruby-on-Rails (6.0) 项目。我希望 URL 不包含默认语言环境和地区 (I18n),而所有其他语言和地区必须出现。

当前:

我的网站。com/en-us/xyz 我的网站.com/es-mx/xyz

预期:

我的网站。com/xyz 我的网站.com/es-mx/xyz

附加信息:

所以我正在为客户开发一个多语言应用程序,将一个简单的 Wordpress 站点变成一个实际的 Web 应用程序。大多数要求都发生在登录后,因此从 SEO 的角度来看,我并不关心这个世界。

但是,原始站点只有英文版。我们仍然重用(重建)几个可公开访问并在 Google 的 SERP 中排名靠前的页面。我们不能丢失这些网站,即使是短 运行,所以 301 重定向不会这样做。

现在我拥有的是针对语言和地区的 URLs - 这里是摘录:

一切都很好,除了我需要美国英语版本,它是默认语言和地区,不​​会出现在 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