Questa pagina ha un modello di applicazione disponibile.
Pose una domanda e ottieni un riassunto del documento facendo riferimento a questa pagina e al provider AI di tua scelta
Integrando il server MCP Intlayer al tuo assistente AI, puoi recuperare tutti i documenti direttamente da ChatGPT, DeepSeek, Cursor, VSCode, ecc.
Vedi la documentazione del server MCPIl contenuto di questa pagina è stato tradotto con un'IA.
Vedi l'ultima versione del contenuto originale in ingleseSe hai un’idea per migliorare questa documentazione, non esitare a contribuire inviando una pull request su GitHub.
Collegamento GitHub alla documentazioneCopia il Markdown del documento nella porta-documenti
Iniziare con l'internazionalizzazione (i18n) usando Intlayer, Vite e Preact
Questo pacchetto è in fase di sviluppo. Consulta la issue per maggiori informazioni. Mostra il tuo interesse per Intlayer per Preact mettendo un like alla issue
Consulta il Template dell'Applicazione su GitHub.
Cos'è Intlayer?
Intlayer è una libreria innovativa e open-source per l'internazionalizzazione (i18n) progettata per semplificare il supporto multilingue nelle moderne applicazioni web.
Con Intlayer, puoi:
- Gestire facilmente le traduzioni utilizzando dizionari dichiarativi a livello di componente.
- Localizzare dinamicamente metadati, rotte e contenuti.
- Garantire il supporto a TypeScript con tipi autogenerati, migliorando l'autocompletamento e il rilevamento degli errori.
- Beneficia di funzionalità avanzate, come il rilevamento e il cambio dinamico della lingua.
Guida Passo-Passo per Configurare Intlayer in un'Applicazione Vite e Preact
Passo 1: Installa le Dipendenze
Installa i pacchetti necessari usando npm:
Copiare il codice nella clipboard
npm install intlayer preact-intlayernpm install vite-intlayer --save-dev
intlayer
intlayer
Il pacchetto principale che fornisce strumenti di internazionalizzazione per la gestione della configurazione, la traduzione, la dichiarazione dei contenuti, la traspilazione e i comandi CLI.
preact-intlayer Il pacchetto che integra Intlayer con l'applicazione Preact. Fornisce provider di contesto e hook per l'internazionalizzazione in Preact.
vite-intlayer Include il plugin Vite per integrare Intlayer con il bundler Vite, oltre a middleware per rilevare la lingua preferita dall'utente, gestire i cookie e gestire il reindirizzamento degli URL.
Passo 2: Configurazione del tuo progetto
Crea un file di configurazione per impostare le lingue della tua applicazione:
Copiare il codice nella clipboard
import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = { internationalization: { locales: [ Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, // Le tue altre lingue ], defaultLocale: Locales.ENGLISH, },};export default config;
Attraverso questo file di configurazione, puoi impostare URL localizzati, reindirizzamenti middleware, nomi dei cookie, la posizione e l'estensione delle tue dichiarazioni di contenuto, disabilitare i log di Intlayer nella console e altro ancora. Per un elenco completo dei parametri disponibili, consulta la documentazione di configurazione.
Passo 3: Integra Intlayer nella tua configurazione Vite
Aggiungi il plugin intlayer nella tua configurazione.
Copiare il codice nella clipboard
import { defineConfig } from "vite";import preact from "@preact/preset-vite";import { intlayerPlugin } from "vite-intlayer";// https://vitejs.dev/config/export default defineConfig({ plugins: [preact(), intlayerPlugin()],});
Il plugin Vite intlayerPlugin() viene utilizzato per integrare Intlayer con Vite. Garantisce la costruzione dei file di dichiarazione dei contenuti e li monitora in modalità sviluppo. Definisce le variabili d'ambiente di Intlayer all'interno dell'applicazione Vite. Inoltre, fornisce alias per ottimizzare le prestazioni.
Passo 4: Dichiara i Tuoi Contenuti
Crea e gestisci le tue dichiarazioni di contenuto per memorizzare le traduzioni:
Copiare il codice nella clipboard
import { t, type Dictionary } from "intlayer";import type { ComponentChildren } from "preact";const appContent = { key: "app", content: { viteLogo: t({ en: "Vite logo", fr: "Logo Vite", es: "Logo Vite", }), preactLogo: t({ en: "Preact logo", fr: "Logo Preact", es: "Logo Preact", }), title: "Vite + Preact", count: t({ en: "count is ", fr: "le compte est ", es: "el recuento es ", }), edit: t<ComponentChildren>({ en: ( <> Modifica <code>src/app.tsx</code> e salva per testare HMR </> ), fr: ( <> Éditez <code>src/app.tsx</code> et enregistrez pour tester HMR </> ), es: ( <> Edita <code>src/app.tsx</code> y guarda para probar HMR </> ), }), readTheDocs: t({ en: "Click on the Vite and Preact logos to learn more", fr: "Cliquez sur les logos Vite et Preact pour en savoir plus", es: "Haga clic en los logotipos de Vite y Preact para obtener más información", }), },} satisfies Dictionary;export default appContent;
Le tue dichiarazioni di contenuto possono essere definite ovunque nella tua applicazione non appena sono incluse nella directory contentDir (per impostazione predefinita, ./src). E devono corrispondere all'estensione del file di dichiarazione del contenuto (per impostazione predefinita, .content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}).
Per maggiori dettagli, consulta la documentazione sulla dichiarazione del contenuto.
Se il tuo file di contenuto include codice TSX, potresti dover importare import { h } from "preact"; o assicurarti che il pragma JSX sia correttamente impostato per Preact.
Passo 5: Utilizza Intlayer nel tuo codice
Accedi ai tuoi dizionari di contenuto in tutta l'applicazione:
Copiare il codice nella clipboard
import { useState } from "preact/hooks";import type { FunctionalComponent } from "preact";import preactLogo from "./assets/preact.svg"; // Si presume che tu abbia un preact.svgimport viteLogo from "/vite.svg";import "./app.css"; // Si presume che il tuo file CSS si chiami app.cssimport { IntlayerProvider, useIntlayer } from "preact-intlayer";const AppContent: FunctionalComponent = () => { const [count, setCount] = useState(0); const content = useIntlayer("app"); return ( <> <div> <a href="https://vitejs.dev" target="_blank"> <img src={viteLogo} class="logo" alt={content.viteLogo.value} /> </a> <a href="https://preactjs.com" target="_blank"> <img src={preactLogo} class="logo preact" alt={content.preactLogo.value} /> </a> </div> <h1>{content.title}</h1> <div class="card"> <button onClick={() => setCount((count) => count + 1)}> {content.count} {count} </button> <p>{content.edit}</p> </div> <p class="read-the-docs">{content.readTheDocs}</p> </> );};const App: FunctionalComponent = () => ( <IntlayerProvider> <AppContent /> </IntlayerProvider>);export default App;
Se vuoi usare il tuo contenuto in un attributo di tipo string, come alt, title, href, aria-label, ecc., devi chiamare il valore della funzione, ad esempio:
jsxCopiare il codiceCopiare il codice nella clipboard
<img src={content.image.src.value} alt={content.image.value} />
Nota: In Preact, className è solitamente scritto come class.
Per saperne di più sull'hook useIntlayer, consulta la documentazione (L'API è simile per preact-intlayer).
(Opzionale) Passo 6: Cambiare la lingua del tuo contenuto
Per cambiare la lingua del tuo contenuto, puoi usare la funzione setLocale fornita dall'hook useLocale. Questa funzione ti permette di impostare la localizzazione dell'applicazione e aggiornare di conseguenza il contenuto.
Copiare il codice nella clipboard
import type { FunctionalComponent } from "preact";import { Locales } from "intlayer";import { useLocale } from "preact-intlayer";const LocaleSwitcher: FunctionalComponent = () => { const { setLocale } = useLocale(); return ( <button onClick={() => setLocale(Locales.ENGLISH)}> Cambia lingua in Inglese </button> );};export default LocaleSwitcher;
Per saperne di più sull'hook useLocale, consulta la documentazione (L'API è simile per preact-intlayer).
(Opzionale) Passo 7: Aggiungi il routing localizzato alla tua applicazione
Lo scopo di questo passaggio è creare percorsi unici per ogni lingua. Questo è utile per la SEO e per URL amichevoli per la SEO. Esempio:
Copiare il codice nella clipboard
- https://example.com/about- https://example.com/es/about- https://example.com/fr/about
Per impostazione predefinita, le rotte non sono prefissate per la lingua predefinita. Se desideri aggiungere un prefisso anche per la lingua predefinita, puoi impostare l'opzione middleware.prefixDefault su true nella tua configurazione. Consulta la documentazione sulla configurazione per maggiori informazioni.
Per aggiungere il routing localizzato alla tua applicazione, puoi creare un componente LocaleRouter che avvolge le rotte della tua applicazione e gestisce il routing basato sulla lingua. Ecco un esempio che utilizza preact-iso:
Per prima cosa, installa preact-iso:
Copiare il codice nella clipboard
npm install preact-iso
Copiare il codice nella clipboard
import { type Locales, configuration, getPathWithoutLocale } from "intlayer";import { ComponentChildren, FunctionalComponent } from "preact";import { IntlayerProvider } from "preact-intlayer";import { LocationProvider, useLocation } from "preact-iso";import { useEffect } from "preact/hooks";const { internationalization, middleware } = configuration;const { locales, defaultLocale } = internationalization;const Navigate: FunctionalComponent<{ to: string; replace?: boolean }> = ({ to, replace,}) => { const { route } = useLocation(); useEffect(() => { route(to, replace); }, [to, replace, route]); return null;};/**/** * Un componente che gestisce la localizzazione e avvolge i figli con il contesto della lingua appropriata. * Gestisce il rilevamento e la validazione della lingua basata sull'URL. */const AppLocalized: FunctionalComponent<{ children: ComponentChildren; locale?: Locales;}> = ({ children, locale }) => { const { path: pathname, url } = useLocation(); if (!url) { return null; } const search = url.substring(pathname.length); // Determina la lingua corrente, tornando alla lingua predefinita se non fornita const currentLocale = locale ?? defaultLocale; // Rimuove il prefisso della lingua dal percorso per costruire un percorso base const pathWithoutLocale = getPathWithoutLocale( pathname // Percorso URL corrente ); /** * Se middleware.prefixDefault è true, la lingua predefinita deve sempre essere prefissata. */ if (middleware.prefixDefault) { // Valida la lingua if (!locale || !locales.includes(locale)) { // Reindirizza alla lingua predefinita con il percorso aggiornato return ( <Navigate to={`/${defaultLocale}/${pathWithoutLocale}${search}`} replace // Sostituisce la voce corrente nella cronologia con la nuova /> ); } // Avvolge i figli con IntlayerProvider e imposta la lingua corrente return ( <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider> ); } else { /** * Quando middleware.prefixDefault è false, la lingua predefinita non è prefissata. * Assicurarsi che la locale corrente sia valida e non la locale predefinita. */ if ( currentLocale.toString() !== defaultLocale.toString() && !locales .filter( (loc) => loc.toString() !== defaultLocale.toString() // Escludi la locale predefinita ) .includes(currentLocale) // Verifica se la locale corrente è nella lista delle locale valide ) { // Reindirizza al percorso senza prefisso della locale return <Navigate to={`${pathWithoutLocale}${search}`} replace />; } // Avvolgi i children con IntlayerProvider e imposta la locale corrente return ( <IntlayerProvider locale={currentLocale}>{children}</IntlayerProvider> ); }};const RouterContent: FunctionalComponent<{ children: ComponentChildren;}> = ({ children }) => { const { path } = useLocation(); if (!path) { return null; } const pathLocale = path.split("/")[1] as Locales; const isLocaleRoute = locales .filter((locale) => middleware.prefixDefault || locale !== defaultLocale) .some((locale) => locale.toString() === pathLocale); if (isLocaleRoute) { return <AppLocalized locale={pathLocale}>{children}</AppLocalized>; } return ( <AppLocalized locale={!middleware.prefixDefault ? defaultLocale : undefined} > {children} </AppLocalized> );};/** * Un componente router che configura le rotte specifiche per la localizzazione. * Usa preact-iso per gestire la navigazione e rendere i componenti localizzati. */export const LocaleRouter: FunctionalComponent<{ children: ComponentChildren;}> = ({ children }) => ( <LocationProvider> <RouterContent>{children}</RouterContent> </LocationProvider>);
Poi, puoi usare il componente LocaleRouter nella tua applicazione:
Copiare il codice nella clipboard
import { LocaleRouter } from "./components/LocaleRouter";import type { FunctionalComponent } from "preact";tsx fileName="src/app.tsx" codeFormat="typescript"import { LocaleRouter } from "./components/LocaleRouter";import type { FunctionalComponent } from "preact";// ... Il tuo componente AppContent (definito nel Passo 5)const App: FunctionalComponent = () => ( <LocaleRouter> <AppContent /> </LocaleRouter>);export default App;
In parallelo, puoi anche utilizzare il intLayerMiddlewarePlugin per aggiungere il routing lato server alla tua applicazione. Questo plugin rileverà automaticamente la locale corrente basandosi sull'URL e imposterà il cookie della locale appropriata. Se non viene specificata alcuna locale, il plugin determinerà la locale più adatta in base alle preferenze linguistiche del browser dell'utente. Se non viene rilevata alcuna locale, verrà effettuato un reindirizzamento alla locale predefinita.
Copiare il codice nella clipboard
import { defineConfig } from "vite";import preact from "@preact/preset-vite";import { intlayerPlugin, intLayerMiddlewarePlugin } from "vite-intlayer";// https://vitejs.dev/config/export default defineConfig({ plugins: [preact(), intlayerPlugin(), intLayerMiddlewarePlugin()],});
(Opzionale) Passo 8: Cambiare l'URL quando la lingua cambia
Per cambiare l'URL quando la lingua cambia, puoi utilizzare la proprietà onLocaleChange fornita dal hook useLocale. Parallelamente, puoi usare useLocation e route da preact-iso per aggiornare il percorso dell'URL.
Copiare il codice nella clipboard
import { useLocation, route } from "preact-iso";import { Locales, getHTMLTextDir, getLocaleName, getLocalizedUrl,} from "intlayer";import { useLocale } from "preact-intlayer";import type { FunctionalComponent } from "preact";const LocaleSwitcher: FunctionalComponent = () => { const location = useLocation(); const { locale, availableLocales, setLocale } = useLocale({ onLocaleChange: (newLocale) => { const currentFullPath = location.url; // preact-iso fornisce l'URL completo // Costruisci l'URL con la locale aggiornata // Esempio: /es/about?foo=bar const pathWithLocale = getLocalizedUrl(currentFullPath, newLocale); // Aggiorna il percorso URL route(pathWithLocale, true); // true per sostituire }, }); return ( <div> <button popovertarget="localePopover">{getLocaleName(locale)}</button> <div id="localePopover" popover="auto"> {availableLocales.map((localeItem) => ( <a href={getLocalizedUrl(location.url, localeItem)} hreflang={localeItem} aria-current={locale === localeItem ? "page" : undefined} onClick={(e) => { e.preventDefault(); setLocale(localeItem); // La navigazione programmatica dopo l'impostazione della lingua sarà gestita da onLocaleChange }} key={localeItem} > <span> {/* Lingua - es. FR */} {localeItem} </span> <span> {/* Lingua nella sua stessa lingua - es. Français */} {getLocaleName(localeItem, localeItem)} </span> <span dir={getHTMLTextDir(localeItem)} lang={localeItem}> {/* Lingua nella lingua corrente - es. Francés con la lingua corrente impostata su Locales.SPANISH */} {getLocaleName(localeItem, locale)} </span> <span dir="ltr" lang={Locales.ENGLISH}> {/* Lingua in inglese - es. French */} {getLocaleName(localeItem, Locales.ENGLISH)} </span> </a> ))} </div> </div> );};export default LocaleSwitcher;
Riferimenti alla documentazione:
-useLocale hook (L'API è simile per preact-intlayer)
- getLocaleName hook
- getLocalizedUrl hook
- getHTMLTextDir hook
- Attributo hreflang
- Attributo lang
- Attributo dir
- Attributo aria-current
- API Popover > > - useLocale hook (L'API è simile per preact-intlayer)> - getLocaleName hook> - getLocalizedUrl hook> - getHTMLTextDir hook> - hreflang attribute> - lang attribute> - dir attribute> - aria-current attribute> - Popover API
Di seguito è riportato il Passo 9 aggiornato con spiegazioni aggiuntive ed esempi di codice perfezionati:
(Opzionale) Passo 9: Cambiare gli attributi di lingua e direzione dell'HTML
Quando la tua applicazione supporta più lingue, è fondamentale aggiornare gli attributi lang e dir del tag <html> per farli corrispondere alla locale corrente. Questo garantisce:
- Accessibilità: I lettori di schermo e le tecnologie assistive si basano sull'attributo lang corretto per pronunciare e interpretare accuratamente i contenuti.
- Rendering del testo: L'attributo dir (direzione) assicura che il testo venga visualizzato nell'ordine corretto (ad esempio, da sinistra a destra per l'inglese, da destra a sinistra per l'arabo o l'ebraico), essenziale per la leggibilità.
- SEO: I motori di ricerca utilizzano l'attributo lang per determinare la lingua della tua pagina, aiutando a fornire il contenuto localizzato corretto nei risultati di ricerca.
Aggiornando dinamicamente questi attributi quando la locale cambia, garantisci un'esperienza coerente e accessibile per gli utenti in tutte le lingue supportate.
Implementazione del Hook
Crea un hook personalizzato per gestire gli attributi HTML. Il hook ascolta i cambiamenti della locale e aggiorna gli attributi di conseguenza:
Copiare il codice nella clipboard
import { useEffect } from "preact/hooks";import { useLocale } from "preact-intlayer";import { getHTMLTextDir } from "intlayer";/** * Aggiorna gli attributi `lang` e `dir` dell'elemento HTML <html> in base alla locale corrente. * - `lang`: Informa i browser e i motori di ricerca sulla lingua della pagina. * - `dir`: Garantisce l'ordine di lettura corretto (ad esempio, 'ltr' per l'inglese, 'rtl' per l'arabo). * * Questo aggiornamento dinamico è essenziale per una corretta resa del testo, accessibilità e SEO. */export const useI18nHTMLAttributes = () => { const { locale } = useLocale(); useEffect(() => { // Aggiorna l'attributo della lingua alla locale corrente. document.documentElement.lang = locale; // Imposta la direzione del testo in base alla locale corrente. document.documentElement.dir = getHTMLTextDir(locale); }, [locale]);};
Utilizzo del Hook nella tua Applicazione
Integra il hook nel tuo componente principale in modo che gli attributi HTML vengano aggiornati ogni volta che la locale cambia:
Copiare il codice nella clipboard
import type { FunctionalComponent } from "preact";import { IntlayerProvider } from "preact-intlayer"; // useIntlayer già importato se AppContent ne ha bisognoimport { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes";import "./app.css";// Definizione di AppContent dal Passo 5const AppWithHooks: FunctionalComponent = () => { // Applica l'hook per aggiornare gli attributi lang e dir del tag <html> in base alla locale. useI18nHTMLAttributes(); // Si assume che AppContent sia il componente principale per la visualizzazione del contenuto dal Passo 5 return <AppContent />;};const App: FunctionalComponent = () => ( <IntlayerProvider> <AppWithHooks /> </IntlayerProvider>);export default App;
Applicando queste modifiche, la tua applicazione:
- Garantirà che l'attributo lingua (lang) rifletta correttamente la locale corrente, cosa importante per la SEO e il comportamento del browser.
- Adatterà la direzione del testo (dir) in base alla locale, migliorando la leggibilità e l'usabilità per le lingue con ordini di lettura differenti.
- Fornire un'esperienza più accessibile, poiché le tecnologie assistive dipendono da questi attributi per funzionare in modo ottimale.
(Opzionale) Passo 10: Creare un componente Link localizzato
Per garantire che la navigazione della tua applicazione rispetti la locale corrente, puoi creare un componente Link personalizzato. Questo componente aggiunge automaticamente il prefisso della lingua corrente agli URL interni.
Questo comportamento è utile per diversi motivi:
- SEO e esperienza utente: Gli URL localizzati aiutano i motori di ricerca a indicizzare correttamente le pagine specifiche per lingua e offrono agli utenti contenuti nella loro lingua preferita.
- Coerenza: Utilizzando un link localizzato in tutta l'applicazione, garantisci che la navigazione rimanga all'interno della locale corrente, evitando cambiamenti di lingua imprevisti.
- Manutenibilità: Centralizzare la logica di localizzazione in un unico componente semplifica la gestione degli URL.
Per Preact con preact-iso, i tag <a> standard sono tipicamente usati per la navigazione, e preact-iso gestisce il routing. Se hai bisogno di una navigazione programmata al click (ad esempio, per eseguire azioni prima della navigazione), puoi usare la funzione route da useLocation. Ecco come puoi creare un componente anchor personalizzato che localizza gli URL:
Copiare il codice nella clipboard
import { getLocalizedUrl } from "intlayer";import { useLocale, useLocation, route } from "preact-intlayer"; // Si assume che useLocation e route possano provenire da preact-iso tramite preact-intlayer se riesportati, oppure importarli direttamente// Se non re-esportato, importare direttamente: import { useLocation, route } from "preact-iso";import type { JSX } from "preact"; // Per HTMLAttributesimport { forwardRef } from "preact/compat"; // Per inoltrare i refexport interface LocalizedLinkProps extends JSX.HTMLAttributes<HTMLAnchorElement> { href: string; replace?: boolean; // Opzionale: per sostituire lo stato della cronologia}/** * Funzione di utilità per verificare se un URL è esterno. * Se l'URL inizia con http:// o https://, è considerato esterno. */export const checkIsExternalLink = (href?: string): boolean => /^https?:\/\//.test(href ?? "");/** * Un componente Link personalizzato che adatta l'attributo href in base alla locale corrente. * Per i link interni, utilizza `getLocalizedUrl` per anteporre la localizzazione all'URL (es. /fr/about). * Questo garantisce che la navigazione rimanga all'interno dello stesso contesto di localizzazione. * Utilizza un tag <a> standard ma può attivare la navigazione lato client usando `route` di preact-iso. */export const LocalizedLink = forwardRef<HTMLAnchorElement, LocalizedLinkProps>( ({ href, children, onClick, replace = false, ...props }, ref) => { const { locale } = useLocale(); const location = useLocation(); // da preact-iso const isExternalLink = checkIsExternalLink(href); const hrefI18n = href && !isExternalLink ? getLocalizedUrl(href, locale) : href; const handleClick = (event: JSX.TargetedMouseEvent<HTMLAnchorElement>) => { if (onClick) { onClick(event); } if ( !isExternalLink && href && // Assicurarsi che href sia definito event.button === 0 && // Click sinistro !event.metaKey && !event.ctrlKey && !event.shiftKey && !event.altKey && // Controllo standard dei modificatori !props.target // Non aprire in una nuova scheda/finestra ) { event.preventDefault(); if (location.url !== hrefI18n) { // Naviga solo se l'URL è diverso route(hrefI18n, replace); // Usa route di preact-iso } } }; return ( <a href={hrefI18n} ref={ref} onClick={handleClick} {...props}> {children} </a> ); });
Come Funziona
- Rilevamento dei Link Esterni:
La funzione di supporto checkIsExternalLink determina se un URL è esterno. I link esterni vengono lasciati invariati. - Recupero della Locale Corrente:
L'hook useLocale fornisce la locale corrente. - Localizzazione dell'URL:
Per i link interni, getLocalizedUrl aggiunge il prefisso della locale corrente all'URL. - Navigazione lato Client: La funzione handleClick verifica se si tratta di un link interno e se la navigazione standard deve essere prevenuta. In tal caso, utilizza la funzione route di preact-iso (ottenuta tramite useLocation o importata direttamente) per eseguire la navigazione lato client. Questo fornisce un comportamento simile a una SPA senza ricaricare completamente la pagina.
- Restituzione del Link:
Il componente restituisce un elemento <a> con l'URL localizzato e il gestore di click personalizzato.
Configurare TypeScript
Intlayer utilizza l'augmentation dei moduli per sfruttare i vantaggi di TypeScript e rendere il tuo codice più robusto.
Assicurati che la tua configurazione TypeScript includa i tipi generati automaticamente.
Copiare il codice nella clipboard
{ // ... Le tue configurazioni TypeScript esistenti "compilerOptions": { // ... "jsx": "react-jsx", "jsxImportSource": "preact", // Consigliato per Preact 10+ // ... }, "include": [ // ... Le tue configurazioni TypeScript esistenti ".intlayer/**/*.ts", // Includi i tipi generati automaticamente ],}
Assicurati che il tuo tsconfig.json sia configurato per Preact, in particolare jsx e jsxImportSource oppure jsxFactory/jsxFragmentFactory per versioni più vecchie di Preact se non usi i valori predefiniti di preset-vite.
Configurazione Git
Si consiglia di ignorare i file generati da Intlayer. Questo ti permette di evitare di committarli nel tuo repository Git.
Per fare ciò, puoi aggiungere le seguenti istruzioni al tuo file .gitignore:
Copiare il codice nella clipboard
# Ignora i file generati da Intlayer.intlayer
Estensione VS Code
Per migliorare la tua esperienza di sviluppo con Intlayer, puoi installare l'Estensione ufficiale Intlayer per VS Code.
Installa dal Marketplace di VS Code
Questa estensione offre:
- Completamento automatico per le chiavi di traduzione.
- Rilevamento errori in tempo reale per traduzioni mancanti.
- Anteprime inline del contenuto tradotto.
- 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.
Andare oltre
Per andare oltre, puoi implementare l’editor visuale oppure esternalizzare i tuoi contenuti utilizzando il CMS.
Cronologia del documento
- 5.5.10 - 2025-06-29: Inizio cronologia