root/lang/io/MessageResource/io/MessageResource.io @ 15164

Revision 15164, 1.2 kB (checked in by nowelium, 5 years ago)
Line 
1MessageResource := 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)
Note: See TracBrowser for help on using the browser.