yarn
安裝 glotstackyarn install glotstack
import * as React from 'react'
import { GlotstackProvider } from 'glotstack'
const importMethod = (locale: string) => {
// 使用 fetch() 從靜態目錄拉取,以限制包的大小,並將翻譯檔案儲存在靜態路徑
return fetch(`/public/translations/${locale}.json`)
}
// // 或者使用行內 require 來獲取內建翻譯——這在不支持動態導入的環境中有效
const translations: Record<string, () => Promise<Translations>> = {
'en-US': () => require('@/translations/en-US.json'),
'pl-PL': () => require('@/translations/pl-PL.json'),
'fr-FR': () => require('@/translations/fr-FR.json'),
};
const importMethod2 = (locale: string) => {
return translations[locale]();
}
const Application = () => {
const locale = 'en-US' // replace with your locale source
return (
<GlotstackProvider initialLocale={locale} importMethod={importMethod}>
{/*<YourComponent />*/}
</GlotstackProvider>
)
}
fetch()
會從任何靜態託管的文件中拉取檔案,例如 CDN,這有助於保持包的大小較小,尤其是在 Cloudflare Workers 等環境中有大小限制的情況下。除非你的環境無法支持動態導入語法,否則 fetch()
幾乎總是更好的選擇。
對於小型應用或 react-native,我們建議使用 require()
將資產打包到你的託管包中。
useGlotstack()
在你的組件中使用
import * as React from 'react'
import {useGlotstack} from 'glotstack'
function MyComponent() => {
const {t} = useGlotstack()
return (
<div>
{t('Quickstart.example', {assigns: {userName: 'JD'}})}
{/* Icon can be a function reference or a node */}
{t('Quickstart.example2', {assigns: {Icon: <Icon/>}})}
</div>
)
}
en-US.json
。我們建議將其放置在 ./translations/en-US.json
這樣的位置。如果擔心包的大小,可以通過使用公共檔案如 ./public/translations/en-US.json
來降低包的大小.glotstack.json
get-translations
yarn glotstack get-translations
yarn glotstack live-translate
實時翻譯export GLOTSTACK_API_KEY="Drl85MXtxgWsYq0PfWiSFAeFkCJRKpfe40pPoGKcyZ0D5HwfXwsk+xFq72uCGhvEnVV1rZdBUansecB3J+r5XA=="
yarn glotstack get-translations --source-path "./translations" --project-id "first-project" pl-PL fr-FR