什么是 Keystone-i18n?
Keystone-i18n是一个用于处理网站国际化的Node.js模块。它支持多语言翻译,允许您轻松地将您的网站拓展到多个语言市场。Keystone-i18n还可以帮助您自动化翻译流程。
安装 Keystone-i18n
要使用Keystone-i18n获得国际化支持,您需要在您的Node.js项目中先安装它。在命令行中输入以下命令:
npm install keystone-i18n
安装过程可能需要一些时间,取决于您的网络速度。如果您想更新安装版本,运行以下命令:
npm update keystone-i18n
配置 Keystone-i18n
在您的Node.js项目中,首先要做的是设置Keystone-i18n的配置文件。在您的根目录中创建一个名为i18n.config.js的文件,并添加以下内容:
-- -------------------- ---- ------- -------------- - - -------- ------ ----- ----- ------ ---------- ---------- ------------------- ----------------------- ----------------------- ------------------------------------------- ------ ----- -------- ------ -------------- ----- --------------- ----------- --------------- - -------- ------- ------- --- -- ---------------- ----------- ---------------- - ------- ----- -------- ---- -- -------------- --------- -------------- - -------- ------ ------ ----- - --
在这个示例配置中,我设置了默认语言为英语。如果您的网站需要其他语言,您可以将locales设置为包含所有可用语言的数组。
inputPath和outputMessagesPath指定i18n应该查找哪个目录中的源文件和哪个文件名存储提取的消息。
msgmergeCommand和msgfmtCommand指定用于更新和编译消息的命令。这些命令的执行方式与Unix上msgmerge和msgfmt命令的执行方式相同。
{ "name": "myapp", "dependencies": { "keystone-i18n": "^1.2.0" } }
接下来,您需要创建locales子目录,并在其中创建每种语言的子目录,如en、fr、es和de。
在每个语言目录中,创建名为messages.po的文件,并添加以下内容:
-- -------------------- ---- ------- ----- -- ------ -- -------------------- ----- -------- ---------------------- ------------------- ------------------- ---------- ------------- ------------------ ---------- ------------- ----------------- ---- ---- ------------------ --------------- -------- ------------ -------------- ------ -------------- ----------- ---------------- --------------------------- ------- -------------- ----------- -------- -- ----- ----- ------- ------- ------ --
在这个示例配置中,我填入了msgid“Hello,world!”,这将是您要翻译的标语之一。
使用 Keystone-i18n
使用Keystone-i18n非常简单。首先,在您的Node.js项目中配置Keystone,并启用i18n中间件:
-- -------------------- ---- ------- ----- -------- - -------------------- ----- ------------ - ------------------------- --------------- ------- ----------- -------- ------------------ ----- -------- ----- --- ------------------------------------ ------ ----- ----------------- --------- - ----------- -------------- ---- ----
在这个示例配置中,我设置了Keystone对象的名称,Pug作为视图引擎,并启用了i18n中间件。
接下来,在您的Pug模板中使用_t标记来标识可翻译的字符串。
h1= _t('Hello, world!')
使用_t标记声明了一个可以被翻译的字符串。
最后,运行以下命令:
npm run translations:extract
此命令将从文件中提取使用_t标记的所有可翻译字符串,并将它们存储在locales/messages.pot文件中。接下来,在每种语言的消息PO文件中翻译您的消息:
msgid "Hello, world!" msgstr "Bonjour, le monde !"
完成翻译后,运行以下命令:
npm run translations:compile
此命令将编译所有翻译描述的消息。接下来,您可以在您的网站上预览已经翻译的网站。
总结
作为一个前端开发者,您需要能够支持多语言的网站。Keystone-i18n为您提供了一个简单的方式来处理国际化问题。如果您遵循本文中提到的步骤,您可以轻松地为您的Node.js项目添加国际化支持。
示例代码见GitHub:https://gist.github.com/anonymous/fc7003370837dabb1e42a03aeebbc53e
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005564881e8991b448d328a