-1

私の知る限り、国際化された拡張機能を作成するために必要な唯一の手順は、次のような 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() 呼び出しを実行するときにコールスタックをデバッグしようとしましたが、大きな成功はありませんでした。

どんな助けでも大歓迎です。git から mediawiki の最新バージョンを実行しています。また、すべての拡張機能は composer でインストールされています。

//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"
        }
    ]
}
4

1 に答える 1

0

かなり長い間この問題に苦しんだ後、典型的です。この質問を投稿した直後に、composer.json から他のすべての拡張機能を削除しようとし、composer の更新を行いました。私の問題を魔法のように修正しました。

拡張機能が競合している可能性があるか、コンポーザーの自動読み込みメカニズムに問題がある可能性があると思われます。

さらに調べてみます。


以前に削除された拡張機能を再度追加した後も、composer が原因だったようです。したがって、作曲家の依存関係管理には癖があるとしか思えません。

于 2014-03-07T06:38:00.830 に答える