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
相关产品推荐
相关产品推荐

