drupal 7 多语言

drupal 7上面多语言的支持暂时很弱,比如i18n还没有drupal 7的版本。尝试了几个插件,除了一个language switcher 基本能够满足要求外,其它都不行。

要求:在中文的域名下只显示$node->language为中文或者是所有语言的内容,英文也类似。这一点language switcher可以实现但是却直接把中文文章的英文链接给去除掉了。

无奈,自己写吧。

在特定语种页面只输出特定的node,修改node.tpl.php:

<?php global  $language;?>

<?php echo ‘ ’; //输出一个空格?>
<?php if($node->language == $language->language || $node->language==’und’){?>
//node.tpl.php的内容

<?php } else{}?>

等待I18n中……

《drupal 7 多语言》上有4条评论

  1. 博主,你好!现在i8n的7.x版本已经推出来了。但我一直没能试验成功界面和内容同时多语种化功能。启用相关模块、添加了语言、设置了语言决定模式(用户profile>浏览器检测,url prefix等没设定)、翻译了内容,结果发现首页上还是一股脑儿把所有语言版本的内容同时显示出来,即使点了language swither链接都没用,除非是点击每个node右下方的语言选择链接,但这样又只能看到当前的这个node的内容了。

    不知道你有没有什么解决方法。

    我用过Joomla!fish在Joomla中就实现了这种界面和内容同时多语种的功能。

      1. 首先赞一下你的网站做的真不错!典型的企业网站的样子。

        我的意思是:
        1、匿名用户访问网站时,drupal网站呈现与客户浏览器界面同语种的界面和内容;
        2、登入用户则呈现其个人偏好中设定的语言;
        3、drupal网站中未安装用户浏览器的语种或登入用户设定的偏好语种时,则现实drupal中设定的默认语言及内容;
        4、只需要一个总的语言切换下拉框或链接,每个有多语种的node不要在其右下角现实语言切换链接。

        你的网站是有默认语言的,我用中文浏览器直接访问不带语言前缀的域名时得到的是英语,就是不能做到browser detection。还有就是无法删除每个translated nodes右下方那的语种切换链接。

        对了,你网站中的产品演示的图片列表界面中,一旦鼠标hover到图片上时,自动在图片上显示其文字说明,这个用的是什么module?

        多谢了!

        1. 1、2、3尝试一下用hook_init在加载时自己判断吧。 我在做那个网站时i18n d7版本还在dev,所以用了内置的多语言, 类似于:http://cn.810081.com/food-equipment 这类英文产品只是自己写模块用hook_init做 drupal_goto重定向到英文的二级域名。drupal很多模块是强大很省事,但是各别需要个性化定制还是要自己写的。
          4、默认域名这个我也找到并试用过几个模块,并没有达到效果。比较好的解决方式还是用Hook_init在node加载前做判断, 因为老虑到优化的效果,所以我这边并没有对默认域名做语言识别。而自己也懒一直没有做一个桥页,所以干脆到现在没管他。
          ***另外匿名浏览的话你只有在缓存关掉的情况下才可以根据浏览器判断语言,意味着牺牲性能。
          5:那个是自己用js写在主题内的,就是鼠标移入移出用jquery做效果了。
          详见:http://cn.810081.com/sites/all/themes/danland/danruo/danruo.js

发表评论

电子邮件地址不会被公开。 必填项已用*标注