JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 5
  • Score
    100M100P100Q24033F
  • License MIT

Internationalized routing for AdonisJS apps

Package Exports

  • adonisjs-i18n-router
  • adonisjs-i18n-router/i18n_router_provider

Readme

adonisjs-i18n-router

Internationalized routing for AdonisJS apps.

Installation

# npm
npm install astro-i18n && node ace configure adonisjs-i18n-router
# yarn
yarn add astro-i18n && node ace configure adonisjs-i18n-router
# pnpm
pnpm add astro-i18n && node ace configure adonisjs-i18n-router

Configuration

{
    /**
     * The default locale for the application.
     */
    defaultLocale: string
    /**
     * An array of supported locales. Must include the `defaultLocale`.
     */
    supportedLocales?: string[]
    /**
     * Determines whether the `defaultLocale` should be prefixed in the URL.
     * For example, `"/about"` becomes `"/en/about"` when `true` and the `defaultLocale` is `"en"`.
     */
    isDefaultLocalePrefixed?: boolean
    /**
     * Enables URL-based locale switching (e.g., `"/es/articulos"` to `"/fr/articles"` by navigating to `"/fr/articulos"`).
     */
    isUrlLocaleSwitchEnabled?: boolean
    /**
     * When `isDefaultLocalePrefixed` is `true`, this redirects the root URL (`"/"`) to the prefixed default locale (e.g., `"/en"`).
     */
    isRootRedirected?: boolean
    /**
     * When `isDefaultLocalePrefixed` is `true`, this redirects unprefixed routes (e.g., `"/posts"`) to their prefixed counterparts (e.g., `"/en/posts"`).
     */
    isUnprefixedRedirected?: boolean
}

API

import router from "@adonisjs/core/services/router"

router.i18n = {
    /**
     * Add route for a given pattern and methods
     * @param pattern A string pattern for the default locale or an object mapping a locale to its pattern.
     * @param methods The available HTTP methods for this route.
     * @param handler The handler for this route.
     * @param fillMissingLocales When true the supported locales which were not provided in `pattern` will get the same pattern as the default locale.
     * @returns A `RouteGroup` containing all the localized routes.
     */
    route: (
        pattern:
            | string
            | {
                    [locale: string]: string
              },
        methods: string[],
        handler:
            | string
            | RouteFn
            | [any, GetControllerHandlers<Constructor<any>>?],
        fillMissingLocales?: boolean,
    ) => RouteGroup
    /**
     * Define a route that handles all common HTTP methods
     * @param pattern A string pattern for the default locale or an object mapping a locale to its pattern.
     * @param handler The handler for this route.
     * @param fillMissingLocales When true the supported locales which were not provided in `pattern` will get the same pattern as the default locale.
     * @returns A `RouteGroup` containing all the localized routes.
     */
    any: I18nRouterMethodRoute
    /**
     * Define `GET` route
     * @param pattern A string pattern for the default locale or an object mapping a locale to its pattern.
     * @param handler The handler for this route.
     * @param fillMissingLocales When true the supported locales which were not provided in `pattern` will get the same pattern as the default locale.
     * @returns A `RouteGroup` containing all the localized routes.
     */
    get: I18nRouterMethodRoute
    /**
     * Define `POST` route
     * @param pattern A string pattern for the default locale or an object mapping a locale to its pattern.
     * @param handler The handler for this route.
     * @param fillMissingLocales When true the supported locales which were not provided in `pattern` will get the same pattern as the default locale.
     * @returns A `RouteGroup` containing all the localized routes.
     */
    post: I18nRouterMethodRoute
    /**
     * Define `PUT` route
     * @param pattern A string pattern for the default locale or an object mapping a locale to its pattern.
     * @param handler The handler for this route.
     * @param fillMissingLocales When true the supported locales which were not provided in `pattern` will get the same pattern as the default locale.
     * @returns A `RouteGroup` containing all the localized routes.
     */
    put: I18nRouterMethodRoute
    /**
     * Define `PATCH` route
     * @param pattern A string pattern for the default locale or an object mapping a locale to its pattern.
     * @param handler The handler for this route.
     * @param fillMissingLocales When true the supported locales which were not provided in `pattern` will get the same pattern as the default locale.
     * @returns A `RouteGroup` containing all the localized routes.
     */
    patch: I18nRouterMethodRoute
    /**
     * Define `DELETE` route
     * @param pattern A string pattern for the default locale or an object mapping a locale to its pattern.
     * @param handler The handler for this route.
     * @param fillMissingLocales When true the supported locales which were not provided in `pattern` will get the same pattern as the default locale.
     * @returns A `RouteGroup` containing all the localized routes.
     */
    delete: I18nRouterMethodRoute
    /**
     * Returns a brisk route group instance for a given URL pattern
     * @param pattern A string pattern for the default locale or an object mapping a locale to its pattern.
     * @param fillMissingLocales When true the supported locales which were not provided in `pattern` will get the same pattern as the default locale.
     * @returns A modified `RouteGroup` containing all the localized routes with proxy methods allowing you to interact with all the `BriskRoute` at once.
     */
    on: (
        pattern:
            | string
            | {
                    [locale: string]: string
              },
        fillMissingLocales?: boolean,
    ) => BriskRouteRouteGroup
    /**
     * Creates a group of routes. A route group can apply transforms to routes in bulk
     * @returns A modified `RouteGroup` allowing to set prefixes only for specific locales.
     */
    group: (callback: () => void) => Omit<RouteGroup, "prefix"> & {
        /**
         * Define prefixes for the selected locales.
         * @param prefix A string pattern for the default locale or an object mapping a locale to its pattern.
         * @param fillMissingLocales When true the supported locales which were not provided in `pattern` will get the same prefixes as the default locale.
         */
        prefix: (
            prefix:
                | string
                | {
                        [locale: string]: string
                  },
            fillMissingLocales?: boolean,
        ) => unknown
    }
}

Contributors

Alexandre Fernandez
Alexandre Fernandez