Skip to content

Commit 13d817c

Browse files
committed
feat: i18n
1 parent 635a186 commit 13d817c

File tree

29 files changed

+905
-131
lines changed

29 files changed

+905
-131
lines changed

.github/assets/fleet.jpg

163 KB
Loading

README.md

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Runner Fleet - GitHub Actions Runner Manager
22

3+
**文档 (Docs):** [中文](docs/zh/) · [Français](docs/fr/) · [Deutsch](docs/de/) · [한국어](docs/ko/) · [日本語](docs/ja/)
4+
5+
![](.github/assets/fleet.jpg)
6+
37
HTTP management UI built with Golang Echo to view and manage multiple self-hosted GitHub Actions Runners on one machine. YAML-based config, no database required.
48

59
## Highlights
@@ -44,16 +48,6 @@ Open http://localhost:8080. For more options (docker run, DinD, container mode)
4448
- **[User Guide](docs/guide.md)** — Deployment (Docker/docker-compose), config, adding runners, security & troubleshooting
4549
- **[Development & Build](docs/development.md)** — Go build, local debug, HTTP API, Makefile
4650

47-
Documentation in other languages (each contains User Guide and Development & Build):
48-
49-
| Language | Docs |
50-
|------------|------|
51-
| 中文 | [docs/zh/](docs/zh/) |
52-
| Français | [docs/fr/](docs/fr/) |
53-
| Deutsch | [docs/de/](docs/de/) |
54-
| 한국어 | [docs/ko/](docs/ko/) |
55-
| 日本語 | [docs/ja/](docs/ja/) |
56-
5751
## Other
5852

5953
CI / images / releases: [.github/workflows](.github/workflows).

cmd/runner-manager/i18n/de.json

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
{
2+
"page.title": "Runner Fleet - GitHub Actions Runner Manager",
3+
"page.h1": "Runner Fleet - GitHub Actions Runner Manager",
4+
"runner_list.title": "Runner-Liste",
5+
"runner_list.hint": "Registrierungsergebnis wird beim Hinzufügen mit Token geschrieben. GitHub-Sichtbarkeit wird etwa alle 5 Minuten geprüft (optional: .github_check_token im Runner-Verzeichnis ablegen).",
6+
"runner_list.table.name": "Name",
7+
"runner_list.table.target": "Ziel",
8+
"runner_list.table.status": "Status",
9+
"runner_list.table.docker_backend": "Docker-Backend",
10+
"runner_list.table.reg_github": "Reg. / GitHub",
11+
"runner_list.table.install_dir": "Installationsverzeichnis",
12+
"badge.running": "Läuft",
13+
"probe.failed": "Probe fehlgeschlagen",
14+
"reg.registered": "Registriert",
15+
"reg.failed": "Reg. fehlgeschlagen",
16+
"github.yes": "GitHub ✓",
17+
"github.no": "Nicht auf GitHub",
18+
"github.pending": "GitHub-Prüfung ausstehend (optional)",
19+
"btn.start": "Starten",
20+
"btn.stop": "Stoppen",
21+
"btn.view": "Anzeigen",
22+
"btn.edit": "Bearbeiten",
23+
"btn.delete": "Löschen",
24+
"btn.start_title": "Runner starten",
25+
"btn.stop_title": "Runner stoppen",
26+
"btn.start_unknown_title": "Probe fehlgeschlagen, Start versuchen",
27+
"btn.stop_unknown_title": "Probe fehlgeschlagen, Stopp versuchen",
28+
"btn.view_title": "Config anzeigen",
29+
"btn.edit_title": "Config bearbeiten",
30+
"btn.del_title": "Aus Config entfernen",
31+
"runner_list.empty": "Noch keine Runner. Unten einen hinzufügen.",
32+
"form.quick_add": "Runner schnell hinzufügen",
33+
"parse.label": "Aus GitHub-Befehl parsen (./config.sh --url ... --token ... einfügen, dann Parsen klicken)",
34+
"parse.placeholder": "./config.sh --url https://github.com/owner/repo --token YOUR_TOKEN",
35+
"parse.btn": "Parsen und ausfüllen",
36+
"form.name_label": "Name (name) *",
37+
"form.name_placeholder": "z. B. runner-1",
38+
"form.path_label": "Unterpfad (path, optional)",
39+
"form.path_placeholder": "z. B. runner-1",
40+
"form.target_type_label": "Zieltyp (target_type) *",
41+
"form.target_type_org": "Org (org)",
42+
"form.target_type_repo": "Repo (repo)",
43+
"form.target_label": "Ziel (target) *",
44+
"form.target_placeholder": "Org-Name oder owner/repo",
45+
"form.labels_label": "Labels (kommagetrennt, optional)",
46+
"form.labels_placeholder": "self-hosted, linux, x64",
47+
"form.token_label": "Registrierungs-Token (optional; GitHub Einstellungen → Actions → Runners → Add new, 1h gültig; neuer Token pro Runner)",
48+
"form.token_placeholder": "Optional; wenn gesetzt: Auto-Install, Registrierung, Start",
49+
"form.submit": "Runner hinzufügen",
50+
"msg.close": "Schließen",
51+
"modal.title": "Runner-Config",
52+
"modal.view_title": "Runner-Config anzeigen",
53+
"modal.edit_title": "Runner-Config bearbeiten",
54+
"modal.label_name": "Name",
55+
"modal.label_path": "Unterpfad",
56+
"modal.label_target_type": "Zieltyp",
57+
"modal.label_target": "Ziel",
58+
"modal.label_labels": "Labels",
59+
"modal.label_install_dir": "Installationsverzeichnis",
60+
"modal.label_docker_backend": "Docker-Backend",
61+
"modal.label_status": "Status",
62+
"modal.label_probe_error_type": "Probe-Fehlertyp",
63+
"modal.label_suggestion": "Vorschlag",
64+
"modal.label_check_cmd": "Prüfbefehl (nur Lesen)",
65+
"modal.label_fix_cmd": "Fix-Befehl (Nebenwirkungen)",
66+
"modal.btn_copy_cmd": "Befehl kopieren",
67+
"modal.btn_reveal_fix": "Fix-Befehl anzeigen",
68+
"modal.label_probe_error": "Probe-Fehler",
69+
"modal.label_reg_result": "Registrierungsergebnis",
70+
"modal.label_reg_checked_at": "Reg. geprüft um",
71+
"modal.label_github_display": "GitHub-Anzeige",
72+
"modal.label_github_check_at": "GitHub-Prüfung um",
73+
"modal.edit_path_placeholder": "Optional",
74+
"modal.edit_target_placeholder": "Org-Name oder owner/repo",
75+
"modal.edit_labels_placeholder": "self-hosted, linux, x64",
76+
"modal.btn_edit": "Bearbeiten",
77+
"modal.btn_save": "Speichern",
78+
"modal.btn_close": "Schließen",
79+
"modal.btn_start": "Starten",
80+
"modal.btn_stop": "Stoppen",
81+
"modal.gh_yes": "Auf GitHub sichtbar",
82+
"modal.gh_no": "Nicht auf GitHub",
83+
"modal.gh_unchecked": "GitHub-Anzeige nicht geprüft (optional: .github_check_token, ~5 Min.)",
84+
"parse.please_enter_command": "Bitte Befehl eingeben",
85+
"parse.no_url": "Argument --url fehlt",
86+
"parse.invalid_url": "Ungültiges URL-Format",
87+
"parse.cannot_parse": "Org oder Repo aus URL konnte nicht ermittelt werden",
88+
"parse.filled": "Ausgefüllt: Zieltyp {{target_type}}, Ziel {{target}}{{token_part}}",
89+
"parse.filled_token": ", Token ausgefüllt",
90+
"msg.adding": "Runner wird hinzugefügt und registriert…",
91+
"msg.request_failed": "Anfrage fehlgeschlagen",
92+
"msg.timeout_refresh": "Zeitüberschreitung, Seite neu laden",
93+
"msg.reload_in_5s": "Seite lädt in 5 Sekunden neu",
94+
"msg.load_failed": "Laden fehlgeschlagen",
95+
"msg.saved": "Gespeichert",
96+
"probe.default_suggestion": "Zuerst Stopp/Start zur Selbstheilung; sonst Manager- und Runner-Logs prüfen.",
97+
"probe.fix_hidden_hint": "(standardmäßig ausgeblendet, „Fix-Befehl anzeigen“ klicken)",
98+
"confirm_remove": "\"{{name}}\" aus Config entfernen?",
99+
"confirm_reveal_fix": "Fix-Befehl kann Nebenwirkungen haben. Trotzdem anzeigen?",
100+
"confirm_show_fix_cmd": "Fix-Befehl anzeigen (Nebenwirkungen)? Zuerst Prüfbefehl ausführen.",
101+
"msg.check_cmd_copied": "Prüfbefehl kopiert",
102+
"msg.copy_failed": "Kopieren fehlgeschlagen, manuell kopieren",
103+
"msg.fix_cmd_copied": "Fix-Befehl kopiert",
104+
"msg.show_fix_first": "Zuerst Fix-Befehl anzeigen und bestätigen, dann kopieren",
105+
"msg.action_done": "Aktion ausgeführt",
106+
"probe.alert_type": "Probe-Fehlertyp: ",
107+
"probe.alert_suggestion": "Vorschlag: ",
108+
"probe.alert_check_cmd": "Prüfbefehl: ",
109+
"probe.alert_error": "Probe-Fehler: ",
110+
"probe.alert_fix_cmd": "Fix-Befehl: "
111+
}

cmd/runner-manager/i18n/en.json

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
{
2+
"page.title": "Runner Fleet - GitHub Actions Runner Manager",
3+
"page.h1": "Runner Fleet - GitHub Actions Runner Manager",
4+
"runner_list.title": "Runner List",
5+
"runner_list.hint": "Registration result is written when you add a runner with a token. GitHub visibility is checked about every 5 minutes (optional: place .github_check_token in the runner directory to enable).",
6+
"runner_list.table.name": "Name",
7+
"runner_list.table.target": "Target",
8+
"runner_list.table.status": "Status",
9+
"runner_list.table.docker_backend": "Docker Backend",
10+
"runner_list.table.reg_github": "Reg / GitHub",
11+
"runner_list.table.install_dir": "Install Dir",
12+
"badge.running": "Running",
13+
"probe.failed": "Probe failed",
14+
"reg.registered": "Registered",
15+
"reg.failed": "Reg failed",
16+
"github.yes": "GitHub ✓",
17+
"github.no": "Not on GitHub",
18+
"github.pending": "GitHub check pending (optional)",
19+
"btn.start": "Start",
20+
"btn.stop": "Stop",
21+
"btn.view": "View",
22+
"btn.edit": "Edit",
23+
"btn.delete": "Delete",
24+
"btn.start_title": "Start Runner",
25+
"btn.stop_title": "Stop Runner",
26+
"btn.start_unknown_title": "Probe failed, try starting Runner",
27+
"btn.stop_unknown_title": "Probe failed, try stopping Runner",
28+
"btn.view_title": "View config",
29+
"btn.edit_title": "Edit config",
30+
"btn.del_title": "Remove from config",
31+
"runner_list.empty": "No runners yet. Add one below.",
32+
"form.quick_add": "Quick Add Runner",
33+
"parse.label": "Parse from GitHub command (paste ./config.sh --url ... --token ... then click Parse)",
34+
"parse.placeholder": "./config.sh --url https://github.com/owner/repo --token YOUR_TOKEN",
35+
"parse.btn": "Parse and fill",
36+
"form.name_label": "Name (name) *",
37+
"form.name_placeholder": "e.g. runner-1",
38+
"form.path_label": "Subpath (path, optional, default: name)",
39+
"form.path_placeholder": "e.g. runner-1",
40+
"form.target_type_label": "Target type (target_type) *",
41+
"form.target_type_org": "Org (org)",
42+
"form.target_type_repo": "Repo (repo)",
43+
"form.target_label": "Target (target) *",
44+
"form.target_placeholder": "Org name or owner/repo",
45+
"form.labels_label": "Labels (comma-separated, optional)",
46+
"form.labels_placeholder": "self-hosted, linux, x64",
47+
"form.token_label": "Registration token (optional; from GitHub Settings → Actions → Runners → Add new, 1h valid; use a new token per runner)",
48+
"form.token_placeholder": "Optional; if set, will auto-install (in Docker) and register, then start",
49+
"form.submit": "Add Runner",
50+
"msg.close": "Close",
51+
"modal.title": "Runner config",
52+
"modal.view_title": "View Runner config",
53+
"modal.edit_title": "Edit Runner config",
54+
"modal.label_name": "Name",
55+
"modal.label_path": "Subpath",
56+
"modal.label_target_type": "Target type",
57+
"modal.label_target": "Target",
58+
"modal.label_labels": "Labels",
59+
"modal.label_install_dir": "Install dir",
60+
"modal.label_docker_backend": "Docker backend",
61+
"modal.label_status": "Status",
62+
"modal.label_probe_error_type": "Probe error type",
63+
"modal.label_suggestion": "Suggestion",
64+
"modal.label_check_cmd": "Check command (read-only)",
65+
"modal.label_fix_cmd": "Fix command (has side effects)",
66+
"modal.btn_copy_cmd": "Copy command",
67+
"modal.btn_reveal_fix": "Reveal fix command",
68+
"modal.label_probe_error": "Probe error",
69+
"modal.label_reg_result": "Registration result",
70+
"modal.label_reg_checked_at": "Reg checked at",
71+
"modal.label_github_display": "GitHub display",
72+
"modal.label_github_check_at": "GitHub check at",
73+
"modal.edit_path_placeholder": "Optional",
74+
"modal.edit_target_placeholder": "Org name or owner/repo",
75+
"modal.edit_labels_placeholder": "self-hosted, linux, x64",
76+
"modal.btn_edit": "Edit",
77+
"modal.btn_save": "Save",
78+
"modal.btn_close": "Close",
79+
"modal.btn_start": "Start",
80+
"modal.btn_stop": "Stop",
81+
"modal.gh_yes": "Shown on GitHub",
82+
"modal.gh_no": "Not shown on GitHub",
83+
"modal.gh_unchecked": "GitHub display not checked (optional: place .github_check_token in runner dir, checked ~every 5 min)",
84+
"parse.please_enter_command": "Please enter the command",
85+
"parse.no_url": "Missing --url argument",
86+
"parse.invalid_url": "Invalid URL format",
87+
"parse.cannot_parse": "Could not parse org or repo from URL",
88+
"parse.filled": "Filled: target type {{target_type}}, target {{target}}{{token_part}}",
89+
"parse.filled_token": ", token filled",
90+
"msg.adding": "Adding and registering runner, please wait…",
91+
"msg.request_failed": "Request failed",
92+
"msg.timeout_refresh": "Request timed out, refresh the page to see current status",
93+
"msg.reload_in_5s": "Page will reload in 5 seconds",
94+
"msg.load_failed": "Load failed",
95+
"msg.saved": "Saved",
96+
"probe.default_suggestion": "Try Stop/Start first to self-heal; if it still fails, check manager and runner container logs.",
97+
"probe.fix_hidden_hint": "(hidden by default, click \"Reveal fix command\")",
98+
"confirm_remove": "Remove \"{{name}}\" from config?",
99+
"confirm_reveal_fix": "Fix command may have side effects. Show it anyway?",
100+
"confirm_show_fix_cmd": "Show fix command (has side effects)? Run check command first to confirm.",
101+
"msg.check_cmd_copied": "Check command copied",
102+
"msg.copy_failed": "Copy failed, copy manually",
103+
"msg.fix_cmd_copied": "Fix command copied",
104+
"msg.show_fix_first": "Reveal and confirm the fix command first, then copy",
105+
"msg.action_done": "Action completed",
106+
"probe.alert_type": "Probe error type: ",
107+
"probe.alert_suggestion": "Suggestion: ",
108+
"probe.alert_check_cmd": "Check command: ",
109+
"probe.alert_error": "Probe error: ",
110+
"probe.alert_fix_cmd": "Fix command: "
111+
}

cmd/runner-manager/i18n/fr.json

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
{
2+
"page.title": "Runner Fleet - Gestionnaire GitHub Actions Runner",
3+
"page.h1": "Runner Fleet - Gestionnaire GitHub Actions Runner",
4+
"runner_list.title": "Liste des runners",
5+
"runner_list.hint": "Le résultat d'inscription est écrit lorsque vous ajoutez un runner avec un token. La visibilité GitHub est vérifiée environ toutes les 5 minutes (optionnel : placez .github_check_token dans le répertoire du runner).",
6+
"runner_list.table.name": "Nom",
7+
"runner_list.table.target": "Cible",
8+
"runner_list.table.status": "État",
9+
"runner_list.table.docker_backend": "Backend Docker",
10+
"runner_list.table.reg_github": "Inscr. / GitHub",
11+
"runner_list.table.install_dir": "Répertoire d'installation",
12+
"badge.running": "En cours",
13+
"probe.failed": "Échec de la sonde",
14+
"reg.registered": "Inscrit",
15+
"reg.failed": "Échec d'inscription",
16+
"github.yes": "GitHub ✓",
17+
"github.no": "Pas sur GitHub",
18+
"github.pending": "Vérification GitHub en attente (optionnel)",
19+
"btn.start": "Démarrer",
20+
"btn.stop": "Arrêter",
21+
"btn.view": "Voir",
22+
"btn.edit": "Modifier",
23+
"btn.delete": "Supprimer",
24+
"btn.start_title": "Démarrer le runner",
25+
"btn.stop_title": "Arrêter le runner",
26+
"btn.start_unknown_title": "Échec de la sonde, essayer de démarrer",
27+
"btn.stop_unknown_title": "Échec de la sonde, essayer d'arrêter",
28+
"btn.view_title": "Voir la config",
29+
"btn.edit_title": "Modifier la config",
30+
"btn.del_title": "Retirer de la config",
31+
"runner_list.empty": "Aucun runner. Ajoutez-en un ci-dessous.",
32+
"form.quick_add": "Ajout rapide de runner",
33+
"parse.label": "Analyser la commande GitHub (collez ./config.sh --url ... --token ... puis cliquez sur Analyser)",
34+
"parse.placeholder": "./config.sh --url https://github.com/owner/repo --token YOUR_TOKEN",
35+
"parse.btn": "Analyser et remplir",
36+
"form.name_label": "Nom (name) *",
37+
"form.name_placeholder": "ex. runner-1",
38+
"form.path_label": "Sous-chemin (path, optionnel)",
39+
"form.path_placeholder": "ex. runner-1",
40+
"form.target_type_label": "Type de cible (target_type) *",
41+
"form.target_type_org": "Org (org)",
42+
"form.target_type_repo": "Dépôt (repo)",
43+
"form.target_label": "Cible (target) *",
44+
"form.target_placeholder": "Nom d'org ou owner/repo",
45+
"form.labels_label": "Labels (séparés par des virgules, optionnel)",
46+
"form.labels_placeholder": "self-hosted, linux, x64",
47+
"form.token_label": "Token d'inscription (optionnel ; GitHub Settings → Actions → Runners → Add new, 1h ; un nouveau token par runner)",
48+
"form.token_placeholder": "Optionnel ; si renseigné, installation et inscription automatiques",
49+
"form.submit": "Ajouter le runner",
50+
"msg.close": "Fermer",
51+
"modal.title": "Config runner",
52+
"modal.view_title": "Voir la config runner",
53+
"modal.edit_title": "Modifier la config runner",
54+
"modal.label_name": "Nom",
55+
"modal.label_path": "Sous-chemin",
56+
"modal.label_target_type": "Type de cible",
57+
"modal.label_target": "Cible",
58+
"modal.label_labels": "Labels",
59+
"modal.label_install_dir": "Répertoire d'installation",
60+
"modal.label_docker_backend": "Backend Docker",
61+
"modal.label_status": "État",
62+
"modal.label_probe_error_type": "Type d'erreur de sonde",
63+
"modal.label_suggestion": "Suggestion",
64+
"modal.label_check_cmd": "Commande de vérification (lecture seule)",
65+
"modal.label_fix_cmd": "Commande de correction (effets secondaires)",
66+
"modal.btn_copy_cmd": "Copier la commande",
67+
"modal.btn_reveal_fix": "Afficher la commande de correction",
68+
"modal.label_probe_error": "Erreur de sonde",
69+
"modal.label_reg_result": "Résultat d'inscription",
70+
"modal.label_reg_checked_at": "Inscription vérifiée à",
71+
"modal.label_github_display": "Affichage GitHub",
72+
"modal.label_github_check_at": "Vérification GitHub à",
73+
"modal.edit_path_placeholder": "Optionnel",
74+
"modal.edit_target_placeholder": "Nom d'org ou owner/repo",
75+
"modal.edit_labels_placeholder": "self-hosted, linux, x64",
76+
"modal.btn_edit": "Modifier",
77+
"modal.btn_save": "Enregistrer",
78+
"modal.btn_close": "Fermer",
79+
"modal.btn_start": "Démarrer",
80+
"modal.btn_stop": "Arrêter",
81+
"modal.gh_yes": "Visible sur GitHub",
82+
"modal.gh_no": "Non visible sur GitHub",
83+
"modal.gh_unchecked": "Affichage GitHub non vérifié (optionnel : .github_check_token, ~5 min)",
84+
"parse.please_enter_command": "Veuillez entrer la commande",
85+
"parse.no_url": "Argument --url manquant",
86+
"parse.invalid_url": "Format d'URL invalide",
87+
"parse.cannot_parse": "Impossible d'extraire org ou repo de l'URL",
88+
"parse.filled": "Rempli : type {{target_type}}, cible {{target}}{{token_part}}",
89+
"parse.filled_token": ", token renseigné",
90+
"msg.adding": "Ajout et inscription du runner en cours…",
91+
"msg.request_failed": "Échec de la requête",
92+
"msg.timeout_refresh": "Délai dépassé, actualisez la page",
93+
"msg.reload_in_5s": "Rechargement dans 5 secondes",
94+
"msg.load_failed": "Échec du chargement",
95+
"msg.saved": "Enregistré",
96+
"probe.default_suggestion": "Essayez Arrêter/Démarrer pour l'auto-réparation ; sinon consultez les logs.",
97+
"probe.fix_hidden_hint": "(masqué par défaut, cliquez sur \"Afficher la commande de correction\")",
98+
"confirm_remove": "Retirer \"{{name}}\" de la config ?",
99+
"confirm_reveal_fix": "La commande de correction peut avoir des effets secondaires. Afficher ?",
100+
"confirm_show_fix_cmd": "Afficher la commande de correction (effets secondaires) ? Exécutez d'abord la commande de vérification.",
101+
"msg.check_cmd_copied": "Commande de vérification copiée",
102+
"msg.copy_failed": "Échec de la copie, copiez manuellement",
103+
"msg.fix_cmd_copied": "Commande de correction copiée",
104+
"msg.show_fix_first": "Affichez et confirmez la commande de correction avant de copier",
105+
"msg.action_done": "Action terminée",
106+
"probe.alert_type": "Type d'erreur de sonde : ",
107+
"probe.alert_suggestion": "Suggestion : ",
108+
"probe.alert_check_cmd": "Commande de vérification : ",
109+
"probe.alert_error": "Erreur de sonde : ",
110+
"probe.alert_fix_cmd": "Commande de correction : "
111+
}

0 commit comments

Comments
 (0)