跳转到内容

soon-i18n-svelte

安装

Terminal window
npm install soon-i18n-svelte

完整示例

Terminal window
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>