withGTConfig()
Referencia de API para withGTConfig(), anteriormente initGT()
Descripción general
withGTConfig()
es la forma principal de configurar la biblioteca gt-next
.
Envuelve directamente un objeto NextConfig
.
import { withGTConfig } from 'gt-next/config';
const nextConfig = {
// your existing next.config.js
}
export default withGTConfig(nextConfig, {
// Additional configuration options
});
Obsoleto
initGT()
es la forma antigua de configurar la biblioteca gt-next
. Devuelve una función de callback que luego se llama sobre el objeto NextConfig
.
Las props para ambas funciones son las mismas, con la excepción de que withGTProps
requiere que también se pase NextConfig
.
Utiliza withGTConfig()
para:
- Configurar los idiomas soportados y el locale predeterminado (también conocido como idioma de respaldo).
- Establecer claves API e IDs de proyecto para acceder a los servicios de GT.
- Definir el comportamiento de carga.
- Configurar los ajustes de tiempo de espera.
- Configurar endpoints personalizados.
- Personalizar el comportamiento de traducción, el almacenamiento en caché y el agrupamiento de solicitudes.
Debes usar withGTConfig()
en tu archivo next.config.js
para habilitar la funcionalidad de traducción.
Referencia
Por defecto, withGTConfig()
buscará un archivo gt.config.json
en el mismo directorio que tu archivo next.config.js
.
Este archivo json se cargará y se fusionará con la configuración pasada a withGTConfig()
.
Consulta la referencia de gt.config.json para obtener más información sobre el archivo de configuración.
La herramienta CLI solo leerá la configuración desde el archivo gt.config.json
, por lo que
recomendamos usar el archivo gt.config.json
como fuente de verdad para tu aplicación.
Las opciones de configuración adicionales que no estén en el archivo gt.config.json
pueden pasarse directamente a withGTConfig()
como props.
Props requeridas
Prop | Type | Default |
---|---|---|
nextConfig? | NextConfig | - |
Props recomendadas
Prop | Type | Default |
---|---|---|
description?? | string | undefined |
locales?? | string[] | undefined |
defaultLocale?? | string | locales[0] || 'en' |
Prop | Descripción |
---|---|
defaultLocale | Localización predeterminada para la aplicación. El inglés será el idioma de respaldo cuando no se especifique ninguno. |
locales | Una lista exclusiva de localizaciones soportadas para la aplicación. Si se recibe una solicitud no soportada, se redirigirá al siguiente idioma preferido del navegador en la lista. Se usará defaultLocale como respaldo si no se encuentra ninguna coincidencia. |
description | Una descripción en lenguaje natural del sitio, utilizada para ayudar en la traducción. |
Props avanzadas
Prop | Type | Default |
---|---|---|
dictionary?? | string | - |
i18n?? | string | - |
maxBatchSize?? | number | 25 |
batchInterval?? | number | 50 |
maxConcurrentRequests?? | number | 100 |
renderSettings?? | RenderSettings | - |
cacheExpiryTime?? | number | 60000 |
cacheUrl?? | string | - |
runtimeUrl?? | string | - |
preferredModelProvider?? | "anthropic" | "openai" | - |
devApiKey?? | string | - |
apiKey?? | string | - |
projectId?? | string | - |
Prop | Descripción |
---|---|
projectId | ID del proyecto, que puede incluirse aquí o como una variable de entorno. |
apiKey | Aunque no se recomienda, una clave API que puede incluirse aquí. También puede incluirse como una variable de entorno. |
devApiKey | Aunque no se recomienda, una clave API de desarrollo que puede incluirse aquí. También puede incluirse como una variable de entorno. |
preferredModelProvider | Tu proveedor de modelo de IA preferido. Actualmente solo están habilitados Anthropic o OpenAI. Déjalo en blanco y determinaremos el mejor proveedor para cada traducción. En periodos de alta demanda o cuando un proveedor esté deshabilitado, no podemos garantizar que se utilice tu proveedor preferido. |
runtimeUrl | URL base para la API de GT. Para desactivar la traducción automática, establece esto como una cadena vacía. |
cacheUrl | URL donde se almacenan las traducciones en caché. Puede personalizarse para apuntar a un servidor de caché personalizado. |
cacheExpiryTime | Tiempo en milisegundos antes de que caduquen las traducciones almacenadas localmente en caché. |
renderSettings | Un objeto que especifica el comportamiento de carga para las traducciones en tiempo de ejecución. |
maxConcurrentRequests | Número máximo de solicitudes de traducción concurrentes permitidas a la API de GT. |
maxBatchSize | Número máximo de traducciones para agrupar antes de enviar una solicitud. |
batchInterval | Intervalo en milisegundos entre solicitudes de traducción agrupadas. Ayuda a controlar la velocidad a la que se envían las solicitudes. |
i18n | Ruta de configuración opcional para funciones personalizadas getLocale() . Si se proporciona como una cadena, se resolverá como una ruta. De lo contrario, se usan los valores predeterminados (recomendado). |
dictionary | Ruta de configuración opcional para el diccionario. Similar a i18n , acepta una cadena para especificar una ruta personalizada. Los diccionarios llamados dictionary.js (o .jsx , .ts , .tsx , etc.) y ubicados en la raíz o en la carpeta src son compatibles por defecto. |
Retorna
Una función (NextConfig) => NextConfig
que mejora el objeto de configuración de Next.js con los ajustes de GT especificados.
Excepciones
Lanza un Error
si falta el projectId
y se usan URLs predeterminadas, o si se requiere la clave API y falta.
Configuración de renderizado
La configuración de renderizado controla el comportamiento de las traducciones mientras se están cargando. Esto solo aplica a las traducciones que se realizan en tiempo de ejecución. Si la traducción está en caché, el tiempo de respuesta es demasiado bajo como para justificar un comportamiento de carga.
Prop | Type | Default |
---|---|---|
timout? | number | 8000 |
method? | "skeleton" | "replace" | "default" | default |
Prop | Descripción |
---|---|
method | El método utilizado para renderizar la página. Las opciones son skeleton , replace y default . |
timeout | El tiempo en milisegundos antes de que el método agote el tiempo de espera. El valor predeterminado es 8000 ms. |
Métodos de renderizado
skeleton
: Renderiza un fragmento.replace
: Renderiza el contenido en el idioma predeterminado mientras espera.default
: Para configuraciones regionales con el mismo idioma (por ejemplo,en-US
yen-GB
) se comporta como replace. Para configuraciones regionales con diferentes idiomas (por ejemplo,en-US
yfr
), se comporta como skeleton.
Tiempo de espera
Los tiempos de espera solo aplican a traducciones en tiempo de ejecución, o traducciones que deben realizarse bajo demanda porque no han sido almacenadas en caché.
Por defecto, los tiempos de espera se establecen en 8 segundos. Esta decisión de diseño es para facilitar a los usuarios de vercel, quienes tienen un tiempo de espera predeterminado de 10 segundos para funciones serverless en el plan gratuito.
Ejemplos
Configuración de renderizado
Este ejemplo configura gt-next
para mostrar un esqueleto mientras se cargan las traducciones.
Si la traducción tarda más de 8 segundos, el método agotará el tiempo de espera y mostrará el contenido en el idioma predeterminado.
{
"defaultLocale": "en-US",
"locales": ["en-US", "es", "fr"],
}
import { withGTConfig } from 'gt-next/config';
const nextConfig = {
// Your other next.js configurations
};
export default withGTConfig(nextConfig, {
renderSettings: {
method: 'skeleton',
timeout: 10000,
},
});
Configuración de getLocale()
i18n
es una cadena que especifica una ruta personalizada a un archivo que define una función getLocale()
.
Puedes especificar un comportamiento personalizado para determinar la configuración regional del usuario creando un archivo que exporte una función llamada getLocale()
.
import { withGTConfig } from 'gt-next/config'
const nextConfig = {};
export default withGTConfig(nextConfig, {
defaultLocale: "en-US", // the default language of your app, usually "en" or "en-US"
i18n: "./i18n.js"
});
import { cookies } from "next/headers";
export async function getLocale() {
const cookieStore = await cookies();
return cookieStore.get('myCustomLocaleCookie') || 'en';
}
Notas
withGTConfig()
integra la funcionalidad de traducción de GT en tu aplicación Next.js y debe usarse en el archivo de configuración raíz.- Parámetros como
apiKey
yprojectId
pueden establecerse directamente en la configuración o como variables de entorno. - Parámetros avanzados como
renderSettings
y_batchInterval
permiten un control detallado sobre el comportamiento y el rendimiento de la traducción.
Próximos pasos
- Agrega traducción a tu proceso de CD.
¿Qué te parece esta guía?