diff --git a/docs/keybindings/Keybindings_de.md b/docs/keybindings/Keybindings_de.md index 68b42395..62b92011 100644 --- a/docs/keybindings/Keybindings_de.md +++ b/docs/keybindings/Keybindings_de.md @@ -1,17 +1,17 @@ -# Lazydocker menu +# Lazydocker Menü -## Status +## Projekt
e: bearbeite lazydocker Konfiguration o: öffne lazydocker Konfiguration [: vorheriges Tab - ]: nächstes tab - m: zeige Protokoll + ]: nächstes Tab + m: zeige Protokolle enter: fokusieren aufs Hauptpanel-## Containers +## Container
[: vorheriges Tab @@ -26,7 +26,7 @@ enter: fokusieren aufs Hauptpanel-## Services +## Dienste
d: entferne Container @@ -51,7 +51,7 @@ enter: fokusieren aufs Hauptpanel-## Volumes +## Volumen
[: vorheriges Tab @@ -61,7 +61,7 @@ enter: fokusieren aufs Hauptpanel-## Main +## Haupt
esc: zurück diff --git a/docs/keybindings/Keybindings_tr.md b/docs/keybindings/Keybindings_tr.md index 7505a090..dc8bb571 100644 --- a/docs/keybindings/Keybindings_tr.md +++ b/docs/keybindings/Keybindings_tr.md @@ -1,9 +1,9 @@ -# Lazydocker menu +# Lazydocker menü -## Status +## Proje- e: lazydocker ayarlarını düzenle + e: lazzydocker ayarlarını düzenle o: lazydocker ayarlarını aç [: önceki sekme ]: sonraki sekme @@ -11,7 +11,7 @@ enter: ana panele odaklan-## Containers +## Konteynerler[: önceki sekme @@ -19,50 +19,50 @@ d: kaldır s: durdur r: yeniden başlat - a: bağlan + a: bağlan/iliştir D: çalışmayan konteynerleri temizle m: kayıt defterini görüntüle - c: önceden tanımlanmış özel bir komut çalıştır + c: önceden tanımlanmış özel komutu çalıştır enter: ana panele odaklan-## Services +## Servislerd: konteynerleri kaldır s: durdur r: yeniden başlat - a: bağlan + a: bağlan/iliştir m: kayıt defterini görüntüle [: önceki sekme ]: sonraki sekme R: yeniden başlatma seçeneklerini görüntüle - c: önceden tanımlanmış özel bir komut çalıştır + c: önceden tanımlanmış özel komutu çalıştır enter: ana panele odaklan-## Images +## Imajlar[: önceki sekme ]: sonraki sekme d: imajı kaldır - D: kullanılmayan imajları kaldır + D: kullanılmayan imajları temizle enter: ana panele odaklan-## Volumes +## Alanlar[: önceki sekme ]: sonraki sekme - d: alanı sil - D: kullanılmayan alanları sil + d: alanı kaldır + D: kullanılmayan alanları temizle enter: ana panele odaklan-## Main +## Ana- esc: geri + esc: dönüşdiff --git a/pkg/i18n/dutch.go b/pkg/i18n/dutch.go index cce86283..36a0bc42 100644 --- a/pkg/i18n/dutch.go +++ b/pkg/i18n/dutch.go @@ -48,7 +48,7 @@ func dutchSet() TranslationSet { PruneContainers: "vernietig bestaande containers", PruneVolumes: "vernietig ongebruikte volumes", PruneImages: "vernietig ongebruikte images", - ViewRestartOptions: "beijk herstart opties", + ViewRestartOptions: "bekijk herstart opties", RunCustomCommand: "draai een vooraf bedacht aangepaste opdracht", AnonymousReportingTitle: "Help mee met lazydocker beter maken", diff --git a/pkg/i18n/english.go b/pkg/i18n/english.go index d8e660fc..48442c0c 100644 --- a/pkg/i18n/english.go +++ b/pkg/i18n/english.go @@ -2,8 +2,6 @@ package i18n // TranslationSet is a set of localised strings for a given language type TranslationSet struct { - AddFavourite string - ErrorMessage string NotEnoughSpace string ProjectTitle string MainTitle string diff --git a/pkg/i18n/i18n.go b/pkg/i18n/i18n.go index 405dd819..bdc62ab1 100644 --- a/pkg/i18n/i18n.go +++ b/pkg/i18n/i18n.go @@ -22,25 +22,26 @@ func NewTranslationSet(log *logrus.Entry) *TranslationSet { log.Info("language: " + userLang) - set := englishSet() + baseSet := englishSet() - if strings.HasPrefix(userLang, "pl") { - _ = mergo.Merge(&set, polishSet(), mergo.WithOverride) + for languageCode, translationSet := range GetTranslationSets() { + if strings.HasPrefix(userLang, languageCode) { + _ = mergo.Merge(&baseSet, translationSet, mergo.WithOverride) + } } - if strings.HasPrefix(userLang, "nl") { - _ = mergo.Merge(&set, dutchSet(), mergo.WithOverride) - } + return &baseSet +} - if strings.HasPrefix(userLang, "de") { - _ = mergo.Merge(&set, germanSet(), mergo.WithOverride) +// GetTranslationSets gets all the translation sets, keyed by language code +func GetTranslationSets() map[string]TranslationSet { + return map[string]TranslationSet{ + "pl": polishSet(), + "nl": dutchSet(), + "de": germanSet(), + "tr": turkishSet(), + "en": englishSet(), } - - if strings.HasPrefix(userLang, "tr") { - _ = mergo.Merge(&set, turkishSet(), mergo.WithOverride) - } - - return &set } // detectLanguage extracts user language from environment diff --git a/scripts/generate_cheatsheet.go b/scripts/generate_cheatsheet.go index 111f53ad..4ef6608e 100644 --- a/scripts/generate_cheatsheet.go +++ b/scripts/generate_cheatsheet.go @@ -17,6 +17,7 @@ import ( "github.com/jesseduffield/lazydocker/pkg/app" "github.com/jesseduffield/lazydocker/pkg/config" "github.com/jesseduffield/lazydocker/pkg/gui" + "github.com/jesseduffield/lazydocker/pkg/i18n" ) type bindingSection struct { @@ -25,13 +26,12 @@ type bindingSection struct { } func main() { - langs := []string{"pl", "nl", "en"} mConfig, err := config.NewAppConfig("lazydocker", "", "", "", "", true, nil, "") if err != nil { panic(err) } - for _, lang := range langs { + for lang := range i18n.GetTranslationSets() { os.Setenv("LC_ALL", lang) mApp, _ := app.NewApp(mConfig) file, err := os.Create(getProjectRoot() + "/docs/keybindings/Keybindings_" + lang + ".md") diff --git a/scripts/translations/get_required_translations.go b/scripts/translations/get_required_translations.go new file mode 100644 index 00000000..9e0dd400 --- /dev/null +++ b/scripts/translations/get_required_translations.go @@ -0,0 +1,30 @@ +package main + +import ( + "fmt" + "reflect" + + "github.com/jesseduffield/lazydocker/pkg/i18n" +) + +func main() { + fmt.Println(getOutstandingTranslations()) +} + +// adapted from https://github.com/a8m/reflect-examples#read-struct-tags +func getOutstandingTranslations() string { + output := "" + for languageCode, translationSet := range i18n.GetTranslationSets() { + output += languageCode + ":\n" + v := reflect.ValueOf(translationSet) + + for i := 0; i < v.NumField(); i++ { + value := v.Field(i).String() + if value == "" { + output += v.Type().Field(i).Name + "\n" + } + } + output += "\n" + } + return output +}