制作简单的静态网站多语言有哪些选择?

问题描述 投票:0回答:2

我正在建立一个静态网站,我希望以两种语言显示。

我找不到不同选项的全面概述(例如服务器端加载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 - 最标准的选择。支持框架的负载,但不清楚哪个适合大多数基本用法。 i18nextifyjquery-i18next
  • i18js - 简单,但对于铁轨?
  • i18n - 在npm最受欢迎,但具有构建状态
  • i18n-2 - 上面的更新版本

我觉得i18next是最标准的方式,但它适合简单的网站吗?

html localization internationalization multilingual i18next
2个回答
0
投票

如果您所做的只是文本翻译,我认为您根本不需要使用图书馆。您需要做的就是编写一个简单的函数,它可以在两个(或更多)json语言文件之间切换,并提供一种机制来显示所选json文件中的正确字符串。


0
投票

对于任何环顾四周的人,我发现了这个Reddit thread的概述。我还将解释下面的选项。

To summarise the thread:

1)前端JS(例如jquery.i18n

  • 一般来说相当容易实现
  • 他们可以对SEO产生负面影响
  • 可以增加页面重量
  • 网站不适用于不运行JS的人
  • 不推荐,但对于非常小的项目可以

2)多页

  • 这是最容易设置的,但维护成为一场噩梦。不建议

3)服务器端(例如node-i18n

  • 因为它避免了上面提到的前端的缺点,所以通常建议大型项目使用

4)使用像npm脚本或gulp(例如static-i18n)的构建工具

  • 使用构建脚本为每种语言生成单独的目录
  • 初始设置,但易于维护和扩展
  • 由于只生成静态html页面,因此可以将html代码安全地嵌入到翻译json文件中。

Solution

最后,我选择了使用static-i18n的选项4。虽然它需要一些设置,但它适用于SEO,适用于静态站点,易于维护,可扩展,并避免前端动态语言加载的混乱。

© www.soinside.com 2019 - 2024. All rights reserved.