ctx.i18n

L'instance i18n du contexte actuel, utilisée pour lire ou changer de langue. Utilisez ctx.t() pour traduire du texte ; n'utilisez pas ctx.i18n.t.

Scénarios d'utilisation

Tous les environnements d'exécution RunJS peuvent utiliser ctx.i18n (par exemple, JSBlock, JSField, JSItem, JSColumn, flux de travail, règles d'interactivité, etc.).

Définition du type

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

Propriétés courantes

PropriétéTypeDescription
languagestringLe code de la langue actuellement active (par exemple, en-US, zh-CN)

Méthodes courantes

changeLanguage(lng)

Change la langue actuelle.

ParamètreTypeDescription
lngstringCode de la langue cible (par exemple, 'en-US', 'zh-CN')

Valeur de retour : Promise<any>, se résout une fois le changement de langue terminé.

Exemples

Lire la langue actuelle

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

Changer de langue

// Passer à l'anglais
await ctx.i18n.changeLanguage('en-US');

// Passer au chinois
await ctx.i18n.changeLanguage('zh-CN');

Bouton de changement de langue

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' : 'Passer au chinois')}
  </Button>,
);

Remarques

  • Texte de traduction : Utilisez ctx.t() de manière cohérente ; n'utilisez pas ctx.i18n.t.

En lien

  • ctx.t() : Traduire du texte, utilisez cette méthode de manière cohérente.