Автор:
    БозданиС:2024-08-11ПослСднСС обновлСниС:2025-06-29

    ДокумСнтация: функция getLocalizedUrl Π² intlayer

    ОписаниС

    Ѐункция getLocalizedUrl Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ URL, добавляя прСфикс с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ локалью ΠΊ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ URL. Она ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ URL, обСспСчивая ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ прСфикса Π»ΠΎΠΊΠ°Π»ΠΈ Π½Π° основС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

    ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ возмоТности:

    • Π’Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 2 ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: url ΠΈ currentLocale
    • ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ options с locales, defaultLocale ΠΈ mode
    • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
    • ΠœΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ для простых случаСв ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒΡΡ для слоТных сцСнариСв
    • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСсколько Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ: prefix-no-default, prefix-all, no-prefix ΠΈ search-params

    Π‘ΠΈΠ³Π½Π°Ρ‚ΡƒΡ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

    typescript
    getLocalizedUrl(
      url: string,                   // ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ
      currentLocale: Locales,        // ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ
      options?: {                    // ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ
        locales?: Locales[];
        defaultLocale?: Locales;
        mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params';
      }
    ): string
    

    ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

    ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

    • url: string

      • Description: Π˜ΡΡ…ΠΎΠ΄Π½Π°Ρ строка URL, которая Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π° локалью.
      • Type: string
      • Required: Yes
    • currentLocale: Locales

      • Description: ВСкущая локаль, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ выполняСтся локализация URL.
      • Type: Locales
      • Required: Yes

    Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

    • options?: object

      • Description: ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ для повСдСния Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ URL.
      • Type: object
      • Required: No (Optional)

      • options.locales?: Locales[]

        • Description: Массив ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π»ΠΎΠΊΠ°Π»Π΅ΠΉ. Если Π½Π΅ прСдоставлСн, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ настроСнныС Π»ΠΎΠΊΠ°Π»ΠΈ ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
        • Type: Locales[]
        • Default: Project Configuration
      • options.defaultLocale?: Locales

        • Description: Π›ΠΎΠΊΠ°Π»ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для прилоТСния. Если Π½Π΅ прСдоставлСна, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π½Π°ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ локаль ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
        • Type: Locales
        • Default: Project Configuration
      • options.mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'

        • Description: Π Π΅ΠΆΠΈΠΌ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ URL для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π»ΠΎΠΊΠ°Π»Π΅ΠΉ. Если Π½Π΅ прСдоставлСн, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ настроСнный Ρ€Π΅ΠΆΠΈΠΌ ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
        • Type: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'
        • Default: Project Configuration
        • Modes:
          • prefix-no-default: Π‘Π΅Π· прСфикса для Π»ΠΎΠΊΠ°Π»ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, с прСфиксом для всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…
          • prefix-all: ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ для всСх Π»ΠΎΠΊΠ°Π»Π΅ΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ локаль ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
          • no-prefix: Π‘Π΅Π· прСфикса Π»ΠΎΠΊΠ°Π»ΠΈ Π² URL
          • search-params: ИспользованиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² запроса для Π»ΠΎΠΊΠ°Π»ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ?locale=fr)

    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚

    • Π’ΠΈΠΏ: string
    • ОписаниС: Π›ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ URL для ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΠΈ.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования

    Π‘Π°Π·ΠΎΠ²ΠΎΠ΅ использованиС (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹)

    Когда Π²Ρ‹ настроили свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ:

    typescript
    import { getLocalizedUrl, Locales } from "intlayer";
    
    // Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° для locales, defaultLocale ΠΈ mode
    getLocalizedUrl("/about", Locales.FRENCH);
    // Π’Ρ‹Π²ΠΎΠ΄: "/fr/about" (ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ французский поддСрТиваСтся ΠΈ mode установлСн Π½Π° 'prefix-no-default')
    
    getLocalizedUrl("/about", Locales.ENGLISH);
    // Π’Ρ‹Π²ΠΎΠ΄: "/about" ΠΈΠ»ΠΈ "/en/about" (Π² зависимости ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° mode)
    

    Advanced Usage (With Optional Parameters)

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, прСдоставив Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ options:

    ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ URL

    typescript
    import { getLocalizedUrl, Locales } from "intlayer";
    
    getLocalizedUrl(
      "/about",
      Locales.FRENCH,
      [Locales.ENGLISH, Locales.FRENCH],
      Locales.ENGLISH,
      false
    );
    
    // Π’Ρ‹Π²ΠΎΠ΄: "/fr/about" для французской Π»ΠΎΠΊΠ°Π»ΠΈ
    // Π’Ρ‹Π²ΠΎΠ΄: "/about" для Π»ΠΎΠΊΠ°Π»ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (английский)
    

    ЧастичноС ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ

    Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Ѐункция Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° для Π»ΡŽΠ±Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π»ΠΈ:

    typescript
    import { getLocalizedUrl, Locales } from "intlayer";
    
    // ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ locales, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° для defaultLocale ΠΈ mode
    getLocalizedUrl("/about", Locales.SPANISH, {
      locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
    });
    
    // ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ mode, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° для locales ΠΈ defaultLocale
    getLocalizedUrl("/about", Locales.ENGLISH, {
      mode: "prefix-all", // ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ прСфикс для всСх Π»ΠΎΠΊΠ°Π»Π΅ΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
    });
    
    // ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ нСсколько ΠΎΠΏΡ†ΠΈΠΉ
    getLocalizedUrl("/about", Locales.FRENCH, {
      defaultLocale: Locales.ENGLISH,
      mode: "search-params", // Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ запроса: /about?locale=fr
    });
    

    ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅ URL

    typescript
    getLocalizedUrl(
      "https://example.com/about",
      Locales.FRENCH, // ВСкущая локаль
      [Locales.ENGLISH, Locales.FRENCH], // ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Π»ΠΎΠΊΠ°Π»ΠΈ
      Locales.ENGLISH, // Π›ΠΎΠΊΠ°Π»ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
      false // Π”ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ прСфикс для Π»ΠΎΠΊΠ°Π»ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
    ); // Π’Ρ‹Π²ΠΎΠ΄: "https://example.com/fr/about" для французской Π»ΠΎΠΊΠ°Π»ΠΈ
    
    getLocalizedUrl(
      "https://example.com/about",
      Locales.ENGLISH, // ВСкущая локаль
      [Locales.ENGLISH, Locales.FRENCH], // ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Π»ΠΎΠΊΠ°Π»ΠΈ
      Locales.ENGLISH, // Π›ΠΎΠΊΠ°Π»ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
      false // Π”ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ прСфикс для Π»ΠΎΠΊΠ°Π»ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
    ); // Π’Ρ‹Π²ΠΎΠ΄: "https://example.com/about" для английской Π»ΠΎΠΊΠ°Π»ΠΈ
    
    getLocalizedUrl(
      "https://example.com/about",
      Locales.ENGLISH, // ВСкущая локаль
      [Locales.ENGLISH, Locales.FRENCH], // ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Π»ΠΎΠΊΠ°Π»ΠΈ
      Locales.ENGLISH, // Π›ΠΎΠΊΠ°Π»ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
      true // Π”ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ прСфикс для Π»ΠΎΠΊΠ°Π»ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
    ); // Π’Ρ‹Π²ΠΎΠ΄: "https://example.com/en/about" для английской Π»ΠΎΠΊΠ°Π»ΠΈ
    

    НСподдСрТиваСмая локаль

    typescript
    getLocalizedUrl(
      "/about",
      Locales.ITALIAN, // ВСкущая локаль
      [Locales.ENGLISH, Locales.FRENCH], // ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Π»ΠΎΠΊΠ°Π»ΠΈ
      Locales.ENGLISH // Π›ΠΎΠΊΠ°Π»ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
    ); // Π’Ρ‹Π²ΠΎΠ΄: "/about" (прСфикс Π½Π΅ примСняСтся для Π½Π΅ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΠΈ)
    

    ΠžΡΠΎΠ±Ρ‹Π΅ случаи

    • ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ сСгмСнта Π»ΠΎΠΊΠ°Π»ΠΈ:

      • Если URL Π½Π΅ содСрТит сСгмСнта Π»ΠΎΠΊΠ°Π»ΠΈ, функция бСзопасно добавляСт ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ локаль Π² прСфикс.
    • Π›ΠΎΠΊΠ°Π»ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ:

      • Когда prefixDefault Ρ€Π°Π²Π½ΠΎ false, функция Π½Π΅ добавляСт прСфикс для URL Π»ΠΎΠΊΠ°Π»ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.
    • НСподдСрТиваСмыС Π»ΠΎΠΊΠ°Π»ΠΈ:

      • Для Π»ΠΎΠΊΠ°Π»Π΅ΠΉ, Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² спискС locales, функция Π½Π΅ примСняСт Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ прСфикса.
    • Π Π΅ΠΆΠΈΠΌΡ‹ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ:

      • 'prefix-no-default': Π›ΠΎΠΊΠ°Π»ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ прСфикса, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, /about, /fr/about)
      • 'prefix-all': ВсС Π»ΠΎΠΊΠ°Π»ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ прСфиксы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, /en/about, /fr/about)
      • 'no-prefix': НСт прСфиксов Π»ΠΎΠΊΠ°Π»Π΅ΠΉ Π² URL (локаль обрабатываСтся Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС)
      • 'search-params': Π›ΠΎΠΊΠ°Π»ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π° Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ запроса (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, /about?locale=fr)

    ИспользованиС Π² прилоТСниях

    Π’ многоязычном ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ настройка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ locales ΠΈ defaultLocale ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для обСспСчСния отобраТСния ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ языка. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ функция getLocalizedUrl ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² настройках прилоТСния:

    tsx
    import { Locales, type IntlayerConfig } from "intlayer";
    
    // ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π»ΠΎΠΊΠ°Π»Π΅ΠΉ ΠΈ Π»ΠΎΠΊΠ°Π»ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
    export default {
      internationalization: {
        locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
        defaultLocale: Locales.ENGLISH,
      },
    } satisfies IntlayerConfig;
    
    export default config;
    

    Данная конфигурация Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ распознаёт ENGLISH, FRENCH ΠΈ SPANISH ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ языки ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ENGLISH Π² качСствС языка ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

    Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ эту ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ, функция getLocalizedUrl ΠΌΠΎΠΆΠ΅Ρ‚ динамичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ URL-адрСса Π² зависимости ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ языка ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:

    typescript
    getLocalizedUrl("/about", Locales.FRENCH); // Π’Ρ‹Π²ΠΎΠ΄: "/fr/about"
    getLocalizedUrl("/about", Locales.SPANISH); // Π’Ρ‹Π²ΠΎΠ΄: "/es/about"
    getLocalizedUrl("/about", Locales.ENGLISH); // Π’Ρ‹Π²ΠΎΠ΄: "/about"
    

    Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΡ getLocalizedUrl, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΡƒΡŽ структуру URL Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… языках, ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΎΠΏΡ‹Ρ‚, Ρ‚Π°ΠΊ ΠΈ SEO.