Difference between revisions of "Template:Localize"

From Pathfinder Wiki
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
<includeonly><nowiki/>{{#vardefine:langSuffix|/{{PAGELANGUAGE}}}}{{#iferror:{{#expr:{{{1}}}+0}}|{{#vardefine:result|{{#lst:Localization:{{{2|All}}}{{#var:langSuffix}}|{{{1}}}}}}}|{{#vardefine:result|{{{1}}}}}}}{{#if:{{#var:result}}|{{#var:result}}|{{#vardefine:localizationErrorCategories|{{#var:localizationErrorCategories}}[[Category:Missing Localization/{{{2|All}}}/{{{1|unsupplied}}{{#var:langSuffix}}]]}}}}</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''. This category is saved in a variable callde '''localizationErrorCategories'''. This variable can be printed to the page by calling the Template [[Template:PrintLocalizationErrors]] at the end of the page.
+
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 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 17: Line 37:
 
<nowiki>{{</nowiki>Localize|Lorem ipsum}} &rarr; {{Localize|Lorem ipsum}}
 
<nowiki>{{</nowiki>Localize|Lorem ipsum}} &rarr; {{Localize|Lorem ipsum}}
  
<nowiki>{{</nowiki>Localize|Switzerland|Countries}} &rarr; {{Localize|Switzerland|Countries}}
+
<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}}
 
{{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