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



我正在使用Sinatra r18n国际化系统开发一个基于Sinatra的Web应用程序。

我的./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对象。

但是,我已经查看了Translation的来源,并且看不到我从该Translation和数字生成翻译文本的明显方式。

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

s = t.season[season_name, season_count]

最新更新