logologo
Inizio
Guida
Sviluppo
Plugin
API
Pagina iniziale
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Inizio
Guida
Sviluppo
Plugin
API
Pagina iniziale
logologo

Avvio Rapido

Panoramica Sviluppo Plugin
Scrivere il Primo Plugin
Struttura Directory Progetto

Sviluppo Server-side

Panoramica
Plugin
Collezioni (Tabelle Dati)
Operazioni Database
Gestione Origini Dati (DataSourceManager)
Gestione Risorse (ResourceManager)
Controllo Accessi (ACL)
Middleware
Cache
Eventi
Contesto Richiesta
Script di Migrazione
Logger
Internazionalizzazione (I18n)
Comando
Gestione Cron Job
Test

Sviluppo Client-side

Panoramica
Plugin
Contesto
Router
Controllo Accessi (ACL)
Gestione Origini Dati (DataSourceManager)
Risorse
Richieste
Stili e Temi
Logger
Internazionalizzazione (I18n)
Test

Altro

Guida all'Aggiornamento Plugin
Elenco Lingue
Gestione Dipendenze
Build
Next PagePanoramica Sviluppo Plugin
Avviso di traduzione IA

Questa documentazione è stata tradotta automaticamente dall'IA.

#Internazionalizzazione

#File di Internazionalizzazione

Nei plugin, i file multilingua sia per il frontend che per il backend sono archiviati nella cartella src/locale.

|- /plugin-i18n
  |- /src
    |- /locale      # Cartella multilingua
      |- en-US.ts   # Lingua inglese
      |- zh-CN.ts   # Lingua cinese

È sufficiente aggiungere le voci di traduzione nei file multilingua corrispondenti (/src/locale/${lang}.ts). Se è la prima volta che aggiungete un file multilingua, è necessario riavviare l'applicazione affinché le modifiche abbiano effetto. Potete verificare se le voci di traduzione sono state aggiunte correttamente consultando l'API app:getLang.

URL predefinito: http://localhost:13000/api/app:getLang?locale=zh-CN

#API relative a i18n

  • server
    • app.i18n
    • app.t(text, options)
    • ctx.i18n
    • ctx.t(text, options)
    • plugin.t()
  • client
    • ctx.i18n
    • ctx.t(text, options)
    • plugin.t()
    • useT()
  • utility
    • tExpr(text, options)
  • react-i18next
    • useTranslation(ns)
    • withTranslation(ns)

#Server

#app.i18n server

app.i18n è l'istanza i18n globale, generalmente utilizzata nella CLI. Ad esempio, la si può combinare con inquirer per implementare interazioni da riga di comando.

import select from '@inquirer/select';
import input from '@inquirer/input';

export class PluginSampleI18nServer extends Plugin {
  load() {
    this.app.command('test-i18n').action(async () => {
      const answer1 = await select({
        message: 'Select a language',
        choices: [
          {
            name: '中文',
            value: 'zh-CN',
          },
          {
            name: 'English',
            value: 'en-US',
          },
        ],
      });
      await this.app.changeLanguage(answer1);
      const answer2 = await input({
        message: app.i18n.t('Enter your name'),
      });
      console.log(app.i18n.t(`Your name is {{name}}`, { name: answer2 }));
    });
  }
}

#app.t(text, options) server

#ctx.i18n server

ctx.i18n è una cloneInstance dell'istanza globale app.i18n; il ctx di ogni richiesta è completamente indipendente e risponde con informazioni multilingua basate sulla lingua del client.

I parametri della richiesta client possono essere inseriti nella query string

GET /?locale=en-US HTTP/1.1
Host: localhost:13000

Oppure negli header della richiesta (consigliato)

GET / HTTP/1.1
Host: localhost:13000
X-Locale: en-US

Esempio

export class PluginSampleI18nServer extends Plugin {
  load() {
    this.app.use(async (ctx, next) => {
      if (ctx.path === '/api/test-i18n') {
        ctx.body = `${ctx.i18n.t('Hello')} ${ctx.i18n.t('World')}`;
      }
      await next();
    });
  }
}

Visualizzi http://localhost:13000/api/test-i18n?locale=zh-CN

#ctx.t(text, options) server

#plugin.t() server

#Client

#ctx.i18n client

#ctx.t(text, options) client

#plugin.t()

#useT()

#Funzioni di Utilità

#tExpr(text) server client

#react-i18next

#useTranslation(ns) client

#withTranslation(ns) client