1.1.38 • Published 1 year ago

nuxt-i18n-auto-config v1.1.38

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

nuxt-i18n-auto-config

npm version npm downloads License Nuxt

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

  1. Install @nuxtjs/i18n

  2. Add nuxt-i18n-auto-config dependency to your project

# Using npm
npm install --save-dev nuxt-i18n-auto-config

...
  1. Add nuxt-i18n-auto-config to the modules section of nuxt.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
1.1.29

1 year ago

1.1.28

1 year ago

1.1.30

1 year ago

1.1.34

1 year ago

1.1.33

1 year ago

1.1.32

1 year ago

1.1.31

1 year ago

1.1.38

1 year ago

1.1.37

1 year ago

1.1.36

1 year ago

1.1.35

1 year ago

1.1.19

1 year ago

1.1.18

1 year ago

1.1.17

1 year ago

1.1.23

1 year ago

1.1.22

1 year ago

1.1.21

1 year ago

1.1.20

1 year ago

1.1.27

1 year ago

1.1.26

1 year ago

1.1.25

1 year ago

1.1.24

1 year ago

1.1.9

1 year ago

1.1.8

1 year ago

1.1.7

1 year ago

1.1.6

1 year ago

1.1.12

1 year ago

1.1.11

1 year ago

1.1.10

1 year ago

1.1.16

1 year ago

1.1.15

1 year ago

1.1.14

1 year ago

1.1.13

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.1.1

1 year ago

1.0.0

1 year ago