【问题标题】:How to efficiently translate website content with php, keeping it SEO friendly?如何使用 php 有效地翻译网站内容,保持 SEO 友好?
【发布时间】:2012-12-25 01:35:23
【问题描述】:

这是场景:

我有一个网站,我会翻译并最终在上面应用一个好的 SEO。 哪种方法最适合翻译内容(菜单链接、大约 10 篇文章、alt 标签、标题标签、meta 标签、html lang 等),同时被 Google、Bing、Yandex 和其他搜索引擎轻松索引?

我的第一个想法是使用一个翻译 php 函数,该函数由我自己制作的数组组成(我已经有了它的原型),它获取内容并以用户的语言显示。

这是正确的道路吗?这里的问题是我想确保有一个动态系统,让我将来可以添加一种新语言。

也许 MySql 是正确的选择?

该网站不使用cms,我自己用php制作的,但如果需要,我可以依赖MySql。

提前谢谢你:)

【问题讨论】:

    标签: php seo translate


    【解决方案1】:

    您基本上有 3 种选择,每种选择各有利弊:

    1: 正如 Dainis Abols 建议的那样,将其放入数据库中 - 取决于您的服务器的设置方式,这可能是最慢、最繁重的系统路线(虽然这都是相对的,但不太可能除非您每小时获得数百万次观看,否则会有所不同)。

    2:使用PHP库文件;我倾向于将库文件用于字段标签(名字、姓氏等)等小型单个项目,并将 CMS 管理的 HTML 等较大的内容存储在数据库中……这减少了数据库调用,但为您加载的每个字典增加了一点开销进入脚本<?php $this->page->dictionary->product = Dictionary::load("product"); ?> 之类的东西。

    3: 最后,我个人认为值得看看 PHP 的 gettext 实现,尽管您需要像 poedit 这样的东西来维护 PO(压缩翻译文件)。这使您能够非常快速地维护翻译,因为您只需将文本包装在一个简单的下划线函数中,即可在 PHP 文档中输入文本:

    例如<?= _("Hello World"); ?>

    然后,您可以在压缩的 PO 文件中维护翻译 - 它非常高效(可能比使用原生 PHP 文件更快)但是在自然语言的细微差别方面确实存在一些缺点。

    例如,如果您有一个字段标签“标题”<?= _("Title"); ?>,那么_("Title") 的所有实例都将以相同的方式翻译。

    这意味着您不能将“书名”既用作人名的表单标签又用作书名;例如,在德语中,您可能希望将 Anrede 用于一个“标题”,而将 Titel 用于另一个。

    虽然,要真正使用 gettext,您可能需要运行自己的服务器 - 更改 PO 文件时可能需要重新启动 Apache:\

    至于 搜索引擎 他们从您的代码中读取输出,因此您使用哪种方法执行翻译并没有太大的区别,但理想情况下您可能希望保持 URL RESTful因此,无论您是包含 PHP 字典、调用数据库还是使用 gettext(或者稍后将您的想法从一种更改为另一种),您都可以使用 http://www.mysite.com/en_gb/widgets 之类的方式将语言映射到 URL,这样您就可以更改 如何程序在不更改 URL 的情况下工作。

    【讨论】:

      【解决方案2】:

      将所有文本存储在一个数据库中,并为语言应用另一个字段:

      +----+---------+---------+
      | id | text_en | text_de |
      +----+---------+---------+
      |  1 | English | Deutch  |
      +----+---------+---------+
      

      现在,当用户切换语言时,只需使用该语言的字段:

      $lang = 'en';
      $query = "SELECT text_".$lang." FROM texts WHERE id = 1";
      

      类似的东西。因此,您所有的客户端文本都将始终存储在数据库中。所以你的输出会是这样的:

      <div id="header"><?=get_db_text_for_id(1)?></div>
      

      当然,您需要预防措施和更多字段,但这是大体思路。

      【讨论】:

      • 谢谢,最后我用了你的方法:)
      猜你喜欢
      • 2015-11-19
      • 2014-11-24
      • 2011-04-06
      • 1970-01-01
      • 2011-02-15
      • 2017-09-18
      • 1970-01-01
      • 1970-01-01
      • 2012-09-21
      相关资源
      最近更新 更多