栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

jupyter添加新的语言包

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jupyter添加新的语言包

jupyter本身是支持多语言的,但是支持的语言是有限的,官方目前只支持:简体中文,法语,日语,英语。如果想要添加一个新的语言支持,就要自己动手来添加。下面就以添加繁体中文为例,来说明如何添加。
jupyter读取语言包是根据环境变量LANG来读取的。这个环境变量默认没有设置的,所以默认语言为英文。
如果是简体中文,LANG的值就设置为zh_CN,是繁体中文就设置为zh_TW
jupyter的语言包通常放在/dist-packages/notebook/i18n这个目录下

这个目录下,默认是没有zh_TW目录的,需要新建一个。在zh_TW文件夹中建立一个LC_MESSAGES文件夹。

其实可以打开zh_CN文件夹中的LC_MESSAGES文件夹看看,其中有什么文件

多语言文件就是一个nbjs.json,这个文件是依靠三个文件,然后用代码来生成的。

jupyter官方提供了多语言翻译需要的三个文件:nbjs.pot,nbui.pot,notebook.pot,这三个文件的格式很类似,如下所示:

msgid "Edit"
msgstr ""

其中msgid是默认的英文,msgstr就是要翻译的本地化语言所放置的位置。把这三个文件中对应的英文的翻译放到msgstr中,然后使用命令,就可以生成nbjs.json文件,jupyter读取nbjs.json文件即可完成菜单的本地化显示。最笨的方法就是手动翻译这三个文件中的每一行,然后生成nbjs.json文件。jupyter提供了代码,可以来转换这个三个文件,但是需要微软的Azure的API,所以我修改了一下代码,使用了百度免费的API,下面我说一下步骤。大家需要的翻译源码的话可以上csdn资源下载,我放在了上面。

  1. 安装必要的库文件。
    pybabel - pip install babel
    po2json – npm install -g po2json (这个就是把po文件生成json文件)
    polib --pip install polib

  2. 运行脚本baidu_api.py
    在运行之前,需要先去百度的翻译平台申请一个账号。次数没有限制,只是最好一秒钟使用一次,怕太频繁,封IP。

  3. 运行完成以后,就可以生成三个文件nbjs.po,nbui.po,notebook.po。把这个是三个文件拷贝到zh_TW/LC_MESSAGES目录下。

  4. 在noteook/i18n目录下依次执行以下命令

pybabel compile -D notebook -f -l ${LANG} -i ${LANG}/LC_MESSAGES/notebook.po -o ${LANG}/LC_MESSAGES/notebook.mo
pybabel compile -D nbui -f -l ${LANG} -i ${LANG}/LC_MESSAGES/nbui.po -o ${LANG}/LC_MESSAGES/nbui.mo
po2json -p -F -f jed1.x -d nbjs ${LANG}/LC_MESSAGES/nbjs.po ${LANG}/LC_MESSAGES/nbjs.json

就可以在zh_TW目录下生成nbjs.json文件,然后启动jupyter就可以了。

  • 注意,在翻译的过程中,一些占位符可能会出错,在运行命令pybabel的时候,会提示。这个时候需要手动修改一下,直到pybabel不再出现错误为止。否则,运行下面两个文件也会出错,就生成不了po2json了。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/503614.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号