-5

如何将变量或参数传递给gritter Ruby on Rails gem,以便它可以用作国际化 (i18n) 替换的一部分?

您可以像这样在控制器中对 gflash 进行硬编码:

butter = 'melted'
gflash :notice => "The knob of butter is #{butter}"

在上面,#{butter}被替换为“融化”。

但这会在控制器中设置翻译,忽略 gflash.en.yml 文件的使用,并使用一种语言。

使用变体测试如何调用变量似乎不会导致替换。

en:
  gflash:
    titles:
      notice: "Notice"
    accounts:
      login:
        notice: "@butter     {butter}    $butter      #butter     %butter       
                 %{@butter}  %{#@butter} %#{@butter}  %#{butter}  %s
                 %@butter    %{#butter}  #{@butter}   #@butter    {#@butter}   
                 %{butter}   #{butter}   ${butter}    @{butter}"

gflash.en.yml 文件中的上述键没有一个显示“融化”,而是按原样显示。

像这样试图通过它也行不通:

gflash :notice => {:butter => 'melted'}

有没有办法将变量传递给 gritt gem 使用的翻译键,而不是限制在控制器中硬编码一种语言?

4

1 回答 1

1

它似乎不允许任何变量:https ://github.com/RobinBrouwer/gritter/blob/master/lib/gritter/gflash.rb#L48

我想你可以这样做:

gflash :notice => t("gflash.#{params[:controller]}.#{params[:action]}.notice", butter: butter)

但最好的方法是创建一个 GH 问题(最好使用拉取请求)。

于 2013-12-26T02:26:52.360 回答