|
Revision 15164, 1.2 kB
(checked in by nowelium, 5 years ago)
|
|
|
| Line | |
|---|
| 1 | MessageResource := Object clone do ( |
|---|
| 2 | init := method( |
|---|
| 3 | replace := Map clone |
|---|
| 4 | replace atPut("-", "") |
|---|
| 5 | |
|---|
| 6 | self lang := System getEnvironmentVariable("LANG") |
|---|
| 7 | split := lang splitNoEmpties(".") |
|---|
| 8 | self locale := split at(0) |
|---|
| 9 | self encoding := split at(1) |
|---|
| 10 | self encodeName := self encoding replaceMap(replace) |
|---|
| 11 | self encodingMessage := ("as" .. encoding) asMessage |
|---|
| 12 | ) |
|---|
| 13 | getMessage := method(messageId, params, |
|---|
| 14 | message := self getSlot(locale) getSlot(messageId) |
|---|
| 15 | message interpolateInPlace(params) |
|---|
| 16 | ) |
|---|
| 17 | curlyBrackets := method( |
|---|
| 18 | obj := Object clone |
|---|
| 19 | call message arguments foreach(arg, |
|---|
| 20 | arg setName("setSlot") |
|---|
| 21 | obj doMessage(arg) |
|---|
| 22 | ) |
|---|
| 23 | obj |
|---|
| 24 | ) |
|---|
| 25 | forward := method( |
|---|
| 26 | name := call message name |
|---|
| 27 | message := self getSlot(locale) getSlot(name) |
|---|
| 28 | message container := self |
|---|
| 29 | message encodingMessage := self encodingMessage |
|---|
| 30 | message curlyBrackets := method( |
|---|
| 31 | obj := call delegateTo(container, call sender) |
|---|
| 32 | self asMutable doMessage(encodingMessage) interpolateInPlace(obj) |
|---|
| 33 | ) |
|---|
| 34 | message |
|---|
| 35 | ) |
|---|
| 36 | ) |
|---|