在 C 语言环境中,GNU 程序的输出对于用户消息中的引号字符应坚持使用纯 ASCII:最好使用 0x22 (‘"’) 或 0x27 (‘'’) 作为开始和结束引号。虽然 GNU 程序传统上使用 0x60 (‘`’) 作为开始引号,使用 0x27 (‘'’) 作为结束引号,但如今 ‘`像这样'’ 的引号通常被不对称地渲染,所以引用 ‘"像这样"’ 或 ‘'像这样'’ 通常看起来更好。
GNU 程序在非 C 语言环境中生成特定于区域设置的引号是可以的,但不是必须的。例如:
printf (gettext ("Processing file '%s'..."), file);
在这里,一个法语翻译可能会导致 gettext
返回字符串 "Traitement de fichier ‹ %s ›..."
,从而产生更适合法语区域设置的引号。
有时程序可能需要直接使用开始和结束引号。按照惯例,gettext
将字符串 ‘"`"’ 翻译为开始引号,将字符串 ‘"'"’ 翻译为结束引号,程序可以使用这些翻译。然而,通常最好在较长字符串的上下文中翻译引号字符。
如果您的程序的输出可能会被另一个程序解析,那么提供一个使解析可靠的选项是很好的。例如,您可以使用 C 语言或 Bourne shell 的约定来转义特殊字符。例如,请参阅 GNU ls
的选项 --quoting-style。