如何在YAML中声明带有单引号和双引号的字符串?

时间:2013-02-21 00:06:27

标签: ruby-on-rails ruby yaml

我正在使应用程序国际化,无法弄清楚如何声明包含单引号和双引号的转换字符串。这是我试图

的en.yml字符串的示例
en:
  my_string: When you're using double quotes, they look like "this"

使用上面的字符串,我收到以下错误:

can not load translations from /vagrant/config/locales/en.yml,
expected it to return a hash, but does not

如果只有双引号,我会用单引号括起来,反之亦然。我如何处理双引号和单引号?

3 个答案:

答案 0 :(得分:39)

逃避应该像这样做

"When you're using double quotes, they look like \"this\""

答案 1 :(得分:11)

实际上我无法弄清楚为什么在翻译字符串中需要过时的打字机报价。有2013年左右,我们不再坚持ASCII-7了。排版规则决定了他们使用unicode quotation marks的要求。

这是有史以来最好的做法:映射第三个键盘级别(或最终sed你的yml):

"When you’re using double quotes, they look like “this”"

通过这种方法,您永远不会遇到逃避的麻烦,您的客户肯定会说“哦,整洁。”

很抱歉,如果这看起来有点偏离主题,但由于问题是关于翻译字符串,我仍然认为它是最好的解决方案。

答案 2 :(得分:3)

看看这是否适合您,它在我需要传递JSON值的Spring启动应用程序中对我来说非常适合:

使用YAML管道样式:

app.json:
  values: |
    {"key": "value"}

你的案子是:

en:
  my_string: |
    When you're using double quotes, they look like "this"

折叠式也可能有用,但我还没试过。

在此处查看更多内容:http://symfony.com/doc/current/components/yaml/yaml_format.html#strings