Documentation: getMultilingualUrls Fonction dans intlayer

    Description

    La fonction getMultilingualUrls génère une correspondance des URLs multilingues en préfixant l'URL donnée avec chaque locale prise en charge. Elle peut gérer à la fois des URLs absolues et relatives, en appliquant le préfixe de locale approprié basé sur la configuration fournie ou les valeurs par défaut.


    Paramètres

    • url: string

      • Description : L'URL d'origine à préfixer avec les locales.
      • Type : string
    • locales: Locales[]

      • Description : Tableau optionnel des locales prises en charge. Par défaut, utilise les locales configurées dans le projet.
      • Type : Locales[]
      • Valeur par défaut : localesDefault
    • defaultLocale: Locales

      • Description : La locale par défaut pour l'application. Par défaut, utilise la locale par défaut configurée dans le projet.
      • Type : Locales
      • Valeur par défaut : defaultLocaleDefault
    • prefixDefault: boolean

      • Description : Indique si la locale par défaut doit être préfixée. Par défaut, utilise la valeur configurée dans le projet.
      • Type : boolean
      • Valeur par défaut : prefixDefaultDefault

    Retourne

    • Type : IConfigLocales<string>
    • Description : Un objet mappant chaque locale à son URL multilingue correspondante.

    Exemple d'utilisation

    URLs relatives

    typescript
    import { getMultilingualUrls, Locales } from "intlayer";getMultilingualUrls(  "/dashboard",  [Locales.ENGLISH, Locales.FRENCH],  Locales.ENGLISH,  false);// Résultat : {//   en: "/dashboard",//   fr: "/fr/dashboard"// }

    URLs absolues

    typescript
    getMultilingualUrls(  "https://example.com/dashboard",  [Locales.ENGLISH, Locales.FRENCH],  Locales.ENGLISH,  true);// Résultat : {//   en: "https://example.com/en/dashboard",//   fr: "https://example.com/fr/dashboard"// }

    Cas particuliers

    • Aucun segment de locale :

      • La fonction supprime tout segment de locale existant de l'URL avant de générer les correspondances multilingues.
    • Locale par défaut :

      • Lorsque prefixDefault est false, la fonction ne préfixe pas l'URL pour la locale par défaut.
    • Locales non prises en charge :

      • Seules les locales fournies dans le tableau locales sont prises en compte pour générer les URLs.

    Utilisation dans les applications

    Dans une application multilingue, configurer les paramètres d'internationalisation avec locales et defaultLocale est essentiel pour garantir l'affichage de la langue correcte. Voici un exemple de la manière dont getMultilingualUrls peut être utilisé dans une configuration d'application :

    tsx
    import { Locales, type IntlayerConfig } from "intlayer";// Configuration des locales prises en charge et de la locale par défautexport default {  internationalization: {    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],    defaultLocale: Locales.ENGLISH,  },} satisfies IntlayerConfig;export default config;

    La configuration ci-dessus garantit que l'application reconnaît ENGLISH, FRENCH et SPANISH comme langues prises en charge et utilise ENGLISH comme langue de secours.

    En utilisant cette configuration, la fonction getMultilingualUrls peut générer dynamiquement des correspondances d'URLs multilingues basées sur les locales prises en charge par l'application :

    typescript
    getMultilingualUrls(  "/dashboard",  [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],  Locales.ENGLISH);// Résultat :// {//   en: "/dashboard",//   fr: "/fr/dashboard",//   es: "/es/dashboard"// }getMultilingualUrls(  "https://example.com/dashboard",  [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],  Locales.ENGLISH,  true);// Résultat :// {//   en: "https://example.com/en/dashboard",//   fr: "https://example.com/fr/dashboard",//   es: "https://example.com/es/dashboard"// }

    En intégrant getMultilingualUrls, les développeurs peuvent maintenir des structures d'URLs cohérentes à travers plusieurs langues, améliorant ainsi l'expérience utilisateur et le référencement SEO.

    Si vous avez une idée d’amélioration pour améliorer cette documentation, n’hésitez pas à contribuer en submitant une pull request sur GitHub.

    Lien GitHub de la documentation