(我会评论@Jukka K Korpela 的答案,但评论太短了)
我正在寻找一种方法来使用该lang
属性来表示<code>
标签中使用的计算机语言,最后我进入了MDN lang attribute page,上面写着:
该属性包含一个单一的“语言标签”,其格式在用于识别语言的标签 (BCP47) 中定义。
所以必须(应该)遵循的标准是CSP47。阅读BCP47 规范,我发现:
[ISO639-2] 定义了包含在子标签注册表中的几个代码,在选择语言标签时需要格外小心。
在大多数情况下,在允许省略语言标签的情况下,这种省略比使用这些代码更可取。
语言标签不应该包含这些子标签作为前缀,除非附加信息向应用程序传达了一些价值。
我们在这种情况下:您提供附加信息(标签的内容是用您的虚构语言编写的),因此可以使用 lang 属性而不是不使用它。
“mul”(多种)主要语言子标签标识多种语言的内容。[...]
不是我们的情况
“und”(未确定)主要语言子标签标识其语言未确定的语言内容。
除非需要语言标签并且语言信息不可用或无法确定,否则不应使用此子标签。
最好省略语言标签(在允许的情况下)。“und”子标签可能对需要提供语言标签或需要主要语言子标签的协议有用(例如在“und-Latn”中)。在某些情况下匹配语言标签时,“und”子标签也可能很有用。
也不是我们的情况:语言是确定的,只是不在 BCP 标准中。因此也不使用'und'。
“zxx”(非语言,不适用)主要语言子标签标识语言分类不合适或不适用的内容。一些例子可能包括器乐或电子音乐;由非语言声音组成的录音;没有旁白、对话、印刷标题或字幕的视听材料;由机器语言或字符代码组成的机器可读数据文件;或编程源代码。
不是虚构语言的情况(假设你的虚构角色不是乐器)
“错误”(未编码)主要语言子标签标识其语言已知但当前没有相应子标签的内容。
似乎是你的情况:让我们用这个!
不应使用此子标签。
嗯……
由于未来添加其他代码可能会导致其应用无效,因此它本质上是不稳定的,因此与 BCP 47 的稳定性目标不兼容。
哦,对了,“子标签不应该用于有朝一日可能会出现在 BCP47 中的语言”!我怀疑你的...
最好使用其他子标签:“und”或(事先同意)私人使用子标签。
这是另一种方法,您可以使用x-
语言标签并将其视为私有语言。空的 lang 标记不适合,因为该语言是已知的。不设置 is 也是一个错误,因为它不是主流的语言。
到目前为止,我得到了规范,您可以使用mis-...
或x-...
语言标签。如果我弄错了,请纠正我(在同样的情况下我很快就会这样做[虚构语言],所以如果我在开始代码之前知道这是错误的方式,那对我来说更容易纠正!)