Jump to content

Template:Localized link

From Project Reproka
Revision as of 06:07, 3 July 2025 by mediawikiwiki>Shirayuki (Marked this version for translation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

<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:Script error: No such module "string".|0
          |
          | Script error: No such module "string".
        }}
        |{{#if:{{ Template:TNTN | nsp = 0 }}
          |{{ Template:TNTN | nsp = 0 }}
          |{{{1}}}
       }}
     }}
   }}
   |{{ Template:TNTN }}
 }}
 |{{#if:
   |{{#if:
     |
     |{{{1}}}
   }}
   |{{{1}}}
 }}

}}}}]]{{#ifeq:|

 |

}}[[:{{{1}}}| ]] Lua error: bad argument #1 to "get" (not a valid title).{{#if:Template:Tsh {{#switch:<translate></translate> | =

| #default=

 {{#switch:

| =

| #default=

 Lua error: expandTemplate: template loop detected.

}} }}

<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).

When linking to a section within a page, the section is not displayed in the link text.

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:Script error: No such module "string".|0
          |
          | Script error: No such module "string".
        }}
        |{{#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:Project Reproka:About|

 |

}}[[Special:MyLanguage/Project:About|{{#if: |{{{2}}} |{{#ifexist:Translations:{{#if:Project Reproka|Project Reproka:}}About/Page display title/en

 |{{#ifexpr:{{#if:|1|0}} and 4!=0
   |{{#ifeq:en|en
     |About
     |{{#if:
        |{{#ifeq:Script error: No such module "string".|0
          |
          | Script error: No such module "string".
        }}
        |{{#if:{{ Template:TNTN | nsp = 0 }}
          |{{ Template:TNTN | nsp = 0 }}
          |Project:About
       }}
     }}
   }}
   |{{ Template:TNTN }}
 }}
 |{{#if:
   |{{#if:About
     |About
     |Project:About
   }}
   |Project:About
 }}

}}}}]]{{#ifeq:Project Reproka:About|

 |

}} |- | Template:Tlx | {{#ifeq:Project Reproka:About|

 |

}}[[Special:MyLanguage/Project:About#See_also|{{#if: |{{{2}}} |{{#ifexist:Translations:{{#if:Project Reproka|Project Reproka:}}About/Page display title/en

 |{{#ifexpr:{{#if:|1|0}} and 4!=0
   |{{#ifeq:en|en
     |About
     |{{#if:
        |{{#ifeq:Script error: No such module "string".|0
          |
          | Script error: No such module "string".
        }}
        |{{#if:{{ Template:TNTN | nsp = 0 }}
          |{{ Template:TNTN | nsp = 0 }}
          |Project:About#See_also
       }}
     }}
   }}
   |{{ Template:TNTN }}
 }}
 |{{#if:
   |{{#if:About
     |About
     |Project:About#See_also
   }}
   |Project:About#See_also
 }}

}}}}]]{{#ifeq:Project Reproka:About|

 |

}} |- | Template:Tlx | {{#ifeq:Project Reproka:About|

 |

}}[[Special:MyLanguage/Project:About|{{#if: |{{{2}}} |{{#ifexist:Translations:{{#if:Project Reproka|Project Reproka:}}About/Page display title/en

 |{{#ifexpr:{{#if:0|1|0}} and 4!=0
   |{{#ifeq:en|en
     |About
     |{{#if:
        |{{#ifeq:Script error: No such module "string".|0
          |
          | Script error: No such module "string".
        }}
        |{{#if:{{ Template:TNTN | nsp = 0 }}
          |{{ Template:TNTN | nsp = 0 }}
          |Project:About
       }}
     }}
   }}
   |{{ Template:TNTN }}
 }}
 |{{#if:0
   |{{#if:About
     |About
     |Project:About
   }}
   |Project:About
 }}

}}}}]]{{#ifeq:Project Reproka:About|

 |

}} |Template:)

<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:Script error: No such module "string".|0
          |
          | Script error: No such module "string".
        }}
        |{{#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>

  1. <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:</translate> Learn more {{[[:Template:^(]]tvar name=1[[:Template:)^]]ll|Communication[[:Template:^(]]/tvar[[:Template:)^]]|about communication}}.
  2. <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:</translate> Learn more about [[:Template:^(]]tvar name=1[[:Template:)^]]{{ll|Communication}}[[:Template:^(]]/tvar[[:Template:)^]].
  3. <translate> For standalone links, such as in a list or table, translate only the link text if it differs from the name of the target page.</translate> <translate> This is useful for bulleted lists of links, e.g. in the "See also:" sections.</translate> <translate> Make sure to include the parameter name when adding translate tags inside template syntax.</translate>
    <translate> For example:</translate>
* {{ll|Project:About}}
* {{ll|Communication|2=[[:Template:^(]]translate[[:Template:)^]]About communication[[:Template:^(]]/translate[[:Template:)^]]}}

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>
  • {{{{#ifeq:Template:Translatable template|
 |

}}[[Special:MyLanguage/Template:Translatable template|{{#if: |{{{2}}} |{{#ifexist:Translations:{{#if:Template|Template:}}Translatable template/Page display title/en

 |{{#ifexpr:{{#if:0|1|0}} and 10!=0
   |{{#ifeq:en|en
     |Translatable template
     |{{#if:
        |{{#ifeq:Script error: No such module "string".|0
          |
          | Script error: No such module "string".
        }}
        |{{#if:{{ Template:TNTN | nsp = 0 }}
          |{{ Template:TNTN | nsp = 0 }}
          |Template:Translatable template
       }}
     }}
   }}
   |{{ Template:TNTN }}
 }}
 |{{#if:0
   |{{#if:Translatable template
     |Translatable template
     |Template:Translatable template
   }}
   |Template:Translatable template
 }}

}}}}]]{{#ifeq:Template:Translatable template|

 |

}} }} - <translate> alias <tvar name=1>{{{{#ifeq:Template:TNT|

 |

}}[[Special:MyLanguage/Template:TNT|{{#if: |{{{2}}} |{{#ifexist:Translations:{{#if:Template|Template:}}TNT/Page display title/en

 |{{#ifexpr:{{#if:0|1|0}} and 10!=0
   |{{#ifeq:en|en
     |TNT
     |{{#if:
        |{{#ifeq:Script error: No such module "string".|0
          |
          | Script error: No such module "string".
        }}
        |{{#if:{{ Template:TNTN | nsp = 0 }}
          |{{ Template:TNTN | nsp = 0 }}
          |Template:TNT
       }}
     }}
   }}
   |{{ Template:TNTN }}
 }}
 |{{#if:0
   |{{#if:TNT
     |TNT
     |Template:TNT
   }}
   |Template:TNT
 }}

}}}}]]{{#ifeq:Template:TNT|

 |

}} }}</tvar> or <tvar name=2>{{{{#ifeq:Template:Tnt|

 |

}}[[Special:MyLanguage/Template:tnt|{{#if: |{{{2}}} |{{#ifexist:Translations:{{#if:Template|Template:}}Tnt/Page display title/en

 |{{#ifexpr:{{#if:0|1|0}} and 10!=0
   |{{#ifeq:en|en
     |Tnt
     |{{#if:
        |{{#ifeq:Script error: No such module "string".|0
          |
          | Script error: No such module "string".
        }}
        |{{#if:{{ Template:TNTN | nsp = 0 }}
          |{{ Template:TNTN | nsp = 0 }}
          |Template:tnt
       }}
     }}
   }}
   |{{ Template:TNTN }}
 }}
 |{{#if:0
   |{{#if:Tnt
     |Tnt
     |Template:tnt
   }}
   |Template:tnt
 }}

}}}}]]{{#ifeq:Template:Tnt|

 |

}} }}</tvar></translate>

  • {{{{#ifeq:Template:Translatable template name|
 |

}}[[Special:MyLanguage/Template:Translatable template name|{{#if: |{{{2}}} |{{#ifexist:Translations:{{#if:Template|Template:}}Translatable template name/Page display title/en

 |{{#ifexpr:{{#if:0|1|0}} and 10!=0
   |{{#ifeq:en|en
     |Translatable template name
     |{{#if:
        |{{#ifeq:Script error: No such module "string".|0
          |
          | Script error: No such module "string".
        }}
        |{{#if:{{ Template:TNTN | nsp = 0 }}
          |{{ Template:TNTN | nsp = 0 }}
          |Template:Translatable template name
       }}
     }}
   }}
   |{{ Template:TNTN }}
 }}
 |{{#if:0
   |{{#if:Translatable template name
     |Translatable template name
     |Template:Translatable template name
   }}
   |Template:Translatable template name
 }}

}}}}]]{{#ifeq:Template:Translatable template name|

 |

}} }} - <translate> alias <tvar name=1>{{{{#ifeq:Template:TNTN|

 |

}}[[Special:MyLanguage/Template:TNTN|{{#if: |{{{2}}} |{{#ifexist:Translations:{{#if:Template|Template:}}TNTN/Page display title/en

 |{{#ifexpr:{{#if:0|1|0}} and 10!=0
   |{{#ifeq:en|en
     |TNTN
     |{{#if:
        |{{#ifeq:Script error: No such module "string".|0
          |
          | Script error: No such module "string".
        }}
        |{{#if:{{ Template:TNTN | nsp = 0 }}
          |{{ Template:TNTN | nsp = 0 }}
          |Template:TNTN
       }}
     }}
   }}
   |{{ Template:TNTN }}
 }}
 |{{#if:0
   |{{#if:TNTN
     |TNTN
     |Template:TNTN
   }}
   |Template:TNTN
 }}

}}}}]]{{#ifeq:Template:TNTN|

 |

}} }}</tvar> or <tvar name=2>{{{{#ifeq:Template:Tntn|

 |

}}[[Special:MyLanguage/Template:tntn|{{#if: |{{{2}}} |{{#ifexist:Translations:{{#if:Template|Template:}}Tntn/Page display title/en

 |{{#ifexpr:{{#if:0|1|0}} and 10!=0
   |{{#ifeq:en|en
     |Tntn
     |{{#if:
        |{{#ifeq:Script error: No such module "string".|0
          |
          | Script error: No such module "string".
        }}
        |{{#if:{{ Template:TNTN | nsp = 0 }}
          |{{ Template:TNTN | nsp = 0 }}
          |Template:tntn
       }}
     }}
   }}
   |{{ Template:TNTN }}
 }}
 |{{#if:0
   |{{#if:Tntn
     |Tntn
     |Template:tntn
   }}
   |Template:tntn
 }}

}}}}]]{{#ifeq:Template:Tntn|

 |

}} }}</tvar></translate>

  • {{{{#ifeq:Template:Page language link|
 |

}}[[Special:MyLanguage/Template:Page language link|{{#if: |{{{2}}} |{{#ifexist:Translations:{{#if:Template|Template:}}Page language link/Page display title/en

 |{{#ifexpr:{{#if:0|1|0}} and 10!=0
   |{{#ifeq:en|en
     |Page language link
     |{{#if:
        |{{#ifeq:Script error: No such module "string".|0
          |
          | Script error: No such module "string".
        }}
        |{{#if:{{ Template:TNTN | nsp = 0 }}
          |{{ Template:TNTN | nsp = 0 }}
          |Template:Page language link
       }}
     }}
   }}
   |{{ Template:TNTN }}
 }}
 |{{#if:0
   |{{#if:Page language link
     |Page language link
     |Template:Page language link
   }}
   |Template:Page language link
 }}

}}}}]]{{#ifeq:Template:Page language link|

 |

}} }} - <translate> alias <tvar name=1>{{{{#ifeq:Template:Pll|

 |

}}[[Special:MyLanguage/Template:pll|{{#if: |{{{2}}} |{{#ifexist:Translations:{{#if:Template|Template:}}Pll/Page display title/en

 |{{#ifexpr:{{#if:0|1|0}} and 10!=0
   |{{#ifeq:en|en
     |Pll
     |{{#if:
        |{{#ifeq:Script error: No such module "string".|0
          |
          | Script error: No such module "string".
        }}
        |{{#if:{{ Template:TNTN | nsp = 0 }}
          |{{ Template:TNTN | nsp = 0 }}
          |Template:pll
       }}
     }}
   }}
   |{{ Template:TNTN }}
 }}
 |{{#if:0
   |{{#if:Pll
     |Pll
     |Template:pll
   }}
   |Template:pll
 }}

}}}}]]{{#ifeq:Template:Pll|

 |

}} }}</tvar></translate> - <translate> add a link from a translatable page to another translatable page in the same language</translate>| [[Category:Template documentation pages{{#translation:}}]] }} [[Category:Internationalization templates{{#translation:}}]]