我将如何指示IANA语言子标签注册中心中未列出的其他语言,例如虚构语言?
参考BCP 47(RFC 5646和4647),我想可能需要und
标签或-x
专用指示器;但首选的形式是([[e.g。)“ und-x-dothraki
”,“ x-dothraki
”,“ qgm-dothraki
”(对于George Martin使用q
+ gm
)还是其他形式?
The Ficlang words <i lang="???">foo bar</i> mean “Hello, sir” in English.
上述lang="???"
属性中的正确值是什么?(理想情况下,这应该包括一种区分多种非标准语言的方法。)
mis
表示未编码的语言。但是,BCP 47 –是描述“ Internet最佳当前实践”的IETF文件,而不是标准–表示不应使用mis
。该论点相当微弱:“由于将来添加其他代码可能使其应用程序无效,因此它固有地不稳定,因此与BCP 47的稳定性目标不兼容。始终最好使用其他子标签:要么'und',要么或(事先同意)私人使用子标签。”
HTML5 CR – W3C的候选推荐标准–表示如果lang
attribute值为空字符串,即lang
,则“必须将其解释为表示节点的语言明确未知”。当前的HTML建议不包含这样的原则,关于lang=""
属性的特殊值,它们还是比较模糊的。
因此,原则上,这取决于您认为哪些文件是权威的。另一方面,它很可能对任何事物都没有实际影响:只要lang
属性值不在浏览器能够识别的有限(和与浏览器相关)语言代码集中,就很可能被视为禁止浏览器可能进行的(针对元素的)任何特定于语言的处理。
[我正在寻找一种使用lang
属性来表示lang
标记中使用的计算机语言的方法,而我最终使用了<code>
,它表示:]]
该属性包含一个“语言标记”,格式为“识别语言的标记(BCP47)”中定义的格式。因此,必须(应该)遵循的标准是CSP47。读MDN lang attribute page,我发现:
[[ISO639-2]已定义子标签中包含的几个代码选择语言时需要额外注意的注册表标签。在大多数情况下,省略语言标签是允许,这样的遗漏比使用这些代码更好。
语言标签不应将这些子标签作为前缀,除非附加信息为申请。
我们在这种情况下:您提供了更多信息(标记的内容是用您的虚构语言编写的,因此可以使用lang属性而不是不使用它。)>
“ mul”(多种)主要语言子标记标识多种语言的内容。 [...]不是我们的情况
“ und”(未确定)主要语言子标签标识语言内容不确定的语言内容。此除非需要语言标签,否则不应使用子标签语言信息不可用或无法使用确定。
省略语言标签(如果允许)是首选。 'und'子标记可能对协议有用需要提供语言标签或主要语言的地方语言子标签是必需的(例如在“ und-Latn”中)。的在匹配语言标签中的'und'子标签时,也可能很有用某些情况。
也不是我们的情况:语言是确定的,只是不符合BCP标准。因此也不使用“ und”。
“ zxx”(非语言,不适用)主要语言子标签可识别其语言分类的内容不适当或不适用。一些例子可能包括器乐或电子音乐;录音由非语言的声音组成;没有的视听资料旁白,对话,印刷标题或字幕;机-由机器语言或字符代码;或编程源代码。不是虚构语言的情况(假设您的虚构人物不是乐器)
“ mis”(未编码)主要语言子标签标识了内容已知其语言,但目前没有相应的子标签。似乎是您的情况:让我们用这个!
不应使用此子标签。嗯...
因为将来添加其他代码可以渲染它的应用无效,本质上是不稳定的,因此与BCP 47的稳定性目标不符。哦,对,“子标签不应用于可能在某天以BCP47结尾的语言”!我怀疑你会...
总是最好使用其他子标签:“ und”或“协议)私有使用子标签。这是另一种方式,您可以使用the BCP47 spec语言标记并将其视为私有语言。空lang标记不适合,因为该语言是已知的。不设置也将是一个错误,因为它不是主流的语言。
到目前为止,我了解了规格,您可以使用
x-
或mis-...
语言标记。如果我误会了,请纠正我(这是我在相同情况下[虚构语言]很快就会采取的方式,因此,如果在启动代码之前知道这是错误的方式,那对我来说更容易纠正!)