From ba4fbc7f7a34c1aae1bba4275431929c981839a5 Mon Sep 17 00:00:00 2001
From: Nobuo Miura <84451944+nobuo-miura@users.noreply.github.com>
Date: Mon, 31 Aug 2026 15:09:16 +0900
Subject: [PATCH] Add localized README files for all supported languages
Create dedicated READMEs for German, Spanish, French, Korean, Brazilian Portuguese, Russian, and Simplified Chinese.
Update the language navigation links in the main English and Japanese README files to include all newly added localizations.
---
README.de.md | 147 ++++++++++++++++++++++++++++++++++++++++++++++++
README.es.md | 147 ++++++++++++++++++++++++++++++++++++++++++++++++
README.fr.md | 147 ++++++++++++++++++++++++++++++++++++++++++++++++
README.ja.md | 2 +-
README.ko.md | 147 ++++++++++++++++++++++++++++++++++++++++++++++++
README.md | 2 +-
README.pt-BR.md | 147 ++++++++++++++++++++++++++++++++++++++++++++++++
README.ru.md | 147 ++++++++++++++++++++++++++++++++++++++++++++++++
README.zh-CN.md | 147 ++++++++++++++++++++++++++++++++++++++++++++++++
9 files changed, 1031 insertions(+), 2 deletions(-)
create mode 100644 README.de.md
create mode 100644 README.es.md
create mode 100644 README.fr.md
create mode 100644 README.ko.md
create mode 100644 README.pt-BR.md
create mode 100644 README.ru.md
create mode 100644 README.zh-CN.md
diff --git a/README.de.md b/README.de.md
new file mode 100644
index 0000000..e2a20c0
--- /dev/null
+++ b/README.de.md
@@ -0,0 +1,147 @@
+# GitHub UI Translator
+
+[English](README.md) | [日本語](README.ja.md) | [简体中文](README.zh-CN.md) | [Español](README.es.md) | [Deutsch](README.de.md) | [Português (Brasil)](README.pt-BR.md) | [한국어](README.ko.md) | [Français](README.fr.md) | [Русский](README.ru.md)
+
+[](https://github.com/nobuo-miura/github-ui-translator/releases/latest)
+[](https://chromewebstore.google.com/detail/github-ui-translator/igdplojdbbpfbedgoaokfcagpkofmngk)
+[](https://microsoftedge.microsoft.com/addons/detail/fgjocjmjjghflobobinafkbkeildanoj)
+[](https://addons.mozilla.org/firefox/addon/github-ui-translator/)
+[](https://github.com/nobuo-miura/github-ui-translator/actions/workflows/validate.yml)
+[](./LICENSE)
+
+GitHub UI Translator ist eine Browsererweiterung für Chrome, Edge und Firefox. Sie übersetzt die englische GitHub-Oberfläche mithilfe lokaler Wörterbücher auf Japanisch, vereinfachtes Chinesisch, Spanisch, Deutsch, brasilianisches Portugiesisch, Koreanisch, Französisch oder Russisch.
+Die Erweiterung benötigt weder externe Übersetzungs-APIs noch Cloud-Dienste; sämtliche Übersetzungen erfolgen lokal im Browser.
+
+
+
+
+Screenshots aller 8 unterstützten Sprachen
+
+Die erste Zeile zeigt die englische Originaloberfläche von GitHub. Darunter ist jeweils das Übersetzungsergebnis für eine Sprache zu sehen.
+
+
+
+
+
+## Funktionen
+
+- Führt sämtliche Übersetzungen lokal aus, ohne Seiteninhalte oder Einstellungen an externe Dienste zu senden
+- Übersetzt feste Texte der GitHub-Oberfläche wie Navigationselemente und Schaltflächen, lässt aber von Benutzern erstellte Bereiche wie READMEs, Probleme, Kommentare und Codeblöcke unverändert
+- Ermöglicht das Ein- und Ausschalten der Übersetzung über das Erweiterungs-Pop-up
+- Übersetzt den globalen Header erst nach Abschluss der React-Hydration von GitHub, um Konflikte mit der globalen Suche möglichst zu vermeiden; die Funktion lässt sich im Pop-up deaktivieren
+
+## Dokumentation
+
+- [Übersetzungsumfang (English)](docs/translation-scope.md) ([日本語](docs/translation-scope.ja.md))
+
+## Einschränkungen
+
+- Derzeit werden Japanisch, vereinfachtes Chinesisch, Spanisch, Deutsch, brasilianisches Portugiesisch, Koreanisch, Französisch und Russisch unterstützt. Weitere Sprachen sind geplant, sobald die jeweilige Abdeckung ausreichend ist.
+- Dynamische Texte mit Zahlen oder Datumsangaben wie „3 commits“ oder „opened 2 days ago“ werden nicht übersetzt. Auch benutzergenerierte Inhalte wie Benutzernamen bleiben unverändert. Weitere Informationen enthält der [Übersetzungsumfang](docs/translation-scope.md).
+- Es wird ausschließlich `github.com` unterstützt. GitHub Enterprise und andere benutzerdefinierte Domains werden nicht unterstützt.
+- Die Erweiterung wurde mit Chrome, Edge und Firefox getestet. Andere Chromium-basierte Browser funktionieren möglicherweise ebenfalls, wurden jedoch nicht ausdrücklich getestet.
+
+## Installation
+
+### Chrome
+
+Installiere [GitHub UI Translator aus dem Chrome Web Store](https://chromewebstore.google.com/detail/github-ui-translator/igdplojdbbpfbedgoaokfcagpkofmngk).
+
+Falls der Chrome Web Store in deiner Umgebung nicht verfügbar ist, etwa auf einem vom Unternehmen verwalteten Gerät:
+
+1. Lade die `.zip`-Datei der [neuesten Version](https://github.com/nobuo-miura/github-ui-translator/releases/latest) herunter und entpacke sie.
+2. Öffne `chrome://extensions` in Chrome und aktiviere den Entwicklermodus.
+3. Klicke auf „Entpackte Erweiterung laden“ und wähle den entpackten Ordner aus.
+
+Manuell installierte Erweiterungen werden nicht automatisch aktualisiert. Wiederhole diese Schritte, sobald eine neue Version veröffentlicht wird. Möglicherweise untersagen die Richtlinien deiner Organisation auch den Entwicklermodus oder manuell installierte Erweiterungen. Wende dich in diesem Fall an die zuständige Administration.
+
+### Edge
+
+Installiere [GitHub UI Translator aus Microsoft Edge-Add-Ons](https://microsoftedge.microsoft.com/addons/detail/fgjocjmjjghflobobinafkbkeildanoj).
+
+### Firefox
+
+Firefox 142 oder neuer ist erforderlich.
+
+Installiere [GitHub UI Translator von Firefox Add-ons](https://addons.mozilla.org/firefox/addon/github-ui-translator/).
+
+Öffne nach der Installation eine GitHub-Seite wie `https://github.com/...`. Unterstützte Oberflächentexte werden automatisch in die ausgewählte Sprache übersetzt.
+
+### Entwicklungsinstallation (direkt aus dem Repository laden)
+
+Klone das Repository und lade die Erweiterung direkt, wenn du ein Wörterbuch anpassen oder an der Entwicklung mitwirken möchtest.
+
+```sh
+git clone https://github.com/nobuo-miura/github-ui-translator.git
+```
+
+- **Chrome / Edge**: Öffne `chrome://extensions` in Chrome oder `edge://extensions` in Edge, aktiviere den Entwicklermodus, klicke auf „Entpackte Erweiterung laden“ und wähle den geklonten Ordner aus, der `manifest.json` enthält.
+- **Firefox**: Öffne `about:debugging#/runtime/this-firefox`, klicke auf „Temporäres Add-on laden…“ und wähle `manifest.json` aus dem Repository aus. Temporäre Add-ons werden beim Neustart von Firefox entfernt und müssen daher in jeder Sitzung erneut geladen werden.
+
+## Verwendung
+
+- Klicke auf das Erweiterungssymbol in der Symbolleiste, um den Übersetzungsschalter und die Sprachauswahl zu öffnen. Derzeit sind Japanisch, vereinfachtes Chinesisch, Spanisch, Deutsch, brasilianisches Portugiesisch, Koreanisch, Französisch und Russisch enthalten. Die Auswahlliste lässt sich durch weitere Wörterbücher ergänzen.
+- Wenn du den Schalter oder die Sprache änderst, werden geöffnete GitHub-Tabs neu geladen, damit die neue Einstellung wirksam wird.
+- Im Pop-up kannst du außerdem die Übersetzung des globalen Headers festlegen und dieses Repository öffnen. Auch eine Änderung dieser Option lädt geöffnete GitHub-Tabs neu. Die Header-Übersetzung ist standardmäßig aktiviert und wartet auf den Abschluss der React-Hydration von GitHub. Deaktiviere sie, falls sich die globale Suche nicht öffnen lässt.
+- Auf der Optionsseite der Erweiterung (`chrome://extensions` in Chrome, `edge://extensions` in Edge oder `about:addons` in Firefox) findest du Informationen zu den enthaltenen Wörterbüchern und zur Erweiterungsversion.
+
+## Wörterbuch anpassen
+
+Übersetzungen lassen sich hinzufügen oder ändern, indem du die Wörterbuchdatei der gewünschten Sprache direkt bearbeitest, zum Beispiel `dictionaries/ja.json`, `dictionaries/zh-CN.json`, `dictionaries/es.json`, `dictionaries/de.json`, `dictionaries/pt-BR.json`, `dictionaries/ko.json`, `dictionaries/fr.json` oder `dictionaries/ru.json`.
+Die Einträge sind nach GitHub-Seiten gruppiert (Repository-Navigation, Repository-Einstellungen, Organisationseinstellungen usw.). Jede Gruppe beginnt mit einer `// ====`-Kommentarzeile. So ist sofort erkennbar, zu welcher Seite ein Eintrag gehört, und Änderungen an GitHubs Oberflächentexten fallen leichter auf.
+
+```jsonc
+{
+ "language": "ja",
+ "name": "日本語",
+ "translations": {
+ // ==== Repository-Navigation ====
+ "Code": "コード",
+ "Issues": "イシュー"
+ }
+}
+```
+
+- Die Datei ist JSON mit `//`-Zeilenkommentaren (JSONC-Stil). Unterstützt werden nur vollständige Kommentarzeilen, nicht jedoch Kommentare hinter einem Wert. Da `JSON.parse` und `fetch().json()` keine Kommentare unterstützen, entfernt die Erweiterung die Kommentarzeilen vor dem Einlesen.
+- Wörterbuchschlüssel müssen **exakt** dem englischen Originaltext entsprechen. Führende und nachgestellte Leerzeichen werden sowohl bei sichtbarem Text als auch bei unterstützten Attributwerten ignoriert. Nur bei sichtbarem Text werden aufeinanderfolgende Leerzeichen einschließlich Zeilenumbrüchen zu einem Leerzeichen zusammengefasst. Attributwerte wie `aria-label`, `placeholder`, die Schaltflächen-Eigenschaft `value` und `data-disable-with` behalten beim Abgleich ihre inneren Leerzeichen. Die Wörterbuchschlüssel selbst dürfen keine führenden oder nachgestellten Leerzeichen enthalten.
+- Lade die Erweiterung nach der Bearbeitung neu (`chrome://extensions` in Chrome, `edge://extensions` in Edge oder `about:debugging` in Firefox).
+
+### Neue Sprache hinzufügen
+
+1. Lege `dictionaries/.json` (z. B. `dictionaries/en.json`) im gleichen Format an.
+2. Ergänze `{ "code": "", "name": "" }` in `languages.json`. Das Pop-up und die Optionsseite laden beide diese gemeinsame Liste.
+3. Führe `node scripts/validate.mjs` aus, um Wörterbuchformat, doppelte Schlüssel, Metadaten, die Schlüsselgleichheit aller enthaltenen Wörterbücher, Selbstzuordnungen, Übersetzungsketten und nicht konvergierende Zyklen zu prüfen.
+
+Pop-up, Optionsseite und Erweiterungsmetadaten verwenden unabhängig von den GitHub-Übersetzungswörterbüchern den `_locales`-Mechanismus für Browsererweiterungen. Um auch die Oberfläche der Erweiterung in einer neuen Sprache anzubieten, lege zusätzlich `_locales//messages.json` mit denselben Nachrichtenschlüsseln wie `_locales/en/messages.json` an.
+
+## Projektstruktur
+
+```text
+github-ui-translator/
+├─ manifest.json
+├─ shared.js # Gemeinsame Sprachliste und Hilfsfunktionen zur Lokalisierung der Erweiterungsoberfläche
+├─ languages.json # Enthaltene Sprachen für die GitHub-Übersetzung
+├─ content.js # Übersetzungsmodul, das das DOM anhand einer Positivliste durchsucht
+├─ popup.html/js # Symbolleisten-Pop-up mit Übersetzungsschalter
+├─ options.html/js # Wörterbuchinformationen und Versionsanzeige
+├─ _locales/ # Lokalisierte Meldungen für Pop-up, Optionen und Erweiterungsmetadaten
+├─ dictionaries/
+│ ├─ ja.json # Japanisches Wörterbuch
+│ ├─ zh-CN.json # Wörterbuch für vereinfachtes Chinesisch
+│ ├─ es.json # Spanisches Wörterbuch
+│ ├─ de.json # Deutsches Wörterbuch
+│ ├─ pt-BR.json # Wörterbuch für brasilianisches Portugiesisch
+│ ├─ ko.json # Koreanisches Wörterbuch
+│ ├─ fr.json # Französisches Wörterbuch
+│ └─ ru.json # Russisches Wörterbuch
+├─ docs/
+│ ├─ translation-scope.md # Englische Version
+│ └─ translation-scope.ja.md # Japanische Version
+├─ scripts/
+│ └─ validate.mjs # Prüfung von Wörterbüchern und Lokalisierung
+└─ icons/
+```
+
+## Lizenz
+
+[MIT-Lizenz](./LICENSE)
diff --git a/README.es.md b/README.es.md
new file mode 100644
index 0000000..e20fe80
--- /dev/null
+++ b/README.es.md
@@ -0,0 +1,147 @@
+# GitHub UI Translator
+
+[English](README.md) | [日本語](README.ja.md) | [简体中文](README.zh-CN.md) | [Español](README.es.md) | [Deutsch](README.de.md) | [Português (Brasil)](README.pt-BR.md) | [한국어](README.ko.md) | [Français](README.fr.md) | [Русский](README.ru.md)
+
+[](https://github.com/nobuo-miura/github-ui-translator/releases/latest)
+[](https://chromewebstore.google.com/detail/github-ui-translator/igdplojdbbpfbedgoaokfcagpkofmngk)
+[](https://microsoftedge.microsoft.com/addons/detail/fgjocjmjjghflobobinafkbkeildanoj)
+[](https://addons.mozilla.org/firefox/addon/github-ui-translator/)
+[](https://github.com/nobuo-miura/github-ui-translator/actions/workflows/validate.yml)
+[](./LICENSE)
+
+GitHub UI Translator es una extensión para Chrome, Edge y Firefox que traduce la interfaz en inglés de GitHub al japonés, chino simplificado, español, alemán, portugués de Brasil, coreano, francés o ruso mediante diccionarios locales.
+No depende de API de traducción ni de servicios en la nube externos: toda la traducción se realiza localmente en el navegador.
+
+
+
+
+Capturas de los 8 idiomas compatibles
+
+La primera fila muestra la interfaz original de GitHub en inglés; las filas siguientes muestran el resultado en cada idioma.
+
+
+
+
+
+## Características
+
+- Realiza toda la traducción de forma local, sin enviar el contenido de las páginas ni la configuración a servicios externos
+- Traduce textos fijos de la interfaz de GitHub, como elementos de navegación y botones, y evita las áreas con contenido creado por usuarios, como archivos README, incidencias, comentarios y bloques de código
+- Permite activar o desactivar la traducción desde la ventana emergente de la extensión
+- Traduce el encabezado global después de que finalice la hidratación de React de GitHub para reducir el riesgo de interferir con la búsqueda global; esta opción también se puede desactivar desde la ventana emergente
+
+## Documentación
+
+- [Ámbito de traducción (English)](docs/translation-scope.md) ([日本語](docs/translation-scope.ja.md))
+
+## Limitaciones
+
+- Actualmente se admiten japonés, chino simplificado, español, alemán, portugués de Brasil, coreano, francés y ruso. Se añadirán más idiomas a medida que se amplíe la cobertura.
+- No se traducen textos dinámicos que contienen números o fechas, como «3 commits» u «opened 2 days ago». También se excluye el contenido creado por usuarios, como los nombres de usuario. Consulta el [ámbito de traducción](docs/translation-scope.md) para obtener más información.
+- Solo se admite `github.com`. GitHub Enterprise y otros dominios personalizados no son compatibles.
+- Se ha probado en Chrome, Edge y Firefox. Es posible que también funcione en otros navegadores basados en Chromium, pero no se han probado expresamente.
+
+## Instalación
+
+### Chrome
+
+Instala [GitHub UI Translator desde Chrome Web Store](https://chromewebstore.google.com/detail/github-ui-translator/igdplojdbbpfbedgoaokfcagpkofmngk).
+
+Si Chrome Web Store no está disponible en tu entorno, por ejemplo, en un dispositivo administrado por una empresa:
+
+1. Descarga el archivo `.zip` de la [versión más reciente](https://github.com/nobuo-miura/github-ui-translator/releases/latest) y extráelo.
+2. Abre `chrome://extensions` en Chrome y activa el modo de desarrollador.
+3. Haz clic en «Cargar descomprimida» y selecciona la carpeta extraída.
+
+Las extensiones instaladas manualmente no se actualizan de forma automática. Repite estos pasos cuando se publique una versión nueva. Es posible que las políticas de tu organización también bloqueen el modo de desarrollador o las extensiones instaladas manualmente; en ese caso, ponte en contacto con el administrador.
+
+### Edge
+
+Instala [GitHub UI Translator desde Complementos de Microsoft Edge](https://microsoftedge.microsoft.com/addons/detail/fgjocjmjjghflobobinafkbkeildanoj).
+
+### Firefox
+
+Se necesita Firefox 142 o una versión posterior.
+
+Instala [GitHub UI Translator desde Complementos para Firefox](https://addons.mozilla.org/firefox/addon/github-ui-translator/).
+
+Después de instalarlo, abre una página de GitHub como `https://github.com/...` y los textos compatibles de la interfaz se traducirán automáticamente al idioma seleccionado.
+
+### Instalación para desarrollo (cargar desde el repositorio)
+
+Para personalizar un diccionario o colaborar con el desarrollo, clona el repositorio y carga la extensión directamente.
+
+```sh
+git clone https://github.com/nobuo-miura/github-ui-translator.git
+```
+
+- **Chrome / Edge**: abre `chrome://extensions` en Chrome o `edge://extensions` en Edge, activa el modo de desarrollador, haz clic en «Cargar descomprimida» y selecciona la carpeta clonada que contiene `manifest.json`.
+- **Firefox**: abre `about:debugging#/runtime/this-firefox`, haz clic en «Cargar complemento temporal…» y selecciona el archivo `manifest.json` del repositorio. Los complementos temporales se eliminan al reiniciar Firefox, por lo que hay que volver a cargarlos en cada sesión.
+
+## Uso
+
+- Haz clic en el icono de la extensión en la barra de herramientas para abrir el interruptor de traducción y el selector de idioma. Actualmente se incluyen japonés, chino simplificado, español, alemán, portugués de Brasil, coreano, francés y ruso; la lista desplegable puede ampliarse cuando se añadan nuevos diccionarios.
+- Al cambiar el interruptor o el idioma, las pestañas de GitHub abiertas se vuelven a cargar para aplicar la nueva configuración.
+- La ventana emergente también permite decidir si se traduce el encabezado global e incluye un enlace a este repositorio. Cambiar esta opción también vuelve a cargar las pestañas de GitHub. La traducción del encabezado global está activada de forma predeterminada y espera a que termine la hidratación de React de GitHub; desactívala si la búsqueda global no se abre.
+- Abre la página de opciones de la extensión (`chrome://extensions` en Chrome, `edge://extensions` en Edge o `about:addons` en Firefox) para consultar la información de los diccionarios incluidos y la versión de la extensión.
+
+## Personalización del diccionario
+
+Puedes añadir o modificar traducciones editando directamente el diccionario del idioma correspondiente, por ejemplo, `dictionaries/ja.json`, `dictionaries/zh-CN.json`, `dictionaries/es.json`, `dictionaries/de.json`, `dictionaries/pt-BR.json`, `dictionaries/ko.json`, `dictionaries/fr.json` o `dictionaries/ru.json`.
+Las entradas se agrupan por pantalla de GitHub (navegación del repositorio, configuración del repositorio, configuración de la organización, etc.) y cada grupo comienza con una línea de comentario `// ====`. Así es más fácil identificar dónde aparece cada entrada y detectar cambios en los textos de la interfaz de GitHub.
+
+```jsonc
+{
+ "language": "ja",
+ "name": "日本語",
+ "translations": {
+ // ==== Navegación del repositorio ====
+ "Code": "コード",
+ "Issues": "イシュー"
+ }
+}
+```
+
+- El archivo es JSON con comentarios de línea `//` (estilo JSONC). Solo se admiten comentarios que ocupen toda la línea; no se admiten comentarios al final de una línea después de un valor. La extensión elimina las líneas de comentarios antes de analizar el archivo, ya que `JSON.parse` y `fetch().json()` no admiten comentarios.
+- Las claves del diccionario deben coincidir **exactamente** con el texto original en inglés. Se ignoran los espacios iniciales y finales tanto en el texto visible como en los valores de atributo compatibles. Solo en el texto visible, los espacios consecutivos —incluidos los saltos de línea— se reducen a un único espacio. Los valores de atributos como `aria-label`, `placeholder`, `value` de los botones y `data-disable-with` conservan sus espacios internos al compararlos. Las claves del diccionario no deben contener espacios iniciales ni finales.
+- Después de editar el diccionario, vuelve a cargar la extensión desde `chrome://extensions` en Chrome, `edge://extensions` en Edge o `about:debugging` en Firefox.
+
+### Añadir un idioma
+
+1. Añade `dictionaries/.json` (por ejemplo, `dictionaries/en.json`) con el mismo formato.
+2. Añade `{ "code": "", "name": "" }` a `languages.json`. Tanto la ventana emergente como la página de opciones cargan esta lista compartida.
+3. Ejecuta `node scripts/validate.mjs` para comprobar el formato de los diccionarios, las claves duplicadas, los metadatos, la igualdad de claves entre los diccionarios incluidos, las asignaciones a sí mismas, las cadenas de traducción y los ciclos que no convergen.
+
+La ventana emergente, la página de opciones y los metadatos de la extensión utilizan el mecanismo `_locales` de las extensiones del navegador de forma independiente a los diccionarios de traducción de GitHub. Para añadir un idioma a la propia interfaz de la extensión, crea también `_locales//messages.json` con las mismas claves que `_locales/en/messages.json`.
+
+## Estructura del proyecto
+
+```text
+github-ui-translator/
+├─ manifest.json
+├─ shared.js # Lista de idiomas compartida y funciones auxiliares de localización de la interfaz
+├─ languages.json # Idiomas incluidos para traducir GitHub
+├─ content.js # Motor de traducción que examina el DOM mediante una lista permitida
+├─ popup.html/js # Ventana emergente de la barra de herramientas con el interruptor de traducción
+├─ options.html/js # Información de los diccionarios y versión
+├─ _locales/ # Mensajes localizados de la ventana emergente, las opciones y los metadatos
+├─ dictionaries/
+│ ├─ ja.json # Diccionario japonés
+│ ├─ zh-CN.json # Diccionario de chino simplificado
+│ ├─ es.json # Diccionario español
+│ ├─ de.json # Diccionario alemán
+│ ├─ pt-BR.json # Diccionario de portugués de Brasil
+│ ├─ ko.json # Diccionario coreano
+│ ├─ fr.json # Diccionario francés
+│ └─ ru.json # Diccionario ruso
+├─ docs/
+│ ├─ translation-scope.md # Versión en inglés
+│ └─ translation-scope.ja.md # Versión en japonés
+├─ scripts/
+│ └─ validate.mjs # Validación de diccionarios y localización
+└─ icons/
+```
+
+## Licencia
+
+[Licencia MIT](./LICENSE)
diff --git a/README.fr.md b/README.fr.md
new file mode 100644
index 0000000..955c8a2
--- /dev/null
+++ b/README.fr.md
@@ -0,0 +1,147 @@
+# GitHub UI Translator
+
+[English](README.md) | [日本語](README.ja.md) | [简体中文](README.zh-CN.md) | [Español](README.es.md) | [Deutsch](README.de.md) | [Português (Brasil)](README.pt-BR.md) | [한국어](README.ko.md) | [Français](README.fr.md) | [Русский](README.ru.md)
+
+[](https://github.com/nobuo-miura/github-ui-translator/releases/latest)
+[](https://chromewebstore.google.com/detail/github-ui-translator/igdplojdbbpfbedgoaokfcagpkofmngk)
+[](https://microsoftedge.microsoft.com/addons/detail/fgjocjmjjghflobobinafkbkeildanoj)
+[](https://addons.mozilla.org/firefox/addon/github-ui-translator/)
+[](https://github.com/nobuo-miura/github-ui-translator/actions/workflows/validate.yml)
+[](./LICENSE)
+
+GitHub UI Translator est une extension pour Chrome, Edge et Firefox qui traduit l’interface anglaise de GitHub en japonais, chinois simplifié, espagnol, allemand, portugais brésilien, coréen, français ou russe à l’aide de dictionnaires locaux.
+Elle ne dépend d’aucune API de traduction ni d’aucun service cloud externe : toute la traduction s’effectue localement dans le navigateur.
+
+
+
+
+Captures d’écran des 8 langues prises en charge
+
+La première ligne montre l’interface anglaise d’origine de GitHub ; chaque ligne suivante présente le résultat dans une langue.
+
+
+
+
+
+## Fonctionnalités
+
+- Effectue toutes les traductions localement, sans envoyer le contenu des pages ni les paramètres à des services externes
+- Traduit les textes fixes de l’interface de GitHub, tels que les éléments de navigation et les boutons, tout en évitant les zones de contenu créées par les utilisateurs, comme les fichiers README, les problèmes, les commentaires et les blocs de code
+- Permet d’activer ou de désactiver la traduction depuis la fenêtre contextuelle de l’extension
+- Attend la fin de l’hydratation React de GitHub avant de traduire l’en-tête global afin de réduire le risque d’interférence avec la recherche globale ; cette fonction peut aussi être désactivée dans la fenêtre contextuelle
+
+## Documentation
+
+- [Périmètre de traduction (English)](docs/translation-scope.md) ([日本語](docs/translation-scope.ja.md))
+
+## Limitations
+
+- Le japonais, le chinois simplifié, l’espagnol, l’allemand, le portugais brésilien, le coréen, le français et le russe sont actuellement pris en charge. D’autres langues seront ajoutées à mesure que leur couverture progressera.
+- Les textes dynamiques contenant des nombres ou des dates, tels que « 3 commits » ou « opened 2 days ago », ne sont pas traduits. Le contenu créé par les utilisateurs, comme les noms d’utilisateur, est également exclu. Consultez le [périmètre de traduction](docs/translation-scope.md) pour plus de détails.
+- Seul `github.com` est pris en charge. GitHub Enterprise et les autres domaines personnalisés ne le sont pas.
+- L’extension a été testée sur Chrome, Edge et Firefox. D’autres navigateurs basés sur Chromium peuvent également fonctionner, mais n’ont pas été testés explicitement.
+
+## Installation
+
+### Chrome
+
+Installez [GitHub UI Translator depuis le Chrome Web Store](https://chromewebstore.google.com/detail/github-ui-translator/igdplojdbbpfbedgoaokfcagpkofmngk).
+
+Si le Chrome Web Store n’est pas accessible dans votre environnement, par exemple sur un appareil administré par une entreprise :
+
+1. Téléchargez le fichier `.zip` de la [dernière version](https://github.com/nobuo-miura/github-ui-translator/releases/latest), puis extrayez-le.
+2. Ouvrez `chrome://extensions` dans Chrome et activez le mode développeur.
+3. Cliquez sur « Charger l’extension non empaquetée », puis sélectionnez le dossier extrait.
+
+Les extensions installées manuellement ne se mettent pas à jour automatiquement. Répétez ces étapes lorsqu’une nouvelle version est publiée. Les règles de votre organisation peuvent également interdire le mode développeur ou les extensions installées manuellement ; dans ce cas, contactez votre administrateur.
+
+### Edge
+
+Installez [GitHub UI Translator depuis les modules complémentaires Microsoft Edge](https://microsoftedge.microsoft.com/addons/detail/fgjocjmjjghflobobinafkbkeildanoj).
+
+### Firefox
+
+Firefox 142 ou une version ultérieure est requis.
+
+Installez [GitHub UI Translator depuis Firefox Add-ons](https://addons.mozilla.org/firefox/addon/github-ui-translator/).
+
+Après l’installation, ouvrez une page GitHub telle que `https://github.com/...` : les textes d’interface pris en charge seront automatiquement traduits dans la langue sélectionnée.
+
+### Installation pour le développement (chargement depuis le dépôt)
+
+Pour personnaliser un dictionnaire ou contribuer au développement, clonez le dépôt et chargez directement l’extension.
+
+```sh
+git clone https://github.com/nobuo-miura/github-ui-translator.git
+```
+
+- **Chrome / Edge** : ouvrez `chrome://extensions` dans Chrome ou `edge://extensions` dans Edge, activez le mode développeur, cliquez sur « Charger l’extension non empaquetée », puis sélectionnez le dossier cloné qui contient `manifest.json`.
+- **Firefox** : ouvrez `about:debugging#/runtime/this-firefox`, cliquez sur « Charger un module complémentaire temporaire… », puis sélectionnez le fichier `manifest.json` du dépôt. Un module temporaire est supprimé au redémarrage de Firefox et doit donc être rechargé à chaque session.
+
+## Utilisation
+
+- Cliquez sur l’icône de l’extension dans la barre d’outils pour afficher l’interrupteur de traduction et le sélecteur de langue. Le japonais, le chinois simplifié, l’espagnol, l’allemand, le portugais brésilien, le coréen, le français et le russe sont actuellement inclus ; la liste pourra accueillir d’autres langues lorsque de nouveaux dictionnaires seront ajoutés.
+- Toute modification de l’interrupteur ou de la langue recharge les onglets GitHub ouverts afin d’appliquer le nouveau paramètre.
+- La fenêtre contextuelle permet aussi de choisir si l’en-tête global doit être traduit et contient un lien vers ce dépôt. La modification de cette option recharge également les onglets GitHub. La traduction de l’en-tête global est activée par défaut et attend la fin de l’hydratation React de GitHub ; désactivez-la si la recherche globale ne s’ouvre pas.
+- Ouvrez la page des options de l’extension (`chrome://extensions` dans Chrome, `edge://extensions` dans Edge ou `about:addons` dans Firefox) pour consulter les informations sur les dictionnaires inclus et la version de l’extension.
+
+## Personnalisation du dictionnaire
+
+Vous pouvez ajouter ou modifier des traductions en éditant directement le dictionnaire de la langue concernée, par exemple `dictionaries/ja.json`, `dictionaries/zh-CN.json`, `dictionaries/es.json`, `dictionaries/de.json`, `dictionaries/pt-BR.json`, `dictionaries/ko.json`, `dictionaries/fr.json` ou `dictionaries/ru.json`.
+Les entrées sont regroupées par écran GitHub (navigation du dépôt, paramètres du dépôt, paramètres de l’organisation, etc.). Chaque groupe commence par une ligne de commentaire `// ====`, ce qui permet d’identifier rapidement l’écran correspondant et de repérer les changements dans les textes de l’interface GitHub.
+
+```jsonc
+{
+ "language": "ja",
+ "name": "日本語",
+ "translations": {
+ // ==== Navigation du dépôt ====
+ "Code": "コード",
+ "Issues": "イシュー"
+ }
+}
+```
+
+- Le fichier est au format JSON avec des commentaires de ligne `//` (style JSONC). Seuls les commentaires occupant une ligne entière sont pris en charge ; les commentaires placés après une valeur ne le sont pas. Comme `JSON.parse` et `fetch().json()` ne gèrent pas les commentaires, l’extension supprime les lignes de commentaire avant l’analyse.
+- Les clés du dictionnaire doivent correspondre **exactement** au texte anglais d’origine. Les espaces en début et en fin de chaîne sont ignorés pour le texte visible et les valeurs d’attribut prises en charge. Pour le texte visible uniquement, les suites d’espaces — y compris les sauts de ligne — sont réduites à un seul espace. Les valeurs d’attribut comme `aria-label`, `placeholder`, la propriété `value` des boutons et `data-disable-with` conservent leurs espaces internes lors de la comparaison. Les clés elles-mêmes ne doivent pas comporter d’espaces initiaux ou finaux.
+- Après avoir modifié un dictionnaire, rechargez l’extension depuis `chrome://extensions` dans Chrome, `edge://extensions` dans Edge ou `about:debugging` dans Firefox.
+
+### Ajout d’une langue
+
+1. Ajoutez `dictionaries/.json` (par exemple `dictionaries/en.json`) en conservant le même format.
+2. Ajoutez `{ "code": "", "name": "" }` à `languages.json`. La fenêtre contextuelle et la page des options utilisent toutes deux cette liste commune.
+3. Exécutez `node scripts/validate.mjs` pour vérifier le format des dictionnaires, les clés en double, les métadonnées, l’égalité des clés entre les dictionnaires inclus, les auto-correspondances, les chaînes de traduction et les cycles qui ne convergent pas.
+
+La fenêtre contextuelle, la page des options et les métadonnées de l’extension utilisent le mécanisme `_locales` des extensions de navigateur, indépendamment des dictionnaires de traduction de GitHub. Pour proposer également l’interface de l’extension dans une nouvelle langue, ajoutez `_locales//messages.json` avec les mêmes clés de message que `_locales/en/messages.json`.
+
+## Structure du projet
+
+```text
+github-ui-translator/
+├─ manifest.json
+├─ shared.js # Liste de langues partagée et utilitaires de localisation de l’interface
+├─ languages.json # Langues incluses pour la traduction de GitHub
+├─ content.js # Moteur de traduction qui parcourt le DOM à l’aide d’une liste d’autorisation
+├─ popup.html/js # Fenêtre contextuelle de la barre d’outils avec interrupteur de traduction
+├─ options.html/js # Informations sur les dictionnaires et affichage de la version
+├─ _locales/ # Messages localisés de la fenêtre contextuelle, des options et des métadonnées
+├─ dictionaries/
+│ ├─ ja.json # Dictionnaire japonais
+│ ├─ zh-CN.json # Dictionnaire chinois simplifié
+│ ├─ es.json # Dictionnaire espagnol
+│ ├─ de.json # Dictionnaire allemand
+│ ├─ pt-BR.json # Dictionnaire portugais brésilien
+│ ├─ ko.json # Dictionnaire coréen
+│ ├─ fr.json # Dictionnaire français
+│ └─ ru.json # Dictionnaire russe
+├─ docs/
+│ ├─ translation-scope.md # Version anglaise
+│ └─ translation-scope.ja.md # Version japonaise
+├─ scripts/
+│ └─ validate.mjs # Validation des dictionnaires et de la localisation
+└─ icons/
+```
+
+## Licence
+
+[Licence MIT](./LICENSE)
diff --git a/README.ja.md b/README.ja.md
index 78c68cd..324989a 100644
--- a/README.ja.md
+++ b/README.ja.md
@@ -1,6 +1,6 @@
# GitHub UI Translator
-[English](README.md) | [日本語](README.ja.md)
+[English](README.md) | [日本語](README.ja.md) | [简体中文](README.zh-CN.md) | [Español](README.es.md) | [Deutsch](README.de.md) | [Português (Brasil)](README.pt-BR.md) | [한국어](README.ko.md) | [Français](README.fr.md) | [Русский](README.ru.md)
[](https://github.com/nobuo-miura/github-ui-translator/releases/latest)
[](https://chromewebstore.google.com/detail/github-ui-translator/igdplojdbbpfbedgoaokfcagpkofmngk)
diff --git a/README.ko.md b/README.ko.md
new file mode 100644
index 0000000..3a31004
--- /dev/null
+++ b/README.ko.md
@@ -0,0 +1,147 @@
+# GitHub UI Translator
+
+[English](README.md) | [日本語](README.ja.md) | [简体中文](README.zh-CN.md) | [Español](README.es.md) | [Deutsch](README.de.md) | [Português (Brasil)](README.pt-BR.md) | [한국어](README.ko.md) | [Français](README.fr.md) | [Русский](README.ru.md)
+
+[](https://github.com/nobuo-miura/github-ui-translator/releases/latest)
+[](https://chromewebstore.google.com/detail/github-ui-translator/igdplojdbbpfbedgoaokfcagpkofmngk)
+[](https://microsoftedge.microsoft.com/addons/detail/fgjocjmjjghflobobinafkbkeildanoj)
+[](https://addons.mozilla.org/firefox/addon/github-ui-translator/)
+[](https://github.com/nobuo-miura/github-ui-translator/actions/workflows/validate.yml)
+[](./LICENSE)
+
+GitHub UI Translator는 로컬 사전을 사용해 GitHub의 영어 UI를 일본어, 중국어 간체, 스페인어, 독일어, 브라질 포르투갈어, 한국어, 프랑스어 또는 러시아어로 번역하는 Chrome, Edge 및 Firefox용 브라우저 확장 프로그램입니다.
+외부 번역 API나 클라우드 서비스에 의존하지 않으며 모든 번역은 브라우저 안에서 로컬로 처리됩니다.
+
+
+
+
+지원하는 8개 언어의 스크린샷
+
+첫 번째 행은 GitHub의 원본 영어 UI이며, 그 아래 각 행은 언어별 번역 결과입니다.
+
+
+
+
+
+## 주요 기능
+
+- 페이지 내용이나 설정을 외부 서비스로 보내지 않고 모든 번역을 로컬에서 처리합니다
+- 탐색 항목과 버튼 같은 GitHub의 고정 UI 문구만 번역하고 README, 이슈, 댓글, 코드 블록 등 사용자가 작성한 콘텐츠 영역은 제외합니다
+- 확장 프로그램 팝업에서 번역을 간편하게 켜거나 끌 수 있습니다
+- GitHub의 React 하이드레이션이 완료된 뒤 전역 헤더를 번역하여 전역 검색과 충돌할 가능성을 낮춥니다. 이 기능은 팝업에서 끌 수도 있습니다
+
+## 문서
+
+- [번역 범위(English)](docs/translation-scope.md) ([日本語](docs/translation-scope.ja.md))
+
+## 제한 사항
+
+- 현재 일본어, 중국어 간체, 스페인어, 독일어, 브라질 포르투갈어, 한국어, 프랑스어, 러시아어를 지원합니다. 번역 범위가 충분히 갖춰지는 대로 다른 언어도 추가할 예정입니다.
+- “3 commits”나 “opened 2 days ago”처럼 숫자 또는 날짜가 포함된 동적 문구는 번역하지 않습니다. 사용자 이름 등 사용자가 작성한 콘텐츠도 번역 대상에서 제외됩니다. 자세한 내용은 [번역 범위](docs/translation-scope.md)를 참고하세요.
+- `github.com`만 지원합니다. GitHub Enterprise 및 기타 사용자 지정 도메인은 지원하지 않습니다.
+- Chrome, Edge 및 Firefox에서 테스트했습니다. 다른 Chromium 기반 브라우저에서도 작동할 수 있지만 명시적으로 테스트하지는 않았습니다.
+
+## 설치
+
+### Chrome
+
+[Chrome 웹 스토어](https://chromewebstore.google.com/detail/github-ui-translator/igdplojdbbpfbedgoaokfcagpkofmngk)에서 GitHub UI Translator를 설치하세요.
+
+회사에서 관리하는 기기 등 Chrome 웹 스토어를 사용할 수 없는 환경에서는 다음과 같이 수동으로 설치할 수 있습니다.
+
+1. [최신 릴리스](https://github.com/nobuo-miura/github-ui-translator/releases/latest)에서 `.zip` 파일을 내려받아 압축을 풉니다.
+2. Chrome에서 `chrome://extensions`를 열고 개발자 모드를 켭니다.
+3. “압축해제된 확장 프로그램을 로드합니다”를 클릭한 뒤 압축을 푼 폴더를 선택합니다.
+
+수동으로 설치한 확장 프로그램은 자동으로 업데이트되지 않습니다. 새 버전이 출시되면 위 단계를 반복하세요. 조직 정책에 따라 개발자 모드나 수동 설치 확장 프로그램이 차단될 수도 있습니다. 이 경우 관리자에게 문의하세요.
+
+### Edge
+
+[Microsoft Edge 추가 기능](https://microsoftedge.microsoft.com/addons/detail/fgjocjmjjghflobobinafkbkeildanoj)에서 GitHub UI Translator를 설치하세요.
+
+### Firefox
+
+Firefox 142 이상이 필요합니다.
+
+[Firefox 부가 기능](https://addons.mozilla.org/firefox/addon/github-ui-translator/)에서 GitHub UI Translator를 설치하세요.
+
+설치한 뒤 `https://github.com/...` 같은 GitHub 페이지를 열면 지원되는 UI 문구가 선택한 언어로 자동 번역됩니다.
+
+### 개발용 설치(저장소에서 직접 로드)
+
+사전을 사용자 지정하거나 개발에 참여하려면 저장소를 복제한 뒤 확장 프로그램을 직접 로드하세요.
+
+```sh
+git clone https://github.com/nobuo-miura/github-ui-translator.git
+```
+
+- **Chrome / Edge**: Chrome에서는 `chrome://extensions`, Edge에서는 `edge://extensions`를 열고 개발자 모드를 켭니다. “압축해제된 확장 프로그램을 로드합니다”를 클릭한 뒤 `manifest.json`이 들어 있는 복제 폴더를 선택합니다.
+- **Firefox**: `about:debugging#/runtime/this-firefox`를 열고 “임시 부가 기능 로드…”를 클릭한 다음 저장소의 `manifest.json`을 선택합니다. 임시 부가 기능은 Firefox를 다시 시작하면 제거되므로 세션마다 다시 로드해야 합니다.
+
+## 사용 방법
+
+- 도구 모음에서 확장 프로그램 아이콘을 클릭하면 번역 켜기/끄기 스위치와 언어 선택기가 열립니다. 현재 일본어, 중국어 간체, 스페인어, 독일어, 브라질 포르투갈어, 한국어, 프랑스어, 러시아어가 포함되어 있으며 사전을 추가하면 목록에 새 언어를 더할 수 있습니다.
+- 번역 스위치나 언어를 변경하면 열려 있는 GitHub 탭이 새로고침되어 새 설정이 적용됩니다.
+- 팝업에서는 전역 헤더 번역 여부를 선택할 수 있으며 이 저장소로 이동하는 링크도 제공합니다. 이 옵션을 변경해도 열려 있는 GitHub 탭이 새로고침됩니다. 전역 헤더 번역은 기본적으로 켜져 있고 GitHub의 React 하이드레이션이 끝날 때까지 기다린 뒤 동작합니다. 전역 검색이 열리지 않는 경우 이 옵션을 끄세요.
+- 확장 프로그램 옵션 페이지(Chrome의 `chrome://extensions`, Edge의 `edge://extensions`, Firefox의 `about:addons`)에서 포함된 사전 정보와 확장 프로그램 버전을 확인할 수 있습니다.
+
+## 사전 사용자 지정
+
+원하는 언어의 사전 파일을 직접 편집하여 번역을 추가하거나 변경할 수 있습니다. 예: `dictionaries/ja.json`, `dictionaries/zh-CN.json`, `dictionaries/es.json`, `dictionaries/de.json`, `dictionaries/pt-BR.json`, `dictionaries/ko.json`, `dictionaries/fr.json`, `dictionaries/ru.json`.
+항목은 저장소 탐색, 저장소 Settings, 조직 Settings 등 GitHub 화면별로 그룹화되어 있으며 각 그룹 앞에는 `// ====` 주석 줄이 있습니다. 이를 통해 항목이 어느 화면에 속하는지 빠르게 파악하고 GitHub UI 문구 변경도 쉽게 발견할 수 있습니다.
+
+```jsonc
+{
+ "language": "ja",
+ "name": "日本語",
+ "translations": {
+ // ==== 저장소 탐색 ====
+ "Code": "コード",
+ "Issues": "イシュー"
+ }
+}
+```
+
+- 이 파일은 `//` 줄 주석이 포함된 JSON(JSONC 형식)입니다. 줄 전체가 주석인 경우만 지원하며 값 뒤에 이어지는 인라인 주석은 지원하지 않습니다. 표준 `JSON.parse`와 `fetch().json()`은 주석을 처리하지 못하므로 확장 프로그램이 주석 줄을 제거한 뒤 파일을 파싱합니다.
+- 사전 키는 원본 영어 텍스트와 **정확히 일치**해야 합니다. 표시 텍스트와 지원되는 속성 값 모두 앞뒤 공백을 무시합니다. 표시 텍스트에 한해서는 줄바꿈을 포함한 연속 공백을 하나의 공백으로 합칩니다. `aria-label`, `placeholder`, 버튼의 `value`, `data-disable-with` 같은 속성 값은 비교할 때 내부 공백을 유지합니다. 사전 키 자체에는 앞뒤 공백을 넣을 수 없습니다.
+- 사전을 편집한 뒤 확장 프로그램을 다시 로드하세요. Chrome은 `chrome://extensions`, Edge는 `edge://extensions`, Firefox는 `about:debugging`을 사용합니다.
+
+### 새 언어 추가
+
+1. 같은 형식으로 `dictionaries/.json`(예: `dictionaries/en.json`)을 추가합니다.
+2. `languages.json`에 `{ "code": "", "name": "" }`을 추가합니다. 팝업과 옵션 페이지는 모두 이 공통 목록을 불러옵니다.
+3. `node scripts/validate.mjs`를 실행하여 사전 형식, 중복 키, 메타데이터, 포함된 사전 간 키 일치 여부, 자기 매핑, 번역 체인 및 수렴하지 않는 순환을 검사합니다.
+
+팝업, 옵션 페이지 및 확장 프로그램 메타데이터는 GitHub 번역 사전과 별도로 브라우저 확장의 `_locales` 메커니즘을 사용합니다. 확장 프로그램 자체 UI에도 새 언어를 추가하려면 `_locales/en/messages.json`과 동일한 메시지 키를 가진 `_locales//messages.json`도 추가하세요.
+
+## 프로젝트 구조
+
+```text
+github-ui-translator/
+├─ manifest.json
+├─ shared.js # 공통 언어 목록 및 확장 프로그램 UI 현지화 도우미
+├─ languages.json # 포함된 GitHub 번역 언어
+├─ content.js # 허용 목록을 사용해 DOM을 탐색하는 번역 엔진
+├─ popup.html/js # 번역 스위치가 있는 도구 모음 팝업
+├─ options.html/js # 사전 정보 및 버전 표시
+├─ _locales/ # 팝업, 옵션 및 확장 프로그램 메타데이터의 현지화 메시지
+├─ dictionaries/
+│ ├─ ja.json # 일본어 사전
+│ ├─ zh-CN.json # 중국어 간체 사전
+│ ├─ es.json # 스페인어 사전
+│ ├─ de.json # 독일어 사전
+│ ├─ pt-BR.json # 브라질 포르투갈어 사전
+│ ├─ ko.json # 한국어 사전
+│ ├─ fr.json # 프랑스어 사전
+│ └─ ru.json # 러시아어 사전
+├─ docs/
+│ ├─ translation-scope.md # 영어 버전
+│ └─ translation-scope.ja.md # 일본어 버전
+├─ scripts/
+│ └─ validate.mjs # 사전 및 현지화 검증
+└─ icons/
+```
+
+## 라이선스
+
+[MIT 라이선스](./LICENSE)
diff --git a/README.md b/README.md
index 7a37628..ed706e8 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# GitHub UI Translator
-[English](README.md) | [日本語](README.ja.md)
+[English](README.md) | [日本語](README.ja.md) | [简体中文](README.zh-CN.md) | [Español](README.es.md) | [Deutsch](README.de.md) | [Português (Brasil)](README.pt-BR.md) | [한국어](README.ko.md) | [Français](README.fr.md) | [Русский](README.ru.md)
[](https://github.com/nobuo-miura/github-ui-translator/releases/latest)
[](https://chromewebstore.google.com/detail/github-ui-translator/igdplojdbbpfbedgoaokfcagpkofmngk)
diff --git a/README.pt-BR.md b/README.pt-BR.md
new file mode 100644
index 0000000..59a653a
--- /dev/null
+++ b/README.pt-BR.md
@@ -0,0 +1,147 @@
+# GitHub UI Translator
+
+[English](README.md) | [日本語](README.ja.md) | [简体中文](README.zh-CN.md) | [Español](README.es.md) | [Deutsch](README.de.md) | [Português (Brasil)](README.pt-BR.md) | [한국어](README.ko.md) | [Français](README.fr.md) | [Русский](README.ru.md)
+
+[](https://github.com/nobuo-miura/github-ui-translator/releases/latest)
+[](https://chromewebstore.google.com/detail/github-ui-translator/igdplojdbbpfbedgoaokfcagpkofmngk)
+[](https://microsoftedge.microsoft.com/addons/detail/fgjocjmjjghflobobinafkbkeildanoj)
+[](https://addons.mozilla.org/firefox/addon/github-ui-translator/)
+[](https://github.com/nobuo-miura/github-ui-translator/actions/workflows/validate.yml)
+[](./LICENSE)
+
+GitHub UI Translator é uma extensão para Chrome, Edge e Firefox que traduz a interface em inglês do GitHub para japonês, chinês simplificado, espanhol, alemão, português do Brasil, coreano, francês ou russo usando dicionários locais.
+Ela não depende de APIs externas de tradução nem de serviços em nuvem: toda a tradução é feita localmente no navegador.
+
+
+
+
+Capturas de tela dos 8 idiomas compatíveis
+
+A primeira linha mostra a interface original do GitHub em inglês; as linhas seguintes mostram o resultado da tradução em cada idioma.
+
+
+
+
+
+## Recursos
+
+- Faz toda a tradução localmente, sem enviar o conteúdo das páginas ou as configurações para serviços externos
+- Traduz textos fixos da interface do GitHub, como itens de navegação e botões, evitando áreas de conteúdo criado por usuários, como READMEs, problemas, comentários e blocos de código
+- Permite ativar ou desativar a tradução pela janela pop-up da extensão
+- Traduz o cabeçalho global somente depois que a hidratação do React do GitHub termina, reduzindo o risco de interferir na pesquisa global; essa opção também pode ser desativada no pop-up
+
+## Documentação
+
+- [Escopo da tradução (English)](docs/translation-scope.md) ([日本語](docs/translation-scope.ja.md))
+
+## Limitações
+
+- Atualmente há suporte para japonês, chinês simplificado, espanhol, alemão, português do Brasil, coreano, francês e russo. Outros idiomas serão adicionados à medida que a cobertura de tradução aumentar.
+- Textos dinâmicos que contêm números ou datas, como “3 commits” ou “opened 2 days ago”, não são traduzidos. Conteúdo criado por usuários, como nomes de usuário, também fica de fora. Consulte o [escopo da tradução](docs/translation-scope.md) para saber mais.
+- Somente `github.com` é compatível. GitHub Enterprise e outros domínios personalizados não são compatíveis.
+- A extensão foi testada no Chrome, Edge e Firefox. Outros navegadores baseados em Chromium também podem funcionar, mas não foram testados explicitamente.
+
+## Instalação
+
+### Chrome
+
+Instale o [GitHub UI Translator pela Chrome Web Store](https://chromewebstore.google.com/detail/github-ui-translator/igdplojdbbpfbedgoaokfcagpkofmngk).
+
+Se a Chrome Web Store não estiver disponível no seu ambiente, como em um dispositivo gerenciado pela empresa:
+
+1. Baixe o arquivo `.zip` da [versão mais recente](https://github.com/nobuo-miura/github-ui-translator/releases/latest) e extraia-o.
+2. Abra `chrome://extensions` no Chrome e ative o modo do desenvolvedor.
+3. Clique em “Carregar sem compactação” e selecione a pasta extraída.
+
+Extensões instaladas manualmente não são atualizadas de forma automática. Repita essas etapas quando uma nova versão for publicada. As políticas da sua organização também podem bloquear o modo do desenvolvedor ou extensões instaladas manualmente; nesse caso, entre em contato com o administrador.
+
+### Edge
+
+Instale o [GitHub UI Translator pelos Complementos do Microsoft Edge](https://microsoftedge.microsoft.com/addons/detail/fgjocjmjjghflobobinafkbkeildanoj).
+
+### Firefox
+
+É necessário usar o Firefox 142 ou uma versão mais recente.
+
+Instale o [GitHub UI Translator pelos complementos do Firefox](https://addons.mozilla.org/firefox/addon/github-ui-translator/).
+
+Após a instalação, abra uma página do GitHub, como `https://github.com/...`, e os textos compatíveis da interface serão traduzidos automaticamente para o idioma selecionado.
+
+### Instalação para desenvolvimento (carregar pelo repositório)
+
+Para personalizar um dicionário ou contribuir com o desenvolvimento, clone o repositório e carregue a extensão diretamente.
+
+```sh
+git clone https://github.com/nobuo-miura/github-ui-translator.git
+```
+
+- **Chrome / Edge**: abra `chrome://extensions` no Chrome ou `edge://extensions` no Edge, ative o modo do desenvolvedor, clique em “Carregar sem compactação” e selecione a pasta clonada que contém `manifest.json`.
+- **Firefox**: abra `about:debugging#/runtime/this-firefox`, clique em “Carregar extensão temporária…” e selecione o arquivo `manifest.json` do repositório. Extensões temporárias são removidas quando o Firefox é reiniciado, portanto precisam ser carregadas novamente em cada sessão.
+
+## Uso
+
+- Clique no ícone da extensão na barra de ferramentas para abrir o botão de ativação da tradução e o seletor de idioma. Japonês, chinês simplificado, espanhol, alemão, português do Brasil, coreano, francês e russo estão incluídos atualmente; a lista poderá receber novos idiomas quando outros dicionários forem adicionados.
+- Ao alterar o botão de ativação ou o idioma, as abas abertas do GitHub são recarregadas para aplicar a nova configuração.
+- O pop-up também permite escolher se o cabeçalho global será traduzido e contém um link para este repositório. Alterar essa opção também recarrega as abas do GitHub. A tradução do cabeçalho global fica ativada por padrão e aguarda o término da hidratação do React do GitHub; desative-a se a pesquisa global não abrir.
+- Abra a página de opções da extensão (`chrome://extensions` no Chrome, `edge://extensions` no Edge ou `about:addons` no Firefox) para consultar as informações dos dicionários incluídos e a versão da extensão.
+
+## Personalização do dicionário
+
+Você pode adicionar ou alterar traduções editando diretamente o arquivo de dicionário do idioma desejado, por exemplo, `dictionaries/ja.json`, `dictionaries/zh-CN.json`, `dictionaries/es.json`, `dictionaries/de.json`, `dictionaries/pt-BR.json`, `dictionaries/ko.json`, `dictionaries/fr.json` ou `dictionaries/ru.json`.
+As entradas são agrupadas por tela do GitHub (navegação do repositório, configurações do repositório, configurações da organização etc.). Cada grupo começa com uma linha de comentário `// ====`, facilitando a identificação da tela correspondente e a percepção de mudanças nos textos da interface do GitHub.
+
+```jsonc
+{
+ "language": "ja",
+ "name": "日本語",
+ "translations": {
+ // ==== Navegação do repositório ====
+ "Code": "コード",
+ "Issues": "イシュー"
+ }
+}
+```
+
+- O arquivo usa JSON com comentários de linha `//` (estilo JSONC). Somente comentários que ocupam a linha inteira são aceitos; comentários depois de um valor na mesma linha não são compatíveis. Como `JSON.parse` e `fetch().json()` não processam comentários, a extensão remove as linhas comentadas antes de analisar o arquivo.
+- As chaves do dicionário precisam corresponder **exatamente** ao texto original em inglês. Espaços no início e no fim são ignorados tanto no texto visível quanto nos valores de atributos compatíveis. Somente no texto visível, espaços consecutivos — inclusive quebras de linha — são reduzidos a um único espaço. Valores de atributos como `aria-label`, `placeholder`, `value` de botões e `data-disable-with` mantêm os espaços internos durante a comparação. As próprias chaves do dicionário não podem conter espaços no início ou no fim.
+- Depois de editar o dicionário, recarregue a extensão em `chrome://extensions` no Chrome, `edge://extensions` no Edge ou `about:debugging` no Firefox.
+
+### Adição de um idioma
+
+1. Adicione `dictionaries/.json` (por exemplo, `dictionaries/en.json`) no mesmo formato.
+2. Adicione `{ "code": "", "name": "" }` a `languages.json`. O pop-up e a página de opções carregam essa lista compartilhada.
+3. Execute `node scripts/validate.mjs` para verificar o formato dos dicionários, chaves duplicadas, metadados, igualdade das chaves entre os dicionários incluídos, automapeamentos, cadeias de tradução e ciclos que não convergem.
+
+O pop-up, a página de opções e os metadados da extensão usam o mecanismo `_locales` das extensões de navegador, independentemente dos dicionários de tradução do GitHub. Para adicionar um idioma também à interface da extensão, crie `_locales//messages.json` com as mesmas chaves de mensagem de `_locales/en/messages.json`.
+
+## Estrutura do projeto
+
+```text
+github-ui-translator/
+├─ manifest.json
+├─ shared.js # Lista compartilhada de idiomas e utilitários de localização da interface
+├─ languages.json # Idiomas incluídos para a tradução do GitHub
+├─ content.js # Mecanismo de tradução que percorre o DOM usando uma lista de permissões
+├─ popup.html/js # Pop-up da barra de ferramentas com o botão de tradução
+├─ options.html/js # Informações dos dicionários e exibição da versão
+├─ _locales/ # Mensagens localizadas do pop-up, das opções e dos metadados
+├─ dictionaries/
+│ ├─ ja.json # Dicionário japonês
+│ ├─ zh-CN.json # Dicionário de chinês simplificado
+│ ├─ es.json # Dicionário espanhol
+│ ├─ de.json # Dicionário alemão
+│ ├─ pt-BR.json # Dicionário de português do Brasil
+│ ├─ ko.json # Dicionário coreano
+│ ├─ fr.json # Dicionário francês
+│ └─ ru.json # Dicionário russo
+├─ docs/
+│ ├─ translation-scope.md # Versão em inglês
+│ └─ translation-scope.ja.md # Versão em japonês
+├─ scripts/
+│ └─ validate.mjs # Validação dos dicionários e da localização
+└─ icons/
+```
+
+## Licença
+
+[Licença MIT](./LICENSE)
diff --git a/README.ru.md b/README.ru.md
new file mode 100644
index 0000000..a320985
--- /dev/null
+++ b/README.ru.md
@@ -0,0 +1,147 @@
+# GitHub UI Translator
+
+[English](README.md) | [日本語](README.ja.md) | [简体中文](README.zh-CN.md) | [Español](README.es.md) | [Deutsch](README.de.md) | [Português (Brasil)](README.pt-BR.md) | [한국어](README.ko.md) | [Français](README.fr.md) | [Русский](README.ru.md)
+
+[](https://github.com/nobuo-miura/github-ui-translator/releases/latest)
+[](https://chromewebstore.google.com/detail/github-ui-translator/igdplojdbbpfbedgoaokfcagpkofmngk)
+[](https://microsoftedge.microsoft.com/addons/detail/fgjocjmjjghflobobinafkbkeildanoj)
+[](https://addons.mozilla.org/firefox/addon/github-ui-translator/)
+[](https://github.com/nobuo-miura/github-ui-translator/actions/workflows/validate.yml)
+[](./LICENSE)
+
+GitHub UI Translator — расширение для Chrome, Edge и Firefox, которое с помощью локальных словарей переводит англоязычный интерфейс GitHub на японский, упрощённый китайский, испанский, немецкий, бразильский португальский, корейский, французский или русский язык.
+Расширение не использует внешние API перевода или облачные сервисы: весь перевод выполняется локально в браузере.
+
+
+
+
+Снимки экрана для всех 8 поддерживаемых языков
+
+В первой строке показан исходный английский интерфейс GitHub, а в следующих строках — результат перевода на каждый язык.
+
+
+
+
+
+## Возможности
+
+- Выполняет весь перевод локально, не отправляя содержимое страниц или настройки во внешние сервисы
+- Переводит статичные элементы интерфейса GitHub, например пункты навигации и кнопки, но не затрагивает области с пользовательским содержимым: файлы README, проблемы, комментарии и блоки кода
+- Позволяет включать и выключать перевод во всплывающем окне расширения
+- Переводит глобальный заголовок только после завершения гидратации React на GitHub, чтобы снизить риск помех для глобального поиска; эту функцию также можно отключить во всплывающем окне
+
+## Документация
+
+- [Область перевода (English)](docs/translation-scope.md) ([日本語](docs/translation-scope.ja.md))
+
+## Ограничения
+
+- Сейчас поддерживаются японский, упрощённый китайский, испанский, немецкий, бразильский португальский, корейский, французский и русский языки. По мере расширения покрытия будут добавляться и другие языки.
+- Динамический текст с числами или датами, например «3 commits» или «opened 2 days ago», не переводится. Пользовательское содержимое, такое как имена пользователей, также исключено. Подробнее см. в разделе об [области перевода](docs/translation-scope.md).
+- Поддерживается только `github.com`. GitHub Enterprise и другие пользовательские домены не поддерживаются.
+- Расширение протестировано в Chrome, Edge и Firefox. Другие браузеры на базе Chromium тоже могут работать, но специально не тестировались.
+
+## Установка
+
+### Chrome
+
+Установите [GitHub UI Translator из Интернет-магазина Chrome](https://chromewebstore.google.com/detail/github-ui-translator/igdplojdbbpfbedgoaokfcagpkofmngk).
+
+Если Интернет-магазин Chrome недоступен в вашей среде, например на устройстве под управлением организации:
+
+1. Скачайте файл `.zip` из [последнего выпуска](https://github.com/nobuo-miura/github-ui-translator/releases/latest) и распакуйте его.
+2. Откройте `chrome://extensions` в Chrome и включите режим разработчика.
+3. Нажмите «Загрузить распакованное расширение» и выберите распакованную папку.
+
+Расширения, установленные вручную, не обновляются автоматически. Повторяйте эти действия после выхода новой версии. Политики вашей организации также могут запрещать режим разработчика или расширения, установленные вручную; в таком случае обратитесь к администратору.
+
+### Edge
+
+Установите [GitHub UI Translator из каталога дополнений Microsoft Edge](https://microsoftedge.microsoft.com/addons/detail/fgjocjmjjghflobobinafkbkeildanoj).
+
+### Firefox
+
+Требуется Firefox 142 или более поздней версии.
+
+Установите [GitHub UI Translator из каталога дополнений Firefox](https://addons.mozilla.org/firefox/addon/github-ui-translator/).
+
+После установки откройте страницу GitHub, например `https://github.com/...`. Поддерживаемые элементы интерфейса будут автоматически переведены на выбранный язык.
+
+### Установка для разработки (загрузка из репозитория)
+
+Чтобы настроить словарь или принять участие в разработке, клонируйте репозиторий и загрузите расширение напрямую.
+
+```sh
+git clone https://github.com/nobuo-miura/github-ui-translator.git
+```
+
+- **Chrome / Edge**: откройте `chrome://extensions` в Chrome или `edge://extensions` в Edge, включите режим разработчика, нажмите «Загрузить распакованное расширение» и выберите клонированную папку, содержащую `manifest.json`.
+- **Firefox**: откройте `about:debugging#/runtime/this-firefox`, нажмите «Загрузить временное дополнение…» и выберите файл `manifest.json` из репозитория. Временные дополнения удаляются при перезапуске Firefox, поэтому их нужно загружать заново в каждом сеансе.
+
+## Использование
+
+- Нажмите значок расширения на панели инструментов, чтобы открыть переключатель перевода и выбор языка. Сейчас в комплект входят японский, упрощённый китайский, испанский, немецкий, бразильский португальский, корейский, французский и русский языки; после добавления новых словарей список можно расширить.
+- При изменении переключателя или языка открытые вкладки GitHub перезагружаются, чтобы применить новую настройку.
+- Во всплывающем окне также можно включить или отключить перевод глобального заголовка и перейти к этому репозиторию. Изменение этой настройки также перезагружает открытые вкладки GitHub. Перевод глобального заголовка включён по умолчанию и ожидает завершения гидратации React на GitHub; отключите его, если глобальный поиск не открывается.
+- На странице настроек расширения (`chrome://extensions` в Chrome, `edge://extensions` в Edge или `about:addons` в Firefox) можно посмотреть сведения о встроенных словарях и версию расширения.
+
+## Настройка словаря
+
+Добавить или изменить переводы можно непосредственно в файле словаря нужного языка, например `dictionaries/ja.json`, `dictionaries/zh-CN.json`, `dictionaries/es.json`, `dictionaries/de.json`, `dictionaries/pt-BR.json`, `dictionaries/ko.json`, `dictionaries/fr.json` или `dictionaries/ru.json`.
+Записи сгруппированы по экранам GitHub (навигация по репозиторию, настройки репозитория, настройки организации и т. д.). Каждая группа начинается со строки комментария `// ====`, поэтому можно быстро определить, к какому экрану относится запись, и заметить изменения в текстах интерфейса GitHub.
+
+```jsonc
+{
+ "language": "ja",
+ "name": "日本語",
+ "translations": {
+ // ==== Навигация по репозиторию ====
+ "Code": "コード",
+ "Issues": "イシュー"
+ }
+}
+```
+
+- Файл представляет собой JSON со строчными комментариями `//` в стиле JSONC. Поддерживаются только комментарии, занимающие всю строку; комментарии после значения в той же строке не поддерживаются. Стандартные `JSON.parse` и `fetch().json()` не обрабатывают комментарии, поэтому расширение удаляет строки комментариев перед разбором файла.
+- Ключи словаря должны **точно совпадать** с исходным английским текстом. Начальные и конечные пробелы игнорируются как в видимом тексте, так и в поддерживаемых значениях атрибутов. Только для видимого текста последовательности пробелов, включая переводы строк, сворачиваются в один пробел. При сопоставлении значений атрибутов, таких как `aria-label`, `placeholder`, `value` кнопки и `data-disable-with`, внутренние пробелы сохраняются. Сами ключи словаря не должны содержать начальных или конечных пробелов.
+- После изменения словаря перезагрузите расширение через `chrome://extensions` в Chrome, `edge://extensions` в Edge или `about:debugging` в Firefox.
+
+### Добавление языка
+
+1. Добавьте `dictionaries/.json` (например, `dictionaries/en.json`) в том же формате.
+2. Добавьте `{ "code": "", "name": "" }` в `languages.json`. Всплывающее окно и страница настроек загружают этот общий список.
+3. Запустите `node scripts/validate.mjs`, чтобы проверить формат словарей, повторяющиеся ключи, метаданные, совпадение наборов ключей во всех встроенных словарях, самосопоставления, цепочки переводов и несходящиеся циклы.
+
+Всплывающее окно, страница настроек и метаданные расширения используют механизм `_locales` для браузерных расширений независимо от словарей перевода GitHub. Чтобы добавить новый язык и в интерфейс самого расширения, создайте `_locales//messages.json` с теми же ключами сообщений, что и в `_locales/en/messages.json`.
+
+## Структура проекта
+
+```text
+github-ui-translator/
+├─ manifest.json
+├─ shared.js # Общий список языков и вспомогательные функции локализации интерфейса расширения
+├─ languages.json # Встроенные языки перевода GitHub
+├─ content.js # Модуль перевода, сканирующий DOM по списку разрешённых элементов
+├─ popup.html/js # Всплывающее окно панели инструментов с переключателем перевода
+├─ options.html/js # Сведения о словарях и версия расширения
+├─ _locales/ # Локализованные сообщения всплывающего окна, настроек и метаданных
+├─ dictionaries/
+│ ├─ ja.json # Японский словарь
+│ ├─ zh-CN.json # Словарь упрощённого китайского языка
+│ ├─ es.json # Испанский словарь
+│ ├─ de.json # Немецкий словарь
+│ ├─ pt-BR.json # Словарь бразильского португальского языка
+│ ├─ ko.json # Корейский словарь
+│ ├─ fr.json # Французский словарь
+│ └─ ru.json # Русский словарь
+├─ docs/
+│ ├─ translation-scope.md # Английская версия
+│ └─ translation-scope.ja.md # Японская версия
+├─ scripts/
+│ └─ validate.mjs # Проверка словарей и локализации
+└─ icons/
+```
+
+## Лицензия
+
+[Лицензия MIT](./LICENSE)
diff --git a/README.zh-CN.md b/README.zh-CN.md
new file mode 100644
index 0000000..c703145
--- /dev/null
+++ b/README.zh-CN.md
@@ -0,0 +1,147 @@
+# GitHub UI Translator
+
+[English](README.md) | [日本語](README.ja.md) | [简体中文](README.zh-CN.md) | [Español](README.es.md) | [Deutsch](README.de.md) | [Português (Brasil)](README.pt-BR.md) | [한국어](README.ko.md) | [Français](README.fr.md) | [Русский](README.ru.md)
+
+[](https://github.com/nobuo-miura/github-ui-translator/releases/latest)
+[](https://chromewebstore.google.com/detail/github-ui-translator/igdplojdbbpfbedgoaokfcagpkofmngk)
+[](https://microsoftedge.microsoft.com/addons/detail/fgjocjmjjghflobobinafkbkeildanoj)
+[](https://addons.mozilla.org/firefox/addon/github-ui-translator/)
+[](https://github.com/nobuo-miura/github-ui-translator/actions/workflows/validate.yml)
+[](./LICENSE)
+
+GitHub UI Translator 是一款适用于 Chrome、Edge 和 Firefox 的浏览器扩展。它使用本地词典,将 GitHub 的英文界面翻译成日语、简体中文、西班牙语、德语、巴西葡萄牙语、韩语、法语或俄语。
+本扩展不依赖外部翻译 API 或云服务;所有翻译均在浏览器本地完成。
+
+
+
+
+全部 8 种支持语言的截图
+
+第一行是 GitHub 原始的英文界面,下面每一行分别展示一种语言的翻译效果。
+
+
+
+
+
+## 功能特点
+
+- 所有翻译均在本地完成,不会将页面内容或设置发送到外部服务
+- 仅翻译导航项、按钮等 GitHub 固定界面文本,并避开 README、议题、评论和代码块等用户创建的内容区域
+- 可在扩展弹出窗口中一键开启或关闭翻译
+- 等待 GitHub 的 React 水合完成后再翻译全局页眉,以降低影响全局搜索的风险;也可以在弹出窗口中关闭此功能
+
+## 文档
+
+- [翻译范围(English)](docs/translation-scope.md)([日本語](docs/translation-scope.ja.md))
+
+## 限制
+
+- 目前支持日语、简体中文、西班牙语、德语、巴西葡萄牙语、韩语、法语和俄语。随着翻译覆盖范围逐步完善,今后还会增加其他语言。
+- 不翻译包含数字或日期的动态文本,例如“3 commits”或“opened 2 days ago”。用户名等用户创建的内容也不在翻译范围内。详情请参阅[翻译范围](docs/translation-scope.md)。
+- 仅支持 `github.com`,不支持 GitHub Enterprise 或其他自定义域名。
+- 已在 Chrome、Edge 和 Firefox 上完成测试。其他基于 Chromium 的浏览器可能也能正常使用,但尚未进行明确测试。
+
+## 安装
+
+### Chrome
+
+请从 [Chrome 应用商店](https://chromewebstore.google.com/detail/github-ui-translator/igdplojdbbpfbedgoaokfcagpkofmngk)安装 GitHub UI Translator。
+
+如果所在环境无法使用 Chrome 应用商店(例如由公司管理的设备),可以手动安装:
+
+1. 从[最新版本](https://github.com/nobuo-miura/github-ui-translator/releases/latest)下载 `.zip` 文件并解压。
+2. 在 Chrome 中打开 `chrome://extensions`,然后启用“开发者模式”。
+3. 点击“加载已解压的扩展程序”,并选择解压后的文件夹。
+
+手动安装的扩展不会自动更新。发布新版本后,请重复上述步骤进行更新。组织策略也可能禁止开发者模式或手动安装扩展;遇到这种情况时,请联系管理员。
+
+### Edge
+
+请从 [Microsoft Edge 加载项](https://microsoftedge.microsoft.com/addons/detail/fgjocjmjjghflobobinafkbkeildanoj)安装 GitHub UI Translator。
+
+### Firefox
+
+需要 Firefox 142 或更高版本。
+
+请从 [Firefox 附加组件](https://addons.mozilla.org/firefox/addon/github-ui-translator/)安装 GitHub UI Translator。
+
+安装后,打开 `https://github.com/...` 等 GitHub 页面,支持的界面文本便会自动翻译成当前选择的语言。
+
+### 开发安装(直接从仓库加载)
+
+如果要自定义词典或参与开发,请克隆仓库并直接加载扩展。
+
+```sh
+git clone https://github.com/nobuo-miura/github-ui-translator.git
+```
+
+- **Chrome / Edge**:在 Chrome 中打开 `chrome://extensions`,或在 Edge 中打开 `edge://extensions`,启用开发者模式,点击“加载已解压的扩展程序”,然后选择包含 `manifest.json` 的克隆目录。
+- **Firefox**:打开 `about:debugging#/runtime/this-firefox`,点击“临时载入附加组件…”,然后选择仓库中的 `manifest.json`。临时附加组件会在 Firefox 重启后被移除,因此每次会话都需要重新加载。
+
+## 使用方法
+
+- 点击工具栏中的扩展图标,可以打开翻译开关和语言选择器。目前内置日语、简体中文、西班牙语、德语、巴西葡萄牙语、韩语、法语和俄语;添加新词典后,下拉列表也可继续扩展。
+- 更改翻译开关或语言后,已打开的 GitHub 标签页会重新加载,以应用新设置。
+- 弹出窗口还可设置是否翻译全局页眉,并提供本仓库的链接。修改此选项也会重新加载已打开的 GitHub 标签页。全局页眉翻译默认开启,并会等待 GitHub 的 React 水合完成;如果全局搜索无法打开,可关闭此选项。
+- 在扩展选项页面中,可以查看内置词典信息和扩展版本。Chrome 使用 `chrome://extensions`,Edge 使用 `edge://extensions`,Firefox 使用 `about:addons`。
+
+## 自定义词典
+
+直接编辑目标语言的词典文件即可添加或修改翻译,例如 `dictionaries/ja.json`、`dictionaries/zh-CN.json`、`dictionaries/es.json`、`dictionaries/de.json`、`dictionaries/pt-BR.json`、`dictionaries/ko.json`、`dictionaries/fr.json` 或 `dictionaries/ru.json`。
+词条按 GitHub 页面分组(如仓库导航、仓库设置和组织设置),每个分组前都有一行 `// ====` 注释,方便快速确认词条所属页面,并及时发现 GitHub 界面文本的变化。
+
+```jsonc
+{
+ "language": "ja",
+ "name": "日本語",
+ "translations": {
+ // ==== 仓库导航 ====
+ "Code": "コード",
+ "Issues": "イシュー"
+ }
+}
+```
+
+- 词典文件采用带有 `//` 行注释的 JSON(类似 JSONC)。仅支持整行注释,不支持在值后添加行尾注释。标准的 `JSON.parse` 和 `fetch().json()` 无法解析注释,因此扩展会先移除注释行再解析文件。
+- 词典键必须与原始英文文本**完全一致**。匹配可见文本和支持的属性值时,都会忽略首尾空白。仅对于可见文本,连续空白(包括换行)会折叠为一个空格。匹配 `aria-label`、`placeholder`、按钮 `value` 和 `data-disable-with` 等属性值时,会保留其内部空白。词典键本身不得包含首尾空白。
+- 编辑词典后,请重新加载扩展:Chrome 使用 `chrome://extensions`,Edge 使用 `edge://extensions`,Firefox 使用 `about:debugging`。
+
+### 添加新语言
+
+1. 按照相同格式添加 `dictionaries/.json`(例如 `dictionaries/en.json`)。
+2. 将 `{ "code": "", "name": "" }` 添加到 `languages.json`。弹出窗口和选项页面都会读取此共享列表。
+3. 运行 `node scripts/validate.mjs`,检查词典格式、重复键、元数据、内置词典之间的键一致性、自映射、翻译链以及不收敛的循环。
+
+弹出窗口、选项页面以及扩展元数据使用浏览器扩展的 `_locales` 机制,与 GitHub 翻译词典相互独立。如果还要为扩展自身的界面添加新语言,请创建 `_locales//messages.json`,并确保其消息键与 `_locales/en/messages.json` 一致。
+
+## 项目结构
+
+```text
+github-ui-translator/
+├─ manifest.json
+├─ shared.js # 共享语言列表和扩展界面本地化辅助函数
+├─ languages.json # 内置的 GitHub 翻译语言
+├─ content.js # 使用允许列表扫描 DOM 的翻译引擎
+├─ popup.html/js # 带有翻译开关的工具栏弹出窗口
+├─ options.html/js # 词典信息和版本显示
+├─ _locales/ # 本地化的弹出窗口、选项页面和扩展元数据消息
+├─ dictionaries/
+│ ├─ ja.json # 日语词典
+│ ├─ zh-CN.json # 简体中文词典
+│ ├─ es.json # 西班牙语词典
+│ ├─ de.json # 德语词典
+│ ├─ pt-BR.json # 巴西葡萄牙语词典
+│ ├─ ko.json # 韩语词典
+│ ├─ fr.json # 法语词典
+│ └─ ru.json # 俄语词典
+├─ docs/
+│ ├─ translation-scope.md # 英文版
+│ └─ translation-scope.ja.md # 日文版
+├─ scripts/
+│ └─ validate.mjs # 词典和本地化验证
+└─ icons/
+```
+
+## 许可证
+
+[MIT 许可证](./LICENSE)