Multi-languages pages generator for Hexo. Here is a demo
$ npm install hexo-generator-i18n --save
_config.yml
# hexo default is empty, change to exact languages, and add xx.yml under your theme languages dir.
language: [zh,en]
# config hexo-generator-i18n option (optional, this is default option)
i18n:
type: [page, post]
generator: [archive, category, tag, index]
- type: What type of model to be i18n generated
- page: All page model under source
- post: All post model under source/_post
- generator: Which generator to be i18n generated, it's array of your installed generator names.
- archive: Generate i18n archive page
- category: Generate i18n category page
- tag: Generate i18n tag page
- index: Generate i18n index page
And add xx.yml (such as zh.yml, en.yml) under your themes languages directory
Set language display name in source/_data/languages.yml (Optional)
zh: 简体中文
en: English
Make sure this plugin after other generators in dependencies of package.json
You may need to replace url_for()
to url_for_lang()
to output link under current language. Usually, in post/archive/tag/category pages.
Return array of config languages, exclude default
language
Return default language, it's the first element of get_langs
Return the absolute url under lang
window.location = {{ switch_lang('en')}}
Return url for path with language
ret += '<ul class="list-group">';
this.site.tags.forEach(function(item){
ret += '<li class="list-group-item"><a href="' + _self.url_for_lang(item.path) + '">' + item.name + '</a></li>';
});
ret += '</ul>';
MIT