Documentação: getLocalizedUrl Função em intlayer
Descrição:
A função getLocalizedUrl gera uma URL localizada prefixando a URL dada com a localidade especificada. Ela lida com URLs absolutas e relativas, garantindo que o prefixo de localidade correto seja aplicado com base na configuração.
Parâmetros:
url: string
- Descrição: A string da URL original a ser prefixada com uma localidade.
- Tipo: string
currentLocale: Locales
- Descrição: A localidade atual para a qual a URL está sendo localizada.
- Tipo: Locales
locales: Locales[]
- Descrição: Array opcional de localidades suportadas. Por padrão, as localidades configuradas no projeto são fornecidas.
- Tipo: Locales[]
- Padrão: Configuração do Projeto
defaultLocale: Locales
- Descrição: A localidade padrão para a aplicação. Por padrão, a localidade padrão configurada no projeto é fornecida.
- Tipo: Locales
- Padrão: Configuração do Projeto
prefixDefault: boolean
- Descrição: Se deve prefixar a URL para a localidade padrão. Por padrão, o valor configurado no projeto é fornecido.
- Tipo: boolean
- Padrão: Configuração do Projeto
Retornos:
- Tipo: string
- Descrição: A URL localizada para a localidade especificada.
Exemplo de Uso:
URLs Relativas:
import { getLocalizedUrl, Locales } from "intlayer";getLocalizedUrl( "/about", Locales.FRENCH, [Locales.ENGLISH, Locales.FRENCH], Locales.ENGLISH, false);// Saída: "/fr/about" para a localidade francesa// Saída: "/about" para a localidade padrão (inglesa)
URLs Absolutas:
getLocalizedUrl( "https://example.com/about", Locales.FRENCH, // Localidade Atual [Locales.ENGLISH, Locales.FRENCH], // Localidades Suportadas Locales.ENGLISH, // Localidade Padrão false // Prefixar Localidade Padrão); // Saída: "https://example.com/fr/about" para a francesagetLocalizedUrl( "https://example.com/about", Locales.ENGLISH, // Localidade Atual [Locales.ENGLISH, Locales.FRENCH], // Localidades Suportadas Locales.ENGLISH, // Localidade Padrão false // Prefixar Localidade Padrão); // Saída: "https://example.com/about" para a inglesagetLocalizedUrl( "https://example.com/about", Locales.ENGLISH, // Localidade Atual [Locales.ENGLISH, Locales.FRENCH], // Localidades Suportadas Locales.ENGLISH, // Localidade Padrão true // Prefixar Localidade Padrão); // Saída: "https://example.com/en/about" para a inglesa
Localidade Não Suportada:
getLocalizedUrl( "/about", Locales.ITALIAN, // Localidade Atual [Locales.ENGLISH, Locales.FRENCH], // Localidades Suportadas Locales.ENGLISH // Localidade Padrão); // Saída: "/about" (nenhum prefixo aplicado para localidade não suportada)
Casos de Borda:
Sem Segmento de Localidade:
- Se a URL não contiver nenhum segmento de localidade, a função prefixará com segurança a localidade apropriada.
Localidade Padrão:
- Quando prefixDefault é false, a função não prefixa a URL para a localidade padrão.
Localidades Não Suportadas:
- Para localidades não listadas em locales, a função não aplica nenhum prefixo.
Uso em Aplicações:
Em uma aplicação multilíngue, configurar as definições de internacionalização com locales e defaultLocale é crítico para garantir que o idioma correto seja exibido. Abaixo está um exemplo de como getLocalizedUrl pode ser usado na configuração de uma aplicação:
import { Locales, type IntlayerConfig } from "intlayer";// Configuração para localidades suportadas e localidade padrãoexport default { internationalization: { locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], defaultLocale: Locales.ENGLISH, },} satisfies IntlayerConfig;export default config;
A configuração acima garante que a aplicação reconheça ENGLISH, FRENCH e SPANISH como idiomas suportados e use ENGLISH como idioma de fallback.
Usando essa configuração, a função getLocalizedUrl pode gerar URLs localizadas dinamicamente com base na preferência de idioma do usuário:
getLocalizedUrl("/about", Locales.FRENCH); // Saída: "/fr/about"getLocalizedUrl("/about", Locales.SPANISH); // Saída: "/es/about"getLocalizedUrl("/about", Locales.ENGLISH); // Saída: "/about"
Ao integrar getLocalizedUrl, os desenvolvedores podem manter estruturas de URL consistentes em vários idiomas, melhorando tanto a experiência do usuário quanto o SEO.
Se você tiver uma ideia para melhorar esta documentação, sinta-se à vontade para contribuir enviando uma pull request no GitHub.
Link do GitHub para a documentação