gt-tanstack-start@0.1.0
Panoramica
gt-tanstack-start è un primo tentativo di fornire supporto i18n pensato su misura per TanStack Start.
Questa libreria è sperimentale. È ancora in una fase iniziale e siamo molto aperti a ricevere feedback. Se ti servono le traduzioni in un ambiente di produzione con TanStack, per il momento ti consigliamo di usare
gt-react.
Cosa include
initializeGT()— Configura il gestore i18n per TanStack Start. Richiamala una sola volta all’inizio del file della route principale.GTProvider— Avvolge la tua app con il contesto di traduzione, con rilevamento SSR integrato e risoluzione della locale specifica per TanStack Start.getTranslations()— Una funzione asincrona pensata per essere chiamata nel loader principale per passare le traduzioni al provider.getLocale()— Restituisce la locale risolta per la richiesta corrente.<T>,<Var>,<LocaleSelector>— Riesportati dagt-react, così puoi importare tutto da un unico pacchetto.
Guida rapida
Installazione
npm install gt-tanstack-startConfigura gt.config.json
{
"defaultLocale": "en",
"locales": ["fr", "zh"],
"files": {
"gt": {
"output": "src/_gt/[locale].json"
}
}
}Imposta le variabili d'ambiente
VITE_GT_PROJECT_ID=your-project-id
VITE_GT_DEV_API_KEY=your-dev-api-key
Crea un loader di traduzione
// loadTranslations.ts
export async function loadTranslations(locale: string) {
const translations = await import(`./src/_gt/${locale}.json`);
return translations.default;
}Configura la rotta radice
// __root.tsx
import { HeadContent, Scripts, createRootRoute } from '@tanstack/react-router';
import {
initializeGT,
GTProvider,
getTranslations,
getLocale,
} from 'gt-tanstack-start';
import gtConfig from '../../gt.config.json';
import { loadTranslations } from '../../loadTranslations';
initializeGT({
...gtConfig,
projectId: import.meta.env.VITE_GT_PROJECT_ID,
devApiKey: import.meta.env.VITE_GT_DEV_API_KEY,
loadTranslations,
});
export const Route = createRootRoute({
loader: async () => ({
translations: await getTranslations(),
locale: getLocale(),
}),
shellComponent: RootDocument,
});
function RootDocument({ children }: { children: React.ReactNode }) {
const { translations, locale } = Route.useLoaderData();
return (
<html lang={locale}>
<head>
<HeadContent />
</head>
<body>
<GTProvider translations={translations}>
{children}
</GTProvider>
<Scripts />
</body>
</html>
);
}Traduci i contenuti
import { T } from 'gt-tanstack-start';
export default function Page() {
return (
<T>
<p>Questo viene tradotto automaticamente.</p>
</T>
);
}Guardando avanti
Questa è la v0.1.0 — le basi ci sono, ma c'è ancora molto da costruire. SSG e il routing dei locale sono alcune delle prossime funzionalità che stiamo pianificando di aggiungere nelle prossime versioni.
Se ti interessa provarlo, ogni feedback è molto apprezzato. Passa sul nostro Discord oppure apri una issue su GitHub.