Overview

hexo-generator-i18n

Build Status
node
npm downloads
npm version
GitHub release

Multi-languages pages generator for Hexo. Here is a demo

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: [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

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