Difference between revisions of "Template:Localize"
DesignerThan (talk | contribs)  | 
				DesignerThan (talk | contribs)   | 
				||
| (15 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
| − | <includeonly  | + | <includeonly>{{#vardefine:lang|{{#invoke:String|replace|{{{language|{{PAGELANGUAGE}}}}}|/||}}}}{{#iferror:{{#expr:{{{1}}}+0}}  | 
| − | + |   |{{#vardefine:result|{{#cargo_query:tables=Localizations_{{{2|All}}}  | |
| − | + |       |fields=text  | |
| + |       |where=id="{{{1}}}/{{#var:lang}}"  | ||
| + |       |format=template  | ||
| + |       |template=LocalizeOutputQuery  | ||
| + |       |named args=yes  | ||
| + |       |default=}}  | ||
| + |    }}  | ||
| + |   |{{#vardefine:result|{{{1}}}}}  | ||
| + | }}{{#if:{{#var:result}}  | ||
| + |   |{{#var:result}}  | ||
| + |   |{{#vardefine:localizationErrorCategories|{{#var:localizationErrorCategories}}[[Category:Missing Localization/{{{2|All}}}/{{{1|unsupplied}}}/{{#var:lang}}]]}}  | ||
| + | }}</includeonly><noinclude>  | ||
| − | + | This template returns a localized version of a "canned" phrase that we use in the interfaces. The phrase is in the language of the page that invokes it, so if we call the template from   | |
| + | <nowiki>[[</nowiki>some page<nowiki>[[</nowiki>some page]], we'd get the English version of the page, but if we call it from <nowiki>[[</nowiki>some page/es]], we would get the Spanish version of the phrase.  | ||
| − | If no localization can be found (unless the argument is a number), the invoking page is added to a Category:Missing_Localization/''page''/''key''/''language''. This category is saved in a variable   | + | The template can also take a second argument to specify a different page in the Localization namespace. If omitted, the template defaults to searching [[:Localization:All]]. We may wish to use additional pages for things like honors, or the names of honor variants.  | 
| + | |||
| + | If no localization can be found (unless the argument is a number), the invoking page is added to a Category:Missing_Localization/''page''/''key''/''language''. This category is saved in a variable called '''localizationErrorCategories'''. This variable can be printed to the page by calling the Template [[Template:PrintLocalizationErrors]] at the end of the page.  | ||
In case of a missing localization the template will return an empty string, in other words, nothing.  | In case of a missing localization the template will return an empty string, in other words, nothing.  | ||
| − | We don't throw an error on a numeric argument so that we can pass in a year - sometimes the year is a number, and sometimes it's "Unknown".   | + | We don't throw an error on a numeric argument so that we can pass in a year - sometimes the year is a number, and sometimes it's "Unknown". We want to localize "Unknown" but pass the number through instead of returning a blank string.  | 
| − | Here   | + | Here are some examples:  | 
<nowiki>{{</nowiki>Localize|2021}} → {{Localize|2021}}  | <nowiki>{{</nowiki>Localize|2021}} → {{Localize|2021}}  | ||
| Line 17: | Line 31: | ||
<nowiki>{{</nowiki>Localize|Lorem ipsum}} → {{Localize|Lorem ipsum}}  | <nowiki>{{</nowiki>Localize|Lorem ipsum}} → {{Localize|Lorem ipsum}}  | ||
| − | <nowiki>{{</nowiki>Localize|Switzerland|Countries}} → {{Localize|Switzerland|Countries}}  | + | <nowiki>{{</nowiki>Localize|Switzerland|Countries|language=/es}} → {{Localize|Switzerland|Countries|language=/es}}  | 
| + | |||
| + | <nowiki>{{</nowiki>Localize|Switzerland|Countries|language=es}} → {{Localize|Switzerland|Countries|language=es}}  | ||
{{PrintLocalizationErrors}}  | {{PrintLocalizationErrors}}  | ||
| + | |||
| + | [[Category:Localization Templates]]  | ||
</noinclude>  | </noinclude>  | ||
Latest revision as of 02:21, 1 August 2024
This template returns a localized version of a "canned" phrase that we use in the interfaces. The phrase is in the language of the page that invokes it, so if we call the template from 
[[some page[[some page]], we'd get the English version of the page, but if we call it from [[some page/es]], we would get the Spanish version of the phrase.
The template can also take a second argument to specify a different page in the Localization namespace. If omitted, the template defaults to searching Localization:All. We may wish to use additional pages for things like honors, or the names of honor variants.
If no localization can be found (unless the argument is a number), the invoking page is added to a Category:Missing_Localization/page/key/language. This category is saved in a variable called localizationErrorCategories. This variable can be printed to the page by calling the Template Template:PrintLocalizationErrors at the end of the page. In case of a missing localization the template will return an empty string, in other words, nothing.
We don't throw an error on a numeric argument so that we can pass in a year - sometimes the year is a number, and sometimes it's "Unknown". We want to localize "Unknown" but pass the number through instead of returning a blank string.
Here are some examples: {{Localize|2021}} → 2021
{{Localize|Answer Key}} → Answer Key
{{Localize|Lorem ipsum}} →
{{Localize|Switzerland|Countries|language=/es}} → Suiza
{{Localize|Switzerland|Countries|language=es}} → Suiza
