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了。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值