MediaWiki 设置:多语言文字方案

方案1:1个wiki、1个数据库、多语言文字内链导航

效果:在文章内显示多语言文字导航,截图如下。

wiki首页:http://localhost/wiki/docs/index.php/

英文文章地址: http://localhost/wiki/docs/index.php/Hello

汉字文章地址: http://localhost/wiki/docs/index.php/Hello/zh

缺点:uri受限制,必须是Hello、Hello/zh的格式。扩展安装步骤比较繁琐。推荐使用方案3。

todo:界面随着文章内容变化,比如Hello的界面是英文的,Hello/zh的界面是汉字的。需要自己修改一下mediawiki的代码。

参考: http://www.art122-5.net/index.php/MediaWiki_Multi-language

安装步骤:

安装mediawiki,安装时语言文字选择en。

下载Expr.php和ParserFunctions.php这2个php文件,放到extensions/ParserFunctions/目录中。

下载地址:http://www.mediawiki.org/wiki/Extension:ParserFunctions_%28extended%29

修改LocalSettings.php,加入一行require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php");

然后在wiki中搜索Hello,新建一个Hello页面,内容如下:

{{Languages|Hello}}
Hello World!

然后点击进入Template:Languages页面,复制此页的内容 http://www.mediawiki.org/w/index.php?title=Template:Languages&action=edit

然后编辑Template:Nmbox,复制 http://www.mediawiki.org/w/index.php?title=Template:Nmbox&action=edit

编辑Template:Documentation,复制 http://www.mediawiki.org/w/index.php?title=Template:Documentation&action=edit

编辑Template:Documentation/core2,复制 http://www.mediawiki.org/w/index.php?title=Template:Documentation/core2&action=edit

编辑Template:Documentation/core,复制 http://www.mediawiki.org/w/index.php?title=Template:Documentation/core&action=edit

编辑Template:Languages/Title,复制 http://www.mediawiki.org/w/index.php?title=Template:Languages/Title&action=edit

编辑Project:Language_policy,复制 http://www.mediawiki.org/w/index.php?title=Project:Language_policy&action=edit

新建Hello/zh页面,内容如下:

{{Languages|Hello}}
你好

方案2:多个wiki、多个数据库、多语言文字外链导航

效果:在左侧边栏下面出现多语言文字的外链导航,截图如下。

英文版wiki首页:http://localhost/wiki/en/index.php/

汉字版wiki首页:http://localhost/wiki/zh/index.php/

英文文章地址:http://localhost/wiki/en/index.php/Hello

汉字文章地址: http://localhost/wiki/zh/index.php/你好

优点:uri可任意,可以使用“Hello”、“你好”的格式。界面跟着uri变化,英文的文章界面也是英文的。

参考:http://www.mediawiki.org/wiki/Manual:Interwiki

安装步骤:

每种语言文字独立安装1套wiki、1套数据库。

比如安装了en和zh版的。

en版:http://localhost/wiki/en/

zh版:http://localhost/wiki/zh/

登录到en版的数据库中,在interwiki表中加入zh版的链接。命令如下:

mysql -uwiki_en -p1 wiki_en
mysql> INSERT INTO `interwiki` VALUES('zh','http://localhost/wiki/zh/$1',0,0);

然后在en版中建立Hello页面,内容如下:

[[zh:你好]]
Hello

方案3:1个wiki、1个数据库、多语言文字内链导航

效果:在左侧边栏下面出现多语言文字的内链导航,截图如下。

wiki首页:http://localhost/wiki/test/index.php/

英文文章:http://localhost/wiki/test/index.php/Hello

汉字文章:http://localhost/wiki/test/index.php/你好

优点:不用安装扩展,不用安装多个wiki,融合了方案1和方案2的优点。uri可任意,可以使用“Hello”和“你好”,也可以使用“Hello”和“Hello/zh”。

todo:界面随着文章内容变化,比如Hello的界面是英文的,Hello/zh的界面是汉字的。需要自己修改一下mediawiki的代码。

步骤:

mysql -uwiki_test -p1 wiki_test
mysql> INSERT INTO `interwiki` VALUES('zh','./$1',0,0);
mysql> INSERT INTO `interwiki` VALUES('en','./$1',0,0);

然后建立“Hello”页面,内容如下:

[[zh:你好]]
Hello World.

然后建立“你好”页面,内容如下:

[[en:Hello]]
你好,世界。

MediaWiki支持HTML语言

修改LocalSettings.php,加入一行:

$wgRawHtml = true;

MediaWiki安装后切换英文版为汉字版

修改LocalSettings.php:

$wgLanguageCode = "zh";

MediaWiki URI rewrite

vi LocalSettings.php
$wgArticlePath      = "${wgScriptPath}/$1";
sudo vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
  RewriteEngine On
  RewriteRule ^/wiki/test/(images|skins)/ - [L] # so skins and images work
  RewriteRule ^/wiki/test/(.+)$ /wiki/test/index.php?title=$1 [PT,L,QSA]

MediaWiki禁止匿名编辑

vi LocalSettings.php
$wgGroupPermissions['*']['edit']   = false;

参考资料:

http://www.art122-5.net/index.php/MediaWiki_multi-Language_management_with_the_extension_MultiLanguageManager

PS:1年前就折腾过mediawiki多语言文字,用文件记录下来丢了,这次公司需要用wiki,又折腾了半天。看来还是记录到博客里比较靠谱,还能给需要的人带来一些参考价值。看来我也开始相信云了,虽然我一直用着google bookmarks在线收藏夹、博客,其实我还是喜欢单机和局域网游戏,而不喜欢网游。

posted @ 2011-05-26 13:53  sink_cup  阅读(4379)  评论(2编辑  收藏
Creative Commons License

本站原创作品采用知识共享署名 3.0许可协议进行许可。