nuxt-i18n-auto-config
nuxt-i18n-auto-config
I wanted to see if it was possible to seperate each language definition away from the nuxt.config file. It worked, while not being too pretty. But i managed to make language definitions simpler.
A language definition looks like
import { defineProjectLocale } from "nuxt-i18n-auto-config/runtime/composables";
export default defineProjectLocale({
locale: { code: "en", iso: "en", name: "English" },
datetimeFormats: {
short: {
year: "numeric",
month: "short",
day: "numeric",
},
},
numberFormats: {
currency: {
style: "currency",
currency: "USD",
},
},
});
Havent figured out how it can auto import the defineProjectLocale function.
Features
- Auto discovering locale files
- Datetime & Number format
- Singular layer for locale
Planned
- Namespaced files
Maybe
- Output locale messages to build dir(for namespaced files)
- Multiple layers merging
Config
export default defineNuxtConfig({
modules: ["nuxt-i18n-auto-config", "@nuxtjs/i18n"],
i18nAutoConfig: {
paths: {
/**
* The path where your locale definitions are placed
*/
localeDefinitionsPath: "config/locales",
/**
* The path where your locales are placed
*/
localesPath: "locales",
},
/**
* Expressions are used to match paths and files
*/
expressions: {
/**
* {localeDefinitionsPath} replaced with i18nAutoconfig.paths.localeDefinitionsPath
* Default is "./config/locales/"
* Example "./config/locales/en.ts"
*/
localeDefinition: "{localeDefinitionsPath}/",
/**
* {localePath} is replaced with the variable in i18nAutoconfig.paths.localesPath
* {locale} is replaced with the code for that specific locale be it "en" or "en-UK"
* Default is "./locales/{locale}/"
* Example "./locales/en/" - contains *.json files
*/
locales: "{localesPath}/{locale}/",
},
},
});
Quick Setup
-
Install
@nuxtjs/i18n -
Add
nuxt-i18n-auto-configdependency to your project
# Using npm
npm install --save-dev nuxt-i18n-auto-config
...
- Add
nuxt-i18n-auto-configto themodulessection ofnuxt.config.ts, before@nuxtjs/i18n. Reason mentioned here
export default defineNuxtConfig({
modules: ["nuxt-i18n-auto-config", "@nuxtjs/i18n"],
});
That's it! You can now use nuxt-i18n-auto-config in your Nuxt app ✨
Development
# Install dependencies
bun install
# Generate type stubs
bun run dev:prepare
# Develop with the playground
bun run dev
# Build the playground
bun run dev:build
# Run ESLint
bun run lint
# Run Vitest
bun run test
bun run test:watch
# Release new version
bun run release
Version History
| Version | Released | Vue | License |
|---|---|---|---|
| 1.1.38 | ^3.0 | MIT | |
| 1.1.37 | ^3.0 | MIT | |
| 1.1.36 | ^3.0 | MIT | |
| 1.1.35 | ^3.0 | MIT | |
| 1.1.34 | ^3.0 | MIT | |
| 1.1.33 | ^3.0 | MIT | |
| 1.1.32 | ^3.0 | MIT | |
| 1.1.31 | ^3.0 | MIT | |
| 1.1.30 | ^3.0 | MIT | |
| 1.1.29 | ^3.0 | MIT | |
| 1.1.28 | ^3.0 | MIT | |
| 1.1.27 | ^3.0 | MIT | |
| 1.1.26 | ^3.0 | MIT | |
| 1.1.25 | ^3.0 | MIT | |
| 1.1.24 | ^3.0 | MIT | |
| 1.1.23 | ^3.0 | MIT | |
| 1.1.22 | ^3.0 | MIT | |
| 1.1.21 | ^3.0 | MIT | |
| 1.1.20 | ^3.0 | MIT | |
| 1.1.19 | ^3.0 | MIT | |
| 1.1.18 | ^3.0 | MIT | |
| 1.1.17 | ^3.0 | MIT | |
| 1.1.16 | ^3.0 | MIT | |
| 1.1.15 | ^3.0 | MIT | |
| 1.1.14 | ^3.0 | MIT | |
| 1.1.13 | ^3.0 | MIT | |
| 1.1.12 | ^3.0 | MIT | |
| 1.1.11 | ^3.0 | MIT | |
| 1.1.10 | ^3.0 | MIT | |
| 1.1.9 | ^3.0 | MIT |
Showing the latest 30 of 37. See every release on npm