# LanguageConverter and language variants parser tests (v2)
# Based on https://www.mediawiki.org/wiki/Writing_systems/Syntax
# This file is primarily for testing actual LanguageConverter
# behavior, aka +langconv output for various constructs, focusing
# on examples from the zhwiki documentation.
!! options
version=2
parsoid-compatible=wt2html
!! end

# This is the standard article assumed to exist.
!! article
Main Page
!! text
blah blah
!! endarticle

# We'll use the following characters below, which hopefully are
# visually distinct enough to distinguish even for folks who aren't
# literate in Chinese characters.  We'll use *only* these three
# characters to minimize our dependency on the "real"
# transliteration database for Chinese; we don't want updates to
# those built-in rules to break parser tests.
#
#                Traditional   Simplified
# air (qì)           氣          气
# horse (mǎ)         馬          马
# electricity (diàn) 電          电
#
# To test conversion rules, we're going to use nonsensical
# combinations of these characters, or "conversions" to arbitrary
# latin characters, with the goal of (1) still making the "correct"
# output easy to distinguish for folks unfamiliar with the characters,
# and (2) by using nonsense hopefully we won't conflict with any
# "real" rules in the transliteration database
# (which presumably only contains sensible character combinations).

!! test
Verify that the built-in transliteration rules contain our test
characters (traditional to simplified)
!! options
language=zh htmlVariantLanguage=zh-hans
!! wikitext
* air (qì): 氣
* horse (mǎ): 馬
* electricity (diàn): 電
!! html/php
<ul><li>air (qì): 气</li>
<li>horse (mǎ): 马</li>
<li>electricity (diàn): 电</li></ul>
!! html/parsoid+langconv
<ul>
<li>air (qì): 气</li>
<li>horse (mǎ): 马</li>
<li>electricity (diàn): 电</li>
</ul>
!! end

!! test
Verify that the built-in transliteration rules contain our test
characters (simplified to traditional)
!! options
language=zh htmlVariantLanguage=zh-hant
!! wikitext
* air (qì): 气
* horse (mǎ): 马
* electricity (diàn): 电
!! html/php
<ul><li>air (qì): 氣</li>
<li>horse (mǎ): 馬</li>
<li>electricity (diàn): 電</li></ul>
!! html/parsoid+langconv
<ul>
<li>air (qì): 氣</li>
<li>horse (mǎ): 馬</li>
<li>electricity (diàn): 電</li>
</ul>
!! end

### Basic syntax ###

# note "fallback" from zh-hans to zh-cn / zh-hant to zh-tw here
!! test
Bidirectional conversion (hans)
!! options
language=zh htmlVariantLanguage=zh,zh-hans,zh-cn,zh-my,zh-sg
!! wikitext
-{zh-cn:气气气;zh-tw:電電電}-
!! html/php
<p>气气气
</p>
!! html/parsoid+langconv
<p><span typeof="mw:LanguageVariant" data-mw-variant='{"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-tw","t":"電電電"}]}'>气气气</span></p>
!! end

!! test
Bidirectional conversion (hant)
!! options
language=zh htmlVariantLanguage=zh-hant,zh-hk,zh-mo,zh-tw
!! wikitext
-{zh-cn:气气气;zh-tw:電電電}-
!! html/php
<p>電電電
</p>
!! html/parsoid+langconv
<p><span typeof="mw:LanguageVariant" data-mw-variant='{"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-tw","t":"電電電"}]}'>電電電</span></p>
!! end

# Unidirectional
# Fallback is not supported in unidirectional conversion.
# zh-hans/zh-sg will not use zh-cn's rules.

!! test
Unidirectional conversion (zh)
!! options
language=zh htmlVariantLanguage=zh
!! wikitext
-{H|電電電=>zh-cn:气气气}-
馬马: 電電電, 气气气
!! html/php
<p>
馬马: 電電電, 气气气
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"oneway":[{"f":"電電電","l":"zh-cn","t":"气气气"}]}'/>
馬马: 電電電, 气气气</p>
!! end

!! test
Unidirectional conversion (zh-hans)
!! options
language=zh htmlVariantLanguage=zh-hans,zh-my,zh-sg
!! wikitext
-{H|電電電=>zh-cn:气气气}-
馬马: 電電電, 气气气
!! html/php
<p>
马马: 电电电, 气气气
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"oneway":[{"f":"電電電","l":"zh-cn","t":"气气气"}]}'/>
马马: 电电电, 气气气</p>
!! end

!! test
Unidirectional conversion (zh-cn)
!! options
language=zh htmlVariantLanguage=zh-cn
!! wikitext
-{H|電電電=>zh-cn:气气气}-
馬马: 電電電, 气气气
!! html/php
<p>
马马: 气气气, 气气气
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"oneway":[{"f":"電電電","l":"zh-cn","t":"气气气"}]}'/>
马马: 气气气, 气气气</p>
!! end

!! test
Unidirectional conversion (zh-hant)
!! options
language=zh htmlVariantLanguage=zh-hant,zh-hk,zh-mo,zh-tw
!! wikitext
-{H|電電電=>zh-cn:气气气}-
馬马: 電電電, 气气气
!! html/php
<p>
馬馬: 電電電, 氣氣氣
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"oneway":[{"f":"電電電","l":"zh-cn","t":"气气气"}]}'/>
馬馬: 電電電, 氣氣氣</p>
!! end

# Similarly, zh-cn will not use zh-hans's rules.

!! test
Unidirectional conversion 2 (zh)
!! options
language=zh htmlVariantLanguage=zh
!! wikitext
-{H|電電電=>zh-hans:气气气}-
馬马: 電電電, 气气气
!! html/php
<p>
馬马: 電電電, 气气气
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"oneway":[{"f":"電電電","l":"zh-hans","t":"气气气"}]}'/>
馬马: 電電電, 气气气</p>
!! end

!! test
Unidirectional conversion 2 (zh-cn)
!! options
language=zh htmlVariantLanguage=zh-cn,zh-my,zh-sg
!! wikitext
-{H|電電電=>zh-hans:气气气}-
馬马: 電電電, 气气气
!! html/php
<p>
马马: 电电电, 气气气
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"oneway":[{"f":"電電電","l":"zh-hans","t":"气气气"}]}'/>
马马: 电电电, 气气气</p>
!! end

!! test
Unidirectional conversion 2 (zh-hans)
!! options
language=zh htmlVariantLanguage=zh-hans
!! wikitext
-{H|電電電=>zh-hans:气气气}-
馬马: 電電電, 气气气
!! html/php
<p>
马马: 气气气, 气气气
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"oneway":[{"f":"電電電","l":"zh-hans","t":"气气气"}]}'/>
马马: 气气气, 气气气</p>
!! end

!! test
Unidirectional conversion 2 (zh-hant)
!! options
language=zh htmlVariantLanguage=zh-hant,zh-hk,zh-mo,zh-tw
!! wikitext
-{H|電電電=>zh-hans:气气气}-
馬马: 電電電, 气气气
!! html/php
<p>
馬馬: 電電電, 氣氣氣
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"oneway":[{"f":"電電電","l":"zh-hans","t":"气气气"}]}'/>
馬馬: 電電電, 氣氣氣</p>
!! end

# Disabled

!! test
Disable language conversion
!! options
language=zh htmlVariantLanguage=zh,zh-hans,zh-cn,zh-my,zh-sg,zh-hant,zh-hk,zh-mo,zh-tw
!! wikitext
-{氣气}-
!! html/php
<p>氣气
</p>
!! html/parsoid+langconv
<p><span typeof="mw:LanguageVariant" data-mw-variant='{"disabled":{"t":"氣气"}}'>氣气</span></p>
!! end

!! test
Disable language conversion (alternate form)
!! options
language=zh htmlVariantLanguage=zh,zh-hans,zh-cn,zh-my,zh-sg,zh-hant,zh-hk,zh-mo,zh-tw
!! wikitext
-{R|氣气}-
!! html/php
<p>氣气
</p>
!! html/parsoid+langconv
<p><span typeof="mw:LanguageVariant" data-mw-variant='{"disabled":{"t":"氣气"}}'>氣气</span></p>
!! end

!! test
Semi-disabled conversion (zh)
!! options
language=zh htmlVariantLanguage=zh
!! wikitext
-{H|zh-hant:電電電;zh-hans:气气气}-
電電電 气气气

電-{}-電電 气-{}-气气
!! html/php
<p>
電電電 气气气
</p><p>電電電 气气气
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-hant","t":"電電電"},{"l":"zh-hans","t":"气气气"}]}'/>
電電電 气气气</p>
<p>電<span typeof="mw:LanguageVariant" data-mw-variant='{"disabled":{"t":""}}'></span>電電 气<span typeof="mw:LanguageVariant" data-mw-variant='{"disabled":{"t":""}}'></span>气气</p>
!! end

!! test
Semi-disabled conversion (zh-hans)
!! options
language=zh htmlVariantLanguage=zh-cn,zh-my,zh-sg
!! wikitext
-{H|zh-hant:電電電;zh-hans:气气气}-
電電電 气气气

電-{}-電電 气-{}-气气
!! html/php
<p>
气气气 气气气
</p><p>电电电 气气气
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-hant","t":"電電電"},{"l":"zh-hans","t":"气气气"}]}'/>
气气气 气气气</p>
<p>电<span typeof="mw:LanguageVariant" data-mw-variant='{"disabled":{"t":""}}'></span>电电 气<span typeof="mw:LanguageVariant" data-mw-variant='{"disabled":{"t":""}}'></span>气气</p>
!! end

!! test
Semi-disabled conversion (zh-hant)
!! options
language=zh htmlVariantLanguage=zh-hk,zh-mo,zh-tw
!! wikitext
-{H|zh-hant:電電電;zh-hans:气气气}-
電電電 气气气

電-{}-電電 气-{}-气气
!! html/php
<p>
電電電 電電電
</p><p>電電電 氣氣氣
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-hant","t":"電電電"},{"l":"zh-hans","t":"气气气"}]}'/>
電電電 電電電</p>
<p>電<span typeof="mw:LanguageVariant" data-mw-variant='{"disabled":{"t":""}}'></span>電電 氣<span typeof="mw:LanguageVariant" data-mw-variant='{"disabled":{"t":""}}'></span>氣氣</p>
!! end

### Common Conversion flags ###

# H flag
# zh-hans and zh-hant are simply scripts and won't apply bidirectional rules
# See also the `$manualLevel` parameter in LanguageConverter

!! test
Insert a conversion rule without output (zh)
!! options
language=zh htmlVariantLanguage=zh
!! wikitext
-{H|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}-
馬马: 气气气, 馬馬馬, 電電電
!! html/php
<p>
馬马: 气气气, 馬馬馬, 電電電
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/>
馬马: 气气气, 馬馬馬, 電電電
</p>
!! end

!! test
Insert a conversion rule without output (zh-hans)
!! options
language=zh htmlVariantLanguage=zh-hans
!! wikitext
-{H|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}-
馬马: 气气气, 馬馬馬, 電電電
!! html/php
<p>
马马: 气气气, 马马马, 电电电
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/>
马马: 气气气, 马马马, 电电电
</p>
!! end

!! test
Insert a conversion rule without output (zh-cn)
!! options
language=zh htmlVariantLanguage=zh-cn,zh-my,zh-sg
!! wikitext
-{H|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}-
馬马: 气气气, 馬馬馬, 電電電
!! html/php
<p>
马马: 气气气, 气气气, 气气气
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/>
马马: 气气气, 气气气, 气气气
</p>
!! end

!! test
Insert a conversion rule without output (zh-hant)
!! options
language=zh htmlVariantLanguage=zh-hant
!! wikitext
-{H|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}-
馬马: 气气气, 馬馬馬, 電電電
!! html/php
<p>
馬馬: 氣氣氣, 馬馬馬, 電電電
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/>
馬馬: 氣氣氣, 馬馬馬, 電電電
</p>
!! end

!! test
Insert a conversion rule without output (zh-hk)
!! options
language=zh htmlVariantLanguage=zh-hk,zh-mo
!! wikitext
-{H|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}-
馬马: 气气气, 馬馬馬, 電電電
!! html/php
<p>
馬馬: 馬馬馬, 馬馬馬, 馬馬馬
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/>
馬馬: 馬馬馬, 馬馬馬, 馬馬馬
</p>
!! end

!! test
Insert a conversion rule without output (zh-tw)
!! options
language=zh htmlVariantLanguage=zh-tw
!! wikitext
-{H|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}-
馬马: 气气气, 馬馬馬, 電電電
!! html/php
<p>
馬馬: 電電電, 電電電, 電電電
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/>
馬馬: 電電電, 電電電, 電電電
</p>
!! end

# A flag

!! test
Insert a conversion rule with a result in the current language (zh)
!! options
language=zh htmlVariantLanguage=zh
!! wikitext
-{A|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}-

气气气, 馬馬馬, 電電電
!! html/php
<p>气气气
</p><p>气气气, 馬馬馬, 電電電
</p>
!! html/parsoid+langconv
<p><span typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'>气气气</span></p>
<p>气气气, 馬馬馬, 電電電</p>
!! end

!! test
Insert a conversion rule with a result in the current language (zh-hans)
!! options
language=zh htmlVariantLanguage=zh-hans
!! wikitext
-{A|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}-

气气气, 馬馬馬, 電電電
!! html/php
<p>气气气
</p><p>气气气, 马马马, 电电电
</p>
!! html/parsoid+langconv
<p><span typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'>气气气</span></p>
<p>气气气, 马马马, 电电电</p>
!! end

!! test
Insert a conversion rule with a result in the current language (zh-cn)
!! options
language=zh htmlVariantLanguage=zh-cn,zh-my,zh-sg
!! wikitext
-{A|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}-

气气气, 馬馬馬, 電電電
!! html/php
<p>气气气
</p><p>气气气, 气气气, 气气气
</p>
!! html/parsoid+langconv
<p><span typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'>气气气</span></p>
<p>气气气, 气气气, 气气气</p>
!! end

!! test
Insert a conversion rule with a result in the current language (zh-hant)
!! options
language=zh htmlVariantLanguage=zh-hant
!! wikitext
-{A|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}-

气气气, 馬馬馬, 電電電
!! html/php
<p>電電電
</p><p>氣氣氣, 馬馬馬, 電電電
</p>
!! html/parsoid+langconv
<p><span typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'>電電電</span></p>
<p>氣氣氣, 馬馬馬, 電電電</p>
!! end

!! test
Insert a conversion rule with a result in the current language (zh-hk)
!! options
language=zh htmlVariantLanguage=zh-hk,zh-mo
!! wikitext
-{A|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}-

气气气, 馬馬馬, 電電電
!! html/php
<p>馬馬馬
</p><p>馬馬馬, 馬馬馬, 馬馬馬
</p>
!! html/parsoid+langconv
<p><span typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'>馬馬馬</span></p>
<p>馬馬馬, 馬馬馬, 馬馬馬</p>
!! end

!! test
Insert a conversion rule with a result in the current language (zh-tw)
!! options
language=zh htmlVariantLanguage=zh-tw
!! wikitext
-{A|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}-

气气气, 馬馬馬, 電電電
!! html/php
<p>電電電
</p><p>電電電, 電電電, 電電電
</p>
!! html/parsoid+langconv
<p><span typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'>電電電</span></p>
<p>電電電, 電電電, 電電電</p>
!! end

# - flag

!! test
Remove existing conversion rule (zh)
!! options
language=zh htmlVariantLanguage=zh
!! wikitext
-{H|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}- <!-- Add a rule -->
+ 气气气, 馬馬馬, 電電電

-{-|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}- <!-- Remove a rule -->
- 气气气, 馬馬馬, 電電電
!! html/php
<p> 
+ 气气气, 馬馬馬, 電電電
</p><p> 
- 气气气, 馬馬馬, 電電電
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/> <!-- Add a rule -->
+ 气气气, 馬馬馬, 電電電</p>
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"remove":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/> <!-- Remove a rule -->
- 气气气, 馬馬馬, 電電電</p>
!! end

!! test
Remove existing conversion rule (zh-hans)
!! options
language=zh htmlVariantLanguage=zh-hans
!! wikitext
-{H|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}- <!-- Add a rule -->
+ 气气气, 馬馬馬, 電電電

-{-|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}- <!-- Remove a rule -->
- 气气气, 馬馬馬, 電電電
!! html/php
<p> 
+ 气气气, 马马马, 电电电
</p><p> 
- 气气气, 马马马, 电电电
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/> <!-- Add a rule -->
+ 气气气, 马马马, 电电电</p>
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"remove":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/> <!-- Remove a rule -->
- 气气气, 马马马, 电电电</p>
!! end

!! test
Remove existing conversion rule (zh-cn)
!! options
language=zh htmlVariantLanguage=zh-cn,zh-my,zh-sg
!! wikitext
-{H|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}- <!-- Add a rule -->
+ 气气气, 馬馬馬, 電電電

-{-|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}- <!-- Remove a rule -->
- 气气气, 馬馬馬, 電電電
!! html/php
<p> 
+ 气气气, 气气气, 气气气
</p><p> 
- 气气气, 马马马, 电电电
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/> <!-- Add a rule -->
+ 气气气, 气气气, 气气气</p>
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"remove":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/> <!-- Remove a rule -->
- 气气气, 马马马, 电电电</p>
!! end

!! test
Remove existing conversion rule (zh-hant)
!! options
language=zh htmlVariantLanguage=zh-hant
!! wikitext
-{H|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}- <!-- Add a rule -->
+ 气气气, 馬馬馬, 電電電

-{-|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}- <!-- Remove a rule -->
- 气气气, 馬馬馬, 電電電
!! html/php
<p> 
+ 氣氣氣, 馬馬馬, 電電電
</p><p> 
- 氣氣氣, 馬馬馬, 電電電
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/> <!-- Add a rule -->
+ 氣氣氣, 馬馬馬, 電電電</p>
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"remove":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/> <!-- Remove a rule -->
- 氣氣氣, 馬馬馬, 電電電</p>
!! end

!! test
Remove existing conversion rule (zh-hk)
!! options
language=zh htmlVariantLanguage=zh-hk,zh-mo
!! wikitext
-{H|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}- <!-- Add a rule -->
+ 气气气, 馬馬馬, 電電電

-{-|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}- <!-- Remove a rule -->
- 气气气, 馬馬馬, 電電電
!! html/php
<p> 
+ 馬馬馬, 馬馬馬, 馬馬馬
</p><p> 
- 氣氣氣, 馬馬馬, 電電電
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/> <!-- Add a rule -->
+ 馬馬馬, 馬馬馬, 馬馬馬</p>
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"remove":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/> <!-- Remove a rule -->
- 氣氣氣, 馬馬馬, 電電電</p>
!! end

!! test
Remove existing conversion rule (zh-tw)
!! options
language=zh htmlVariantLanguage=zh-tw
!! wikitext
-{H|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}- <!-- Add a rule -->
+ 气气气, 馬馬馬, 電電電

-{-|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}- <!-- Remove a rule -->
- 气气气, 馬馬馬, 電電電
!! html/php
<p> 
+ 電電電, 電電電, 電電電
</p><p> 
- 氣氣氣, 馬馬馬, 電電電
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/> <!-- Add a rule -->
+ 電電電, 電電電, 電電電</p>
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"remove":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/> <!-- Remove a rule -->
- 氣氣氣, 馬馬馬, 電電電</p>
!! end

# T flag

!! test
Override page title (zh)
!! options
title=[[馬马]]
language=zh htmlVariantLanguage=zh
showtitle
!! wikitext
-{T|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}-
!! metadata+langconv
<span lang="zh" dir="ltr"><span class="mw-page-title-main">馬马</span></span>
!! html/php
<p class="mw-empty-elt">
</p>
!! html/parsoid+langconv
<p class="mw-empty-elt"><meta typeof="mw:LanguageVariant" data-mw-variant='{"title":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/></p>
!! end

!! test
Override page title (zh-hans)
!! options
title=[[馬马]]
language=zh htmlVariantLanguage=zh-hans,zh-cn,zh-my,zh-sg
showtitle
!! wikitext
-{T|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}-
!! metadata+langconv
气气气
!! html/php
<p class="mw-empty-elt">
</p>
!! html/parsoid+langconv
<p class="mw-empty-elt"><meta typeof="mw:LanguageVariant" data-mw-variant='{"title":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/></p>
!! end

!! test
Override page title (zh-hk)
!! options
title=[[馬马]]
language=zh htmlVariantLanguage=zh-hk,zh-mo
showtitle
!! wikitext
-{T|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}-
!! metadata+langconv
馬馬馬
!! html/php
<p class="mw-empty-elt">
</p>
!! html/parsoid+langconv
<p class="mw-empty-elt"><meta typeof="mw:LanguageVariant" data-mw-variant='{"title":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/></p>
!! end

!! test
Override page title (zh-tw)
!! options
title=[[馬马]]
language=zh htmlVariantLanguage=zh-tw
showtitle
!! wikitext
-{T|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}-
!! metadata+langconv
電電電
!! html/php
<p class="mw-empty-elt">
</p>
!! html/parsoid+langconv
<p class="mw-empty-elt"><meta typeof="mw:LanguageVariant" data-mw-variant='{"title":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/></p>
!! end

!! test
DISPLAYTITLE takes precedence over -{T|...}- and is not converted
!! config
wgAllowDisplayTitle=true
wgRestrictDisplayTitle=false
!! options
title=[[氣]]
language=zh htmlVariantLanguage=zh-hans
showtitle
!! wikitext
{{DISPLAYTITLE:馬}}
!! metadata+langconv
馬
!! html/php
!! html/parsoid+langconv
<span data-mw='{"parts":[{"template":{"target":{"wt":"DISPLAYTITLE:馬","function":"displaytitle"},"params":{},"i":0}}]}' typeof="mw:Transclusion"></span>
!! end

!! test
DISPLAYTITLE takes precedence over -{T|...}- and -{...}- markup is not converted
!! config
wgAllowDisplayTitle=true
wgRestrictDisplayTitle=false
!! options
title=[[氣]]
language=zh htmlVariantLanguage=zh-hans
showtitle
!! wikitext
{{DISPLAYTITLE:-{zh-cn:气气气;zh-tw:電電電}-}}
!! metadata+langconv
-{zh-cn:气气气;zh-tw:電電電}-
!! html/php
!! html/parsoid+langconv
<span data-mw='{"parts":[{"template":{"target":{"wt":"DISPLAYTITLE:-{zh-cn:气气气;zh-tw:電電電}-","function":"displaytitle"},"params":{},"i":0}}]}' typeof="mw:Transclusion"></span>
!! end

!! test
Default title conversion, traditional (T36514)
!! options
title=[[气]]
language=zh htmlVariantLanguage=zh-hant
showtitle
!! wikitext
ignore
!! metadata+langconv
<span lang="zh-Hant" dir="ltr"><span class="mw-page-title-main">氣</span></span>
!! html/php
<p>ignore
</p>
!! html/parsoid+langconv
<p>ignore</p>
!! end

!! test
Default title conversion, simplified (T36514)
!! options
title=[[氣]]
language=zh htmlVariantLanguage=zh-hans
showtitle
!! wikitext
ignore
!! metadata+langconv
<span lang="zh-Hans" dir="ltr"><span class="mw-page-title-main">气</span></span>
!! html/php
<p>ignore
</p>
!! html/parsoid+langconv
<p>ignore</p>
!! end

!! test
Disable title conversion w/ NOCONTENTCONVERT, traditional (T424773)
!! options
title=[[气]]
language=zh htmlVariantLanguage=zh-hant
showtitle
!! wikitext
__NOCONTENTCONVERT__
!! metadata+langconv
气
!! html/php

!! html/parsoid+langconv
<meta property="mw:PageProp/nocontentconvert"/>
!! end

!! test
Disable title conversion w/ NOTITLECONVERT, simplified (T424773)
!! options
title=[[氣]]
language=zh htmlVariantLanguage=zh-hans
showtitle
!! wikitext
__NOTITLECONVERT__
!! metadata+langconv
氣
!! html/php

!! html/parsoid+langconv
<meta property="mw:PageProp/notitleconvert"/>
!! end

# D flag

!! test
Describe bidirectional conversion rule
!! options
language=zh htmlVariantLanguage=zh,zh-hans,zh-cn,zh-my,zh-sg,zh-hant,zh-hk,zh-mo,zh-tw
!! wikitext
-{D|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}-
!! html/php
<p>大陆：气气气；香港：馬馬馬；臺灣：電電電；
</p>
!! html/parsoid+langconv
<p><span typeof="mw:LanguageVariant" data-mw-variant='{"describe":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'>大陆：气气气；香港：馬馬馬；臺灣：電電電；</span></p>
!! end

!! test
Describe unidirectional conversion rule
!! options
language=zh htmlVariantLanguage=zh,zh-hans,zh-cn,zh-my,zh-sg,zh-hant,zh-hk,zh-mo,zh-tw
!! wikitext
-{D;H|電電電=>zh-cn:气气气}-
!! html/php
<p>電電電⇒大陆：气气气；
</p>
!! html/parsoid+langconv
<p><span typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"describe":true,"oneway":[{"f":"電電電","l":"zh-cn","t":"气气气"}]}'>電電電⇒大陆：气气气；</span></p>
!! end

# N flag

!! test
Localized language names
!! options
language=zh htmlVariantLanguage=zh-Hans-CN
!! wikitext
-{N|zh-cn}-

-{N|zh-tw}-

-{N|sr-Cyrl}-
!! html/php
<p>大陆
</p><p>臺灣
</p><p>српски (ћирилица)
</p>
!! html/parsoid+langconv
<p><span typeof="mw:LanguageVariant" data-mw-variant='{"name":{"t":"zh-cn"}}'>大陆</span></p>
<p><span typeof="mw:LanguageVariant" data-mw-variant='{"name":{"t":"zh-tw"}}'>臺灣</span></p>
<p><span typeof="mw:LanguageVariant" data-mw-variant='{"name":{"t":"sr-Cyrl"}}'>српски (ћирилица)</span></p>
!! end

### Combined conversion flags ###

!! test
Only consider certain variants for conversion (zh)
!! options
language=zh htmlVariantLanguage=zh
!! wikitext
-{H|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}-
馬马 1: -{zh;zh-hans;zh-hant|气气气, 馬馬馬, 電電電}-

馬马 2: -{zh;zh-cn;zh-hk|气气气, 馬馬馬, 電電電}-
!! html/php
<p>
馬马 1: 气气气, 馬馬馬, 電電電
</p><p>馬马 2: 气气气, 馬馬馬, 電電電
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/>
馬马 1: <span typeof="mw:LanguageVariant" data-mw-variant='{"filter":{"l":["zh","zh-hans","zh-hant"],"t":"气气气, 馬馬馬, 電電電"}}'>气气气, 馬馬馬, 電電電</span></p>
<p>馬马 2: <span typeof="mw:LanguageVariant" data-mw-variant='{"filter":{"l":["zh","zh-cn","zh-hk"],"t":"气气气, 馬馬馬, 電電電"}}'>气气气, 馬馬馬, 電電電</span></p>
!! end

!! test
Only consider certain variants for conversion (zh-hans)
!! options
language=zh htmlVariantLanguage=zh-hans,zh-cn,zh-my,zh-sg
!! wikitext
-{H|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}-
馬马 1: -{zh;zh-hans;zh-hant|气气气, 馬馬馬, 電電電}-

馬马 2: -{zh;zh-cn;zh-hk|气气气, 馬馬馬, 電電電}-
!! html/php
<p>
马马 1: 气气气, 马马马, 电电电
</p><p>马马 2: 气气气, 气气气, 气气气
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/>
马马 1: <span typeof="mw:LanguageVariant" data-mw-variant='{"filter":{"l":["zh","zh-hans","zh-hant"],"t":"气气气, 馬馬馬, 電電電"}}'>气气气, 马马马, 电电电</span></p>
<p>马马 2: <span typeof="mw:LanguageVariant" data-mw-variant='{"filter":{"l":["zh","zh-cn","zh-hk"],"t":"气气气, 馬馬馬, 電電電"}}'>气气气, 气气气, 气气气</span></p>
!! end

!! test
Only consider certain variants for conversion (zh-hant)
!! options
language=zh htmlVariantLanguage=zh-hant,zh-hk,zh-mo,zh-tw
!! wikitext
-{H|zh-cn:气气气;zh-hk:馬馬馬;zh-tw:電電電;}-
馬马 1: -{zh;zh-hans;zh-hant|气气气, 馬馬馬, 電電電}-

馬马 2: -{zh;zh-cn;zh-hk|气气气, 馬馬馬, 電電電}-
!! html/php
<p>
馬馬 1: 氣氣氣, 馬馬馬, 電電電
</p><p>馬馬 2: 馬馬馬, 馬馬馬, 馬馬馬
</p>
!! html/parsoid+langconv
<p><meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"twoway":[{"l":"zh-cn","t":"气气气"},{"l":"zh-hk","t":"馬馬馬"},{"l":"zh-tw","t":"電電電"}]}'/>
馬馬 1: <span typeof="mw:LanguageVariant" data-mw-variant='{"filter":{"l":["zh","zh-hans","zh-hant"],"t":"气气气, 馬馬馬, 電電電"}}'>氣氣氣, 馬馬馬, 電電電</span></p>
<p>馬馬 2: <span typeof="mw:LanguageVariant" data-mw-variant='{"filter":{"l":["zh","zh-cn","zh-hk"],"t":"气气气, 馬馬馬, 電電電"}}'>馬馬馬, 馬馬馬, 馬馬馬</span></p>
!! end

### TOC conversion ###

!! test
TOC conversion to traditional (T424773)
!! config
wgFragmentMode=[ "html5", "legacy" ]
!! options
language=zh htmlVariantLanguage=zh-hant
showtocdata
parsoid={
	"modes": [ "wt2html" ],
	"wrapSections": true
}
!! wikitext
==气==
!! metadata+langconv
Sections:
 h2 index:1 toclevel:1 number:1 title:Parser_test off:0 anchor/linkAnchor:气 line:氣
!! html/php
<div class="mw-heading mw-heading2"><h2 id="气"><span id=".E6.B0.94"></span>氣</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="編輯章節：氣">編輯</a><span class="mw-editsection-bracket">]</span></span></div>
!! html/parsoid+langconv
<section data-mw-section-id="0"></section><section data-mw-section-id="1">
<h2 id="气"><span id=".E6.B0.94" typeof="mw:FallbackId"></span>氣</h2>
</section>
!! end

!! test
TOC conversion to traditional, disabled with __NOCONTENTCONVERT__ (T424773)
!! config
wgFragmentMode=[ "html5", "legacy" ]
!! options
language=zh htmlVariantLanguage=zh-hant
showtocdata
parsoid={
	"modes": [ "wt2html" ],
	"wrapSections": true
}
!! wikitext
==气==
__NOCONTENTCONVERT__
!! metadata+langconv
Sections:
 h2 index:1 toclevel:1 number:1 title:Parser_test off:0 anchor/linkAnchor:气 line:气
!! html/php
<div class="mw-heading mw-heading2"><h2 id="气"><span id=".E6.B0.94"></span>气</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="編輯章節：气">編輯</a><span class="mw-editsection-bracket">]</span></span></div>
!! html/parsoid+langconv
<section data-mw-section-id="0"></section><section data-mw-section-id="1">
<h2 id="气"><span id=".E6.B0.94" typeof="mw:FallbackId"></span>气</h2>
<meta property="mw:PageProp/nocontentconvert"/></section>
!! end

### Exceptions ###
!! test
Conversion skips <pre> and <code>
!! options
language=zh htmlVariantLanguage=zh,zh-hans,zh-cn,zh-my,zh-sg,zh-hant,zh-hk,zh-mo,zh-tw
!! wikitext
<pre>氣气</pre>
<code>氣气</code>
!! html/php
<pre>氣气</pre>
<p><code>氣气</code>
</p>
!! html/parsoid+langconv
<pre typeof="mw:Extension/pre" data-mw='{"name":"pre","attrs":{},"body":{"extsrc":"氣气"}}'>氣气</pre>
<p><code>氣气</code></p>
!! end

!! test
"Force convert" of <pre>
!! options
language=zh htmlVariantLanguage=zh-hans
!! wikitext
<pre>氣-{}-气</pre>
!! html/php
<pre>气气</pre>
!! html/parsoid+langconv
<pre typeof="mw:Extension/pre" data-mw='{"name":"pre","attrs":{},"body":{"extsrc":"氣-{}-气"}}'>气气</pre>
!! end

!! test
"Force convert" of <code>
!! options
language=zh htmlVariantLanguage=zh-hant
!! wikitext
<code>氣-{}-气</code>
!! html/php
<p><code>氣氣</code>
</p>
!! html/parsoid+langconv
<p><code>氣<span typeof="mw:LanguageVariant" data-mw-variant='{"disabled":{"t":""}}'></span>氣</code></p>
!! end

!! test
__NOCONTENTCONVERT__ should prevent conversion (T424773)
!! options
language=zh htmlVariantLanguage=zh-hant
property=nocontentconvert
!! wikitext
__NOCONTENTCONVERT__
氣 气
!! metadata
property[nocontentconvert]=
!! html/php
<p>氣 气
</p>
!! html/parsoid+langconv
<meta property="mw:PageProp/nocontentconvert"/>
<p>氣 气</p>
!! end
