在进行多语言开发时,常常需要使用到国际化库,而 i18n-yummy 正是一个轻量级的国际化库,高度可定制化,特别适用于 React 资源。
安装 i18n-yummy
你可以通过 npm 进行安装:
npm i i18n-yummy --save
初始化 i18n
在你的应用程序中,使用如下代码来初始化 i18n:
import i18n from "i18n-yummy"; i18n.init({ lng: "en", // 默认语言(可切换) resources: { en: { translation: { hello: "Hello, World!" } }, zh: { translation: { hello: "你好,世界!" } } } });
此时,我们使用的是默认语言 en。
加载语言资源
在使用 i18n 之前,我们需要加载语言资源,这可以使用 i18n.load() 方法完成。但是,这里我们使用已经预先加载好的资源,并切换到中文:
i18n.load({ lng: "zh", resources: { zh: { translation: { hello: "你好,世界!" } } } });
使用 i18n 翻译文本
我们可以使用 i18n.t() 方法来翻译文本。
i18n.t("hello"); // 你好,世界!
带参数的翻译
我们可以通过使用带参数的翻译方式来自定义一些文本信息。
i18n.t("Hi, my name is {{name}}.", { name: "Anne" }); // Hi, my name is Anne.
嵌套翻译
有时候我们需要在一个翻译条目内包含另一个翻译条目,此时可以使用嵌套翻译:
i18n.t("You have {{count}} unread messages.", { count: i18n.t("two") }); // You have 两封未读邮件.
指定默认文本
如果原始文本未能被翻译库翻译,或者该翻译库上未定义该原始文本,则可以使用 defaultText 参数来指定默认文本:
i18n.t("This text is not translated.", { defaultText: "This text is default." }); // This text is default.
动态更改语言
我们可以通过调用 i18n.changeLanguage() 方法来更改语言,如下所示:
i18n.changeLanguage("zh");
选择性地加载语言资源
如果你对一些语言资源感到不满意,那么你就可以使用 i18n.addResource() 方法来替换或添加特定语言的资源。
i18n.addResource("cn", "translation", { hello: "你好,世界!" });
定制格式化工具
I18n-yummy 支持使用自定义格式化工具,例如:
-- -------------------- ---- ------- ----------- - --------------- ---- ------- - -------- ---------- ----- - ------ --- ------- ------ ---------------------------- - -------- ------- ----- ---------- ------ ------- ---- --------- --- ---- ------ --- ------- ------ ---------------------------- - ----- ---------- ------ ---------- ---- --------- --- - ------ -------------- -
我们可以通过这种方式,不同的语言,使用不同地日志格式化。
总结
i18n-yummy 是一个轻量级和高度可定制的国际化库,能够帮助你轻松处理多语言应用程序。这篇文章介绍了 i18n 的基本使用和高级用法,包括加载语言资源、动态更改语言、自定义格式化工具等。
在使用 i18n 时,我们应该充分了解其使用方法和指南,以更好地使用 i18n 轻松处理多语言应用程序。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60065f87238a385564ab6cff