如何本地化静态网站?

时间:2009-09-19 21:06:49

标签: localization web static

对于我正在做的网站,我只使用静态内容,如HTML,javascript,CSS,图片(没有PHP或服务器端语言)。

我希望能够用英语和法语进行本地化,但我不确定什么是一个好的解决方案。 以下是我到目前为止所考虑的解决方案:

重复的HTML网页
优点:简单,SEO友好
缺点:如果我决定改变任何事情会很痛苦,我总是要做两次

Dreamweaver模板
优点:SEO友好,更新友好
缺点:添加区域的地方很多,它会使HTML大小加倍,代码混乱

JST:javascript模板
优点:更新友好,代码友好
缺点:SEO?,不是为此做的?

当前列表中的任何其他想法或进一步的建议?

3 个答案:

答案 0 :(得分:1)

混合解决方案可能适合您:

  • 开发主要的HTML内容,所有内容都带有ID的DIV,英文版(至少对于英文的SEO友好)。
  • 在页面上创建链接以切换到另一种语言
  • 当用户点击链接时,不是加载更多静态文件,而是运行一些加载静态JSON数组ID和翻译语言的JavaScript,循环遍历数组并替换DIV的InnerHTML。
  • 作为奖励,让该代码也更改页面上的所有内部链接,以便为所有链接添加#language-en或其他内容。然后,当您的页面加载时,让Javascript检查URL中的语言参数并自动加载首选语言。

使用JQuery处理所有乱码ID选择和AJAX调用以加载语言文件。

如果需要替换图像,可以通过三列来使JSON数据更加健壮:元素ID,属性名称(切换“src”或“InnerHTML”或其他)和内容(对于图像而言) ,将是本地化的src,对于DIV,替换文本)。

答案 1 :(得分:1)

使用一点点PHP来复制你身边的页面。将PHP页面视为PHP文件,本地化PHP文件,然后使用Web服务器将PHP编译为静态网页(使用file_get_contents)。只需将HTML编译到语言目录中,并将英语作为默认根目录。即使您的生产服务器没有PHP,您也可以通过使用PHP来节省一些时间。

答案 2 :(得分:1)

我一直是第一个选项(重复的HTML文件)的粉丝,因为它往往是最简单和最友好的SEO,而不需要使用任何JavaScript,但必须将您的修改复制到几个文件可以真烦人我的工作是使用静态站点生成器。创建布局并使用从本地化文件检索的文本填充它们可以消除此问题。这里有几个不同的选项可以解决这个问题。

Jekyll (with the multiple languages plugin)

Jekyll可能是第一个想到静态网站生成器时想到的东西,因为它是迄今为止最受欢迎的。使用多语言插件,您可以使用博客框架构建多语言网站。

优点:这是杰基尔,所以你可能会找到相当多的支持。

缺点:Jekyll是一个博客框架,如果你没有建立一个博客,它可能不是最好的选择。

Nikola

我最近在Google上挖掘它之前并不知道这个,但它可能很有希望支持开箱即用的本地化网站。

优点:积极开发,支持近40种语言,无需任何插件。它还有许多其他有用的功能,如增量重建,多种格式,友好的CLI和内容管理系统。

缺点:没有Jekyll那么多的支持,也可能不适合你的建设。

Hugo

Hugo也可用于构建多语言网站。

优点:Hugo也是一款非常受欢迎的静态网站生成器,所以你也可以期待很多支持。但是,与Jekyll不同,您可以使用Hugo构建多语言网站,而无需使用任何插件。

缺点:与尼古拉不同,雨果并没有考虑本地化。实现它更像是配置文件中使用的技巧。

Ampersand

尽管我不喜欢自我推销,但我一直在研究静态网站生成器,主要关注的是静态构建多语言网站。我认为如果您选择使用它,它可能会对您的问题有所帮助。

优点:从头开始构建本地化。 Ampersand不是一个博客框架,所以几乎可以在任何Web开发项目中使用它,而无需大量的改编和追逐模板文件。

缺点:在开发的早期阶段,往往会出现向后兼容的更新。

如果有人知道另一个静态网站生成器可用于构建我上面没有提到的多语言网站,我建议你在评论中注明。