以占位符开头的 Yaml 翻译

标签 yaml translation placeholder symfony4

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

例如

example.translation: %variable% example translation

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

最佳答案

虽然百分号可能被允许作为不从文档开头(它们指示指令)开始的普通标量的开头,但并非所有解析器都允许这样做。您可以通过比较 Nim based parser 来在线检查。与 PyYAML based one 。 YAML 规范明确禁止 % (即 c-indicator )出现在 plain scalar 的开头。 .

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

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

example.translation: '%variable% example translation'

我在这里使用单引号,因为在这些单引号中只有单引号具有特殊含义(如果您的原始版本有单引号,则将其设为两个单引号)。

也可以用双引号引用 YAML 标量,但是原始文件中的任何反斜杠 (\) 和双引号前面必须有一个反斜杠(即 \\\")

您还可以将这样的普通标量制作为文字样式的 block 标量:

example.translation: |-
  %variable% example translation

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

关于以占位符开头的 Yaml 翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51871731/

相关文章:

yaml - ROS YAML 文件中的环境变量?

python - 检查文件中的重复项两次 - Python

arrays - YAML 中的二维数组

api - 如何通过 Onesky 翻译 API 翻译文本

javascript - 占位符在文本区域中不起作用

javascript - 删除 html 页面的可打印版本上的输入占位符

java - 如何通过提交适当的 .YAML 文件以编程方式调用 Argo

nlp - 英语到 babel-lang

c# - UITextField PlaceHolder 颜色更改 Monotouch

translation - Facebook 中的语言翻译是如何完成的?