@@ -73,46 +73,47 @@ func Bundle() *i18n.Bundle {
73
73
return bundle
74
74
}
75
75
76
- func GetLocalizer (locale discordgo.Locale ) ( * Localizer , bool ) {
76
+ func GetLocalizer (locale discordgo.Locale ) * Localizer {
77
77
if l , ok := locales [locale ]; ok {
78
- return l , true
78
+ return l
79
79
}
80
80
81
81
// Use default locale.
82
- return locales [supportedLocales [0 ]], false
82
+ return locales [supportedLocales [0 ]]
83
83
}
84
84
85
85
func Localize (locale discordgo.Locale , id string ) string {
86
- l , _ := GetLocalizer (locale )
87
- return l .Localize (id )
86
+ return GetLocalizer (locale ).Localize (id )
88
87
}
89
88
90
89
func LocalizeWithData (locale discordgo.Locale , id string , data Data ) string {
91
- l , _ := GetLocalizer (locale )
92
- return l .LocalizeWithData (id , data )
90
+ return GetLocalizer (locale ).LocalizeWithData (id , data )
93
91
}
94
92
95
93
func LocalizePlural (locale discordgo.Locale , id string , count any ) string {
96
- l , _ := GetLocalizer (locale )
97
- return l .LocalizePlural (id , count )
94
+ return GetLocalizer (locale ).LocalizePlural (id , count )
98
95
}
99
96
100
97
func LocalizePluralWithData (locale discordgo.Locale , id string , count any , data Data ) string {
101
- l , _ := GetLocalizer (locale )
102
- return l .LocalizePluralWithData (id , count , data )
98
+ return GetLocalizer (locale ).LocalizePluralWithData (id , count , data )
103
99
}
104
100
105
101
type Localizer struct {
106
102
* i18n.Localizer
103
+ prefix string
107
104
}
108
105
109
106
func newLocalizer (locale discordgo.Locale ) * Localizer {
110
107
return & Localizer {Localizer : i18n .NewLocalizer (bundle , string (locale ))}
111
108
}
112
109
110
+ func (l * Localizer ) Section (name string ) * Localizer {
111
+ return & Localizer {Localizer : l .Localizer , prefix : name + "." }
112
+ }
113
+
113
114
func (l * Localizer ) Localize (id string ) string {
114
115
s , err := l .Localizer .Localize (& i18n.LocalizeConfig {
115
- MessageID : id ,
116
+ MessageID : l . prefix + id ,
116
117
})
117
118
if s == "" && err != nil {
118
119
return id
@@ -122,7 +123,7 @@ func (l *Localizer) Localize(id string) string {
122
123
123
124
func (l * Localizer ) LocalizeWithData (id string , data Data ) string {
124
125
s , err := l .Localizer .Localize (& i18n.LocalizeConfig {
125
- MessageID : id ,
126
+ MessageID : l . prefix + id ,
126
127
TemplateData : data ,
127
128
})
128
129
if s == "" && err != nil {
@@ -133,7 +134,7 @@ func (l *Localizer) LocalizeWithData(id string, data Data) string {
133
134
134
135
func (l * Localizer ) LocalizePlural (id string , count any ) string {
135
136
s , err := l .Localizer .Localize (& i18n.LocalizeConfig {
136
- MessageID : id ,
137
+ MessageID : l . prefix + id ,
137
138
PluralCount : count ,
138
139
})
139
140
if s == "" && err != nil {
@@ -144,7 +145,7 @@ func (l *Localizer) LocalizePlural(id string, count any) string {
144
145
145
146
func (l * Localizer ) LocalizePluralWithData (id string , count any , data Data ) string {
146
147
s , err := l .Localizer .Localize (& i18n.LocalizeConfig {
147
- MessageID : id ,
148
+ MessageID : l . prefix + id ,
148
149
TemplateData : data ,
149
150
PluralCount : count ,
150
151
})
0 commit comments