我正在使应用程序国际化,无法弄清楚如何声明包含单引号和双引号的转换字符串。这是我试图
的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
如果只有双引号,我会用单引号括起来,反之亦然。我如何处理双引号和单引号?
答案 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