JSPM

  • Created
  • Published
  • Downloads 46135
  • Score
    100M100P100Q37365F
  • License MIT

i18n for Nuxt

Package Exports

  • nuxt-i18n
  • nuxt-i18n/src/helpers/utils

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (nuxt-i18n) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

nuxt-i18n logo

nuxt-i18n

i18n for your Nuxt project

Features

  • Integration with vue-i18n
  • Automatic routes generation and custom paths
  • Search Engine Optimization
  • Lazy-loading of translation messages
  • Redirection based on auto-detected language
  • Different domain names for different languages
  • Storing current locale and messages with Vuex

Setup

yarn add nuxt-i18n # yarn
npm i nuxt-i18n # npm

Basic usage

Firstly, you need to add nuxt-i18n to your Nuxt config.

// nuxt.config.js

{
  modules: [
    [
      'nuxt-i18n',
      {
        locales: ['en', 'es'],
        defaultLocale: 'en',
        vueI18n: {
          fallbackLocale: 'en',
          messages: {
            en: {
              greeting: 'Hello world!'
            },
            es: {
              greeting: '¡Hola mundo!'
            }
          }
        }
      }
    ]
  ]
}

Then you can start using nuxt-i18n in your Vue components!

<template>
  <main>
    <h1>{{ $t('greeting') }}</h1>

    <nuxt-link
      v-if="$i18n.locale !== 'en'"
      :to="switchLocalePath('en')"
    >
      English
    </nuxt-link>

    <nuxt-link
      v-if="$i18n.locale !== 'es'"
      :to="switchLocalePath('es')"
    >
      Español
    </nuxt-link>
  </main>
</template>

If you would like to find out more about how to use nuxt-i18n, check out the docs!

Contributing

All contributions are welcome! If you would like to make some changes, follow these steps:

  • Fork the project and clone it in your existing Nuxt project:
cd my-nuxt-project
mkdir modules
git clone git@github.com:<username>/i18n-module.git modules/i18n-module # ssh
git clone https://github.com/<username>/i18n-module.git modules/i18n-module # https
  • Edit your Nuxt config to use the local module:
// nuxt.config.js

{
  modules: [
    ['./modules/i18n-module', {
      // options...
    }]
  ]
}
  • Install the module's dependencies:
cd modules/i18n-module/
yarn # yarn
npm i # npm
  • Create a new branch for your changes:
git checkout -b my-new-feature
  • Code, code, code!
  • Run ESLint and Jest
yarn lint && yarn test # yarn
npm run lint && npm test # npm
  • Commit and push your changes
  • Submit awesome PRs

Documentation

  • Fork and clone the project:
git clone git@github.com:<username>/i18n-module.git # ssh
git clone https://github.com/<username>/i18n-module.git # https
  • Install the dependencies:
cd i18n-module
yarn # yarn
npm i # npm
  • Create a new branch for your changes:
git checkout -b my-new-feature
  • Start the docs server:
yarn docs:dev # yarn
npm run docs:dev # npm
  • Write some doc by editing files in docs/ directory

If you're adding new pages, make sure you add them to the table of contents in docs/.vuepress/config

  • Commit and push your changes
  • Once you're done, submit that shiny PR!

Issues, questions & requests

If you have any questions or issues, check out Discord server.

License

MIT License - Copyright (c) Nuxt Community