为什么 Rails I18n.t 将我的翻译包裹在一个段落中?
Why does Rails I18n.t wrap my translation in a paragraph?
在我的 Rails 4 应用程序中,我使用助手 class 为 UI 元素生成 JSON 树。这是 class 的简化版本:
class TaxonomyTree
def initialize(root_node)
@root_node = root_node
@deprecation_marker = t(:deprecated)
end
# Method for generating the JSON tree which use @deprecation_marker ...
end
我的语言环境中的相应条目如下所示:
en:
deprecated: deprecated
出于某种原因,在实例初始化后,@deprecation_marker 包含 <p>deprecated</p>
而不是预期的 deprecated
。 <p>
从哪里来?我怎样才能摆脱它?
PS:我猜想这与 class 是从视图实例化的事实有关(我知道这不是最佳的)。但是,这种行为什么时候才是可取的?
对于所有面临类似问题的人来说,在我的情况下,它是由 Redcloth gem 引起的,它还为 ER::Util#textilize
定义了一个 t 别名。因此,我对 t(:deprecated)
的调用实际上并没有使用 I18n.t
.
解决方法很简单,我现在使用 I18n.t(:deprecated)
而不是 t(:deprecated)
。
在我的 Rails 4 应用程序中,我使用助手 class 为 UI 元素生成 JSON 树。这是 class 的简化版本:
class TaxonomyTree
def initialize(root_node)
@root_node = root_node
@deprecation_marker = t(:deprecated)
end
# Method for generating the JSON tree which use @deprecation_marker ...
end
我的语言环境中的相应条目如下所示:
en:
deprecated: deprecated
出于某种原因,在实例初始化后,@deprecation_marker 包含 <p>deprecated</p>
而不是预期的 deprecated
。 <p>
从哪里来?我怎样才能摆脱它?
PS:我猜想这与 class 是从视图实例化的事实有关(我知道这不是最佳的)。但是,这种行为什么时候才是可取的?
对于所有面临类似问题的人来说,在我的情况下,它是由 Redcloth gem 引起的,它还为 ER::Util#textilize
定义了一个 t 别名。因此,我对 t(:deprecated)
的调用实际上并没有使用 I18n.t
.
解决方法很简单,我现在使用 I18n.t(:deprecated)
而不是 t(:deprecated)
。