Pose una domanda e ottieni un riassunto del documento facendo riferimento a questa pagina e al provider AI di tua scelta
Cronologia delle versioni
- "Aggiornare l'uso dell'API useIntlayer di Solid all'accesso diretto alle proprietà"v8.9.004/05/2026
- "Aggiungi comando init"v7.5.930/12/2025
- "Inizio cronologia"v5.5.1029/06/2025
Il contenuto di questa pagina è stato tradotto con un'IA.
Vedi l'ultima versione del contenuto originale in ingleseIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
Traduci la tua Lynx and React mobile app con Intlayer | Internazionalizzazione (i18n)
Consulta Application Template su GitHub.
Perché Intlayer rispetto alle alternative?
Rispetto alle soluzioni principali come react-native-localize o i18next, Intlayer è una soluzione dotata di ottimizzazioni integrate come:
Intlayer è ottimizzato per funzionare perfettamente con Lynx e React offrendo ambito del contenuto a livello di componente, supporto TypeScript e tutte le funzionalità necessarie per scalare l'internazionalizzazione (i18n).
Invece di caricare enormi file JSON nelle tue pagine, carica solo il contenuto necessario. Intlayer aiuta a ridurre le dimensioni del bundle e della pagina fino al 50%.
L'ambito del contenuto dell'applicazione facilita la manutenzione per applicazioni su larga scala. Puoi duplicare o eliminare una singola cartella di funzionalità senza l'onere mentale di rivedere l'intera codebase dei contenuti. Inoltre, Intlayer è completamente tipizzato (fully typed) per garantire l'accuratezza dei tuoi contenuti.
La co-localizzazione dei contenuti riduce il contesto necessario dai Large Language Models (LLM). Intlayer viene fornito anche con una suite di strumenti, come una CLI per verificare le traduzioni mancanti,LSP, MCP e capacità dell'agente, per rendere l'esperienza dello sviluppatore (DX) ancora più fluida per gli agenti IA.
Utilizza l'automazione per tradurre nella tua pipeline CI/CD utilizzando il LLM di tua scelta al costo del tuo provider di intelligenza artificiale. Intlayer offre anche un compilatore per automatizzare l'estrazione dei contenuti, nonché una piattaforma web per aiutare a tradurre in background.
La connessione di enormi file JSON ai componenti può portare a problemi di prestazioni e reattività. Intlayer ottimizza il caricamento dei contenuti in fase di compilazione.
Più di una semplice soluzione i18n, Intlayer fornisce un editor visivo self-hosted e un CMS completo per aiutarti gestisci i tuoi contenuti multilingue in tempo reale, semplificando la collaborazione con traduttori, copywriter e altri membri del team. I contenuti possono essere archiviati localmente e/o in remoto.
Passo 1: Installa le dipendenze
Dal tuo progetto Lynx, installa i seguenti pacchetti:
Copiare il codice nella clipboard
npm install intlayer react-intlayer lynx-intlayernpx intlayer initPacchetti
intlayer
Il toolkit i18n principale per la configurazione, il contenuto del dizionario, la generazione di tipi e i comandi CLI.react-intlayer
Integrazione React che fornisce i provider di contesto e gli hook React che utilizzerai in Lynx per ottenere e cambiare le lingue.lynx-intlayer
Integrazione Lynx che fornisce il plugin per integrare Intlayer con il bundler Lynx.
Passo 2: Crea una Configurazione Intlayer
Nella radice del tuo progetto (o in qualsiasi posizione comoda), crea un file di configurazione Intlayer. Potrebbe apparire così:
Copiare il codice nella clipboard
import { Locales, type IntlayerConfig } from "intlayer";
const config: IntlayerConfig = {
internationalization: {
locales: [
Locales.ENGLISH,
Locales.FRENCH,
Locales.SPANISH,
// ... Aggiungi altre lingue necessarie
],
defaultLocale: Locales.ENGLISH,
},
};
export default config;All'interno di questa configurazione, puoi:
- Configurare la tua lista di lingue supportate.
- Impostare una lingua predefinita.
- Successivamente, potrai aggiungere opzioni più avanzate (es. log, directory di contenuti personalizzate, ecc.).
- Consulta la documentazione sulla configurazione di Intlayer per ulteriori informazioni.
Passo 3: Aggiungi il plugin Intlayer al bundler Lynx
Per utilizzare Intlayer con Lynx, devi aggiungere il plugin al file lynx.config.ts:
Copiare il codice nella clipboard
import { defineConfig } from "@lynx-js/rspeedy";import { pluginIntlayerLynx } from "lynx-intlayer/plugin";export default defineConfig({ plugins: [ // ... altri plugin pluginIntlayerLynx(), ],});Passo 4: Aggiungi il provider Intlayer
Per mantenere sincronizzata la lingua dell'utente in tutta l'applicazione, devi avvolgere il tuo componente radice con il componente IntlayerProvider di react-intlayer.
Inoltre, devi aggiungere il file della funzione intlayerPolyfill per garantire che Intlayer funzioni correttamente.
Copiare il codice nella clipboard
import { root } from "@lynx-js/react";import { App } from "./App.js";import { IntlayerProvider } from "react-intlayer";import { intlayerPolyfill } from "lynx-intlayer";intlayerPolyfill();root.render( <IntlayerProvider> <App /> </IntlayerProvider>);if (import.meta.webpackHot) { import.meta.webpackHot.accept();}Passo 5: Dichiarare i tuoi contenuti
Crea file di dichiarazione dei contenuti ovunque nel tuo progetto (comunemente all'interno di src/), utilizzando uno qualsiasi dei formati di estensione supportati da Intlayer:
.content.json.content.ts.content.tsx.content.js.content.jsx.content.mjs.content.mjx.content.cjs.content.cjx- ecc.
Esempio:
Copiare il codice nella clipboard
import { t, type Dictionary } from "intlayer";
const appContent = {
key: "app",
content: {
title: "React",
subtitle: t({
it: "su Lynx",
en: "on Lynx",
fr: "sur Lynx",
es: "en Lynx",
}),
description: t({
it: "Tocca il logo e divertiti!",
en: "Tap the logo and have fun!",
fr: "Appuyez sur le logo et amusez-vous!",
es: "¡Toca el logo y diviértete!",
}),
hint: [
t({
it: "Modifica",
en: "Edit",
fr: "Modifier",
es: "Editar",
}),
" src/App.tsx ",
t({
it: "per vedere gli aggiornamenti!",
en: "to see updates!",
fr: "pour voir les mises à jour!",
es: "para ver actualizaciones!",
}),
],
},
} satisfies Dictionary;
export default appContent;Per dettagli sulle dichiarazioni di contenuto, consulta la documentazione sui contenuti di Intlayer.
Passo 4: Usa Intlayer nei tuoi Componenti
Usa il hook useIntlayer nei componenti figli per ottenere contenuti localizzati.
Copiare il codice nella clipboard
import { useCallback, useState } from "@lynx-js/react";import { useIntlayer } from "react-intlayer";import "./App.css";import arrow from "./assets/arrow.png";import lynxLogo from "./assets/lynx-logo.png";import reactLynxLogo from "./assets/react-logo.png";import { LocaleSwitcher } from "./components/LocaleSwitcher.jsx";export const App = () => { const [alterLogo, setAlterLogo] = useState(false); const { title, subtitle, description, hint } = useIntlayer("app"); const onTap = useCallback(() => { // solo sfondo setAlterLogo(!alterLogo); }, [alterLogo]); return ( <view> <view className="Background" /> <view className="App"> <view className="Banner"> <view className="Logo" bindtap={onTap}> {alterLogo ? ( <image src={reactLynxLogo} className="Logo--react" /> ) : ( <image src={lynxLogo} className="Logo--lynx" /> )} </view> <text className="Title">{title}</text> <text className="Subtitle">{subtitle}</text> </view> <view className="Content"> <image src={arrow} className="Arrow" /> <text className="Description">{description}</text> <text className="Hint"> {hint[0]} <text style={{ fontStyle: "italic" }}>{hint[1]}</text> {hint[2]} </text> </view> <LocaleSwitcher /> <view style={{ flex: 1 }}></view> </view> </view> );};Quando utilizzicontent.someKeyin proprietà basate su stringhe (ad esempio, iltitledi un pulsante o ilchildrendi un componenteText), chiamacontent.someKey.valueper ottenere la stringa effettiva.
(Opzionale) Passo 5: Cambia la Lingua dell'App
Per cambiare la lingua direttamente dai tuoi componenti, puoi usare il metodo setLocale del hook useLocale:
Copiare il codice nella clipboard
import { type FC } from "react";import { getLocaleName } from "intlayer";import { useLocale } from "react-intlayer";export const LocaleSwitcher: FC = () => { const { setLocale, availableLocales, locale } = useLocale(); return ( <view style={{ display: "flex", flexDirection: "row", justifyContent: "center", alignItems: "center", gap: 10, }} > {availableLocales.map((localeEl) => ( <text key={localeEl} style={{ color: localeEl === locale ? "#fff" : "#888", fontSize: "12px", }} bindtap={() => setLocale(localeEl)} > {getLocaleName(localeEl)} </text> ))} </view> );};Questo attiva un nuovo rendering di tutti i componenti che utilizzano i contenuti di Intlayer, mostrando ora le traduzioni per la nuova lingua.
Consulta la documentazione di useLocale per maggiori dettagli.
Configura TypeScript (se utilizzi TypeScript)
Intlayer genera definizioni di tipo in una cartella nascosta (di default .intlayer) per migliorare l'autocompletamento e rilevare errori di traduzione:
Copiare il codice nella clipboard
// tsconfig.json{ // ... la tua configurazione TS esistente "include": [ "src", // il tuo codice sorgente ".intlayer/types/**/*.ts", // <-- assicurati che i tipi generati automaticamente siano inclusi // ... qualsiasi altra cosa già inclusa ],}Questo abilita funzionalità come:
- Autocompletamento per le chiavi del tuo dizionario.
- Controllo dei tipi che avvisa se accedi a una chiave inesistente o se il tipo non corrisponde.
Per evitare di commettere file generati automaticamente da Intlayer, aggiungi quanto segue al tuo .gitignore:
Copiare il codice nella clipboard
# Ignora i file generati da Intlayer.intlayerEstensione VS Code
Per migliorare la tua esperienza di sviluppo con Intlayer, puoi installare la Estensione ufficiale Intlayer per VS Code.
Installa dal Marketplace di VS Code
Questa estensione offre:
- Autocompletamento per le chiavi di traduzione.
- Rilevamento errori in tempo reale per traduzioni mancanti.
- Anteprime inline dei contenuti tradotti.
- Azioni rapide per creare e aggiornare facilmente le traduzioni. Per maggiori dettagli su come utilizzare l'estensione, consulta la documentazione dell'estensione Intlayer per VS Code.
Approfondisci
- Editor Visivo: Usa l'Editor Visivo di Intlayer per gestire le traduzioni visivamente.
- Integrazione CMS: Puoi anche esternalizzare e recuperare i contenuti del tuo dizionario da un CMS.
- Comandi CLI: Esplora la CLI di Intlayer per attività come estrarre traduzioni o controllare chiavi mancanti.