<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://test.zybkcn.com/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-i18n.js</id>
	<title>MediaWiki:Gadget-i18n.js - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://test.zybkcn.com/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-i18n.js"/>
	<link rel="alternate" type="text/html" href="https://test.zybkcn.com/w/index.php?title=MediaWiki:Gadget-i18n.js&amp;action=history"/>
	<updated>2026-07-18T00:50:56Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://test.zybkcn.com/w/index.php?title=MediaWiki:Gadget-i18n.js&amp;diff=331&amp;oldid=prev</id>
		<title>鹿野耕云：​// Edit via Wikiplus</title>
		<link rel="alternate" type="text/html" href="https://test.zybkcn.com/w/index.php?title=MediaWiki:Gadget-i18n.js&amp;diff=331&amp;oldid=prev"/>
		<updated>2026-06-14T12:43:52Z</updated>

		<summary type="html">&lt;p&gt;// Edit via Wikiplus&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年6月14日 (日) 20:43的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第263行：&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第263行：&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  vary&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  vary&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;} = i18nMethods;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;} = i18nMethods;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/*!&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// 仓库内用法&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	// 定义多条消息&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	// 支持多语言，可选值定义在modules/types.d.ts#L-1，可直接添加其他值（RFC 5646）&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	import {content, localize, vary} from &#039;ext.gadget.i18n&#039;;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	const getI18nMessages = () =&amp;gt; {&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		// i18n的三个方法会匹配当前语言和它所接收对象中的键，对于localize来说，假设已定义zh、en和ja，则&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		//   当页面语言（wgUserLanguage ?? wgContentLanguage）为中文/英语/日语时，返回页面语言所对应的值&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		//   当页面语言为法语，浏览器语言为中文/英语/日语时，返回浏览器语言所对应的值&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		//   当页面语言为法语，且不存在浏览器语言所对应的键，返回L-25定义的键所对应的值。若此键同样没被定义，则返回空字符串&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		return {&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			Cancel: content({&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				en: &#039;Cancel&#039;,&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				ja: &#039;キャンセル&#039;,&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				zh: &#039;取消&#039;,&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			}),&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			QiuWen: localize({&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				en: &#039;QiuWen&#039;,&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				ja: &#039;ちゅううん&#039;,&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				&#039;zh-cn&#039;: &#039;求闻&#039;,&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				&#039;zh-hk&#039;: &#039;求聞&#039;,&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			}),&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			LongText: vary({&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				en: &#039;This is a very long text&#039;,&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				ja: &#039;これは非常に長いテキストです&#039;,&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				&#039;zh-hans&#039;: &#039;这是一段非常长的文本&#039;,&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				&#039;zh-hant&#039;: &#039;這是一段非常長的文字&#039;,&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			}),&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		};&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	};&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	const i18nMessages = getI18nMessages();&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	const getMessage: GetMessages&amp;lt;typeof i18nMessages&amp;gt; = (key) =&amp;gt; {&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		return i18nMessages[key] || key;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	};&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	// 调用&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	getMessage(&#039;Cancel&#039;); // en: Cancel, ja: キャンセル, zh: 取消, zh-hans: 取消, zh-hant: 取消, zh-cn: 取消, zh-hk: 取消, zh-tw: 取消&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	getMessage(&#039;QiuWen&#039;); // en: QiuWen, ja: ちゅううん, zh: 求闻, zh-hans: 求闻, zh-hant: 求聞, zh-cn: 求闻, zh-hk: 求聞, zh-tw: 求聞&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	getMessage(&#039;LongText&#039;);&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		// en: This is a very long text&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		// ja: これは非常に長いテキストです&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		// zh: 这是一段非常长的文本&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		// zh-hans: 这是一段非常长的文本&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		// zh-hant: 這是一段非常長的文字&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		// zh-cn: 这是一段非常长的文本&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		// zh-hk: 這是一段非常長的文字&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		// zh-tw: 這是一段非常長的文字&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	// 直接转换单条消息（不推荐，仅为兼容性保留）&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	// 仅支持传递中文和英语。在非中文环境且未传递英语文本时，最终返回zh的值&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	wgUCS(&#039;求闻&#039;, &#039;求聞&#039;); // en: 求闻, ja: 求闻, zh: 求闻, zh-hans: 求闻, zh-hant: 求聞, zh-cn: 求闻, zh-hk: 求聞, zh-tw: 求聞&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	wgULS(&#039;求闻&#039;, &#039;求聞&#039;); // en: 求闻, ja: 求闻, zh: 求闻, zh-hans: 求闻, zh-hant: 求聞, zh-cn: 求闻, zh-hk: 求聞, zh-tw: 求聞&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	wgUVS(&#039;求闻&#039;, &#039;求聞&#039;); // en: 求闻, ja: 求闻, zh: 求闻, zh-hans: 求闻, zh-hant: 求聞, zh-cn: 求闻, zh-hk: 求聞, zh-tw: 求聞&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	// 非MediaWiki命名空间的脚本可以通过mw.loader.using加载ext.gadget.i18n模块&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	mw.loader.using(&#039;ext.gadget.i18n&#039;).then((require) =&amp;gt; {&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		const {content, localize, vary} = require(&#039;ext.gadget.i18n&#039;);&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	});&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; */&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;})();&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;})();&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;!-- diff cache key zybkcn_com:diff:1.41:old-238:rev-331:wikidiff2=table:1.14.2:bc2a06be --&gt;
&lt;/table&gt;</summary>
		<author><name>鹿野耕云</name></author>
	</entry>
	<entry>
		<id>https://test.zybkcn.com/w/index.php?title=MediaWiki:Gadget-i18n.js&amp;diff=238&amp;oldid=prev</id>
		<title>鹿野耕云：​创建页面，内容为“/**  * SPDX-License-Identifier: GPL-3.0-or-later  * _addText: &#039;{{Gadget Header|license=GPL-3.0-or-later}}&#039;  *  * @source {@link https://git.qiuwen.net.cn/InterfaceAdmin/QiuwenGadgets/src/branch/master/src/i18n}  * @author 安忆 &lt;i@anyi.in&gt;  * @license GPL-3.0-or-later {@link https://www.qiuwenbaike.cn/wiki/H:GPL-3.0}  */  /**  * Copyright (C)  安忆  *  * This program is free software: you can redistribute it and/or modify  * it under the terms of the GNU Gen…”</title>
		<link rel="alternate" type="text/html" href="https://test.zybkcn.com/w/index.php?title=MediaWiki:Gadget-i18n.js&amp;diff=238&amp;oldid=prev"/>
		<updated>2026-06-14T02:42:00Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“&lt;span class=&quot;autocomment&quot;&gt;*  * SPDX-License-Identifier: GPL-3.0-or-later  * _addText: &amp;#039;{{Gadget Header|license=GPL-3.0-or-later}}&amp;#039;  *  * @source {@link https://git.qiuwen.net.cn/InterfaceAdmin/QiuwenGadgets/src/branch/master/src/i18n}  * @author 安忆 &amp;lt;i@anyi.in&amp;gt;  * @license GPL-3.0-or-later {@link https://www.qiuwenbaike.cn/wiki/H:GPL-3.0}：​&lt;/span&gt;  /**  * Copyright (C)  安忆  *  * This program is free software: you can redistribute it and/or modify  * it under the terms of the GNU Gen…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/**&lt;br /&gt;
 * SPDX-License-Identifier: GPL-3.0-or-later&lt;br /&gt;
 * _addText: &amp;#039;{{Gadget Header|license=GPL-3.0-or-later}}&amp;#039;&lt;br /&gt;
 *&lt;br /&gt;
 * @source {@link https://git.qiuwen.net.cn/InterfaceAdmin/QiuwenGadgets/src/branch/master/src/i18n}&lt;br /&gt;
 * @author 安忆 &amp;lt;i@anyi.in&amp;gt;&lt;br /&gt;
 * @license GPL-3.0-or-later {@link https://www.qiuwenbaike.cn/wiki/H:GPL-3.0}&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Copyright (C)  安忆&lt;br /&gt;
 *&lt;br /&gt;
 * This program is free software: you can redistribute it and/or modify&lt;br /&gt;
 * it under the terms of the GNU General Public License as published by&lt;br /&gt;
 * the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;
 * (at your option) any later version.&lt;br /&gt;
 *&lt;br /&gt;
 * This program is distributed in the hope that it will be useful,&lt;br /&gt;
 * but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;
 * GNU General Public License for more details.&lt;br /&gt;
 *&lt;br /&gt;
 * You should have received a copy of the GNU General Public License&lt;br /&gt;
 * along with this program.  If not, see &amp;lt;https://www.gnu.org/licenses/&amp;gt;.&lt;br /&gt;
 */&lt;br /&gt;
/**&lt;br /&gt;
 * +------------------------------------------------------------+&lt;br /&gt;
 * |            === WARNING: GLOBAL GADGET FILE ===             |&lt;br /&gt;
 * +------------------------------------------------------------+&lt;br /&gt;
 * |       All changes should be made in the repository,        |&lt;br /&gt;
 * |                otherwise they will be lost.                |&lt;br /&gt;
 * +------------------------------------------------------------+&lt;br /&gt;
 * |        Changes to this page may affect many users.         |&lt;br /&gt;
 * | Please discuss changes by opening an issue before editing. |&lt;br /&gt;
 * +------------------------------------------------------------+&lt;br /&gt;
 */&lt;br /&gt;
/* &amp;lt;nowiki&amp;gt; */&lt;br /&gt;
&lt;br /&gt;
(() =&amp;gt; {&lt;br /&gt;
&lt;br /&gt;
&amp;quot;use strict&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// dist/i18n/i18n.js&lt;br /&gt;
function _createForOfIteratorHelper(r, e) {&lt;br /&gt;
  var t = &amp;quot;undefined&amp;quot; != typeof Symbol &amp;amp;&amp;amp; r[Symbol.iterator] || r[&amp;quot;@@iterator&amp;quot;];&lt;br /&gt;
  if (!t) {&lt;br /&gt;
    if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e &amp;amp;&amp;amp; r &amp;amp;&amp;amp; &amp;quot;number&amp;quot; == typeof r.length) {&lt;br /&gt;
      t &amp;amp;&amp;amp; (r = t);&lt;br /&gt;
      var n = 0, F = function() {&lt;br /&gt;
      };&lt;br /&gt;
      return { s: F, n: function() {&lt;br /&gt;
        return n &amp;gt;= r.length ? { done: true } : { done: false, value: r[n++] };&lt;br /&gt;
      }, e: function(r2) {&lt;br /&gt;
        throw r2;&lt;br /&gt;
      }, f: F };&lt;br /&gt;
    }&lt;br /&gt;
    throw new TypeError(&amp;quot;Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  var o, a = true, u = false;&lt;br /&gt;
  return { s: function() {&lt;br /&gt;
    t = t.call(r);&lt;br /&gt;
  }, n: function() {&lt;br /&gt;
    var r2 = t.next();&lt;br /&gt;
    return a = r2.done, r2;&lt;br /&gt;
  }, e: function(r2) {&lt;br /&gt;
    u = true, o = r2;&lt;br /&gt;
  }, f: function() {&lt;br /&gt;
    try {&lt;br /&gt;
      a || null == t.return || t.return();&lt;br /&gt;
    } finally {&lt;br /&gt;
      if (u) throw o;&lt;br /&gt;
    }&lt;br /&gt;
  } };&lt;br /&gt;
}&lt;br /&gt;
function _unsupportedIterableToArray(r, a) {&lt;br /&gt;
  if (r) {&lt;br /&gt;
    if (&amp;quot;string&amp;quot; == typeof r) return _arrayLikeToArray(r, a);&lt;br /&gt;
    var t = {}.toString.call(r).slice(8, -1);&lt;br /&gt;
    return &amp;quot;Object&amp;quot; === t &amp;amp;&amp;amp; r.constructor &amp;amp;&amp;amp; (t = r.constructor.name), &amp;quot;Map&amp;quot; === t || &amp;quot;Set&amp;quot; === t ? Array.from(r) : &amp;quot;Arguments&amp;quot; === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
function _arrayLikeToArray(r, a) {&lt;br /&gt;
  (null == a || a &amp;gt; r.length) &amp;amp;&amp;amp; (a = r.length);&lt;br /&gt;
  for (var e = 0, n = Array(a); e &amp;lt; a; e++) n[e] = r[e];&lt;br /&gt;
  return n;&lt;br /&gt;
}&lt;br /&gt;
var __defProp = Object.defineProperty;&lt;br /&gt;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;&lt;br /&gt;
var __getOwnPropNames = Object.getOwnPropertyNames;&lt;br /&gt;
var __hasOwnProp = Object.prototype.hasOwnProperty;&lt;br /&gt;
var __export = (target, all) =&amp;gt; {&lt;br /&gt;
  for (var name in all) __defProp(target, name, {&lt;br /&gt;
    get: all[name],&lt;br /&gt;
    enumerable: true&lt;br /&gt;
  });&lt;br /&gt;
};&lt;br /&gt;
var __copyProps = (to, from, except, desc) =&amp;gt; {&lt;br /&gt;
  if (from &amp;amp;&amp;amp; typeof from === &amp;quot;object&amp;quot; || typeof from === &amp;quot;function&amp;quot;) {&lt;br /&gt;
    var _iterator = _createForOfIteratorHelper(__getOwnPropNames(from)), _step;&lt;br /&gt;
    try {&lt;br /&gt;
      for (_iterator.s(); !(_step = _iterator.n()).done; ) {&lt;br /&gt;
        let key = _step.value;&lt;br /&gt;
        if (!__hasOwnProp.call(to, key) &amp;amp;&amp;amp; key !== except) __defProp(to, key, {&lt;br /&gt;
          get: () =&amp;gt; from[key],&lt;br /&gt;
          enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable&lt;br /&gt;
        });&lt;br /&gt;
      }&lt;br /&gt;
    } catch (err) {&lt;br /&gt;
      _iterator.e(err);&lt;br /&gt;
    } finally {&lt;br /&gt;
      _iterator.f();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return to;&lt;br /&gt;
};&lt;br /&gt;
var __toCommonJS = (mod) =&amp;gt; __copyProps(__defProp({}, &amp;quot;__esModule&amp;quot;, {&lt;br /&gt;
  value: true&lt;br /&gt;
}), mod);&lt;br /&gt;
//! src/i18n/i18n.ts&lt;br /&gt;
var i18n_exports = {};&lt;br /&gt;
__export(i18n_exports, {&lt;br /&gt;
  content: () =&amp;gt; content,&lt;br /&gt;
  localize: () =&amp;gt; localize,&lt;br /&gt;
  vary: () =&amp;gt; vary&lt;br /&gt;
});&lt;br /&gt;
module.exports = __toCommonJS(i18n_exports);&lt;br /&gt;
//! src/i18n/options.json&lt;br /&gt;
var defaultLanguageCode = &amp;quot;en&amp;quot;;&lt;br /&gt;
var fallbackTable = {&lt;br /&gt;
  zh: [&amp;quot;zh&amp;quot;, &amp;quot;zh-hans&amp;quot;, &amp;quot;zh-hant&amp;quot;, &amp;quot;zh-cn&amp;quot;, &amp;quot;zh-tw&amp;quot;, &amp;quot;zh-hk&amp;quot;, &amp;quot;zh-sg&amp;quot;, &amp;quot;zh-mo&amp;quot;, &amp;quot;zh-my&amp;quot;],&lt;br /&gt;
  &amp;quot;zh-hans&amp;quot;: [&amp;quot;zh-hans&amp;quot;, &amp;quot;zh-cn&amp;quot;, &amp;quot;zh-sg&amp;quot;, &amp;quot;zh-my&amp;quot;, &amp;quot;zh&amp;quot;, &amp;quot;zh-hant&amp;quot;, &amp;quot;zh-tw&amp;quot;, &amp;quot;zh-hk&amp;quot;, &amp;quot;zh-mo&amp;quot;],&lt;br /&gt;
  &amp;quot;zh-hant&amp;quot;: [&amp;quot;zh-hant&amp;quot;, &amp;quot;zh-tw&amp;quot;, &amp;quot;zh-hk&amp;quot;, &amp;quot;zh-mo&amp;quot;, &amp;quot;zh&amp;quot;, &amp;quot;zh-hans&amp;quot;, &amp;quot;zh-cn&amp;quot;, &amp;quot;zh-sg&amp;quot;, &amp;quot;zh-my&amp;quot;],&lt;br /&gt;
  &amp;quot;zh-cn&amp;quot;: [&amp;quot;zh-cn&amp;quot;, &amp;quot;zh-hans&amp;quot;, &amp;quot;zh-sg&amp;quot;, &amp;quot;zh-my&amp;quot;, &amp;quot;zh&amp;quot;, &amp;quot;zh-hant&amp;quot;, &amp;quot;zh-tw&amp;quot;, &amp;quot;zh-hk&amp;quot;, &amp;quot;zh-mo&amp;quot;],&lt;br /&gt;
  &amp;quot;zh-sg&amp;quot;: [&amp;quot;zh-sg&amp;quot;, &amp;quot;zh-hans&amp;quot;, &amp;quot;zh-cn&amp;quot;, &amp;quot;zh-my&amp;quot;, &amp;quot;zh&amp;quot;, &amp;quot;zh-hant&amp;quot;, &amp;quot;zh-tw&amp;quot;, &amp;quot;zh-hk&amp;quot;, &amp;quot;zh-mo&amp;quot;],&lt;br /&gt;
  &amp;quot;zh-my&amp;quot;: [&amp;quot;zh-my&amp;quot;, &amp;quot;zh-hans&amp;quot;, &amp;quot;zh-cn&amp;quot;, &amp;quot;zh-sg&amp;quot;, &amp;quot;zh&amp;quot;, &amp;quot;zh-hant&amp;quot;, &amp;quot;zh-tw&amp;quot;, &amp;quot;zh-hk&amp;quot;, &amp;quot;zh-mo&amp;quot;],&lt;br /&gt;
  &amp;quot;zh-tw&amp;quot;: [&amp;quot;zh-tw&amp;quot;, &amp;quot;zh-hant&amp;quot;, &amp;quot;zh-hk&amp;quot;, &amp;quot;zh-mo&amp;quot;, &amp;quot;zh&amp;quot;, &amp;quot;zh-hans&amp;quot;, &amp;quot;zh-cn&amp;quot;, &amp;quot;zh-sg&amp;quot;, &amp;quot;zh-my&amp;quot;],&lt;br /&gt;
  &amp;quot;zh-hk&amp;quot;: [&amp;quot;zh-hk&amp;quot;, &amp;quot;zh-hant&amp;quot;, &amp;quot;zh-mo&amp;quot;, &amp;quot;zh-tw&amp;quot;, &amp;quot;zh&amp;quot;, &amp;quot;zh-hans&amp;quot;, &amp;quot;zh-cn&amp;quot;, &amp;quot;zh-sg&amp;quot;, &amp;quot;zh-my&amp;quot;],&lt;br /&gt;
  &amp;quot;zh-mo&amp;quot;: [&amp;quot;zh-mo&amp;quot;, &amp;quot;zh-hant&amp;quot;, &amp;quot;zh-hk&amp;quot;, &amp;quot;zh-tw&amp;quot;, &amp;quot;zh&amp;quot;, &amp;quot;zh-hans&amp;quot;, &amp;quot;zh-cn&amp;quot;, &amp;quot;zh-sg&amp;quot;, &amp;quot;zh-my&amp;quot;]&lt;br /&gt;
};&lt;br /&gt;
//! src/i18n/modules/initI18nMethods.ts&lt;br /&gt;
var import_ext_gadget2 = require(&amp;quot;ext.gadget.Util&amp;quot;);&lt;br /&gt;
//! src/i18n/modules/util/generateDefaultFallbackList.ts&lt;br /&gt;
var import_ext_gadget = require(&amp;quot;ext.gadget.Util&amp;quot;);&lt;br /&gt;
//! src/i18n/modules/util/generateLanguageCodeSplitArray.ts&lt;br /&gt;
var generateLanguageCodeSplitArray = (originLanguageCode) =&amp;gt; {&lt;br /&gt;
  const languageCodeSplitArray = originLanguageCode.split(&amp;quot;-&amp;quot;).map((value) =&amp;gt; {&lt;br /&gt;
    return value.toLowerCase();&lt;br /&gt;
  });&lt;br /&gt;
  return languageCodeSplitArray;&lt;br /&gt;
};&lt;br /&gt;
//! src/i18n/modules/util/generateDefaultFallbackList.ts&lt;br /&gt;
var generateDefaultFallbackList = () =&amp;gt; {&lt;br /&gt;
  const documentLanguageSplitArray = generateLanguageCodeSplitArray(document.documentElement.lang);&lt;br /&gt;
  const navigatorLanguageSplitArray = generateLanguageCodeSplitArray(navigator.language);&lt;br /&gt;
  let languageCode = defaultLanguageCode;&lt;br /&gt;
  for (var _i = 0, _arr = [documentLanguageSplitArray, navigatorLanguageSplitArray]; _i &amp;lt; _arr.length; _i++) {&lt;br /&gt;
    const languageCodeSplitArray = _arr[_i];&lt;br /&gt;
    switch (languageCodeSplitArray.length) {&lt;br /&gt;
      case 2:&lt;br /&gt;
        languageCode = &amp;quot;&amp;quot;.concat(languageCodeSplitArray[0], &amp;quot;-&amp;quot;).concat(languageCodeSplitArray[1]);&lt;br /&gt;
        break;&lt;br /&gt;
      case 3:&lt;br /&gt;
        languageCode = &amp;quot;&amp;quot;.concat(languageCodeSplitArray[0], &amp;quot;-&amp;quot;).concat(languageCodeSplitArray[2]);&lt;br /&gt;
        break;&lt;br /&gt;
      default:&lt;br /&gt;
        languageCode = languageCodeSplitArray[0];&lt;br /&gt;
        break;&lt;br /&gt;
    }&lt;br /&gt;
    if ((0, import_ext_gadget.isValidKey)(fallbackTable, languageCode)) {&lt;br /&gt;
      break;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return (0, import_ext_gadget.uniqueArray)([languageCode, defaultLanguageCode]);&lt;br /&gt;
};&lt;br /&gt;
//! src/i18n/modules/initI18nMethods.ts&lt;br /&gt;
var initI18nMethods = () =&amp;gt; {&lt;br /&gt;
  const defaultFallbackList = generateDefaultFallbackList();&lt;br /&gt;
  const elect = (candidates, locale) =&amp;gt; {&lt;br /&gt;
    let fallbackList = defaultFallbackList;&lt;br /&gt;
    for (var _i2 = 0, _arr2 = [locale, ...fallbackList]; _i2 &amp;lt; _arr2.length; _i2++) {&lt;br /&gt;
      const key = _arr2[_i2];&lt;br /&gt;
      if ((0, import_ext_gadget2.isValidKey)(fallbackTable, key)) {&lt;br /&gt;
        fallbackList = fallbackTable[key];&lt;br /&gt;
        break;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    var _iterator2 = _createForOfIteratorHelper((0, import_ext_gadget2.uniqueArray)([locale, ...fallbackList, ...defaultFallbackList])), _step2;&lt;br /&gt;
    try {&lt;br /&gt;
      for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) {&lt;br /&gt;
        const key = _step2.value;&lt;br /&gt;
        if ((0, import_ext_gadget2.isValidKey)(candidates, key)) {&lt;br /&gt;
          return candidates[key];&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    } catch (err) {&lt;br /&gt;
      _iterator2.e(err);&lt;br /&gt;
    } finally {&lt;br /&gt;
      _iterator2.f();&lt;br /&gt;
    }&lt;br /&gt;
    return &amp;quot;&amp;quot;;&lt;br /&gt;
  };&lt;br /&gt;
  const {&lt;br /&gt;
    wgContentLanguage,&lt;br /&gt;
    wgUserLanguage,&lt;br /&gt;
    wgUserVariant&lt;br /&gt;
  } = mw.config.get();&lt;br /&gt;
  const i18nMethods2 = {&lt;br /&gt;
    content: (candidates) =&amp;gt; {&lt;br /&gt;
      return elect(candidates, wgContentLanguage);&lt;br /&gt;
    },&lt;br /&gt;
    localize: (candidates) =&amp;gt; {&lt;br /&gt;
      return elect(candidates, wgUserLanguage);&lt;br /&gt;
    },&lt;br /&gt;
    vary: (candidates) =&amp;gt; {&lt;br /&gt;
      return elect(candidates, wgUserVariant !== null &amp;amp;&amp;amp; wgUserVariant !== void 0 ? wgUserVariant : wgContentLanguage);&lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
  return i18nMethods2;&lt;br /&gt;
};&lt;br /&gt;
//! src/i18n/modules/initShims.ts&lt;br /&gt;
var initShims = (i18nMethods2) =&amp;gt; {&lt;br /&gt;
  const wgUXS = (hans, hant, cn, tw, hk, sg, zh, mo, my, en, method) =&amp;gt; {&lt;br /&gt;
    var _ref, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref0, _ref1, _ref10, _ref11, _ref12;&lt;br /&gt;
    zh = String((_ref = (_ref2 = (_ref3 = (_ref4 = (_ref5 = (_ref6 = (_ref7 = (_ref8 = zh !== null &amp;amp;&amp;amp; zh !== void 0 ? zh : hans) !== null &amp;amp;&amp;amp; _ref8 !== void 0 ? _ref8 : hant) !== null &amp;amp;&amp;amp; _ref7 !== void 0 ? _ref7 : cn) !== null &amp;amp;&amp;amp; _ref6 !== void 0 ? _ref6 : tw) !== null &amp;amp;&amp;amp; _ref5 !== void 0 ? _ref5 : hk) !== null &amp;amp;&amp;amp; _ref4 !== void 0 ? _ref4 : sg) !== null &amp;amp;&amp;amp; _ref3 !== void 0 ? _ref3 : mo) !== null &amp;amp;&amp;amp; _ref2 !== void 0 ? _ref2 : my) !== null &amp;amp;&amp;amp; _ref !== void 0 ? _ref : en);&lt;br /&gt;
    hans = String((_ref9 = (_ref0 = (_ref1 = hans !== null &amp;amp;&amp;amp; hans !== void 0 ? hans : cn) !== null &amp;amp;&amp;amp; _ref1 !== void 0 ? _ref1 : sg) !== null &amp;amp;&amp;amp; _ref0 !== void 0 ? _ref0 : my) !== null &amp;amp;&amp;amp; _ref9 !== void 0 ? _ref9 : zh);&lt;br /&gt;
    hant = String((_ref10 = (_ref11 = (_ref12 = hant !== null &amp;amp;&amp;amp; hant !== void 0 ? hant : tw) !== null &amp;amp;&amp;amp; _ref12 !== void 0 ? _ref12 : hk) !== null &amp;amp;&amp;amp; _ref11 !== void 0 ? _ref11 : mo) !== null &amp;amp;&amp;amp; _ref10 !== void 0 ? _ref10 : zh);&lt;br /&gt;
    cn = String(cn !== null &amp;amp;&amp;amp; cn !== void 0 ? cn : hans);&lt;br /&gt;
    sg = String(sg !== null &amp;amp;&amp;amp; sg !== void 0 ? sg : hans);&lt;br /&gt;
    tw = String(tw !== null &amp;amp;&amp;amp; tw !== void 0 ? tw : hant);&lt;br /&gt;
    hk = String(hk !== null &amp;amp;&amp;amp; hk !== void 0 ? hk : hant);&lt;br /&gt;
    mo = String(mo !== null &amp;amp;&amp;amp; mo !== void 0 ? mo : hant);&lt;br /&gt;
    my = String(my !== null &amp;amp;&amp;amp; my !== void 0 ? my : hant);&lt;br /&gt;
    en = String(en !== null &amp;amp;&amp;amp; en !== void 0 ? en : zh);&lt;br /&gt;
    return i18nMethods2[method]({&lt;br /&gt;
      en,&lt;br /&gt;
      zh,&lt;br /&gt;
      &amp;quot;zh-hans&amp;quot;: hans,&lt;br /&gt;
      &amp;quot;zh-hant&amp;quot;: hant,&lt;br /&gt;
      &amp;quot;zh-cn&amp;quot;: cn,&lt;br /&gt;
      &amp;quot;zh-tw&amp;quot;: tw,&lt;br /&gt;
      &amp;quot;zh-hk&amp;quot;: hk,&lt;br /&gt;
      &amp;quot;zh-sg&amp;quot;: sg,&lt;br /&gt;
      &amp;quot;zh-mo&amp;quot;: mo,&lt;br /&gt;
      &amp;quot;zh-my&amp;quot;: my&lt;br /&gt;
    });&lt;br /&gt;
  };&lt;br /&gt;
  window.wgUCS = (hans, hant, cn, tw, hk, sg, zh, mo, my, en) =&amp;gt; {&lt;br /&gt;
    return wgUXS(hans, hant, cn, tw, hk, sg, zh, mo, my, en, &amp;quot;content&amp;quot;);&lt;br /&gt;
  };&lt;br /&gt;
  window.wgULS = (hans, hant, cn, tw, hk, sg, zh, mo, my, en) =&amp;gt; {&lt;br /&gt;
    return wgUXS(hans, hant, cn, tw, hk, sg, zh, mo, my, en, &amp;quot;localize&amp;quot;);&lt;br /&gt;
  };&lt;br /&gt;
  window.wgUVS = (hans, hant, cn, tw, hk, sg, zh, mo, my, en) =&amp;gt; {&lt;br /&gt;
    return wgUXS(hans, hant, cn, tw, hk, sg, zh, mo, my, en, &amp;quot;vary&amp;quot;);&lt;br /&gt;
  };&lt;br /&gt;
};&lt;br /&gt;
//! src/i18n/i18n.ts&lt;br /&gt;
var i18nMethods = initI18nMethods();&lt;br /&gt;
initShims(i18nMethods);&lt;br /&gt;
var {&lt;br /&gt;
  content,&lt;br /&gt;
  localize,&lt;br /&gt;
  vary&lt;br /&gt;
} = i18nMethods;&lt;br /&gt;
&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
/* &amp;lt;/nowiki&amp;gt; */&lt;/div&gt;</summary>
		<author><name>鹿野耕云</name></author>
	</entry>
</feed>