jupyter添加新的语言包

Posted 想游泳的鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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了。

以上是关于jupyter添加新的语言包的主要内容,如果未能解决你的问题,请参考以下文章

jupyter添加新的语言包

使用常规 Jupyter Notebook 导入 PySpark 包

在jupyter中添加新的环境

我已下载好haskell语言,我怎么将haskell加入到jupyter notebook的新的内核当中去?

anaconda jupyter

Jupyter常用技巧总结