useLocaleSelector
Referencia de API del hook useLocaleSelector
Descripción general
Este hook devuelve el locale actual, la lista de locales y el hook useSetLocale.
Está pensado para facilitar su uso al crear tu propio componente de selector de idioma.
Si no quieres implementar el tuyo, puedes usar el componente <LocaleSelector>.
Referencias
Devuelve
Un objeto que contiene el locale actual, la lista de locales y el hook useSetLocale.
Ejemplos
<LocaleSelector>
Este es un ejemplo de implementación del componente <LocaleSelector>.
export default function LocaleSelector({
locales: _locales,
...props
}: {
locales?: string[];
[key: string]: any;
}): React.JSX.Element | null {
// Obtener propiedades del selector de idioma
const { locale, locales, setLocale, getLocaleProperties } = useLocaleSelector(
_locales ? _locales : undefined
);
// Obtener nombre a mostrar
const getDisplayName = (locale: string) => {
return capitalizeLanguageName(
getLocaleProperties(locale).nativeNameWithRegionCode
);
};
// Si no se devuelven locales, no renderizar nada o manejar de forma elegante
if (!locales || locales.length === 0 || !setLocale) {
return null;
}
return (
<select
{...props}
// Usar cadena vacía como contenido de respaldo predeterminado si currentLocale no está definido
value={locale || ''}
onChange={(e) => setLocale(e.target.value)}
>
{/* Contenido de respaldo predeterminado opcional cuando no hay locale establecido */}
{!locale && <option value='' />}
{locales.map((locale) => (
<option key={locale} value={locale} suppressHydrationWarning>
{getDisplayName(locale)}
</option>
))}
</select>
);
}Notas
- Este hook funciona solo en el cliente.
- Más información sobre los códigos de configuración regional aquí.
Próximos pasos
- Más información sobre el componente
<LocaleSelector>. - Más información sobre el hook
useLocale.
¿Qué te parece esta guía?