diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 20d28336..8cc8ced4 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -26,7 +26,7 @@ If applicable, add screenshots to help explain your problem. **Desktop (please complete the following information):** - OS: [e.g. Windows] - Lazydocker Version [e.g. v0.1.45] - - The last commit id if you built project from sources (run : ```git-rev parse HEAD```) + - The last commit id if you built project from sources (run : ```git rev-parse HEAD```) **Additional context** Add any other context about the problem here. diff --git a/.goreleaser.yml b/.goreleaser.yml index e46c72e5..d96b9461 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -1,8 +1,12 @@ # This is an example goreleaser.yaml file with some sane defaults. # Make sure to check the documentation at http://goreleaser.com +env: + - CGO_ENABLED=0 + - GOFLAGS=-mod=vendor + - GO111MODULE=auto + builds: - - env: - - CGO_ENABLED=0 + - id: binary goos: # - freebsd # - windows # may reenable later @@ -13,23 +17,44 @@ builds: - arm - arm64 - 386 + goarm: + - 6 + - 7 ldflags: - -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}} -X main.buildSource=binaryRelease + - id: snap + goos: + - linux + goarch: + - amd64 + - arm + - arm64 + - 386 + goarm: + - 6 + - 7 + ldflags: + - -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}} -X main.buildSource=snap + +archives: + - builds: + - binary + replacements: + darwin: Darwin + linux: Linux + windows: Windows + 386: x86 + amd64: x86_64 + format_overrides: + - goos: windows + format: zip -archive: - replacements: - darwin: Darwin - linux: Linux - windows: Windows - 386: 32-bit - amd64: x86_64 - format_overrides: - - goos: windows - format: zip checksum: name_template: 'checksums.txt' + snapshot: name_template: '{{ .Tag }}-next' + changelog: sort: asc filters: @@ -37,16 +62,74 @@ changelog: - '^docs:' - '^test:' - '^bump' -brew: - # Reporitory to push the tap to. - github: - owner: jesseduffield - name: homebrew-lazydocker - # Your app's homepage. - # Default is empty. - homepage: 'https://github.com/jesseduffield/lazydocker/' +brews: + - github: + owner: jesseduffield + name: homebrew-lazydocker - # Your app's description. - # Default is empty. - description: 'A simple terminal UI for docker, written in Go' + # Your app's homepage. + # Default is empty. + homepage: 'https://github.com/jesseduffield/lazydocker/' + + # Your app's description. + # Default is empty. + description: 'A simple terminal UI for docker, written in Go' + +snapcrafts: + - builds: + - snap + + replacements: + linux: Linux + 386: x86 + amd64: x86_64 + + # Wether to publish the snap to the snapcraft store. + # Remember you need to `snapcraft login` first. + # Defaults to false. + publish: true + + # Single-line elevator pitch for your amazing snap. + # 79 char long at most. + summary: The lazier way to manage everything docker + + # This the description of your snap. You have a paragraph or two to tell the + # most important story about your snap. Keep it under 100 words though, + # we live in tweetspace and your description wants to look good in the snap + # store. + description: 'A simple terminal UI for docker, written in Go' + + # A guardrail to prevent you from releasing a snap to all your users before + # it is ready. + # `devel` will let you release only to the `edge` and `beta` channels in the + # store. `stable` will let you release also to the `candidate` and `stable` + # channels. More info about channels here: + # https://snapcraft.io/docs/reference/channels + grade: stable + + # Snaps can be setup to follow three different confinement policies: + # `strict`, `devmode` and `classic`. A strict confinement where the snap + # can only read and write in its own namespace is recommended. Extra + # permissions for strict snaps can be declared as `plugs` for the app, which + # are explained later. More info about confinement here: + # https://snapcraft.io/docs/reference/confinement + confinement: classic + + # Your app's license, based on SPDX license expressions: https://spdx.org/licenses + # Default is empty. + license: MIT + + # # Each binary built by GoReleaser is an app inside the snap. In this section + # # you can declare extra details for those binaries. It is optional. + # apps: + + # # The name of the app must be the same name as the binary built or the snapcraft name. + # lazydocker: + + # # If your app requires extra permissions to work outside of its default + # # confined space, declare them here. + # # You can read the documentation about the available plugs and the + # # things they allow: + # # https://snapcraft.io/docs/reference/interfaces. + # plugs: [] diff --git a/docs/keybindings/Keybindings_tr.md b/docs/keybindings/Keybindings_tr.md new file mode 100644 index 00000000..7505a090 --- /dev/null +++ b/docs/keybindings/Keybindings_tr.md @@ -0,0 +1,68 @@ +# Lazydocker menu + +## Status + +
+ e: lazydocker ayarlarını düzenle + o: lazydocker ayarlarını aç + [: önceki sekme + ]: sonraki sekme + m: kayıt defterini görüntüle + enter: ana panele odaklan ++ +## Containers + +
+ [: önceki sekme + ]: sonraki sekme + d: kaldır + s: durdur + r: yeniden başlat + a: bağlan + D: çalışmayan konteynerleri temizle + m: kayıt defterini görüntüle + c: önceden tanımlanmış özel bir komut çalıştır + enter: ana panele odaklan ++ +## Services + +
+ d: konteynerleri kaldır + s: durdur + r: yeniden başlat + a: bağlan + 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 + enter: ana panele odaklan ++ +## Images + +
+ [: önceki sekme + ]: sonraki sekme + d: imajı kaldır + D: kullanılmayan imajları kaldır + enter: ana panele odaklan ++ +## Volumes + +
+ [: önceki sekme + ]: sonraki sekme + d: alanı sil + D: kullanılmayan alanları sil + enter: ana panele odaklan ++ +## Main + +
+ esc: geri +diff --git a/pkg/i18n/i18n.go b/pkg/i18n/i18n.go index 8d2d21cb..405dd819 100644 --- a/pkg/i18n/i18n.go +++ b/pkg/i18n/i18n.go @@ -24,18 +24,20 @@ func NewTranslationSet(log *logrus.Entry) *TranslationSet { set := englishSet() - userLang = "pl" - if strings.HasPrefix(userLang, "pl") { - mergo.Merge(&set, polishSet(), mergo.WithOverride) + _ = mergo.Merge(&set, polishSet(), mergo.WithOverride) } if strings.HasPrefix(userLang, "nl") { - mergo.Merge(&set, dutchSet(), mergo.WithOverride) + _ = mergo.Merge(&set, dutchSet(), mergo.WithOverride) } if strings.HasPrefix(userLang, "de") { - mergo.Merge(&set, germanSet(), mergo.WithOverride) + _ = mergo.Merge(&set, germanSet(), mergo.WithOverride) + } + + if strings.HasPrefix(userLang, "tr") { + _ = mergo.Merge(&set, turkishSet(), mergo.WithOverride) } return &set diff --git a/pkg/i18n/polish.go b/pkg/i18n/polish.go index df4869d9..6db5a84e 100644 --- a/pkg/i18n/polish.go +++ b/pkg/i18n/polish.go @@ -1,5 +1,90 @@ package i18n func polishSet() TranslationSet { - return TranslationSet{} + return TranslationSet{ + PruningStatus: "czyszczenie", + RemovingStatus: "usuwanie", + RestartingStatus: "restartowanie", + StoppingStatus: "zatrzymywanie", + RunningCustomCommandStatus: "uruchamianie własnej komendty", + + RunningSubprocess: "uruchamianie podprocesu", + NoViewMachingNewLineFocusedSwitchStatement: "Żaden widok nie odpowiada instrukcji przełączenia newLineFocused", + + ErrorOccurred: "Wystąpił błąd! Proszę go zgłosić na https://github.com/jesseduffield/lazydocker/issues", + ConnectionFailed: "Błąd połączenia z Dockerem. Być może należy go zrestartować.", + UnattachableContainerError: "Kontener nie obsługuje przyczepiania (attach). Musisz albo użyć flag '-it', albo `stdin_open: true, tty: true` w pliku docker-compose.yml.", + CannotAttachStoppedContainerError: "Nie można przyczepić się do zatrzymanego kontenera, należy go najpierw uruchomić (co można wykonać wciskając przycisk 'r')", + CannotAccessDockerSocketError: "Nie udało się uzyskać dostępu do unix:///var/run/docker.sock\nUruchom program jako root lub przeczytaj https://docs.docker.com/install/linux/linux-postinstall/", + + Donate: "Dotacja", + Confirm: "Potwierdź", + + Return: "powrót", + FocusMain: "skup na głównym panelu", + Navigate: "nawigowanie", + Execute: "wykonaj", + Close: "zamknij", + Menu: "menu", + Scroll: "przewiń", + OpenConfig: "otwórz konfigurację", + EditConfig: "edytuj konfigurację", + Cancel: "anuluj", + Remove: "usuń", + ForceRemove: "usuń siłą", + RemoveWithVolumes: "usuń z wolumenami", + RemoveService: "usuń kontenery", + Stop: "zatrzymaj", + Restart: "restartuj", + Rebuild: "przebuduj", + Recreate: "odtwórz", + PreviousContext: "poprzednia zakładka", + NextContext: "następna zakładka", + Attach: "przyczep", + ViewLogs: "pokaż logi", + RemoveImage: "usuń obraz", + RemoveVolume: "usuń wolumen", + RemoveWithoutPrune: "usuń bez kasowania nieoznaczonych rodziców", + PruneContainers: "wyczyść kontenery", + PruneVolumes: "wyczyść nieużywane wolumeny", + PruneImages: "wyczyść nieużywane obrazy", + ViewRestartOptions: "pokaż opcje restartu", + RunCustomCommand: "wykonaj predefiniowaną własną komende", + + AnonymousReportingTitle: "Pomóż czynić lazydocker lepszym", + AnonymousReportingPrompt: "Czy zechciałbyś włączyć anonimowe raportowanie danych w celu ulepszania programu? (enter/esc)", + + GlobalTitle: "Globalne", + MainTitle: "Główne", + StatusTitle: "Status", + ServicesTitle: "Serwisy", + ContainersTitle: "Kontenery", + StandaloneContainersTitle: "Kontenery samodzielne", + ImagesTitle: "Obrazy", + VolumesTitle: "Wolumeny", + CustomCommandTitle: "Własna komenda:", + ErrorTitle: "Błąd", + LogsTitle: "Logi", + ConfigTitle: "Konfiguracja", + DockerComposeConfigTitle: "Konfiguracja docker-compose", + TopTitle: "Top", + StatsTitle: "Staty", + CreditsTitle: "O", + ContainerConfigTitle: "Konfiguracja kontenera", + + NoContainers: "Brak kontenerów", + NoContainer: "Brak kontenera", + NoImages: "Brak obrazów", + NoVolumes: "Brak wolumenów", + + ConfirmQuit: "Na pewno chcesz wyjść?", + MustForceToRemoveContainer: "Nie możesz usunąć uruchomionego kontenera dopóki nie zrobisz tego siłą. Chcesz wykonać to z siłą?", + NotEnoughSpace: "Niedostateczna ilość miejsca do wyświetlenia paneli", + ConfirmPruneImages: "Na pewno wyczyścić wszystkie nieużywane obrazy?", + ConfirmPruneContainers: "Na pewno wyczyścić wszystkie nieuruchomione kontenery?", + ConfirmPruneVolumes: "Na pewno wyczyścić wszystkie nieużywane wolumeny?", + StopService: "Na pewno zatrzymać kontenery tego serwisu? (enter/esc)", + StopContainer: "Na pewno zatrzymać ten kontener?", + PressEnterToReturn: "Wciśnij enter aby powrócić do lazydockera (ten komunikat może być wyłączony w konfiguracji poprzez ustawienie `gui.returnImmediately: true`)", + } } diff --git a/pkg/i18n/turkish.go b/pkg/i18n/turkish.go new file mode 100644 index 00000000..b6f43589 --- /dev/null +++ b/pkg/i18n/turkish.go @@ -0,0 +1,90 @@ +package i18n + +func turkishSet() TranslationSet { + return TranslationSet{ + PruningStatus: "temizleniyor", + RemovingStatus: "kaldırılıyor", + RestartingStatus: "yeniden başlatılıyor", + StoppingStatus: "durduruluyor", + RunningCustomCommandStatus: "özel komut çalıştır", + + RunningSubprocess: "İkincil işlem yürütülüyor", + NoViewMachingNewLineFocusedSwitchStatement: "NewLineFocused anahtar deyimi ile eşleşen görünüm yok", + + ErrorOccurred: "Bir hata oluştu! Lütfen https://github.com/jesseduffield/lazydocker/issues adresinden bir hataya ilişkin konu oluşturun", + ConnectionFailed: "Docker bağlantısı başarısız oldu. Docker' ı yeniden başlatmanız gerekebilir", + UnattachableContainerError: "Konteyner attaching modunda çalışmayı desteklemiyor. Hizmeti '-it' opsiyonu ile çalıştırmanız veya docker-compose.yml dosyasında `stdin_open: true, tty: true` kullanmanız gerekir.", + CannotAttachStoppedContainerError: "Durdurulan konteynera bağlanamazsınız, ilk önce başlatmanız gerekir (aslında başlatmayı r tuşu ile yapabilirsiniz) (evet, senin için bunu otomatik olarak yapabilirim fakat çok tembelim) (hata mesajı ile seninle birebir iletişim kurmam çok daha güzel)", + CannotAccessDockerSocketError: "Docker' a şu adresten erişilemiyor : unix:///var/run/docker.sock\n lazydocker' ı root(kök kullanıcı) olarak çalıştır veya şu adresteki adımları takip et : https://docs.docker.com/install/linux/linux-postinstall/", + + Donate: "Bağış", + Confirm: "Onayla", + + Return: "dönüş", + FocusMain: "ana panele odaklan", + Navigate: "gezin", + Execute: "çalıştır", + Close: "kapat", + Menu: "menü", + Scroll: "kaydır", + OpenConfig: "lazydocker ayarlarını aç", + EditConfig: "lazzydocker ayarlarını düzenle", + Cancel: "iptal", + Remove: "kaldır", + ForceRemove: "kaldırmaya zorla", + RemoveWithVolumes: "alanları ile birlikte kaldır", + RemoveService: "konteynerleri kaldır", + Stop: "durdur", + Restart: "yeniden başlat", + Rebuild: "yeniden yapılandır", + Recreate: "yeniden oluştur", + PreviousContext: "önceki sekme", + NextContext: "sonraki sekme", + Attach: "bağlan/iliştir", + ViewLogs: "kayıt defterini görüntüle", + RemoveImage: "imajı kaldır", + RemoveVolume: "alanı kaldır", + RemoveWithoutPrune: "etkisiz ebeveynleri silmeden kaldır", + PruneContainers: "çalışmayan konteynerleri temizle", + PruneVolumes: "kullanılmayan alanları temizle", + PruneImages: "kullanılmayan imajları temizle", + ViewRestartOptions: "yeniden başlatma seçeneklerini görüntüle", + RunCustomCommand: "önceden tanımlanmış özel komutu çalıştır", + + AnonymousReportingTitle: "lazydocker' ı daha iyi hale getirmeye yardımcı olun", + AnonymousReportingPrompt: "lazydocker'ın geliştirilmesine yardımcı olmak için anonim raporlama verilerini etkinleştirmek ister misiniz? (enter/esc)", + + GlobalTitle: "Global", + MainTitle: "Ana", + StatusTitle: "Durum", + ServicesTitle: "Servisler", + ContainersTitle: "Konteynerler", + StandaloneContainersTitle: "Bağımsız Konteynerler", + ImagesTitle: "Imajlar", + VolumesTitle: "Alanlar", + CustomCommandTitle: "Özel Komut:", + ErrorTitle: "Hata", + LogsTitle: "Kayitlar", + ConfigTitle: "Ayarlar", + DockerComposeConfigTitle: "Docker-Compose Ayar", + TopTitle: "Top", + StatsTitle: "Durumlar", + CreditsTitle: "Hakkinda", + ContainerConfigTitle: "Konteyner Ayar", + + NoContainers: "Konteynerler yok", + NoContainer: "Konteyner yok", + NoImages: "Imajlar yok", + NoVolumes: "Alanlar yok", + + ConfirmQuit: "Çıkmak istediğine emin misin?", + MustForceToRemoveContainer: "Zorlamadan çalışan bir konteyneri kaldıramazsınız. Zorlamak ister misin?", + NotEnoughSpace: "Panelleri oluşturmak için yeterli alan yok", + ConfirmPruneImages: "Kullanılmayan tüm görüntüleri temizlemek istediğinize emin misiniz?", + ConfirmPruneContainers: "Durdurulan tüm konteynerları temizlemek istediğinizden emin misiniz?", + ConfirmPruneVolumes: "Kullanılmayan tüm alanları temizlemek istediğinizden emin misiniz?", + StopService: "Bu servisin konteynerlerini durdurmak istediğinize emin misiniz? (enter/esc)", + StopContainer: "Bu konteyneri durdurmak istediğinize emin misiniz?", + PressEnterToReturn: "lazydocker' a geri dönmek için enter tuşuna basın ( Bu uyarı, `gui.return Immediately: true` ayarıyla devre dışı bırakılabilir)", + } +}