Gitfed
bastien-mrq/gitfed/ Commits/ 50deffb

Capitalize "Gitfed" as a proper noun in nav and UI copy

Also fixes the page <title> showing "— Gitfed" twice on the landing and security pages, since their own title strings already included the brand name on top of the shell template's suffix.

bastien-mrq 2026-07-28 21:47 commit 50deffb675ee1467af9cecc257ec3d01480605ae parent fb35e62079effcbe584c4797579a5ddfbab7d561
4 files changed +24 −20
M CHANGELOG.md +4 −0
M cmd/gitfed-web/render.go +2 −2
M internal/i18n/strings_en.go +9 −9
M internal/i18n/strings_fr.go +9 −9
CHANGELOG.md
diff --git a/CHANGELOG.md b/CHANGELOG.md index 6afdef4..90dd729 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 0.9.7 + +- Capitalized "Gitfed" as a proper noun throughout the nav and UI copy (was lowercase "gitfed" everywhere). Also fixed the page `<title>` showing the brand name twice on the landing and security pages. + ## 0.9.6 - Commits in the history view are now clickable: each opens a detail page with the full commit message, author/date/hash/parent, the list of changed files (with a status badge and +/− counts), and a full colored diff. Very large diffs are capped at 4000 lines with a notice instead of being loaded in full.
cmd/gitfed-web/render.go
diff --git a/cmd/gitfed-web/render.go b/cmd/gitfed-web/render.go index 094b74f..c5c2d96 100644 --- a/cmd/gitfed-web/render.go +++ b/cmd/gitfed-web/render.go @@ -167,7 +167,7 @@ const shellHeadSrc = `<!doctype html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> -<title>{{.Title}} — gitfed</title> +<title>{{if .Title}}{{.Title}} — {{end}}Gitfed</title> <link rel="icon" media="(prefers-color-scheme: light)" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 96'%3E%3Crect x='41' y='46' width='14' height='36' fill='%2317181a'/%3E%3Crect x='14' y='14' width='14' height='34' fill='%2317181a' transform='rotate(35 21 31)'/%3E%3Crect x='68' y='14' width='14' height='34' fill='%2317181a' transform='rotate(-35 75 31)'/%3E%3C/svg%3E"> <link rel="icon" media="(prefers-color-scheme: dark)" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 96'%3E%3Crect x='41' y='46' width='14' height='36' fill='%23f0efec'/%3E%3Crect x='14' y='14' width='14' height='34' fill='%23f0efec' transform='rotate(35 21 31)'/%3E%3Crect x='68' y='14' width='14' height='34' fill='%23f0efec' transform='rotate(-35 75 31)'/%3E%3C/svg%3E"> <style> @@ -548,7 +548,7 @@ const shellHeadSrc = `<!doctype html> <body> {{.IconSprite}} <header class="gf-nav"> - <a href="/" class="gf-nav-brand">{{.BrandMark}}<span>gitfed</span></a> + <a href="/" class="gf-nav-brand">{{.BrandMark}}<span>Gitfed</span></a> <button class="gf-nav-burger" id="navBurger" aria-label="Toggle menu" aria-expanded="false" aria-controls="navPanel"> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.6"><path d="M3 5h14M3 10h14M3 15h14"/></svg> </button>
internal/i18n/strings_en.go
diff --git a/internal/i18n/strings_en.go b/internal/i18n/strings_en.go index 9e305ce..8f587ce 100644 --- a/internal/i18n/strings_en.go +++ b/internal/i18n/strings_en.go @@ -13,7 +13,7 @@ var en = map[string]string{ "nav.admin": "Admin", "nav.logout": "Log out", "nav.notifications": "Notifications", - "footer.changelog": "gitfed %s", + "footer.changelog": "Gitfed %s", // ---------- explore ---------- "explore.title": "Explore public repositories", @@ -29,11 +29,11 @@ var en = map[string]string{ "explore.empty_hint": "Try a different topic or search, or clear the filter.", // ---------- landing ---------- - "landing.title": "gitfed", + "landing.title": "", "landing.kicker": "self-hosted & federated git", "landing.h1_1": "Your code. Your server.", "landing.h1_2": "Your rules.", - "landing.lead": "gitfed is a git server you run yourself — so you keep ownership of your code and your data, without giving up the ability to collaborate with anyone, wherever they host their own instance.", + "landing.lead": "Gitfed is a git server you run yourself — so you keep ownership of your code and your data, without giving up the ability to collaborate with anyone, wherever they host their own instance.", "landing.cta_explore": "Explore public repos", "landing.cta_security": "How it's secured →", "landing.pillar1_h": "Ownership", @@ -53,18 +53,18 @@ var en = map[string]string{ "landing.diagram_no_account1": "no \"bob\" account", "landing.diagram_no_account2": "on alice's instance", "landing.cta_band_h": "Ready to take back control of your code?", - "landing.cta_band_p": "gitfed is open-source and self-hosted — one Go binary, one embedded database, no external dependencies.", + "landing.cta_band_p": "Gitfed is open-source and self-hosted — one Go binary, one embedded database, no external dependencies.", "landing.cta_band_dashboard": "Go to your repos", // ---------- security ---------- - "security.title": "Security — gitfed", + "security.title": "Security", "security.kicker": "security model", "security.h1": "Why it's secure, explained simply", - "security.lead": "No unnecessary jargon: here's, step by step, how gitfed protects your code — from transport to your collaborators' identity.", + "security.lead": "No unnecessary jargon: here's, step by step, how Gitfed protects your code — from transport to your collaborators' identity.", "security.s1_tag": "01 · transport", "security.s1_h": "SSH only, never git over HTTP", - "security.s1_p": "gitfed exposes no git-over-HTTP protocol. Every read or write goes over SSH — a protocol proven for 25 years, with a single door to watch instead of two.", + "security.s1_p": "Gitfed exposes no git-over-HTTP protocol. Every read or write goes over SSH — a protocol proven for 25 years, with a single door to watch instead of two.", "security.s1_diagram_client": "git clone/push", "security.s1_diagram_open": "SSH — open", "security.s1_diagram_http": "HTTP git — doesn't exist", @@ -90,7 +90,7 @@ var en = map[string]string{ "security.s3_tag": "03 · trust", "security.s3_h": "Trust between instances is explicit, never automatic", - "security.s3_p": "The first time an unknown instance shows up, gitfed reads its public profile (/.well-known/gitfed.json) then puts its key on hold — an admin has to approve it before any access is granted. Discovery is also capped at 10 new domains per minute, to prevent abuse.", + "security.s3_p": "The first time an unknown instance shows up, Gitfed reads its public profile (/.well-known/gitfed.json) then puts its key on hold — an admin has to approve it before any access is granted. Discovery is also capped at 10 new domains per minute, to prevent abuse.", "security.s3_diagram_unknown": "Unknown domain", "security.s3_diagram_unknown_sub": "contacts your instance", "security.s3_diagram_discovery": "Discovery", @@ -277,7 +277,7 @@ var en = map[string]string{ "repo.confirm_delete": "Delete", "repo.confirm_revoke": "Revoke access for", "repo.danger_zone": "Danger zone", - "repo.danger_zone_note": "Deleting removes the repo's record from gitfed — it does not delete the bare repo on disk.", + "repo.danger_zone_note": "Deleting removes the repo's record from Gitfed — it does not delete the bare repo on disk.", "repo.collaborators_title": "Collaborators", "repo.federated_collaborator": "federated collaborator", "repo.local_collaborator": "local collaborator",
internal/i18n/strings_fr.go
diff --git a/internal/i18n/strings_fr.go b/internal/i18n/strings_fr.go index 4ecfd4e..24fea5f 100644 --- a/internal/i18n/strings_fr.go +++ b/internal/i18n/strings_fr.go @@ -13,7 +13,7 @@ var fr = map[string]string{ "nav.admin": "Administration", "nav.logout": "Se déconnecter", "nav.notifications": "Notifications", - "footer.changelog": "gitfed %s", + "footer.changelog": "Gitfed %s", // ---------- explore ---------- "explore.title": "Explorer les dépôts publics", @@ -29,11 +29,11 @@ var fr = map[string]string{ "explore.empty_hint": "Essayez un autre sujet ou une autre recherche, ou effacez le filtre.", // ---------- landing ---------- - "landing.title": "gitfed", + "landing.title": "", "landing.kicker": "git auto-hébergé & fédéré", "landing.h1_1": "Votre code. Votre serveur.", "landing.h1_2": "Vos règles.", - "landing.lead": "gitfed est un serveur git que vous hébergez vous-même — pour garder la propriété de votre code et de vos données, sans renoncer à collaborer avec qui vous voulez, où que cette personne héberge son instance.", + "landing.lead": "Gitfed est un serveur git que vous hébergez vous-même — pour garder la propriété de votre code et de vos données, sans renoncer à collaborer avec qui vous voulez, où que cette personne héberge son instance.", "landing.cta_explore": "Explorer les dépôts publics", "landing.cta_security": "Comment c'est sécurisé →", "landing.pillar1_h": "Propriété", @@ -53,18 +53,18 @@ var fr = map[string]string{ "landing.diagram_no_account1": "pas de compte « bob »", "landing.diagram_no_account2": "chez alice", "landing.cta_band_h": "Envie de reprendre la main sur votre code ?", - "landing.cta_band_p": "gitfed est open-source et auto-hébergé — un binaire Go, une base embarquée, aucune dépendance externe.", + "landing.cta_band_p": "Gitfed est open-source et auto-hébergé — un binaire Go, une base embarquée, aucune dépendance externe.", "landing.cta_band_dashboard": "Aller à mes dépôts", // ---------- security ---------- - "security.title": "Sécurité — gitfed", + "security.title": "Sécurité", "security.kicker": "modèle de sécurité", "security.h1": "Pourquoi c'est sécurisé, expliqué simplement", - "security.lead": "Pas de jargon inutile : voici, étape par étape, comment gitfed protège votre code — du transport jusqu'à l'identité de vos collaborateurs.", + "security.lead": "Pas de jargon inutile : voici, étape par étape, comment Gitfed protège votre code — du transport jusqu'à l'identité de vos collaborateurs.", "security.s1_tag": "01 · transport", "security.s1_h": "Uniquement du SSH, jamais du git en HTTP", - "security.s1_p": "gitfed n'expose aucun protocole git par HTTP. Toute lecture ou écriture passe par SSH — un protocole éprouvé depuis 25 ans, avec une seule porte d'entrée à surveiller plutôt que deux.", + "security.s1_p": "Gitfed n'expose aucun protocole git par HTTP. Toute lecture ou écriture passe par SSH — un protocole éprouvé depuis 25 ans, avec une seule porte d'entrée à surveiller plutôt que deux.", "security.s1_diagram_client": "git clone/push", "security.s1_diagram_open": "SSH — ouvert", "security.s1_diagram_http": "HTTP git — inexistant", @@ -90,7 +90,7 @@ var fr = map[string]string{ "security.s3_tag": "03 · confiance", "security.s3_h": "La confiance entre instances est explicite, jamais automatique", - "security.s3_p": "La première fois qu'une instance inconnue apparaît, gitfed consulte sa fiche publique (/.well-known/gitfed.json) puis met sa clé en attente — un administrateur doit l'approuver avant que le moindre accès soit accordé. La découverte est aussi limitée à 10 nouveaux domaines par minute, pour éviter tout abus.", + "security.s3_p": "La première fois qu'une instance inconnue apparaît, Gitfed consulte sa fiche publique (/.well-known/gitfed.json) puis met sa clé en attente — un administrateur doit l'approuver avant que le moindre accès soit accordé. La découverte est aussi limitée à 10 nouveaux domaines par minute, pour éviter tout abus.", "security.s3_diagram_unknown": "Domaine inconnu", "security.s3_diagram_unknown_sub": "contacte votre instance", "security.s3_diagram_discovery": "Découverte", @@ -277,7 +277,7 @@ var fr = map[string]string{ "repo.confirm_delete": "Supprimer", "repo.confirm_revoke": "Révoquer l'accès de", "repo.danger_zone": "Zone de danger", - "repo.danger_zone_note": "La suppression retire l'entrée du dépôt de gitfed — elle ne supprime pas le dépôt bare sur le disque.", + "repo.danger_zone_note": "La suppression retire l'entrée du dépôt de Gitfed — elle ne supprime pas le dépôt bare sur le disque.", "repo.collaborators_title": "Collaborateurs", "repo.federated_collaborator": "collaborateur fédéré", "repo.local_collaborator": "collaborateur local",