个人工具

帮助:经济设计/注册新币制

出自Meshal Lite

跳转到: 导航, 搜索

Meshal Lite 接受新币制的注册,新的币制在注册之后将被加入到货币的显示中,且可与所有已存在的币种进行价值换算。内容的设计者可以很容易地调用currency模板,填入数字和币制代码后得到对应货币的价值(及换算成其他币制的价值)。

  • 目前Meshal Lite中使用的基准币制为GSC(金、银、铜币,百进制)。
  • 你也可以致信 Meshal Design Team 提交新币制相关的信息,并由我们为你注册新币制。
制定
币制代码

就如同英镑被写作GBP、美元被写作USD、人民币被写作CNY一样,每个币制都需要一个唯一的标识代码。制定币制代码的方法有以下几种:

  • 如果币制名称由多个词汇组成,则将每个词汇的首字母组成币制代码,比如:GSC是“Gold, Silver and Copper”的首字母缩写。
  • 如果币制名称是单个单词,则可取前三个字母或提取关键注音字母作为币制代码,比如:FER是由“Ferraria”头三个字母组成、BTC是由“Bitcoin”中的关键辅音组成。

通常,币制代码应该控制在3~4个字母,不应出现数字和特殊符号。新币制的代码必须避免与已有币制代码冲突。现有币制代码可参考currency模板中的unit参数。

制定
价值单位
和换算关系

设计币制使用的币种,并制定币种之间的换算关系。

  • 币种换算关系必须为递进式(比如:1金币=100银币=10000铜币),而不应出现分叉换算(比如:1金币=100银币 或 20 居埃尔)。
  • 确定最小币种,这个会被作为填写价值用的基本单位。
计算
购买力

确定最小币种的单个购买力,并将之折换成现实中的法币购买力(目前在Meshal Lite的规范中,使用人民币作为法币)。


计算货币购买力时,可采取鸡蛋、成年羊或牛作为参考货物。

  • 2018年,鸡蛋参考价格 ≈ 0.825 CNY/枚
  • 13~14世纪中世纪英国的鸡蛋价格 ≈ 1 便士/24个,因此1便士的购买力相当于0.825 × 24 ≈ 20 CNY
  • 在当时,1便士为最小币种,所以得到购买力为20。
准备
币种符号

对应每个币种,需要分别为其准备1个符号(比如金币gsc_g.png、银币gsc_s.png和铜币gsc_c.png),它们将用于价值的显示。通常币种符号会采用文字或图片。


文字符号

比如“gp”、“¢”这样的符号可被用于货币的文字符号。通常基于浏览器兼容性的考虑,符号应当尽量避免使用特殊字符。组合文字的字符则不宜超过3个。

图片符号

图片符号更美观且更易识别。图片符号推荐使用含有透明信息的png文件,图片高度为48px,宽度则没有硬性要求(推荐48px)。图片应当上传至网络或Meshal Lite所在的服务器。

录入购买力
汇率

编辑currency/exchangeRate,在其中录入购买力和汇率。


在位于模板代码顶部的部分注册购买力
……
{{#vardefine:currencyExchangeRate_gsc|0.24}}
{{#vardefine:currencyExchangeRate_fer|6.6}}
{{#vardefine:currencyExchangeRate_aes|50}}
<!--在这里加入新币制的购买力,$$$ 替换为币制代码(小写)、@@@ 替换为购买力-->
{{#vardefine:currencyExchangeRate_$$$|@@@}}
……
为已有的币制加入换算新币制的汇率(每一种已有币制都需添加汇率)
……
<!--gsc本位(金银铜币制)-->
<!--以CNY作为汇率基准:gsc 1 gp ≈ 2400 CNY;1 sp ≈ 24 CNY;1 cp ≈ 0.24 CNY-->
{{#vardefine:currencyExchangeRate_gsc~gsc|<!--gsc转gsc-->
1
}}
{{#vardefine:currencyExchangeRate_gsc~fer|<!--gsc转fer-->
{{#expr:{{#var:currencyExchangeRate_gsc}}/{{#var:currencyExchangeRate_fer}} round 4}}
}}
{{#vardefine:currencyExchangeRate_gsc~aes|<!--gsc转aes-->
{{#expr:{{#var:currencyExchangeRate_gsc}}/{{#var:currencyExchangeRate_aes}} round 4}}
}}

<!--在这里插入新币制的换算公式,$$$ 替换为新币制代码-->
{{#vardefine:currencyExchangeRate_gsc~$$$|<!--gsc转$$$-->
{{#expr:{{#var:currencyExchangeRate_gsc}}/{{#var:currencyExchangeRate_$$$}} round 4}}
}}
……
创建新币种的汇率代码块
……
<!--$$$(新币制)-->
<!--以CNY作为汇率基准:$$$ 1 unit ≈ 1000 CNY;1 sp ≈ 100 CNY;1 cp ≈ 10 CNY-->
{{#vardefine:currencyExchangeRate_$$$~$$$|<!--$$$转$$$-->
1
}}
{{#vardefine:currencyExchangeRate_$$$~gsc|<!--$$$转fer-->
{{#expr:{{#var:currencyExchangeRate_$$$}}/{{#var:currencyExchangeRate_gsc}} round 4}}
}}
{{#vardefine:currencyExchangeRate_$$$~fer|<!--$$$转fer-->
{{#expr:{{#var:currencyExchangeRate_$$$}}/{{#var:currencyExchangeRate_fer}} round 4}}
}}
{{#vardefine:currencyExchangeRate_$$$~aes|<!--$$$转aes-->
{{#expr:{{#var:currencyExchangeRate_$$$}}/{{#var:currencyExchangeRate_aes}} round 4}}
}}
编写新币制的
呈现模板

新建一个模板页面,名称为“Template:currency_$$$”,$$$替换为币制代码(小写)。这个模板页面用来规范该币制的呈现效果,模板页面的代码可参考currency/ex_gsccurrency/ex_fer模板的代码。


撰写页面代码时,可遵循下述经验:

如果有多个币种,那么从最大价值的币种开始计算。

{{#ifexpr: {{{1|{{{value|0}}}}}} < 最大币种与最小币种的倍数||……最大币种的显示格式代码……}}
{{#ifexpr: {{{1|{{{value|0}}}}}} < 次大币种与最小币种的倍数||{{#ifexpr: trunc({{{1|{{{value|0}}}}}}mod最大币种与最小币种的倍数/次大币种与最小币种的倍数)=0||……次大币种的显示格式代码……}}}}
{{#ifexpr: {{{1|{{{value|0}}}}}}mod次大币种与最小币种的倍数=0||……最小币种的显示格式代码……}}

显示格式代码时,如果用到图片符号,则可以用下述代码:

<span class="textSymbol">{{eximg|符号文件URL}}</span>

以下是来自currency/ex_gsc的模板代码(经过格式处理以便阅读),供参考:

{{#ifexpr: {{{1|{{{value|0}}}}}} < 10000 <!--如果输入价值小于单个金币的价值-->
  |<!--是,留空-->
  |<!--否,显示金币-->{{#expr: trunc({{{1|{{{value|0}}}}}}/10000)}}<span class="textSymbol">{{img|currency/gsc_g.png}}</span>
}}
{{#ifexpr: {{{1|{{{value|0}}}}}} < 100 <!--如果输入价值小于单个银币的价值-->
  |<!--是,留空-->
  |{{#ifexpr: trunc({{{1|{{{value|0}}}}}}mod10000/100)=0 <!--如果输入价值中的银币部分为0,比如:1金币3铜币-->
    |<!--是,留空-->
    |<!--否,显示银币-->{{#expr: trunc({{{1|{{{value|0}}}}}}mod10000/100)}}<span class="textSymbol">{{img|currency/gsc_s.png}}</span>
  }}
}}
{{#ifexpr: {{{1|{{{value|0}}}}}}mod100=0<!--如果输入价值中的铜币部分为0,比如:1金币10银币-->
  |<!--是,留空-->
  |<!--否,显示银币-->{{#expr: {{{1|{{{value|0}}}}}}mod100}}<span class="textSymbol">{{img|currency/gsc_c.png}}</span>
}}

最后,需要编辑currency,在其中挂载上一步撰写的呈现模板。这一步使currency模板可以在输入任意币制后,在其换算浮层中加入新币制的显示。


currency模板中的“;货币换算”下加入新币制的呈现模板调用。

;货币换算
----
* {{currency_gsc|{{#expr:{{#var:value}}*{{#var:currencyExchangeRate_{{#var:unit}}~gsc}}}}}}
----
* {{currency_fer|{{#expr:{{#var:value}}*{{#var:currencyExchangeRate_{{#var:unit}}~fer}}}}}}
----
* {{currency_aes|{{#expr:{{#var:value}}*{{#var:currencyExchangeRate_{{#var:unit}}~aes}}}}}}
----
* {{currency_$$$|{{#expr:{{#var:value}}*{{#var:currencyExchangeRate_{{#var:unit}}~$$$}}}}}} <!--将$$$替换为新币制代码(小写)-->