一种创建多语言静态网站的系统
A system for creating multilingual static websites
我有一个我正在开发的网站,我希望为其添加另外几个(正确翻译的)语言选项,但我找不到我认为可以制作多语言网站的尽可能多的易于访问的信息.
有很多关于如何构建 URL 架构的信息(最好是 .com/LANGUAGE),但是如果您有 http://www.example.com/en/, http://www.example.com/fr, and http://www.example.com/de — 那么对于静态站点, 如何避免手动复制代码只是为了插入每种语言的字符串?
我的网站有大约 8 个网页,每页平均 400 字的内容。没有足够的内容需要数据库。但是,该网站仍在开发中,我不想等到其开发周期的 'end'(它是一个信息工具)才为每种语言创建静态版本。我也不想在服务器端交换变量,因为我觉得这会大大降低 SEO 得分?
因此,在我没有太多关于该主题的信息的情况下,我设计了一个 system/program 在我开始之前,我希望获得一些关于可行性的反馈 - 或者如果存在替代方案 (?)。
- 我计划为每个 .html 文件创建 master 版本(
我实际为代码更改编辑的唯一文件)包含每个文本实例的唯一变量字符串
- 为每种语言创建 /language 目录,从 master
复制所有文件
- 创建一个 JSON 文件,其结构适当地包含每个变量的语言字符串
- 使用小型 C 程序,将每种语言解析为每种语言的 .html 文件的适当变量
...当我使用 .git 时,我还会通过将字符串与现有变量进行比较来仅复制需要进行的更改。 — 我可以比较文件的方法我还没有想通 — 正在考虑将每个字符串的变量存储为 .html 标记,以便它始终存在于文件中。
有人知道是否存在这样的工具,或者是否有更引人注目且符合 SEO 标准的方法来执行此操作?
提前致谢。
我发现可能正是我们想要的:Statirator
加上 Jekyll 的解决方案,感谢 the answer of smit1678。
Statirator(或 frozen-django)
- https://github.com/MeirKriheli/statirator
- https://statirator.readthedocs.org/en/latest/quickstart.html#installation
这可以看作是 frozen-django(frozen-flask 是一个流行的应用程序)。
在 pypi 上:
pip install statirator # you may need to create a virtual env beforehand
然后
statirator init mysite
它创建了一个框架项目。
statirator create_post
它创建一个第一个文件,分为与我们配置的语言一样多的部分
statirator generate
将生成静态站点。它使用 Django 配置,所以它就像 frozen-django。
不幸的是,它没有得到维护,我自己还不能让它工作……(要么我不能安装它,要么 statirator init
不存在)。
再次不幸 /r/python 根本没有引起多少兴趣。
与杰基尔
我找到了 good explanations to configure Jekyll as a multilingual site. Now came the examples: (quoting Natan)
- climatescope website. It uses a translation file 管理大部分 UI 元素,然后英语和西班牙语页面使用 _en 或 _es 进行组织。
- 我们还可以查看 https://github.com/tristen/multilingual. This is based on previous versions of Jekyll. Jekyll's new collections 功能更改的实现方式。
edit,2020 年:现在我会选择 Hugo(或同等级别)。 Hugo 更易于安装,功能更多,速度更快,主题更多,社区更大。
2015 年 12 月出现的一个很好的解决方案是 Lektor,一个“静态内容管理系统”。
它是一个带有内置管理员的静态网站生成器 UI(用于撰写帖子和配置)。它的“替代品”系统旨在本地化和翻译网站:https://www.getlektor.com/docs/content/alts/
pip install Lektor
lektor quickstart
这是一个完善的解决方案。顺便说一句,这是 Flask 的创造者。
我有一个我正在开发的网站,我希望为其添加另外几个(正确翻译的)语言选项,但我找不到我认为可以制作多语言网站的尽可能多的易于访问的信息.
有很多关于如何构建 URL 架构的信息(最好是 .com/LANGUAGE),但是如果您有 http://www.example.com/en/, http://www.example.com/fr, and http://www.example.com/de — 那么对于静态站点, 如何避免手动复制代码只是为了插入每种语言的字符串?
我的网站有大约 8 个网页,每页平均 400 字的内容。没有足够的内容需要数据库。但是,该网站仍在开发中,我不想等到其开发周期的 'end'(它是一个信息工具)才为每种语言创建静态版本。我也不想在服务器端交换变量,因为我觉得这会大大降低 SEO 得分?
因此,在我没有太多关于该主题的信息的情况下,我设计了一个 system/program 在我开始之前,我希望获得一些关于可行性的反馈 - 或者如果存在替代方案 (?)。
- 我计划为每个 .html 文件创建 master 版本( 我实际为代码更改编辑的唯一文件)包含每个文本实例的唯一变量字符串
- 为每种语言创建 /language 目录,从 master 复制所有文件
- 创建一个 JSON 文件,其结构适当地包含每个变量的语言字符串
- 使用小型 C 程序,将每种语言解析为每种语言的 .html 文件的适当变量
...当我使用 .git 时,我还会通过将字符串与现有变量进行比较来仅复制需要进行的更改。 — 我可以比较文件的方法我还没有想通 — 正在考虑将每个字符串的变量存储为 .html 标记,以便它始终存在于文件中。
有人知道是否存在这样的工具,或者是否有更引人注目且符合 SEO 标准的方法来执行此操作?
提前致谢。
我发现可能正是我们想要的:Statirator
加上 Jekyll 的解决方案,感谢 the answer of smit1678。
Statirator(或 frozen-django)
- https://github.com/MeirKriheli/statirator
- https://statirator.readthedocs.org/en/latest/quickstart.html#installation
这可以看作是 frozen-django(frozen-flask 是一个流行的应用程序)。
在 pypi 上:
pip install statirator # you may need to create a virtual env beforehand
然后
statirator init mysite
它创建了一个框架项目。
statirator create_post
它创建一个第一个文件,分为与我们配置的语言一样多的部分
statirator generate
将生成静态站点。它使用 Django 配置,所以它就像 frozen-django。
不幸的是,它没有得到维护,我自己还不能让它工作……(要么我不能安装它,要么 statirator init
不存在)。
再次不幸 /r/python 根本没有引起多少兴趣。
与杰基尔
我找到了 good explanations to configure Jekyll as a multilingual site. Now came the examples: (quoting Natan)
- climatescope website. It uses a translation file 管理大部分 UI 元素,然后英语和西班牙语页面使用 _en 或 _es 进行组织。
- 我们还可以查看 https://github.com/tristen/multilingual. This is based on previous versions of Jekyll. Jekyll's new collections 功能更改的实现方式。
edit,2020 年:现在我会选择 Hugo(或同等级别)。 Hugo 更易于安装,功能更多,速度更快,主题更多,社区更大。
2015 年 12 月出现的一个很好的解决方案是 Lektor,一个“静态内容管理系统”。
它是一个带有内置管理员的静态网站生成器 UI(用于撰写帖子和配置)。它的“替代品”系统旨在本地化和翻译网站:https://www.getlektor.com/docs/content/alts/
pip install Lektor
lektor quickstart
这是一个完善的解决方案。顺便说一句,这是 Flask 的创造者。