关于国际化
针对导航栏添加了一部分国际化的内容,针对后期可能添加的需要国际化的模块做一份记录
选择指定语言
在 icarus 中,语言默认是英语,在<root>/_config.yml
中的 language
选项中可以看到 当前为 en
。我们需要先将其修改为期望的语言,这里我修改的是 zh-CN
即简体中文。
修改完后,能看到大部分地方都变成了中文,但是导航栏仍是英文。这是因为该主题并为对导航栏做国际化处理,导航栏是交由我们在 <root>/_config.icarus.yml
中去配置的,可以直接以汉字作为key值。
但总归是有点不舒服吧,所以想把这些东西也简单国际化一下,顺便看看是哪部分在起作用。
如果不想学jsx语法的可以直接以汉字为key值,因为涉及到部分源码的更改
在选中的语言中完善国际化配置
国际化相关的文件存放在 <root>/themes/icarus/languages
里面,在 zh-CN.yml
添加 menu
选项(名字自定,见名知意即可)
1 | menu: |
有其他想放上去的需要国际化的部分直接写即可,但是要记得在控制 menu
显示的地方加上对应的选项,此处针对 menu
国际化,并不控制显示与否
对于
other
还不是很明白,参考了下面原有的common
这样,针对导航栏国际化的配置文件就补充ok了。
源码更改
打开<root>/themes/icarus/layout/common/navbar.jsx
ctrl+f
找到 Object.keys(navbar.menu)
这部分,因为主题未针对其做国际化处理,所以我们完善menu对象。
对遍历做如下处理
1 | Object.keys(navbar.menu).forEach(name => { |
在Dom处修改显示
1 | {Object.keys(menu).length ? <div class="navbar-start"> |
至此,nav国际化添加完毕。