【发布时间】:2011-10-11 06:12:23
【问题描述】:
有没有办法嵌套翻译查找?像这样的:
en:
uh_oh: 'Uh Oh!'
error1: :'uh_oh' + ' There was a big error!'
error2: :'uh_oh' + ' There was another big error!'
I18n.t('error1') #=> 'Uh Oh! There was a big error!'
I18n.t('error2') #=> 'Uh Oh! There was another big error!'
我已经尝试了很多变体,还尝试使用 Ruby 翻译文件而不是 YAML。请注意,这确实有效:
en:
uh_oh: 'Uh Oh!'
error1: :'uh_oh'
I18n.t('error1') #=> 'Uh Oh!'
但如果我向error1 添加额外的文本,uh_oh 不会被翻译。
基本上我想避免总是用通用术语传递,例如:
en:
uh_oh: 'Uh Oh!'
error1: '%{uh_oh} There was a big error!'
I18n.t('error1', {uh_oh: I18n.t('uh_oh')})
对于像uh_oh 这样的常用术语,每次调用error1(以及使用uh_oh 的任何其他键)的插值都是相同的,因此必须传入字符串实际上没有意义被插值。改为执行以下操作会更容易,并让 error1 翻译负责公共密钥翻译:
I18n.t('error1')
【问题讨论】:
标签: ruby-on-rails ruby internationalization