【发布时间】:2018-11-13 15:29:51
【问题描述】:
我正在学习 MediaWiki 1.31.1 并希望更改默认界面字符串。例如,开箱即用的注册页面显示如下:
Email address (optional)
我想显示(删除可选)
Email address
我能够破解 MediaWiki 字符串文件 (/languages/i18n/en.json) 并在那里进行更改。有更好的方法吗?
【问题讨论】:
标签: mediawiki
我正在学习 MediaWiki 1.31.1 并希望更改默认界面字符串。例如,开箱即用的注册页面显示如下:
Email address (optional)
我想显示(删除可选)
Email address
我能够破解 MediaWiki 字符串文件 (/languages/i18n/en.json) 并在那里进行更改。有更好的方法吗?
【问题讨论】:
标签: mediawiki
如果您正在运行多语言 wiki,或者如果您的用户可能使用不同的界面语言(例如使用通用语言选择器扩展来自动使用访问者的首选语言时),那么您应该使用 MessageCache::get 挂钩,以便定制用于所有语言。否则用户使用不同的界面语言将看不到自定义。
它是这样使用的:
LocalSettings.php:
$wgHooks['MessageCache::get'][] = function ( &$key ) {
$keys = [ // The list of messages you want to customize
'prefs-help-realname',
'createacct-realname',
];
if ( in_array( $key, $keys, true ) ) {
$key = "myprefix-$key";
}
};
然后您需要编辑https://example.org/wiki/MediaWiki:myprefix-key(替换为您的wiki 域和key 为原始消息密钥(您可以使用uselang=qqx 找到)。
【讨论】:
将 uselang=qqx 附加到 URL 以查看消息名称而不是消息文本:https://en.wikipedia.org/wiki/Special:CreateAccount?uselang=qqx
如果你是configured email to be optional,你应该只看到(optional) 部分,所以我不确定消息文本是你真正的问题。
【讨论】:
也可以通过转到页面 MediaWiki:name-of-language-string 在您的 wiki 上进行编辑来编辑任何语言字符串。
【讨论】:
/index.php/En?我想这些字符串应该在一个资源文件中。
action-createtalk 语言字符串的页面。