【问题标题】:Insert HTML special characters in (i18n) yml在 (i18n) yml 中插入 HTML 特殊字符
【发布时间】:2013-10-31 12:46:27
【问题描述】:

我需要在 html 文件翻译中插入一个特殊字符。 字符是一个空格,需要它来尝试解决另一个问题。

但它不起作用。该字符的代码显示在电子邮件的主题中。

为此,我插入以下几行:

pt.yml

subjects:
  ...
  release_auto_pause_triggered_html: "%{project_name} %{release_name} - pausa automática   disparada"

release_mailer.rb

subject = t('subjects.release_auto_pause_triggered_html', project_name: @project.name, release_name: @release.name).html_safe

但是发送的邮件主题如下:pausa automática disparada

  • 我添加的“'”只是为了发这篇文章,但在这里看不到。

我需要看起来像这样:“pausa automática disparada”

我哪里错了?

【问题讨论】:

  • Rails 不解码 HTML 实体。只需添加另一个不带&nbsp 的翻译条目或将其替换为实际的non-breaking space,即\u00A0

标签: html ruby-on-rails ruby ruby-on-rails-3


【解决方案1】:

我想我做到了。试试这个"pausa automática\xA0disparada"

Source

使用单引号标量,您可以表示任何不包含特殊字符的值。单引号标量不会发生转义,除非将一对相邻的引号 '' 替换为单独的单引号 '。

双引号是最强大的样式,也是唯一可以表达任何标量值的样式。双引号标量允许转义。使用转义序列 \x** 和 \u**,您可以表示任何 ASCII 或 Unicode 字符。

here我找到了必要的代码

我的输出是:

# YML
title: "Title \xA0 aaa"
# console
I18n.t('title')
=> "Title   aaa"

【讨论】:

  • - 它工作,感谢代码,解释和来源。 =]
【解决方案2】:

它应该以这种方式工作。尝试检查拼写错误。

在你的例子中

"pausa automática&nbsp';disparada""

  之间有额外的'

【讨论】:

  • 我的代码中没有。就在这里。我必须在此处插入一个“显示代码”。
猜你喜欢
  • 2014-07-14
  • 2020-02-04
  • 2016-11-24
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-16
相关资源
最近更新 更多