Mediawiki扩展,不会读取我的i18n文件

时间:2014-03-07 06:32:11

标签: php mediawiki composer-php mediawiki-extensions

据我所知,创建国际化扩展所需的唯一步骤是创建如下的i18n文件:

//SemanticHighcharts.i18n.php
$messages = array();

$messages['en'] = array(
    'semantichighcharts-desc' => 'A SMW result format displaying data with the help of highcharts
);

然后使用全局变量wgExtensionMessageFiles

引用此文件
//SemanticHighcharts.php
global $wgExtensionMessagesFiles, $wgExtensionCredits;
$wgExtensionCredits['semantic'][] = array(
    'path' => __FILE__,
    'name' => 'SemanticHighcharts',
    'version' => '0.0.1',
    'url' => 'https://www.mediawiki.org/wiki/Extension:SemanticHighcharts',
    'descriptionmsg' => 'semantichighcharts-desc'
);

//i18n
$wgExtensionMessagesFiles['SemanticHighcharts'] = dirname(__FILE__) . '/SemanticHighcharts.i18n.php';

这应该导致wgExtensionCredits中的descriptionmsg在Special:Version上显示时被国际化。

然而事实并非如此......事实上,i18n文件中没有任何消息键被读取!

我该如何调试此问题?我在做一个wfMessage()调用时试图调试callstack而没有任何成功。

感谢任何帮助。我正在从git运行最新版本的mediawiki。并且所有扩展都已与作曲家一起安装。

//composer.json
{
    "require": {
        "php": ">=5.3.2",
        "mediawiki/side-bar-menu": "dev-master",
        "mediawiki/semantic-highcharts": "dev-master",
        "mediawiki/semantic-result-formats": "dev-master"
    },
    "suggest": {
        "ext-fileinfo": "*",
        "ext-mbstring": "*",
        "ext-wikidiff2": "*",
        "ext-apc": "*"
    },
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/netbrain/SemanticHighcharts"
        }
    ]
}

1 个答案:

答案 0 :(得分:0)

典型的,经过一段时间的努力解决这个问题。发布此问题后,我尝试从composer.json中删除所有其他扩展,并进行了作曲家更新。这神奇地解决了我的问题。

我怀疑可能存在冲突的扩展,或者可能是作曲家自动加载机制出现问题。

我试着进一步研究它。


似乎作曲家是罪魁祸首,在重新添加之前删除的扩展后,它仍然有用。所以我只能猜测作曲家依赖管理中有一些怪癖。