手册:消息API

来自MyaWiki.Org
跳转到导航 跳到搜索

其他语言:
I18N文档 本土化 ·系统消息 ·消息API ·语言 ·翻译网 ·书写系统 ·方向性

媒体消息 可以通过消息类及其相关的方法在代码中使用.i用于消息本身的说明,以及如何添加新消息的提示,请参见本土化 特别是本地化(通用)(开发人员) .

在PHP中使用消息[编辑]

这里有一个简单的例子:

美元 = XML::提交按钮 WFMEST “提交” >文本() 

WfMeXAGE()是一个全局函数,它充当消息类的包装器,创建消息对象。这个示例然后调用消息方法。文本()它以当前语言获取“提交”消息的文本,执行某些语言转换(如性别和复数),并返回未转义的消息文本。

这里是一个更复杂的例子,它使用一个计数并支持语言复数处理的消息:

美元 = XML::标签 WFMEST “数页” >纽帕拉姆 美元计数 >文本() 

下面的部分将解释代码。

参数[编辑]

将参数传递给需要它们的消息有几种方式:

WFMEST “味精” PARAM1 PARAM2 >平原();
WFMEST “味精” >帕拉姆 PARAM1 PARAM2 >平原();
WFMEST “味精” 数组 PARAM1 PARAM2  >平原();

第一种方法是最常见的,在混合不同类型的参数时使用第二种方法,并且可以使用第三从其他数据动态地构建消息对象。不同类型的参数

WFMEST “味精” >帕拉姆 用户名 >平原();
WFMEST “味精” >罗帕拉姆 $Link >平原();
WFMEST “味精” >明文参数 用户输入 >平原();

WFMEST “味精” >纽帕拉姆 美元计数 >平原();
WFMEST “味精” >耐久性参数 持续时间 >平原(); //自MW 1.22
WFMEST “味精” >过期帕拉姆 $期满 >平原(); //自MW 1.22
WFMEST “味精” >时间周期参数 美元期 >平原(); //自MW 1.22
WFMEST “味精” >西帕拉姆 美元大小 >平原(); //自MW 1.22
WFMEST “味精” >BITRAT PARAMS 比特率 >平原(); //自MW 1.22
参数()γ
正常消息替换参数。
RAWPARAMS-()γ
在消息被其他处理之后替换参数;这意味着这些参数对于解析器函数是不可用的,如果使用输出格式,它们也不会逃脱(见下文)。确保你自己正确地逃脱。
明文PARAMSH()γ
喜欢RAWPARAMS-()但是逃跑了。当您通过可能包含不应该分析的WiKiTeXT的用户输入时,它是有用的。

来自第二组的每个函数在替换之前以特定的方式格式化值。NUPARAMSM()如果消息使用,则必须使用{{复数:}}. 在某些情况下,您可能不想使用它,即使您有一个数字,例如修订ID。其他函数对应于语言函数。格式持续时间格式到期格式化时间周期格式尺寸格式比特率只是直接调用它们的简写。

语言[编辑]

为了重写您想要消息的语言,对于使用wiki内容语言的常见情况有一种方法和一种快捷方式。在后一种情况下,可以使用语言代码或语言对象。通常的语言回退链应用,所以如果不存在翻译,则得到的实际消息可能与请求的语言不同。

WFMEST “消息键” >非语言();
WFMEST “消息键” >非语言 朗朗 

输出模式与逃逸[编辑]

消息类,因此由WfMeXeAGE()返回的对象有五种输出模式:

  • ()返回消息文本;只有参数被替换。〔1〕
  • 文本():转换消息文本(MasaGeCase::Trave:),它转换所有“{{}}”,例如,复数,但既不逃逸也不消毒。
  • 逃逸()和“文本”一样,也可以在HTML中使用它。
  • PARSE()将WiKiTeXT中的消息文本解析为HTML和SAIIZITES(MasaGeCase::PARSER()),调用解析器
  • 旁域块()输出与一个块级HTML元素包在一起,如果不是的话,类似于OutPox::AddiWikimsg。

记住HTML函数逃避所有被输入的函数,所以使用文本()格式来避免双脱逃。因此最常见的输出格式是文本()。此外,如果消息中有WiKiTeXT,请确保使用PARSER()或PalAuthBuffor(),否则WiKiTeXT将被转义并输出为纯文本。

使用时WfMeXAGE()$ -> MSG()您应该始终指定输出类型。文本()当你把它输出时是合适的AdWiWITKEXT().

使用哪种输出模式[编辑]

一般来说,你使用的最常用的模式是> >()>文本(). 您在大多数HTML标记支持的地方使用-> PARSER(),并且使用>文本()在内容将变成HTML的地方逃脱或HTML标记不被支持。

常见案例:

  • 如果您将消息放入文本部分(第三参数)HTML:元素使用>文本(). 你也可以考虑使用HTML::取而代之的是使用> >()模式。
  • 如果你正在输入文本(第三参数)HTML::你应该经常使用> >().
  • 如果你把属性放入(第二个参数)HTML::HTML::()使用> >()
  • 如果您手动构建HTML属性,则应该使用-->逃逸(). 但是,您不应该手动构造HTML属性。
  • $ -> AdWiKiTeX()在哪里?美元是输出页对象使用>文本()> >(). 但是如果你愿意使用AutoWiksg相反。
  • 对于$Out-> AdHTML*()的使用> >()

方法链[编辑]

大多数消息方法返回当前对象,因此您可以方便地调用一个又一个来操作对象,然后才返回其文本。这叫做方法链. 下面是一个例子:

WFMEST “钥匙” 
	>帕拉姆 “苹果” 
	>纽帕拉姆 $ NuffFabple 
	>设置上下文 上下文语境 
	>非语言()
	>解析()

附加消息打印方法[编辑]

MealWiKi中的通用消息功能WFMEST. 然而,因为在消息中,魔法词的价值可以依赖于上下文,所以这个函数有各种各样的包装器,它自动设置正确的上下文。

输出页面有一些直接追加到生成的输出的方法。有用的是:

美元>AdvWikimsg “页面标题” 
美元>拉普维希姆格 'div类=“错误”> \n 1美元\n</div> 数组 “一些信息” $用户>获得名称()  

以上两个都将在当前页的上下文中解析WiKiTeXT,然后将其附加到输出缓冲区。

类扩展内容源有一种方法味精它自动设置当前上下文(语言、当前页等)。因此建议使用。$ -> MSG()对于那些类,像专版. 下面是此类类的非穷尽性列表:〔2〕

  • 分类查看器
  • HTMLM
  • 日志列表
  • 差分发动机
  • 输出页面
  • 索引寻呼机
  • 图像历史列表
  • 芹菜属碱
  • 变更列表
  • 护肤
警告 警告: QueQueT模板类及其子类(BaseEtPoad、VoCTReMead、MyBooBooto、UsLogin模板、UsercreateTemplate)有一个命名方法味精这与来自CONSTORD源的不同。在这些类中,$-> MSG*()将简单地输出消息的转义文本。

实例对的用途:

WFMEST “钥匙” >纽帕拉姆 五百六十七 >文本();
$此>味精 “钥匙” >纽帕拉姆 五百六十七 >解析();

实例不正确的用途:

WFMEST “钥匙” 三百四十五 >帕林线(); 未正确格式化
$此>味精 “钥匙” 三百四十五 >纽帕拉姆 二百三十四 >平原() 复数语法不是用普通格式转换的

在JavaScript中使用消息[编辑]

也见资源管理器/默认模块
注:本页面只处理MyaWiKi核心。请参阅特定文档,而不是I18N模块

向客户端获取消息[编辑]

要使用这些消息,我们需要首先确保消息在客户端是可用的。这可以使用RealSeroDoad模块或来自JavaScript的API查询来完成。

使用RealSeloDad模块[编辑]

我们将要使用资源加载器以确保消息在客户端可用。为此,在RealSeroDoad模块中,定义要导出到客户端的消息。重要的是要注意加载中世纪的模块显著改变MW.消息和MW.MSG的行为。一般来说,您应该总是加载jQuyMysg。.

缩写实例化(PHP):

资源资源 = 数组
        “本地基站” = > 第二代
        “远程路径” = > “翻译”

$WG-资源模型[“ExtEng译,组选择器”] = 数组
        “风格” = > 'Reals/CSS/Ext.Eng.CopyS选择器.CSS ''
        “脚本” = > 'Reals/JS/Ext.Eng.GypStudio.js’
        “位置” = > “顶”
        “依赖” = > 数组
                “MyaWiki.jCuryMysg”
        
        “消息” = > 数组
                “翻译MSGGROUPL选择器项目”
                翻译MSGGROMPUSER选择器占位符
                “翻译MSGGROMPASTER选择器搜索所有”
                翻译MsGyCopyS选择器搜索“最近”
                “从所有组中转换MSGROMPUSER选择器负载”
                翻译MSGGROMPUSER视图子项目
        
 + 资源资源

示例(扩展名:JSON):

{
	“资源小结” {
		“Ext.abaseFuffel.Edvices” {
			“脚本” “Ext.abaseField.Edj.js”
			“消息” [
				“滥用过滤器编辑SytAcOK”
				“滥用过滤器编辑同步器”
				“滥用过滤器HTTP错误”
				“滥用过滤器编辑节气门占位符”
				“滥用过滤器编辑标签占位符”
				“滥用过滤器编辑警告离开”
				“未知错误”
			
			“依赖” [
				“MiTaWiki.UTIL”
				“MIDAWIKI.API”
				“MealaWik.ExpalCuteleFieldWindows”
				“jQuery。文本选择”
				“jQuery
				“OOJS UI核心”
				“OOJS UI小部件”
			]
		}
	}
}

使用JavaScript的API查询[编辑]

您可以使用以下代码:

MIDAWIKI版本: ±一点二七
//何时加载“MyaWiki.API”模块,并且页面已准备就绪。
$.什么时候? 兆瓦级.装载机.使用 [ “MiaWiki.API” “MyaWiki.jCuryMysg” ]  $.准备好的 
    //然后:加载所需的消息(如果尚未加载)
    .然后 功能() {
        退货  兆瓦级.应用程序接口()加载消息丢失 [ 一月 二月 “三月” ] 
    } 
    然后:和他们一起做事。
    .然后 道格斯 

用其他语言获取消息用户语言语言,使用GETMIS消息而不是LoopMasgEsIFEFIG,并将目标语言提供为可选的第二个参数的“AMLAN”字段,如下所示:

//何时:加载“MyaWiki.API”模块。无需等待页面准备就绪。
$.什么时候? 兆瓦级.装载机.使用 [ “MiaWiki.API” ]  
    用法语(语言代码FR)获取一些信息
    .然后 功能() {
        退货  兆瓦级.应用程序接口()获取消息 [ 一月 二月 “三月”  { 阿姆朗 “FR” }  
    } 
    然后:和他们一起做事。
    .然后 道格斯 
/doStor是一个函数,它将作为其第一个参数接收一个看起来像:
//{二月:“F.ViRiver”,一月:“Javever”,三月:“火星”}


对于1.27岁以前的MyaWiKi版本,请使用以下内容:

/j*@返回jQuery实例。
功能 加载消息 消息  {
	退货  兆瓦级.应用程序接口()得到 {
		行动 “查询”
		 “所有消息”
		弹药 消息.加入 '' 
		阿姆朗 兆瓦级.配置.得到 “WGUSER语言” 
	} 然后 功能  数据  {
		$.每个 数据.查询.所有信息 功能  I 消息  {
			如果  消息.丢失的 =   {
				兆瓦级.消息.配置 消息.姓名 消息[‘*’] 
			}
		} 
	} 
}

加载消息 [ 一月 二月 “三月” ] 然后 道格斯 

消息的使用[编辑]

上述示例中定义的消息将在客户端可用,并且可以由消息(“消息密钥名称”). 一些实例

$ “< A>” 支柱 “HREF” ''' 文本 兆瓦级.消息 “翻译MSGGROUPL选择器项目” 文本() 


我们还可以将动态参数传递给消息(如1美元、2美元等),如下所示。

$ 'DIV> 文本 兆瓦级.消息 翻译MSGGROMPUSER视图子项目 计数 文本() 

注意我们如何使用[jQuery ] .Text来自动地正确地输出我们的输出。如果这是不可能的,这里还有几个例子:

  • 如果使用jQuery追加手动逃逸追加('< LI>)+MW。消息(“示例”)
  • 如果手动构建HTML字符串,则总是通过创建消息对象和调用来逃避消息。逃逸()(不要使用)消息()味精快捷方式:
    'Fo> > +MW。消息(“示例”)

在上面的例子中,注意消息应该在I18N文件中定义。如果在任何I18N文件中找不到消息键,则结果将是角括号中的消息键,例如“消息键Foo>”。

使用必须不经过解析器的消息(例如,当将JSON数据传递为消息时),或当消息将用作预加载文本页的使用,使用:

兆瓦级.消息 “福巴” 平原()

格式选项[编辑]

如果没有指定输出格式,MW.Mead只返回一个消息对象。要输出消息本身,应该指定输出格式。格式与PHP侧的格式基本相同:

  • 消息(“FoBar”)按原样返回消息文本;仅替换参数。
  • 消息(“FoBar”)转换消息文本(所有支持){{}}块被转换结果替换。JavaScript中的特征支持详细说明支持的内容。例如,某些关键字({{int:}},{{性别}},{{SITNAME}}})工作,但转移(例如)。{MIDAWIKI:}})和服务器端魔法词例如{{NoUnFoEdEdt}}或{{NS:Project }}不工作,
  • 消息(“FoBar”)HTML逃逸版本文本.
  • 消息(“FoBar”)将消息文本从WiKiTeXT解析为HTML。这支持一切文本模式,以及大多数链接,以及白名单HTML。
  • 消息(“FoBar”)PARSEDOM()喜欢PARSE()但返回的是jQuery集合而不是HTML字符串。

警告:如果没有加载MyIaWik.jQuyMysg模块,所有上述方法的行为基本上类似于()有可能逃跑。

注:没有相当于PARSIAGOLD。必要时,自己将输出封装在块元素中。

参数[编辑]

参数可以指定为附加参数。消息(). 它们可以作为字符串或DOM节点/ jQuery集合传递。

与PHP不同,参数中的WiKiTeXT是未解析. 实际上,所有字符串参数都是类似的。明文PARAMSH()

DOM/jQuery参数可以用来实现等价的RAWPARAMS-()

没有其他参数格式的支持。在将数字作为参数使用之前,可以格式化数字。语言.转换数().

JavaScript中的特征支持[编辑]

警告 警告: JS消息中的WiKiTeT支持要求中世纪的要加载的模块,否则将忽略这些特性。

JavaScript消息只支持WiKiTeXT语法的一小部分。支持的特征包括:

  • 内部链接(除外)管戏法
  • 显式外部链接(没有自动编号和自由链接)
  • 魔术单词地名,页名,PabeNeMe
  • 语法分析器函数复数,性别,语法,int,ns,FrasATNUM,LC,UC,LC1,UC1
  • 允许在WiKiTeXT中使用的HTML标签(HTML必须格式良好)
  • HTML实体和039;&quot;&;gt;和;
  • 这个< Noik>标签

值得注意的WiKiTeXT语法支持::

  • 模板
  • 所有其他解析器函数和魔法词
  • 所有其他类似XML的标签(扩展标签)
  • 粗体斜体字’’(使用)< B>< I>相反)
  • 使用列表*γ(使用)<UL>/<OL><LI>相反)
  • 定义列表/缩进使用(使用)< DL>< d><DD>相反)
  • 多段(使用)<P>相反)
  • 评论<!------>

味精[编辑]

这个mw()函数是常用的快捷方式。消息().

在Lua中使用消息[编辑]

使用Lua编写的模块抄写本类似于模板运行,并可以访问MyaWiKi消息。MeavaWiki-Lua库包含用于处理消息的MW.Mead类。参考全文LUA消息库完整API的文档。这里有一个简单的例子:

当地  = {}

功能 .NNEMS  
	当地 NeMsMsg = 兆瓦级.消息. “NNEMS” 
	NeMsMsg纽帕拉姆   --确保号码定位
	用维基语言显示消息。框架:预处理扩展{{复数}子句。
	退货 预处理 NeMsMsg平原() 
结束

退货 

关于性别、语法、复数的注释[编辑]

也见本地化在消息中切换…语法本身被记录在帮助:魔法词的本地化及相关。

一般来说,性别、语法和复数的魔法词在PHP和JavaScript两方面都是相同的。

  1. 你必须使用文本逃脱解析海滨街区 输出格式让他们工作。
  2. 您需要将相关参数作为正常参数传递给消息。
    • 参数是复数;纯文本或WiKiTeX在PHP中避免了性别的用户名;从JavaScript中的性别或用户对象中提取性别。见下文
    • 为了在PHP中启用多个正确的数字定位,您需要使用纽帕拉姆对于这个数字,请参见α链.
    • 为了在JavaScript中实现多个正确的数字本地化,您需要使用转换数为数

复数句法示例[编辑]

简单的复数
“钥匙” = > 1美元哭泣{复数:1美元婴儿婴儿}

JavaScript中的性别[编辑]

注意:这需要明确的犹太佬在JavaScript中使用消息.

如果你有一个信息,比如说“消息密钥性别FO”:“{{性别:1美元} He}她创建了一篇文章”在JavaScript中,您可以使用如下所示:

兆瓦级.消息 “信息关键性别” “男性” 文本(); 他创造了一篇文章
兆瓦级.消息 “信息关键性别” “女性” 文本(); 她创造了一篇文章

代替直接传递性别,我们可以通过性别选项传递任何“用户样”对象。例如,当前用户对象使用者.

var 用户 = 兆瓦级.用户 /当前用户
兆瓦级.消息 “信息关键性别” 用户 文本(); //返回的消息将基于当前用户的性别。

如果所传递的性别无效或未知,则性别中性形式将被用作每个语言的定义。通过“未知”如果你有意想要中性形式。

最后,如果您想使用当前用户的性别,可以传递一个空字符串:

//下面的行说明消息内容,您可以在开发控制台上运行此代码段
兆瓦级.消息.配置 “信息关键性别” {{性别:1美元〉男性(女)未知} 
兆瓦级.用户.选项.价值观.性别 = “女性” /暂时操纵你的性别偏好
兆瓦级.消息 “信息关键性别”  文本(); /返回值取决于你的性别偏好

JavaScript中的复数形式[编辑]

注意:这需要明确的犹太佬在JavaScript中使用消息.

如果你有消息,说“消息密钥复数FoO’=>”{{复数:1美元〉}是} $ 1 {{复数:1美元项}项}在JavaScript中,您可以使用如下所示:

兆瓦级.消息 “消息密钥复数FO” 计数 文本();
/[返回]有1项“IF计数=1”
如果计数为6,则有6项

帮助替换弃用的WFMSG*函数[编辑]

这些功能被删除了从MiTaWiki 1.27 LTS开始.

使用这些函数的代码通常有错误的转义和其他代码质量问题,因此也建议使用

  • 将所有的XML::函数用它们的HTML::等价物,这使得更容易做正确的事情;〔3〕
  • 在可能的情况下,避免全局和使用MSG()(见在上面
  • 代替HTMLTraceCARSH()-->逃逸()在适当的情况下。
代码更改 描述
而不是:
WFMSG “钥匙”

写:

WFMEST “钥匙” >文本();
γ
而不是:
WFMSGEXT “钥匙” 某种格式 “苹果”

写:

WFMEST “钥匙” “苹果” >某种形式的函数();
第二个参数指定输出模式,通常以数组形式表示。数组(“逃逸”)但有时就像“逃逸”需要根据输出模式与逃逸,像-->逃逸().
而不是:
WFMSGEXT “钥匙” 数组 “解析” “苹果”

写:

WFMEST “钥匙” “苹果” >海滨街区();
使用完全解析,并将输出封装在块级HTML标记中。
而不是:
WFMSGEXT “钥匙” 数组 帕森林 “苹果”

写:

WFMEST “钥匙” “苹果” >解析();
使用完全解析。PrayInLin是因为它在构建HTML时更有用。在正常使用中,最好使用OutPutsPo::(添加包)Wikimsg。
而不是:
WFMSGEXT “钥匙” 数组 帕尔马格 “苹果” ‘梨’

写:

WFMEST “钥匙” “苹果” ‘梨’ >文本();
无法使用HTML的地方。{{-Trime}转换完成。
而不是
WFMSGHTML “钥匙” “苹果”

写:

WFMEST “钥匙” >罗帕拉姆 “苹果” >逃脱();
WFMSGHTML不逃避参数:为了获得相同的结果,需要使用RavaPARS;检查参数对于HTML输出是否真的是安全的。如果消息以HTML形式输出,则必须使用逃逸()安防它也会避开参数,但这并不总是需要的,尽管参数是一个数字并不重要。
而不是:
WFMSGFF内容 “钥匙”

写:

WFMEST “钥匙” >非语言()>文本();
在维基的内容语言中得到一个消息($WGLUGEAGECODE
而不是:
WFMSGO “钥匙”

写:

WFMEST “钥匙” >非语言()>平原();
在维基的内容语言中得到一个消息($WGLUGEAGECODE 但是不要转换消息。
而不是:
WFMPSTYMSG “钥匙” $消息 = WFMSGFF内容 “钥匙”

写:

WFMEST “钥匙” >非语言()>空白的();
检查wiki的内容语言中的“KEY”消息是否为空。经常,ISDISABLE()是一个更适当的检查,应该用来代替。
而不是:
WFMSCRIALL $错误[“消息” $错误[帕拉姆斯]

写:

没有简单的替换,取决于参数。不应该首先使用。
而不是:
WFMSGGETKEY

写:

没有简单的替换,取决于参数。不应该首先使用。

也见[编辑]

笔记[编辑]

  1. γ 使用这种模式显示HTML内容是可能的,建议使用WiKiTeXT并使用PARSES()模式将其转换成HTML。
  2. γ 一般来说,在ItTestTraseObjor对象的非静态函数中使用$---> MSG.()。
  3. γ 例如,XML::TAG()不能逃脱。