Aviso de traducción IA

Este documento ha sido traducido por IA. Para información precisa, consulte la versión en inglés.

ctx.i18n

La instancia i18n del contexto actual, utilizada para leer o cambiar idiomas. Utilice ctx.t() para traducir textos; no utilice ctx.i18n.t.

Escenarios de uso

Todos los entornos de ejecución de RunJS pueden utilizar ctx.i18n (por ejemplo, JSBlock, JSField, JSItem, JSColumn, flujo de trabajo, reglas de vinculación, etc.).

Definición de tipos

interface i18n: {
  language: string;
  changeLanguage(lng: string): Promise<any>;
}

Propiedades comunes

PropiedadTipoDescripción
languagestringEl código del idioma activo actualmente (por ejemplo, zh-CN, en-US)

Métodos comunes

changeLanguage(lng)

Cambia el idioma actual.

ParámetroTipoDescripción
lngstringCódigo del idioma de destino (por ejemplo, 'en-US', 'zh-CN')

Valor de retorno: Promise<any>, se resuelve una vez que se completa el cambio de idioma.

Ejemplos

Lectura del idioma actual

const lang = ctx.i18n.language;
// 'zh-CN' | 'en-US' | ...
if (lang.startsWith('zh')) {
  ctx.render(ctx.t('Interfaz en chino'));
} else {
  ctx.render(ctx.t('English UI'));
}

Cambio de idioma

// Cambiar a inglés
await ctx.i18n.changeLanguage('en-US');

// Cambiar a chino
await ctx.i18n.changeLanguage('zh-CN');

Botón de cambio de idioma

const { Button } = ctx.libs.antd;
const isZh = ctx.i18n.language.startsWith('zh');
ctx.render(
  <Button onClick={async () => {
    await ctx.i18n.changeLanguage(isZh ? 'en-US' : 'zh-CN');
  }}>
    {ctx.t(isZh ? 'Switch to English' : 'Cambiar a chino')}
  </Button>,
);

Notas

  • Textos de traducción: Utilice ctx.t() de manera consistente; no utilice ctx.i18n.t.

Relacionado

  • ctx.t(): Traducción de textos, utilice este método de manera consistente.