Added german, french, spanish and dutch locale (Dutch has been verified)
Build LinkLog Development Image / development-image (push) Successful in 8s

This commit is contained in:
2026-08-26 12:16:55 +02:00
parent 3fdf146498
commit 158bc64268
9 changed files with 192 additions and 1 deletions
+1 -1
View File
@@ -14,7 +14,7 @@ XPI_FILE := LinkLog-$(EXTENSION_VERSION).xpi
XPI_UNSIGNED_DIR := XPI/unsigned
XPI_SIGNED_DIR := XPI/signed
XPI_OUTPUT := $(XPI_UNSIGNED_DIR)/$(XPI_FILE)
EXTENSION_FILES := manifest.json logo.svg icon-16.png icon-32.png icon-48.png icon-96.png options.css options.html options.js popup.css popup.html popup.js l10n.js _locales/en-US/messages.json
EXTENSION_FILES := manifest.json logo.svg icon-16.png icon-32.png icon-48.png icon-96.png options.css options.html options.js popup.css popup.html popup.js l10n.js _locales/en-US/messages.json _locales/es/messages.json _locales/de/messages.json _locales/fr/messages.json _locales/nl/messages.json
EXTENSION_SOURCES := $(addprefix webextension/,$(EXTENSION_FILES))
XPI_VALIDATOR := scripts/release/validate_xpi.py
+6
View File
@@ -240,6 +240,12 @@ Localize the firefox plugin.
### Assistant outcome
Added Firefox `browser.i18n` support with an `en-US` message catalog, localized popup and settings page labels and runtime messages, localized manifest metadata, and included the localization resources in XPI packaging and validation.
### User
Create a Spanish, German, French and Dutch locale.
### Assistant outcome
Added complete Spanish (`es`), German (`de`), French (`fr`), and Dutch (`nl`) Firefox locale catalogs and updated XPI packaging and validation to include all four locales.
### User
Show the avatar with each entry on the home page. On the specific /<user>/ page don't show the avatar and user name with each entry
+1
View File
@@ -126,6 +126,7 @@
117. Continue to log interactions to the VIBE directory.
118. On the home page, when clicking on the avatar or the user, show the profile information.
119. Localize the firefox plugin.
120. Create a spanish, german, french and dutch locale.
## Future entries
Binary file not shown.
+4
View File
@@ -22,6 +22,10 @@ REQUIRED_FILES = {
'popup.js',
'l10n.js',
'_locales/en-US/messages.json',
'_locales/es/messages.json',
'_locales/de/messages.json',
'_locales/fr/messages.json',
'_locales/nl/messages.json',
}
+45
View File
@@ -0,0 +1,45 @@
{
"extensionName": {"message": "LinkLog"},
"extensionDescription": {"message": "Webseiten-Links erfassen und an LinkLog senden."},
"settingsTitle": {"message": "LinkLog-Einstellungen"},
"titleLabel": {"message": "Titel"},
"urlLabel": {"message": "URL"},
"commentLabel": {"message": "Kommentar"},
"commentPlaceholder": {"message": "Dein Kommentar"},
"tagsLabel": {"message": "Tags"},
"loadingTags": {"message": "Tags werden geladen..."},
"newTagsPlaceholder": {"message": "#neuer-tag, #anderer-tag"},
"saveLink": {"message": "Link speichern"},
"settings": {"message": "Einstellungen"},
"signOut": {"message": "Abmelden"},
"backendUrlLabel": {"message": "Backend-URL"},
"usernameLabel": {"message": "Benutzername"},
"usernamePlaceholder": {"message": "alice"},
"passwordLabel": {"message": "Passwort"},
"saveAndLogIn": {"message": "Speichern und anmelden"},
"thisPlugin": {"message": "Dieses Add-on"},
"pluginDescription": {"message": "Dieses Add-on protokolliert Links auf einem LinkLog-Server, der sie auf einer Website und je nach Konfiguration der Add-ons möglicherweise auch in einem Fediverse-Dienst oder an anderen Orten veröffentlicht."},
"accountRequirement": {"message": "Nutzer dieses Add-ons benötigen ein Konto auf einem LinkLog-Server"},
"privacy": {"message": "Datenschutz"},
"privacyDescription": {"message": "Dieses Add-on respektiert deine Privatsphäre und erhebt keine personenbezogenen Daten über das hinaus, was zum Protokollieren von Links auf deinem LinkLog-Server erforderlich ist."},
"storedData": {"message": "Die URL, nach einem bestmöglichen Versuch, Tracking-Parameter zu entfernen, der Seitentitel, ein möglicher Kommentar und der Besuchszeitpunkt werden auf dem Server gespeichert und zusammen mit dem dort registrierten Nutzerprofil veröffentlicht."},
"backendHeading": {"message": "LinkLog-Backend"},
"backendDescription": {"message": "Die Backend-URL gehört zu einer selbst gehosteten LinkLog-Anwendung. Ihr"},
"backendSource": {"message": "Quellcode ist im Repository verfügbar."},
"copyright": {"message": "Copyright © 2026 Olaf Kolkman"},
"repository": {"message": "Repository"},
"signInToSelectTags": {"message": "Melde dich an, um vorhandene Tags auszuwählen."},
"loadTagsFailed": {"message": "Vorhandene Tags konnten nicht geladen werden."},
"submitting": {"message": "Wird gesendet..."},
"configureAndLogIn": {"message": "Konfiguriere die Backend-URL und melde dich zuerst an."},
"sessionExpired": {"message": "Sitzung abgelaufen. Authentifiziere dich in den Einstellungen erneut."},
"submissionFailed": {"message": "Senden fehlgeschlagen"},
"linkSaved": {"message": "Link erfolgreich gespeichert"},
"submissionFailedConnection": {"message": "Senden fehlgeschlagen. Überprüfe die Verbindung zum Backend."},
"loggedInAt": {"message": "$USERNAME$ ist bei $BACKEND$ angemeldet", "placeholders": {"username": {"content": "$1"}, "backend": {"content": "$2"}}},
"fillAllFields": {"message": "Fülle alle Felder aus"},
"loginFailed": {"message": "Anmeldung fehlgeschlagen"},
"loggedInSuccessfully": {"message": "Erfolgreich angemeldet"},
"unableToLogIn": {"message": "Anmeldung nicht möglich. Überprüfe Backend-URL und Zugangsdaten."},
"signedOut": {"message": "Abgemeldet"}
}
+45
View File
@@ -0,0 +1,45 @@
{
"extensionName": {"message": "LinkLog"},
"extensionDescription": {"message": "Captura y envía enlaces de páginas a LinkLog."},
"settingsTitle": {"message": "Configuración de LinkLog"},
"titleLabel": {"message": "Título"},
"urlLabel": {"message": "URL"},
"commentLabel": {"message": "Comentario"},
"commentPlaceholder": {"message": "Tu comentario"},
"tagsLabel": {"message": "Etiquetas"},
"loadingTags": {"message": "Cargando etiquetas..."},
"newTagsPlaceholder": {"message": "#nueva-etiqueta, #otra-etiqueta"},
"saveLink": {"message": "Guardar enlace"},
"settings": {"message": "Configuración"},
"signOut": {"message": "Cerrar sesión"},
"backendUrlLabel": {"message": "URL del servidor"},
"usernameLabel": {"message": "Nombre de usuario"},
"usernamePlaceholder": {"message": "alice"},
"passwordLabel": {"message": "Contraseña"},
"saveAndLogIn": {"message": "Guardar e iniciar sesión"},
"thisPlugin": {"message": "Este complemento"},
"pluginDescription": {"message": "Este complemento registra enlaces en un servidor LinkLog, que los publicará en un sitio web y posiblemente en un servicio fediverso u otros destinos, según los complementos configurados."},
"accountRequirement": {"message": "Los usuarios de este complemento necesitan una cuenta en un servidor LinkLog"},
"privacy": {"message": "Privacidad"},
"privacyDescription": {"message": "Este complemento respeta tu privacidad y no recopila datos personales más allá de lo necesario para registrar enlaces en tu servidor LinkLog."},
"storedData": {"message": "La URL, tras intentar eliminar los parámetros de seguimiento, el título de la página, un posible comentario y la hora de visita se guardarán en el servidor y se harán públicos junto con el perfil del usuario registrado en el servidor."},
"backendHeading": {"message": "Servidor LinkLog"},
"backendDescription": {"message": "La URL del servidor es una aplicación LinkLog autoalojada. Consulta su"},
"backendSource": {"message": "para ver el código fuente."},
"copyright": {"message": "Copyright © 2026 Olaf Kolkman"},
"repository": {"message": "Repositorio"},
"signInToSelectTags": {"message": "Inicia sesión para seleccionar etiquetas existentes."},
"loadTagsFailed": {"message": "No se pudieron cargar las etiquetas existentes."},
"submitting": {"message": "Enviando..."},
"configureAndLogIn": {"message": "Configura la URL del servidor e inicia sesión primero."},
"sessionExpired": {"message": "La sesión ha caducado. Vuelve a autenticarte en la configuración."},
"submissionFailed": {"message": "Error al enviar"},
"linkSaved": {"message": "Enlace guardado correctamente"},
"submissionFailedConnection": {"message": "Error al enviar. Comprueba la conexión con el servidor."},
"loggedInAt": {"message": "$USERNAME$ ha iniciado sesión en $BACKEND$", "placeholders": {"username": {"content": "$1"}, "backend": {"content": "$2"}}},
"fillAllFields": {"message": "Rellena todos los campos"},
"loginFailed": {"message": "Error de inicio de sesión"},
"loggedInSuccessfully": {"message": "Sesión iniciada correctamente"},
"unableToLogIn": {"message": "No se pudo iniciar sesión. Comprueba la URL y las credenciales."},
"signedOut": {"message": "Sesión cerrada"}
}
+45
View File
@@ -0,0 +1,45 @@
{
"extensionName": {"message": "LinkLog"},
"extensionDescription": {"message": "Capturer et envoyer des liens de pages à LinkLog."},
"settingsTitle": {"message": "Paramètres de LinkLog"},
"titleLabel": {"message": "Titre"},
"urlLabel": {"message": "URL"},
"commentLabel": {"message": "Commentaire"},
"commentPlaceholder": {"message": "Votre commentaire"},
"tagsLabel": {"message": "Étiquettes"},
"loadingTags": {"message": "Chargement des étiquettes..."},
"newTagsPlaceholder": {"message": "#nouvelle-étiquette, #autre-étiquette"},
"saveLink": {"message": "Enregistrer le lien"},
"settings": {"message": "Paramètres"},
"signOut": {"message": "Se déconnecter"},
"backendUrlLabel": {"message": "URL du serveur"},
"usernameLabel": {"message": "Nom dutilisateur"},
"usernamePlaceholder": {"message": "alice"},
"passwordLabel": {"message": "Mot de passe"},
"saveAndLogIn": {"message": "Enregistrer et se connecter"},
"thisPlugin": {"message": "Cette extension"},
"pluginDescription": {"message": "Cette extension enregistre les liens sur un serveur LinkLog, qui les publiera sur un site web et éventuellement sur un service du fédivers ou ailleurs, selon les extensions configurées."},
"accountRequirement": {"message": "Les utilisateurs de cette extension doivent avoir un compte sur un serveur LinkLog"},
"privacy": {"message": "Confidentialité"},
"privacyDescription": {"message": "Cette extension respecte votre vie privée et ne recueille aucune donnée personnelle au-delà de ce qui est nécessaire pour enregistrer des liens sur votre serveur LinkLog."},
"storedData": {"message": "LURL, après une tentative de suppression des paramètres de suivi, le titre de la page, un éventuel commentaire et lheure de la visite seront enregistrés sur le serveur et rendus publics avec le profil de lutilisateur qui y est inscrit."},
"backendHeading": {"message": "Serveur LinkLog"},
"backendDescription": {"message": "LURL du serveur correspond à une application LinkLog auto-hébergée. Consultez son"},
"backendSource": {"message": "pour voir le code source."},
"copyright": {"message": "Copyright © 2026 Olaf Kolkman"},
"repository": {"message": "Dépôt"},
"signInToSelectTags": {"message": "Connectez-vous pour sélectionner des étiquettes existantes."},
"loadTagsFailed": {"message": "Impossible de charger les étiquettes existantes."},
"submitting": {"message": "Envoi..."},
"configureAndLogIn": {"message": "Configurez lURL du serveur et connectez-vous dabord."},
"sessionExpired": {"message": "Session expirée. Reconnectez-vous dans les paramètres."},
"submissionFailed": {"message": "Échec de lenvoi"},
"linkSaved": {"message": "Lien enregistré"},
"submissionFailedConnection": {"message": "Échec de lenvoi. Vérifiez la connexion au serveur."},
"loggedInAt": {"message": "$USERNAME$ est connecté à $BACKEND$", "placeholders": {"username": {"content": "$1"}, "backend": {"content": "$2"}}},
"fillAllFields": {"message": "Veuillez remplir tous les champs"},
"loginFailed": {"message": "Échec de la connexion"},
"loggedInSuccessfully": {"message": "Connexion réussie"},
"unableToLogIn": {"message": "Connexion impossible. Vérifiez lURL du serveur et vos identifiants."},
"signedOut": {"message": "Déconnecté"}
}
+45
View File
@@ -0,0 +1,45 @@
{
"extensionName": {"message": "LinkLog"},
"extensionDescription": {"message": "Paginakoppelingen vastleggen en naar LinkLog verzenden."},
"settingsTitle": {"message": "LinkLog-instellingen"},
"titleLabel": {"message": "Titel"},
"urlLabel": {"message": "URL"},
"commentLabel": {"message": "Opmerking"},
"commentPlaceholder": {"message": "Je opmerking"},
"tagsLabel": {"message": "Tags"},
"loadingTags": {"message": "Tags worden geladen..."},
"newTagsPlaceholder": {"message": "#nieuwe-tag, #andere-tag"},
"saveLink": {"message": "Koppeling opslaan"},
"settings": {"message": "Instellingen"},
"signOut": {"message": "Uitloggen"},
"backendUrlLabel": {"message": "Backend-URL"},
"usernameLabel": {"message": "Gebruikersnaam"},
"usernamePlaceholder": {"message": "alice"},
"passwordLabel": {"message": "Wachtwoord"},
"saveAndLogIn": {"message": "Opslaan en inloggen"},
"thisPlugin": {"message": "Deze plug-in"},
"pluginDescription": {"message": "Deze plug-in legt koppelingen vast op een LinkLog-server, die ze publiceert op een website en mogelijk op een fediverse-dienst of andere locaties, afhankelijk van de geconfigureerde plug-ins."},
"accountRequirement": {"message": "Gebruikers van deze plug-in hebben een account op een LinkLog-server nodig"},
"privacy": {"message": "Privacy"},
"privacyDescription": {"message": "Deze plug-in respecteert je privacy en verzamelt geen persoonsgegevens buiten wat nodig is om koppelingen op je LinkLog-server vast te leggen."},
"storedData": {"message": "De URL, na een poging om trackingparameters te verwijderen, de paginatitel, een eventuele opmerking en het tijdstip van bezoek worden op de backendserver opgeslagen en samen met het profiel van de geregistreerde gebruiker openbaar gemaakt."},
"backendHeading": {"message": "LinkLog-backend"},
"backendDescription": {"message": "De backend-URL is een zelfgehoste LinkLog-toepassing. Bekijk de"},
"backendSource": {"message": "voor de broncode."},
"copyright": {"message": "Copyright © 2026 Olaf Kolkman"},
"repository": {"message": "Repository"},
"signInToSelectTags": {"message": "Log in om bestaande tags te selecteren."},
"loadTagsFailed": {"message": "Bestaande tags konden niet worden geladen."},
"submitting": {"message": "Verzenden..."},
"configureAndLogIn": {"message": "Configureer de backend-URL en log eerst in."},
"sessionExpired": {"message": "Sessie verlopen. Verifieer opnieuw in de instellingen."},
"submissionFailed": {"message": "Verzenden mislukt"},
"linkSaved": {"message": "Koppeling opgeslagen"},
"submissionFailedConnection": {"message": "Verzenden mislukt. Controleer de verbinding met de backend."},
"loggedInAt": {"message": "$USERNAME$ is ingelogd op $BACKEND$", "placeholders": {"username": {"content": "$1"}, "backend": {"content": "$2"}}},
"fillAllFields": {"message": "Vul alle velden in"},
"loginFailed": {"message": "Inloggen mislukt"},
"loggedInSuccessfully": {"message": "Succesvol ingelogd"},
"unableToLogIn": {"message": "Inloggen mislukt. Controleer de backend-URL en inloggegevens."},
"signedOut": {"message": "Uitgelogd"}
}