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.
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
@@ -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
@@ -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
@@ -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
@@ -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",