Yaml翻译从占位符开始

时间:2018-08-16 07:25:57

标签: yaml translation placeholder symfony4

我正在尝试使用可变占位符进行翻译,并且工作正常,除非翻译字符串以占位符开头。

例如

example.translation: %variable% example translation

如果第一个%之前有任何非空格字符,则可以。否则说yaml文件无效。

1 个答案:

答案 0 :(得分:1)

尽管可能允许使用百分号作为普通标量的开始,而普通标量的起始不是在文档的开头(它们指示指令),但是并非所有解析器都允许这样做。您可以通过将Nim based parserPyYAML based one进行比较来在线检查。 YAML规范明确禁止%(这是c-indicator)出现在plain scalar的开头。

如果您的编辑会引入冒号(后跟空白)或反斜杠,则会遇到类似的问题。

简单的解决方案是引用该值:

example.translation: '%variable% example translation'

我在这里使用单引号,因为在那些单引号中,它们具有特殊含义(如果您的原件有单引号,请用两个单引号引起来)。

也可以使用双引号对YAML标量进行报价,但是原始的任何反斜杠(\)和双引号都必须在反斜杠之前(即\\\"

您还可以将这种普通标量转换为文字样式的块标量:

example.translation: |-
  %variable% example translation

您将必须使用-斩断指示器,否则标量以换行符结尾,而原始行没有。那你就不用 对原始文件中的单引号或双引号,或任何反斜杠,执行特殊的操作。