(обновление данных) |
(обновление данных) |
||
Строка 1: | Строка 1: | ||
<includeonly><!-- |
<includeonly><!-- |
||
+ | //trim |
||
⚫ | |||
⚫ | |||
⚫ | |||
+ | //autoload data if needed |
||
− | // localization info is autoloaded from Template:Coin/l10n |
||
+ | -->{{#if:{{#dplvar:l10n:{{#var:a1}}:{{#var:a3}}:1}}||<!-- needs autoload? |
||
− | |||
+ | -->{{#if:{{#or:{{#if:{{#dplvar:l10n:autoloaded:{{#var:a1}}}}||y}}|{{#dplvar:l10n:{{#var:a1}}:{{#var:a3}}:2}}}}|<!-- |
||
− | //retrieve values: |
||
+ | not autoloaded or this language is not fully loaded |
||
− | -->{{#if:{{#pos:{{lc:{{{1|}}}}}|c}}|<!-- API style B |
||
− | + | -->{{#vardefine:l10n:autoloading|{{#var:a3}}}}<!-- mark for to /l10n. |
|
+ | -->{{ {{#var:a1}}/l10n }}<!-- try to auto template:<namespace>/l10n |
||
− | -->{{#vardefine:gc| {{#rmatch:{{{1|}}}|/^.*(-?[0-9]*(\.[0-9]+)?)\s*gc.*$/iU|\1|0}} }}<!-- |
||
− | + | -->{{#vardefine:l10n:autoloading|}}<!-- reset. |
|
⚫ | |||
− | -->{{#vardefine:cc| {{#rmatch:{{{1|}}}|/^.*(-?[0-9]*(\.[0-9]+)?)\s*cc.*$/iU|\1|0}} }}<!-- |
||
− | -->|<!-- API style A |
||
− | -->{{#if:{{{4|}}}|<!-- |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
− | -->|{{#if:{{{3|}}}|<!-- |
||
− | -->{{#vardefine:pc|0}}<!-- |
||
− | -->{{#vardefine:gc|{{{1|0}}}}}<!-- |
||
− | -->{{#vardefine:sc|{{{2|0}}}}}<!-- |
||
− | -->{{#vardefine:cc|{{{3|0}}}}}<!-- |
||
− | -->|{{#if:{{{2|}}}|<!-- |
||
− | -->{{#vardefine:pc|0}}<!-- |
||
− | -->{{#vardefine:gc|0}}<!-- |
||
− | -->{{#vardefine:sc|{{{1|0}}}}}<!-- |
||
− | -->{{#vardefine:cc|{{{2|0}}}}}<!-- |
||
− | -->|<!-- |
||
− | -->{{#vardefine:pc|0}}<!-- |
||
− | -->{{#vardefine:gc|0}}<!-- |
||
− | -->{{#vardefine:sc|0}}<!-- |
||
− | -->{{#vardefine:cc|{{{1|0}}}}}<!-- |
||
− | -->}}}}}}<!-- |
||
-->}}<!-- |
-->}}<!-- |
||
+ | //stack counter, to generate unique var name for each calling level, for proper recursion |
||
− | //normalize and rounding |
||
− | -->{{#vardefine: |
+ | -->{{#vardefine:__l10n_stack|{{#expr:{{#var:__l10n_stack|0}}+1}}}}<!-- |
+ | // Localization string for current lang,if no result, use en version: (can not use {{#or:}} since it needs to keep escaped ) |
||
− | -->{{#vardefine:pc|{{#expr:floor({{#var:_value}}/1000000)}}}}<!-- retrieve new pc from rounded value |
||
− | -->{{#vardefine: |
+ | -->{{#vardefine:_l10n_v{{#var:__l10n_stack}}|{{#dplvar:l10n:{{#var:a1}}:{{#var:a3}}:{{#var:a2}}}}}}<!-- |
− | -->{{#vardefine: |
+ | -->{{#vardefine:_l10n_v{{#var:__l10n_stack}}|{{#var:_l10n_v{{#var:__l10n_stack}}|{{#dplvar:l10n:{{#var:a1}}:en:{{#var:a2}}}}}}}}<!-- |
− | -->{{#vardefine:_value|{{#expr:{{#var:_value}}-{{#var:gc}}*10000}}}}<!-- |
||
− | -->{{#vardefine:sc|{{#expr:floor({{#var:_value}}/100)}}}}<!-- retrieve new sc from rounded value |
||
− | -->{{#vardefine:_value|{{#expr:{{#var:_value}}-{{#var:sc}}*100}}}}<!-- |
||
− | -->{{#vardefine:cc|{{#expr:{{#var:_value}} round {{{round|2}}} }}}}<!-- due to floating-point error, cc need to be rounded again. |
||
+ | //replace if needed |
||
− | //render |
||
+ | //use {{#replace:}} for better performance. {{#replace:}} has a length limit, use lua version can avoid hitting the limit. lua version is slower so require {{l10n/long| }} explicitly to use. |
||
− | --><span class="coin" title="<!-- |
||
− | -->{{# |
+ | -->{{#forargs:$|_key|_value|<!-- |
+ | -->{{#vardefine:_l10n_v{{#var:__l10n_stack}}|{{#replace:{{#var:_l10n_v{{#var:__l10n_stack}}}}|${{#var:_key}}|{{#var:_value}}}}}}<!-- |
||
− | -->{{l10n/long|coin|format<!-- |
||
− | + | -->}}<!-- |
|
+ | |||
− | -->|$gc$={{#var:gc}}<!-- |
||
+ | //output,unescape (by Extension:ParserPower, see https://help.gamepedia.com/Extension:ParserPower/Escape_sequences) |
||
− | -->|$sc$={{#var:sc}}<!-- |
||
− | + | -->{{#uesc:{{#var:_l10n_v{{#var:__l10n_stack}}}}}}<!-- |
|
+ | |||
− | -->|$coins$={{#rreplace:{{#var:_total}}|(00)+$|}}<!-- |
||
+ | //recover stack |
||
⚫ | |||
⚫ | |||
− | -->|<!-- |
||
− | -->{{l10n/long|coin|nocoin}}<!-- |
||
− | -->}}"><s>{{#var:_total}}*</s><!-- |
||
− | -->{{#ifexpr:{{#var:pc}}|<span class="pc">{{formatnum:{{#var:pc}}}}</span>}}<!-- |
||
− | -->{{#ifexpr:{{#var:gc}}|<span class="gc">{{#var:gc}}</span>}}<!-- |
||
− | -->{{#ifexpr:{{#var:sc}}|<span class="sc">{{#var:sc}}</span>}}<!-- |
||
− | -->{{#ifexpr:{{#var:cc}} or ({{#var:_total}}=0)|<span class="cc">{{#var:cc}}</span>}}<!-- |
||
− | --></span><!-- |
||
− | --></includeonly><noinclude> |
+ | --></includeonly><noinclude>{{doc}}</noinclude> |
Версия от 03:58, 12 июня 2020
Документация
[обновить]
См. также этот шаблон на английском языке: Template:Localization. В нём может содержаться более полная или подробная информация.
Документация для этого шаблона отсутствует. Создайте её.