mirror of
https://github.com/Luzifer/sii.git
synced 2024-10-18 05:14:19 +00:00
Add LocalizationDB block
Signed-off-by: Knut Ahlers <knut@ahlers.me>
This commit is contained in:
parent
e194984387
commit
126a4cc006
1 changed files with 41 additions and 0 deletions
41
block_localization_db.go
Normal file
41
block_localization_db.go
Normal file
|
@ -0,0 +1,41 @@
|
|||
package sii
|
||||
|
||||
import "strings"
|
||||
|
||||
func init() {
|
||||
RegisterBlock(&LocalizationDB{})
|
||||
}
|
||||
|
||||
type LocalizationDB struct {
|
||||
Keys []string `sii:"key"`
|
||||
Vals []string `sii:"val"`
|
||||
|
||||
blockName string
|
||||
}
|
||||
|
||||
func (LocalizationDB) Class() string { return "localization_db" }
|
||||
|
||||
func (l *LocalizationDB) Init(class, name string) {
|
||||
l.blockName = name
|
||||
}
|
||||
|
||||
func (l LocalizationDB) Name() string { return l.blockName }
|
||||
|
||||
func (l LocalizationDB) GetTranslation(key string) string {
|
||||
key = strings.Trim(key, "@")
|
||||
|
||||
for i, k := range l.Keys {
|
||||
if k == key {
|
||||
val := l.Vals[i]
|
||||
|
||||
if strings.HasPrefix(val, "@@") {
|
||||
// Some translations are translation keys themselves
|
||||
return l.GetTranslation(val)
|
||||
}
|
||||
|
||||
return val
|
||||
}
|
||||
}
|
||||
|
||||
return ""
|
||||
}
|
Loading…
Reference in a new issue