diff --git a/README.md b/README.md index c499663e36635ffd1d94cef851190bbeb3ec923e..8bb4f803f07c427e951b4d2f341fbe6d4e69adc0 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,20 @@ build it with _meson_ and start Briar GTK. Don't forget to initialize the briar-wrapper submodule: `git submodule update --init` +### Internationalization + +Feel free to add translations to Briar GTK by opening a merge request with +updates to the language file of your choice in _briar_gtk/po_. Make sure +to add your name to the _translator_credits_ list in +_briar-gtk/data/ui/about_dialog.ui.in_. + +To test Briar GTK in your language, add the following entry to the +_finish-args_ list in _app.briar.gtk.json_: + +``` +--env=LC_ALL=de_DE.utf8 +``` + ## Design Goals * Intuitive UI, similar to Briar Android client diff --git a/briar-gtk/data/ui/about_dialog.ui.in b/briar-gtk/data/ui/about_dialog.ui.in index 43df4f516a9e26a1082fc7ace30e1c40d74af854..da6d13a45c8f9d8fe59b3dda133ab5f4a8bdd841 100644 --- a/briar-gtk/data/ui/about_dialog.ui.in +++ b/briar-gtk/data/ui/about_dialog.ui.in @@ -20,8 +20,8 @@ <property name="comments" translatable="yes">A Briar client for GTK desktop and mobile devices</property> <property name="website">@PACKAGE_URL@</property> <property name="website_label" translatable="yes">Visit Briar GTK website</property> - <property name="authors"> Nico Alt https://nico.dorfbrunnen.eu</property> - <property name="translator_credits" translatable="yes" context="Translation credits here, put your name here!" comments="Replace me with your names">Nico Alt https://nico.dorfbrunnen.eu</property> + <property name="authors">Nico Alt https://nico.dorfbrunnen.eu</property> + <property name="translator_credits">Nico Alt https://nico.dorfbrunnen.eu</property> <property name="logo_icon_name">app.briar.gtk</property> <property name="license_type">agpl-3-0-only</property> </object> diff --git a/briar-gtk/data/ui/add_contact.ui b/briar-gtk/data/ui/add_contact.ui index 5ef80c3d00d9833064c49433b3fc0860e5b7eabe..7ad5abee37d98fa4313a6f36606bd05367d4d882 100644 --- a/briar-gtk/data/ui/add_contact.ui +++ b/briar-gtk/data/ui/add_contact.ui @@ -152,7 +152,7 @@ <property name="can_focus">False</property> <property name="no_show_all">True</property> <property name="xalign">0</property> - <property name="label" translatable="yes" context="add contact">The alias may not be empty</property> + <property name="label" translatable="yes" context="add contact">Please enter a nickname</property> <property name="wrap">True</property> <property name="wrap_mode">PANGO_WRAP_WORD_CHAR</property> <style> diff --git a/briar-gtk/po/briar-gtk.pot b/briar-gtk/po/briar-gtk.pot index b4e7f935b873c7a9529a45d0dd646713a563f767..cf701ff05e1beb8cf1898f768d2bd375f0287101 100644 --- a/briar-gtk/po/briar-gtk.pot +++ b/briar-gtk/po/briar-gtk.pot @@ -8,7 +8,6 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-04 01:01+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -17,150 +16,124 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: ../data/app.briar.gtk.appdata.xml.in:7 msgid "Briar" msgstr "" -#: ../data/app.briar.gtk.appdata.xml.in:8 msgid "Secure messaging, anywhere" msgstr "" -#: ../data/app.briar.gtk.appdata.xml.in:11 -msgid "" -"Briar is a messaging app designed for activists, journalists, and anyone " -"else who needs a safe, easy and robust way to communicate. Unlike " -"traditional messaging apps, Briar doesn't rely on a central server - " -"messages are synchronized directly between the users' devices. If the " -"internet's down, Briar can sync via Bluetooth or Wi-Fi, keeping the " -"information flowing in a crisis. If the internet's up, Briar can sync via " -"the Tor network, protecting users and their relationships from surveillance." +msgid "Briar is a messaging app designed for activists, journalists, and anyone else who needs a safe, easy and robust way to communicate. Unlike traditional messaging apps, Briar doesn't rely on a central server - messages are synchronized directly between the users' devices. If the internet's down, Briar can sync via Bluetooth or Wi-Fi, keeping the information flowing in a crisis. If the internet's up, Briar can sync via the Tor network, protecting users and their relationships from surveillance." msgstr "" -#: ../data/app.briar.gtk.appdata.xml.in:33 msgid "Briar Community" msgstr "" -#: ../data/ui/add_contact.ui:29 +msgid "A Briar client for GTK desktop and mobile devices" +msgstr "" + +msgid "Visit Briar GTK website" +msgstr "" + msgctxt "add contact" msgid "Give this link to the contact you want to add" msgstr "" -#: ../data/ui/add_contact.ui:60 msgctxt "add contact" msgid "Enter the link from your contact here" msgstr "" -#: ../data/ui/add_contact.ui:79 msgctxt "add contact" msgid "Contact's link" msgstr "" -#: ../data/ui/add_contact.ui:92 msgctxt "add contact" msgid "Please enter a link" msgstr "" -#: ../data/ui/add_contact.ui:122 msgctxt "add contact" msgid "Give your contact a nickname. Only you can see it." msgstr "" -#: ../data/ui/add_contact.ui:142 msgctxt "add contact" msgid "Enter a nickname" msgstr "" -#: ../data/ui/add_contact.ui:155 msgctxt "add contact" -msgid "The alias may not be empty" +msgid "Please enter a nickname" msgstr "" -#: ../data/ui/add_contact.ui:207 ../data/ui/registration.ui:233 msgid "Next" msgstr "" -#: ../data/ui/add_contact.ui:227 ../data/ui/add_contact.ui:249 msgid "Add contact" msgstr "" -#: ../data/ui/login.ui:29 ../data/ui/registration.ui:110 -#: ../data/ui/registration.ui:253 msgid "Password" msgstr "" -#: ../data/ui/login.ui:63 msgid "Couldn't log in" msgstr "" -#: ../data/ui/login.ui:118 msgid "Log in" msgstr "" -#: ../data/ui/login.ui:139 msgid "Logging in" msgstr "" -#: ../data/ui/main.ui:121 +msgid "About Briar GTK" +msgstr "" + msgctxt "chat page: input field" msgid "Type Message" msgstr "" -#: ../data/ui/main.ui:167 msgid "No contact selected" msgstr "" -#: ../data/ui/main.ui:182 msgid "Select a contact to start chatting" msgstr "" -#: ../data/ui/main.ui:248 -msgid "Add" +msgid "Main menu" msgstr "" -#: ../data/ui/main.ui:302 ../data/ui/main.ui:400 ../data/ui/main.ui:415 msgid "Back" msgstr "" -#: ../data/ui/registration.ui:40 msgid "Welcome to Briar" msgstr "" -#: ../data/ui/registration.ui:68 msgid "Choose your nickname" msgstr "" -#: ../data/ui/registration.ui:82 msgid "The nickname may not be empty." msgstr "" -#: ../data/ui/registration.ui:129 msgid "Confirm Password" msgstr "" -#: ../data/ui/registration.ui:177 -msgid "The passwords do not match" -msgstr "" - -#: ../data/ui/registration.ui:275 msgid "Create Account" msgstr "" -#: ../data/ui/registration.ui:296 msgid "Creating Account" msgstr "" -#: ../briar_gtk/containers/add_contact.py:68 -msgid "Please enter a link" +msgid "Using code by" msgstr "" -#: ../briar_gtk/containers/add_contact.py:74 -msgid "Enter your contact's link, not your own" +msgid "Briar functionality by" +msgstr "" + +msgid "The passwords do not match" msgstr "" -#: ../briar_gtk/containers/registration.py:137 msgid "Couldn't register account" msgstr "" -#: ../briar_gtk/widgets/private_message.py:26 +msgid "Please enter a link" +msgstr "" + +msgid "Enter your contact's link, not your own" +msgstr "" + msgid "Myself" msgstr "" diff --git a/briar-gtk/po/de.po b/briar-gtk/po/de.po index d958447ae16b0bf7b05bf13181a4a638b9dd7b63..5fd9cdd1c764ef52549b3ec0333a328d47ca51c7 100644 --- a/briar-gtk/po/de.po +++ b/briar-gtk/po/de.po @@ -1,186 +1,129 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-04 01:01+0100\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../data/app.briar.gtk.appdata.xml.in:7 msgid "Briar" -msgstr "" +msgstr "Briar" -#: ../data/app.briar.gtk.appdata.xml.in:8 msgid "Secure messaging, anywhere" msgstr "" -#: ../data/app.briar.gtk.appdata.xml.in:11 -msgid "" -"Briar is a messaging app designed for activists, journalists, and anyone " -"else who needs a safe, easy and robust way to communicate. Unlike " -"traditional messaging apps, Briar doesn't rely on a central server - " -"messages are synchronized directly between the users' devices. If the " -"internet's down, Briar can sync via Bluetooth or Wi-Fi, keeping the " -"information flowing in a crisis. If the internet's up, Briar can sync via " -"the Tor network, protecting users and their relationships from surveillance." +msgid "Briar is a messaging app designed for activists, journalists, and anyone else who needs a safe, easy and robust way to communicate. Unlike traditional messaging apps, Briar doesn't rely on a central server - messages are synchronized directly between the users' devices. If the internet's down, Briar can sync via Bluetooth or Wi-Fi, keeping the information flowing in a crisis. If the internet's up, Briar can sync via the Tor network, protecting users and their relationships from surveillance." msgstr "" -#: ../data/app.briar.gtk.appdata.xml.in:33 msgid "Briar Community" -msgstr "" +msgstr "Briar-Community" + +msgid "A Briar client for GTK desktop and mobile devices" +msgstr "Briar-App für GTK-Desktop und Mobilgeräte" + +msgid "Visit Briar GTK website" +msgstr "Besuche die Webseite von Briar GTK" -#: ../data/ui/add_contact.ui:29 msgctxt "add contact" msgid "Give this link to the contact you want to add" -msgstr "" +msgstr "Gib diesen Link dem Kontakt, den du hinzufügen möchtest" -#: ../data/ui/add_contact.ui:60 msgctxt "add contact" msgid "Enter the link from your contact here" -msgstr "" +msgstr "Füge hier den Link des Kontakts ein, den du hinzufügen möchtest" -#: ../data/ui/add_contact.ui:79 msgctxt "add contact" msgid "Contact's link" -msgstr "" +msgstr "Kontakt-Link" -#: ../data/ui/add_contact.ui:92 msgctxt "add contact" msgid "Please enter a link" -msgstr "" +msgstr "Bitte gib einen Link ein" -#: ../data/ui/add_contact.ui:122 msgctxt "add contact" msgid "Give your contact a nickname. Only you can see it." -msgstr "" +msgstr "Gib deinem Kontakt einen Spitznamen. Nur du kannst ihn sehen." -#: ../data/ui/add_contact.ui:142 msgctxt "add contact" msgid "Enter a nickname" -msgstr "" +msgstr "Gib einen Spitznamen ein" -#: ../data/ui/add_contact.ui:155 msgctxt "add contact" -msgid "The alias may not be empty" -msgstr "" +msgid "Please enter a nickname" +msgstr "Bitte gib einen Spitznamen ein" -#: ../data/ui/add_contact.ui:207 ../data/ui/registration.ui:233 msgid "Next" msgstr "Weiter" -#: ../data/ui/add_contact.ui:227 ../data/ui/add_contact.ui:249 msgid "Add contact" -msgstr "" +msgstr "Kontak hinzufügen" -#: ../data/ui/login.ui:29 ../data/ui/registration.ui:110 -#: ../data/ui/registration.ui:253 msgid "Password" msgstr "Passwort" -#: ../data/ui/login.ui:63 msgid "Couldn't log in" -msgstr "" +msgstr "Anmeldung fehlgeschlagen" -#: ../data/ui/login.ui:118 msgid "Log in" -msgstr "" +msgstr "Anmelden" -#: ../data/ui/login.ui:139 msgid "Logging in" -msgstr "" +msgstr "Anmeldung" + +msgid "About Briar GTK" +msgstr "Über Briar GTK" -#: ../data/ui/main.ui:121 msgctxt "chat page: input field" msgid "Type Message" msgstr "Nachricht eingeben" -#: ../data/ui/main.ui:167 msgid "No contact selected" -msgstr "" +msgstr "Kein Kontakt ausgewählt" -#: ../data/ui/main.ui:182 msgid "Select a contact to start chatting" -msgstr "" +msgstr "Wähle einen Kontakt aus, um mit dem Chatten zu beginnen" -#: ../data/ui/main.ui:248 -msgid "Add" -msgstr "" +msgid "Main menu" +msgstr "Hauptmenü" -#: ../data/ui/main.ui:302 ../data/ui/main.ui:400 ../data/ui/main.ui:415 msgid "Back" -msgstr "" +msgstr "Zurück" -#: ../data/ui/registration.ui:40 msgid "Welcome to Briar" msgstr "Willkommen bei Briar" -#: ../data/ui/registration.ui:68 msgid "Choose your nickname" msgstr "Wähle deinen Benutzernamen aus" -#: ../data/ui/registration.ui:82 msgid "The nickname may not be empty." -msgstr "Der Benutzername darf nicht leer sein." +msgstr "Der Benutzername darf nicht leer sein" -#: ../data/ui/registration.ui:129 msgid "Confirm Password" msgstr "Passwort bestätigen" -#: ../data/ui/registration.ui:177 -msgid "The passwords do not match" -msgstr "Die Passwörter stimmen nicht überein" - -#: ../data/ui/registration.ui:275 msgid "Create Account" msgstr "Account erstellen" -#: ../data/ui/registration.ui:296 msgid "Creating Account" msgstr "Erstelle Account" -#: ../briar_gtk/containers/add_contact.py:68 -msgid "Please enter a link" -msgstr "" +msgid "Using code by" +msgstr "Benutzt Code von" -#: ../briar_gtk/containers/add_contact.py:74 -msgid "Enter your contact's link, not your own" -msgstr "" +msgid "Briar functionality by" +msgstr "Briar-Funktionalität von" -#: ../briar_gtk/containers/registration.py:137 -msgid "Couldn't register account" -msgstr "" - -#: ../briar_gtk/widgets/private_message.py:26 -msgid "Myself" -msgstr "" - -#~ msgid "Passwords" -#~ msgstr "Passwörter" - -#~ msgctxt "login page: button" -#~ msgid "Sign in" -#~ msgstr "Login" - -#~ msgctxt "registration page: password input field" -#~ msgid "Choose your password" -#~ msgstr "Wähle Dein Passwort" - -#~ msgctxt "registration page: password input field" -#~ msgid "Confirm your password" -#~ msgstr "Bestätige Dein Passwort" +msgid "The passwords do not match" +msgstr "Die Passwörter stimmen nicht überein" -#~ msgctxt "registration page: button" -#~ msgid "Create Account" -#~ msgstr "Account erstellen" +msgid "Couldn't register account" +msgstr "Registrierung fehlgeschlagen" -#~ msgid "Nickname" -#~ msgstr "Nutzername" +msgid "Please enter a link" +msgstr "Bitte gib einen Link ein" -#~ msgctxt "registration page: input field" -#~ msgid "Choose your nickname" -#~ msgstr "Wähle Deinen Benutzernamen" +msgid "Enter your contact's link, not your own" +msgstr "Gib den Link deines Kontakts ein, nicht deinen eigenen" -#~ msgctxt "registration page: button – from username to passwords" -#~ msgid "Next" -#~ msgstr "Weiter" +msgid "Myself" +msgstr "Ich" diff --git a/briar-gtk/po/es.po b/briar-gtk/po/es.po index 0f9a35825f3df25a90011f2fa2a6b09f843a2544..eee7d5780ee41dba1369e2ac59a863d97b86bd11 100644 --- a/briar-gtk/po/es.po +++ b/briar-gtk/po/es.po @@ -1,179 +1,129 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-02-04 01:01+0100\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../data/app.briar.gtk.appdata.xml.in:7 msgid "Briar" msgstr "" -#: ../data/app.briar.gtk.appdata.xml.in:8 msgid "Secure messaging, anywhere" msgstr "" -#: ../data/app.briar.gtk.appdata.xml.in:11 -msgid "" -"Briar is a messaging app designed for activists, journalists, and anyone " -"else who needs a safe, easy and robust way to communicate. Unlike " -"traditional messaging apps, Briar doesn't rely on a central server - " -"messages are synchronized directly between the users' devices. If the " -"internet's down, Briar can sync via Bluetooth or Wi-Fi, keeping the " -"information flowing in a crisis. If the internet's up, Briar can sync via " -"the Tor network, protecting users and their relationships from surveillance." +msgid "Briar is a messaging app designed for activists, journalists, and anyone else who needs a safe, easy and robust way to communicate. Unlike traditional messaging apps, Briar doesn't rely on a central server - messages are synchronized directly between the users' devices. If the internet's down, Briar can sync via Bluetooth or Wi-Fi, keeping the information flowing in a crisis. If the internet's up, Briar can sync via the Tor network, protecting users and their relationships from surveillance." msgstr "" -#: ../data/app.briar.gtk.appdata.xml.in:33 msgid "Briar Community" msgstr "" -#: ../data/ui/add_contact.ui:29 +msgid "A Briar client for GTK desktop and mobile devices" +msgstr "" + +msgid "Visit Briar GTK website" +msgstr "" + msgctxt "add contact" msgid "Give this link to the contact you want to add" msgstr "" -#: ../data/ui/add_contact.ui:60 msgctxt "add contact" msgid "Enter the link from your contact here" msgstr "" -#: ../data/ui/add_contact.ui:79 msgctxt "add contact" msgid "Contact's link" msgstr "" -#: ../data/ui/add_contact.ui:92 msgctxt "add contact" msgid "Please enter a link" msgstr "" -#: ../data/ui/add_contact.ui:122 msgctxt "add contact" msgid "Give your contact a nickname. Only you can see it." msgstr "" -#: ../data/ui/add_contact.ui:142 msgctxt "add contact" msgid "Enter a nickname" msgstr "" -#: ../data/ui/add_contact.ui:155 msgctxt "add contact" -msgid "The alias may not be empty" +msgid "Please enter a nickname" msgstr "" -#: ../data/ui/add_contact.ui:207 ../data/ui/registration.ui:233 msgid "Next" msgstr "" -#: ../data/ui/add_contact.ui:227 ../data/ui/add_contact.ui:249 msgid "Add contact" msgstr "" -#: ../data/ui/login.ui:29 ../data/ui/registration.ui:110 -#: ../data/ui/registration.ui:253 msgid "Password" msgstr "Contraseña" -#: ../data/ui/login.ui:63 msgid "Couldn't log in" msgstr "" -#: ../data/ui/login.ui:118 msgid "Log in" msgstr "" -#: ../data/ui/login.ui:139 msgid "Logging in" msgstr "" -#: ../data/ui/main.ui:121 +msgid "About Briar GTK" +msgstr "" + msgctxt "chat page: input field" msgid "Type Message" msgstr "" -#: ../data/ui/main.ui:167 msgid "No contact selected" msgstr "" -#: ../data/ui/main.ui:182 msgid "Select a contact to start chatting" msgstr "" -#: ../data/ui/main.ui:248 -msgid "Add" +msgid "Main menu" msgstr "" -#: ../data/ui/main.ui:302 ../data/ui/main.ui:400 ../data/ui/main.ui:415 msgid "Back" msgstr "" -#: ../data/ui/registration.ui:40 msgid "Welcome to Briar" msgstr "" -#: ../data/ui/registration.ui:68 msgid "Choose your nickname" msgstr "" -#: ../data/ui/registration.ui:82 msgid "The nickname may not be empty." msgstr "" -#: ../data/ui/registration.ui:129 msgid "Confirm Password" msgstr "" -#: ../data/ui/registration.ui:177 -msgid "The passwords do not match" -msgstr "" - -#: ../data/ui/registration.ui:275 msgid "Create Account" msgstr "" -#: ../data/ui/registration.ui:296 msgid "Creating Account" msgstr "" -#: ../briar_gtk/containers/add_contact.py:68 -msgid "Please enter a link" +msgid "Using code by" msgstr "" -#: ../briar_gtk/containers/add_contact.py:74 -msgid "Enter your contact's link, not your own" +msgid "Briar functionality by" msgstr "" -#: ../briar_gtk/containers/registration.py:137 -msgid "Couldn't register account" +msgid "The passwords do not match" msgstr "" -#: ../briar_gtk/widgets/private_message.py:26 -msgid "Myself" +msgid "Couldn't register account" msgstr "" -#~ msgctxt "registration page: password input field" -#~ msgid "Choose your password" -#~ msgstr "Elegir tu contraseña" - -#~ msgctxt "registration page: password input field" -#~ msgid "Confirm your password" -#~ msgstr "Confirmar tu contraseña" - -#~ msgctxt "registration page: button" -#~ msgid "Create Account" -#~ msgstr "Crear cuenta" - -#~ msgid "Nickname" -#~ msgstr "Nombre" +msgid "Please enter a link" +msgstr "" -#~ msgctxt "registration page: input field" -#~ msgid "Choose your nickname" -#~ msgstr "Elegir tu nombre" +msgid "Enter your contact's link, not your own" +msgstr "" -#~ msgctxt "registration page: button – from username to passwords" -#~ msgid "Next" -#~ msgstr "Seguir" +msgid "Myself" +msgstr "" diff --git a/tools/generate_data.sh b/tools/generate_data.sh index 883f151ff163ac7701379abaeee755e136215f98..955ec032966f579ae6db25007b148616cf632e57 100755 --- a/tools/generate_data.sh +++ b/tools/generate_data.sh @@ -32,18 +32,20 @@ function generate_po() cd briar-gtk/po # git pull https://www.transifex.com/otf/briar/ >briar-gtk.pot - for file in ../data/app.briar.gtk.appdata.xml.in ../data/ui/*.ui $(find "../briar_gtk" -name '*.py'); + for file in ../data/app.briar.gtk.appdata.xml.in ../data/ui/about_dialog.ui.in ../data/ui/*.ui $(find "../briar_gtk" -name '*.py'); do - xgettext --from-code=UTF-8 -j $file -o briar-gtk.pot + xgettext --from-code=UTF-8 --no-location --no-wrap -j $file -o briar-gtk.pot done >LINGUAS for po in *.po do - msgmerge -N $po briar-gtk.pot > /tmp/$$language_new.po + msgmerge --no-wrap -N $po briar-gtk.pot > /tmp/$$language_new.po mv /tmp/$$language_new.po $po language=${po%.po} echo $language >>LINGUAS done + sed -i -e '/^"POT-Creation-Date: /d' briar-gtk.pot + sed -i -e '/^"POT-Creation-Date: /d' *.po } generate_resource > briar-gtk/data/ui/app.briar.gtk.gresource.xml