如何以编程方式访问i18n翻译文件中的字段? (使用r18n和Sinatra)

时间:2012-09-19 23:30:29

标签: ruby internationalization sinatra

我正在使用Sinatra国际化系统开发基于Sinatra r18n的网络应用。

我的./i18n/en.yml r18n翻译文件包含以下内容:

season:
  summer:  !!pl
    0: no Summers
    1: one Summer
    n: "%1 Summers"
  autumn: !!pl
    0: no Autumns
    1: one Autumn
    n: "%1 Autumns"
  winter: !!pl
    0: no Winters
    1: one Winter
    n: "%1 Winters"
  spring: !!pl
    0: no Springs
    1: one Spring
    n: "%1 Springs"

在我的代码中,我可以轻松访问"Total: #{t.season.summer season_count}.",但我无法以编程方式访问我的季节名称。

s = t.season[season_name]会返回Translation个对象。

我看了the source for a Translation然而,看不出我从Translation和数字生成翻译文本的明显方式。

1 个答案:

答案 0 :(得分:1)

你得到翻译,因为你没有向季节[season_name]发送计数,所以R18n返回subhash。只需使用:

s = t.season[season_name, season_count]