Internazionalizzazione (i18n)
Starlight offre il supporto per siti multilingua, compreso di indirizzamento, contenuti fallback e completo supporto per lingue scritte da destra a sinistra (RTL).
Configurare i18n
-
Indicare a Starlight le lingue che si vuole supportare passando
locales
edefaultLocale
all’integrazione Starlight:Il
defaultLocale
sarà utilizzato come fallback per contenuti ed interfaccia, quindi scegli il linguaggio per cui c’è più probabilità di iniziare a scrivere o già hai contenuti. -
Creare una cartella per ogni lingua in
src/content/docs/
. Per esempio, per la configurazione di sopra:Directorysrc/
Directorycontent/
Directorydocs/
Directoryar/
- …
Directoryen/
- …
Directoryzh-cn/
- …
-
Puoi ora aggiungere file nelle cartelle. Usa file con lo stesso nome per associare pagine tra i linguaggi e sfruttare le funzionalità di Starlight per i18n, compresi i contenuti di fallback, avvisi di traduzione e altro.
Per esempio, crea
ar/index.md
een/index.md
per rappresentare la homepage rispettivamente in arabo e inglese.
Utilizzare una lingua principale
Puoi utilizzare una lingua principale per non avere il prefisso i18n nel percorso. Per esempio, se l’inglese è la lingua principale, un indirizzo sarà del tipo /about
invece che /en/about
.
Per fare questo, utilizza la chiave root
nella configurazione locales
. Se la lingua principale è anche la lingua di default rimuovi defaultLocale
o impostala a 'root'
.
Quando si usa una lingua root
, metti le pagine direttamente in src/content/docs/
invece che in una cartella dedicata alla lingua. Per esempio, qui si trovano i file delle pagine per inglese e cinese quando si utilizza la configurazione precedente:
Directorysrc/
Directorycontent/
Directorydocs/
- index.md
Directoryzh-cn/
- index.md
Siti monolingua
Per default, Starlight è un sito monolingua (inglese). Per creare un sito monolingua in un’altra, impostala come root
in locales
:
Questo ti permette di sovrascrivere le impostazione predefinite di Starlight per la lingua senza abilitare l’internazionalizzazione.
Contenuti fallback
Starlight si aspetta che crei pagine equivalenti per tutte le lingue impostate. Per esempio, se hai un file en/about.md
, crea un about.md
per ogni altra lingua impostata. Questo permette a Starlight di avere contenuti fallback per le pagine che non hai ancora tradotto.
Se una traduzione non è ancora disponibile per una lingua, Starlight mostrerà ai lettori i contenuti per quella pagina nel linguaggio predefinito (impostato da defaultLocale
). Per esempio, se non hai ancora creato una versione italiana della pagina About e la lingua predefinita è inglese, gli utenti per /it/about
vedranno i contenuti in inglese di /en/about
con un avviso che la pagina non è stata ancora tradotta.
Tradurre l’interfaccia Starlight
In aggiunta alla possibilità di avere pagine multilingua, Starlight permette di tradurre le scritte dell’interfaccia (per esempio l’intestazione “In questa pagina” nella tabella dei contenuti) in modo che i lettori possano vedere il sito interamente nella lingua selezionata.
Le stringhe dell’interfaccia utente tradotte in inglese, ceco, francese, tedesco, italiano, giapponese, portoghese, olandese, danese, spagnolo, turco, arabo, norvegese, farsi, ebraico, cinese semplificato, coreano, indonesiano, russo, svedese e vietnamese sono disponibili di default e accettiamo contributi per aggiungere altre lingue predefinite.
Puoi fornire traduzioni per lingue aggiuntive — o sovrascrivere i valori predefiniti — con la collezione i18n
.
-
Configura la collezione
i18n
insrc/content/config.ts
se non lo è già: -
Crea un file JSON in
src/content/i18n/
per ogni lingua di cui si vuole fornire la traduzione all’interfaccia. Per esempio, questo aggiungerebbe traduzioni per arabo e cinese semplificato:Directorysrc/
Directorycontent/
Directoryi18n/
- ar.json
- zh-CN.json
-
Aggiungere traduzioni per le chiavi che vuoi tradurre. Traduci solo i valori, le chiavi non devono essere modificate (per esempio
"search.label": "Buscar"
).Queste sono le traduzioni di default per l’inglese:
Il pannello di ricerca di Starlight è basato sulla libreria Pagefind. Puoi impostare le traduzioni per l’interfaccia utente di Pagefind nello stesso file JSON utilizzando le chiavi pagefind”: