Auteur:
    Création:2024-08-11Dernière mise à jour:2025-06-29

    Documentation : Fonction getLocalizedUrl dans intlayer

    Description

    La fonction getLocalizedUrl génère une URL localisée en préfixant l'URL donnée avec la locale spécifiée. Elle gère à la fois les URLs absolues et relatives, en s'assurant que le bon préfixe de locale est appliqué en fonction de la configuration.

    Caractéristiques principales :

    • Seulement 2 paramètres sont requis : url et currentLocale
    • Objet options optionnel avec locales, defaultLocale, et mode
    • Utilise la configuration d'internationalisation de votre projet comme valeurs par défaut
    • Peut être utilisé avec des paramètres minimaux pour les cas simples ou entièrement personnalisé pour les scénarios complexes
    • Supporte plusieurs modes de routage : prefix-no-default, prefix-all, no-prefix, et search-params

    Signature de fonction

    typescript
    getLocalizedUrl(  url: string,                   // Requis  currentLocale: Locales,        // Requis  options?: {                    // Optionnel    locales?: Locales[];    defaultLocale?: Locales;    mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params';  }): string

    Paramètres

    Description

    La fonction getLocalizedUrl génère une URL localisée en préfixant l'URL donnée avec la locale spécifiée. Elle gère à la fois les URL absolues et relatives, en s'assurant que le préfixe de locale correct est appliqué selon la configuration.


    Paramètres

    • url: string

      • Description : La chaîne URL originale à préfixer avec une locale.
      • Type : string
    • currentLocale: Locales

      • Description : La locale actuelle pour laquelle l'URL est localisée.
      • Type : Locales
    • locales: Locales[]

      • Description : Tableau optionnel des locales supportées. Par défaut, les locales configurées dans le projet sont fournies.
      • Type : Locales[]
      • Par défaut : Configuration du projet
    • defaultLocale: Locales

      • Description : La locale par défaut de l'application. Par défaut, la locale par défaut configurée dans le projet est utilisée.
      • Type : Locales
      • Par défaut : Configuration du projet
    • prefixDefault: boolean

      • Description : Indique s'il faut préfixer l'URL pour la locale par défaut. Par défaut, la valeur configurée dans le projet est utilisée.
      • Type : boolean
      • Par défaut : Configuration du projet

    Retour

    • Type : string
    • Description : L'URL localisée pour la locale spécifiée.

    Exemple d'utilisation

    Utilisation basique (Paramètres obligatoires uniquement)

    Lorsque vous avez configuré votre projet avec les paramètres d'internationalisation, vous pouvez utiliser la fonction avec juste les paramètres obligatoires :

    typescript
    import { getLocalizedUrl, Locales } from "intlayer";
    
    // Utilise la configuration de votre projet pour les locales, defaultLocale et mode
    getLocalizedUrl("/about", Locales.FRENCH);
    // Output: "/fr/about" (en supposant que le français est supporté et que le mode est 'prefix-no-default')
    
    getLocalizedUrl("/about", Locales.ENGLISH);
    // Output: "/about" ou "/en/about" (en fonction de votre paramètre de mode)

    Exemple d'utilisation

    URLs relatives

    typescript
    import { getLocalizedUrl, Locales } from "intlayer";
    
    getLocalizedUrl(
      "/about",
      Locales.FRENCH,
      [Locales.ENGLISH, Locales.FRENCH],
      Locales.ENGLISH,
      false
    );
    
    // Résultat : "/fr/about" pour la locale française
    // Résultat : "/about" pour la locale par défaut (anglais)

    Remplacement Partiel de la Configuration

    Vous pouvez également fournir uniquement certains paramètres optionnels. La fonction utilisera la configuration de votre projet pour tous les paramètres que vous ne spécifiez pas :

    typescript
    import { getLocalizedUrl, Locales } from "intlayer";// Remplacer uniquement les locales, utiliser la config du projet pour defaultLocale et modegetLocalizedUrl("/about", Locales.SPANISH, {  locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],});// Remplacer uniquement le mode, utiliser la config du projet pour locales et defaultLocalegetLocalizedUrl("/about", Locales.ENGLISH, {  mode: "prefix-all", // Forcer le préfixe pour toutes les locales y compris la locale par défaut});// Remplacer plusieurs optionsgetLocalizedUrl("/about", Locales.FRENCH, {  defaultLocale: Locales.ENGLISH,  mode: "search-params", // Utiliser les paramètres de requête : /about?locale=fr});

    URLs absolues

    typescript
    getLocalizedUrl(  "https://example.com/about",  Locales.FRENCH, // Locale actuelle  [Locales.ENGLISH, Locales.FRENCH], // Locales supportées  Locales.ENGLISH, // Locale par défaut  false // Préfixer la locale par défaut); // Résultat : "https://example.com/fr/about" pour le françaisgetLocalizedUrl(  "https://example.com/about",  Locales.ENGLISH, // Locale actuelle  [Locales.ENGLISH, Locales.FRENCH], // Locales supportées  Locales.ENGLISH, // Locale par défaut  false // Préfixer la locale par défaut); // Résultat : "https://example.com/about" pour l'anglaisgetLocalizedUrl(  "https://example.com/about",  Locales.ENGLISH, // Locale actuelle  [Locales.ENGLISH, Locales.FRENCH], // Locales supportées  Locales.ENGLISH, // Locale par défaut  true // Préfixer la locale par défaut); // Résultat : "https://example.com/en/about" pour l'anglais

    Locale non prise en charge

    typescript
    getLocalizedUrl(  "/about",  Locales.ITALIAN, // Locale actuelle  [Locales.ENGLISH, Locales.FRENCH], // Locales supportées  Locales.ENGLISH // Locale par défaut); // Résultat : "/about" (aucun préfixe appliqué pour une locale non supportée)

    Cas particuliers

    • Pas de segment de locale :

      • Si l'URL ne contient aucun segment de locale, la fonction préfixe en toute sécurité la locale appropriée.
    • Locale par défaut :

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

      • Pour les locales non listées dans locales, la fonction n'applique aucun préfixe.

    Utilisation dans les applications

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

    tsx
    import { Locales, type IntlayerConfig } from "intlayer";
    
    // Configuration des locales supportées et de la locale par défaut
    export 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 supportées et utilise ENGLISH comme langue de repli.

    En utilisant cette configuration, la fonction getLocalizedUrl peut générer dynamiquement des URLs localisées en fonction de la préférence linguistique de l'utilisateur :

    typescript
    getLocalizedUrl("/about", Locales.FRENCH); // Résultat : "/fr/about"getLocalizedUrl("/about", Locales.SPANISH); // Résultat : "/es/about"getLocalizedUrl("/about", Locales.ENGLISH); // Résultat : "/about"

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