Multi-languages generator for hexo.
JavaScript
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib fixed child root solution Jan 22, 2017
.gitignore Initial commit May 25, 2016
.npmignore init commit May 27, 2016
.travis.yml Update .travis.yml Sep 6, 2016
LICENSE Initial commit May 25, 2016
README.md update readme Sep 7, 2016
README_zh.md update readme Sep 7, 2016
index.js add default config Aug 25, 2016
package.json Revert version to 0.0.6 Jan 22, 2017

README.md

hexo-generator-i18n

Build Status node npm downloads npm version GitHub release

Multi-languages pages generator for Hexo.

Installation

$ npm install hexo-generator-i18n --save

Config

_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: [index, archive, category, tag]
  • 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.
  • index: Generate i18n index page
  • archive: Generate i18n archive page
  • category: Generate i18n category page
  • tag: Generate i18n tag 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

Order

Make sure this plugin after other generators in dependencies of package.json

Usage

You may need to replace url_for() to url_for_lang() to output link under current language. Usually, in post/archive/tag/category pages.

Helpers

get_langs

Return array of config languages, exclude default language

default_lang

Return default language, it's the first element of get_langs

switch_lang

Return the absolute url under lang

window.location = {{ switch_lang('en')}}

url_for_lang

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>';

License

MIT