feat: implement new languages: Italian, Russia, Japanese

This commit is contained in:
Egor Yolkin 2025-11-16 20:37:03 +05:00
parent 78edbf3d2e
commit 2834e6b65c
4 changed files with 437 additions and 1 deletions

View file

@ -28,7 +28,7 @@ func NewTranslationSetFromConfig(log *logrus.Entry, configLanguage string) (*Tra
}
}
return NewTranslationSet(log, "en"), errors.New("Language not found: " + configLanguage)
return NewTranslationSet(log, "ru"), errors.New("Language not found: " + configLanguage)
}
func NewTranslationSet(log *logrus.Entry, language string) *TranslationSet {
@ -57,6 +57,9 @@ func GetTranslationSets() map[string]TranslationSet {
"zh": chineseSet(),
"es": spanishSet(),
"pt": portugueseSet(),
"ru": russianSet(),
"it": italianSet(),
"ja": japaneseSet(),
}
}

145
pkg/i18n/italian.go Normal file
View file

@ -0,0 +1,145 @@
package i18n
func italianSet() TranslationSet {
return TranslationSet{
PruningStatus: "pulizia",
RemovingStatus: "rimozione",
RestartingStatus: "riavvio",
StartingStatus: "avvio",
StoppingStatus: "arresto",
UppingServiceStatus: "avvio servizio",
UppingProjectStatus: "avvio progetto",
DowningStatus: "arresto",
PausingStatus: "pausa",
RunningCustomCommandStatus: "esecuzione comando personalizzato",
RunningBulkCommandStatus: "esecuzione comando in blocco",
NoViewMachingNewLineFocusedSwitchStatement: "Nessuna vista corrispondente all'istruzione switch newLineFocused",
ErrorOccurred: "Si è verificato un errore! Si prega di creare una issue su https://github.com/jesseduffield/lazydocker/issues",
ConnectionFailed: "Connessione al client Docker fallita. Potrebbe essere necessario riavviare il client Docker",
UnattachableContainerError: "Il contenitore non supporta il collegamento. È necessario eseguire il servizio con il flag '-it' o utilizzare `stdin_open: true, tty: true` nel file docker-compose.yml",
WaitingForContainerInfo: "Impossibile procedere fino a quando Docker non fornisce ulteriori informazioni sul contenitore. Si prega di riprovare tra qualche istante.",
CannotAttachStoppedContainerError: "Non è possibile collegarsi a un contenitore arrestato, è necessario prima avviarlo (cosa che si può effettivamente fare con il tasto 'r') (sì, sono troppo pigro per farlo automaticamente per te) (è piuttosto bello che io possa comunicare uno a uno con te sotto forma di messaggio di errore)",
CannotAccessDockerSocketError: "Impossibile accedere al socket Docker su: unix:///var/run/docker.sock\nEseguire lazydocker come root o leggere https://docs.docker.com/install/linux/linux-postinstall/",
CannotKillChildError: "Atteso tre secondi per l'arresto del processo figlio. Potrebbe esserci un processo orfano che continua a essere eseguito sul sistema.",
Donate: "Dona",
Confirm: "Conferma",
Return: "ritorna",
FocusMain: "focus sul pannello principale",
LcFilter: "filtra elenco",
Navigate: "naviga",
Execute: "esegui",
Close: "chiudi",
Quit: "esci",
Menu: "menu",
MenuTitle: "Menu",
Scroll: "scorri",
OpenConfig: "apri configurazione lazydocker",
EditConfig: "modifica configurazione lazydocker",
Cancel: "annulla",
Remove: "rimuovi",
HideStopped: "nascondi/mostra contenitori arrestati",
ForceRemove: "rimozione forzata",
RemoveWithVolumes: "rimuovi con volumi",
RemoveService: "rimuovi contenitori",
UpService: "avvia servizio",
Stop: "arresta",
Pause: "pausa",
Restart: "riavvia",
Down: "arresta progetto",
DownWithVolumes: "arresta progetto con volumi",
Start: "avvia",
Rebuild: "ricompila",
Recreate: "ricrea",
PreviousContext: "scheda precedente",
NextContext: "scheda successiva",
Attach: "collega",
ViewLogs: "visualizza log",
UpProject: "avvia progetto",
DownProject: "arresta progetto",
RemoveImage: "rimuovi immagine",
RemoveVolume: "rimuovi volume",
RemoveNetwork: "rimuovi rete",
RemoveWithoutPrune: "rimuovi senza eliminare i genitori non taggati",
RemoveWithoutPruneWithForce: "rimuovi (forzato) senza eliminare i genitori non taggati",
RemoveWithForce: "rimuovi (forzato)",
PruneContainers: "pulisci contenitori terminati",
PruneVolumes: "pulisci volumi inutilizzati",
PruneNetworks: "pulisci reti inutilizzate",
PruneImages: "pulisci immagini inutilizzate",
StopAllContainers: "arresta tutti i contenitori",
RemoveAllContainers: "rimuovi tutti i contenitori (forzato)",
ViewRestartOptions: "visualizza opzioni di riavvio",
ExecShell: "esegui shell",
RunCustomCommand: "esegui comando personalizzato",
ViewBulkCommands: "visualizza comandi in blocco",
FilterList: "filtra elenco",
OpenInBrowser: "apri nel browser (la prima porta è http)",
SortContainersByState: "ordina contenitori per stato",
GlobalTitle: "Globale",
MainTitle: "Principale",
ProjectTitle: "Progetto",
ServicesTitle: "Servizi",
ContainersTitle: "Contenitori",
StandaloneContainersTitle: "Contenitori autonomi",
ImagesTitle: "Immagini",
VolumesTitle: "Volumi",
NetworksTitle: "Reti",
CustomCommandTitle: "Comando personalizzato:",
BulkCommandTitle: "Comando in blocco:",
ErrorTitle: "Errore",
LogsTitle: "Log",
ConfigTitle: "Configurazione",
EnvTitle: "Variabili d'ambiente",
DockerComposeConfigTitle: "Configurazione Docker-Compose",
TopTitle: "Top",
StatsTitle: "Statistiche",
CreditsTitle: "Informazioni",
ContainerConfigTitle: "Configurazione contenitore",
ContainerEnvTitle: "Variabili contenitore",
NothingToDisplay: "Niente da visualizzare",
NoContainerForService: "Nessun log da mostrare; il servizio non è associato a un contenitore",
CannotDisplayEnvVariables: "Qualcosa è andato storto durante la visualizzazione delle variabili d'ambiente",
NoContainers: "Nessun contenitore",
NoContainer: "Nessun contenitore",
NoImages: "Nessuna immagine",
NoVolumes: "Nessun volume",
NoNetworks: "Nessuna rete",
NoServices: "Nessun servizio",
ConfirmQuit: "Sei sicuro di voler uscire?",
ConfirmUpProject: "Sei sicuro di voler avviare il tuo progetto docker compose?",
MustForceToRemoveContainer: "Non è possibile rimuovere un contenitore in esecuzione senza forzarlo. Vuoi forzarlo?",
NotEnoughSpace: "Spazio insufficiente per visualizzare i pannelli",
ConfirmPruneImages: "Sei sicuro di voler pulire tutte le immagini inutilizzate?",
ConfirmPruneContainers: "Sei sicuro di voler pulire tutti i contenitori arrestati?",
ConfirmStopContainers: "Sei sicuro di voler arrestare tutti i contenitori?",
ConfirmRemoveContainers: "Sei sicuro di voler rimuovere tutti i contenitori?",
ConfirmPruneVolumes: "Sei sicuro di voler pulire tutti i volumi inutilizzati?",
ConfirmPruneNetworks: "Sei sicuro di voler pulire tutte le reti inutilizzate?",
StopService: "Sei sicuro di voler arrestare i contenitori di questo servizio?",
StopContainer: "Sei sicuro di voler arrestare questo contenitore?",
PressEnterToReturn: "Premi invio per tornare a lazydocker (questo prompt può essere disabilitato nella configurazione impostando `gui.returnImmediately: true`)",
DetachFromContainerShortCut: "Per impostazione predefinita, per scollegarsi dal contenitore premere ctrl-p quindi ctrl-q",
No: "no",
Yes: "sì",
LcNextScreenMode: "modalità schermo successiva (normale/metà/schermo intero)",
LcPrevScreenMode: "modalità schermo precedente",
FilterPrompt: "filtro",
FocusProjects: "focus sul pannello progetti",
FocusServices: "focus sul pannello servizi",
FocusContainers: "focus sul pannello contenitori",
FocusImages: "focus sul pannello immagini",
FocusVolumes: "focus sul pannello volumi",
FocusNetworks: "focus sul pannello reti",
}
}

144
pkg/i18n/japanese.go Normal file
View file

@ -0,0 +1,144 @@
package i18n
func japaneseSet() TranslationSet {
return TranslationSet{
PruningStatus: "プルーニング中",
RemovingStatus: "削除中",
RestartingStatus: "再起動中",
StartingStatus: "起動中",
StoppingStatus: "停止中",
UppingServiceStatus: "サービス起動中",
UppingProjectStatus: "プロジェクト起動中",
DowningStatus: "停止中",
PausingStatus: "一時停止中",
RunningCustomCommandStatus: "カスタムコマンド実行中",
RunningBulkCommandStatus: "一括コマンド実行中",
NoViewMachingNewLineFocusedSwitchStatement: "newLineFocused switch文に一致するビューがありません",
ErrorOccurred: "エラーが発生しましたhttps://github.com/jesseduffield/lazydocker/issues にissueを作成してください",
ConnectionFailed: "dockerクライアントへの接続に失敗しました。dockerクライアントの再起動が必要な場合があります",
UnattachableContainerError: "コンテナはアタッチをサポートしていません。'-it'フラグを使用してサービスを実行するか、docker-compose.ymlファイルで`stdin_open: true, tty: true`を使用する必要があります",
WaitingForContainerInfo: "Dockerがコンテナに関する詳細情報を提供するまで続行できません。しばらくしてから再試行してください。",
CannotAttachStoppedContainerError: "停止したコンテナにはアタッチできません。まず起動する必要があります(実際には'r'キーで起動できます)(はい、私は自動的にやるには怠け者すぎます)(エラーメッセージの形であなたと一対一でコミュニケーションできるのはかなりクールですが)",
CannotAccessDockerSocketError: "unix:///var/run/docker.sockのdockerソケットにアクセスできません\nlazydockerをrootとして実行するか、https://docs.docker.com/install/linux/linux-postinstall/ を読んでください",
CannotKillChildError: "子プロセスが停止するまで3秒待機しました。システム上で実行し続ける孤立プロセスがある可能性があります。",
Donate: "寄付",
Confirm: "確認",
Return: "戻る",
FocusMain: "メインパネルにフォーカス",
LcFilter: "リストをフィルター",
Navigate: "ナビゲート",
Execute: "実行",
Close: "閉じる",
Quit: "終了",
Menu: "メニュー",
MenuTitle: "メニュー",
Scroll: "スクロール",
OpenConfig: "lazydocker設定を開く",
EditConfig: "lazydocker設定を編集",
Cancel: "キャンセル",
Remove: "削除",
HideStopped: "停止したコンテナを非表示/表示",
ForceRemove: "強制削除",
RemoveWithVolumes: "ボリュームと共に削除",
RemoveService: "コンテナを削除",
UpService: "サービスを起動",
Stop: "停止",
Pause: "一時停止",
Restart: "再起動",
Down: "プロジェクトを停止",
DownWithVolumes: "ボリュームと共にプロジェクトを停止",
Start: "開始",
Rebuild: "再ビルド",
Recreate: "再作成",
PreviousContext: "前のタブ",
NextContext: "次のタブ",
Attach: "アタッチ",
ViewLogs: "ログを表示",
UpProject: "プロジェクトを起動",
DownProject: "プロジェクトを停止",
RemoveImage: "イメージを削除",
RemoveVolume: "ボリュームを削除",
RemoveNetwork: "ネットワークを削除",
RemoveWithoutPrune: "タグなし親を削除せずに削除",
RemoveWithoutPruneWithForce: "タグなし親を削除せずに削除(強制)",
RemoveWithForce: "削除(強制)",
PruneContainers: "終了したコンテナをプルーニング",
PruneVolumes: "未使用のボリュームをプルーニング",
PruneNetworks: "未使用のネットワークをプルーニング",
PruneImages: "未使用のイメージをプルーニング",
StopAllContainers: "すべてのコンテナを停止",
RemoveAllContainers: "すべてのコンテナを削除(強制)",
ViewRestartOptions: "再起動オプションを表示",
ExecShell: "シェルを実行",
RunCustomCommand: "カスタムコマンドを実行",
ViewBulkCommands: "一括コマンドを表示",
FilterList: "リストをフィルター",
OpenInBrowser: "ブラウザで開く最初のポートはhttp",
SortContainersByState: "コンテナを状態でソート",
GlobalTitle: "グローバル",
MainTitle: "メイン",
ProjectTitle: "プロジェクト",
ServicesTitle: "サービス",
ContainersTitle: "コンテナ",
StandaloneContainersTitle: "スタンドアロンコンテナ",
ImagesTitle: "イメージ",
VolumesTitle: "ボリューム",
NetworksTitle: "ネットワーク",
CustomCommandTitle: "カスタムコマンド:",
BulkCommandTitle: "一括コマンド:",
ErrorTitle: "エラー",
LogsTitle: "ログ",
ConfigTitle: "設定",
EnvTitle: "環境変数",
DockerComposeConfigTitle: "Docker-Compose設定",
TopTitle: "Top",
StatsTitle: "統計",
CreditsTitle: "について",
ContainerConfigTitle: "コンテナ設定",
ContainerEnvTitle: "コンテナ環境変数",
NothingToDisplay: "表示するものがありません",
NoContainerForService: "表示するログがありません;サービスはコンテナに関連付けられていません",
CannotDisplayEnvVariables: "環境変数の表示中に問題が発生しました",
NoContainers: "コンテナなし",
NoContainer: "コンテナなし",
NoImages: "イメージなし",
NoVolumes: "ボリュームなし",
NoNetworks: "ネットワークなし",
NoServices: "サービスなし",
ConfirmQuit: "本当に終了しますか?",
ConfirmUpProject: "本当にdocker composeプロジェクトを起動しますか",
MustForceToRemoveContainer: "実行中のコンテナを強制的に削除しない限り削除できません。強制削除しますか?",
NotEnoughSpace: "パネルを表示するのに十分なスペースがありません",
ConfirmPruneImages: "本当にすべての未使用イメージをプルーニングしますか?",
ConfirmPruneContainers: "本当にすべての停止したコンテナをプルーニングしますか?",
ConfirmStopContainers: "本当にすべてのコンテナを停止しますか?",
ConfirmRemoveContainers: "本当にすべてのコンテナを削除しますか?",
ConfirmPruneVolumes: "本当にすべての未使用ボリュームをプルーニングしますか?",
ConfirmPruneNetworks: "本当にすべての未使用ネットワークをプルーニングしますか?",
StopService: "本当にこのサービスのコンテナを停止しますか?",
StopContainer: "本当にこのコンテナを停止しますか?",
PressEnterToReturn: "Enterキーを押してlazydockerに戻りますこのプロンプトは設定で`gui.returnImmediately: true`を設定することで無効にできます)",
DetachFromContainerShortCut: "デフォルトでは、コンテナからデタッチするにはctrl-pを押してからctrl-qを押します",
No: "いいえ",
Yes: "はい",
LcNextScreenMode: "次の画面モード(通常/半分/フルスクリーン)",
LcPrevScreenMode: "前の画面モード",
FilterPrompt: "フィルター",
FocusProjects: "プロジェクトパネルにフォーカス",
FocusServices: "サービスパネルにフォーカス",
FocusContainers: "コンテナパネルにフォーカス",
FocusImages: "イメージパネルにフォーカス",
FocusVolumes: "ボリュームパネルにフォーカス",
FocusNetworks: "ネットワークパネルにフォーカス",
}
}

144
pkg/i18n/russian.go Normal file
View file

@ -0,0 +1,144 @@
package i18n
func russianSet() TranslationSet {
return TranslationSet{
PruningStatus: "очистка",
RemovingStatus: "удаление",
RestartingStatus: "перезапуск",
StartingStatus: "запуск",
StoppingStatus: "остановка",
UppingServiceStatus: "запуск сервиса",
UppingProjectStatus: "запуск проекта",
DowningStatus: "остановка",
PausingStatus: "приостановка",
RunningCustomCommandStatus: "выполнение пользовательской команды",
RunningBulkCommandStatus: "выполнение групповой команды",
NoViewMachingNewLineFocusedSwitchStatement: "Нет представления, соответствующего оператору переключения newLineFocused",
ErrorOccurred: "Произошла ошибка! Пожалуйста, создайте issue на https://github.com/jesseduffield/lazydocker/issues",
ConnectionFailed: "Не удалось подключиться к клиенту Docker. Возможно, нужно перезапустить клиент Docker",
UnattachableContainerError: "Контейнер не поддерживает подключение. Вы должны либо запустить сервис с флагом '-it', либо использовать `stdin_open: true, tty: true` в файле docker-compose.yml",
WaitingForContainerInfo: "Невозможно продолжить, пока Docker не предоставит больше информации о контейнере. Пожалуйста, повторите попытку через несколько секунд.",
CannotAttachStoppedContainerError: "Вы не можете подключиться к остановленному контейнеру, сначала нужно его запустить (это можно сделать клавишей 'r') (да, я слишком ленив, чтобы сделать это автоматически за вас) (довольно круто, что я могу общаться с вами один на один в виде сообщения об ошибке)",
CannotAccessDockerSocketError: "Нет доступа к сокету Docker по адресу: unix:///var/run/docker.sock\nЗапустите lazydocker от имени root или прочтите https://docs.docker.com/install/linux/linux-postinstall/",
CannotKillChildError: "Ожидание остановки дочернего процесса заняло три секунды. Возможно, в вашей системе остался процесс-сирота.",
Donate: "Поддержать",
Confirm: "Подтвердить",
Return: "вернуться",
FocusMain: "фокус на главную панель",
LcFilter: "фильтровать список",
Navigate: "навигация",
Execute: "выполнить",
Close: "закрыть",
Quit: "выйти",
Menu: "меню",
MenuTitle: "Меню",
Scroll: "прокрутка",
OpenConfig: "открыть конфигурацию lazydocker",
EditConfig: "редактировать конфигурацию lazydocker",
Cancel: "отменить",
Remove: "удалить",
HideStopped: "скрыть/показать остановленные контейнеры",
ForceRemove: "принудительное удаление",
RemoveWithVolumes: "удалить с томами",
RemoveService: "удалить контейнеры",
UpService: "запустить сервис",
Stop: "остановить",
Pause: "приостановить",
Restart: "перезапустить",
Down: "остановить проект",
DownWithVolumes: "остановить проект с томами",
Start: "запустить",
Rebuild: "пересобрать",
Recreate: "пересоздать",
PreviousContext: "предыдущая вкладка",
NextContext: "следующая вкладка",
Attach: "подключиться",
ViewLogs: "просмотр логов",
UpProject: "запустить проект",
DownProject: "остановить проект",
RemoveImage: "удалить образ",
RemoveVolume: "удалить том",
RemoveNetwork: "удалить сеть",
RemoveWithoutPrune: "удалить без удаления неотмеченных родителей",
RemoveWithoutPruneWithForce: "удалить (принудительно) без удаления неотмеченных родителей",
RemoveWithForce: "удалить (принудительно)",
PruneContainers: "очистить завершенные контейнеры",
PruneVolumes: "очистить неиспользуемые тома",
PruneNetworks: "очистить неиспользуемые сети",
PruneImages: "очистить неиспользуемые образы",
StopAllContainers: "остановить все контейнеры",
RemoveAllContainers: "удалить все контейнеры (принудительно)",
ViewRestartOptions: "просмотр параметров перезапуска",
ExecShell: "выполнить shell",
RunCustomCommand: "выполнить пользовательскую команду",
ViewBulkCommands: "просмотр групповых команд",
FilterList: "фильтровать список",
OpenInBrowser: "открыть в браузере (первый порт - http)",
SortContainersByState: "сортировать контейнеры по состоянию",
GlobalTitle: "Глобальные",
MainTitle: "Главная",
ProjectTitle: "Проект",
ServicesTitle: "Сервисы",
ContainersTitle: "Контейнеры",
StandaloneContainersTitle: "Отдельные контейнеры",
ImagesTitle: "Образы",
VolumesTitle: "Тома",
NetworksTitle: "Сети",
CustomCommandTitle: "Пользовательская команда:",
BulkCommandTitle: "Групповая команда:",
ErrorTitle: "Ошибка",
LogsTitle: "Логи",
ConfigTitle: "Конфигурация",
EnvTitle: "Переменные окружения",
DockerComposeConfigTitle: "Конфигурация Docker-Compose",
TopTitle: "Top",
StatsTitle: "Статистика",
CreditsTitle: "О программе",
ContainerConfigTitle: "Конфигурация контейнера",
ContainerEnvTitle: "Переменные контейнера",
NothingToDisplay: "Нечего отображать",
NoContainerForService: "Нет логов для отображения; сервис не связан с контейнером",
CannotDisplayEnvVariables: "Что-то пошло не так при отображении переменных окружения",
NoContainers: "Нет контейнеров",
NoContainer: "Нет контейнера",
NoImages: "Нет образов",
NoVolumes: "Нет томов",
NoNetworks: "Нет сетей",
NoServices: "Нет сервисов",
ConfirmQuit: "Вы уверены, что хотите выйти?",
ConfirmUpProject: "Вы уверены, что хотите запустить ваш docker compose проект?",
MustForceToRemoveContainer: "Вы не можете удалить запущенный контейнер без принудительного удаления. Выполнить принудительное удаление?",
NotEnoughSpace: "Недостаточно места для отображения панелей",
ConfirmPruneImages: "Вы уверены, что хотите очистить все неиспользуемые образы?",
ConfirmPruneContainers: "Вы уверены, что хотите очистить все остановленные контейнеры?",
ConfirmStopContainers: "Вы уверены, что хотите остановить все контейнеры?",
ConfirmRemoveContainers: "Вы уверены, что хотите удалить все контейнеры?",
ConfirmPruneVolumes: "Вы уверены, что хотите очистить все неиспользуемые тома?",
ConfirmPruneNetworks: "Вы уверены, что хотите очистить все неиспользуемые сети?",
StopService: "Вы уверены, что хотите остановить контейнеры этого сервиса?",
StopContainer: "Вы уверены, что хотите остановить этот контейнер?",
PressEnterToReturn: "Нажмите enter для возврата в lazydocker (это сообщение можно отключить в конфигурации, установив `gui.returnImmediately: true`)",
DetachFromContainerShortCut: "По умолчанию для отключения от контейнера нажмите ctrl-p, затем ctrl-q",
No: "нет",
Yes: "да",
LcNextScreenMode: "следующий режим экрана (обычный/половина/полный экран)",
LcPrevScreenMode: "предыдущий режим экрана",
FilterPrompt: "фильтр",
FocusProjects: "фокус на панель проектов",
FocusServices: "фокус на панель сервисов",
FocusContainers: "фокус на панель контейнеров",
FocusImages: "фокус на панель образов",
FocusVolumes: "фокус на панель томов",
FocusNetworks: "фокус на панель сетей",
}
}