zoukankan      html  css  js  c++  java
  • 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在线收藏夹、博客,其实我还是喜欢单机和局域网游戏,而不喜欢网游。

  • 相关阅读:
    习题4.7利用vector实现数据复制
    习题4.18
    4.8编写一小段程序实现两vector是否相等的比较
    关于野指针
    学习c++的50条忠告
    c++头文件
    习题4.14
    容器和迭代器
    Android上C++对象的自动回收机制分析
    Windows下载Android源码
  • 原文地址:https://www.cnblogs.com/sink_cup/p/mediawiki_multilanguage_template_languages.html
Copyright © 2011-2022 走看看