You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Mobility gem统一设置缺失翻译的默认回退?

为Mobility Gem批量设置全局翻译回退

方法1:借助I18n全局回退配置

Mobility会自动继承Rails的I18n回退规则,所以可以直接在全局I18n配置里设置:

# 配置文件可放在 config/application.rb 或 config/initializers/i18n.rb
I18n.default_locale = :en
I18n.fallbacks = true

这样所有缺失的翻译都会自动回退到默认locale(这里是en)。如果需要自定义可用locale范围,也可以这样写:

I18n.fallbacks = I18n.available_locales.each_with_object({}) do |locale, hash|
  hash[locale] = :en unless locale == :en
end

方法2:在Mobility专属配置中动态生成回退规则

如果不想影响全局I18n设置,仅针对Mobility配置,可以在初始化文件(比如config/initializers/mobility.rb)里动态生成所有locale的回退映射:

Mobility.configure do
  # 用项目的可用locale列表,也可以直接写死如 [:en, :de, :fr, :ja]
  available_locales = I18n.available_locales
  fallback_map = available_locales.each_with_object({}) do |locale, map|
    map[locale] = :en unless locale == :en
  end

  fallbacks fallback_map
end

补充说明

你之前尝试的fallbacks :en不生效,是因为Mobility的fallbacks方法直接传单个locale时,仅会为当前请求的locale设置回退,而非所有locale。必须传入哈希来明确每个locale的回退目标,或者用上面的动态生成方式批量处理所有场景。

内容的提问来源于stack exchange,提问作者seppsepp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 11:42:33