Re: Implement customizable number formatter
Daniel Dekany <[email protected]> Fri, 21 Aug 2015 21:46:33 +0200
| Newsgroups | gmane.comp.web.freemarker.devel |
|---|---|
| Message-ID | <[email protected]> |
RnJpZGF5LCBBdWd1c3QgMjEsIDIwMTUsIDM6MTk6MzYgUE0sIEVybnN0IFBsw7xzcyB3cm90ZToK Cj4gSGVsbG8gRGFuaWVsCj4KPiBNYW55IHRoYW5rcyBmb3IgeW91ciBleHRlbnNpdmUgcmVzcG9u c2UhCj4KPiBJIGRpZG4ndCBhc2sgdG8gd29yayBhaGFlYWQuIEkgd2FudGVkIHRvIGNoZWNrIHdo ZXRoZXIgSSBjb3VsZAo+IGltcGxlbWVudCB0aGUgZmVhdHJ1ZSBhbmQgY3JlYXRlIGEgcHVsbCBy ZXF1ZXN0IGluIHJlYXNvbmFibGUgdGltZSAgCj4KPiBBY3R1YWxseSBJJ20gbG9va2luZyBmb3Ig c29tZXRoaW5nIGRpZmZlcmVudC4gV2hhdCBJIG5lZWQgaXMgYSB3YXkKPiB0byBtYWtlIHN1cmUg KmV2ZXJ5KiBCaWdEZWNpbWFsIChvciB3aGF0aGV2ZXIgdHlwZSBJJ20gYWZ0ZXIpIGlzCj4gdHJh bnNmb3JtZWQgdG8gYSBTdHJpbmcgYnkgdXNlciBkZWZpbmVkIGNvZGUuIFNpbmNlIHRoZSBmb3Jt YXR0aW5nCj4gZGVwZW5kcyBvbiB0aGUgdmFsdWUgb2YgdGhlIEJpZ0RlY2ltYWwsIEkgY2Fubm90 IHVzZSBhIHN0YXRpYyBwYXR0ZXJuLgo+Cj4gQXMgb2Ygbm93IEkgcmVnaXN0ZXJlZCBhICJmb3Jt YXRCaWdEZWNpbWFsKCkiIGZ1bmN0aW9uIHdoaWNoIGRvZXMKPiB0aGlzLiBCdXQgZXZlcnkgbm93 IGFuZCB0aGVuIGEgZGV2ZWxvcGVyIGZvcmdldHMgdG8gdXNlIGl0IGFuZCB3ZSBlbmQgdXAgd2l0 aCB3cm9uZyBvdXRwdXQuCj4KPiBJIHRoaW5rIHdyaXRpbmcKPgo+ICR7eD9zdHJpbmcoIkBmb3Jt YXRCaWdEZWNpbWFsIil9Cj4KPiBpbnN0ZWFkIG9mCj4KPiBmb3JtYXRCaWdEZWNpbWFsKCR7dmFs dWV9KQo+Cj4gZG9lc24ndCBicmluZyBhbnkgYmVuZWZpdCBpbiBteSBzaXR1YXRpb24uCgpJdCBz b3VuZHMgbGlrZSBzb21ldGhpbmcgdGhhdCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGhhbmRsZSBlYXNp bHkgd2l0aAp0aGUgcGxhbm5lZCBmb3JtYXR0ZXIgZmVhdHVyZS4gWW91IGhhdmUgYSBzaGFyZWQg c2luZ2xldG9uCkNvbmZpZ3VyYXRpb24gb2JqZWN0LCBhbmQgdGhlcmUgeW91IGNhbGwgc2V0TnVt YmVyRm9ybWF0KFN0cmluZykgd2l0aAoiQGZvcm1hdEJpZ0RlY2ltYWwiIG9yIHdoYXRldmVyIHlv dSB3aWxsIGNhbGwgaXQuIEFzIHlvdXIgcmVnaXN0ZXJlZApmb3JtYXR0ZXIsIGFuZCBoZW5jZSB5 b3VyIG93biBKYXZhIGNvZGUgZ2V0cyB0aGUgTnVtYmVyIHRvIGZvcm1hdCAodGhlCndob2xlIFRl bXBsYXRlTnVtYmVyTW9kZWwsIGFjdHVhbGx5KSwgaXQgY2FuIGRlY2lkZSB3aGF0IHRvIGRvIGJh c2VkCm9uIHRoZSBudW1iZXIgdHlwZSBhbmQgdmFsdWUuIChQYXJzaW5nIHRoZSBwYXJ0IGFmdGVy IHRoZSBAbmFtZSBpcwphbHNvIGVudGlyZWx5IHVwIHRvIHRoZSBjdXN0b20gbnVtYmVyIGZvcm1h dHRlcjsgdGhlIDAuMDAgcGF0dGVybnMgd2FzCmp1c3QgYW4gZXhhbXBsZS4pIFNvLCBpbiB0aGUg dGVtcGxhdGUgeW91IGp1c3Qgd3JpdGUgJHt4fS4KCi0tIApUaGFua3MsCiBEYW5pZWwgRGVrYW55 Cgo+IFJlZ2FyZHMKPiBFcm5zdAo+Cj4KPgo+IDIwMTUtMDgtMjEgMTQ6NTUgR01UKzAyOjAwIERh bmllbCBEZWthbnkgPGRkZWthbnlAZnJlZW1haWwuaHU+Ogo+IEkgaGF2ZW4ndCBzdGFydGVkIHdv cmtpbmcgb24gdGhhdCB5ZXQuIEkgKmhvcGUqIEkgY2FuIHN0YXJ0IGl0Cj4gdG9tb3Jyb3cgb3Ig c28uIFNvIEknbSBub3QgeWV0IDEwMCUgc3VyZSBob3cgaXQgd2lsbCBsb29rLiBJIG9ubHkga25v dwo+IGZvciBzdXJlIHRoYXQgaXQgbXVzdCBiZSBmaW5pc2hlZCBkdXJpbmcgdGhlIG5leHQgd2Vl ay4gKDogU28gSQo+IHJlY29tbWVuZCB5b3UgdG8ganVzdCBxdWlja2x5IHNob3ZlIGluIHlvdXIg TnVtYmVyRm9ybWF0IGNsYXNzIHdoZXJlCj4gRnJlZU1hcmtlciBjcmVhdGVzIHRoZSBEZWNpbWFs Rm9ybWF0LXMsIGFuZCB3YWl0IHdoYXQgd2lsbCBoYXBwZW4gbmV4dAo+IHdlZWsuLi4gWW91IGNh bid0IHJlYWxseSB3b3JrIGFoZWFkLgo+Cj4gVG8gYW5zd2VyIHlvdXIgcXVlc3Rpb24sIEVudmly b25tZW4uZm9ybWF0TnVtYmVyKE51bWJlcikgaXMgYW5kCj4gcmVtYWlucyBhIHBvaW50IHdoZXJl IG51bWJlciBmb3JtYXR0aW5nIHdpdGggdGhlIGN1cnJlbnQgZm9ybWF0IGdvZXMKPiB0aHJvdWdo LCBvZiBjb3Vyc2UuIFRoZSBpbnRlcmVzdGluZyB0aGluZyBpcyB0aG91Z2ggaWYgaG93IHdpbGwg bnVtYmVyCj4gZm9ybWF0dGVycyBiZSByZXByZXNlbnRlZCAobm90IGphdmEudGV4dC5OdW1iZXJG b3JtYXQgYW55bW9yZSBbKl0pLAo+IGFuZCB3aGF0IG9iamVjdCB3aWxsIGNyZWF0ZSB0aGVtLiBU aGUgKGluaGVyaXRlZCkgbG9naWMgb2YgRnJlZU1hcmtlcgo+IGlzIHRoYXQgeW91IHNwZWNpZnkg YSAqc3RyaW5nKiBhcyB0aGUgIm51bWJlcl9mb3JtYXQiIHNldHRpbmcgKHdoaWNoCj4gY2FuIGV2 ZW4gYmUgY2hhbmdlZCBpbnNpZGUgdGhlIHRlbXBsYXRlLCBpbiBydW50aW1lKSwgYW5kIHRoZW4K PiBpbnRlcm5hbGx5IHRoYXQgYmVjb21lcyB0byBhIGNhY2hlZCghKSBEZWNpbWFsRm9ybWF0IG9i amVjdCBmb3IgdGhlCj4gY3VycmVudCBMb2NhbGUuIFNvIGNlcnRhaW5seSwgdGhlcmUgd2lsbCBi ZSBzb21lIHNpbXBsZSBpbnRlcmZhY2UgbGlrZQo+IGZyZWVtYXJrZXIuY29yZS5OdW1iZXJGb3Jt YXR0ZXIsIGFuZCB0aGVuIHlvdSB3aWxsIG5lZWQgdG8gcmVnaXN0ZXIgYQo+IGZyZWVtYXJrZXIu Y29yZS5OdW1iZXJGb3JtYXR0ZXJGYWN0b3J5IHdpdGggYSB1bmlxdWUgbmFtZSAobGV0J3Mgc2F5 Cj4gInByaWNlIiksIHdoaWNoIHRoZW4geW91IGNhbiByZWZlciB0byBsaWtlCj4gY2ZnLnNldE51 bWJlckZvcm1hdCgiQHByaWNlIiksIDwjc2V0dGluZyBudW1iZXJGb3JtYXQ9IkBwcmljZSI+LAo+ ICR7eD9zdHJpbmcoIkBwcmljZSIpfSwgZXRjLiBBbmQgc28gdGhlcmUsIHRoZSBmYWN0b3J5IGhh cyBhIGNoYW5jZSB0bwo+IGNhY2hlLiBGdXJ0aGVybW9yZSwgYWZ0ZXIgdGhlIG51bWJlciBmb3Jt YXQgc3RyaW5nIHdhcyBkZWxlZ2F0ZWQgdG8KPiB0aGUgTnVtYmVyRm9ybWF0RmFjdG9yeSBiYXNl ZCBvbiB0aGUgbmFtZSBhZnRlciB0aGUgIkAiLCBpdCB3aWxsIGdldAo+IHRoZSBmb3JtYXQgc3Ry aW5nIGZvciBwYXJzaW5nLCBzbyB0aGF0IHN0dWZmIGxpa2UgIkBwcmljZSAwLjAwIiBjYW4gYmUK PiBpbXBsZW1lbnRlZC4gU28gdGhvc2UgYXJlIG15IGluaXRpYWwgdGhvdWdodHMuIChJIHdpbGwg cmV2aWV3IGhvdyBkYXRlCj4gZm9ybWF0dGluZyB3b3Jrcywgd2hpY2ggaGFzIGEgc2ltaWxhcmx5 IGZhbmN5IGFyY2hpdGVjdHVyZSBmb3IgYQo+IHdoaWxlLCBvbmx5IHRoYXQncyBub3QgYSBwdWJs aWMgQVBJLi4uIHlldC4pCj4KPiAqOiBXaHkgbm90IE51bWJlckZvcm1hdD8gVHdvIHJlYXNvbnM6 Cj4KPiAgICAoYSkgT25lIGltcG9ydGFudCBnb2FsIG9mIHBsdWdnYWJsZSBudW1iZXIgZm9ybWF0 dGVycyB3aWxsIGJlCj4gICAgICAgIGF1dG9tYXRpYyB1bml0IHByaW50aW5nLiBJbiBzb21lIGFw cHMsIHRoZSB0ZW1wbGF0ZSBhdXRob3JzCj4gICAgICAgIGFyZW4ndCBzdXBwb3NlZCB0byBwcmlu dCB0aGUgdW5pdHMgbWFudWFsbHkuIExpa2UgJHtwcmljZX0sCj4gICAgICAgIHdoZXJlIHByaWNl IGlzIGEgbnVtYmVyLCBzaG91bGQgYXV0b21hdGljYWxseSBwcmludCAiMTAwMCBFVVIiCj4gICAg ICAgIG9yIHN1Y2guIFRoYXQgcmVxdWlyZXMgdGhlIGZvcm1hdHRlciB0byBnZXQgdGhlCj4gICAg ICAgIFRlbXBsYXRlTnVtYmVyTW9kZWwgaW5zdGVhZCBvZiBqdXN0IHRoZSBOdW1iZXIsIGFzIGl0 J3MgdGhlCj4gICAgICAgIFRlbXBsYXRlTnVtYmVyTW9kZWwgdGhhdCBjYXJyaWVzIHRoZSByZXF1 aXJlZCBtZXRhLWluZm9ybWF0aW9uLgo+Cj4gICAgKGIpIE51bWJlciBmb3JtYXQgaXMgd2F5IHRv byBibG9hdGVkIGlmIHVzZXJzIG1lYW50IHRvIGltcGxlbWVudCBpdAo+ICAgICAgICBmb3Igc29t ZSBhZC1ob2MgbnVtYmVyIGZvcm1hdC4KPgo+IC0tCj4gVGhhbmtzLAo+ICBEYW5pZWwgRGVrYW55 Cj4KPgo+IEZyaWRheSwgQXVndXN0IDIxLCAyMDE1LCAxMToyMDoxMiBBTSwgRXJuc3QgUGzDvHNz IHdyb3RlOgo+Cj4+IEhlbGxvCj4+Cj4+IEZyb20KPj4gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29t L3F1ZXN0aW9ucy8zMjExMTIzNC9ob3ctdG8taW1wbGVtZW50LWxvZ2ljLWZvci1iaWdkZWNpbWFs LXJlbmRlcmluZy1pbi1mcmVlbWFya2VyCj4+IEkgbGVhcm5kZWQsIHRoYXQgc29tZSBraW5kIG9m IHBsdWdhYmxlIG51bWJlciBmb3JtYXR0ZXIgc2hvdWxkIGNvbWUgc29vbi4KPj4KPj4gSXMgdGhl cmUgYWxyZWRheSBhbnkgY29kZSBvbiBnaXRodWIgZm9yIHRoaXM/Cj4+Cj4+IElmIG5vdCwgd2hh dCdzIHRoZSBnZW5lcmFsIGFwcm9hY2ggYWRkIHRoaXMgZnVuY3Rpb25hbGl0eT8gQWZ0ZXIKPj4g aGF2aW5nIGEgbG9vayBhdCB0aGUgc291cmNlcywgSSB0aGluayBJIGNvdWxkIGJ1aWx0IHRoaXMg aW50bwo+PiBFbnZpcm9ubWVuLmZvcm1hdE51bWJlcihOdW1iZXIgbnVtYmVyKS4gSXMgdGhpcyB0 aGUgaW50ZW5kZWQgd2F5IHRvIGltcGxlbWVudCB0aGlzPwo+Pgo+PiBSZWdhcmRzCj4+IEVybnN0 Cj4+Cj4KPgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpGcmVlTWFya2VyLWRldmVsIG1haWxpbmcgbGlzdApGcmVl TWFya2VyLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldApodHRwczovL2xpc3RzLnNvdXJjZWZv cmdlLm5ldC9saXN0cy9saXN0aW5mby9mcmVlbWFya2VyLWRldmVsCg==