|
|
@@ -11,9 +11,11 @@ type Printer struct {
|
|
|
}
|
|
|
|
|
|
func (p *Printer) Print(key string) string {
|
|
|
- if str, ok := defaultCatalog[p.language][key]; ok {
|
|
|
- if translation, ok := str.(string); ok {
|
|
|
- return translation
|
|
|
+ if dict, err := GetTranslationDict(p.language); err == nil {
|
|
|
+ if str, ok := dict[key]; ok {
|
|
|
+ if translation, ok := str.(string); ok {
|
|
|
+ return translation
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
return key
|
|
|
@@ -21,16 +23,16 @@ func (p *Printer) Print(key string) string {
|
|
|
|
|
|
// Printf is like fmt.Printf, but using language-specific formatting.
|
|
|
func (p *Printer) Printf(key string, args ...interface{}) string {
|
|
|
- var translation string
|
|
|
+ translation := key
|
|
|
|
|
|
- str, found := defaultCatalog[p.language][key]
|
|
|
- if !found {
|
|
|
- translation = key
|
|
|
- } else {
|
|
|
- var valid bool
|
|
|
- translation, valid = str.(string)
|
|
|
- if !valid {
|
|
|
- translation = key
|
|
|
+ if dict, err := GetTranslationDict(p.language); err == nil {
|
|
|
+ str, found := dict[key]
|
|
|
+ if found {
|
|
|
+ var valid bool
|
|
|
+ translation, valid = str.(string)
|
|
|
+ if !valid {
|
|
|
+ translation = key
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -39,9 +41,12 @@ func (p *Printer) Printf(key string, args ...interface{}) string {
|
|
|
|
|
|
// Plural returns the translation of the given key by using the language plural form.
|
|
|
func (p *Printer) Plural(key string, n int, args ...interface{}) string {
|
|
|
- choices, found := defaultCatalog[p.language][key]
|
|
|
+ dict, err := GetTranslationDict(p.language)
|
|
|
+ if err != nil {
|
|
|
+ return key
|
|
|
+ }
|
|
|
|
|
|
- if found {
|
|
|
+ if choices, found := dict[key]; found {
|
|
|
var plurals []string
|
|
|
|
|
|
switch v := choices.(type) {
|