当前位置


多语言

网站根据访问者浏览器设置跳转到合适的多语言版本

James Qi 在 2016年10月11日 - 12:05 提交

  我们做过不少多语言网站,为世界各地各种语言用户提供服务,一般每个页面都有语言切换的选择,让用户自行选择。不过用户进入网站的时候都是看到默认语言(多为English)界面,如果是非英语用户感觉会差一些,甚至找不到语言切换的地方。

  而一些大的知名网站很多都是自动判断用户语言属性、来源国家,跳转到相应的语言版本或者地区版本,这样让用户更方便、体验更好。于是我们也在网上找了一些资料,实现了根据访问者浏览器设置来跳转到合适的多语言版本。一般是首页进行跳转,如果是用户直接访问内页就没有做跳转。

  这个站首先已经用子域名的方式设置了多语言版本,例如:

自由标签:

多语言网站xml sitemap中网址的相互链接

James Qi 在 2016年2月19日 - 10:10 提交

  2013年8月份写了一篇博文《Drupal网站多语言版的站点地图自动转换》,是修改xmlsitemap.page.inc程序来实现多种语言网站的sitemap,这是多种语言网站提供对应的多种sitemap,博文中提到Google推荐的另外一种办法《通过站点地图指明备选语言网页》(英文版Use a sitemap to indicate alternate language pages, 

Drupal网站添加多语言时无法翻译的问题

James Qi 在 2013年12月12日 - 10:46 提交

  最近同事在为以前Drupal 6做的网站扩展多语言时发现一个问题,Drupal Core的内容找不到翻译,例如‹ previous      next ›以及菜单项都没有翻译,经查是翻译更新列表(admin/build/translate/update)中本来应该是Drupal 6.28的版本不知道为什么错误识别为6.29了,因此找不到翻译信息。

  这个识别错了版本的原因还没有找到(我估计是l10n模块把提示需要进行完全更新到的6.29的版本错误当成当前版本了),但可以手工在Drupal数据库中修改版本号:

多语言网站之间用rel="alternate" hreflang="x"链接起来

James Qi 在 2013年8月15日 - 16:06 提交

  我们用Drupal做过桌面版网站、手机版网站,中文版网站、英文版网站、更多语言版本网站,这些站之间除了页面看得见的互相链接以外,还可以而且应该在源代码中进行链接,以便让搜索引擎更了解页面之间的关系。

  请看Google的推荐:

  手机版链接我们以前添加过,现在也来添加多语言版本,Drupal 7中可以修改html.tpl.php来实现,Drupal 6可以通过修改page.tpl.php来实现。

  Drupal 7的代码例子如下:

Drupal网站多语言版的站点地图自动转换

James Qi 在 2013年8月15日 - 11:45 提交

  多语言Drupal网站的站点地图有一个名为xmlsitemap_i18n (XML sitemap internationalization)的插件,安装后就可以用为网站添加、生成各种语言相应的xmlsitemap,这个功能很强,特别是对于各种语言版本有不同的网址、不同的内容、不同的页面数量的复杂情况,都可以适用。

  但我们在实际使用中,因为网站的数据量大(页面数达到几十万甚至上百万)、语言多(50种语言)、子网站多(一个系列可能有几十甚至几百个子网站),生成站点地图需要很长时间,而我们网站的多语言没有页面数量不同的情况,每个页面的每种语言都有一一对应的页面,生成的站点地图其实只有网址中语言代码部分的不同。

多语言的中国邮政编码系列子网站添加手机版

James Qi 在 2013年3月25日 - 15:05 提交

  2011年初改用Drupal建站一个原因就是看中了对多语言的支持,2011年9月做了“多语言的中国邮政编码系列子网站”。

  但当时对多语言的认识并不是很充分,只是单个网站用某一种语言,不了解同一套数据库做多种语言,所以当时做的多语言的中国邮政编码系列子网站是单独的10个站点,170万数据也导入了10次,进行“多语言的中国邮政编码系列子网站扩充”花了几个月时间,汗!

Drupal多语言网站中MySQL数据库locales_source表过大的问题

James Qi 在 2013年3月8日 - 14:04 提交

  在《Drupal的MySQL过度膨胀,清理缓存、翻译表》这篇2012年8月的博文中,提到有些非英文网站的locales_source表不断变大的问题,当时在网上找了一些资料,临时先用删除表中某些特征的数据来解决,半年后再次逐步变大导致网站访问困难,又编写了一个自动删除表中记录的脚本来解决,但始终是治标不治本。

  这些天在对其它网站进行多语言扩充的时候,发现有些网站也有类似问题,都是locales_source中包含大量不需要进行翻译的内容,再次查找资料并逐步调试,终于是找到问题的根源并可以解决了,有两种情况:

开启了Pathauto模块的Drupal多语言网站访问极慢的问题

James Qi 在 2013年3月6日 - 16:39 提交

  各国邮编的系列网站是用Drupal 6搭建的,当初都开启了Pathauto, Boost等模块,使用起来也都还正常,后来将一部分网站进行了50种多语言和手机版的扩充,访问速度就感觉要慢一些,最近一两个月来扩充得越多就感觉网站访问越慢,而且后来取消了Boost缓存(因为没有那么大的硬盘来缓存100倍的文件,即使可以放得下,文件数量太多访问也慢)后感觉更慢了一些。

  这个问题先在google webmaster tools中有所发现,但直到最近操作越来越慢才引起重视,监控软件的报错也开始频繁,昨天再一查监控软件的记录,这个系列的子网站打开首页都需要20秒以上,基本上没有办法正常使用了,必须尽快解决、马上解决。

  昨天就开始找办法,先以为是Views引起的,对一些MySQL字段添加索引后依然没有解决,再安装Devel仔细排查SQL语句,发现有过多的drupal_lookup_path,一个首页就达到100多条在url_alias表中查找路径的语句,网上资料有人说遇到类似问题,主要有两种解决办法:

Drupal多语言网站Site Name的批量设置

James Qi 在 2013年1月4日 - 18:10 提交

  去年在用Drupal 7搭建PostCodeBase系列各国邮编多语言网站的时候,遇到上百个国家子网站每个都需要设置50种语言网站名称的问题,开始还逐个设置,后来实在受不了,改用Drush命令来设置:

 

drush --root=/usr/local/apache2/htdocs/drupal7.postcodebase.com --uri=http://bra.postcodebase.com variable-realm-set language af site_name "Brasilië Poskode"

drush --root=/usr/local/apache2/htdocs/drupal7.postcodebase.com --uri=http://bra.postcodebase.com variable-realm-set language sq site_name "Brazil Kodin Postar"

页面

订阅 RSS - 多语言