gt-tanstack-start@0.1.0
Panoramica
gt-tanstack-start è un primo tentativo di offrire un supporto i18n pensato appositamente per TanStack Start.
Questa libreria è sperimentale. È ancora agli inizi e siamo molto aperti ai feedback. Se ti serve la traduzione in un ambiente di produzione con TanStack, per il momento ti consigliamo di usare
gt-react.
Elementi inclusi
initializeGT()— Configura il gestore i18n per TanStack Start. Chiamala una sola volta all'inizio del file della route principale.GTProvider— Avvolge la tua app nel contesto di traduzione, con rilevamento SSR integrato e risoluzione dell'impostazione regionale pensati per TanStack Start.getTranslations()— Una funzione asincrona pensata per essere chiamata nel loader principale, così da passare le traduzioni al provider.getLocale()— Restituisce l'impostazione regionale risolta per la richiesta corrente.<T>,<Var>,<LocaleSelector>— Riesportati dagt-react, così puoi importare tutto da un unico pacchetto.
Guida rapida
Installa
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 per le traduzioni
// loadTranslations.ts
export async function loadTranslations(locale: string) {
const translations = await import(`./src/_gt/${locale}.json`);
return translations.default;
}Configura la route principale
// __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>
);
}Traduzione dei contenuti
import { T } from 'gt-tanstack-start';
export default function Page() {
return (
<T>
<p>This gets translated automatically.</p>
</T>
);
}Prossimi sviluppi
Questa è la v0.1.0 — le basi ci sono, ma c'è ancora molto da costruire. SSG e il routing delle impostazioni regionali sono tra le prossime funzionalità che prevediamo di aggiungere nelle versioni future.
Se ti interessa provarlo, ogni feedback è ben accetto. Passa sul nostro Discord oppure apri una issue su GitHub.