从python语言环境包中提取html符合语言值



我用Python脚本创建HTML输出。<head>标签需要一个lang=属性。

我不想使用Python的locale包。但locale(如de_DE)的值不符合HTML。例如,de_DE不被W3C验证器接受,但de可以。

所以我是这样做的:

#!/usr/bin/env python3
import locale
locale_lang = locale.getlocale()[0]  # e.g. 'de_DE'
html_lang_value = locale_lang.split('_')[0]  # e.g. 'de'
head_tag = f'<head lang="{html_lang_value}">'
print(head_tag)  # <head lang="de">

问题是,如果这是一个好主意,将工作在所有的语言?

根据locale.get_locale文档

以序列形式返回给定区域设置类别的当前设置包含语言代码编码(…)除了代码'C',语言代码对应于RFC 1766。语言代码编码可以是None,如果它们的值不能确定。

请注意,如果语言代码将是'C',那么您的locale_lang.split('_')[0]将是'C'。您是否允许接受lang属性值这样的值?更重要的是,语言代码可能是None,这会使你的代码崩溃,因为你不能使用.splitNone,所以如果你的代码必须可靠地工作,那么你应该准备好将locale_lang的值获取为None

相关内容

  • 没有找到相关文章

最新更新