mirror of
https://github.com/Buriburizaem0n/nezha_domains.git
synced 2026-02-04 12:40:07 +00:00
i18n: replace gettext implementation (#1056)
This commit is contained in:
@@ -1,9 +1,6 @@
|
||||
package singleton
|
||||
|
||||
import (
|
||||
"archive/zip"
|
||||
"bytes"
|
||||
"fmt"
|
||||
"log"
|
||||
"strings"
|
||||
|
||||
@@ -27,12 +24,7 @@ func loadTranslation() error {
|
||||
}
|
||||
|
||||
lang = strings.Replace(lang, "-", "_", 1)
|
||||
data, err := getTranslationArchive(lang)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
Localizer = i18n.NewLocalizer(lang, domain, domain+".zip", data)
|
||||
Localizer = i18n.NewLocalizer(lang, domain, "translations", i18n.Translations)
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -43,41 +35,7 @@ func OnUpdateLang(lang string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
data, err := getTranslationArchive(lang)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
Localizer.AppendIntl(lang, domain, domain+".zip", data)
|
||||
Localizer.AppendIntl(lang)
|
||||
Localizer.SetLanguage(lang)
|
||||
return nil
|
||||
}
|
||||
|
||||
func getTranslationArchive(lang string) ([]byte, error) {
|
||||
files := [...]string{
|
||||
fmt.Sprintf("translations/%s/LC_MESSAGES/%s.po", lang, domain),
|
||||
fmt.Sprintf("translations/%s/LC_MESSAGES/%s.mo", lang, domain),
|
||||
}
|
||||
|
||||
buf := new(bytes.Buffer)
|
||||
w := zip.NewWriter(buf)
|
||||
|
||||
for _, file := range files {
|
||||
f, err := w.Create(file)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
data, err := i18n.Translations.ReadFile(file)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if _, err := f.Write(data); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
if err := w.Close(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return buf.Bytes(), nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user