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

Ruby on Rails中i18n YML文件重复键使用合理性咨询

Ruby on Rails i18n YML 重复键的问题解答

你的写法是合法的,Rails的i18n会根据视图所在的上下文(比如users/show页面调用t('users.show.index'),users/edit页面调用t('users.edit.index'))正确加载对应翻译,程序能正常运行。

但如果两个index对应的日语内容完全相同,这种重复写法存在冗余,后续修改翻译时需要改两处,维护成本高。可以用两种方式优化:

方式1:提取共用键到上级层级

把通用的翻译提到users根层级,视图里直接引用这个上级键:

ja:
  users:
    index: (日语内容)
    show:
      # 视图中使用 t('users.index')
    edit:
      # 视图中使用 t('users.index')

适合这个翻译在整个users模块下多个页面通用的场景。

方式2:使用YAML锚点复用内容

用YAML的锚点(&)和引用(*)语法,复用相同的翻译内容,同时保留原有的层级结构:

ja:
  users:
    show:
      index: &index_label (日语内容)
    edit:
      index: *index_label

适合仅在show和edit这两个页面复用该翻译,其他页面不需要的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 15:45:56