我正在建立一个静态网站,我希望以两种语言显示。
我找不到不同选项的全面概述(例如服务器端加载vs前端加载与使用不同文件夹。每个选项的优点是什么(例如SEO,可维护性,可扩展性等)?
理想情况下,翻译将存储在单独的json文件中。我关心的主要是翻译 - 更不用说i18n和l10n的其他方面了。
例如,我如何翻译:
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
</head>
<body>
<h1>Welcome</h1>
<p>Here's a website</p>
<p>Here's a <a href="https://www.google.com/">Link</a> to language specific Google</p>
<button>Click here</button>
</body>
</html>
到目前为止我遇到的许多选项中的一些:
我觉得i18next是最标准的方式,但它适合简单的网站吗?
如果您所做的只是文本翻译,我认为您根本不需要使用图书馆。您需要做的就是编写一个简单的函数,它可以在两个(或更多)json语言文件之间切换,并提供一种机制来显示所选json文件中的正确字符串。
对于任何环顾四周的人,我发现了这个Reddit thread的概述。我还将解释下面的选项。
1)前端JS(例如jquery.i18n)
2)多页
3)服务器端(例如node-i18n)
4)使用像npm脚本或gulp(例如static-i18n)的构建工具
最后,我选择了使用static-i18n的选项4。虽然它需要一些设置,但它适用于SEO,适用于静态站点,易于维护,可扩展,并避免前端动态语言加载的混乱。