以占位符开头的 Yaml 翻译
Yaml translation starting with placeholder
我正在尝试使用变量占位符进行翻译并且它工作正常,除非翻译字符串以占位符开头。
例如
example.translation: %variable% example translation
如果第一个 % 之前有任何非白色 space 字符,则可以。否则它说 yaml 文件无效。
虽然百分号可能被允许作为不在文档开头(指示指令的地方)开始的普通标量的开始,但并非所有解析器都允许这样做。您可以通过比较 Nim
based parser with the PyYAML based one. The YAML specification explicitly disallows %
(which is a c-indicator) from appearing at the beginning of a plain scalar.
在线检查
如果您的编辑会引入冒号(后跟空格)或反斜杠,您会 运行 遇到类似的问题。
简单的解决方案是引用该值:
example.translation: '%variable% example translation'
我在这里使用单引号,因为其中只有单引号具有特殊含义(如果您的原文有一个单引号,请将其设为两个单引号)。
用双引号引用 YAML 标量也是可能的,但是原始文件中的任何反斜杠 (\
) 和双引号都必须在反斜杠前面(即 \
和 \"
)
您也可以将这样的普通标量变成文字样式的块标量:
example.translation: |-
%variable% example translation
您 必须 使用 -
chomping 指示符,否则您的标量将以换行符结尾,而原始标量则没有。那么你不必
对原件中的单引号或双引号或任何反斜杠做任何特殊处理。
我正在尝试使用变量占位符进行翻译并且它工作正常,除非翻译字符串以占位符开头。
例如
example.translation: %variable% example translation
如果第一个 % 之前有任何非白色 space 字符,则可以。否则它说 yaml 文件无效。
虽然百分号可能被允许作为不在文档开头(指示指令的地方)开始的普通标量的开始,但并非所有解析器都允许这样做。您可以通过比较 Nim
based parser with the PyYAML based one. The YAML specification explicitly disallows %
(which is a c-indicator) from appearing at the beginning of a plain scalar.
如果您的编辑会引入冒号(后跟空格)或反斜杠,您会 运行 遇到类似的问题。
简单的解决方案是引用该值:
example.translation: '%variable% example translation'
我在这里使用单引号,因为其中只有单引号具有特殊含义(如果您的原文有一个单引号,请将其设为两个单引号)。
用双引号引用 YAML 标量也是可能的,但是原始文件中的任何反斜杠 (\
) 和双引号都必须在反斜杠前面(即 \
和 \"
)
您也可以将这样的普通标量变成文字样式的块标量:
example.translation: |-
%variable% example translation
您 必须 使用 -
chomping 指示符,否则您的标量将以换行符结尾,而原始标量则没有。那么你不必
对原件中的单引号或双引号或任何反斜杠做任何特殊处理。