diff --git a/SPEC.md b/SPEC.md index 6a9b055..5d35586 100644 --- a/SPEC.md +++ b/SPEC.md @@ -8,7 +8,7 @@ required - any new Cwtch work is beyond the scope of this initial spec. # Functional Requirements - [ ] Kill all processes / isolates on exit (Blocked - P1) -- [ ] Android Service? (P1) +- [X] Android Service? (P1) # Splash Screen - [X] Android @@ -16,9 +16,9 @@ required - any new Cwtch work is beyond the scope of this initial spec. - [ ] Desktop (P2) # Custom Styled Widgets -- [/] Label Widget +- [X] Label Widget - [X] Initial - - [ ] With Accessibility / Zoom Integration (P1) + - [X] With Accessibility / Zoom Integration (P1) - [X] Text Field Widget - [X] Password Widget - [X] Text Button Widget (for Copy) @@ -33,10 +33,10 @@ required - any new Cwtch work is beyond the scope of this initial spec. - [X] Profile Picture - [X] default images - [ ] custom images (P3) - - [ ] coloured ring border (P2) + - [X] coloured ring border (P2) - [X] Profile Name - [X] Edit Button - - [ ] Unread messages badge (P2) + - [X Unread messages badge (P2) - [X] Navigate to a specific Profile Contacts Pane (when clicking on a Profile row) - [X] Navigate to a specific Profile Management Pane (edit Button) - [X] Navigate to the Settings Pane (Settings Button in Action bar) @@ -54,12 +54,12 @@ required - any new Cwtch work is beyond the scope of this initial spec. - [X] Update Profile Name - [X] Update Profile Password -- [ ] Error Message When Attempting to Update Password with Wrong Old Password (P2) +- [X] Error Message When Attempting to Update Password with Wrong Old Password (P2) - [ ] Easy Transition from Unencrypted Profile -> Encrypted Profile (P3) -- [ ] Delete a Profile (P2) - - [ ] Dialog Acknowledgement (P2) - - [ ] Require Old Password Gate (P2) - - [ ] Async Checking of Password (P2) +- [X] Delete a Profile (P2) + - [X] Dialog Acknowledgement (P2) + - [X] Require Old Password Gate (P2) + - [X] Async Checking of Password (P2) - [X] Copy Profile Onion Address ## Profile Pane (formally Contacts Pane) @@ -76,11 +76,11 @@ required - any new Cwtch work is beyond the scope of this initial spec. - [X] Name - [X] Onion - [X] Online Status - - [ ] Unread Messages Badge (P1) - - [ ] In Order of Most Recent Message / Activity (P1) - - [ ] With Accept / Reject Heart/Trash Bin Option (P1) - - [ ] Separate list area for Blocked Contacts (P1) -- [ ] Display all Group Contacts (if experiment is enabled) + - [X] Unread Messages Badge (P1) + - [X] In Order of Most Recent Message / Activity (P1) + - [X] With Accept / Reject Heart/Trash Bin Option (P1) + - [X] Separate list area for Blocked Contacts (P1) +- [X] Display all Group Contacts (if experiment is enabled) - [X] Navigate to a specific Contact or Group Message Pane (Contact Row) - [X] Pressing Back should go back to the home pane @@ -88,22 +88,22 @@ required - any new Cwtch work is beyond the scope of this initial spec. - [X] Allowing Copying the Profile Onion Address for Sharing - [X] Allowing Pasting a Peer Onion Address for adding to Contacts - [ ] (with optional name field) -- [ ] Allowing Pasting a Group Invite / Server Address +- [X] Allowing Pasting a Group Invite / Server Address - [X] (if group experiment is enabled) ## Message Overlay - [X] Display Messages from Contacts -- [ ] Allowing copying the text of a specific message (on mobile) (P2) +- [X] Allowing copying the text of a specific message (on mobile) (P2) - [X] Send a message to the specific Contact / Group - [~] Display the Acknowledgement status of a message (P1) -- [ ] Navigate to the specific Contact or Group Settings Pane ( Settings Button in Action bar) +- [X] Navigate to the specific Contact or Group Settings Pane ( Settings Button in Action bar) - [ ] Emoji Support (P1) - [ ] Display in-message emoji text labels e.g. `:label:` as emoji. (P1) - [ ] Functional Emoji Drawer Widget for Selection (P2) - [ ] Mutant Standard? (P2) -- [ ] Display a warning if Contact / Server is offline (Broken Heart) (P1) -- [ ] Display a warning for configuring peer history (P2) +- [X] Display a warning if Contact / Server is offline (Broken Heart) (P1) +- [X] Display a warning for configuring peer history (P2) - [X] Pressing Back should go back to the contacts pane ## List Overlay (P3) @@ -123,11 +123,11 @@ required - any new Cwtch work is beyond the scope of this initial spec. - [X] Pressing Back should go back to the message pane ## Group Settings Pane (experimental - P3) -- [ ] Gated behind group experiment -- [ ] Update local name of group -- [ ] Get Group Invite -- [ ] Leave Group -- [ ] Pressing Back should go back to the message pane for the group +- [X] Gated behind group experiment +- [X] Update local name of group +- [X] Get Group Invite +- [X] Leave Group +- [X] Pressing Back should go back to the message pane for the group diff --git a/android/app/src/main/kotlin/im/cwtch/flwtch/FlwtchWorker.kt b/android/app/src/main/kotlin/im/cwtch/flwtch/FlwtchWorker.kt index 3b8495a..adb5a65 100644 --- a/android/app/src/main/kotlin/im/cwtch/flwtch/FlwtchWorker.kt +++ b/android/app/src/main/kotlin/im/cwtch/flwtch/FlwtchWorker.kt @@ -217,6 +217,10 @@ class FlwtchWorker(context: Context, parameters: WorkerParameters) : val groupHandle = (a.get("groupHandle") as? String) ?: ""; Cwtch.rejectInvite(profile, groupHandle); } + "Shutdown" -> { + Cwtch.shutdownCwtch(); + return Result.success() + } else -> return Result.failure() } return Result.success() diff --git a/lib/cwtch/cwtch.dart b/lib/cwtch/cwtch.dart index c3477ce..30ce4de 100644 --- a/lib/cwtch/cwtch.dart +++ b/lib/cwtch/cwtch.dart @@ -62,5 +62,8 @@ abstract class Cwtch { // ignore: non_constant_identifier_names void RejectInvite(String profileOnion, String groupHandle); + // ignore: non_constant_identifier_names + void Shutdown(); + void dispose(); } diff --git a/lib/cwtch/ffi.dart b/lib/cwtch/ffi.dart index a15fd7d..75b57aa 100644 --- a/lib/cwtch/ffi.dart +++ b/lib/cwtch/ffi.dart @@ -19,6 +19,9 @@ import '../config.dart'; typedef start_cwtch_function = Int8 Function(Pointer str, Int32 length, Pointer str2, Int32 length2); typedef StartCwtchFn = int Function(Pointer dir, int len, Pointer tor, int torLen); +typedef void_from_void_funtion = Void Function(); +typedef VoidFromVoidFunction = void Function(); + typedef void_from_string_string_function = Void Function(Pointer, Int32, Pointer, Int32); typedef VoidFromStringStringFn = void Function(Pointer, int, Pointer, int); @@ -65,6 +68,7 @@ class CwtchFfi implements Cwtch { late DynamicLibrary library; late CwtchNotifier cwtchNotifier; late Isolate cwtchIsolate; + ReceivePort _receivePort = ReceivePort(); CwtchFfi(CwtchNotifier _cwtchNotifier) { if (Platform.isWindows) { @@ -105,7 +109,6 @@ class CwtchFfi implements Cwtch { StartCwtch(ut8CwtchDir, ut8CwtchDir.length, bundledTor.toNativeUtf8(), bundledTor.length); // Spawn an isolate to listen to events from libcwtch-go and then dispatch them when received on main thread to cwtchNotifier - var _receivePort = ReceivePort(); cwtchIsolate = await Isolate.spawn(_checkAppbusEvents, _receivePort.sendPort); _receivePort.listen((message) { var env = jsonDecode(message); @@ -135,6 +138,7 @@ class CwtchFfi implements Cwtch { await for (var value in stream) { sendPort.send(value); } + print("checkAppBusEvents finished..."); } // Steam of appbus events. Call blocks in libcwtch-go GetAppbusEvent. Static so the isolate can use it @@ -153,6 +157,12 @@ class CwtchFfi implements Cwtch { while (true) { Pointer result = GetAppbusEvent(); String event = result.toDartString(); + + print("$event"); + if (event.startsWith("{\"EventType\":\"Shutdown\"")) { + print("Shutting down isolate thread: $event"); + return; + } yield event; } } @@ -406,4 +416,21 @@ class CwtchFfi implements Cwtch { final u2 = currentPassword.toNativeUtf8(); DeleteProfile(u1, u1.length, u2, u2.length); } + + @override + Future Shutdown() async { + var shutdown = library.lookup>("c_ShutdownCwtch"); + // ignore: non_constant_identifier_names + + // Shutdown Cwtch + Tor... + final Shutdown = shutdown.asFunction(); + Shutdown(); + + // Kill our Isolate + cwtchIsolate.kill(priority: Isolate.immediate); + print("Isolate killed"); + + _receivePort.close(); + print("Receive Port Closed"); + } } diff --git a/lib/cwtch/gomobile.dart b/lib/cwtch/gomobile.dart index da389bd..9396164 100644 --- a/lib/cwtch/gomobile.dart +++ b/lib/cwtch/gomobile.dart @@ -198,4 +198,10 @@ class CwtchGomobile implements Cwtch { print("gomobile.dart UpdateMessageFlags " + index.toString()); cwtchPlatform.invokeMethod("UpdateMessageFlags", {"profile": profile, "contact": handle, "index": index, "flags": flags}); } + + @override + Future Shutdown() async { + print("gomobile.dart Shutdown"); + cwtchPlatform.invokeMethod("Shutdown", {}); + } } diff --git a/lib/l10n/intl_de.arb b/lib/l10n/intl_de.arb index 5c862eb..1ecdfc0 100644 --- a/lib/l10n/intl_de.arb +++ b/lib/l10n/intl_de.arb @@ -1,186 +1,190 @@ { "@@locale": "de", - "@@last_modified": "2021-06-15T02:08:49+02:00", - "createGroupTitle": "Gruppe Anlegen", - "serverLabel": "Server", - "groupNameLabel": "Gruppenname", - "defaultGroupName": "Tolle Gruppe", - "createGroupBtn": "Anlegen", - "profileOnionLabel": "Senden Sie diese Adresse an Peers, mit denen Sie sich verbinden möchten", - "copyBtn": "Kopieren", - "copiedToClipboardNotification": "in die Zwischenablage kopiert", - "addPeerTab": "Einen Peer hinzufügen", - "createGroupTab": "Eine Gruppe erstellen", - "joinGroupTab": "Einer Gruppe beitreten", - "peerAddress": "Adresse", - "peerName": "Namen", - "groupName": "Gruppenname", - "server": "Server", - "invitation": "Einladung", - "groupAddr": "Adresse", - "addPeer": "Peer hinzufügen", - "createGroup": "Gruppe erstellen", - "joinGroup": "Gruppe beitreten", - "newBulletinLabel": "Neue Meldung", - "postNewBulletinLabel": "Neue Meldung veröffentlichen", - "titlePlaceholder": "Titel...", + "@@last_modified": "2021-06-16T23:15:48+02:00", + "shutdownCwtchAction": "Shutdown Cwtch", + "shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.", + "shutdownCwtchDialogTitle": "Shutdown Cwtch?", + "shutdownCwtchTooltip": "Shutdown Cwtch", + "malformedMessage": "Malformed message", + "profileDeleteSuccess": "Successfully deleted profile", + "debugLog": "Turn on console debug logging", + "torNetworkStatus": "Tor network status", + "addContactFirst": "Add or pick a contact to begin chatting.", + "createProfileToBegin": "Please create or unlock a profile to begin", + "nickChangeSuccess": "Profile nickname changed successfully", + "addServerFirst": "You need to add a server before you can create a group", + "deleteProfileSuccess": "Successfully deleted profile", + "sendInvite": "Send a contact or group invite", + "sendMessage": "Send Message", + "cancel": "Cancel", + "resetTor": "Reset", + "torStatus": "Tor Status", + "torVersion": "Tor Version", + "sendAnInvitation": "You sent an invitation for: ", + "contactSuggestion": "This is a contact suggestion for: ", + "rejected": "Rejected!", + "accepted": "Accepted!", + "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", + "newPassword": "New Password", + "yesLeave": "Yes, Leave This Conversation", + "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", + "leaveGroup": "Leave This Conversation", + "inviteToGroup": "You have been invited to join a group:", "pasteAddressToAddContact": "Adresse hier hinzufügen, um einen Kontakt aufzunehmen", - "blocked": "Blockiert", - "cycleCatsAndroid": "Click to cycle category.\nLong-press to reset.", - "cycleCatsDesktop": "Click to cycle category.\nRight-click to reset.", - "cycleMorphsAndroid": "Click to cycle morphs.\nLong-press to reset.", - "cycleMorphsDesktop": "Click to cycle morphs.\nRight-click to reset.", - "cycleColoursAndroid": "Click to cycle colours.\nLong-press to reset.", - "cycleColoursDesktop": "Click to cycle colours.\nRight-click to reset.", - "search": "Suche...", - "invitationLabel": "Einladung", - "serverInfo": "Server-Informationen", - "serverConnectivityConnected": "Server verbunden", - "serverConnectivityDisconnected": "Server getrennt", - "serverSynced": "Synced", - "serverNotSynced": "Out of Sync", - "viewServerInfo": "Server Info", - "saveBtn": "speichern", - "inviteToGroupLabel": "In die Gruppe einladen", - "inviteBtn": "Einladen", - "deleteBtn": "löschen", - "update": "Update", - "searchList": "Search List", - "peerNotOnline": "Peer is Offline. Applications cannot be used right now.", - "addListItemBtn": "Element hinzufügen", - "membershipDescription": "Unten steht eine Liste der Benutzer, die Nachrichten an die Gruppe gesendet haben. Möglicherweise enthält diese Benutzerzliste nicht alle, die Zugang zur Gruppe haben.", - "dmTooltip": "Klicken, um DM zu senden", - "couldNotSendMsgError": "Nachricht konnte nicht gesendet werden", - "acknowledgedLabel": "bestätigt", - "pendingLabel": "Bestätigung ausstehend", - "peerBlockedMessage": "Peer ist blockiert", - "peerOfflineMessage": "Peer ist offline, Nachrichten können derzeit nicht zugestellt werden", - "copiedClipboardNotification": "in die Zwischenablage kopiert", - "newGroupBtn": "Neue Gruppe anlegen", - "acceptGroupInviteLabel": "Möchtest Du die Einladung annehmen", - "acceptGroupBtn": "Annehmen", - "rejectGroupBtn": "Ablehnen", - "chatBtn": "Chat", - "listsBtn": "Listen", - "bulletinsBtn": "Meldungen", - "puzzleGameBtn": "Puzzlespiel", - "addressLabel": "Adresse", - "displayNameLabel": "Angezeigter Name", - "blockBtn": "Peer blockieren", - "savePeerHistory": "Peer-Verlauf speichern", - "savePeerHistoryDescription": "Legt fest, ob ein mit dem Peer verknüpfter Verlauf gelöscht werden soll oder nicht.", - "dontSavePeerHistory": "Peer-Verlauf löschen", - "unblockBtn": "Peer entblockieren", - "addProfileTitle": "Neues Profil hinzufügen", - "editProfileTitle": "Profil bearbeiten", - "profileName": "Anzeigename", - "defaultProfileName": "Alice", - "newProfile": "Neues Profil", - "editProfile": "Profil bearbeiten", - "radioUsePassword": "Passwort", - "radioNoPassword": "Unverschlüsselt (kein Passwort)", - "noPasswordWarning": "Wenn für dieses Konto kein Passwort verwendet wird, bedeutet dies, dass alle lokal gespeicherten Daten nicht verschlüsselt werden.", - "yourDisplayName": "Ihr Anzeigename", - "currentPasswordLabel": "derzeitiges Passwort", - "password1Label": "Passwort", - "password2Label": "Passwort erneut eingeben", - "passwordErrorEmpty": "Passwort kann nicht leer sein", - "createProfileBtn": "Profil speichern", - "saveProfileBtn": "Profil speichern", - "passwordErrorMatch": "Passwörter stimmen nicht überein", - "passwordChangeError": "Fehler beim Ändern des Passworts: Das Passwort wurde abgelehnt", - "deleteProfileBtn": "Profil löschen", - "deleteConfirmLabel": "Geben Sie LÖSCHEN zur Bestätigung ein", - "deleteProfileConfirmBtn": "Profil wirklich löschen", - "deleteConfirmText": "LÖSCHEN", - "addNewProfileBtn": "Neues Profil hinzufügen", - "enterProfilePassword": "Geben Sie ein Passwort ein, um Ihre Profile anzuzeigen", - "password": "Passwort", - "error0ProfilesLoadedForPassword": "0 Profile mit diesem Passwort geladen", - "yourProfiles": "Ihre Profile", - "yourServers": "Ihre Server", - "unlock": "Entsperren", - "cwtchSettingsTitle": "Cwtch Einstellungen", - "versionBuilddate": "Version: %1 Aufgebaut auf: %2", - "zoomLabel": "Benutzeroberflächen-Zoom (betriftt hauptsächlich Text- und Knopgrößen)", - "blockUnknownLabel": "Unbekannte Peers blockieren", - "settingLanguage": "Sprache", - "localeEn": "English", - "localeFr": "Frances", - "localePt": "Portuguesa", - "localeDe": "Deutsche", - "settingInterfaceZoom": "Zoomstufe", - "largeTextLabel": "Groß", - "settingTheme": "Thema", - "themeLight": "Licht", - "themeDark": "Dunkel", + "tooltipAddContact": "Add a new contact or conversation", + "titleManageContacts": "Conversations", + "titleManageServers": "Manage Servers", + "dateMonthsAgo": "Months Ago", + "dateNever": "Never", + "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", + "dateLastYear": "Last Year", + "dateYesterday": "Yesterday", + "dateLastMonth": "Last Month", + "dateWeeksAgo": "Weeks Ago", + "dateDaysAgo": "Days Ago", + "dateHoursAgo": "Hours Ago", + "dateMinutesAgo": "Minutes Ago", + "dateRightNow": "Right Now", + "successfullAddedContact": "Successfully added ", + "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", + "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", + "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", + "titleManageProfiles": "Manage Cwtch Profiles", + "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", + "tooltipOpenSettings": "Open the settings pane", + "invalidImportString": "Invalid import string", + "contactAlreadyExists": "Contact Already Exists", + "conversationSettings": "Conversation Settings", + "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", + "enableGroups": "Enable Group Chat", "experimentsEnabled": "Experimente aktiviert", - "versionTor": "Version %1 mit tor %2", - "version": "Version %1", - "builddate": "Aufgebaut auf: %2", - "defaultScalingText": "defaultmäßige Textgröße (Skalierungsfaktor:", - "smallTextLabel": "Klein", - "loadingTor": "Tor wird geladen...", - "viewGroupMembershipTooltip": "Gruppenmitgliedschaft anzeigen", - "networkStatusDisconnected": "Vom Internet getrennt, überprüfen Sie Ihre Verbindung", - "networkStatusAttemptingTor": "Versuche, eine Verbindung mit dem Tor-Netzwerk herzustellen", - "networkStatusConnecting": "Verbinde zu Netzwerk und Peers ...", - "networkStatusOnline": "Online", - "newConnectionPaneTitle": "Neue Verbindung", + "localeIt": "Italiana", + "localeEs": "Espanol", "addListItem": "Liste hinzufügen", "addNewItem": "Ein neues Element zur Liste hinzufügen", "todoPlaceholder": "noch zu erledigen", - "localeEs": "Espanol", - "localeIt": "Italiana", - "enableGroups": "Enable Group Chat", - "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", - "conversationSettings": "Conversation Settings", - "invalidImportString": "Invalid import string", - "contactAlreadyExists": "Contact Already Exists", - "tooltipOpenSettings": "Open the settings pane", - "tooltipAddContact": "Add a new contact or conversation", - "titleManageContacts": "Conversations", - "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", - "titleManageProfiles": "Manage Cwtch Profiles", - "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", - "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", - "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", - "successfullAddedContact": "Successfully added ", - "dateRightNow": "Right Now", - "dateMinutesAgo": "Minutes Ago", - "dateHoursAgo": "Hours Ago", - "dateDaysAgo": "Days Ago", - "dateWeeksAgo": "Weeks Ago", - "dateLastMonth": "Last Month", - "dateYesterday": "Yesterday", - "dateLastYear": "Last Year", - "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", - "dateNever": "Never", - "dateMonthsAgo": "Months Ago", - "titleManageServers": "Manage Servers", - "inviteToGroup": "You have been invited to join a group:", - "leaveGroup": "Leave This Conversation", - "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", - "yesLeave": "Yes, Leave This Conversation", - "newPassword": "New Password", - "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", - "accepted": "Accepted!", - "rejected": "Rejected!", - "contactSuggestion": "This is a contact suggestion for: ", - "sendAnInvitation": "You sent an invitation for: ", - "torVersion": "Tor Version", - "torStatus": "Tor Status", - "resetTor": "Reset", - "cancel": "Cancel", - "sendMessage": "Send Message", - "sendInvite": "Send a contact or group invite", - "deleteProfileSuccess": "Successfully deleted profile", - "addServerFirst": "You need to add a server before you can create a group", - "nickChangeSuccess": "Profile nickname changed successfully", - "createProfileToBegin": "Please create or unlock a profile to begin", - "addContactFirst": "Add or pick a contact to begin chatting.", - "torNetworkStatus": "Tor network status", - "debugLog": "Turn on console debug logging", - "profileDeleteSuccess": "Successfully deleted profile", - "malformedMessage": "Malformed message" + "newConnectionPaneTitle": "Neue Verbindung", + "networkStatusOnline": "Online", + "networkStatusConnecting": "Verbinde zu Netzwerk und Peers ...", + "networkStatusAttemptingTor": "Versuche, eine Verbindung mit dem Tor-Netzwerk herzustellen", + "networkStatusDisconnected": "Vom Internet getrennt, überprüfen Sie Ihre Verbindung", + "viewGroupMembershipTooltip": "Gruppenmitgliedschaft anzeigen", + "loadingTor": "Tor wird geladen...", + "smallTextLabel": "Klein", + "defaultScalingText": "defaultmäßige Textgröße (Skalierungsfaktor:", + "builddate": "Aufgebaut auf: %2", + "version": "Version %1", + "versionTor": "Version %1 mit tor %2", + "themeDark": "Dunkel", + "themeLight": "Licht", + "settingTheme": "Thema", + "largeTextLabel": "Groß", + "settingInterfaceZoom": "Zoomstufe", + "localeDe": "Deutsche", + "localePt": "Portuguesa", + "localeFr": "Frances", + "localeEn": "English", + "settingLanguage": "Sprache", + "blockUnknownLabel": "Unbekannte Peers blockieren", + "zoomLabel": "Benutzeroberflächen-Zoom (betriftt hauptsächlich Text- und Knopgrößen)", + "versionBuilddate": "Version: %1 Aufgebaut auf: %2", + "cwtchSettingsTitle": "Cwtch Einstellungen", + "unlock": "Entsperren", + "yourServers": "Ihre Server", + "yourProfiles": "Ihre Profile", + "error0ProfilesLoadedForPassword": "0 Profile mit diesem Passwort geladen", + "password": "Passwort", + "enterProfilePassword": "Geben Sie ein Passwort ein, um Ihre Profile anzuzeigen", + "addNewProfileBtn": "Neues Profil hinzufügen", + "deleteConfirmText": "LÖSCHEN", + "deleteProfileConfirmBtn": "Profil wirklich löschen", + "deleteConfirmLabel": "Geben Sie LÖSCHEN zur Bestätigung ein", + "deleteProfileBtn": "Profil löschen", + "passwordChangeError": "Fehler beim Ändern des Passworts: Das Passwort wurde abgelehnt", + "passwordErrorMatch": "Passwörter stimmen nicht überein", + "saveProfileBtn": "Profil speichern", + "createProfileBtn": "Profil speichern", + "passwordErrorEmpty": "Passwort kann nicht leer sein", + "password2Label": "Passwort erneut eingeben", + "password1Label": "Passwort", + "currentPasswordLabel": "derzeitiges Passwort", + "yourDisplayName": "Ihr Anzeigename", + "profileOnionLabel": "Senden Sie diese Adresse an Peers, mit denen Sie sich verbinden möchten", + "noPasswordWarning": "Wenn für dieses Konto kein Passwort verwendet wird, bedeutet dies, dass alle lokal gespeicherten Daten nicht verschlüsselt werden.", + "radioNoPassword": "Unverschlüsselt (kein Passwort)", + "radioUsePassword": "Passwort", + "copiedToClipboardNotification": "in die Zwischenablage kopiert", + "copyBtn": "Kopieren", + "editProfile": "Profil bearbeiten", + "newProfile": "Neues Profil", + "defaultProfileName": "Alice", + "profileName": "Anzeigename", + "editProfileTitle": "Profil bearbeiten", + "addProfileTitle": "Neues Profil hinzufügen", + "deleteBtn": "löschen", + "unblockBtn": "Peer entblockieren", + "dontSavePeerHistory": "Peer-Verlauf löschen", + "savePeerHistoryDescription": "Legt fest, ob ein mit dem Peer verknüpfter Verlauf gelöscht werden soll oder nicht.", + "savePeerHistory": "Peer-Verlauf speichern", + "blockBtn": "Peer blockieren", + "saveBtn": "speichern", + "displayNameLabel": "Angezeigter Name", + "addressLabel": "Adresse", + "puzzleGameBtn": "Puzzlespiel", + "bulletinsBtn": "Meldungen", + "listsBtn": "Listen", + "chatBtn": "Chat", + "rejectGroupBtn": "Ablehnen", + "acceptGroupBtn": "Annehmen", + "acceptGroupInviteLabel": "Möchtest Du die Einladung annehmen", + "newGroupBtn": "Neue Gruppe anlegen", + "copiedClipboardNotification": "in die Zwischenablage kopiert", + "peerOfflineMessage": "Peer ist offline, Nachrichten können derzeit nicht zugestellt werden", + "peerBlockedMessage": "Peer ist blockiert", + "pendingLabel": "Bestätigung ausstehend", + "acknowledgedLabel": "bestätigt", + "couldNotSendMsgError": "Nachricht konnte nicht gesendet werden", + "dmTooltip": "Klicken, um DM zu senden", + "membershipDescription": "Unten steht eine Liste der Benutzer, die Nachrichten an die Gruppe gesendet haben. Möglicherweise enthält diese Benutzerzliste nicht alle, die Zugang zur Gruppe haben.", + "addListItemBtn": "Element hinzufügen", + "peerNotOnline": "Peer is Offline. Applications cannot be used right now.", + "searchList": "Search List", + "update": "Update", + "inviteBtn": "Einladen", + "inviteToGroupLabel": "In die Gruppe einladen", + "groupNameLabel": "Gruppenname", + "viewServerInfo": "Server Info", + "serverNotSynced": "Out of Sync", + "serverSynced": "Synced", + "serverConnectivityDisconnected": "Server getrennt", + "serverConnectivityConnected": "Server verbunden", + "serverInfo": "Server-Informationen", + "invitationLabel": "Einladung", + "serverLabel": "Server", + "search": "Suche...", + "cycleColoursDesktop": "Click to cycle colours.\nRight-click to reset.", + "cycleColoursAndroid": "Click to cycle colours.\nLong-press to reset.", + "cycleMorphsDesktop": "Click to cycle morphs.\nRight-click to reset.", + "cycleMorphsAndroid": "Click to cycle morphs.\nLong-press to reset.", + "cycleCatsDesktop": "Click to cycle category.\nRight-click to reset.", + "cycleCatsAndroid": "Click to cycle category.\nLong-press to reset.", + "blocked": "Blockiert", + "titlePlaceholder": "Titel...", + "postNewBulletinLabel": "Neue Meldung veröffentlichen", + "newBulletinLabel": "Neue Meldung", + "joinGroup": "Gruppe beitreten", + "createGroup": "Gruppe erstellen", + "addPeer": "Peer hinzufügen", + "groupAddr": "Adresse", + "invitation": "Einladung", + "server": "Server", + "groupName": "Gruppenname", + "peerName": "Namen", + "peerAddress": "Adresse", + "joinGroupTab": "Einer Gruppe beitreten", + "createGroupTab": "Eine Gruppe erstellen", + "addPeerTab": "Einen Peer hinzufügen", + "createGroupBtn": "Anlegen", + "defaultGroupName": "Tolle Gruppe", + "createGroupTitle": "Gruppe Anlegen" } \ No newline at end of file diff --git a/lib/l10n/intl_en.arb b/lib/l10n/intl_en.arb index d4c68f5..6b0d305 100644 --- a/lib/l10n/intl_en.arb +++ b/lib/l10n/intl_en.arb @@ -1,186 +1,190 @@ { "@@locale": "en", - "@@last_modified": "2021-06-15T02:08:49+02:00", - "createGroupTitle": "Create Group", - "serverLabel": "Server", - "groupNameLabel": "Group Name", - "defaultGroupName": "Awesome Group", - "createGroupBtn": "Create", - "profileOnionLabel": "Send this address to peers you want to connect with", - "copyBtn": "Copy", - "copiedToClipboardNotification": "Copied to Clipboard", - "addPeerTab": "Add a peer", - "createGroupTab": "Create a group", - "joinGroupTab": "Join a group", - "peerAddress": "Address", - "peerName": "Name", - "groupName": "Group name", - "server": "Server", - "invitation": "Invitation", - "groupAddr": "Address", - "addPeer": "Add Peer", - "createGroup": "Create group", - "joinGroup": "Join group", - "newBulletinLabel": "New Bulletin", - "postNewBulletinLabel": "Post new bulletin", - "titlePlaceholder": "title...", + "@@last_modified": "2021-06-16T23:15:48+02:00", + "shutdownCwtchAction": "Shutdown Cwtch", + "shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.", + "shutdownCwtchDialogTitle": "Shutdown Cwtch?", + "shutdownCwtchTooltip": "Shutdown Cwtch", + "malformedMessage": "Malformed message", + "profileDeleteSuccess": "Successfully deleted profile", + "debugLog": "Turn on console debug logging", + "torNetworkStatus": "Tor network status", + "addContactFirst": "Add or pick a contact to begin chatting.", + "createProfileToBegin": "Please create or unlock a profile to begin", + "nickChangeSuccess": "Profile nickname changed successfully", + "addServerFirst": "You need to add a server before you can create a group", + "deleteProfileSuccess": "Successfully deleted profile", + "sendInvite": "Send a contact or group invite", + "sendMessage": "Send Message", + "cancel": "Cancel", + "resetTor": "Reset", + "torStatus": "Tor Status", + "torVersion": "Tor Version", + "sendAnInvitation": "You sent an invitation for: ", + "contactSuggestion": "This is a contact suggestion for: ", + "rejected": "Rejected!", + "accepted": "Accepted!", + "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", + "newPassword": "New Password", + "yesLeave": "Yes, Leave This Conversation", + "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", + "leaveGroup": "Leave This Conversation", + "inviteToGroup": "You have been invited to join a group:", "pasteAddressToAddContact": "Paste a cwtch address, invitation or key bundle here to add a new conversation", - "blocked": "Blocked", - "cycleCatsAndroid": "Click to cycle category.\nLong-press to reset.", - "cycleCatsDesktop": "Click to cycle category.\nRight-click to reset.", - "cycleMorphsAndroid": "Click to cycle morphs.\nLong-press to reset.", - "cycleMorphsDesktop": "Click to cycle morphs.\nRight-click to reset.", - "cycleColoursAndroid": "Click to cycle colours.\nLong-press to reset.", - "cycleColoursDesktop": "Click to cycle colours.\nRight-click to reset.", - "search": "Search...", - "invitationLabel": "Invitation", - "serverInfo": "Server Information", - "serverConnectivityConnected": "Server Connected", - "serverConnectivityDisconnected": "Server Disconnected", - "serverSynced": "Synced", - "serverNotSynced": "Out of Sync", - "viewServerInfo": "Server Info", - "saveBtn": "Save", - "inviteToGroupLabel": "Invite to group", - "inviteBtn": "Invite", - "deleteBtn": "Delete", - "update": "Update", - "searchList": "Search List", - "peerNotOnline": "Peer is Offline. Applications cannot be used right now.", - "addListItemBtn": "Add Item", - "membershipDescription": "Below is a list of users who have sent messages to the group. This list may not reflect all users who have access to the group.", - "dmTooltip": "Click to DM", - "couldNotSendMsgError": "Could not send this message", - "acknowledgedLabel": "Acknowledged", - "pendingLabel": "Pending", - "peerBlockedMessage": "Peer is blocked", - "peerOfflineMessage": "Peer is offline, messages can't be delivered right now", - "copiedClipboardNotification": "Copied to clipboard", - "newGroupBtn": "Create new group", - "acceptGroupInviteLabel": "Do you want to accept the invitation to", - "acceptGroupBtn": "Accept", - "rejectGroupBtn": "Reject", - "chatBtn": "Chat", - "listsBtn": "Lists", - "bulletinsBtn": "Bulletins", - "puzzleGameBtn": "Puzzle Game", - "addressLabel": "Address", - "displayNameLabel": "Display Name", - "blockBtn": "Block Peer", - "savePeerHistory": "Save Peer History", - "savePeerHistoryDescription": "Determines whether or not to delete any history associated with the peer.", - "dontSavePeerHistory": "Delete Peer History", - "unblockBtn": "Unblock Peer", - "addProfileTitle": "Add new profile", - "editProfileTitle": "Edit Profile", - "profileName": "Display name", - "defaultProfileName": "Alice", - "newProfile": "New Profile", - "editProfile": "Edit Profille", - "radioUsePassword": "Password", - "radioNoPassword": "Unencrypted (No password)", - "noPasswordWarning": "Not using a password on this account means that all data stored locally will not be encrypted", - "yourDisplayName": "Your Display Name", - "currentPasswordLabel": "Current Password", - "password1Label": "Password", - "password2Label": "Reenter password", - "passwordErrorEmpty": "Password cannot be empty", - "createProfileBtn": "Create Profile", - "saveProfileBtn": "Save Profile", - "passwordErrorMatch": "Passwords do not match", - "passwordChangeError": "Error changing password: Supplied password rejected", - "deleteProfileBtn": "Delete Profile", - "deleteConfirmLabel": "Type DELETE to confirm", - "deleteProfileConfirmBtn": "Really Delete Profile", - "deleteConfirmText": "DELETE", - "addNewProfileBtn": "Add new profile", - "enterProfilePassword": "Enter a password to view your profiles", - "password": "Password", - "error0ProfilesLoadedForPassword": "0 profiles loaded with that password", - "yourProfiles": "Your Profiles", - "yourServers": "Your Servers", - "unlock": "Unlock", - "cwtchSettingsTitle": "Cwtch Settings", - "versionBuilddate": "Version: %1 Built on: %2", - "zoomLabel": "Interface zoom (mostly affects text and button sizes)", - "blockUnknownLabel": "Block Unknown Peers", - "settingLanguage": "Language", - "localeEn": "English", - "localeFr": "Frances", - "localePt": "Portuguesa", - "localeDe": "Deutsche", - "settingInterfaceZoom": "Zoom level", - "largeTextLabel": "Large", - "settingTheme": "Theme", - "themeLight": "Light", - "themeDark": "Dark", + "tooltipAddContact": "Add a new contact or conversation", + "titleManageContacts": "Conversations", + "titleManageServers": "Manage Servers", + "dateMonthsAgo": "Months Ago", + "dateNever": "Never", + "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", + "dateLastYear": "Last Year", + "dateYesterday": "Yesterday", + "dateLastMonth": "Last Month", + "dateWeeksAgo": "Weeks Ago", + "dateDaysAgo": "Days Ago", + "dateHoursAgo": "Hours Ago", + "dateMinutesAgo": "Minutes Ago", + "dateRightNow": "Right Now", + "successfullAddedContact": "Successfully added ", + "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", + "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", + "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", + "titleManageProfiles": "Manage Cwtch Profiles", + "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", + "tooltipOpenSettings": "Open the settings pane", + "invalidImportString": "Invalid import string", + "contactAlreadyExists": "Contact Already Exists", + "conversationSettings": "Conversation Settings", + "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", + "enableGroups": "Enable Group Chat", "experimentsEnabled": "Enable Experiments", - "versionTor": "Version %1 with tor %2", - "version": "Version %1", - "builddate": "Built on: %2", - "defaultScalingText": "Default size text (scale factor:", - "smallTextLabel": "Small", - "loadingTor": "Loading tor...", - "viewGroupMembershipTooltip": "View Group Membership", - "networkStatusDisconnected": "Disconnected from the internet, check your connection", - "networkStatusAttemptingTor": "Attempting to connect to Tor network", - "networkStatusConnecting": "Connecting to network and peers...", - "networkStatusOnline": "Online", - "newConnectionPaneTitle": "New Connection", + "localeIt": "Italiana", + "localeEs": "Espanol", "addListItem": "Add a New List Item", "addNewItem": "Add a new item to the list", "todoPlaceholder": "Todo...", - "localeEs": "Espanol", - "localeIt": "Italiana", - "enableGroups": "Enable Group Chat", - "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", - "conversationSettings": "Conversation Settings", - "invalidImportString": "Invalid import string", - "contactAlreadyExists": "Contact Already Exists", - "tooltipOpenSettings": "Open the settings pane", - "tooltipAddContact": "Add a new contact or conversation", - "titleManageContacts": "Conversations", - "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", - "titleManageProfiles": "Manage Cwtch Profiles", - "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", - "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", - "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", - "successfullAddedContact": "Successfully added ", - "dateRightNow": "Right Now", - "dateMinutesAgo": "Minutes Ago", - "dateHoursAgo": "Hours Ago", - "dateDaysAgo": "Days Ago", - "dateWeeksAgo": "Weeks Ago", - "dateLastMonth": "Last Month", - "dateYesterday": "Yesterday", - "dateLastYear": "Last Year", - "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", - "dateNever": "Never", - "dateMonthsAgo": "Months Ago", - "titleManageServers": "Manage Servers", - "inviteToGroup": "You have been invited to join a group:", - "leaveGroup": "Leave This Conversation", - "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", - "yesLeave": "Yes, Leave This Conversation", - "newPassword": "New Password", - "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", - "accepted": "Accepted!", - "rejected": "Rejected!", - "contactSuggestion": "This is a contact suggestion for: ", - "sendAnInvitation": "You sent an invitation for: ", - "torVersion": "Tor Version", - "torStatus": "Tor Status", - "resetTor": "Reset", - "cancel": "Cancel", - "sendMessage": "Send Message", - "sendInvite": "Send a contact or group invite", - "deleteProfileSuccess": "Successfully deleted profile", - "addServerFirst": "You need to add a server before you can create a group", - "nickChangeSuccess": "Profile nickname changed successfully", - "createProfileToBegin": "Please create or unlock a profile to begin", - "addContactFirst": "Add or pick a contact to begin chatting.", - "torNetworkStatus": "Tor network status", - "debugLog": "Turn on console debug logging", - "profileDeleteSuccess": "Successfully deleted profile", - "malformedMessage": "Malformed message" + "newConnectionPaneTitle": "New Connection", + "networkStatusOnline": "Online", + "networkStatusConnecting": "Connecting to network and peers...", + "networkStatusAttemptingTor": "Attempting to connect to Tor network", + "networkStatusDisconnected": "Disconnected from the internet, check your connection", + "viewGroupMembershipTooltip": "View Group Membership", + "loadingTor": "Loading tor...", + "smallTextLabel": "Small", + "defaultScalingText": "Default size text (scale factor:", + "builddate": "Built on: %2", + "version": "Version %1", + "versionTor": "Version %1 with tor %2", + "themeDark": "Dark", + "themeLight": "Light", + "settingTheme": "Theme", + "largeTextLabel": "Large", + "settingInterfaceZoom": "Zoom level", + "localeDe": "Deutsche", + "localePt": "Portuguesa", + "localeFr": "Frances", + "localeEn": "English", + "settingLanguage": "Language", + "blockUnknownLabel": "Block Unknown Peers", + "zoomLabel": "Interface zoom (mostly affects text and button sizes)", + "versionBuilddate": "Version: %1 Built on: %2", + "cwtchSettingsTitle": "Cwtch Settings", + "unlock": "Unlock", + "yourServers": "Your Servers", + "yourProfiles": "Your Profiles", + "error0ProfilesLoadedForPassword": "0 profiles loaded with that password", + "password": "Password", + "enterProfilePassword": "Enter a password to view your profiles", + "addNewProfileBtn": "Add new profile", + "deleteConfirmText": "DELETE", + "deleteProfileConfirmBtn": "Really Delete Profile", + "deleteConfirmLabel": "Type DELETE to confirm", + "deleteProfileBtn": "Delete Profile", + "passwordChangeError": "Error changing password: Supplied password rejected", + "passwordErrorMatch": "Passwords do not match", + "saveProfileBtn": "Save Profile", + "createProfileBtn": "Create Profile", + "passwordErrorEmpty": "Password cannot be empty", + "password2Label": "Reenter password", + "password1Label": "Password", + "currentPasswordLabel": "Current Password", + "yourDisplayName": "Your Display Name", + "profileOnionLabel": "Send this address to peers you want to connect with", + "noPasswordWarning": "Not using a password on this account means that all data stored locally will not be encrypted", + "radioNoPassword": "Unencrypted (No password)", + "radioUsePassword": "Password", + "copiedToClipboardNotification": "Copied to Clipboard", + "copyBtn": "Copy", + "editProfile": "Edit Profille", + "newProfile": "New Profile", + "defaultProfileName": "Alice", + "profileName": "Display name", + "editProfileTitle": "Edit Profile", + "addProfileTitle": "Add new profile", + "deleteBtn": "Delete", + "unblockBtn": "Unblock Peer", + "dontSavePeerHistory": "Delete Peer History", + "savePeerHistoryDescription": "Determines whether or not to delete any history associated with the peer.", + "savePeerHistory": "Save Peer History", + "blockBtn": "Block Peer", + "saveBtn": "Save", + "displayNameLabel": "Display Name", + "addressLabel": "Address", + "puzzleGameBtn": "Puzzle Game", + "bulletinsBtn": "Bulletins", + "listsBtn": "Lists", + "chatBtn": "Chat", + "rejectGroupBtn": "Reject", + "acceptGroupBtn": "Accept", + "acceptGroupInviteLabel": "Do you want to accept the invitation to", + "newGroupBtn": "Create new group", + "copiedClipboardNotification": "Copied to clipboard", + "peerOfflineMessage": "Peer is offline, messages can't be delivered right now", + "peerBlockedMessage": "Peer is blocked", + "pendingLabel": "Pending", + "acknowledgedLabel": "Acknowledged", + "couldNotSendMsgError": "Could not send this message", + "dmTooltip": "Click to DM", + "membershipDescription": "Below is a list of users who have sent messages to the group. This list may not reflect all users who have access to the group.", + "addListItemBtn": "Add Item", + "peerNotOnline": "Peer is Offline. Applications cannot be used right now.", + "searchList": "Search List", + "update": "Update", + "inviteBtn": "Invite", + "inviteToGroupLabel": "Invite to group", + "groupNameLabel": "Group Name", + "viewServerInfo": "Server Info", + "serverNotSynced": "Out of Sync", + "serverSynced": "Synced", + "serverConnectivityDisconnected": "Server Disconnected", + "serverConnectivityConnected": "Server Connected", + "serverInfo": "Server Information", + "invitationLabel": "Invitation", + "serverLabel": "Server", + "search": "Search...", + "cycleColoursDesktop": "Click to cycle colours.\nRight-click to reset.", + "cycleColoursAndroid": "Click to cycle colours.\nLong-press to reset.", + "cycleMorphsDesktop": "Click to cycle morphs.\nRight-click to reset.", + "cycleMorphsAndroid": "Click to cycle morphs.\nLong-press to reset.", + "cycleCatsDesktop": "Click to cycle category.\nRight-click to reset.", + "cycleCatsAndroid": "Click to cycle category.\nLong-press to reset.", + "blocked": "Blocked", + "titlePlaceholder": "title...", + "postNewBulletinLabel": "Post new bulletin", + "newBulletinLabel": "New Bulletin", + "joinGroup": "Join group", + "createGroup": "Create group", + "addPeer": "Add Peer", + "groupAddr": "Address", + "invitation": "Invitation", + "server": "Server", + "groupName": "Group name", + "peerName": "Name", + "peerAddress": "Address", + "joinGroupTab": "Join a group", + "createGroupTab": "Create a group", + "addPeerTab": "Add a peer", + "createGroupBtn": "Create", + "defaultGroupName": "Awesome Group", + "createGroupTitle": "Create Group" } \ No newline at end of file diff --git a/lib/l10n/intl_es.arb b/lib/l10n/intl_es.arb index c48b4ae..2f184d1 100644 --- a/lib/l10n/intl_es.arb +++ b/lib/l10n/intl_es.arb @@ -1,186 +1,190 @@ { "@@locale": "es", - "@@last_modified": "2021-06-15T02:08:49+02:00", - "createGroupTitle": "Crear un grupo", - "serverLabel": "Servidor", - "groupNameLabel": "Nombre del grupo", - "defaultGroupName": "El Grupo Asombroso", - "createGroupBtn": "Crear", - "profileOnionLabel": "Envía esta dirección a los contactos con los que quieras conectarte", - "copyBtn": "Copiar", - "copiedToClipboardNotification": "Copiado al portapapeles", - "addPeerTab": "Agregar Contacto", - "createGroupTab": "Crear un grupo", - "joinGroupTab": "Únete a un grupo", - "peerAddress": "Dirección", - "peerName": "Nombre", - "groupName": "Nombre del grupo", - "server": "Servidor", - "invitation": "Invitación", - "groupAddr": "Dirección", - "addPeer": "Agregar Contacto", - "createGroup": "Crear perfil", - "joinGroup": "Únete al grupo", - "newBulletinLabel": "Nuevo Boletín", - "postNewBulletinLabel": "Publicar nuevo boletín", - "titlePlaceholder": "título...", + "@@last_modified": "2021-06-16T23:15:48+02:00", + "shutdownCwtchAction": "Shutdown Cwtch", + "shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.", + "shutdownCwtchDialogTitle": "Shutdown Cwtch?", + "shutdownCwtchTooltip": "Shutdown Cwtch", + "malformedMessage": "Malformed message", + "profileDeleteSuccess": "Successfully deleted profile", + "debugLog": "Turn on console debug logging", + "torNetworkStatus": "Tor network status", + "addContactFirst": "Add or pick a contact to begin chatting.", + "createProfileToBegin": "Please create or unlock a profile to begin", + "nickChangeSuccess": "Profile nickname changed successfully", + "addServerFirst": "You need to add a server before you can create a group", + "deleteProfileSuccess": "Successfully deleted profile", + "sendInvite": "Send a contact or group invite", + "sendMessage": "Send Message", + "cancel": "Cancel", + "resetTor": "Reset", + "torStatus": "Tor Status", + "torVersion": "Tor Version", + "sendAnInvitation": "You sent an invitation for: ", + "contactSuggestion": "This is a contact suggestion for: ", + "rejected": "Rejected!", + "accepted": "Accepted!", + "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", + "newPassword": "New Password", + "yesLeave": "Yes, Leave This Conversation", + "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", + "leaveGroup": "Leave This Conversation", + "inviteToGroup": "You have been invited to join a group:", "pasteAddressToAddContact": "...pegar una dirección aquí para añadir contacto...", - "blocked": "Bloqueado", - "cycleCatsAndroid": "Click para cambiar categoría. Mantenga pulsado para reiniciar.", - "cycleCatsDesktop": "Click para cambiar categoría. Click derecho para reiniciar.", - "cycleMorphsAndroid": "Click para cambiar transformaciones. Mantenga pulsado para reiniciar.", - "cycleMorphsDesktop": "Click para cambiar transformaciones. Click derecho para reiniciar.", - "cycleColoursAndroid": "Click para cambiar colores. Mantenga pulsado para reiniciar.", - "cycleColoursDesktop": "Click para cambiar colores. Click derecho para reiniciar.", - "search": "Búsqueda...", - "invitationLabel": "Invitación", - "serverInfo": "Información del servidor", - "serverConnectivityConnected": "Servidor conectado", - "serverConnectivityDisconnected": "Servidor desconectado", - "serverSynced": "Sincronizado", - "serverNotSynced": "Fuera de sincronización con el servidor", - "viewServerInfo": "Información del servidor", - "saveBtn": "Guardar", - "inviteToGroupLabel": "Invitar al grupo", - "inviteBtn": "Invitar", - "deleteBtn": "Eliminar", - "update": "Actualizar", - "searchList": "Buscar en la lista", - "peerNotOnline": "Este contacto no está en línea, la aplicación no puede ser usada en este momento", - "addListItemBtn": "Agregar artículo", - "membershipDescription": "La lista a continuación solo muestra los miembros que han enviado mensajes al grupo, no incluye a todos los usuarios dentro del grupo", - "dmTooltip": "Haz clic para enviar mensaje directo", - "couldNotSendMsgError": "No se pudo enviar este mensaje", - "acknowledgedLabel": "Reconocido", - "pendingLabel": "Pendiente", - "peerBlockedMessage": "Contacto bloqueado", - "peerOfflineMessage": "Este contacto no está en línea, los mensajes no pueden ser entregados en este momento", - "copiedClipboardNotification": "Copiado al portapapeles", - "newGroupBtn": "Crear un nuevo grupo de chat", - "acceptGroupInviteLabel": "¿Quieres aceptar la invitación a ", - "acceptGroupBtn": "Aceptar", - "rejectGroupBtn": "Rechazar", - "chatBtn": "Chat", - "listsBtn": "Listas", - "bulletinsBtn": "Boletines", - "puzzleGameBtn": "Juego de rompecabezas", - "addressLabel": "Dirección", - "displayNameLabel": "Nombre de Usuario", - "blockBtn": "Bloquear contacto", - "savePeerHistory": "Guardar el historial con contacto", - "savePeerHistoryDescription": "Determina si eliminar o no el historial asociado con el contacto.", - "dontSavePeerHistory": "Eliminar historial de contacto", - "unblockBtn": "Desbloquear contacto", - "addProfileTitle": "Agregar nuevo perfil", - "editProfileTitle": "Editar perfil", - "profileName": "Nombre de Usuario", - "defaultProfileName": "Alicia", - "newProfile": "Nuevo perfil", - "editProfile": "Editar perfil", - "radioUsePassword": "Contraseña", - "radioNoPassword": "Sin cifrado (sin contraseña)", - "noPasswordWarning": "No usar una contraseña para esta cuenta significa que los datos almacenados localmente no serán encriptados", - "yourDisplayName": "Tu nombre de usuario", - "currentPasswordLabel": "Contraseña actual", - "password1Label": "Contraseña", - "password2Label": "Vuelve a ingresar tu contraseña", - "passwordErrorEmpty": "El campo de contraseña no puede estar vacío", - "createProfileBtn": "Crear perfil", - "saveProfileBtn": "Guardar perfil", - "passwordErrorMatch": "Las contraseñas no coinciden", - "passwordChangeError": "Hubo un error cambiando tu contraseña: la contraseña ingresada fue rechazada", - "deleteProfileBtn": "Eliminar Perfil", - "deleteConfirmLabel": "Escribe ELIMINAR para confirmar", - "deleteProfileConfirmBtn": "Confirmar eliminar perfil", - "deleteConfirmText": "ELIMINAR", - "addNewProfileBtn": "Agregar nuevo perfil", - "enterProfilePassword": "Ingresa tu contraseña para ver tus perfiles", - "password": "Contraseña", - "error0ProfilesLoadedForPassword": "0 perfiles cargados con esa contraseña", - "yourProfiles": "Tus perfiles", - "yourServers": "Tus servidores", - "unlock": "Desbloquear", - "cwtchSettingsTitle": "Configuración de Cwtch", - "versionBuilddate": "Versión: %1 Basado en %2", - "zoomLabel": "Zoom de la interfaz (afecta principalmente el tamaño del texto y de los botones)", - "blockUnknownLabel": "Bloquear conexiones desconocidas", - "settingLanguage": "Idioma", - "localeEn": "Inglés", - "localeFr": "Francés", - "localePt": "Portugués", - "localeDe": "Alemán", - "settingInterfaceZoom": "Nivel de zoom", - "largeTextLabel": "Grande", - "settingTheme": "Tema", - "themeLight": "Claro", - "themeDark": "Oscuro", + "tooltipAddContact": "Add a new contact or conversation", + "titleManageContacts": "Conversations", + "titleManageServers": "Manage Servers", + "dateMonthsAgo": "Months Ago", + "dateNever": "Never", + "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", + "dateLastYear": "Last Year", + "dateYesterday": "Yesterday", + "dateLastMonth": "Last Month", + "dateWeeksAgo": "Weeks Ago", + "dateDaysAgo": "Days Ago", + "dateHoursAgo": "Hours Ago", + "dateMinutesAgo": "Minutes Ago", + "dateRightNow": "Right Now", + "successfullAddedContact": "Successfully added ", + "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", + "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", + "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", + "titleManageProfiles": "Manage Cwtch Profiles", + "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", + "tooltipOpenSettings": "Open the settings pane", + "invalidImportString": "Invalid import string", + "contactAlreadyExists": "Contact Already Exists", + "conversationSettings": "Conversation Settings", + "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", + "enableGroups": "Enable Group Chat", "experimentsEnabled": "Experimentos habilitados", - "versionTor": "Versión %1 con tor %2", - "version": "Versión %1", - "builddate": "Basado en: %2", - "defaultScalingText": "Tamaño predeterminado de texto (factor de escala:", - "smallTextLabel": "Pequeño", - "loadingTor": "Cargando tor...", - "viewGroupMembershipTooltip": "Ver membresía del grupo", - "networkStatusDisconnected": "Sin conexión, comprueba tu conexión", - "networkStatusAttemptingTor": "Intentando conectarse a la red Tor", - "networkStatusConnecting": "Conectando a la red y a los contactos...", - "networkStatusOnline": "En línea", - "newConnectionPaneTitle": "Nueva conexión", + "localeIt": "Italiano", + "localeEs": "Español", "addListItem": "Añadir un nuevo elemento a la lista", "addNewItem": "Añadir un nuevo elemento a la lista", "todoPlaceholder": "Por hacer...", - "localeEs": "Español", - "localeIt": "Italiano", - "enableGroups": "Enable Group Chat", - "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", - "conversationSettings": "Conversation Settings", - "invalidImportString": "Invalid import string", - "contactAlreadyExists": "Contact Already Exists", - "tooltipOpenSettings": "Open the settings pane", - "tooltipAddContact": "Add a new contact or conversation", - "titleManageContacts": "Conversations", - "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", - "titleManageProfiles": "Manage Cwtch Profiles", - "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", - "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", - "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", - "successfullAddedContact": "Successfully added ", - "dateRightNow": "Right Now", - "dateMinutesAgo": "Minutes Ago", - "dateHoursAgo": "Hours Ago", - "dateDaysAgo": "Days Ago", - "dateWeeksAgo": "Weeks Ago", - "dateLastMonth": "Last Month", - "dateYesterday": "Yesterday", - "dateLastYear": "Last Year", - "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", - "dateNever": "Never", - "dateMonthsAgo": "Months Ago", - "titleManageServers": "Manage Servers", - "inviteToGroup": "You have been invited to join a group:", - "leaveGroup": "Leave This Conversation", - "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", - "yesLeave": "Yes, Leave This Conversation", - "newPassword": "New Password", - "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", - "accepted": "Accepted!", - "rejected": "Rejected!", - "contactSuggestion": "This is a contact suggestion for: ", - "sendAnInvitation": "You sent an invitation for: ", - "torVersion": "Tor Version", - "torStatus": "Tor Status", - "resetTor": "Reset", - "cancel": "Cancel", - "sendMessage": "Send Message", - "sendInvite": "Send a contact or group invite", - "deleteProfileSuccess": "Successfully deleted profile", - "addServerFirst": "You need to add a server before you can create a group", - "nickChangeSuccess": "Profile nickname changed successfully", - "createProfileToBegin": "Please create or unlock a profile to begin", - "addContactFirst": "Add or pick a contact to begin chatting.", - "torNetworkStatus": "Tor network status", - "debugLog": "Turn on console debug logging", - "profileDeleteSuccess": "Successfully deleted profile", - "malformedMessage": "Malformed message" + "newConnectionPaneTitle": "Nueva conexión", + "networkStatusOnline": "En línea", + "networkStatusConnecting": "Conectando a la red y a los contactos...", + "networkStatusAttemptingTor": "Intentando conectarse a la red Tor", + "networkStatusDisconnected": "Sin conexión, comprueba tu conexión", + "viewGroupMembershipTooltip": "Ver membresía del grupo", + "loadingTor": "Cargando tor...", + "smallTextLabel": "Pequeño", + "defaultScalingText": "Tamaño predeterminado de texto (factor de escala:", + "builddate": "Basado en: %2", + "version": "Versión %1", + "versionTor": "Versión %1 con tor %2", + "themeDark": "Oscuro", + "themeLight": "Claro", + "settingTheme": "Tema", + "largeTextLabel": "Grande", + "settingInterfaceZoom": "Nivel de zoom", + "localeDe": "Alemán", + "localePt": "Portugués", + "localeFr": "Francés", + "localeEn": "Inglés", + "settingLanguage": "Idioma", + "blockUnknownLabel": "Bloquear conexiones desconocidas", + "zoomLabel": "Zoom de la interfaz (afecta principalmente el tamaño del texto y de los botones)", + "versionBuilddate": "Versión: %1 Basado en %2", + "cwtchSettingsTitle": "Configuración de Cwtch", + "unlock": "Desbloquear", + "yourServers": "Tus servidores", + "yourProfiles": "Tus perfiles", + "error0ProfilesLoadedForPassword": "0 perfiles cargados con esa contraseña", + "password": "Contraseña", + "enterProfilePassword": "Ingresa tu contraseña para ver tus perfiles", + "addNewProfileBtn": "Agregar nuevo perfil", + "deleteConfirmText": "ELIMINAR", + "deleteProfileConfirmBtn": "Confirmar eliminar perfil", + "deleteConfirmLabel": "Escribe ELIMINAR para confirmar", + "deleteProfileBtn": "Eliminar Perfil", + "passwordChangeError": "Hubo un error cambiando tu contraseña: la contraseña ingresada fue rechazada", + "passwordErrorMatch": "Las contraseñas no coinciden", + "saveProfileBtn": "Guardar perfil", + "createProfileBtn": "Crear perfil", + "passwordErrorEmpty": "El campo de contraseña no puede estar vacío", + "password2Label": "Vuelve a ingresar tu contraseña", + "password1Label": "Contraseña", + "currentPasswordLabel": "Contraseña actual", + "yourDisplayName": "Tu nombre de usuario", + "profileOnionLabel": "Envía esta dirección a los contactos con los que quieras conectarte", + "noPasswordWarning": "No usar una contraseña para esta cuenta significa que los datos almacenados localmente no serán encriptados", + "radioNoPassword": "Sin cifrado (sin contraseña)", + "radioUsePassword": "Contraseña", + "copiedToClipboardNotification": "Copiado al portapapeles", + "copyBtn": "Copiar", + "editProfile": "Editar perfil", + "newProfile": "Nuevo perfil", + "defaultProfileName": "Alicia", + "profileName": "Nombre de Usuario", + "editProfileTitle": "Editar perfil", + "addProfileTitle": "Agregar nuevo perfil", + "deleteBtn": "Eliminar", + "unblockBtn": "Desbloquear contacto", + "dontSavePeerHistory": "Eliminar historial de contacto", + "savePeerHistoryDescription": "Determina si eliminar o no el historial asociado con el contacto.", + "savePeerHistory": "Guardar el historial con contacto", + "blockBtn": "Bloquear contacto", + "saveBtn": "Guardar", + "displayNameLabel": "Nombre de Usuario", + "addressLabel": "Dirección", + "puzzleGameBtn": "Juego de rompecabezas", + "bulletinsBtn": "Boletines", + "listsBtn": "Listas", + "chatBtn": "Chat", + "rejectGroupBtn": "Rechazar", + "acceptGroupBtn": "Aceptar", + "acceptGroupInviteLabel": "¿Quieres aceptar la invitación a ", + "newGroupBtn": "Crear un nuevo grupo de chat", + "copiedClipboardNotification": "Copiado al portapapeles", + "peerOfflineMessage": "Este contacto no está en línea, los mensajes no pueden ser entregados en este momento", + "peerBlockedMessage": "Contacto bloqueado", + "pendingLabel": "Pendiente", + "acknowledgedLabel": "Reconocido", + "couldNotSendMsgError": "No se pudo enviar este mensaje", + "dmTooltip": "Haz clic para enviar mensaje directo", + "membershipDescription": "La lista a continuación solo muestra los miembros que han enviado mensajes al grupo, no incluye a todos los usuarios dentro del grupo", + "addListItemBtn": "Agregar artículo", + "peerNotOnline": "Este contacto no está en línea, la aplicación no puede ser usada en este momento", + "searchList": "Buscar en la lista", + "update": "Actualizar", + "inviteBtn": "Invitar", + "inviteToGroupLabel": "Invitar al grupo", + "groupNameLabel": "Nombre del grupo", + "viewServerInfo": "Información del servidor", + "serverNotSynced": "Fuera de sincronización con el servidor", + "serverSynced": "Sincronizado", + "serverConnectivityDisconnected": "Servidor desconectado", + "serverConnectivityConnected": "Servidor conectado", + "serverInfo": "Información del servidor", + "invitationLabel": "Invitación", + "serverLabel": "Servidor", + "search": "Búsqueda...", + "cycleColoursDesktop": "Click para cambiar colores. Click derecho para reiniciar.", + "cycleColoursAndroid": "Click para cambiar colores. Mantenga pulsado para reiniciar.", + "cycleMorphsDesktop": "Click para cambiar transformaciones. Click derecho para reiniciar.", + "cycleMorphsAndroid": "Click para cambiar transformaciones. Mantenga pulsado para reiniciar.", + "cycleCatsDesktop": "Click para cambiar categoría. Click derecho para reiniciar.", + "cycleCatsAndroid": "Click para cambiar categoría. Mantenga pulsado para reiniciar.", + "blocked": "Bloqueado", + "titlePlaceholder": "título...", + "postNewBulletinLabel": "Publicar nuevo boletín", + "newBulletinLabel": "Nuevo Boletín", + "joinGroup": "Únete al grupo", + "createGroup": "Crear perfil", + "addPeer": "Agregar Contacto", + "groupAddr": "Dirección", + "invitation": "Invitación", + "server": "Servidor", + "groupName": "Nombre del grupo", + "peerName": "Nombre", + "peerAddress": "Dirección", + "joinGroupTab": "Únete a un grupo", + "createGroupTab": "Crear un grupo", + "addPeerTab": "Agregar Contacto", + "createGroupBtn": "Crear", + "defaultGroupName": "El Grupo Asombroso", + "createGroupTitle": "Crear un grupo" } \ No newline at end of file diff --git a/lib/l10n/intl_fr.arb b/lib/l10n/intl_fr.arb index 5dba514..fb6374e 100644 --- a/lib/l10n/intl_fr.arb +++ b/lib/l10n/intl_fr.arb @@ -1,186 +1,190 @@ { "@@locale": "fr", - "@@last_modified": "2021-06-15T02:08:49+02:00", - "createGroupTitle": "Créer un groupe", - "serverLabel": "Serveur", - "groupNameLabel": "Nom du groupe", - "defaultGroupName": "Un super groupe", - "createGroupBtn": "Créer", - "profileOnionLabel": "Send this address to peers you want to connect with", - "copyBtn": "Copier", - "copiedToClipboardNotification": "Copié dans le presse-papier", - "addPeerTab": "Add a peer", - "createGroupTab": "Create a group", - "joinGroupTab": "Join a group", - "peerAddress": "Address", - "peerName": "Name", - "groupName": "Group name", - "server": "Server", - "invitation": "Invitation", - "groupAddr": "Address", - "addPeer": "Add Peer", - "createGroup": "Create group", - "joinGroup": "Join group", - "newBulletinLabel": "Nouveau bulletin", - "postNewBulletinLabel": "Envoyer un nouveau bulletin", - "titlePlaceholder": "titre...", + "@@last_modified": "2021-06-16T23:15:48+02:00", + "shutdownCwtchAction": "Shutdown Cwtch", + "shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.", + "shutdownCwtchDialogTitle": "Shutdown Cwtch?", + "shutdownCwtchTooltip": "Shutdown Cwtch", + "malformedMessage": "Malformed message", + "profileDeleteSuccess": "Successfully deleted profile", + "debugLog": "Turn on console debug logging", + "torNetworkStatus": "Tor network status", + "addContactFirst": "Add or pick a contact to begin chatting.", + "createProfileToBegin": "Please create or unlock a profile to begin", + "nickChangeSuccess": "Profile nickname changed successfully", + "addServerFirst": "You need to add a server before you can create a group", + "deleteProfileSuccess": "Successfully deleted profile", + "sendInvite": "Send a contact or group invite", + "sendMessage": "Send Message", + "cancel": "Cancel", + "resetTor": "Reset", + "torStatus": "Tor Status", + "torVersion": "Tor Version", + "sendAnInvitation": "You sent an invitation for: ", + "contactSuggestion": "This is a contact suggestion for: ", + "rejected": "Rejected!", + "accepted": "Accepted!", + "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", + "newPassword": "New Password", + "yesLeave": "Yes, Leave This Conversation", + "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", + "leaveGroup": "Leave This Conversation", + "inviteToGroup": "You have been invited to join a group:", "pasteAddressToAddContact": "... coller une adresse ici pour ajouter un contact...", - "blocked": "Blocked", - "cycleCatsAndroid": "Click to cycle category.\nLong-press to reset.", - "cycleCatsDesktop": "Click to cycle category.\nRight-click to reset.", - "cycleMorphsAndroid": "Click to cycle morphs.\nLong-press to reset.", - "cycleMorphsDesktop": "Click to cycle morphs.\nRight-click to reset.", - "cycleColoursAndroid": "Click to cycle colours.\nLong-press to reset.", - "cycleColoursDesktop": "Click to cycle colours.\nRight-click to reset.", - "search": "Search...", - "invitationLabel": "Invitation", - "serverInfo": "Server Information", - "serverConnectivityConnected": "Server Connected", - "serverConnectivityDisconnected": "Server Disconnected", - "serverSynced": "Synced", - "serverNotSynced": "Out of Sync", - "viewServerInfo": "Server Info", - "saveBtn": "Sauvegarder", - "inviteToGroupLabel": "Inviter quelqu'un", - "inviteBtn": "Invitation", - "deleteBtn": "Effacer", - "update": "Update", - "searchList": "Search List", - "peerNotOnline": "Peer is Offline. Applications cannot be used right now.", - "addListItemBtn": "Add Item", - "membershipDescription": "Liste des utilisateurs ayant envoyés un ou plusieurs messages au groupe. Cette liste peut ne pas être representatives de l'ensemble des membres du groupe.", - "dmTooltip": "Envoyer un message privé", - "couldNotSendMsgError": "Impossible d'envoyer ce message", - "acknowledgedLabel": "Confirmé", - "pendingLabel": "En attente", - "peerBlockedMessage": "Peer is blocked", - "peerOfflineMessage": "Peer is offline, messages can't be delivered right now", - "copiedClipboardNotification": "Copié dans le presse-papier", - "newGroupBtn": "Créer un nouveau groupe", - "acceptGroupInviteLabel": "Voulez-vous accepter l'invitation au groupe", - "acceptGroupBtn": "Accepter", - "rejectGroupBtn": "Refuser", - "chatBtn": "Discuter", - "listsBtn": "Listes", - "bulletinsBtn": "Bulletins", - "puzzleGameBtn": "Puzzle", - "addressLabel": "Adresse", - "displayNameLabel": "Pseudo", - "blockBtn": "Block Peer", - "savePeerHistory": "Save Peer History", - "savePeerHistoryDescription": "Determines whether or not to delete any history associated with the peer.", - "dontSavePeerHistory": "Delete Peer History", - "unblockBtn": "Unblock Peer", - "addProfileTitle": "Add new profile", - "editProfileTitle": "Edit Profile", - "profileName": "Display name", - "defaultProfileName": "Alice", - "newProfile": "New Profile", - "editProfile": "Edit Profille", - "radioUsePassword": "Password", - "radioNoPassword": "Unencrypted (No password)", - "noPasswordWarning": "Not using a password on this account means that all data stored locally will not be encrypted", - "yourDisplayName": "Your Display Name", - "currentPasswordLabel": "Current Password", - "password1Label": "Password", - "password2Label": "Reenter password", - "passwordErrorEmpty": "Password cannot be empty", - "createProfileBtn": "Create Profile", - "saveProfileBtn": "Save Profile", - "passwordErrorMatch": "Passwords do not match", - "passwordChangeError": "Error changing password: Supplied password rejected", - "deleteProfileBtn": "Delete Profile", - "deleteConfirmLabel": "Type DELETE to confirm", - "deleteProfileConfirmBtn": "Really Delete Profile", - "deleteConfirmText": "DELETE", - "addNewProfileBtn": "Add new profile", - "enterProfilePassword": "Enter a password to view your profiles", - "password": "Password", - "error0ProfilesLoadedForPassword": "0 profiles loaded with that password", - "yourProfiles": "Your Profiles", - "yourServers": "Your Servers", - "unlock": "Unlock", - "cwtchSettingsTitle": "Préférences Cwtch", - "versionBuilddate": "Version: %1 Built on: %2", - "zoomLabel": "Interface zoom (essentiellement la taille du texte et des composants de l'interface)", - "blockUnknownLabel": "Block Unknown Peers", - "settingLanguage": "Language", - "localeEn": "English", - "localeFr": "Frances", - "localePt": "Portuguesa", - "localeDe": "Deutsche", - "settingInterfaceZoom": "Zoom level", - "largeTextLabel": "Large", - "settingTheme": "Theme", - "themeLight": "Light", - "themeDark": "Dark", + "tooltipAddContact": "Add a new contact or conversation", + "titleManageContacts": "Conversations", + "titleManageServers": "Manage Servers", + "dateMonthsAgo": "Months Ago", + "dateNever": "Never", + "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", + "dateLastYear": "Last Year", + "dateYesterday": "Yesterday", + "dateLastMonth": "Last Month", + "dateWeeksAgo": "Weeks Ago", + "dateDaysAgo": "Days Ago", + "dateHoursAgo": "Hours Ago", + "dateMinutesAgo": "Minutes Ago", + "dateRightNow": "Right Now", + "successfullAddedContact": "Successfully added ", + "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", + "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", + "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", + "titleManageProfiles": "Manage Cwtch Profiles", + "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", + "tooltipOpenSettings": "Open the settings pane", + "invalidImportString": "Invalid import string", + "contactAlreadyExists": "Contact Already Exists", + "conversationSettings": "Conversation Settings", + "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", + "enableGroups": "Enable Group Chat", "experimentsEnabled": "Enable Experiments", - "versionTor": "Version %1 with tor %2", - "version": "Version %1", - "builddate": "Built on: %2", - "defaultScalingText": "Taille par défaut du texte (échelle:", - "smallTextLabel": "Petit", - "loadingTor": "Loading tor...", - "viewGroupMembershipTooltip": "View Group Membership", - "networkStatusDisconnected": "Disconnected from the internet, check your connection", - "networkStatusAttemptingTor": "Attempting to connect to Tor network", - "networkStatusConnecting": "Connecting to network and peers...", - "networkStatusOnline": "Online", - "newConnectionPaneTitle": "New Connection", + "localeIt": "Italiana", + "localeEs": "Espanol", "addListItem": "Ajouter un nouvel élément", "addNewItem": "Ajouter un nouvel élément à la liste", "todoPlaceholder": "A faire...", - "localeEs": "Espanol", - "localeIt": "Italiana", - "enableGroups": "Enable Group Chat", - "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", - "conversationSettings": "Conversation Settings", - "invalidImportString": "Invalid import string", - "contactAlreadyExists": "Contact Already Exists", - "tooltipOpenSettings": "Open the settings pane", - "tooltipAddContact": "Add a new contact or conversation", - "titleManageContacts": "Conversations", - "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", - "titleManageProfiles": "Manage Cwtch Profiles", - "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", - "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", - "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", - "successfullAddedContact": "Successfully added ", - "dateRightNow": "Right Now", - "dateMinutesAgo": "Minutes Ago", - "dateHoursAgo": "Hours Ago", - "dateDaysAgo": "Days Ago", - "dateWeeksAgo": "Weeks Ago", - "dateLastMonth": "Last Month", - "dateYesterday": "Yesterday", - "dateLastYear": "Last Year", - "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", - "dateNever": "Never", - "dateMonthsAgo": "Months Ago", - "titleManageServers": "Manage Servers", - "inviteToGroup": "You have been invited to join a group:", - "leaveGroup": "Leave This Conversation", - "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", - "yesLeave": "Yes, Leave This Conversation", - "newPassword": "New Password", - "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", - "accepted": "Accepted!", - "rejected": "Rejected!", - "contactSuggestion": "This is a contact suggestion for: ", - "sendAnInvitation": "You sent an invitation for: ", - "torVersion": "Tor Version", - "torStatus": "Tor Status", - "resetTor": "Reset", - "cancel": "Cancel", - "sendMessage": "Send Message", - "sendInvite": "Send a contact or group invite", - "deleteProfileSuccess": "Successfully deleted profile", - "addServerFirst": "You need to add a server before you can create a group", - "nickChangeSuccess": "Profile nickname changed successfully", - "createProfileToBegin": "Please create or unlock a profile to begin", - "addContactFirst": "Add or pick a contact to begin chatting.", - "torNetworkStatus": "Tor network status", - "debugLog": "Turn on console debug logging", - "profileDeleteSuccess": "Successfully deleted profile", - "malformedMessage": "Malformed message" + "newConnectionPaneTitle": "New Connection", + "networkStatusOnline": "Online", + "networkStatusConnecting": "Connecting to network and peers...", + "networkStatusAttemptingTor": "Attempting to connect to Tor network", + "networkStatusDisconnected": "Disconnected from the internet, check your connection", + "viewGroupMembershipTooltip": "View Group Membership", + "loadingTor": "Loading tor...", + "smallTextLabel": "Petit", + "defaultScalingText": "Taille par défaut du texte (échelle:", + "builddate": "Built on: %2", + "version": "Version %1", + "versionTor": "Version %1 with tor %2", + "themeDark": "Dark", + "themeLight": "Light", + "settingTheme": "Theme", + "largeTextLabel": "Large", + "settingInterfaceZoom": "Zoom level", + "localeDe": "Deutsche", + "localePt": "Portuguesa", + "localeFr": "Frances", + "localeEn": "English", + "settingLanguage": "Language", + "blockUnknownLabel": "Block Unknown Peers", + "zoomLabel": "Interface zoom (essentiellement la taille du texte et des composants de l'interface)", + "versionBuilddate": "Version: %1 Built on: %2", + "cwtchSettingsTitle": "Préférences Cwtch", + "unlock": "Unlock", + "yourServers": "Your Servers", + "yourProfiles": "Your Profiles", + "error0ProfilesLoadedForPassword": "0 profiles loaded with that password", + "password": "Password", + "enterProfilePassword": "Enter a password to view your profiles", + "addNewProfileBtn": "Add new profile", + "deleteConfirmText": "DELETE", + "deleteProfileConfirmBtn": "Really Delete Profile", + "deleteConfirmLabel": "Type DELETE to confirm", + "deleteProfileBtn": "Delete Profile", + "passwordChangeError": "Error changing password: Supplied password rejected", + "passwordErrorMatch": "Passwords do not match", + "saveProfileBtn": "Save Profile", + "createProfileBtn": "Create Profile", + "passwordErrorEmpty": "Password cannot be empty", + "password2Label": "Reenter password", + "password1Label": "Password", + "currentPasswordLabel": "Current Password", + "yourDisplayName": "Your Display Name", + "profileOnionLabel": "Send this address to peers you want to connect with", + "noPasswordWarning": "Not using a password on this account means that all data stored locally will not be encrypted", + "radioNoPassword": "Unencrypted (No password)", + "radioUsePassword": "Password", + "copiedToClipboardNotification": "Copié dans le presse-papier", + "copyBtn": "Copier", + "editProfile": "Edit Profille", + "newProfile": "New Profile", + "defaultProfileName": "Alice", + "profileName": "Display name", + "editProfileTitle": "Edit Profile", + "addProfileTitle": "Add new profile", + "deleteBtn": "Effacer", + "unblockBtn": "Unblock Peer", + "dontSavePeerHistory": "Delete Peer History", + "savePeerHistoryDescription": "Determines whether or not to delete any history associated with the peer.", + "savePeerHistory": "Save Peer History", + "blockBtn": "Block Peer", + "saveBtn": "Sauvegarder", + "displayNameLabel": "Pseudo", + "addressLabel": "Adresse", + "puzzleGameBtn": "Puzzle", + "bulletinsBtn": "Bulletins", + "listsBtn": "Listes", + "chatBtn": "Discuter", + "rejectGroupBtn": "Refuser", + "acceptGroupBtn": "Accepter", + "acceptGroupInviteLabel": "Voulez-vous accepter l'invitation au groupe", + "newGroupBtn": "Créer un nouveau groupe", + "copiedClipboardNotification": "Copié dans le presse-papier", + "peerOfflineMessage": "Peer is offline, messages can't be delivered right now", + "peerBlockedMessage": "Peer is blocked", + "pendingLabel": "En attente", + "acknowledgedLabel": "Confirmé", + "couldNotSendMsgError": "Impossible d'envoyer ce message", + "dmTooltip": "Envoyer un message privé", + "membershipDescription": "Liste des utilisateurs ayant envoyés un ou plusieurs messages au groupe. Cette liste peut ne pas être representatives de l'ensemble des membres du groupe.", + "addListItemBtn": "Add Item", + "peerNotOnline": "Peer is Offline. Applications cannot be used right now.", + "searchList": "Search List", + "update": "Update", + "inviteBtn": "Invitation", + "inviteToGroupLabel": "Inviter quelqu'un", + "groupNameLabel": "Nom du groupe", + "viewServerInfo": "Server Info", + "serverNotSynced": "Out of Sync", + "serverSynced": "Synced", + "serverConnectivityDisconnected": "Server Disconnected", + "serverConnectivityConnected": "Server Connected", + "serverInfo": "Server Information", + "invitationLabel": "Invitation", + "serverLabel": "Serveur", + "search": "Search...", + "cycleColoursDesktop": "Click to cycle colours.\nRight-click to reset.", + "cycleColoursAndroid": "Click to cycle colours.\nLong-press to reset.", + "cycleMorphsDesktop": "Click to cycle morphs.\nRight-click to reset.", + "cycleMorphsAndroid": "Click to cycle morphs.\nLong-press to reset.", + "cycleCatsDesktop": "Click to cycle category.\nRight-click to reset.", + "cycleCatsAndroid": "Click to cycle category.\nLong-press to reset.", + "blocked": "Blocked", + "titlePlaceholder": "titre...", + "postNewBulletinLabel": "Envoyer un nouveau bulletin", + "newBulletinLabel": "Nouveau bulletin", + "joinGroup": "Join group", + "createGroup": "Create group", + "addPeer": "Add Peer", + "groupAddr": "Address", + "invitation": "Invitation", + "server": "Server", + "groupName": "Group name", + "peerName": "Name", + "peerAddress": "Address", + "joinGroupTab": "Join a group", + "createGroupTab": "Create a group", + "addPeerTab": "Add a peer", + "createGroupBtn": "Créer", + "defaultGroupName": "Un super groupe", + "createGroupTitle": "Créer un groupe" } \ No newline at end of file diff --git a/lib/l10n/intl_it.arb b/lib/l10n/intl_it.arb index e1310fd..ef865b8 100644 --- a/lib/l10n/intl_it.arb +++ b/lib/l10n/intl_it.arb @@ -1,186 +1,190 @@ { "@@locale": "it", - "@@last_modified": "2021-06-15T02:08:49+02:00", - "createGroupTitle": "Crea un gruppo", - "serverLabel": "Server", - "groupNameLabel": "Nome del gruppo", - "defaultGroupName": "Gruppo fantastico", - "createGroupBtn": "Crea", - "profileOnionLabel": "Inviare questo indirizzo ai peer con cui si desidera connettersi", - "copyBtn": "Copia", - "copiedToClipboardNotification": "Copiato negli appunti", - "addPeerTab": "Aggiungi un peer", - "createGroupTab": "Crea un gruppo", - "joinGroupTab": "Unisciti a un gruppo", - "peerAddress": "Indirizzo", - "peerName": "Nome", - "groupName": "Nome del gruppo", - "server": "Server", - "invitation": "Invito", - "groupAddr": "Indirizzo", - "addPeer": "Aggiungi peer", - "createGroup": "Crea un gruppo", - "joinGroup": "Unisciti al gruppo", - "newBulletinLabel": "Nuovo bollettino", - "postNewBulletinLabel": "Pubblica un nuovo bollettino", - "titlePlaceholder": "titolo...", + "@@last_modified": "2021-06-16T23:15:48+02:00", + "shutdownCwtchAction": "Shutdown Cwtch", + "shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.", + "shutdownCwtchDialogTitle": "Shutdown Cwtch?", + "shutdownCwtchTooltip": "Shutdown Cwtch", + "malformedMessage": "Malformed message", + "profileDeleteSuccess": "Successfully deleted profile", + "debugLog": "Turn on console debug logging", + "torNetworkStatus": "Tor network status", + "addContactFirst": "Add or pick a contact to begin chatting.", + "createProfileToBegin": "Please create or unlock a profile to begin", + "nickChangeSuccess": "Profile nickname changed successfully", + "addServerFirst": "You need to add a server before you can create a group", + "deleteProfileSuccess": "Successfully deleted profile", + "sendInvite": "Send a contact or group invite", + "sendMessage": "Send Message", + "cancel": "Cancel", + "resetTor": "Reset", + "torStatus": "Tor Status", + "torVersion": "Tor Version", + "sendAnInvitation": "You sent an invitation for: ", + "contactSuggestion": "This is a contact suggestion for: ", + "rejected": "Rejected!", + "accepted": "Accepted!", + "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", + "newPassword": "New Password", + "yesLeave": "Yes, Leave This Conversation", + "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", + "leaveGroup": "Leave This Conversation", + "inviteToGroup": "You have been invited to join a group:", "pasteAddressToAddContact": "... incolla qui un indirizzo per aggiungere un contatto...", - "blocked": "Bloccato", - "cycleCatsAndroid": "Fare clic per scorrere le categorie.\nPressione lunga per resettare.", - "cycleCatsDesktop": "Fare clic per scorrere le categorie.\nCliccare con il tasto destro per resettare.", - "cycleMorphsAndroid": "Fare clic per scorrere i morph.\nPressione lunga per resettare.", - "cycleMorphsDesktop": "Fare clic per scorrere i morph.\nCliccare con il tasto destro per resettare.", - "cycleColoursAndroid": "Fare clic per scorrere i colori.\nPressione lunga per resettare.", - "cycleColoursDesktop": "Fare clic per scorrere i colori.\nCliccare con il tasto destro per resettare.", - "search": "Ricerca...", - "invitationLabel": "Invito", - "serverInfo": "Informazioni sul server", - "serverConnectivityConnected": "Server connesso", - "serverConnectivityDisconnected": "Server disconnesso", - "serverSynced": "Sincronizzato", - "serverNotSynced": "Non sincronizzato", - "viewServerInfo": "Informazioni sul server", - "saveBtn": "Salva", - "inviteToGroupLabel": "Invitare nel gruppo", - "inviteBtn": "Invitare", - "deleteBtn": "Elimina", - "update": "Aggiornamento", - "searchList": "Cerca nella lista", - "peerNotOnline": "Il peer è offline. Le applicazioni non possono essere utilizzate in questo momento.", - "addListItemBtn": "Aggiungi elemento", - "membershipDescription": "Di seguito è riportato un elenco di utenti che hanno inviato messaggi al gruppo. Questo elenco potrebbe non corrispondere a tutti gli utenti che hanno accesso al gruppo.", - "dmTooltip": "Clicca per inviare un Messagio Diretto", - "couldNotSendMsgError": "Impossibile inviare questo messaggio", - "acknowledgedLabel": "Riconosciuto", - "pendingLabel": "In corso", - "peerBlockedMessage": "Il peer è bloccato", - "peerOfflineMessage": "Il peer è offline, i messaggi non possono essere recapitati in questo momento", - "copiedClipboardNotification": "Copiato negli Appunti", - "newGroupBtn": "Crea un nuovo gruppo", - "acceptGroupInviteLabel": "Vuoi accettare l'invito a", - "acceptGroupBtn": "Accetta", - "rejectGroupBtn": "Rifiuta", - "chatBtn": "Chat", - "listsBtn": "Liste", - "bulletinsBtn": "Bollettini", - "puzzleGameBtn": "Gioco di puzzle", - "addressLabel": "Indirizzo", - "displayNameLabel": "Nome visualizzato", - "blockBtn": "Blocca il peer", - "savePeerHistory": "Salva cronologia peer", - "savePeerHistoryDescription": "Determina se eliminare o meno ogni cronologia eventualmente associata al peer.", - "dontSavePeerHistory": "Elimina cronologia dei peer", - "unblockBtn": "Sblocca il peer", - "addProfileTitle": "Aggiungi nuovo profilo", - "editProfileTitle": "Modifica profilo", - "profileName": "Nome visualizzato", - "defaultProfileName": "Alice", - "newProfile": "Nuovo profilo", - "editProfile": "Modifica profilo", - "radioUsePassword": "Password", - "radioNoPassword": "Non criptato (senza password)", - "noPasswordWarning": "Non utilizzare una password su questo account significa che tutti i dati archiviati localmente non verranno criptati", - "yourDisplayName": "Il tuo nome visualizzato", - "currentPasswordLabel": "Password corrente", - "password1Label": "Password", - "password2Label": "Reinserire la password", - "passwordErrorEmpty": "La password non può essere vuota", - "createProfileBtn": "Crea un profilo", - "saveProfileBtn": "Salva il profilo", - "passwordErrorMatch": "Le password non corrispondono", - "passwordChangeError": "Errore durante la modifica della password: password fornita rifiutata", - "deleteProfileBtn": "Elimina profilo", - "deleteConfirmLabel": "Digita ELIMINA per confermare", - "deleteProfileConfirmBtn": "Elimina realmente il profilo", - "deleteConfirmText": "ELIMINA", - "addNewProfileBtn": "Aggiungi nuovo profilo", - "enterProfilePassword": "Inserisci una password per visualizzare i tuoi profili", - "password": "Password", - "error0ProfilesLoadedForPassword": "0 profili caricati con quella password", - "yourProfiles": "I tuoi profili", - "yourServers": "I tuoi server", - "unlock": "Sblocca", - "cwtchSettingsTitle": "Impostazioni di Cwtch", - "versionBuilddate": "Versione: %1 Costruito il: %2", - "zoomLabel": "Zoom dell'interfaccia (influisce principalmente sulle dimensioni del testo e dei pulsanti)", - "blockUnknownLabel": "Blocca peer sconosciuti", - "settingLanguage": "Lingua", - "localeEn": "Inglese", - "localeFr": "Francese", - "localePt": "Portoghese", - "localeDe": "Tedesco", - "settingInterfaceZoom": "Livello di zoom", - "largeTextLabel": "Grande", - "settingTheme": "Tema", - "themeLight": "Chiaro", - "themeDark": "Scuro", + "tooltipAddContact": "Add a new contact or conversation", + "titleManageContacts": "Conversations", + "titleManageServers": "Manage Servers", + "dateMonthsAgo": "Months Ago", + "dateNever": "Never", + "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", + "dateLastYear": "Last Year", + "dateYesterday": "Yesterday", + "dateLastMonth": "Last Month", + "dateWeeksAgo": "Weeks Ago", + "dateDaysAgo": "Days Ago", + "dateHoursAgo": "Hours Ago", + "dateMinutesAgo": "Minutes Ago", + "dateRightNow": "Right Now", + "successfullAddedContact": "Successfully added ", + "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", + "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", + "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", + "titleManageProfiles": "Manage Cwtch Profiles", + "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", + "tooltipOpenSettings": "Open the settings pane", + "invalidImportString": "Invalid import string", + "contactAlreadyExists": "Contact Already Exists", + "conversationSettings": "Conversation Settings", + "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", + "enableGroups": "Enable Group Chat", "experimentsEnabled": "Esperimenti abilitati", - "versionTor": "Versione %1 con tor %2", - "version": "Versione %1", - "builddate": "Costruito il: %2", - "defaultScalingText": "Testo di dimensioni predefinite (fattore di scala:", - "smallTextLabel": "Piccolo", - "loadingTor": "Caricamento di tor...", - "viewGroupMembershipTooltip": "Visualizza i membri del gruppo", - "networkStatusDisconnected": "Disconnesso da Internet, controlla la tua connessione", - "networkStatusAttemptingTor": "Tentativo di connessione alla rete Tor", - "networkStatusConnecting": "Connessione alla rete e ai peer ...", - "networkStatusOnline": "Online", - "newConnectionPaneTitle": "Nuova connessione", + "localeIt": "Italiano", + "localeEs": "Spagnolo", "addListItem": "Aggiungi un nuovo elemento alla lista", "addNewItem": "Aggiungi un nuovo elemento alla lista", "todoPlaceholder": "Da fare...", - "localeEs": "Spagnolo", - "localeIt": "Italiano", - "enableGroups": "Enable Group Chat", - "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", - "conversationSettings": "Conversation Settings", - "invalidImportString": "Invalid import string", - "contactAlreadyExists": "Contact Already Exists", - "tooltipOpenSettings": "Open the settings pane", - "tooltipAddContact": "Add a new contact or conversation", - "titleManageContacts": "Conversations", - "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", - "titleManageProfiles": "Manage Cwtch Profiles", - "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", - "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", - "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", - "successfullAddedContact": "Successfully added ", - "dateRightNow": "Right Now", - "dateMinutesAgo": "Minutes Ago", - "dateHoursAgo": "Hours Ago", - "dateDaysAgo": "Days Ago", - "dateWeeksAgo": "Weeks Ago", - "dateLastMonth": "Last Month", - "dateYesterday": "Yesterday", - "dateLastYear": "Last Year", - "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", - "dateNever": "Never", - "dateMonthsAgo": "Months Ago", - "titleManageServers": "Manage Servers", - "inviteToGroup": "You have been invited to join a group:", - "leaveGroup": "Leave This Conversation", - "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", - "yesLeave": "Yes, Leave This Conversation", - "newPassword": "New Password", - "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", - "accepted": "Accepted!", - "rejected": "Rejected!", - "contactSuggestion": "This is a contact suggestion for: ", - "sendAnInvitation": "You sent an invitation for: ", - "torVersion": "Tor Version", - "torStatus": "Tor Status", - "resetTor": "Reset", - "cancel": "Cancel", - "sendMessage": "Send Message", - "sendInvite": "Send a contact or group invite", - "deleteProfileSuccess": "Successfully deleted profile", - "addServerFirst": "You need to add a server before you can create a group", - "nickChangeSuccess": "Profile nickname changed successfully", - "createProfileToBegin": "Please create or unlock a profile to begin", - "addContactFirst": "Add or pick a contact to begin chatting.", - "torNetworkStatus": "Tor network status", - "debugLog": "Turn on console debug logging", - "profileDeleteSuccess": "Successfully deleted profile", - "malformedMessage": "Malformed message" + "newConnectionPaneTitle": "Nuova connessione", + "networkStatusOnline": "Online", + "networkStatusConnecting": "Connessione alla rete e ai peer ...", + "networkStatusAttemptingTor": "Tentativo di connessione alla rete Tor", + "networkStatusDisconnected": "Disconnesso da Internet, controlla la tua connessione", + "viewGroupMembershipTooltip": "Visualizza i membri del gruppo", + "loadingTor": "Caricamento di tor...", + "smallTextLabel": "Piccolo", + "defaultScalingText": "Testo di dimensioni predefinite (fattore di scala:", + "builddate": "Costruito il: %2", + "version": "Versione %1", + "versionTor": "Versione %1 con tor %2", + "themeDark": "Scuro", + "themeLight": "Chiaro", + "settingTheme": "Tema", + "largeTextLabel": "Grande", + "settingInterfaceZoom": "Livello di zoom", + "localeDe": "Tedesco", + "localePt": "Portoghese", + "localeFr": "Francese", + "localeEn": "Inglese", + "settingLanguage": "Lingua", + "blockUnknownLabel": "Blocca peer sconosciuti", + "zoomLabel": "Zoom dell'interfaccia (influisce principalmente sulle dimensioni del testo e dei pulsanti)", + "versionBuilddate": "Versione: %1 Costruito il: %2", + "cwtchSettingsTitle": "Impostazioni di Cwtch", + "unlock": "Sblocca", + "yourServers": "I tuoi server", + "yourProfiles": "I tuoi profili", + "error0ProfilesLoadedForPassword": "0 profili caricati con quella password", + "password": "Password", + "enterProfilePassword": "Inserisci una password per visualizzare i tuoi profili", + "addNewProfileBtn": "Aggiungi nuovo profilo", + "deleteConfirmText": "ELIMINA", + "deleteProfileConfirmBtn": "Elimina realmente il profilo", + "deleteConfirmLabel": "Digita ELIMINA per confermare", + "deleteProfileBtn": "Elimina profilo", + "passwordChangeError": "Errore durante la modifica della password: password fornita rifiutata", + "passwordErrorMatch": "Le password non corrispondono", + "saveProfileBtn": "Salva il profilo", + "createProfileBtn": "Crea un profilo", + "passwordErrorEmpty": "La password non può essere vuota", + "password2Label": "Reinserire la password", + "password1Label": "Password", + "currentPasswordLabel": "Password corrente", + "yourDisplayName": "Il tuo nome visualizzato", + "profileOnionLabel": "Inviare questo indirizzo ai peer con cui si desidera connettersi", + "noPasswordWarning": "Non utilizzare una password su questo account significa che tutti i dati archiviati localmente non verranno criptati", + "radioNoPassword": "Non criptato (senza password)", + "radioUsePassword": "Password", + "copiedToClipboardNotification": "Copiato negli appunti", + "copyBtn": "Copia", + "editProfile": "Modifica profilo", + "newProfile": "Nuovo profilo", + "defaultProfileName": "Alice", + "profileName": "Nome visualizzato", + "editProfileTitle": "Modifica profilo", + "addProfileTitle": "Aggiungi nuovo profilo", + "deleteBtn": "Elimina", + "unblockBtn": "Sblocca il peer", + "dontSavePeerHistory": "Elimina cronologia dei peer", + "savePeerHistoryDescription": "Determina se eliminare o meno ogni cronologia eventualmente associata al peer.", + "savePeerHistory": "Salva cronologia peer", + "blockBtn": "Blocca il peer", + "saveBtn": "Salva", + "displayNameLabel": "Nome visualizzato", + "addressLabel": "Indirizzo", + "puzzleGameBtn": "Gioco di puzzle", + "bulletinsBtn": "Bollettini", + "listsBtn": "Liste", + "chatBtn": "Chat", + "rejectGroupBtn": "Rifiuta", + "acceptGroupBtn": "Accetta", + "acceptGroupInviteLabel": "Vuoi accettare l'invito a", + "newGroupBtn": "Crea un nuovo gruppo", + "copiedClipboardNotification": "Copiato negli Appunti", + "peerOfflineMessage": "Il peer è offline, i messaggi non possono essere recapitati in questo momento", + "peerBlockedMessage": "Il peer è bloccato", + "pendingLabel": "In corso", + "acknowledgedLabel": "Riconosciuto", + "couldNotSendMsgError": "Impossibile inviare questo messaggio", + "dmTooltip": "Clicca per inviare un Messagio Diretto", + "membershipDescription": "Di seguito è riportato un elenco di utenti che hanno inviato messaggi al gruppo. Questo elenco potrebbe non corrispondere a tutti gli utenti che hanno accesso al gruppo.", + "addListItemBtn": "Aggiungi elemento", + "peerNotOnline": "Il peer è offline. Le applicazioni non possono essere utilizzate in questo momento.", + "searchList": "Cerca nella lista", + "update": "Aggiornamento", + "inviteBtn": "Invitare", + "inviteToGroupLabel": "Invitare nel gruppo", + "groupNameLabel": "Nome del gruppo", + "viewServerInfo": "Informazioni sul server", + "serverNotSynced": "Non sincronizzato", + "serverSynced": "Sincronizzato", + "serverConnectivityDisconnected": "Server disconnesso", + "serverConnectivityConnected": "Server connesso", + "serverInfo": "Informazioni sul server", + "invitationLabel": "Invito", + "serverLabel": "Server", + "search": "Ricerca...", + "cycleColoursDesktop": "Fare clic per scorrere i colori.\nCliccare con il tasto destro per resettare.", + "cycleColoursAndroid": "Fare clic per scorrere i colori.\nPressione lunga per resettare.", + "cycleMorphsDesktop": "Fare clic per scorrere i morph.\nCliccare con il tasto destro per resettare.", + "cycleMorphsAndroid": "Fare clic per scorrere i morph.\nPressione lunga per resettare.", + "cycleCatsDesktop": "Fare clic per scorrere le categorie.\nCliccare con il tasto destro per resettare.", + "cycleCatsAndroid": "Fare clic per scorrere le categorie.\nPressione lunga per resettare.", + "blocked": "Bloccato", + "titlePlaceholder": "titolo...", + "postNewBulletinLabel": "Pubblica un nuovo bollettino", + "newBulletinLabel": "Nuovo bollettino", + "joinGroup": "Unisciti al gruppo", + "createGroup": "Crea un gruppo", + "addPeer": "Aggiungi peer", + "groupAddr": "Indirizzo", + "invitation": "Invito", + "server": "Server", + "groupName": "Nome del gruppo", + "peerName": "Nome", + "peerAddress": "Indirizzo", + "joinGroupTab": "Unisciti a un gruppo", + "createGroupTab": "Crea un gruppo", + "addPeerTab": "Aggiungi un peer", + "createGroupBtn": "Crea", + "defaultGroupName": "Gruppo fantastico", + "createGroupTitle": "Crea un gruppo" } \ No newline at end of file diff --git a/lib/l10n/intl_pt.arb b/lib/l10n/intl_pt.arb index aff75c9..fd4c5ea 100644 --- a/lib/l10n/intl_pt.arb +++ b/lib/l10n/intl_pt.arb @@ -1,186 +1,190 @@ { "@@locale": "pt", - "@@last_modified": "2021-06-15T02:08:49+02:00", - "createGroupTitle": "Criar Grupo", - "serverLabel": "Servidor", - "groupNameLabel": "Nome do Grupo", - "defaultGroupName": "Grupo incrível", - "createGroupBtn": "Criar", - "profileOnionLabel": "Send this address to peers you want to connect with", - "copyBtn": "Copiar", - "copiedToClipboardNotification": "Copiado", - "addPeerTab": "Add a peer", - "createGroupTab": "Create a group", - "joinGroupTab": "Join a group", - "peerAddress": "Address", - "peerName": "Name", - "groupName": "Group name", - "server": "Server", - "invitation": "Invitation", - "groupAddr": "Address", - "addPeer": "Add Peer", - "createGroup": "Create group", - "joinGroup": "Join group", - "newBulletinLabel": "Novo Boletim", - "postNewBulletinLabel": "Postar novo boletim", - "titlePlaceholder": "título…", + "@@last_modified": "2021-06-16T23:15:48+02:00", + "shutdownCwtchAction": "Shutdown Cwtch", + "shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.", + "shutdownCwtchDialogTitle": "Shutdown Cwtch?", + "shutdownCwtchTooltip": "Shutdown Cwtch", + "malformedMessage": "Malformed message", + "profileDeleteSuccess": "Successfully deleted profile", + "debugLog": "Turn on console debug logging", + "torNetworkStatus": "Tor network status", + "addContactFirst": "Add or pick a contact to begin chatting.", + "createProfileToBegin": "Please create or unlock a profile to begin", + "nickChangeSuccess": "Profile nickname changed successfully", + "addServerFirst": "You need to add a server before you can create a group", + "deleteProfileSuccess": "Successfully deleted profile", + "sendInvite": "Send a contact or group invite", + "sendMessage": "Send Message", + "cancel": "Cancel", + "resetTor": "Reset", + "torStatus": "Tor Status", + "torVersion": "Tor Version", + "sendAnInvitation": "You sent an invitation for: ", + "contactSuggestion": "This is a contact suggestion for: ", + "rejected": "Rejected!", + "accepted": "Accepted!", + "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", + "newPassword": "New Password", + "yesLeave": "Yes, Leave This Conversation", + "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", + "leaveGroup": "Leave This Conversation", + "inviteToGroup": "You have been invited to join a group:", "pasteAddressToAddContact": "… cole um endereço aqui para adicionar um contato…", - "blocked": "Blocked", - "cycleCatsAndroid": "Click to cycle category.\nLong-press to reset.", - "cycleCatsDesktop": "Click to cycle category.\nRight-click to reset.", - "cycleMorphsAndroid": "Click to cycle morphs.\nLong-press to reset.", - "cycleMorphsDesktop": "Click to cycle morphs.\nRight-click to reset.", - "cycleColoursAndroid": "Click to cycle colours.\nLong-press to reset.", - "cycleColoursDesktop": "Click to cycle colours.\nRight-click to reset.", - "search": "Search...", - "invitationLabel": "Convite", - "serverInfo": "Server Information", - "serverConnectivityConnected": "Server Connected", - "serverConnectivityDisconnected": "Server Disconnected", - "serverSynced": "Synced", - "serverNotSynced": "Out of Sync", - "viewServerInfo": "Server Info", - "saveBtn": "Salvar", - "inviteToGroupLabel": "Convidar ao grupo", - "inviteBtn": "Convidar", - "deleteBtn": "Deletar", - "update": "Update", - "searchList": "Search List", - "peerNotOnline": "Peer is Offline. Applications cannot be used right now.", - "addListItemBtn": "Add Item", - "membershipDescription": "A lista abaixo é de usuários que enviaram mensagens ao grupo. Essa lista pode não refletir todos os usuários que têm acesso ao grupo.", - "dmTooltip": "Clique para DM", - "couldNotSendMsgError": "Não deu para enviar esta mensagem", - "acknowledgedLabel": "Confirmada", - "pendingLabel": "Pendente", - "peerBlockedMessage": "Peer is blocked", - "peerOfflineMessage": "Peer is offline, messages can't be delivered right now", - "copiedClipboardNotification": "Copiado", - "newGroupBtn": "Criar novo grupo", - "acceptGroupInviteLabel": "Você quer aceitar o convite para", - "acceptGroupBtn": "Aceitar", - "rejectGroupBtn": "Recusar", - "chatBtn": "Chat", - "listsBtn": "Listas", - "bulletinsBtn": "Boletins", - "puzzleGameBtn": "Jogo de Adivinhação", - "addressLabel": "Endereço", - "displayNameLabel": "Nome de Exibição", - "blockBtn": "Block Peer", - "savePeerHistory": "Save Peer History", - "savePeerHistoryDescription": "Determines whether or not to delete any history associated with the peer.", - "dontSavePeerHistory": "Delete Peer History", - "unblockBtn": "Unblock Peer", - "addProfileTitle": "Add new profile", - "editProfileTitle": "Edit Profile", - "profileName": "Display name", - "defaultProfileName": "Alice", - "newProfile": "New Profile", - "editProfile": "Edit Profille", - "radioUsePassword": "Password", - "radioNoPassword": "Unencrypted (No password)", - "noPasswordWarning": "Not using a password on this account means that all data stored locally will not be encrypted", - "yourDisplayName": "Your Display Name", - "currentPasswordLabel": "Current Password", - "password1Label": "Password", - "password2Label": "Reenter password", - "passwordErrorEmpty": "Password cannot be empty", - "createProfileBtn": "Create Profile", - "saveProfileBtn": "Save Profile", - "passwordErrorMatch": "Passwords do not match", - "passwordChangeError": "Error changing password: Supplied password rejected", - "deleteProfileBtn": "Delete Profile", - "deleteConfirmLabel": "Type DELETE to confirm", - "deleteProfileConfirmBtn": "Really Delete Profile", - "deleteConfirmText": "DELETE", - "addNewProfileBtn": "Add new profile", - "enterProfilePassword": "Enter a password to view your profiles", - "password": "Password", - "error0ProfilesLoadedForPassword": "0 profiles loaded with that password", - "yourProfiles": "Your Profiles", - "yourServers": "Your Servers", - "unlock": "Unlock", - "cwtchSettingsTitle": "Configurações do Cwtch", - "versionBuilddate": "Version: %1 Built on: %2", - "zoomLabel": "Zoom da interface (afeta principalmente tamanho de texto e botões)", - "blockUnknownLabel": "Block Unknown Peers", - "settingLanguage": "Language", - "localeEn": "English", - "localeFr": "Frances", - "localePt": "Portuguesa", - "localeDe": "Deutsche", - "settingInterfaceZoom": "Zoom level", - "largeTextLabel": "Grande", - "settingTheme": "Theme", - "themeLight": "Light", - "themeDark": "Dark", + "tooltipAddContact": "Add a new contact or conversation", + "titleManageContacts": "Conversations", + "titleManageServers": "Manage Servers", + "dateMonthsAgo": "Months Ago", + "dateNever": "Never", + "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", + "dateLastYear": "Last Year", + "dateYesterday": "Yesterday", + "dateLastMonth": "Last Month", + "dateWeeksAgo": "Weeks Ago", + "dateDaysAgo": "Days Ago", + "dateHoursAgo": "Hours Ago", + "dateMinutesAgo": "Minutes Ago", + "dateRightNow": "Right Now", + "successfullAddedContact": "Successfully added ", + "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", + "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", + "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", + "titleManageProfiles": "Manage Cwtch Profiles", + "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", + "tooltipOpenSettings": "Open the settings pane", + "invalidImportString": "Invalid import string", + "contactAlreadyExists": "Contact Already Exists", + "conversationSettings": "Conversation Settings", + "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", + "enableGroups": "Enable Group Chat", "experimentsEnabled": "Enable Experiments", - "versionTor": "Version %1 with tor %2", - "version": "Version %1", - "builddate": "Built on: %2", - "defaultScalingText": "Texto tamanho padrão (fator de escala: ", - "smallTextLabel": "Pequeno", - "loadingTor": "Loading tor...", - "viewGroupMembershipTooltip": "View Group Membership", - "networkStatusDisconnected": "Disconnected from the internet, check your connection", - "networkStatusAttemptingTor": "Attempting to connect to Tor network", - "networkStatusConnecting": "Connecting to network and peers...", - "networkStatusOnline": "Online", - "newConnectionPaneTitle": "New Connection", + "localeIt": "Italiana", + "localeEs": "Espanol", "addListItem": "Adicionar Item à Lista", "addNewItem": "Adicionar novo item à lista", "todoPlaceholder": "Afazer…", - "localeEs": "Espanol", - "localeIt": "Italiana", - "enableGroups": "Enable Group Chat", - "enterCurrentPasswordForDelete": "Please enter current password to delete this profile.", - "conversationSettings": "Conversation Settings", - "invalidImportString": "Invalid import string", - "contactAlreadyExists": "Contact Already Exists", - "tooltipOpenSettings": "Open the settings pane", - "tooltipAddContact": "Add a new contact or conversation", - "titleManageContacts": "Conversations", - "tooltipUnlockProfiles": "Unlock encrypted profiles by entering their password.", - "titleManageProfiles": "Manage Cwtch Profiles", - "descriptionExperiments": "Cwtch experiments are optional, opt-in features that add additional functionality to Cwtch that may have different privacy considerations than traditional 1:1 metadata resistant chat e.g. group chat, bot integration etc.", - "descriptionExperimentsGroups": "The group experiment allows Cwtch to connect with untrusted server infrastructure to facilitate communication with more than one contact.", - "descriptionBlockUnknownConnections": "If turned on, this option will automatically close connections from Cwtch users that have not been added to your contact list.", - "successfullAddedContact": "Successfully added ", - "dateRightNow": "Right Now", - "dateMinutesAgo": "Minutes Ago", - "dateHoursAgo": "Hours Ago", - "dateDaysAgo": "Days Ago", - "dateWeeksAgo": "Weeks Ago", - "dateLastMonth": "Last Month", - "dateYesterday": "Yesterday", - "dateLastYear": "Last Year", - "dateYearsAgo": "X Years Ago (displayed next to a contact row to indicate time of last action)", - "dateNever": "Never", - "dateMonthsAgo": "Months Ago", - "titleManageServers": "Manage Servers", - "inviteToGroup": "You have been invited to join a group:", - "leaveGroup": "Leave This Conversation", - "reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.", - "yesLeave": "Yes, Leave This Conversation", - "newPassword": "New Password", - "chatHistoryDefault": "This conversation will be deleted when Cwtch is closed! Message history can be enabled per-conversation via the Settings menu in the upper right.", - "accepted": "Accepted!", - "rejected": "Rejected!", - "contactSuggestion": "This is a contact suggestion for: ", - "sendAnInvitation": "You sent an invitation for: ", - "torVersion": "Tor Version", - "torStatus": "Tor Status", - "resetTor": "Reset", - "cancel": "Cancel", - "sendMessage": "Send Message", - "sendInvite": "Send a contact or group invite", - "deleteProfileSuccess": "Successfully deleted profile", - "addServerFirst": "You need to add a server before you can create a group", - "nickChangeSuccess": "Profile nickname changed successfully", - "createProfileToBegin": "Please create or unlock a profile to begin", - "addContactFirst": "Add or pick a contact to begin chatting.", - "torNetworkStatus": "Tor network status", - "debugLog": "Turn on console debug logging", - "profileDeleteSuccess": "Successfully deleted profile", - "malformedMessage": "Malformed message" + "newConnectionPaneTitle": "New Connection", + "networkStatusOnline": "Online", + "networkStatusConnecting": "Connecting to network and peers...", + "networkStatusAttemptingTor": "Attempting to connect to Tor network", + "networkStatusDisconnected": "Disconnected from the internet, check your connection", + "viewGroupMembershipTooltip": "View Group Membership", + "loadingTor": "Loading tor...", + "smallTextLabel": "Pequeno", + "defaultScalingText": "Texto tamanho padrão (fator de escala: ", + "builddate": "Built on: %2", + "version": "Version %1", + "versionTor": "Version %1 with tor %2", + "themeDark": "Dark", + "themeLight": "Light", + "settingTheme": "Theme", + "largeTextLabel": "Grande", + "settingInterfaceZoom": "Zoom level", + "localeDe": "Deutsche", + "localePt": "Portuguesa", + "localeFr": "Frances", + "localeEn": "English", + "settingLanguage": "Language", + "blockUnknownLabel": "Block Unknown Peers", + "zoomLabel": "Zoom da interface (afeta principalmente tamanho de texto e botões)", + "versionBuilddate": "Version: %1 Built on: %2", + "cwtchSettingsTitle": "Configurações do Cwtch", + "unlock": "Unlock", + "yourServers": "Your Servers", + "yourProfiles": "Your Profiles", + "error0ProfilesLoadedForPassword": "0 profiles loaded with that password", + "password": "Password", + "enterProfilePassword": "Enter a password to view your profiles", + "addNewProfileBtn": "Add new profile", + "deleteConfirmText": "DELETE", + "deleteProfileConfirmBtn": "Really Delete Profile", + "deleteConfirmLabel": "Type DELETE to confirm", + "deleteProfileBtn": "Delete Profile", + "passwordChangeError": "Error changing password: Supplied password rejected", + "passwordErrorMatch": "Passwords do not match", + "saveProfileBtn": "Save Profile", + "createProfileBtn": "Create Profile", + "passwordErrorEmpty": "Password cannot be empty", + "password2Label": "Reenter password", + "password1Label": "Password", + "currentPasswordLabel": "Current Password", + "yourDisplayName": "Your Display Name", + "profileOnionLabel": "Send this address to peers you want to connect with", + "noPasswordWarning": "Not using a password on this account means that all data stored locally will not be encrypted", + "radioNoPassword": "Unencrypted (No password)", + "radioUsePassword": "Password", + "copiedToClipboardNotification": "Copiado", + "copyBtn": "Copiar", + "editProfile": "Edit Profille", + "newProfile": "New Profile", + "defaultProfileName": "Alice", + "profileName": "Display name", + "editProfileTitle": "Edit Profile", + "addProfileTitle": "Add new profile", + "deleteBtn": "Deletar", + "unblockBtn": "Unblock Peer", + "dontSavePeerHistory": "Delete Peer History", + "savePeerHistoryDescription": "Determines whether or not to delete any history associated with the peer.", + "savePeerHistory": "Save Peer History", + "blockBtn": "Block Peer", + "saveBtn": "Salvar", + "displayNameLabel": "Nome de Exibição", + "addressLabel": "Endereço", + "puzzleGameBtn": "Jogo de Adivinhação", + "bulletinsBtn": "Boletins", + "listsBtn": "Listas", + "chatBtn": "Chat", + "rejectGroupBtn": "Recusar", + "acceptGroupBtn": "Aceitar", + "acceptGroupInviteLabel": "Você quer aceitar o convite para", + "newGroupBtn": "Criar novo grupo", + "copiedClipboardNotification": "Copiado", + "peerOfflineMessage": "Peer is offline, messages can't be delivered right now", + "peerBlockedMessage": "Peer is blocked", + "pendingLabel": "Pendente", + "acknowledgedLabel": "Confirmada", + "couldNotSendMsgError": "Não deu para enviar esta mensagem", + "dmTooltip": "Clique para DM", + "membershipDescription": "A lista abaixo é de usuários que enviaram mensagens ao grupo. Essa lista pode não refletir todos os usuários que têm acesso ao grupo.", + "addListItemBtn": "Add Item", + "peerNotOnline": "Peer is Offline. Applications cannot be used right now.", + "searchList": "Search List", + "update": "Update", + "inviteBtn": "Convidar", + "inviteToGroupLabel": "Convidar ao grupo", + "groupNameLabel": "Nome do Grupo", + "viewServerInfo": "Server Info", + "serverNotSynced": "Out of Sync", + "serverSynced": "Synced", + "serverConnectivityDisconnected": "Server Disconnected", + "serverConnectivityConnected": "Server Connected", + "serverInfo": "Server Information", + "invitationLabel": "Convite", + "serverLabel": "Servidor", + "search": "Search...", + "cycleColoursDesktop": "Click to cycle colours.\nRight-click to reset.", + "cycleColoursAndroid": "Click to cycle colours.\nLong-press to reset.", + "cycleMorphsDesktop": "Click to cycle morphs.\nRight-click to reset.", + "cycleMorphsAndroid": "Click to cycle morphs.\nLong-press to reset.", + "cycleCatsDesktop": "Click to cycle category.\nRight-click to reset.", + "cycleCatsAndroid": "Click to cycle category.\nLong-press to reset.", + "blocked": "Blocked", + "titlePlaceholder": "título…", + "postNewBulletinLabel": "Postar novo boletim", + "newBulletinLabel": "Novo Boletim", + "joinGroup": "Join group", + "createGroup": "Create group", + "addPeer": "Add Peer", + "groupAddr": "Address", + "invitation": "Invitation", + "server": "Server", + "groupName": "Group name", + "peerName": "Name", + "peerAddress": "Address", + "joinGroupTab": "Join a group", + "createGroupTab": "Create a group", + "addPeerTab": "Add a peer", + "createGroupBtn": "Criar", + "defaultGroupName": "Grupo incrível", + "createGroupTitle": "Criar Grupo" } \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index 9e804af..0d4c2c8 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,4 @@ import 'dart:convert'; -import 'dart:isolate'; - import 'package:cwtch/notification_manager.dart'; import 'package:cwtch/views/messageview.dart'; import 'package:cwtch/widgets/rightshiftfixer.dart'; @@ -20,7 +18,7 @@ import 'licenses.dart'; import 'model.dart'; import 'views/profilemgrview.dart'; import 'views/splashView.dart'; -import 'dart:io' show Platform; +import 'dart:io' show Platform, exit; import 'opaque.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -115,6 +113,18 @@ class FlwtchState extends State { ); } + Future shutdown(MethodCall call) async { + // Wait a few seconds as shutting down things takes a little time.. + Future.delayed(Duration(seconds: 2)).then((value) { + if (Platform.isAndroid) { + SystemNavigator.pop(); + } else if (Platform.isLinux || Platform.isWindows) { + print("Exiting..."); + exit(0); + } + }); + } + Future _externalNotificationClicked(MethodCall call) async { var args = jsonDecode(call.arguments); var profile = profs.getProfile(args["ProfileOnion"])!; diff --git a/lib/views/profilemgrview.dart b/lib/views/profilemgrview.dart index 1c8468b..950793a 100644 --- a/lib/views/profilemgrview.dart +++ b/lib/views/profilemgrview.dart @@ -1,4 +1,5 @@ import 'dart:convert'; +import 'dart:io'; import 'package:cwtch/cwtch_icons_icons.dart'; import 'package:flutter/material.dart'; @@ -6,6 +7,7 @@ import 'package:cwtch/settings.dart'; import 'package:cwtch/views/torstatusview.dart'; import 'package:cwtch/widgets/passwordfield.dart'; import 'package:cwtch/widgets/tor_icon.dart'; +import 'package:flutter/services.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:cwtch/widgets/profilerow.dart'; import 'package:provider/provider.dart'; @@ -26,6 +28,8 @@ class ProfileMgrView extends StatefulWidget { class _ProfileMgrViewState extends State { final ctrlrPassword = TextEditingController(); + bool closeApp = false; + @override void dispose() { ctrlrPassword.dispose(); @@ -39,7 +43,10 @@ class _ProfileMgrViewState extends State { // (which would shutdown connections and all kinds of other expensive to generate things) // TODO pop up a dialogue regarding closing the app? builder: (context, settings, child) => WillPopScope( - onWillPop: () async => false, + onWillPop: () async { + _showShutdown(); + return closeApp; + }, child: Scaffold( backgroundColor: settings.theme.backgroundMainColor(), appBar: AppBar( @@ -86,9 +93,6 @@ class _ProfileMgrViewState extends State { )); // Only show debug button on development builds - if (EnvironmentConfig.BUILD_VER == dev_version) { - actions.add(IconButton(icon: Icon(Icons.bug_report_outlined), tooltip: "Turn on Debug Logging", onPressed: _setLoggingLevelDebug)); - } // Unlock Profiles actions.add(IconButton( @@ -100,16 +104,46 @@ class _ProfileMgrViewState extends State { // Global Settings actions.add(IconButton(icon: Icon(Icons.settings), tooltip: AppLocalizations.of(context)!.tooltipOpenSettings, onPressed: _pushGlobalSettings)); + actions.add(IconButton(icon: Icon(Icons.close), tooltip: AppLocalizations.of(context)!.shutdownCwtchTooltip, onPressed: _showShutdown)); + return actions; } - void _setLoggingLevelDebug() { - final setLoggingLevel = { - "EventType": "SetLoggingLevel", - "Data": {"Debug": "true"}, - }; - final setLoggingLevelJson = jsonEncode(setLoggingLevel); - Provider.of(context, listen: false).cwtch.SendAppEvent(setLoggingLevelJson); + _showShutdown() { + // set up the buttons + Widget cancelButton = TextButton( + child: Text(AppLocalizations.of(context)!.cancel), + onPressed: () { + Navigator.of(context).pop(); // dismiss dialog + }, + ); + Widget continueButton = TextButton( + child: Text(AppLocalizations.of(context)!.shutdownCwtchAction), + onPressed: () { + Provider.of(context, listen: false).cwtch.Shutdown(); + // Directly call the shutdown command, Android will do this for us... + Provider.of(context, listen: false).shutdown(MethodCall("")); + closeApp = true; + }); + + // set up the AlertDialog + AlertDialog alert = AlertDialog( + title: Text(AppLocalizations.of(context)!.shutdownCwtchDialogTitle), + content: Text(AppLocalizations.of(context)!.shutdownCwtchDialog), + actions: [ + cancelButton, + continueButton, + ], + ); + + // show the dialog + showDialog( + context: context, + barrierDismissible: false, + builder: (BuildContext context) { + return alert; + }, + ); } void _pushGlobalSettings() {