soon-i18n-svelte
安装
npm install soon-i18n-svelte
完整示例
npx degit https://github.com/leafio/soon-i18n/packages/soon-i18n-svelte/demo
使用说明
创建实例
import { createI18n } from "soon-i18n-svelte";
const global_locales = { zh: { g_welcome: "全局:欢迎 {name}" }, en: { g_welcome: "Global: Welcome {name}" },} as const;type Lang = "zh" | "en";
export const { tLocales, lang } = createI18n( { lang: "zh" as Lang, fallbacks: ["en"] }, global_locales);
在 js/ts 中使用
import { get } from "svelte/store";import { tLocales } from "../lang";export const showToast = () => { const t = get( tLocales({ zh: { tip: "哈哈,一条中文提醒!!!" }, en: { tip: "Aha, an English tip" }, }) ); alert(t("tip"));};
在组件中使用
<script>import { tLocales } from "../lang";const t = tLocales({ zh: { hello: "你好" }, en: { hello: "Hello" },});</script> <div>{$t("hello")}</div>
切换语言
<script>import { lang } from "../lang";
const handleToggle = () => { lang.update((_lang) => (_lang === "en" ? "zh" : "en"));};</script>
<button on:click={handleToggle}>{ $lang }</button>