Check out my first novel, midnight's simulacra!
Template:Localized link
<languages/> {{#ifeq:|
|
}}[[Special:MyLanguage/{{{1}}}|{{#if: |{{{2}}} |{{#ifexist:Translations:{{#if:|:}}/Page display title/en
|{{#ifexpr:{{#if:|1|0}} and !=0 |{{#ifeq:en|en | |{{#if: |{{#ifeq:{{#invoke:string|find||:}}|0 | | {{#invoke:string|match||:(.*)}} }} |{{#if:{{ Template:TNTN | nsp = 0 }} |{{ Template:TNTN | nsp = 0 }} |{{{1}}} }} }} }} |{{ Template:TNTN }} }} |{{#if: |{{#if: | |{{{1}}} }} |{{{1}}} }}
}}}}]]{{#ifeq:|
|
}}
{{#ifeq: Localized link | sandbox|
Template:Template sandbox notice
}}Template:Template otherTemplate:Documentation/start box2 {{#switch: {{#if:Template:Tsh Template:High-use
<translate>
Purpose
</translate>
<translate> This helper template can be used to link to [[<tvar name=1>Special:LanguageStats</tvar>|translatable pages]] in the user's language.</translate>
<translate> It uses the special page prefix <tvar name=1>Special:MyLanguage/
</tvar>, which checks if there is a translated version of a page in the user's language, and links to it if there is one, and links to a fallback language where available, or the default wiki language version (English in MediaWiki) if there isn't.</translate>
<translate> It should be used in translated pages, so that they link to the right page even if there is no translated page in that language.
Usage
</translate> Template:Localized link/doc
<translate>
If the "<tvar name=1>nsp
</tvar>" parameter is not defined, as link text this displays the full pagename (including the namespace); otherwise — if the "<tvar name=1>nsp
</tvar>" parameter is defined to any value the link text displays the short pagename (without the namespace).
Examples of simple usage
</translate> Template:(| class="wikitable" |- ! <translate> Use</translate> ! <translate> Becomes</translate> |- | Template:Tlx | {{#ifeq:Communication|
|
}}[[Special:MyLanguage/Communication|{{#if: |{{{2}}} |{{#ifexist:Translations:{{#if:|:}}Communication/Page display title/en
|{{#ifexpr:{{#if:|1|0}} and 0!=0 |{{#ifeq:en|en |Communication |{{#if: |{{#ifeq:{{#invoke:string|find||:}}|0 | | {{#invoke:string|match||:(.*)}} }} |{{#if:{{ Template:TNTN | nsp = 0 }} |{{ Template:TNTN | nsp = 0 }} |Communication }} }} }} |{{ Template:TNTN }} }} |{{#if: |{{#if:Communication |Communication |Communication }} |Communication }}
}}}}]]{{#ifeq:Communication|
|
}}Template:Tlx | {{#ifeq:Communication|
|- ||
}}{{#if:コミュニケーション |コミュニケーション |コミュニケーション}}{{#ifeq:Communication|
|
}}Template:Tlx | {{#ifeq:dankwiki:About|
|- ||
}}[[Special:MyLanguage/Project:About|{{#if: |{{{2}}} |{{#ifexist:Translations:{{#if:dankwiki|dankwiki:}}About/Page display title/en
|{{#ifexpr:{{#if:|1|0}} and 4!=0 |{{#ifeq:en|en |About |{{#if: |{{#ifeq:{{#invoke:string|find||:}}|0 | | {{#invoke:string|match||:(.*)}} }} |{{#if:{{ Template:TNTN | nsp = 0 }} |{{ Template:TNTN | nsp = 0 }} |Project:About }} }} }} |{{ Template:TNTN }} }} |{{#if: |{{#if:About |About |Project:About }} |Project:About }}
}}}}]]{{#ifeq:dankwiki:About|
|
}}Template:Tlx | {{#ifeq:dankwiki:About|
|- ||
}}[[Special:MyLanguage/Project:About|{{#if: |{{{2}}} |{{#ifexist:Translations:{{#if:dankwiki|dankwiki:}}About/Page display title/en
|{{#ifexpr:{{#if:0|1|0}} and 4!=0 |{{#ifeq:en|en |About |{{#if: |{{#ifeq:{{#invoke:string|find||:}}|0 | | {{#invoke:string|match||:(.*)}} }} |{{#if:{{ Template:TNTN | nsp = 0 }} |{{ Template:TNTN | nsp = 0 }} |Project:About }} }} }} |{{ Template:TNTN }} }} |{{#if:0 |{{#if:About |About |Project:About }} |Project:About }}
}}}}]]{{#ifeq:dankwiki:About|
||
<translate>
Usage in translatable pages
On pages prepared for translation with the <tvar name=1>{{#ifeq:Extension:Translate|
|
}}[[Special:MyLanguage/Extension:Translate|{{#if: |{{{2}}} |{{#ifexist:Translations:{{#if:|:}}Extension:Translate/Page display title/en
|{{#ifexpr:{{#if:0|1|0}} and 0!=0 |{{#ifeq:en|en |Extension:Translate |{{#if: |{{#ifeq:{{#invoke:string|find||:}}|0 | | {{#invoke:string|match||:(.*)}} }} |{{#if:{{ Template:TNTN | nsp = 0 }} |{{ Template:TNTN | nsp = 0 }} |Extension:Translate }} }} }} |{{ Template:TNTN }} }} |{{#if:0 |{{#if:Extension:Translate |Extension:Translate |Extension:Translate }} |Extension:Translate }}
}}}}]]{{#ifeq:Extension:Translate|
|
}}
</tvar> extension, this template may be used in three ways. </translate>- <translate> Substitute this template, then embed the wikilink target in a <tvar name=1>
[[:Template:^(]]tvar name=id[[:Template:)^]]...[[:Template:^(]]/tvar[[:Template:)^]]
</tvar>, separate from the translatable text of the link.</translate>- <translate> For example, instead of <tvar name=1>
{{ll|Communication|About communication}}
</tvar>, the translation markup in the translatable page will be <tvar name=2>[[[[:Template:^(]]tvar name=1[[:Template:)^]]Special:MyLanguage/Communication[[:Template:^(]]/tvar[[:Template:)^]]|About communication]]
</tvar>.</translate>
- <translate> For example, instead of <tvar name=1>
- <translate> Alternatively, exclude this code from the translatable section.</translate>
- <translate> For example, for <tvar name=1>
some text {{ll|Communication|About communication}} some text
</tvar>, the translation markup in the translatable page will be:</translate> [[:Template:^(]]translate[[:Template:)^]]some text[[:Template:^(]]/translate[[:Template:)^]] [[:Template:((]]ll|Communication|2=[[:Template:^(]]translate[[:Template:)^]]About communication[[:Template:^(]]/translate[[:Template:)^]][[:Template:))]] [[:Template:^(]]translate[[:Template:)^]]some text[[:Template:^(]]/translate[[:Template:)^]]
- <translate> This is useful for bulleted lists of links, e.g. in the "See also:" sections.</translate>
- <translate> For example, for <tvar name=1>
- <translate> If link text is the same as the name of the target page, all of the code could also be embedded into <tvar name=1>Template:Tag</tvar>.</translate>
- <translate> For example, instead of <tvar name=1>Template:Tlx</tvar>, the wikicode in the translatable page will be <tvar name=2>
[[:Template:^(]]tvar name=1[[:Template:)^]][[:Template:((]]ll|Communication[[:Template:))]][[:Template:^(]]/tvar[[:Template:)^]]
</tvar>.</translate>
- <translate> For example, instead of <tvar name=1>Template:Tlx</tvar>, the wikicode in the translatable page will be <tvar name=2>
Test cases
Template:Localized link/testcases
<translate>
See also
</translate>
- Template:Localized link/messagedoc — <translate> should be used for message documentation in translatable pages that use this template.</translate>
- {{Translatable template}} - <translate> alias <tvar name=1>{{TNT}}</tvar> or <tvar name=2>{{tnt}}</tvar></translate>
- {{Translatable template name}} - <translate> alias <tvar name=1>{{TNTN}}</tvar> or <tvar name=2>{{tntn}}</tvar></translate>
- {{Page language link}} - <translate> alias <tvar name=1>{{pll}}</tvar></translate> - <translate> add a link from a translatable page to another translatable page in the same language</translate>|1|0}}{{#if:|1|0}}{{#ifexist:|1|0}}{{#ifexist:Template:Documentation/docspace:Template:Documentation/template page/doc|1|0}}
| 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 = Template:Tsh Template:High-use
<translate>
Purpose
</translate>
<translate> This helper template can be used to link to [[<tvar name=1>Special:LanguageStats</tvar>|translatable pages]] in the user's language.</translate>
<translate> It uses the special page prefix <tvar name=1>Special:MyLanguage/
</tvar>, which checks if there is a translated version of a page in the user's language, and links to it if there is one, and links to a fallback language where available, or the default wiki language version (English in MediaWiki) if there isn't.</translate>
<translate> It should be used in translated pages, so that they link to the right page even if there is no translated page in that language.
Usage
</translate> Template:Localized link/doc
<translate>
If the "<tvar name=1>nsp
</tvar>" parameter is not defined, as link text this displays the full pagename (including the namespace); otherwise — if the "<tvar name=1>nsp
</tvar>" parameter is defined to any value the link text displays the short pagename (without the namespace).
Examples of simple usage
</translate> Template:(| class="wikitable" |- ! <translate> Use</translate> ! <translate> Becomes</translate> |- | Template:Tlx | {{#ifeq:Communication|
|
}}[[Special:MyLanguage/Communication|{{#if: |{{{2}}} |{{#ifexist:Translations:{{#if:|:}}Communication/Page display title/en
|{{#ifexpr:{{#if:|1|0}} and 0!=0 |{{#ifeq:en|en |Communication |{{#if: |{{#ifeq:{{#invoke:string|find||:}}|0 | | {{#invoke:string|match||:(.*)}} }} |{{#if:{{ Template:TNTN | nsp = 0 }} |{{ Template:TNTN | nsp = 0 }} |Communication }} }} }} |{{ Template:TNTN }} }} |{{#if: |{{#if:Communication |Communication |Communication }} |Communication }}
}}}}]]{{#ifeq:Communication|
|
}}Template:Tlx | {{#ifeq:Communication|
|- ||
}}{{#if:コミュニケーション |コミュニケーション |コミュニケーション}}{{#ifeq:Communication|
|
}}Template:Tlx | {{#ifeq:dankwiki:About|
|- ||
}}[[Special:MyLanguage/Project:About|{{#if: |{{{2}}} |{{#ifexist:Translations:{{#if:dankwiki|dankwiki:}}About/Page display title/en
|{{#ifexpr:{{#if:|1|0}} and 4!=0 |{{#ifeq:en|en |About |{{#if: |{{#ifeq:{{#invoke:string|find||:}}|0 | | {{#invoke:string|match||:(.*)}} }} |{{#if:{{ Template:TNTN | nsp = 0 }} |{{ Template:TNTN | nsp = 0 }} |Project:About }} }} }} |{{ Template:TNTN }} }} |{{#if: |{{#if:About |About |Project:About }} |Project:About }}
}}}}]]{{#ifeq:dankwiki:About|
|
}}Template:Tlx | {{#ifeq:dankwiki:About|
|- ||
}}[[Special:MyLanguage/Project:About|{{#if: |{{{2}}} |{{#ifexist:Translations:{{#if:dankwiki|dankwiki:}}About/Page display title/en
|{{#ifexpr:{{#if:0|1|0}} and 4!=0 |{{#ifeq:en|en |About |{{#if: |{{#ifeq:{{#invoke:string|find||:}}|0 | | {{#invoke:string|match||:(.*)}} }} |{{#if:{{ Template:TNTN | nsp = 0 }} |{{ Template:TNTN | nsp = 0 }} |Project:About }} }} }} |{{ Template:TNTN }} }} |{{#if:0 |{{#if:About |About |Project:About }} |Project:About }}
}}}}]]{{#ifeq:dankwiki:About|
||
<translate>
Usage in translatable pages
On pages prepared for translation with the <tvar name=1>{{#ifeq:Extension:Translate|
|
}}[[Special:MyLanguage/Extension:Translate|{{#if: |{{{2}}} |{{#ifexist:Translations:{{#if:|:}}Extension:Translate/Page display title/en
|{{#ifexpr:{{#if:0|1|0}} and 0!=0 |{{#ifeq:en|en |Extension:Translate |{{#if: |{{#ifeq:{{#invoke:string|find||:}}|0 | | {{#invoke:string|match||:(.*)}} }} |{{#if:{{ Template:TNTN | nsp = 0 }} |{{ Template:TNTN | nsp = 0 }} |Extension:Translate }} }} }} |{{ Template:TNTN }} }} |{{#if:0 |{{#if:Extension:Translate |Extension:Translate |Extension:Translate }} |Extension:Translate }}
}}}}]]{{#ifeq:Extension:Translate|
|
}}
</tvar> extension, this template may be used in three ways. </translate>- <translate> Substitute this template, then embed the wikilink target in a <tvar name=1>
[[:Template:^(]]tvar name=id[[:Template:)^]]...[[:Template:^(]]/tvar[[:Template:)^]]
</tvar>, separate from the translatable text of the link.</translate>- <translate> For example, instead of <tvar name=1>
{{ll|Communication|About communication}}
</tvar>, the translation markup in the translatable page will be <tvar name=2>[[[[:Template:^(]]tvar name=1[[:Template:)^]]Special:MyLanguage/Communication[[:Template:^(]]/tvar[[:Template:)^]]|About communication]]
</tvar>.</translate>
- <translate> For example, instead of <tvar name=1>
- <translate> Alternatively, exclude this code from the translatable section.</translate>
- <translate> For example, for <tvar name=1>
some text {{ll|Communication|About communication}} some text
</tvar>, the translation markup in the translatable page will be:</translate> [[:Template:^(]]translate[[:Template:)^]]some text[[:Template:^(]]/translate[[:Template:)^]] [[:Template:((]]ll|Communication|2=[[:Template:^(]]translate[[:Template:)^]]About communication[[:Template:^(]]/translate[[:Template:)^]][[:Template:))]] [[:Template:^(]]translate[[:Template:)^]]some text[[:Template:^(]]/translate[[:Template:)^]]
- <translate> This is useful for bulleted lists of links, e.g. in the "See also:" sections.</translate>
- <translate> For example, for <tvar name=1>
- <translate> If link text is the same as the name of the target page, all of the code could also be embedded into <tvar name=1>Template:Tag</tvar>.</translate>
- <translate> For example, instead of <tvar name=1>Template:Tlx</tvar>, the wikicode in the translatable page will be <tvar name=2>
[[:Template:^(]]tvar name=1[[:Template:)^]][[:Template:((]]ll|Communication[[:Template:))]][[:Template:^(]]/tvar[[:Template:)^]]
</tvar>.</translate>
- <translate> For example, instead of <tvar name=1>Template:Tlx</tvar>, the wikicode in the translatable page will be <tvar name=2>
Test cases
Template:Localized link/testcases
<translate>
See also
</translate>
- Template:Localized link/messagedoc — <translate> should be used for message documentation in translatable pages that use this template.</translate>
- {{Translatable template}} - <translate> alias <tvar name=1>{{TNT}}</tvar> or <tvar name=2>{{tnt}}</tvar></translate>
- {{Translatable template name}} - <translate> alias <tvar name=1>{{TNTN}}</tvar> or <tvar name=2>{{tntn}}</tvar></translate>
- {{Page language link}} - <translate> alias <tvar name=1>{{pll}}</tvar></translate> - <translate> add a link from a translatable page to another translatable page in the same language</translate>
| 0110 | 0111 = {{ {{{1}}} }} | 0001 | 0011 = {{ Template:Documentation/docspace:Template:Documentation/template page/doc }} | 0000 | 0100 | 0010 | 0101 = }} Template:Documentation/end box2