nuxt-i18n
i18n for your Nuxt project
Links
Features
- Integration with vue-i18n
- Automatic routes generation and custom paths
- Search Engine Optimization
- Lazy-loading of translations 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
npm i nuxt-i18n
Basic usage
Firstly, you need to add nuxt-i18n
to your Nuxt config.
{
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>/nuxt-i18n.git modules/nuxt-i18n
git clone https://github.com/<username>/nuxt-i18n.git modules/nuxt-i18n
- Edit your Nuxt config to use the local module:
{
modules: [
['./modules/nuxt-i18n', {
}]
]
}
- Install the module's dependencies:
cd modules/nuxt-i18n/
yarn
npm i
- Create a new branch for your changes:
git checkout -b my-new-feature
- Code, code, code!
- Run ESLint and Jest
yarn lint && yarn test
npm run lint && npm test
- Commit and push your changes
- Submit awesome PRs
Documentation
- Fork and clone the project:
git clone git@github.com:<username>/nuxt-i18n.git
git clone https://github.com/<username>/nuxt-i18n.git
- Install the dependencies:
cd nuxt-i18n
yarn
npm i
- Create a new branch for your changes:
git checkout -b my-new-feature
yarn docs:dev
npm run docs:dev
- 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