Code Monkey home page Code Monkey logo

vue-i18n's Introduction

vue-i18n

Build Status Coverage Status bitHound Score Dependency Status devDependency Status

Yet another internationalization plugin for Vue.js.

Requirements

Instllation

npm

$ npm install vue-i18n-plugin

bower

$ bower install vue-i18n-plugin

Usage

JSON file: resources/i18n/en-US.json

{
  "message": {
    "hello": "Hello",
    "world": "World"
  }
}

JSON file: resources/i18n/zh-CN.json

{
  "message": {
    "hello": "您好",
    "world": "世界"
  }
}
var Vue = require('vue');
var i18n = require('vue-i18n');

// set plugin
Vue.use(i18n, {
  baseUrl: 'resources/i18n'
});

// create instance
new Vue({
  el: '#test-i18n',
  beforeCompile: function() {
    this.$setLanguage("zh-CN");
  },
  methods: {
    switchLanguage: function(lang) {
      this.$setLanguage(lang);
    }
  }
});

Template the following:

<div id="test-i18n" class="message">
  <p>Language: {{$language}}</p>
  <p>{{$i18n.message.hello}}, {{$i18n.message.world}}</p>
</div>

Output the following:

<div id="test-i18n" class="message">
  <p>Language: zh-CN</p>
  <p>您好, 世界</p>
</div>

Formatting Messages

This plugin could work together with the vue-format plugin.

JSON file: resources/i18n/en.json

{
  "message": {
    "hello": "Hello {0}, {1}!"
  }
}

Template the following:

<div class="message">
  <p>{{ $i18n.message.hello | format "world" 123 }}</p>
</div>

Output the following:

<div class="message">
  <p>Hello world, 123!</p>
</div>

API

$setLanguage(lang)

Sets the current language. Calling this value will reload the localization files according to the new language and change the current displayed language.

  • lang: the code of the new language.

$language

Stores the current language.

$i18n

An object which contains the localization messages for the current language.

Options

Plugin options

Vue.use(plugin, {
  baseUrl: "i18n"
  fallbackLanguage: "en-US",
  timeout: 500,
  async: false
})

baseUrl

Specify the base URL of the localization files, which could be either an absolute URL, or a relative URL relative to the current javascript file.

The default value of this option is i18n.

fallbackLanguage

Specify the code of the fallback langauge. If the localization file of the current language cannot be load, the localization file of the fallback language will be load.

The default value of this option is en-US.

timeout

The timeout for the AJAX calls, in milliseconds. Default value is 500.

async

Indicates whether to load the localization file asynchronously. Default value is false.

Contributing

  • Fork it !
  • Create your top branch from dev: git branch my-new-topic origin/dev
  • Commit your changes: git commit -am 'Add some topic'
  • Push to the branch: git push origin my-new-topic
  • Submit a pull request to dev branch of Haixing-Hu/vue-i18n repository !

Building and Testing

First you should install all depended NPM packages. The NPM packages are used for building and testing this package.

$ npm install

Then install all depended bower packages. The bower packages are depended by this packages.

$ bower install

Now you can build the project.

$ gulp build

The following command will test the project.

$ gulp test

The following command will perform the test and generate a coverage report.

$ gulp test:coverage

The following command will perform the test, generate a coverage report, and upload the coverage report to coveralls.io.

$ gulp test:coveralls

You can also run bower install and gulp build together with the following command:

npm run build

Or run bower install and gulp test:coveralls together with the following command:

npm run test

License

MIT

MIT

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.