当前位置

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

James Qi 在 2013年1月4日 - 18:10 提交
内容摘要:去年在用Drupal 7搭建PostCodeBase系列各国邮编多语言网站的时候,遇到上百个国家子网站每个都需要设置50种语言网站名称的问题,开始还逐个设置,后来实在受不了,改用Drush命令来设置:......

  去年在用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"

drush --root=/usr/local/apache2/htdocs/drupal7.postcodebase.com --uri=http://bra.postcodebase.com variable-realm-set language az site_name "Brasil Codi Postal"

  事先将国家简称、语言简称、国家邮编翻译都排列好,就可以做成一个sh程序来批量设置。

  近期在准备将YouBianKu系列各国邮编也改为多语言时,却找不到Drupal 6中相应的drush命令,尝试了各种都不行,最后采取修改各个网站配置文件settings.php的办法来实现,程序片段如下:

$path=$_SERVER['REQUEST_URI'];
if (substr($path,0,3)=='/m/') {
  $path=substr($path,3);
}
$langcode=strtok($path,'/');

switch ($langcode) {
case "af":
  $site_name="Brasilië Poskode";
  break;
case "sq":
  $site_name="Brazil Kodin Postar";
  break;
......
case "cy":
 $site_name="Brasil Côd Post";
 break;
default:
 $site_name="Brazil Postal Code";
}

  可以看到,是通过对网址的判断辨别语言并设置相应的网站名称,这个办法其实Drupal 7也一样可以采用。