messenger-gtk

Gtk+3 graphical user interfaces for GNUnet Messenger
Log | Files | Refs | Submodules | README | LICENSE

commit 0d20581183a04172ad3d10e75affd4fe37917617
parent 55d0af93d5c78c9e4ac8e3566a166694f86ecad7
Author: Jacki <jacki@thejackimonster.de>
Date:   Tue,  2 Apr 2024 02:33:21 +0200

Add first localization

Signed-off-by: Jacki <jacki@thejackimonster.de>

Diffstat:
Mmeson.build | 2++
Apo/LINGUAS | 3+++
Apo/POTFILES | 100+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apo/de.po | 447+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apo/en.po | 465+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apo/meson.build | 29+++++++++++++++++++++++++++++
Apo/messenger-gtk.pot | 462+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mresources/css/style.css | 21++++++++++++++++++++-
Mresources/ui/new_tag.ui | 1+
Msrc/application.c | 5+++++
Msrc/file.c | 5++++-
Msrc/ui.c | 19+++++++++++++++++++
Msrc/ui.h | 10++++++++++
Msrc/ui/about.c | 3++-
Msrc/ui/account_entry.c | 2+-
Msrc/ui/accounts.c | 3++-
Msrc/ui/chat.c | 2+-
Msrc/ui/chat_entry.c | 2+-
Msrc/ui/contact_entry.c | 2+-
Msrc/ui/contact_info.c | 2+-
Msrc/ui/contacts.c | 3++-
Msrc/ui/delete_messages.c | 3++-
Msrc/ui/file_entry.c | 2+-
Msrc/ui/file_load_entry.c | 3++-
Msrc/ui/invite_contact.c | 3++-
Msrc/ui/media_preview.c | 3++-
Msrc/ui/message.c | 4++--
Msrc/ui/messenger.c | 2+-
Msrc/ui/new_account.c | 3++-
Msrc/ui/new_contact.c | 3++-
Msrc/ui/new_group.c | 3++-
Msrc/ui/new_lobby.c | 3++-
Msrc/ui/new_platform.c | 3++-
Msrc/ui/new_tag.c | 2+-
Msrc/ui/picker.c | 3++-
Msrc/ui/play_media.c | 2+-
Msrc/ui/send_file.c | 3++-
Msrc/ui/settings.c | 3++-
Msrc/ui/tag.c | 2+-
Msrc/util.h | 10+++++-----
40 files changed, 1614 insertions(+), 34 deletions(-)

diff --git a/meson.build b/meson.build @@ -51,6 +51,7 @@ messenger_gtk_deps = [ ] messenger_gtk_args = [ + '-DENABLE_NLS=1', '-DMESSENGER_APPLICATION_BINARY="@0@"'.format(meson.project_name()), '-DMESSENGER_APPLICATION_ID="@0@"'.format(messenger_gtk_id), '-DMESSENGER_APPLICATION_VERSION="@0@"'.format(meson.project_version()), @@ -67,6 +68,7 @@ else ] endif +subdir('po') subdir('resources') subdir('src') diff --git a/po/LINGUAS b/po/LINGUAS @@ -0,0 +1,2 @@ +de +en +\ No newline at end of file diff --git a/po/POTFILES b/po/POTFILES @@ -0,0 +1,99 @@ +resources/ui/about.ui +resources/ui/account_entry.ui +resources/ui/accounts.ui +resources/ui/chat_entry.ui +resources/ui/chat.ui +resources/ui/contact_entry.ui +resources/ui/contact_info.ui +resources/ui/contacts.ui +resources/ui/delete_messages.ui +resources/ui/file_entry.ui +resources/ui/file_load_entry.ui +resources/ui/invite_contact.ui +resources/ui/media_preview.ui +resources/ui/message_content.ui +resources/ui/message-sent.ui +resources/ui/message-status.ui +resources/ui/message.ui +resources/ui/messenger.ui +resources/ui/new_account.ui +resources/ui/new_contact.ui +resources/ui/new_group.ui +resources/ui/new_lobby.ui +resources/ui/new_platform.ui +resources/ui/new_tag.ui +resources/ui/picker.ui +resources/ui/play_media.ui +resources/ui/send_file.ui +resources/ui/settings.ui +resources/ui/tag.ui +src/application.c +src/application.h +src/chat/messenger.c +src/chat/messenger.h +src/contact.c +src/contact.h +src/event.c +src/event.h +src/file.c +src/file.h +src/messenger_gtk.c +src/request.c +src/request.h +src/resources.c +src/resources.h +src/ui/about.c +src/ui/about.h +src/ui/account_entry.c +src/ui/account_entry.h +src/ui/accounts.c +src/ui/accounts.h +src/ui.c +src/ui/chat.c +src/ui/chat_entry.c +src/ui/chat_entry.h +src/ui/chat.h +src/ui/contact_entry.c +src/ui/contact_entry.h +src/ui/contact_info.c +src/ui/contact_info.h +src/ui/contacts.c +src/ui/contacts.h +src/ui/delete_messages.c +src/ui/delete_messages.h +src/ui/file_entry.c +src/ui/file_entry.h +src/ui/file_load_entry.c +src/ui/file_load_entry.h +src/ui.h +src/ui/invite_contact.c +src/ui/invite_contact.h +src/ui/media_preview.c +src/ui/media_preview.h +src/ui/message.c +src/ui/message.h +src/ui/messenger.c +src/ui/messenger.h +src/ui/new_account.c +src/ui/new_account.h +src/ui/new_contact.c +src/ui/new_contact.h +src/ui/new_group.c +src/ui/new_group.h +src/ui/new_lobby.c +src/ui/new_lobby.h +src/ui/new_platform.c +src/ui/new_platform.h +src/ui/new_tag.c +src/ui/new_tag.h +src/ui/picker.c +src/ui/picker.h +src/ui/play_media.c +src/ui/play_media.h +src/ui/send_file.c +src/ui/send_file.h +src/ui/settings.c +src/ui/settings.h +src/ui/tag.c +src/ui/tag.h +src/util.h +\ No newline at end of file diff --git a/po/de.po b/po/de.po @@ -0,0 +1,447 @@ +# +# Tobias Frisch <>, 2024. +# +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Project-Id-Version: unnamed project\n" +"Last-Translator: Tobias Frisch <>\n" +"Language-Team: German\n" +"Language: de\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"PO-Revision-Date: 2024-04-02 02:13+0200\n" +"X-Generator: Gtranslator 46.0\n" + +#: resources/ui/about.ui:32 +msgid "" +"This application is part of GNUnet.\n" +"Copyright (C) 2021--2024 GNUnet e.V." +msgstr "" +"Diese Anwendung ist Teil von GNUnet.\n" +"Copyright (C) 2021--2024 GNUnet e.V." + +#: resources/ui/about.ui:38 +msgid "Tobias Frisch" +msgstr "Tobias Frisch" + +#: resources/ui/about.ui:71 resources/ui/accounts.ui:42 +#: resources/ui/contact_info.ui:55 resources/ui/contacts.ui:42 +#: resources/ui/invite_contact.ui:42 +msgid "Close" +msgstr "Schließen" + +#: resources/ui/accounts.ui:27 +msgid "Accounts" +msgstr "Konten" + +#: resources/ui/accounts.ui:105 resources/ui/messenger.ui:367 +msgid "Add Account" +msgstr "Konto hinzufügen" + +#: resources/ui/chat.ui:721 resources/ui/contact_info.ui:188 +msgid "Reveal Identity" +msgstr "Identität anzeigen" + +#: resources/ui/chat.ui:771 resources/ui/contact_info.ui:237 +msgid "Block Contact" +msgstr "Kontakt sperren" + +#: resources/ui/chat.ui:817 resources/ui/contact_info.ui:281 +msgid "Unblock Contact" +msgstr "Kontakt entsperren" + +#: resources/ui/chat.ui:871 +msgid "Leave Chat" +msgstr "Chat verlassen" + +#: resources/ui/chat.ui:910 resources/ui/settings.ui:176 +#: resources/ui/settings.ui:181 +msgid "Notifications" +msgstr "Benachrichtigungen" + +#: resources/ui/chat.ui:949 resources/ui/contacts.ui:27 +#: resources/ui/messenger.ui:574 +msgid "Contacts" +msgstr "Kontake" + +#: resources/ui/chat.ui:998 resources/ui/invite_contact.ui:27 +msgid "Invite Contact" +msgstr "Kontakt einladen" + +#: resources/ui/chat.ui:1038 +msgid "Media" +msgstr "Medien" + +#: resources/ui/chat.ui:1086 resources/ui/settings.ui:676 +msgid "Files" +msgstr "Dateien" + +#: resources/ui/chat.ui:1169 +msgid "Send Later" +msgstr "Später senden" + +#: resources/ui/chat.ui:1184 +msgid "Send Now" +msgstr "Jetzt senden" + +#: resources/ui/contact_info.ui:28 +msgid "Contact Information" +msgstr "Kontaktinformationen" + +#: resources/ui/contact_info.ui:43 +msgid "Back" +msgstr "Zurück" + +#: resources/ui/contact_info.ui:107 resources/ui/new_account.ui:103 +msgid "Name:" +msgstr "Name:" + +#: resources/ui/contact_info.ui:333 +msgid "Open Private Chat" +msgstr "Privaten Chat öffnen" + +#: resources/ui/contact_info.ui:405 resources/ui/new_contact.ui:271 +#: resources/ui/new_lobby.ui:354 +msgid "ID:" +msgstr "ID:" + +#: resources/ui/contacts.ui:118 +msgid "Add Contact" +msgstr "Kontakt hinzufügen" + +#: resources/ui/delete_messages.ui:14 resources/ui/new_lobby.ui:35 +#: resources/ui/settings.ui:35 +msgid "Off" +msgstr "Aus" + +#: resources/ui/delete_messages.ui:18 resources/ui/new_lobby.ui:39 +#: resources/ui/settings.ui:39 +msgid "4 weeks" +msgstr "4 Wochen" + +#: resources/ui/delete_messages.ui:22 resources/ui/new_lobby.ui:43 +#: resources/ui/settings.ui:43 +msgid "1 week" +msgstr "1 Woche" + +#: resources/ui/delete_messages.ui:26 resources/ui/new_lobby.ui:47 +#: resources/ui/settings.ui:47 +msgid "1 day" +msgstr "1 Tag" + +#: resources/ui/delete_messages.ui:30 resources/ui/new_lobby.ui:51 +#: resources/ui/settings.ui:51 +msgid "8 hours" +msgstr "8 Stunden" + +#: resources/ui/delete_messages.ui:34 resources/ui/new_lobby.ui:55 +#: resources/ui/settings.ui:55 +msgid "1 hour" +msgstr "1 Stunde" + +#: resources/ui/delete_messages.ui:38 resources/ui/new_lobby.ui:59 +#: resources/ui/settings.ui:59 +msgid "5 minutes" +msgstr "5 Minuten" + +#: resources/ui/delete_messages.ui:42 resources/ui/new_lobby.ui:63 +#: resources/ui/settings.ui:63 +msgid "30 seconds" +msgstr "30 Sekunden" + +#: resources/ui/delete_messages.ui:49 +msgid "Delete Messages" +msgstr "Nachrichten löschen" + +#: resources/ui/delete_messages.ui:64 resources/ui/new_account.ui:43 +#: resources/ui/new_contact.ui:52 resources/ui/new_group.ui:43 +#: resources/ui/new_lobby.ui:86 resources/ui/new_platform.ui:43 +#: resources/ui/new_tag.ui:42 resources/ui/send_file.ui:41 src/ui/chat.c:638 +msgid "Cancel" +msgstr "Abbrechen" + +#: resources/ui/delete_messages.ui:77 resources/ui/new_account.ui:56 +#: resources/ui/new_group.ui:81 resources/ui/new_platform.ui:56 +#: resources/ui/new_tag.ui:55 src/ui/chat.c:640 +msgid "Confirm" +msgstr "Bestätigen" + +#: resources/ui/delete_messages.ui:108 +msgid "When do you want those messages to be deleted?" +msgstr "Wann sollen diese Nachrichten gelöscht werden?" + +#: resources/ui/delete_messages.ui:148 +msgid "Hide this dialog in the future" +msgstr "Diesen Dialog in Zukunft verstecken" + +#: resources/ui/messenger.ui:430 resources/ui/new_contact.ui:35 +msgid "New Contact" +msgstr "Neuer Kontakt" + +#: resources/ui/messenger.ui:478 resources/ui/new_group.ui:28 +msgid "New Group" +msgstr "Neue Gruppe" + +#: resources/ui/messenger.ui:526 resources/ui/new_platform.ui:28 +msgid "New Platform" +msgstr "Neue Plattform" + +#: resources/ui/messenger.ui:622 resources/ui/settings.ui:70 +msgid "Settings" +msgstr "Einstellungen" + +#: resources/ui/messenger.ui:669 +msgid "About" +msgstr "Info" + +#: resources/ui/messenger.ui:782 +msgid "Select a chat to start messaging..." +msgstr "Wähle einen Chat um zu schreiben..." + +#: resources/ui/messenger.ui:811 +msgid "Messenger" +msgstr "Messenger" + +#: resources/ui/messenger.ui:812 +msgid "GNUnet" +msgstr "GNUnet" + +#: resources/ui/new_account.ui:28 +msgid "New Account" +msgstr "Neues Konto" + +#: resources/ui/new_contact.ui:65 +msgid "Accept" +msgstr "Annehmen" + +#: resources/ui/new_contact.ui:178 +msgid "Connection to camera failed!" +msgstr "Verbindung zur Kamera fehlgeschlagen!" + +#: resources/ui/new_contact.ui:218 +msgid "No camera found!" +msgstr "Keine Kamera gefunden!" + +#: resources/ui/new_group.ui:56 +msgid "Previous" +msgstr "Vorherige" + +#: resources/ui/new_group.ui:68 +msgid "Next" +msgstr "Nächste" + +#: resources/ui/new_group.ui:131 +msgid "Group:" +msgstr "Gruppe:" + +#: resources/ui/new_lobby.ui:70 +msgid "New Lobby" +msgstr "Neue Lobby" + +#: resources/ui/new_lobby.ui:99 +msgid "Generate" +msgstr "Generieren" + +#: resources/ui/new_lobby.ui:112 +msgid "Copy" +msgstr "Kopieren" + +#: resources/ui/new_lobby.ui:166 +msgid "" +"Please notice that everyone with access to the lobby's code can enter its " +"chat!" +msgstr "" +"Bitte beachten, dass jeder mit Zugang zum Lobby-Code dem Chat beitreten kann!" + +#: resources/ui/new_lobby.ui:234 +msgid "Delay until new lobby expires:" +msgstr "Zeitdauer bis neue Lobby abläuft:" + +#: resources/ui/new_lobby.ui:304 +msgid "Generation of new lobby failed!" +msgstr "Generierung der neuen Lobby gescheitert!" + +#: resources/ui/new_platform.ui:103 +msgid "Platform:" +msgstr "Plattform:" + +#: resources/ui/new_tag.ui:102 +msgid "Tag:" +msgstr "Label:" + +#: resources/ui/picker.ui:389 +msgid "Emoji" +msgstr "Emoji" + +#: resources/ui/picker.ui:409 +msgid "GIF" +msgstr "GIF" + +#: resources/ui/picker.ui:430 +msgid "Stickers" +msgstr "Aufkleber" + +#: resources/ui/play_media.ui:132 +msgid "Video source invalid!" +msgstr "Videoquelle invalide!" + +#: resources/ui/send_file.ui:54 +msgid "Send" +msgstr "Senden" + +#: resources/ui/settings.ui:79 +msgid "General" +msgstr "Allgemein" + +#: resources/ui/settings.ui:84 +msgid "System" +msgstr "System" + +#: resources/ui/settings.ui:89 resources/ui/settings.ui:98 +msgid "Start on login" +msgstr "Beim Anmelden starten" + +#: resources/ui/settings.ui:130 resources/ui/settings.ui:139 +msgid "Run in background" +msgstr "Im Hintergrund ausführen" + +#: resources/ui/settings.ui:186 resources/ui/settings.ui:195 +msgid "Enable notifications" +msgstr "Benachrichtigungen aktivieren" + +#: resources/ui/settings.ui:227 resources/ui/settings.ui:236 +msgid "Play notification sounds" +msgstr "Benachrichtigungsgeräusche abspielen" + +#: resources/ui/settings.ui:274 +msgid "Privacy" +msgstr "Privatsphäre" + +#: resources/ui/settings.ui:279 +msgid "Blocked" +msgstr "Blockiert" + +#: resources/ui/settings.ui:294 src/ui/settings.c:387 +#, c-format +msgid "%u blocked contacts" +msgstr "%u blockierte Kontakte" + +#: resources/ui/settings.ui:342 +msgid "Messaging" +msgstr "Kommunikation" + +#: resources/ui/settings.ui:347 resources/ui/settings.ui:356 +msgid "Send read receipts" +msgstr "Lesebestätigungen senden" + +#: resources/ui/settings.ui:390 +msgid "Disappearing messages" +msgstr "Verschwindende Nachrichten" + +#: resources/ui/settings.ui:395 resources/ui/settings.ui:404 +msgid "Delete messages automatically" +msgstr "Nachrichten automatisch löschen" + +#: resources/ui/settings.ui:446 +msgid "History" +msgstr "Historie" + +#: resources/ui/settings.ui:451 resources/ui/settings.ui:460 +msgid "Clear history automatically" +msgstr "Historie automatisch leeren" + +#: resources/ui/settings.ui:501 resources/ui/settings.ui:508 +msgid "Clear all history" +msgstr "Gesamte Historie leeren" + +#: resources/ui/settings.ui:540 +msgid "Network" +msgstr "Netzwerk" + +#: resources/ui/settings.ui:545 +msgid "Invitations" +msgstr "Einladungen" + +#: resources/ui/settings.ui:550 resources/ui/settings.ui:559 +msgid "Accept invitations automatically" +msgstr "Einladungen automatisch annehmen" + +#: resources/ui/settings.ui:591 resources/ui/settings.ui:600 +msgid "Delete invitations automatically" +msgstr "Einladungen automatisch löschen" + +#: resources/ui/settings.ui:640 resources/ui/settings.ui:647 +msgid "Delete all invitations" +msgstr "Alle Einladungen löschen" + +#: resources/ui/settings.ui:681 resources/ui/settings.ui:690 +msgid "Accept files automatically" +msgstr "Automatisch Dateien annehmen" + +#: resources/ui/settings.ui:722 resources/ui/settings.ui:731 +msgid "Download folder" +msgstr "Download-Ordner" + +#: resources/ui/settings.ui:746 +msgid "Select download folder" +msgstr "Download-Ordner auswählen" + +#: resources/ui/settings.ui:765 resources/ui/settings.ui:774 +msgid "Delete files automatically" +msgstr "Dateien automatisch löschen" + +#: resources/ui/settings.ui:814 resources/ui/settings.ui:821 +msgid "Delete all files" +msgstr "Alle Dateien löschen" + +#: resources/ui/settings.ui:850 +msgid "Chats" +msgstr "Chats" + +#: resources/ui/settings.ui:855 resources/ui/settings.ui:864 +msgid "Leave chats automatically" +msgstr "Chats automatisch verlassen" + +#: resources/ui/settings.ui:904 resources/ui/settings.ui:911 +msgid "Leave all chats" +msgstr "Alle Chats verlassen" + +#: src/event.c:513 +msgid "joined the chat" +msgstr "ist dem Chat beigetreten" + +#: src/event.c:513 +msgid "left the chat" +msgstr "hat den Chat verlassen" + +#: src/event.c:640 +#, c-format +msgid "invited %s to a chat" +msgstr "hat %s zum Chat eingeladen" + +#: src/event.c:644 +msgid "you" +msgstr "dich" + +#: src/ui/chat.c:635 +msgid "Select file" +msgstr "Datei auswählen" + +#: src/ui/chat.c:2126 +#, c-format +msgid "%d members" +msgstr "%d Mitglieder" + +#: src/ui/chat_entry.c:161 +msgid "Yesterday" +msgstr "Gestern" + +#: src/ui/play_media.c:659 +msgid "Play Media" +msgstr "Medium abspielen" + +#: src/ui/send_file.c:304 +msgid "Send File" +msgstr "Datei senden" diff --git a/po/en.po b/po/en.po @@ -0,0 +1,465 @@ +# This file is part of GNUnet. +# Copyright (C) 2024 GNUnet e.V. +# +# GNUnet is free software: you can redistribute it and/or modify it +# under the terms of the GNU Affero General Public License as published +# by the Free Software Foundation, either version 3 of the License, +# or (at your option) any later version. +# +# GNUnet is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +# SPDX-License-Identifier: AGPL3.0-or-later +# +# Tobias Frisch <>, 2024. +# +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Project-Id-Version: unnamed project\n" +"Last-Translator: Tobias Frisch <>\n" +"Language-Team: English\n" +"Language: en\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"PO-Revision-Date: 2024-04-01 22:18+0200\n" +"X-Generator: Gtranslator 46.0\n" + +#: resources/ui/about.ui:32 +msgid "" +"This application is part of GNUnet.\n" +"Copyright (C) 2021--2024 GNUnet e.V." +msgstr "" +"This application is part of GNUnet.\n" +"Copyright (C) 2021--2024 GNUnet e.V." + +#: resources/ui/about.ui:38 +msgid "Tobias Frisch" +msgstr "Tobias Frisch" + +#: resources/ui/about.ui:71 resources/ui/accounts.ui:42 +#: resources/ui/contact_info.ui:55 resources/ui/contacts.ui:42 +#: resources/ui/invite_contact.ui:42 +msgid "Close" +msgstr "Close" + +#: resources/ui/accounts.ui:27 +msgid "Accounts" +msgstr "Accounts" + +#: resources/ui/accounts.ui:105 resources/ui/messenger.ui:367 +msgid "Add Account" +msgstr "Add Account" + +#: resources/ui/chat.ui:721 resources/ui/contact_info.ui:188 +msgid "Reveal Identity" +msgstr "Reveal Identity" + +#: resources/ui/chat.ui:771 resources/ui/contact_info.ui:237 +msgid "Block Contact" +msgstr "Block Contact" + +#: resources/ui/chat.ui:817 resources/ui/contact_info.ui:281 +msgid "Unblock Contact" +msgstr "Unblock Contact" + +#: resources/ui/chat.ui:871 +msgid "Leave Chat" +msgstr "Leave Chat" + +#: resources/ui/chat.ui:910 resources/ui/settings.ui:176 +#: resources/ui/settings.ui:181 +msgid "Notifications" +msgstr "Notifications" + +#: resources/ui/chat.ui:949 resources/ui/contacts.ui:27 +#: resources/ui/messenger.ui:574 +msgid "Contacts" +msgstr "Contacts" + +#: resources/ui/chat.ui:998 resources/ui/invite_contact.ui:27 +msgid "Invite Contact" +msgstr "Invite Contact" + +#: resources/ui/chat.ui:1038 +msgid "Media" +msgstr "Media" + +#: resources/ui/chat.ui:1086 resources/ui/settings.ui:676 +msgid "Files" +msgstr "Files" + +#: resources/ui/chat.ui:1169 +msgid "Send Later" +msgstr "Send Later" + +#: resources/ui/chat.ui:1184 +msgid "Send Now" +msgstr "Send Now" + +#: resources/ui/contact_info.ui:28 +msgid "Contact Information" +msgstr "Contact Information" + +#: resources/ui/contact_info.ui:43 +msgid "Back" +msgstr "Back" + +#: resources/ui/contact_info.ui:107 resources/ui/new_account.ui:103 +msgid "Name:" +msgstr "Name:" + +#: resources/ui/contact_info.ui:333 +msgid "Open Private Chat" +msgstr "Open Private Chat" + +#: resources/ui/contact_info.ui:405 resources/ui/new_contact.ui:271 +#: resources/ui/new_lobby.ui:354 +msgid "ID:" +msgstr "ID:" + +#: resources/ui/contacts.ui:118 +msgid "Add Contact" +msgstr "Add Contact" + +#: resources/ui/delete_messages.ui:14 resources/ui/new_lobby.ui:35 +#: resources/ui/settings.ui:35 +msgid "Off" +msgstr "Off" + +#: resources/ui/delete_messages.ui:18 resources/ui/new_lobby.ui:39 +#: resources/ui/settings.ui:39 +msgid "4 weeks" +msgstr "4 weeks" + +#: resources/ui/delete_messages.ui:22 resources/ui/new_lobby.ui:43 +#: resources/ui/settings.ui:43 +msgid "1 week" +msgstr "1 week" + +#: resources/ui/delete_messages.ui:26 resources/ui/new_lobby.ui:47 +#: resources/ui/settings.ui:47 +msgid "1 day" +msgstr "1 day" + +#: resources/ui/delete_messages.ui:30 resources/ui/new_lobby.ui:51 +#: resources/ui/settings.ui:51 +msgid "8 hours" +msgstr "8 hours" + +#: resources/ui/delete_messages.ui:34 resources/ui/new_lobby.ui:55 +#: resources/ui/settings.ui:55 +msgid "1 hour" +msgstr "1 hour" + +#: resources/ui/delete_messages.ui:38 resources/ui/new_lobby.ui:59 +#: resources/ui/settings.ui:59 +msgid "5 minutes" +msgstr "5 minutes" + +#: resources/ui/delete_messages.ui:42 resources/ui/new_lobby.ui:63 +#: resources/ui/settings.ui:63 +msgid "30 seconds" +msgstr "30 seconds" + +#: resources/ui/delete_messages.ui:49 +msgid "Delete Messages" +msgstr "Delete Messages" + +#: resources/ui/delete_messages.ui:64 resources/ui/new_account.ui:43 +#: resources/ui/new_contact.ui:52 resources/ui/new_group.ui:43 +#: resources/ui/new_lobby.ui:86 resources/ui/new_platform.ui:43 +#: resources/ui/new_tag.ui:42 resources/ui/send_file.ui:41 src/ui/chat.c:638 +msgid "Cancel" +msgstr "Cancel" + +#: resources/ui/delete_messages.ui:77 resources/ui/new_account.ui:56 +#: resources/ui/new_group.ui:81 resources/ui/new_platform.ui:56 +#: resources/ui/new_tag.ui:55 src/ui/chat.c:640 +msgid "Confirm" +msgstr "Confirm" + +#: resources/ui/delete_messages.ui:108 +msgid "When do you want those messages to be deleted?" +msgstr "When do you want those messages to be deleted?" + +#: resources/ui/delete_messages.ui:148 +msgid "Hide this dialog in the future" +msgstr "Hide this dialog in the future" + +#: resources/ui/messenger.ui:430 resources/ui/new_contact.ui:35 +msgid "New Contact" +msgstr "New Contact" + +#: resources/ui/messenger.ui:478 resources/ui/new_group.ui:28 +msgid "New Group" +msgstr "New Group" + +#: resources/ui/messenger.ui:526 resources/ui/new_platform.ui:28 +msgid "New Platform" +msgstr "New Platform" + +#: resources/ui/messenger.ui:622 resources/ui/settings.ui:70 +msgid "Settings" +msgstr "Settings" + +#: resources/ui/messenger.ui:669 +msgid "About" +msgstr "About" + +#: resources/ui/messenger.ui:782 +msgid "Select a chat to start messaging..." +msgstr "Select a chat to start messaging..." + +#: resources/ui/messenger.ui:811 +msgid "Messenger" +msgstr "Messenger" + +#: resources/ui/messenger.ui:812 +msgid "GNUnet" +msgstr "GNUnet" + +#: resources/ui/new_account.ui:28 +msgid "New Account" +msgstr "New Account" + +#: resources/ui/new_contact.ui:65 +msgid "Accept" +msgstr "Accept" + +#: resources/ui/new_contact.ui:178 +msgid "Connection to camera failed!" +msgstr "Connection to camera failed!" + +#: resources/ui/new_contact.ui:218 +msgid "No camera found!" +msgstr "No camera found!" + +#: resources/ui/new_group.ui:56 +msgid "Previous" +msgstr "Previous" + +#: resources/ui/new_group.ui:68 +msgid "Next" +msgstr "Next" + +#: resources/ui/new_group.ui:131 +msgid "Group:" +msgstr "Group:" + +#: resources/ui/new_lobby.ui:70 +msgid "New Lobby" +msgstr "New Lobby" + +#: resources/ui/new_lobby.ui:99 +msgid "Generate" +msgstr "Generate" + +#: resources/ui/new_lobby.ui:112 +msgid "Copy" +msgstr "Copy" + +#: resources/ui/new_lobby.ui:166 +msgid "" +"Please notice that everyone with access to the lobby's code can enter its " +"chat!" +msgstr "" +"Please notice that everyone with access to the lobby's code can enter its " +"chat!" + +#: resources/ui/new_lobby.ui:234 +msgid "Delay until new lobby expires:" +msgstr "Delay until new lobby expires:" + +#: resources/ui/new_lobby.ui:304 +msgid "Generation of new lobby failed!" +msgstr "Generation of new lobby failed!" + +#: resources/ui/new_platform.ui:103 +msgid "Platform:" +msgstr "Platform:" + +#: resources/ui/new_tag.ui:102 +msgid "Tag:" +msgstr "Tag:" + +#: resources/ui/picker.ui:389 +msgid "Emoji" +msgstr "Emoji" + +#: resources/ui/picker.ui:409 +msgid "GIF" +msgstr "GIF" + +#: resources/ui/picker.ui:430 +msgid "Stickers" +msgstr "Stickers" + +#: resources/ui/play_media.ui:132 +msgid "Video source invalid!" +msgstr "Video source invalid!" + +#: resources/ui/send_file.ui:54 +msgid "Send" +msgstr "Send" + +#: resources/ui/settings.ui:79 +msgid "General" +msgstr "General" + +#: resources/ui/settings.ui:84 +msgid "System" +msgstr "System" + +#: resources/ui/settings.ui:89 resources/ui/settings.ui:98 +msgid "Start on login" +msgstr "Start on login" + +#: resources/ui/settings.ui:130 resources/ui/settings.ui:139 +msgid "Run in background" +msgstr "Run in background" + +#: resources/ui/settings.ui:186 resources/ui/settings.ui:195 +msgid "Enable notifications" +msgstr "Enable notifications" + +#: resources/ui/settings.ui:227 resources/ui/settings.ui:236 +msgid "Play notification sounds" +msgstr "Play notification sounds" + +#: resources/ui/settings.ui:274 +msgid "Privacy" +msgstr "Privacy" + +#: resources/ui/settings.ui:279 +msgid "Blocked" +msgstr "Blocked" + +#: resources/ui/settings.ui:294 src/ui/settings.c:387 +#, c-format +msgid "%u blocked contacts" +msgstr "%u blocked contacts" + +#: resources/ui/settings.ui:342 +msgid "Messaging" +msgstr "Messaging" + +#: resources/ui/settings.ui:347 resources/ui/settings.ui:356 +msgid "Send read receipts" +msgstr "Send read receipts" + +#: resources/ui/settings.ui:390 +msgid "Disappearing messages" +msgstr "Disappearing messages" + +#: resources/ui/settings.ui:395 resources/ui/settings.ui:404 +msgid "Delete messages automatically" +msgstr "Delete messages automatically" + +#: resources/ui/settings.ui:446 +msgid "History" +msgstr "History" + +#: resources/ui/settings.ui:451 resources/ui/settings.ui:460 +msgid "Clear history automatically" +msgstr "Clear history automatically" + +#: resources/ui/settings.ui:501 resources/ui/settings.ui:508 +msgid "Clear all history" +msgstr "Clear all history" + +#: resources/ui/settings.ui:540 +msgid "Network" +msgstr "Network" + +#: resources/ui/settings.ui:545 +msgid "Invitations" +msgstr "Invitations" + +#: resources/ui/settings.ui:550 resources/ui/settings.ui:559 +msgid "Accept invitations automatically" +msgstr "Accept invitations automatically" + +#: resources/ui/settings.ui:591 resources/ui/settings.ui:600 +msgid "Delete invitations automatically" +msgstr "Delete invitations automatically" + +#: resources/ui/settings.ui:640 resources/ui/settings.ui:647 +msgid "Delete all invitations" +msgstr "Delete all invitations" + +#: resources/ui/settings.ui:681 resources/ui/settings.ui:690 +msgid "Accept files automatically" +msgstr "Accept files automatically" + +#: resources/ui/settings.ui:722 resources/ui/settings.ui:731 +msgid "Download folder" +msgstr "Download folder" + +#: resources/ui/settings.ui:746 +msgid "Select download folder" +msgstr "Select download folder" + +#: resources/ui/settings.ui:765 resources/ui/settings.ui:774 +msgid "Delete files automatically" +msgstr "Delete files automatically" + +#: resources/ui/settings.ui:814 resources/ui/settings.ui:821 +msgid "Delete all files" +msgstr "Delete all files" + +#: resources/ui/settings.ui:850 +msgid "Chats" +msgstr "Chats" + +#: resources/ui/settings.ui:855 resources/ui/settings.ui:864 +msgid "Leave chats automatically" +msgstr "Leave chats automatically" + +#: resources/ui/settings.ui:904 resources/ui/settings.ui:911 +msgid "Leave all chats" +msgstr "Leave all chats" + +#: src/event.c:513 +msgid "joined the chat" +msgstr "joined the chat" + +#: src/event.c:513 +msgid "left the chat" +msgstr "left the chat" + +#: src/event.c:640 +#, c-format +msgid "invited %s to a chat" +msgstr "invited %s to a chat" + +#: src/event.c:644 +msgid "you" +msgstr "you" + +#: src/ui/chat.c:635 +msgid "Select file" +msgstr "Select file" + +#: src/ui/chat.c:2126 +#, c-format +msgid "%d members" +msgstr "%d members" + +#: src/ui/chat_entry.c:161 +msgid "Yesterday" +msgstr "Yesterday" + +#: src/ui/play_media.c:659 +msgid "Play Media" +msgstr "Play Media" + +#: src/ui/send_file.c:304 +msgid "Send File" +msgstr "Send File" diff --git a/po/meson.build b/po/meson.build @@ -0,0 +1,29 @@ +# +# This file is part of GNUnet. +# Copyright (C) 2024 GNUnet e.V. +# +# GNUnet is free software: you can redistribute it and/or modify it +# under the terms of the GNU Affero General Public License as published +# by the Free Software Foundation, either version 3 of the License, +# or (at your option) any later version. +# +# GNUnet is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +# SPDX-License-Identifier: AGPL3.0-or-later +# + +domain_name = meson.project_name() +locale_dir = get_option('prefix') / get_option('localedir') + +i18n = import('i18n') + +add_project_arguments('-DMESSENGER_APPLICATION_DOMAIN="' + domain_name + '"', language:'c') +add_project_arguments('-DMESSENGER_APPLICATION_LOCALEDIR="' + locale_dir + '"', language:'c') + +i18n.gettext(meson.project_name()) diff --git a/po/messenger-gtk.pot b/po/messenger-gtk.pot @@ -0,0 +1,462 @@ +# This file is part of GNUnet. +# Copyright (C) 2024 GNUnet e.V. +# +# GNUnet is free software: you can redistribute it and/or modify it +# under the terms of the GNU Affero General Public License as published +# by the Free Software Foundation, either version 3 of the License, +# or (at your option) any later version. +# +# GNUnet is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +# SPDX-License-Identifier: AGPL3.0-or-later +# +# FIRST AUTHOR <EMAIL@ADDRESS>, 2024. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: messenger-gtk\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-04-02 01:54+0200\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" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 3.4.2\n" + +#: resources/ui/about.ui:32 +msgid "" +"This application is part of GNUnet.\n" +"Copyright (C) 2021--2024 GNUnet e.V." +msgstr "" + +#: resources/ui/about.ui:38 +msgid "Tobias Frisch" +msgstr "" + +#: resources/ui/about.ui:71 resources/ui/accounts.ui:42 +#: resources/ui/contact_info.ui:55 resources/ui/contacts.ui:42 +#: resources/ui/invite_contact.ui:42 +msgid "Close" +msgstr "" + +#: resources/ui/accounts.ui:27 +msgid "Accounts" +msgstr "" + +#: resources/ui/accounts.ui:105 resources/ui/messenger.ui:367 +msgid "Add Account" +msgstr "" + +#: resources/ui/chat.ui:721 resources/ui/contact_info.ui:188 +msgid "Reveal Identity" +msgstr "" + +#: resources/ui/chat.ui:771 resources/ui/contact_info.ui:237 +msgid "Block Contact" +msgstr "" + +#: resources/ui/chat.ui:817 resources/ui/contact_info.ui:281 +msgid "Unblock Contact" +msgstr "" + +#: resources/ui/chat.ui:871 +msgid "Leave Chat" +msgstr "" + +#: resources/ui/chat.ui:910 resources/ui/settings.ui:176 +#: resources/ui/settings.ui:181 +msgid "Notifications" +msgstr "" + +#: resources/ui/chat.ui:949 resources/ui/contacts.ui:27 +#: resources/ui/messenger.ui:574 +msgid "Contacts" +msgstr "" + +#: resources/ui/chat.ui:998 resources/ui/invite_contact.ui:27 +msgid "Invite Contact" +msgstr "" + +#: resources/ui/chat.ui:1038 +msgid "Media" +msgstr "" + +#: resources/ui/chat.ui:1086 resources/ui/settings.ui:676 +msgid "Files" +msgstr "" + +#: resources/ui/chat.ui:1169 +msgid "Send Later" +msgstr "" + +#: resources/ui/chat.ui:1184 +msgid "Send Now" +msgstr "" + +#: resources/ui/contact_info.ui:28 +msgid "Contact Information" +msgstr "" + +#: resources/ui/contact_info.ui:43 +msgid "Back" +msgstr "" + +#: resources/ui/contact_info.ui:107 resources/ui/new_account.ui:103 +msgid "Name:" +msgstr "" + +#: resources/ui/contact_info.ui:333 +msgid "Open Private Chat" +msgstr "" + +#: resources/ui/contact_info.ui:405 resources/ui/new_contact.ui:271 +#: resources/ui/new_lobby.ui:354 +msgid "ID:" +msgstr "" + +#: resources/ui/contacts.ui:118 +msgid "Add Contact" +msgstr "" + +#: resources/ui/delete_messages.ui:14 resources/ui/new_lobby.ui:35 +#: resources/ui/settings.ui:35 +msgid "Off" +msgstr "" + +#: resources/ui/delete_messages.ui:18 resources/ui/new_lobby.ui:39 +#: resources/ui/settings.ui:39 +msgid "4 weeks" +msgstr "" + +#: resources/ui/delete_messages.ui:22 resources/ui/new_lobby.ui:43 +#: resources/ui/settings.ui:43 +msgid "1 week" +msgstr "" + +#: resources/ui/delete_messages.ui:26 resources/ui/new_lobby.ui:47 +#: resources/ui/settings.ui:47 +msgid "1 day" +msgstr "" + +#: resources/ui/delete_messages.ui:30 resources/ui/new_lobby.ui:51 +#: resources/ui/settings.ui:51 +msgid "8 hours" +msgstr "" + +#: resources/ui/delete_messages.ui:34 resources/ui/new_lobby.ui:55 +#: resources/ui/settings.ui:55 +msgid "1 hour" +msgstr "" + +#: resources/ui/delete_messages.ui:38 resources/ui/new_lobby.ui:59 +#: resources/ui/settings.ui:59 +msgid "5 minutes" +msgstr "" + +#: resources/ui/delete_messages.ui:42 resources/ui/new_lobby.ui:63 +#: resources/ui/settings.ui:63 +msgid "30 seconds" +msgstr "" + +#: resources/ui/delete_messages.ui:49 +msgid "Delete Messages" +msgstr "" + +#: resources/ui/delete_messages.ui:64 resources/ui/new_account.ui:43 +#: resources/ui/new_contact.ui:52 resources/ui/new_group.ui:43 +#: resources/ui/new_lobby.ui:86 resources/ui/new_platform.ui:43 +#: resources/ui/new_tag.ui:42 resources/ui/send_file.ui:41 src/ui/chat.c:638 +msgid "Cancel" +msgstr "" + +#: resources/ui/delete_messages.ui:77 resources/ui/new_account.ui:56 +#: resources/ui/new_group.ui:81 resources/ui/new_platform.ui:56 +#: resources/ui/new_tag.ui:55 src/ui/chat.c:640 +msgid "Confirm" +msgstr "" + +#: resources/ui/delete_messages.ui:108 +msgid "When do you want those messages to be deleted?" +msgstr "" + +#: resources/ui/delete_messages.ui:148 +msgid "Hide this dialog in the future" +msgstr "" + +#: resources/ui/messenger.ui:430 resources/ui/new_contact.ui:35 +msgid "New Contact" +msgstr "" + +#: resources/ui/messenger.ui:478 resources/ui/new_group.ui:28 +msgid "New Group" +msgstr "" + +#: resources/ui/messenger.ui:526 resources/ui/new_platform.ui:28 +msgid "New Platform" +msgstr "" + +#: resources/ui/messenger.ui:622 resources/ui/settings.ui:70 +msgid "Settings" +msgstr "" + +#: resources/ui/messenger.ui:669 +msgid "About" +msgstr "" + +#: resources/ui/messenger.ui:782 +msgid "Select a chat to start messaging..." +msgstr "" + +#: resources/ui/messenger.ui:811 +msgid "Messenger" +msgstr "" + +#: resources/ui/messenger.ui:812 +msgid "GNUnet" +msgstr "" + +#: resources/ui/new_account.ui:28 +msgid "New Account" +msgstr "" + +#: resources/ui/new_contact.ui:65 +msgid "Accept" +msgstr "" + +#: resources/ui/new_contact.ui:178 +msgid "Connection to camera failed!" +msgstr "" + +#: resources/ui/new_contact.ui:218 +msgid "No camera found!" +msgstr "" + +#: resources/ui/new_group.ui:56 +msgid "Previous" +msgstr "" + +#: resources/ui/new_group.ui:68 +msgid "Next" +msgstr "" + +#: resources/ui/new_group.ui:131 +msgid "Group:" +msgstr "" + +#: resources/ui/new_lobby.ui:70 +msgid "New Lobby" +msgstr "" + +#: resources/ui/new_lobby.ui:99 +msgid "Generate" +msgstr "" + +#: resources/ui/new_lobby.ui:112 +msgid "Copy" +msgstr "" + +#: resources/ui/new_lobby.ui:166 +msgid "" +"Please notice that everyone with access to the lobby's code can enter its " +"chat!" +msgstr "" + +#: resources/ui/new_lobby.ui:234 +msgid "Delay until new lobby expires:" +msgstr "" + +#: resources/ui/new_lobby.ui:304 +msgid "Generation of new lobby failed!" +msgstr "" + +#: resources/ui/new_platform.ui:103 +msgid "Platform:" +msgstr "" + +#: resources/ui/new_tag.ui:102 +msgid "Tag:" +msgstr "" + +#: resources/ui/picker.ui:389 +msgid "Emoji" +msgstr "" + +#: resources/ui/picker.ui:409 +msgid "GIF" +msgstr "" + +#: resources/ui/picker.ui:430 +msgid "Stickers" +msgstr "" + +#: resources/ui/play_media.ui:132 +msgid "Video source invalid!" +msgstr "" + +#: resources/ui/send_file.ui:54 +msgid "Send" +msgstr "" + +#: resources/ui/settings.ui:79 +msgid "General" +msgstr "" + +#: resources/ui/settings.ui:84 +msgid "System" +msgstr "" + +#: resources/ui/settings.ui:89 resources/ui/settings.ui:98 +msgid "Start on login" +msgstr "" + +#: resources/ui/settings.ui:130 resources/ui/settings.ui:139 +msgid "Run in background" +msgstr "" + +#: resources/ui/settings.ui:186 resources/ui/settings.ui:195 +msgid "Enable notifications" +msgstr "" + +#: resources/ui/settings.ui:227 resources/ui/settings.ui:236 +msgid "Play notification sounds" +msgstr "" + +#: resources/ui/settings.ui:274 +msgid "Privacy" +msgstr "" + +#: resources/ui/settings.ui:279 +msgid "Blocked" +msgstr "" + +#: resources/ui/settings.ui:294 src/ui/settings.c:387 +#, c-format +msgid "%u blocked contacts" +msgstr "" + +#: resources/ui/settings.ui:342 +msgid "Messaging" +msgstr "" + +#: resources/ui/settings.ui:347 resources/ui/settings.ui:356 +msgid "Send read receipts" +msgstr "" + +#: resources/ui/settings.ui:390 +msgid "Disappearing messages" +msgstr "" + +#: resources/ui/settings.ui:395 resources/ui/settings.ui:404 +msgid "Delete messages automatically" +msgstr "" + +#: resources/ui/settings.ui:446 +msgid "History" +msgstr "" + +#: resources/ui/settings.ui:451 resources/ui/settings.ui:460 +msgid "Clear history automatically" +msgstr "" + +#: resources/ui/settings.ui:501 resources/ui/settings.ui:508 +msgid "Clear all history" +msgstr "" + +#: resources/ui/settings.ui:540 +msgid "Network" +msgstr "" + +#: resources/ui/settings.ui:545 +msgid "Invitations" +msgstr "" + +#: resources/ui/settings.ui:550 resources/ui/settings.ui:559 +msgid "Accept invitations automatically" +msgstr "" + +#: resources/ui/settings.ui:591 resources/ui/settings.ui:600 +msgid "Delete invitations automatically" +msgstr "" + +#: resources/ui/settings.ui:640 resources/ui/settings.ui:647 +msgid "Delete all invitations" +msgstr "" + +#: resources/ui/settings.ui:681 resources/ui/settings.ui:690 +msgid "Accept files automatically" +msgstr "" + +#: resources/ui/settings.ui:722 resources/ui/settings.ui:731 +msgid "Download folder" +msgstr "" + +#: resources/ui/settings.ui:746 +msgid "Select download folder" +msgstr "" + +#: resources/ui/settings.ui:765 resources/ui/settings.ui:774 +msgid "Delete files automatically" +msgstr "" + +#: resources/ui/settings.ui:814 resources/ui/settings.ui:821 +msgid "Delete all files" +msgstr "" + +#: resources/ui/settings.ui:850 +msgid "Chats" +msgstr "" + +#: resources/ui/settings.ui:855 resources/ui/settings.ui:864 +msgid "Leave chats automatically" +msgstr "" + +#: resources/ui/settings.ui:904 resources/ui/settings.ui:911 +msgid "Leave all chats" +msgstr "" + +#: src/event.c:513 +msgid "joined the chat" +msgstr "" + +#: src/event.c:513 +msgid "left the chat" +msgstr "" + +#: src/event.c:640 +#, c-format +msgid "invited %s to a chat" +msgstr "" + +#: src/event.c:644 +msgid "you" +msgstr "" + +#: src/ui/chat.c:635 +msgid "Select file" +msgstr "" + +#: src/ui/chat.c:2126 +#, c-format +msgid "%d members" +msgstr "" + +#: src/ui/chat_entry.c:161 +msgid "Yesterday" +msgstr "" + +#: src/ui/play_media.c:659 +msgid "Play Media" +msgstr "" + +#: src/ui/send_file.c:304 +msgid "Send File" +msgstr "" diff --git a/resources/css/style.css b/resources/css/style.css @@ -1,3 +1,22 @@ +/* + This file is part of GNUnet. + Copyright (C) 2021--2024 GNUnet e.V. + + GNUnet is free software: you can redistribute it and/or modify it + under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, + or (at your option) any later version. + + GNUnet is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + + SPDX-License-Identifier: AGPL3.0-or-later + */ .flap-background { background-color: @theme_bg_color; @@ -15,7 +34,7 @@ font-size: 10px; } -.account-entry { +.account-entry, .profile-entry { padding: 4px 20px; } diff --git a/resources/ui/new_tag.ui b/resources/ui/new_tag.ui @@ -25,6 +25,7 @@ Author: Tobias Frisch <requires lib="libhandy" version="1.2"/> <object class="GtkDialog" id="new_tag_dialog"> <property name="can-focus">False</property> + <property name="title" translatable="yes">New Tag</property> <property name="modal">True</property> <property name="window-position">center-on-parent</property> <property name="type-hint">dialog</property> diff --git a/src/application.c b/src/application.c @@ -249,6 +249,11 @@ application_init(MESSENGER_Application *app, app->argc = argc; app->argv = argv; + setlocale(LC_ALL, ""); + bindtextdomain(MESSENGER_APPLICATION_DOMAIN, MESSENGER_APPLICATION_LOCALEDIR); + bind_textdomain_codeset(MESSENGER_APPLICATION_DOMAIN, "UTF-8"); + textdomain(MESSENGER_APPLICATION_DOMAIN); + pw_init(&argc, &argv); gst_init(&argc, &argv); gtk_init(&argc, &argv); diff --git a/src/file.c b/src/file.c @@ -210,10 +210,13 @@ file_draw_preview(MESSENGER_FileInfo* info) while (list) { - GtkWidget *widget = GTK_WIDGET(list->data); + if (!GTK_IS_WIDGET(list->data)) + goto skip_data; + GtkWidget *widget = GTK_WIDGET(list->data); gtk_widget_queue_draw(widget); + skip_data: list = list->next; } } diff --git a/src/ui.c b/src/ui.c @@ -26,6 +26,25 @@ #include <gnunet/gnunet_common.h> +GtkBuilder* +ui_builder_from_resource(const char *resource_path) +{ + GtkBuilder *builder = gtk_builder_new(); + + if (!builder) + return NULL; + + gtk_builder_set_translation_domain(builder, MESSENGER_APPLICATION_DOMAIN); + + if (!gtk_builder_add_from_resource(builder, resource_path, NULL)) + { + g_object_unref(builder); + return NULL; + } + + return builder; +} + void ui_label_set_text(GtkLabel *label, const char *text) { diff --git a/src/ui.h b/src/ui.h @@ -30,6 +30,16 @@ #include <stdint.h> /** + * Returns a new builder instance using the UI + * definitions from a given resource path. + * + * @param resource_path Resource path + * @return New builder + */ +GtkBuilder* +ui_builder_from_resource(const char *resource_path); + +/** * Sets the text of a GtkLabel applying automatic utf8 * conversion. * diff --git a/src/ui/about.c b/src/ui/about.c @@ -25,6 +25,7 @@ #include "about.h" #include "../application.h" +#include "../ui.h" static void handle_close_button_click(UNUSED GtkButton *button, @@ -51,7 +52,7 @@ ui_about_dialog_init(MESSENGER_Application *app, { g_assert((app) && (handle)); - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/about.ui") ); diff --git a/src/ui/account_entry.c b/src/ui/account_entry.c @@ -34,7 +34,7 @@ ui_account_entry_new(MESSENGER_Application *app) UI_ACCOUNT_ENTRY_Handle* handle = g_malloc(sizeof(UI_ACCOUNT_ENTRY_Handle)); - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/account_entry.ui") ); diff --git a/src/ui/accounts.c b/src/ui/accounts.c @@ -26,6 +26,7 @@ #include "account_entry.h" #include "../application.h" +#include "../ui.h" static void handle_close_button_click(UNUSED GtkButton *button, @@ -156,7 +157,7 @@ ui_accounts_dialog_init(MESSENGER_Application *app, handle->show_queued = 0; - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/accounts.ui") ); diff --git a/src/ui/chat.c b/src/ui/chat.c @@ -1363,7 +1363,7 @@ ui_chat_new(MESSENGER_Application *app) handle->loads = NULL; - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/chat.ui") ); diff --git a/src/ui/chat_entry.c b/src/ui/chat_entry.c @@ -43,7 +43,7 @@ ui_chat_entry_new(MESSENGER_Application *app) handle->timestamp = GNUNET_TIME_absolute_get_zero_(); handle->chat = ui_chat_new(app); - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/chat_entry.ui") ); diff --git a/src/ui/contact_entry.c b/src/ui/contact_entry.c @@ -34,7 +34,7 @@ ui_contact_entry_new(MESSENGER_Application *app) UI_CONTACT_ENTRY_Handle* handle = g_malloc(sizeof(UI_CONTACT_ENTRY_Handle)); - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/contact_entry.ui") ); diff --git a/src/ui/contact_info.c b/src/ui/contact_info.c @@ -359,7 +359,7 @@ ui_contact_info_dialog_init(MESSENGER_Application *app, handle->app = app; - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/contact_info.ui") ); diff --git a/src/ui/contacts.c b/src/ui/contacts.c @@ -26,6 +26,7 @@ #include "contact_entry.h" #include "../application.h" +#include "../ui.h" static void handle_close_button_click(UNUSED GtkButton *button, @@ -182,7 +183,7 @@ ui_contacts_dialog_init(MESSENGER_Application *app, { g_assert((app) && (handle)); - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/contacts.ui") ); diff --git a/src/ui/delete_messages.c b/src/ui/delete_messages.c @@ -25,6 +25,7 @@ #include "delete_messages.h" #include "../application.h" +#include "../ui.h" static void handle_cancel_button_click(UNUSED GtkButton *button, @@ -88,7 +89,7 @@ ui_delete_messages_dialog_init(MESSENGER_Application *app, handle->selected = NULL; handle->callback = NULL; - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/delete_messages.ui") ); diff --git a/src/ui/file_entry.c b/src/ui/file_entry.c @@ -36,7 +36,7 @@ ui_file_entry_new(MESSENGER_Application *app) UI_FILE_ENTRY_Handle* handle = g_malloc(sizeof(UI_FILE_ENTRY_Handle)); - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/file_entry.ui") ); diff --git a/src/ui/file_load_entry.c b/src/ui/file_load_entry.c @@ -25,6 +25,7 @@ #include "file_load_entry.h" #include "../application.h" +#include "../ui.h" #include "chat.h" @@ -51,7 +52,7 @@ ui_file_load_entry_new(MESSENGER_Application *app) handle->chat = NULL; - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/file_load_entry.ui") ); diff --git a/src/ui/invite_contact.c b/src/ui/invite_contact.c @@ -26,6 +26,7 @@ #include "contact_entry.h" #include "../application.h" +#include "../ui.h" static void handle_close_button_click(UNUSED GtkButton *button, @@ -172,7 +173,7 @@ ui_invite_contact_dialog_init(MESSENGER_Application *app, { g_assert((app) && (handle)); - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/invite_contact.ui") ); diff --git a/src/ui/media_preview.c b/src/ui/media_preview.c @@ -26,6 +26,7 @@ #include "../application.h" #include "../file.h" +#include "../ui.h" static gboolean handle_preview_drawing_area_draw(GtkWidget* drawing_area, @@ -116,7 +117,7 @@ ui_media_preview_new(MESSENGER_Application *app) UI_MEDIA_PREVIEW_Handle* handle = g_malloc(sizeof(UI_MEDIA_PREVIEW_Handle)); - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/media_preview.ui") ); diff --git a/src/ui/message.c b/src/ui/message.c @@ -258,7 +258,7 @@ ui_message_new(MESSENGER_Application *app, break; } - handle->builder[0] = gtk_builder_new_from_resource( + handle->builder[0] = ui_builder_from_resource( application_get_resource_path(app, ui_builder_file) ); @@ -313,7 +313,7 @@ ui_message_new(MESSENGER_Application *app, gtk_builder_get_object(handle->builder[0], "tag_flow_box") ); - handle->builder[1] = gtk_builder_new_from_resource( + handle->builder[1] = ui_builder_from_resource( application_get_resource_path(app, "ui/message_content.ui") ); diff --git a/src/ui/messenger.c b/src/ui/messenger.c @@ -384,7 +384,7 @@ ui_messenger_init(MESSENGER_Application *app, memset(handle, 0, sizeof(*handle)); handle->app = app; - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/messenger.ui") ); diff --git a/src/ui/new_account.c b/src/ui/new_account.c @@ -25,6 +25,7 @@ #include "new_account.h" #include "../application.h" +#include "../ui.h" static gboolean _show_messenger_main_window(gpointer user_data) @@ -134,7 +135,7 @@ ui_new_account_dialog_init(MESSENGER_Application *app, handle->show_queued = 0; - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/new_account.ui") ); diff --git a/src/ui/new_contact.c b/src/ui/new_contact.c @@ -26,6 +26,7 @@ #include "../application.h" #include "../request.h" +#include "../ui.h" #include <pipewire/pipewire.h> @@ -432,7 +433,7 @@ ui_new_contact_dialog_init(MESSENGER_Application *app, _setup_gst_pipeline(handle); - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/new_contact.ui") ); diff --git a/src/ui/new_group.c b/src/ui/new_group.c @@ -26,6 +26,7 @@ #include "contact_entry.h" #include "../application.h" +#include "../ui.h" static void _open_new_group(GtkEntry *entry, @@ -213,7 +214,7 @@ ui_new_group_dialog_init(MESSENGER_Application *app, handle->contact_entries = NULL; - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/new_group.ui") ); diff --git a/src/ui/new_lobby.c b/src/ui/new_lobby.c @@ -25,6 +25,7 @@ #include "new_lobby.h" #include "../application.h" +#include "../ui.h" static void handle_warning_info_bar_close(GtkInfoBar *info_bar, @@ -289,7 +290,7 @@ ui_new_lobby_dialog_init(MESSENGER_Application *app, { g_assert((app) && (handle)); - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/new_lobby.ui") ); diff --git a/src/ui/new_platform.c b/src/ui/new_platform.c @@ -25,6 +25,7 @@ #include "new_platform.h" #include "../application.h" +#include "../ui.h" static void _open_new_platform(GtkEntry *entry, @@ -119,7 +120,7 @@ ui_new_platform_dialog_init(MESSENGER_Application *app, { g_assert((app) && (handle)); - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/new_platform.ui") ); diff --git a/src/ui/new_tag.c b/src/ui/new_tag.c @@ -122,7 +122,7 @@ ui_new_tag_dialog_init(MESSENGER_Application *app, handle->user_data = NULL; handle->callback = NULL; - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/new_tag.ui") ); diff --git a/src/ui/picker.c b/src/ui/picker.c @@ -25,6 +25,7 @@ #include "picker.h" #include "../application.h" +#include "../ui.h" #include <emoji.h> #include <glib-2.0/glib.h> @@ -257,7 +258,7 @@ ui_picker_new(MESSENGER_Application *app, UI_PICKER_Handle *handle = g_malloc(sizeof(UI_PICKER_Handle)); - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/picker.ui") ); diff --git a/src/ui/play_media.c b/src/ui/play_media.c @@ -630,7 +630,7 @@ ui_play_media_window_init(MESSENGER_Application *app, handle->parent = GTK_WINDOW(app->ui.messenger.main_window); - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/play_media.ui") ); diff --git a/src/ui/send_file.c b/src/ui/send_file.c @@ -30,6 +30,7 @@ #include "../application.h" #include "../file.h" +#include "../ui.h" static void handle_cancel_button_click(UNUSED GtkButton *button, @@ -291,7 +292,7 @@ ui_send_file_dialog_init(MESSENGER_Application *app, { g_assert((app) && (handle)); - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/send_file.ui") ); diff --git a/src/ui/settings.c b/src/ui/settings.c @@ -26,6 +26,7 @@ #include "../application.h" #include "../request.h" +#include "../ui.h" #include "contact_entry.h" @@ -269,7 +270,7 @@ ui_settings_dialog_init(MESSENGER_Application *app, { g_assert((app) && (handle)); - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/settings.ui") ); diff --git a/src/ui/tag.c b/src/ui/tag.c @@ -36,7 +36,7 @@ ui_tag_new(MESSENGER_Application *app) memset(handle, 0, sizeof(*handle)); - handle->builder = gtk_builder_new_from_resource( + handle->builder = ui_builder_from_resource( application_get_resource_path(app, "ui/tag.ui") ); diff --git a/src/util.h b/src/util.h @@ -29,11 +29,11 @@ #define UNUSED __attribute__((unused)) -#define _(String) ( \ - (const gchar*) g_dgettext( \ - MESSENGER_APPLICATION_ID, \ - (const gchar*) String \ - ) \ +#define _(String) ( \ + (const gchar*) g_dgettext( \ + MESSENGER_APPLICATION_DOMAIN, \ + (const gchar*) String \ + ) \ ) #endif /* UTIL_H_ */