From df7f9c4a99e6826115bce7f123bbca78c2402d3c Mon Sep 17 00:00:00 2001 From: Jesse Duffield Date: Sat, 6 Jul 2019 12:22:08 +1000 Subject: [PATCH 1/2] update cheatsheets --- docs/keybindings/Keybindings_de.md | 16 +++--- docs/keybindings/Keybindings_en.md | 2 +- docs/keybindings/Keybindings_nl.md | 20 +++---- docs/keybindings/Keybindings_pl.md | 86 +++++++++++++++--------------- docs/keybindings/Keybindings_tr.md | 32 +++++------ pkg/i18n/dutch.go | 2 +- 6 files changed, 79 insertions(+), 79 deletions(-) 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_en.md b/docs/keybindings/Keybindings_en.md
index 50d7a427..3e6301b9 100644
--- a/docs/keybindings/Keybindings_en.md
+++ b/docs/keybindings/Keybindings_en.md
@@ -1,6 +1,6 @@
 # Lazydocker menu
 
-## Status
+## Project
 
 
   e: edit lazydocker config
diff --git a/docs/keybindings/Keybindings_nl.md b/docs/keybindings/Keybindings_nl.md
index 8de2dfd5..e91197c3 100644
--- a/docs/keybindings/Keybindings_nl.md
+++ b/docs/keybindings/Keybindings_nl.md
@@ -1,10 +1,10 @@
 # Lazydocker menu
 
-## Status
+## Project
 
 
-  e: verander lazydocker configuratie
-  o: open lazydocker configuratie
+  e: verander de lazydocker configuratie
+  o: open de lazydocker configuratie
   [: vorige tab
   ]: volgende tab
   m: bekijk logs
@@ -19,20 +19,20 @@
   d: verwijder
   s: stop
   r: herstart
-  a: vastmaken
-  D: verwijder verlaten containers
+  a: verbinden
+  D: vernietig bestaande containers
   m: bekijk logs
   c: draai een vooraf bedacht aangepaste opdracht
   enter: focus hooft panneel
 
-## Services +## Diensten
   d: verwijder containers
   s: stop
   r: herstart
-  a: vermaken
+  a: verbinden
   m: bekijk logs
   [: vorige tab
   ]: volgende tab
@@ -47,7 +47,7 @@
   [: vorige tab
   ]: volgende tab
   d: verwijder image
-  D: verwijder nietgebruikte images
+  D: vernietig ongebruikte images
   enter: focus hooft panneel
 
@@ -57,11 +57,11 @@ [: vorige tab ]: volgende tab d: verwijder volume - D: verwijder nietgebruikte images + D: vernietig ongebruikte volumes enter: focus hooft panneel
-## Main +## Hooft
   esc: terug
diff --git a/docs/keybindings/Keybindings_pl.md b/docs/keybindings/Keybindings_pl.md
index 50d7a427..9e65f80d 100644
--- a/docs/keybindings/Keybindings_pl.md
+++ b/docs/keybindings/Keybindings_pl.md
@@ -1,68 +1,68 @@
 # Lazydocker menu
 
-## Status
+## Projekt
 
 
-  e: edit lazydocker config
-  o: open lazydocker config
-  [: previous tab
-  ]: next tab
-  m: view logs
-  enter: focus main panel
+  e: edytuj konfigurację
+  o: otwórz konfigurację
+  [: poprzednia zakładka
+  ]: następna zakładka
+  m: pokaż logi
+  enter: skup na głównym panelu
 
-## Containers +## Kontenery
-  [: previous tab
-  ]: next tab
-  d: remove
-  s: stop
-  r: restart
-  a: attach
-  D: prune exited containers
-  m: view logs
-  c: run predefined custom command
-  enter: focus main panel
+  [: poprzednia zakładka
+  ]: następna zakładka
+  d: usuń
+  s: zatrzymaj
+  r: restartuj
+  a: przyczep
+  D: wyczyść kontenery
+  m: pokaż logi
+  c: wykonaj predefiniowaną własną komende
+  enter: skup na głównym panelu
 
-## Services +## Serwisy
-  d: remove containers
-  s: stop
-  r: restart
-  a: attach
-  m: view logs
-  [: previous tab
-  ]: next tab
-  R: view restart options
-  c: run predefined custom command
-  enter: focus main panel
+  d: usuń kontenery
+  s: zatrzymaj
+  r: restartuj
+  a: przyczep
+  m: pokaż logi
+  [: poprzednia zakładka
+  ]: następna zakładka
+  R: pokaż opcje restartu
+  c: wykonaj predefiniowaną własną komende
+  enter: skup na głównym panelu
 
-## Images +## Obrazy
-  [: previous tab
-  ]: next tab
-  d: remove image
-  D: prune unused images
-  enter: focus main panel
+  [: poprzednia zakładka
+  ]: następna zakładka
+  d: usuń obraz
+  D: wyczyść nieużywane obrazy
+  enter: skup na głównym panelu
 
-## Volumes +## Wolumeny
-  [: previous tab
-  ]: next tab
-  d: remove volume
-  D: prune unused volumes
-  enter: focus main panel
+  [: poprzednia zakładka
+  ]: następna zakładka
+  d: usuń wolumen
+  D: wyczyść nieużywane wolumeny
+  enter: skup na głównym panelu
 
-## Main +## Główne
-  esc: return
+  esc: powrót
 
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 +## Servisler
   d: 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 1f858d9d..041ccb63 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", From cfd47b2877cab6c357c45f176338dee82f861990 Mon Sep 17 00:00:00 2001 From: Jesse Duffield Date: Sat, 6 Jul 2019 12:22:20 +1000 Subject: [PATCH 2/2] add get_required_translations.go --- pkg/i18n/english.go | 2 -- pkg/i18n/i18n.go | 29 +++++++++--------- scripts/generate_cheatsheet.go | 4 +-- .../translations/get_required_translations.go | 30 +++++++++++++++++++ 4 files changed, 47 insertions(+), 18 deletions(-) create mode 100644 scripts/translations/get_required_translations.go 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 +}