Difference between revisions of "Template:Localize"

From Pathfinder Wiki
(in the case that the argument is a number but localization was called already the variable "result" probably had a value. In that case that was appended to the number. By redefining the variable and overwritting it with the number that shouldn't be an issue anymore)
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
<includeonly><nowiki/>{{#iferror:{{#expr:{{{1}}}+0}}|{{#vardefine:result|{{#lst:Localization:{{{2|All}}}{{GetLangSuffix}}|{{{1}}}}}}}|{{#vardefine:result|{{{1}}}}}}}{{#if:{{#var:result}}|{{#var:result}}|[[Category:Missing Localization/{{{2|All}}}/{{{1|unsupplied}}}{{GetLangSuffix}}]]}}</includeonly><noinclude>
+
<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}}{{#cargo_store:_table=UsageOfLocalizations|uniqueID={{PAGEID}}/{{{1}}}/{{#var:lang}}|id={{{1}}}|locPage={{{2|All}}}|lang={{#var:lang}}}}
 +
  |{{#vardefine:localizationErrorCategories|{{#var:localizationErrorCategories}}[[Category:Missing Localization/{{{2|All}}}/{{{1|unsupplied}}}/{{#var:lang}}]]}}
 +
}}</includeonly><noinclude>
 +
{{#cargo_declare:_table=UsageOfLocalizations
 +
|uniqueID=String (mandatory;unique)
 +
|id=String (mandatory)
 +
|locPage=String (mandatory)
 +
|lang=String (mandatory)
 +
}}
 +
 
 
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  
 
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.   
 
<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.   
Line 5: Line 25:
 
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.
 
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''.
+
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.
 
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 is an example:
+
Here are some examples:
 
<nowiki>{{</nowiki>Localize|2021}} &rarr; {{Localize|2021}}
 
<nowiki>{{</nowiki>Localize|2021}} &rarr; {{Localize|2021}}
  
Line 16: Line 37:
 
<nowiki>{{</nowiki>Localize|Lorem ipsum}} &rarr; {{Localize|Lorem ipsum}}
 
<nowiki>{{</nowiki>Localize|Lorem ipsum}} &rarr; {{Localize|Lorem ipsum}}
  
<nowiki>{{</nowiki>Localize|Switzerland|Answer Variants}} &rarr; {{Localize|Switzerland|Answer Variants}}
+
<nowiki>{{</nowiki>Localize|Switzerland|Countries|language=/es}} &rarr; {{Localize|Switzerland|Countries|language=/es}}
 +
 
 +
<nowiki>{{</nowiki>Localize|Switzerland|Countries|language=es}} &rarr; {{Localize|Switzerland|Countries|language=es}}
 +
 
 +
{{PrintLocalizationErrors}}
  
 +
[[Category:Localization Templates]]
 
</noinclude>
 
</noinclude>

Latest revision as of 18:35, 4 February 2022

This template defines the table "UsageOfLocalizations". View table. A replacement table has been generated for this table; View replacement table.

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