Extension:Babel(巴别)
发行状态: 稳定版 |
|
|---|---|
![]() |
|
| 实现 | 解析器函数 |
| 描述 | |
| 作者 | Robert Leverington (RobertL留言) |
| 最新版本 | 持续更新 |
| 兼容性政策 | master分支维持向后兼容。 |
| MediaWiki | >= 1.43.0 |
| 数据库更改 | 是 |
| Composer | mediawiki/babel |
| 表 | babel |
| 许可协议 | GNU通用公眾授權條款2.0或更新版本 |
| 下載 | 包含在语言扩展包中 |
| 示例 | Translatewiki.net |
|
|
| 前往translatewiki.net翻譯Babel扩展 | |
| 問題 | 开启的任务 · 报告错误 |
Babel扩展定義一個解析器函数,也就是#babel,使用者可以將這些語言放在他們的使用者頁面上,以顯示他們對不同語言的精通程度。
這些資訊可以透過分類儲存,讓其他人可以找到說任何特定語言的使用者。
這個擴充功能是為了取代之前完全依賴模板的系統,也稱為"Babel"(意指巴別塔)。這個想法起源於維基共享資源,然後傳播到其他維基媒體專案,後來在許多其他維基上實現。
Babel擴充功能仍會使用模板:如果指定了未識別的語言參數,擴充功能會查看是否有該名稱的現有模板,如果有,則包含該模板。
安装
- 下载文件,并解压
Babel文件夹到extensions/目录中。
开发者和代码贡献人员应改从Git安装此扩展,输入:cd extensions/ git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Babel
- 請新增下列代码到您的LocalSettings.php文件的底部:
wfLoadExtension( 'Babel' );
- 請运行更新脚本,它将自动创建此扩展所必须的数据库表。
- 按需求配置。
完成 – 請导航至您的wiki上的Special:Version,以验证此扩展已成功安装。
- CSS位于文件
resources/ext.babel.less中。可以通过在MediaWiki:Common.css页中重写样式,將它们改变成你想要的。 - 如果找到了CLDR扩展,语言名称将取自该扩展(在翻译不可用的情况下),否则将使用内置的MediaWiki语言名称和英语默认值。
用法
#babel解析器函数的语法如下:
{{#babel: 巴別代碼1 | 巴別代碼2 | ... }}
为您所说或理解的每种语言添加以下代码之一,以|分隔,其中xx是该语言的MediaWiki语言代码、ISO 639-1或ISO 639-3代码。 每个代码级别的一般用法如下:
xx-0:如果您对此种语言一窍不通。xx-1:初级水平——您对此种语言的文章或簡單会话略懂一二。xx-2:中等水平——足以进行编辑或讨论。xx-3:高等水平——尽管你可以毫无问题地用这种语言写作,但仍難免有些小錯。xx-4:近母语水平——虽然此种语言不是你的母语,但你基本可以达到母语者的水平。xx或xx-N:您是这种语言的母语用户,您天生就可以使用该语言的俗话和/或俚语。xx-5:专业水平。
要包含任何其他的模板,請添加该模板的名称,例如,如果要包含Template:User CSS,请User CSS。
根据本地配置,可以将前缀或后缀添加到模板名称(例如,在開頭的User)中。
这可用于限制选择和缩短参数的长度;例如,CSS可以包括Template:User CSS,如果是以这种方式配置的话。
例如,在CSS (層疊式樣式表)的例子中,它可能會與 南方奧隆語的ISO代碼相衝突。
在這種情況下,若要強制使用本機模板,只需在參數前加上底線(_),例如:… html-3|_css-2|js-1 …。
参数
要删除页眉和页脚,请使用plain=1作为第一个参数,例如{{#babel: plain=1 | 巴別代碼1 | 巴別代碼2 | ... }}。
这就能使Babel更方便地将其与其他用户框配合使用。
若要隱藏類別,請使用nocat=1參數作為第一個參數,例如:{{#babel: nocat=1 | 巴別代碼1 | 巴別代碼2 | ... }}。
请注意,上述参数只允许使用一个。
目前,無法同時使用兩個參數;例如,{{#babel: nocat=1 | plain=1 | 巴別代碼1 | 巴別代碼2 | ... }}將無法使用。
分類
如果啟用了分類功能,擴充功能會使用自動建立Babel機器人以MediaWiki:babel-autocreate-text-levels和MediaWiki:babel-autocreate-text-main中指定的文字建立類別。 在基本設定下,機器人建立的類別不會被分類,要修正這一點,建議執行以下動作:
- 建立可產生類別的模板{{Babel category}}。
- 將MediaWiki:babel-autocreate-text-levels上的文字取代為
{{Babel category|level=$1|language=$2|ISO=$3}}
- 將MediaWiki:babel-autocreate-text-main上的文字取代為
{{Babel category|language=$1|ISO=$2}}
這將可讓您自動分類,如果發生任何事情,您可以同時更換所有類別中的分類和文字。
配置
配置参数
语文有六个可以在LocalSettings.php中修改的配置参数。
$wgBabelLanguageCodesCdb- (字符串)语言代码数据库文件的路径,默认值应该足够了。
$wgBabelLanguageNamesCdb- (字符串)语言代码数据库文件的路径,默认值应该足够了。
$wgBabelCategoryNames- (字符串或布尔数组,以字符串"1"、"2"、... "5"、"N "为索引),其中每个条目是其索引所表示的技能水平的类别名称,可能的变量元素是:
%code%(语言代码),%wikiname%(维基内容语言中的语言名称),%nativename%(其语言中的语言名称)。要禁止为某一级别添加类别,请将相应的值设置为false。
- 例如:
$wgBabelCategoryNames = [
'0' => 'User %code%-0',
'1' => 'User %code%-1',
'2' => 'User %code%-2',
'3' => 'User %code%-3',
'4' => 'User %code%-4',
'5' => 'User %code%-5',
'N' => 'User %code%-N',
];
- 将使用"Category:User en-0"和"Category:User fr-N"等分类。默认值是"Category:Fr-N",依此类推。
$wgBabelMainCategory- (字符串)每种语言的主要(非级别)分类的名称,该语言的所有用户都被添加到该分类中。设置为false表示禁用;默认格式为 "Category:Fr"。它接受的格式与上面的
$wgBabelCategoryNames相同。例如:$wgBabelMainCategory = 'User %code%';
$wgBabelDefaultLevel- (字符串)当没有指定任何的能力之时,使用的默认能力级别,应该是一个从
$wgBabelCategoryNames开始的索引,是"1","2", ... "5","N"中的一个字符串。默认为"N"。 $wgBabelUseUserLanguage- (布尔值)是否使用用户界面语言来表达页眉和页脚信息。如果是false(默认),将使用页面内容语言。这是因为使用用户界面语言可能会使解析器缓存碎片化。
$wgBabelCategorizeNamespaces- 只对其添加自动分类的命名空间数组。 例如,如果配置
$wgBabelCategorizeNamespaces = [ NS_USER ];,那么 Babel 将只向用户命名空间中的页面添加分类。 默认为null,这意味着对所有命名空间进行分类。 $wgBabelCategoryOverride- 是否允许在wiki上用MediaWiki:Babel-category-override覆盖Babel类别
$wgBabelAutoCreate- 是否自动创建分类页。
系统消息
还可以使用MediaWiki命名空间自定义一些系统消息。
- MediaWiki:babel-template "
Template:User $1" - 当包含一个模板时,模板名称的格式。
- MediaWiki:babel-portal "
" - 来自语言代码的链接目标的格式。 设置为空字符串以不链接语言代码。
- MediaWiki:Babel-autocreate-user "
Babel AutoCreate" - 用于自动创建Babel相关类别的用户名
- MediaWiki:babel-autocreate-text-levels "
此分类中的用户表示他们具有$2的$1级能力。 $4" - 用于插入不同语言级别的自动创建的类别中的文本。如果你想让它们自动归入各自语言的主要类别(
$wgBabelMainCategory),你必须改变这个。 - MediaWiki:babel-autocreate-text-main "
此分类中的用户能理解$1。 $3" - 在自动创建的类别中插入非级别类别的文本。如果你想让它们在所有语言的父类中自动归类,你必须改变这个。
- MediaWiki:babel "
用户巴别信息" - babel框的页顶 设置为
-将会不显示标题。 - MediaWiki:babel-url "
Project:巴别" - 可以找到有关Babel扩展信息的页面名称 设置为
-可在标题中不显示任何链接。 - MediaWiki:Babel-footer "
用户(按语言)" - babel框的页脚。 设置为
-将不显示页脚。 - MediaWiki:babel-footer-url "
:Category:巴别-用户(按语言)" - 在巴别框的页脚中链接到的页面
- MediaWiki:Babel-category-override "
$1" - 覆盖任何自动生成的Babel类别。 参数:
$1 = 正常生成的分类。
$2 = 语言代码
$3 = babel 级别。
使用这种方法覆盖的任何类别将不会被自动创建,以减少对该页面的破坏或错误编辑的风险。
API
meta=babel (bab)
- This module requires read rights.
- Source: Babel
- License: GPL-2.0-or-later
Get information about what languages the user knows
- babuser
User to get information about
- This parameter is required.
- Type: user, by any of username, IP, Temporary user, IP range and interwiki name (e.g. "prefix>ExampleName")
- Get the Babel information for user Example
- api.php?action=query&meta=babel&babuser=Example [open in sandbox]
| 此扩展用于一个或多个维基媒体项目。 这可能意味着扩展足够稳定、运作足够良好,可以用在这样的高流量的网站上。 请在维基媒体的CommonSettings.php和InitialiseSettings.php配置文件中查找此扩展的名称以查看哪些网站安装了该扩展。 特定wiki上的已安装的扩展的完整列表位于Special:Version页面。 |
| 此扩展在以下wiki农场/托管网站和/或软件包中提供: 這不是一份權威名單。 即使某些wiki农场/托管网站和/或软件包未在这里列出,它们也可能提供此扩展。 请检查你的wiki农场/托管网站或软件包以确认提供情况。 |
- Stable extensions/zh
- Parser function extensions/zh
- Pages using deprecated NoteTA template
- Extensions supporting Composer/zh
- GPL licensed extensions/zh
- Extensions in Wikimedia version control/zh
- CommunityConfigurationProvider initList extensions/zh
- LinksUpdate extensions/zh
- LoadExtensionSchemaUpdates extensions/zh
- ParserFirstCallInit extensions/zh
- UserGetReservedNames extensions/zh
- All extensions/zh
- Extensions used on Wikimedia/zh
- Extensions included in Canasta/zh
- Extensions included in Miraheze/zh
- Extensions included in ShoutWiki/zh
- Extensions included in wiki.gg/zh
- Extensions included in WikiForge/zh
- Localisation extensions/zh

