Internationalized routing for AdonisJS apps
Internationalized routing for AdonisJS apps.
``yml`npm
npm install astro-i18n && node ace configure adonisjs-i18n-routeryarn
yarn add astro-i18n && node ace configure adonisjs-i18n-routerpnpm
pnpm add astro-i18n && node ace configure adonisjs-i18n-router
`tsdefaultLocale
{
/**
* The default locale for the application.
*/
defaultLocale: string
/**
* An array of supported locales. Must include the .defaultLocale
*/
supportedLocales?: string[]
/**
* Determines whether the should be prefixed in the URL."/about"
* For example, becomes "/en/about" when true and the defaultLocale is "en"."/es/articulos"
*/
isDefaultLocalePrefixed?: boolean
/**
* Enables URL-based locale switching (e.g., to "/fr/articles" by navigating to "/fr/articulos").isDefaultLocalePrefixed
*/
isUrlLocaleSwitchEnabled?: boolean
/**
* When is true, this redirects the root URL ("/") to the detected locale or the default locale as a fallback (e.g., "/en").isDefaultLocalePrefixed
*/
isRootRedirected?: boolean
/**
* When is true, this redirects unprefixed routes (e.g., "/posts") to their prefixed counterparts (e.g., "/en/posts").`
*/
isUnprefixedRedirected?: boolean
}
`ts
import router from "@adonisjs/core/services/router"
router.i18n
/**
* 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.pattern
*/
.group(() => {
// ...
})
/**
* 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 will get the same prefixes as the default locale.
*/
.prefix(prefix, fillMissingLocales)
/**
* 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.RouteGroup
* @returns A modified containing all the localized routes with proxy methods allowing you to interact with all the BriskRoute at once.
*/
router.i18n.on(pattern, handler, fillMissingLocales)
/**
* 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.RouteGroup
* @returns A containing all the localized routes.
*/
router.i18n.route(pattern, methods, handler, fillMissingLocales)
/**
* 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.RouteGroup
* @returns A containing all the localized routes.
*/
router.i18n.any(pattern, handler, fillMissingLocales)
/**
* Define GET routepattern
* @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 will get the same pattern as the default locale.RouteGroup
* @returns A containing all the localized routes.
*/
router.i18n.get(pattern, handler, fillMissingLocales)
/**
* Define POST routepattern
* @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 will get the same pattern as the default locale.RouteGroup
* @returns A containing all the localized routes.
*/
router.i18n.post(pattern, handler, fillMissingLocales)
/**
* Define PUT routepattern
* @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 will get the same pattern as the default locale.RouteGroup
* @returns A containing all the localized routes.
*/
router.i18n.put(pattern, handler, fillMissingLocales)
/**
* Define PATCH routepattern
* @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 will get the same pattern as the default locale.RouteGroup
* @returns A containing all the localized routes.
*/
router.i18n.patch(pattern, handler, fillMissingLocales)
/**
* Define DELETE routepattern
* @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 will get the same pattern as the default locale.RouteGroup
* @returns A containing all the localized routes.``
*/
router.i18n.delete(pattern, handler, fillMissingLocales)