Merge pull request 'Support Custom Tor Configuration' (#300) from custom_tor_config into trunk
continuous-integration/drone/push Build is failing Details

Reviewed-on: #300
Reviewed-by: erinn <erinn@openprivacy.ca>
This commit is contained in:
erinn 2022-01-12 23:19:15 +00:00
commit 1bd2195be4
14 changed files with 578 additions and 300 deletions

View File

@ -1 +1 @@
2022-01-07-16-29-v1.5.4
2022-01-12-17-26-v1.5.4-3-gaf47036

View File

@ -1 +1 @@
2022-01-07-21-30-v1.5.4
2022-01-12-22-26-v1.5.4-3-gaf47036

View File

@ -1,6 +1,15 @@
{
"@@locale": "de",
"@@last_modified": "2021-12-20T09:20:03+01:00",
"@@last_modified": "2022-01-12T23:54:51+01:00",
"torSettingsErrorSettingPort": "Port Number must be between 1 and 65535",
"torSettingsUseCustomTorServiceConfigurastionDescription": "Override the default tor configuration. Warning: This could be dangerous. Only turn this on if you know what you are doing.",
"torSettingsUseCustomTorServiceConfiguration": "Use a Custom Tor Service Configuration (torrc)",
"torSettingsCustomControlPortDescription": "Use a custom port for control connections to the Tor proxy",
"torSettingsCustomControlPort": "Custom Control Port",
"torSettingsCustomSocksPortDescription": "Use a custom port for data connections to the Tor proxy",
"torSettingsCustomSocksPort": "Custom SOCKS Port",
"torSettingsEnabledAdvancedDescription": "Use an existing Tor service on your system, or change the parameters of the Cwtch Tor Service",
"torSettingsEnabledAdvanced": "Enable Advanced Tor Configuration",
"msgAddToAccept": "Add this account to your contacts in order to accept this file.",
"btnSendFile": "Send File",
"msgConfirmSend": "Are you sure you want to send",

View File

@ -1,6 +1,16 @@
{
"@@locale": "en",
"@@last_modified": "2021-12-20T09:20:03+01:00",
"@@last_modified": "2022-01-12T23:54:51+01:00",
"torSettingsErrorSettingPort": "Port Number must be between 1 and 65535",
"settingTheme": "Use Light Themes",
"torSettingsUseCustomTorServiceConfiguration": "Use a Custom Tor Service Configuration (torrc)",
"torSettingsUseCustomTorServiceConfigurastionDescription": "Override the default tor configuration. Warning: This could be dangerous. Only turn this on if you know what you are doing.",
"torSettingsCustomControlPortDescription": "Use a custom port for control connections to the Tor proxy",
"torSettingsCustomControlPort": "Custom Control Port",
"torSettingsCustomSocksPortDescription": "Use a custom port for data connections to the Tor proxy",
"torSettingsCustomSocksPort": "Custom SOCKS Port",
"torSettingsEnabledAdvancedDescription": "Use an existing Tor service on your system, or change the parameters of the Cwtch Tor Service",
"torSettingsEnabledAdvanced": "Enable Advanced Tor Configuration",
"msgAddToAccept": "Add this account to your contacts in order to accept this file.",
"btnSendFile": "Send File",
"msgConfirmSend": "Are you sure you want to send",
@ -188,7 +198,6 @@
"versionTor": "Version %1 with tor %2",
"themeDark": "Dark",
"themeLight": "Light",
"settingTheme": "Theme",
"largeTextLabel": "Large",
"settingInterfaceZoom": "Zoom level",
"localeDe": "Deutsche",

View File

@ -1,6 +1,15 @@
{
"@@locale": "es",
"@@last_modified": "2021-12-20T09:20:03+01:00",
"@@last_modified": "2022-01-12T23:54:51+01:00",
"torSettingsErrorSettingPort": "Port Number must be between 1 and 65535",
"torSettingsUseCustomTorServiceConfigurastionDescription": "Override the default tor configuration. Warning: This could be dangerous. Only turn this on if you know what you are doing.",
"torSettingsUseCustomTorServiceConfiguration": "Use a Custom Tor Service Configuration (torrc)",
"torSettingsCustomControlPortDescription": "Use a custom port for control connections to the Tor proxy",
"torSettingsCustomControlPort": "Custom Control Port",
"torSettingsCustomSocksPortDescription": "Use a custom port for data connections to the Tor proxy",
"torSettingsCustomSocksPort": "Custom SOCKS Port",
"torSettingsEnabledAdvancedDescription": "Use an existing Tor service on your system, or change the parameters of the Cwtch Tor Service",
"torSettingsEnabledAdvanced": "Enable Advanced Tor Configuration",
"msgAddToAccept": "Add this account to your contacts in order to accept this file.",
"btnSendFile": "Send File",
"msgConfirmSend": "Are you sure you want to send",

View File

@ -1,6 +1,15 @@
{
"@@locale": "fr",
"@@last_modified": "2021-12-20T09:20:03+01:00",
"@@last_modified": "2022-01-12T23:54:51+01:00",
"torSettingsErrorSettingPort": "Port Number must be between 1 and 65535",
"torSettingsUseCustomTorServiceConfigurastionDescription": "Override the default tor configuration. Warning: This could be dangerous. Only turn this on if you know what you are doing.",
"torSettingsUseCustomTorServiceConfiguration": "Use a Custom Tor Service Configuration (torrc)",
"torSettingsCustomControlPortDescription": "Use a custom port for control connections to the Tor proxy",
"torSettingsCustomControlPort": "Custom Control Port",
"torSettingsCustomSocksPortDescription": "Use a custom port for data connections to the Tor proxy",
"torSettingsCustomSocksPort": "Custom SOCKS Port",
"torSettingsEnabledAdvancedDescription": "Use an existing Tor service on your system, or change the parameters of the Cwtch Tor Service",
"torSettingsEnabledAdvanced": "Enable Advanced Tor Configuration",
"msgConfirmSend": "Êtes-vous sûr de vouloir envoyer",
"acceptGroupInviteLabel": "Voulez-vous accepter l'invitation au groupe de",
"msgFileTooBig": "La taille du fichier ne peut pas dépasser 10 Go",

View File

@ -1,6 +1,18 @@
{
"@@locale": "it",
"@@last_modified": "2021-12-20T09:20:03+01:00",
"@@last_modified": "2022-01-12T23:54:51+01:00",
"torSettingsErrorSettingPort": "Port Number must be between 1 and 65535",
"torSettingsUseCustomTorServiceConfigurastionDescription": "Override the default tor configuration. Warning: This could be dangerous. Only turn this on if you know what you are doing.",
"torSettingsUseCustomTorServiceConfiguration": "Use a Custom Tor Service Configuration (torrc)",
"torSettingsCustomControlPortDescription": "Use a custom port for control connections to the Tor proxy",
"torSettingsCustomControlPort": "Custom Control Port",
"torSettingsCustomSocksPortDescription": "Use a custom port for data connections to the Tor proxy",
"torSettingsCustomSocksPort": "Custom SOCKS Port",
"torSettingsEnabledAdvancedDescription": "Use an existing Tor service on your system, or change the parameters of the Cwtch Tor Service",
"torSettingsEnabledAdvanced": "Enable Advanced Tor Configuration",
"serverNotSynced": "Sincronizzazione Nuovi Messaggi (L'operazione può richiedere del tempo)...",
"copiedClipboardNotification": "Copiato negli appunti",
"savePeerHistory": "Salva Cronologia ",
"blockUnknownLabel": "Blocca Contatti Sconosciuti",
"unblockBtn": "Sblocca il Contatto",
"dontSavePeerHistory": "Elimina Cronologia",
@ -83,7 +95,6 @@
"peerOfflineMessage": "Il contatto è offline, i messaggi non possono essere recapitati in questo momento",
"networkStatusConnecting": "Connessione alla rete e ai contatti...",
"savePeerHistoryDescription": "Determina se eliminare la cronologia eventualmente associata al contatto.",
"savePeerHistory": "Salva cronologia ",
"profileOnionLabel": "Invia questo indirizzo ai contatti con cui vuoi connetterti",
"importLocalServerLabel": "Importa un server ospitato localmente",
"importLocalServerButton": "Importa %1",
@ -163,7 +174,6 @@
"tooltipSendFile": "Invia file",
"settingFileSharing": "Condivisione file",
"descriptionFileSharing": "L'esperimento di condivisione dei file ti consente di inviare e ricevere file dai contatti e dai gruppi di Cwtch. Tieni presente che la condivisione di un file con un gruppo farà sì che i membri di quel gruppo si colleghino con te direttamente su Cwtch per scaricarlo.",
"serverNotSynced": "Sincronizzazione nuovi messaggi (l'operazione può richiedere del tempo)...",
"enterCurrentPasswordForDelete": "Inserisci la password attuale per eliminare questo profilo.",
"invalidImportString": "Importazione stringa non valida",
"tooltipOpenSettings": "Aprire il pannello delle impostazioni",
@ -230,7 +240,6 @@
"blocked": "Bloccato",
"search": "Ricerca...",
"copyBtn": "Copia",
"copiedClipboardNotification": "Copiato negli Appunti",
"newGroupBtn": "Crea un nuovo gruppo",
"invitationLabel": "Invito",
"serverInfo": "Informazioni sul server",

View File

@ -1,78 +1,268 @@
{
"@@locale": "pl",
"@@last_modified": "2021-12-20T09:20:03+01:00",
"msgAddToAccept": "Add this account to your contacts in order to accept this file.",
"btnSendFile": "Send File",
"msgConfirmSend": "Are you sure you want to send",
"msgFileTooBig": "File size cannot exceed 10 GB",
"storageMigrationModalMessage": "Migrating profiles to new storage format. This could take a few minutes...",
"loadingCwtch": "Loading Cwtch...",
"themeColorLabel": "Color Theme",
"themeNameNeon2": "Neon2",
"themeNameNeon1": "Neon1",
"themeNameMidnight": "Midnight",
"themeNameMermaid": "Mermaid",
"themeNamePumpkin": "Pumpkin",
"themeNameGhost": "Ghost",
"themeNameVampire": "Vampire",
"themeNameWitch": "Witch",
"@@last_modified": "2022-01-12T23:54:51+01:00",
"torSettingsErrorSettingPort": "Port Number must be between 1 and 65535",
"torSettingsUseCustomTorServiceConfigurastionDescription": "Override the default tor configuration. Warning: This could be dangerous. Only turn this on if you know what you are doing.",
"torSettingsUseCustomTorServiceConfiguration": "Use a Custom Tor Service Configuration (torrc)",
"torSettingsCustomControlPortDescription": "Use a custom port for control connections to the Tor proxy",
"torSettingsCustomControlPort": "Custom Control Port",
"torSettingsCustomSocksPortDescription": "Use a custom port for data connections to the Tor proxy",
"torSettingsCustomSocksPort": "Custom SOCKS Port",
"torSettingsEnabledAdvancedDescription": "Use an existing Tor service on your system, or change the parameters of the Cwtch Tor Service",
"torSettingsEnabledAdvanced": "Enable Advanced Tor Configuration",
"largeTextLabel": "Duży",
"settingInterfaceZoom": "Przybliżenie",
"localeDe": "Deutsche",
"localePt": "Portuguesa",
"localeFr": "Frances",
"localeEn": "English",
"settingLanguage": "Język",
"blockUnknownLabel": "Blokuj nieznajomych",
"zoomLabel": "Przybliżenie interfejsu (wpływa głównie na rozmiar tekstu i przycisków)",
"versionBuilddate": "Wersja: %1 Zbudowana: %2",
"cwtchSettingsTitle": "Ustawienia Cwtch",
"unlock": "Odblokuj",
"yourServers": "Twoje serwery",
"yourProfiles": "Twoje profile",
"error0ProfilesLoadedForPassword": "Znaleziono 0 profili z tym hasłem",
"password": "Hasło",
"enterProfilePassword": "Wprowadź hasło aby wyświetlić profile",
"addNewProfileBtn": "Dodaj",
"deleteConfirmText": "USUŃ",
"deleteProfileConfirmBtn": "Usuń",
"deleteConfirmLabel": "Wpisz USUŃ aby potwierdzić",
"deleteProfileBtn": "Usuń profil",
"passwordChangeError": "Zmiana hasła nie powiodła się: hasło niepoprawne",
"passwordErrorMatch": "Hasła nie są identyczne",
"saveProfileBtn": "Zapisz profil",
"createProfileBtn": "Utwórz profil",
"passwordErrorEmpty": "Hasło nie może być puste",
"password2Label": "Powtórz hasło",
"password1Label": "Hasło",
"currentPasswordLabel": "Obecne hasło",
"yourDisplayName": "Nazwa",
"profileOnionLabel": "Send this address to contacts you want to connect with",
"noPasswordWarning": "Brak hasła do konta oznacza, że dane przechowywane na tym urządzeniu nie będą zaszyfrowane",
"radioNoPassword": "Niezaszyfrowany (brak hasła)",
"radioUsePassword": "Hasło",
"copiedToClipboardNotification": "Copied to Clipboard",
"editProfile": "Edytuj profil",
"newProfile": "Nowy profil",
"defaultProfileName": "Nowy profil",
"profileName": "Nazwa",
"editProfileTitle": "Edytuj profil",
"addProfileTitle": "Dodaj nowy profil",
"deleteBtn": "Delete",
"unblockBtn": "Odblokuj",
"dontSavePeerHistory": "Nie",
"savePeerHistoryDescription": "Zapisywanie wiadomości",
"savePeerHistory": "Tak",
"blockBtn": "Zablokuj",
"saveBtn": "Save",
"displayNameLabel": "Nazwa",
"addressLabel": "Adresy",
"puzzleGameBtn": "Puzzle",
"bulletinsBtn": "Biuletyny",
"listsBtn": "Listy",
"chatBtn": "Chat",
"rejectGroupBtn": "Odrzuć",
"acceptGroupBtn": "Akceptuj",
"acceptGroupInviteLabel": "Czy chcesz zaakceptować zaproszenie do grupy",
"newGroupBtn": "Utwórz nową grupę",
"copiedClipboardNotification": "Skopiowano do schowka",
"copyBtn": "Kopiuj",
"peerOfflineMessage": "Znajomy jest niedostępny, nie można dostarczyć wiadomości",
"peerBlockedMessage": "Użytkownik jest zablokowany",
"pendingLabel": "W toku",
"acknowledgedLabel": "OK",
"couldNotSendMsgError": "Wiadomość nie została wysłana",
"dmTooltip": "Kliknij, aby wysłać wiadomość",
"membershipDescription": "Lista użytkowników, którzy wysyłali wiadomości w tej grupie. Członkowie grupy, którzy nie wysyłali żadnych wiadomości nie są na tej liście.",
"addListItemBtn": "Dodaj",
"peerNotOnline": "Znajomy jest niedostępny. Nie można użyć aplikacji.",
"searchList": "Search List",
"update": "Zaktualizuj",
"inviteBtn": "Zaproś",
"inviteToGroupLabel": "Zaproś do grupy",
"groupNameLabel": "Group name",
"viewServerInfo": "Informacje o serwerze",
"serverNotSynced": "Synchronizacja wiadomości (to może chwilę potrwać)...",
"serverSynced": "Zsynchronizowano",
"serverConnectivityDisconnected": "Brak połączenia z serwerem",
"serverConnectivityConnected": "Połączono z serwerem",
"serverInfo": "Informacje o serwerze",
"invitationLabel": "Zaproszenie",
"serverLabel": "Server",
"search": "Szukaj...",
"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": "Zablokowany",
"pasteAddressToAddContact": "Wklej adres Cwtch znajomego, zaproszenie do grupy albo pęk kluczy",
"titlePlaceholder": "Tytuł...",
"postNewBulletinLabel": "Opublikuj nowy biuletyn",
"newBulletinLabel": "Nowy biuletyn",
"joinGroup": "Dołącz do grupy",
"createGroup": "Utwórz grupę",
"addPeer": "Dodaj znajomego",
"groupAddr": "Adres",
"invitation": "Zaproszenie",
"server": "Serwer",
"groupName": "Nazwa grupy",
"peerName": "Nazwa",
"peerAddress": "Adres",
"joinGroupTab": "Dołącz do grupy",
"createGroupTab": "Utwórz grupę",
"addPeerTab": "Dodaj znajomego",
"createGroupBtn": "Utwórz",
"defaultGroupName": "Nowa grupa",
"createGroupTitle": "Utwórz grupę",
"msgAddToAccept": "Dodaj tego użytkownika do znajomych aby pobrać plik.",
"btnSendFile": "Wyślij plik",
"msgConfirmSend": "Na pewno chcesz wysłać ten plik?",
"msgFileTooBig": "Rozmiar pliku nie może przekraczać 10 GB",
"storageMigrationModalMessage": "Migrowanie profili do nowego formatu. To może chwilę potrwać...",
"loadingCwtch": "Ładowanie Cwtch...",
"themeColorLabel": "Motyw",
"themeNameNeon2": "Neon 2",
"themeNameNeon1": "Neon 1",
"themeNameMidnight": "Północ",
"themeNameMermaid": "Syrena",
"themeNamePumpkin": "Dynia",
"themeNameGhost": "Duch",
"themeNameVampire": "Wampir",
"themeNameWitch": "Czarownica",
"themeNameCwtch": "Cwtch",
"settingDownloadFolder": "Download Folder",
"settingImagePreviewsDescription": "Images will be downloaded and previewed automatically. Please note that image previews can often lead to security vulnerabilities, and you should not enable this Experiment if you use Cwtch with untrusted contacts. Profile pictures are planned for Cwtch 1.6.",
"settingImagePreviews": "Image Previews and Profile Pictures",
"experimentClickableLinksDescription": "The clickable links experiment allows you to click on URLs shared in messages",
"enableExperimentClickableLinks": "Enable Clickable Links",
"serverConnectionsLabel": "Connection",
"serverTotalMessagesLabel": "Total Messages",
"serverMetricsLabel": "Server Metrics",
"manageKnownServersShort": "Servers",
"manageKnownServersLong": "Manage Known Servers",
"displayNameTooltip": "Please enter a display name",
"manageKnownServersButton": "Manage Known Servers",
"fieldDescriptionLabel": "Description",
"groupsOnThisServerLabel": "Groups I am in hosted on this server",
"importLocalServerButton": "Import %1",
"importLocalServerSelectText": "Select Local Server",
"importLocalServerLabel": "Import a locally hosted server",
"titleManageServers": "Zarządzaj serwerami",
"leaveGroup": "Wyjdź z tej rozmowy",
"yesLeave": "Tak, wyjdź z tej rozmowy",
"newPassword": "Nowe hasło",
"accepted": "Przyjęte!",
"rejected": "Odrzucone!",
"settingDownloadFolder": "Folder dla pobranych plików",
"settingImagePreviewsDescription": "Automatyczne pobieranie i podgląd obrazów. Pamiętaj, że podgląd obrazów jest potencjalną luką w zabezpieczeniach i nie należy używać tej eksperymentalnej funkcjonalności jeśli używasz Cwtch do komunikacji z niezaufanymi osobami. Zdjęcia profilowe są przewidziane na wersję Cwtch 1.6",
"settingImagePreviews": "Podgląd zdjęć i zdjęcia profilowe",
"experimentClickableLinksDescription": "Klikalne linki (eksperymentalne). Umożliwia klikanie na linki w wiadomościach, aby je otworzyć",
"enableExperimentClickableLinks": "Włącz klikalne linki",
"serverConnectionsLabel": "Połączenie",
"serverTotalMessagesLabel": "Wiadomości łącznie",
"serverMetricsLabel": "Statystyki serwera",
"manageKnownServersShort": "Serwery",
"manageKnownServersLong": "Zarządzaj znanymi serwerami",
"displayNameTooltip": "Wprowadź nazwę",
"manageKnownServersButton": "Zarządzaj znanymi serwerami",
"fieldDescriptionLabel": "Opis",
"groupsOnThisServerLabel": "Grupy na tym serwerze, których jesteś członkiem",
"importLocalServerButton": "Importuj %1",
"importLocalServerSelectText": "Wybierz lokalny serwer",
"importLocalServerLabel": "Importuj lokalnie hostowany serwer",
"fileCheckingStatus": "Sprawdzanie statusu pobierania",
"fileInterrupted": "Przerwano",
"encryptedServerDescription": "Zaszyfrowanie serwera hasłem chroni go przed dostępem innych osób korzystających z tego urządzenia.",
"plainServerDescription": "Zalecamy ustawienie hasła dla Cwtch. Jeśli hasło nie zostanie ustawione, każdy z dostępem do tego urządzenia uzyska dostęp do tego serwera, w tym do wrażliwych kluczy kryptograficznych.",
"deleteServerConfirmBtn": "Usuń",
"deleteServerSuccess": "Usunięto serwer",
"settingServersDescription": "Hostowanie serwerów (eksperymentalne) umożliwia tworzenie i zarządzanie serwerami Cwtch",
"settingServers": "Hostowanie serwerów",
"unlockProfileTip": "Utwórz albo odblokuj profil aby rozpocząć!",
"unlockServerTip": "Utwórz albo odblokuj serwer aby rozpocząć!",
"serverAutostartDescription": "Decyduje, czy aplikacja automatycznie włączy serwer po uruchomieniu",
"serverDescriptionDescription": "Opis serwera widoczny tylko dla Ciebie",
"titleManageProfilesShort": "Profil",
"descriptionFileSharing": "Udostępnianie plików (eksperymentalne) umożliwia wysyłanie i otrzymywanie plików od znajomych i grup. Pamiętaj, że udostępnienie pliku grupie spowoduje bezpośrednie połączenie się członków grupy z Tobą przez Cwtch w celu pobrania pliku.",
"messageFileOffered": "Znajomy chce wysłać Ci plik",
"messageEnableFileSharing": "Włącz udostępnianie plików (eksperymentalne) aby wyświetlić tę wiadomość",
"descriptionStreamerMode": "Ukrywa wrażliwe elementy interfejsu, np. adresy profili i kontaktów, na potrzeby udostępniania swojego ekranu",
"blockUnknownConnectionsEnabledDescription": "Ta konwersacja zostanie usunięta gdy zamkniesz Cwtch! Możesz włączyć zapisywanie wiadomości dla każdej konwersacji osobno w menu w prawym górnym rogu.",
"blockedMessageMessage": "Ta wiadomość jest od użytkownika, który został przez Ciebie zablokowany",
"plainProfileDescription": "Zalecamy ustawienie hasła dla profilu Cwtch. Jeśli hasło nie zostanie ustawione, każdy z dostępem do tego urządzenia uzyska dostęp do tego profilu, w tym do wiadomości, znajomych i wrażliwych kluczy kryptograficznych.",
"encryptedProfileDescription": "Zaszyfrowanie profilu hasłem chroni go przed dostępem innych osób korzystających z tego urządzenia",
"addContactConfirm": "Dodaj znajomego %1",
"addContact": "Dodaj znajomego",
"contactGoto": "Przejdź do konwersacji z %1",
"settingUIColumnOptionSame": "Tak samo jak w przypadku trybu wertykalnego",
"settingUIColumnLandscape": "Kolumny interfejsu w trybie horyzontalnym",
"settingUIColumnPortrait": "Kolumny interfejsu w trybie wertykalnym",
"tooltipRejectContactRequest": "Odrzuć zaproszenie do znajomych",
"tooltipAcceptContactRequest": "Akceptuj zaproszenie do znajomych",
"notificationNewMessageFromPeer": "Nowa wiadomość od znajomego!",
"groupInviteSettingsWarning": "Zaproszono Cię do grupy! Aby wyświetlić to zaproszenie, włącz Czaty Grupowe (eksperymentalne) w Ustawieniach",
"shutdownCwtchDialog": "Zamknąć Cwtch? Wszystkie połączenia zostaną zakończone, a aplikacja zostanie zamknięta.",
"malformedMessage": "Wiadomość uszkodzona",
"profileDeleteSuccess": "Profil został usunięty",
"debugLog": "Włącz zapisywanie logów konsoli",
"torNetworkStatus": "Status sieci Tor",
"addContactFirst": "Wybierz lub dodaj znajomego aby rozpocząć konwersację.",
"createProfileToBegin": "Utwórz albo odblokuj profil aby rozpocząć",
"nickChangeSuccess": "Nazwa profilu została zmieniona",
"addServerFirst": "Musisz dodać serwer, aby utworzyć grupę",
"deleteProfileSuccess": "Profil został usunięty",
"sendInvite": "Wyślij zaproszenie do znajomych albo do grupy",
"sendAnInvitation": "You sent an invitation for: ",
"contactSuggestion": "This is a contact suggestion for: ",
"rejected": "Odrzucono!",
"accepted": "Zaakceptowano!",
"chatHistoryDefault": "Ta konwersacja zostanie usunięta gdy zamkniesz Cwtch! Możesz włączyć zapisywanie wiadomości dla każdej konwersacji osobno w menu w prawym górnym rogu.",
"yesLeave": "Opuść",
"reallyLeaveThisGroupPrompt": "Na pewno chcesz opuścić tę grupę? Wszystkie wiadomości i atrybuty zostaną usunięte.",
"leaveGroup": "Opuść grupę",
"inviteToGroup": "Zaproszono Cię do grupy:",
"dateNever": "Nigdy",
"dateLastYear": "Rok temu",
"dateYesterday": "Wczoraj",
"dateLastMonth": "Miesiąc temu",
"dateRightNow": "Teraz",
"successfullAddedContact": "Dodano znajomego ",
"descriptionBlockUnknownConnections": "Blokowanie połączeń od osób, które nie są na liście Twoich znajomych.",
"descriptionExperimentsGroups": "Czaty grupowe (eksperymentalne) łączą się z niezaufanymi serwerami, aby umożliwić komunikację grupową.",
"descriptionExperiments": "Funkcje eksperymentalne są opcjonalne. Dodają one funkcjonalności, które mogą być mniej prywatne niż domyślne konwersacje 1:1, np. czaty grupowe, integracja z botami, itp.",
"titleManageProfiles": "Zarządzaj Profilami",
"tooltipUnlockProfiles": "Wprowadź hasło, aby odblokować zaszyfrowane profile.",
"titleManageContacts": "Konwersacje",
"tooltipAddContact": "Dodaj znajomego lub grupę",
"tooltipOpenSettings": "Ustawienia",
"contactAlreadyExists": "Ten znajomy już istnieje",
"invalidImportString": "Invalid import string",
"conversationSettings": "Ustawienia konwersacji",
"enterCurrentPasswordForDelete": "Aby usunąć ten profil, wprowadź hasło.",
"enableGroups": "Włącz czaty grupowe",
"localeIt": "Italiana",
"localeEs": "Espanol",
"todoPlaceholder": "Do zdobienia...",
"addNewItem": "Dodaj do listy",
"addListItem": "Add a New List Item",
"newConnectionPaneTitle": "Nowe połączenie",
"networkStatusOnline": "Połączono",
"networkStatusConnecting": "Łączenie z siecią i znajomymi...",
"networkStatusAttemptingTor": "Próba połączenia z siecią Tor",
"networkStatusDisconnected": "Rozłączono. Sprawdź połączenie z Internetem",
"viewGroupMembershipTooltip": "Wyświetl członków grupy",
"loadingTor": "Ładowanie Tor...",
"smallTextLabel": "Mały",
"defaultScalingText": "Domyślny rozmiar tekstu (skalowanie:",
"builddate": "Zbudowana: %2",
"version": "Wersja %1",
"versionTor": "Wersja %1 , wersja Tor %2",
"experimentsEnabled": "Włącz funkcje eksperymentalne",
"themeDark": "Ciemny",
"themeLight": "Jasny",
"settingTheme": "Motyw",
"titleManageServers": "Zarządzaj serwerami",
"newPassword": "Nowe hasło",
"torVersion": "Wersja Tor",
"torStatus": "Status Tor",
"resetTor": "Reset",
"cancel": "Anuluj",
"sendMessage": "Wyślij wiadomość",
"sendInvite": "Wyślij kontakt lub zaproszenie do grupy",
"deleteProfileSuccess": "Pomyślnie usunięto profil",
"nickChangeSuccess": "Nick w profilu został zmieniony pomyślnie",
"torNetworkStatus": "Stan sieci Tor",
"debugLog": "Włącz logowanie debugowania konsoli",
"profileDeleteSuccess": "Pomyślnie usunięto profil",
"malformedMessage": "Źle sformatowana wiadomość",
"shutdownCwtchTooltip": "Zamknij Cwtch",
"shutdownCwtchDialogTitle": "Zamknąć Cwtch?",
"shutdownCwtchAction": "Zamknij Cwtch",
"tooltipShowPassword": "Pokaż hasło",
"tooltipHidePassword": "Ukryj hasło",
"notificationNewMessageFromPeer": "Nowa wiadomość od kontaktu!",
"notificationNewMessageFromGroup": "Nowa wiadomość w grupie!",
"tooltipAcceptContactRequest": "Zaakceptuj tę prośbę o kontakt.",
"tooltipRejectContactRequest": "Odrzuć tę prośbę o kontakt",
"tooltipReplyToThisMessage": "Odpowiedz na tę wiadomość",
"tooltipRemoveThisQuotedMessage": "Usuń cytowaną wiadomość.",
"settingUIColumnDouble12Ratio": "Podwójny (1:2)",
"settingUIColumnSingle": "Pojedynczy",
"settingUIColumnDouble14Ratio": "Podwójny (1:4)",
"settingUIColumnOptionSame": "Tak samo jak w przypadku trybu portretowego",
"contactGoto": "Przejdź do rozmowy z %1",
"addContact": "Dodaj kontakt",
"addContactConfirm": "Dodaj kontakt %1",
"placeholderEnterMessage": "Wpisz wiadomość...",
"blockedMessageMessage": "Ta wiadomość pochodzi z profilu, który został przez Ciebie zablokowany.",
"showMessageButton": "Pokaż wiadomość",
"addServerTitle": "Dodaj serwer",
"editServerTitle": "Edytuj serwer",
@ -86,27 +276,14 @@
"serversManagerTitleShort": "Serwery",
"addServerTooltip": "Dodaj nowy serwer",
"enterServerPassword": "Wprowadź hasło, aby odblokować serwer",
"settingServers": "Hosting serwerów",
"enterCurrentPasswordForDeleteServer": "Wprowadź aktualne hasło, aby usunąć ten serwer",
"newMessagesLabel": "Nowe wiadomości",
"localePl": "Polski",
"localeRU": "Rosyjski",
"copyAddress": "Skopiuj adres",
"deleteServerSuccess": "Pomyślnie usunięto serwer",
"deleteServerConfirmBtn": "Naprawdę usuń serwer",
"fileSavedTo": "Zapisano do",
"fileCheckingStatus": "Sprawdzanie stanu pobierania",
"verfiyResumeButton": "Zweryfikuj\/wznów",
"copyServerKeys": "Kopiuj klucze",
"fileInterrupted": "Przerwane",
"encryptedServerDescription": "Encrypting a server with a password protects it from other people who may also use this device. Encrypted servers cannot be decrypted, displayed or accessed until the correct password is entered to unlock them.",
"plainServerDescription": "We recommend that you protect your Cwtch servers with a password. If you do not set a password on this server then anyone who has access to this device may be able to access information about this server, including sensitive cryptographic keys.",
"settingServersDescription": "The hosting servers experiment enables hosting and managing Cwtch servers",
"unlockProfileTip": "Please create or unlock a profile to begin!",
"unlockServerTip": "Please create or unlock a server to begin!",
"serverAutostartDescription": "Controls if the application will automatically launch the server on start",
"serverDescriptionDescription": "Your description of the server for personal management use only, will never be shared",
"blockUnknownConnectionsEnabledDescription": "Połączenia od nieznanych kontaktów są blokowane. Można to zmienić w Ustawieniach",
"archiveConversation": "Zarchiwizuj tę rozmowę",
"streamerModeLabel": "Tryb streamera\/prezentacji",
"retrievingManifestMessage": "Pobieranie informacji o pliku...",
@ -114,175 +291,7 @@
"downloadFileButton": "Pobierz",
"labelFilename": "Nazwa pliku",
"labelFilesize": "Rozmiar",
"messageEnableFileSharing": "Włącz eksperyment udostępniania plików, aby wyświetlić tę wiadomość.",
"messageFileSent": "Plik został wysłany",
"messageFileOffered": "Kontakt proponuje wysłanie Ci pliku",
"tooltipSendFile": "Wyślij plik",
"settingFileSharing": "Udostępnianie plików",
"descriptionFileSharing": "Eksperyment udostępniania plików pozwala na wysyłanie i odbieranie plików od kontaktów i grup Cwtch. Zauważ, że udostępnienie pliku grupie spowoduje, że członkowie tej grupy połączą się z Tobą bezpośrednio przez Cwtch, aby go pobrać.",
"titleManageProfilesShort": "Profile",
"descriptionStreamerMode": "If turned on, this option makes the app more visually private for streaming or presenting with, for example, hiding profile and contact addresses",
"plainProfileDescription": "We recommend that you protect your Cwtch profiles with a password. If you do not set a password on this profile then anyone who has access to this device may be able to access information about this profile, including contacts, messages and sensitive cryptographic keys.",
"encryptedProfileDescription": "Encrypting a profile with a password protects it from other people who may also use this device. Encrypted profiles cannot be decrypted, displayed or accessed until the correct password is entered to unlock them.",
"settingUIColumnLandscape": "UI Columns in Landscape Mode",
"settingUIColumnPortrait": "UI Columns in Portrait Mode",
"groupInviteSettingsWarning": "You have been invited to join a group! Please enable the Group Chat Experiment in Settings to view this Invitation.",
"shutdownCwtchDialog": "Are you sure you want to shutdown Cwtch? This will close all connections, and exit the application.",
"addContactFirst": "Add or pick a contact to begin chatting.",
"createProfileToBegin": "Please create or unlock a profile to begin",
"addServerFirst": "You need to add a server before you can create a group",
"contactSuggestion": "This is a contact suggestion for: ",
"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.",
"reallyLeaveThisGroupPrompt": "Are you sure you want to leave this conversation? All messages and attributes will be deleted.",
"inviteToGroup": "You have been invited to join a group:",
"dateNever": "Never",
"dateLastYear": "Last Year",
"dateYesterday": "Yesterday",
"dateLastMonth": "Last Month",
"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.",
"titleManageContacts": "Conversations",
"tooltipAddContact": "Add a new contact or conversation",
"tooltipOpenSettings": "Open the settings pane",
"contactAlreadyExists": "Contact Already Exists",
"invalidImportString": "Invalid import string",
"conversationSettings": "Conversation Settings",
"enterCurrentPasswordForDelete": "Please enter current password to delete this profile.",
"enableGroups": "Enable Group Chat",
"localeIt": "Italiana",
"localeEs": "Espanol",
"todoPlaceholder": "Todo...",
"addNewItem": "Add a new item to the list",
"addListItem": "Add a New List Item",
"newConnectionPaneTitle": "New Connection",
"networkStatusOnline": "Online",
"networkStatusConnecting": "Connecting to network and contacts...",
"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",
"experimentsEnabled": "Enable Experiments",
"themeDark": "Dark",
"themeLight": "Light",
"settingTheme": "Theme",
"largeTextLabel": "Large",
"settingInterfaceZoom": "Zoom level",
"localeDe": "Deutsche",
"localePt": "Portuguesa",
"localeFr": "Frances",
"localeEn": "English",
"settingLanguage": "Language",
"blockUnknownLabel": "Block Unknown Contacts",
"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 contacts 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",
"editProfile": "Edit Profille",
"newProfile": "New Profile",
"defaultProfileName": "Alice",
"profileName": "Display name",
"editProfileTitle": "Edit Profile",
"addProfileTitle": "Add new profile",
"deleteBtn": "Delete",
"unblockBtn": "Unblock Contact",
"dontSavePeerHistory": "Delete History",
"savePeerHistoryDescription": "Determines whether to delete any history associated with the contact.",
"savePeerHistory": "Save History",
"blockBtn": "Block Contact",
"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",
"copyBtn": "Copy",
"peerOfflineMessage": "Contact is offline, messages can't be delivered right now",
"peerBlockedMessage": "Contact 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": "Contact 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": "Syncing New Messages (This can take some time)...",
"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",
"pasteAddressToAddContact": "Paste a cwtch address, invitation or key bundle here to add a new conversation",
"titlePlaceholder": "title...",
"postNewBulletinLabel": "Post new bulletin",
"newBulletinLabel": "New Bulletin",
"joinGroup": "Join group",
"createGroup": "Create group",
"addPeer": "Add Contact",
"groupAddr": "Address",
"invitation": "Invitation",
"server": "Server",
"groupName": "Group name",
"peerName": "Name",
"peerAddress": "Address",
"joinGroupTab": "Join a group",
"createGroupTab": "Create a group",
"addPeerTab": "Add a contact",
"createGroupBtn": "Create",
"defaultGroupName": "Awesome Group",
"createGroupTitle": "Create Group"
"settingFileSharing": "Udostępnianie plików"
}

View File

@ -1,6 +1,15 @@
{
"@@locale": "pt",
"@@last_modified": "2021-12-20T09:20:03+01:00",
"@@last_modified": "2022-01-12T23:54:51+01:00",
"torSettingsErrorSettingPort": "Port Number must be between 1 and 65535",
"torSettingsUseCustomTorServiceConfigurastionDescription": "Override the default tor configuration. Warning: This could be dangerous. Only turn this on if you know what you are doing.",
"torSettingsUseCustomTorServiceConfiguration": "Use a Custom Tor Service Configuration (torrc)",
"torSettingsCustomControlPortDescription": "Use a custom port for control connections to the Tor proxy",
"torSettingsCustomControlPort": "Custom Control Port",
"torSettingsCustomSocksPortDescription": "Use a custom port for data connections to the Tor proxy",
"torSettingsCustomSocksPort": "Custom SOCKS Port",
"torSettingsEnabledAdvancedDescription": "Use an existing Tor service on your system, or change the parameters of the Cwtch Tor Service",
"torSettingsEnabledAdvanced": "Enable Advanced Tor Configuration",
"msgAddToAccept": "Add this account to your contacts in order to accept this file.",
"btnSendFile": "Send File",
"msgConfirmSend": "Are you sure you want to send",
@ -174,7 +183,7 @@
"experimentsEnabled": "Enable Experiments",
"themeDark": "Dark",
"themeLight": "Light",
"settingTheme": "Theme",
"settingTheme": "Use Light Themes",
"largeTextLabel": "Grande",
"settingInterfaceZoom": "Zoom level",
"localeDe": "Deutsche",

View File

@ -1,13 +1,37 @@
{
"@@locale": "ru",
"@@last_modified": "2021-12-20T09:20:03+01:00",
"msgAddToAccept": "Add this account to your contacts in order to accept this file.",
"btnSendFile": "Send File",
"msgConfirmSend": "Are you sure you want to send",
"msgFileTooBig": "File size cannot exceed 10 GB",
"storageMigrationModalMessage": "Migrating profiles to new storage format. This could take a few minutes...",
"loadingCwtch": "Loading Cwtch...",
"themeColorLabel": "Тема",
"@@last_modified": "2022-01-12T23:54:51+01:00",
"torSettingsErrorSettingPort": "Port Number must be between 1 and 65535",
"msgAddToAccept": "Добавьте учетную запись в контакты, чтобы принять этот файл.",
"btnSendFile": "Отправить файл",
"msgConfirmSend": "Вы уверены, что хотите отправить?",
"msgFileTooBig": "Размер файла не должен превышать 10GB",
"storageMigrationModalMessage": "Перенос профилей в новый формат хранения. Это может занять несколько минут...",
"loadingCwtch": "Загрузка Cwtch...",
"themeColorLabel": "Светлая или Темная тема",
"settingDownloadFolder": "Папка для скачивания",
"serverConnectionsLabel": "Всего соединений:",
"serverTotalMessagesLabel": "Всего сообщений:",
"plainServerDescription": "Мы настоятельно рекомендуем защитить свой Onion сервер Cwtch паролем. Если Вы этого не сделаете, то любой у кого окажется доступ к серверу, сможет получить доступ к информации на этом сервере включая конфиденциальные криптографические ключи.",
"settingServersDescription": "Экспериментальная функция которая позволяет добавлять сервер для Cwtch в скрытой сети Tor. В меню появится дополнительная опция Серверы",
"streamerModeLabel": "Режим маскировки",
"settingUIColumnSingle": "Один стобец",
"settingUIColumnLandscape": "Столбцы чатов в ландшафтном режиме",
"settingUIColumnPortrait": "Столбцы чатов в портретном режиме",
"resetTor": "Сброс",
"descriptionBlockUnknownConnections": "Если включить этот параметр, все соединения от людей, не состоящих в ваших контактах будут отклонены.",
"descriptionExperimentsGroups": "Данная экспериментальная функция позволяет создавать группы в Cwtch, чтобы облегчить Вам общение с более чем одним контактом. Для создания групп необходимо включить функцию создания сервера и создать сервер в главном меню программы.",
"descriptionExperiments": "Экспериментальные функции Cwtch это необязательные дополнительные функции, которые добавляют некоторые возможности, но не имеют такой же устойчивости к метаданным как если бы вы общались через традиционный чат 1 на 1..",
"settingLanguage": "Выбрать язык",
"profileName": "Введите имя...",
"torSettingsUseCustomTorServiceConfigurastionDescription": "Override the default tor configuration. Warning: This could be dangerous. Only turn this on if you know what you are doing.",
"torSettingsUseCustomTorServiceConfiguration": "Use a Custom Tor Service Configuration (torrc)",
"torSettingsCustomControlPortDescription": "Use a custom port for control connections to the Tor proxy",
"torSettingsCustomControlPort": "Custom Control Port",
"torSettingsCustomSocksPortDescription": "Use a custom port for data connections to the Tor proxy",
"torSettingsCustomSocksPort": "Custom SOCKS Port",
"torSettingsEnabledAdvancedDescription": "Use an existing Tor service on your system, or change the parameters of the Cwtch Tor Service",
"torSettingsEnabledAdvanced": "Enable Advanced Tor Configuration",
"themeNameNeon2": "Неон2",
"themeNameNeon1": "Неон1",
"themeNameMidnight": "Полночь",
@ -17,13 +41,10 @@
"themeNameVampire": "Вампир",
"themeNameWitch": "Ведьма",
"themeNameCwtch": "Cwtch",
"settingDownloadFolder": "Скачать папку",
"settingImagePreviewsDescription": "Автоматическая загрузка изображений. Обратите внимание, что предварительный просмотр изображений часто может использоваться для взлома или деаномизации. Не используйте данную функцию если Вы контактируете с ненадежными контактами. Аватары профиля запланированы для версии Cwtch 1.6.",
"settingImagePreviews": "Предпросмотр изображений и фотографий профиля",
"experimentClickableLinksDescription": "Экспериментальная функция которая позволяет нажимать на URL адреса в сообщениях",
"enableExperimentClickableLinks": "Включить кликабельные ссылки",
"serverConnectionsLabel": "Соединение",
"serverTotalMessagesLabel": "Всего сообщений",
"serverMetricsLabel": "Показатели сервера",
"manageKnownServersShort": "Серверы",
"manageKnownServersLong": "Управление серверами",
@ -53,12 +74,10 @@
"fileInterrupted": "Прервано",
"fileSavedTo": "Сохранить в",
"encryptedServerDescription": "Шифрование сервера паролем защитит его от других людей у которых может оказаться доступ к этому устройству, включая Onion адрес сервера. Зашифрованный сервер нельзя расшифровать, пока не будет введен правильный пароль разблокировки.",
"plainServerDescription": "Мы настоятельно рекомендуем защитить свой сервер Cwtch паролем. Если Вы этого не сделаете, то любой у кого окажется доступ к серверу, сможет получить доступ к информации на этом сервере включая конфиденциальные криптографические ключи.",
"deleteServerConfirmBtn": "Точно удалить сервер?",
"deleteServerSuccess": "Сервер успешно удален",
"enterCurrentPasswordForDeleteServer": "Пожалуйста, введите пароль сервера, чтобы удалить его",
"copyAddress": "Копировать адрес",
"settingServersDescription": "Экспериментальная функция которая позволяет добавлять сервер Cwtch. В меню появится дополнительная опция Серверы",
"settingServers": "Использовать серверы",
"enterServerPassword": "Введите пароль для разблокировки сервера",
"unlockProfileTip": "Создайте или разблокируйте профиль, чтобы начать",
@ -89,7 +108,6 @@
"openFolderButton": "Открыть папку",
"retrievingManifestMessage": "Получение информации о файле...",
"descriptionStreamerMode": "При включении этого параметра, внешний вид некоторых элементов становится более приватным, скрывая длинные Onion адреса и адреса контактов, оставляя только заданные имена",
"streamerModeLabel": "Режим презентации",
"archiveConversation": "Отправить чат в архив",
"blockUnknownConnectionsEnabledDescription": "Соединения от неизвестных контактов блокируются. Данный параметр можно изменить в настройках",
"showMessageButton": "Показать сообщения",
@ -103,9 +121,6 @@
"settingUIColumnOptionSame": "Как в настройках портретного режима",
"settingUIColumnDouble14Ratio": "Двойной (1:4)",
"settingUIColumnDouble12Ratio": "Двойной (1:2)",
"settingUIColumnSingle": "Одиночный",
"settingUIColumnLandscape": "UI столбцы в Ландшафтном Режиме",
"settingUIColumnPortrait": "UI столбцы в Портретном режиме",
"localePl": "Польский",
"tooltipRemoveThisQuotedMessage": "Удалить цитируемое сообщение.",
"tooltipReplyToThisMessage": "Ответить на это сообщение",
@ -132,7 +147,6 @@
"sendInvite": "Отправить контакт или приглашение в группу",
"sendMessage": "Отправить сообщение",
"cancel": "Отмена",
"resetTor": "Сбросс",
"torStatus": "Статус Tor",
"torVersion": "Версия Tor",
"sendAnInvitation": "Вы отправили приглашение для: ",
@ -152,9 +166,6 @@
"dateLastMonth": "Прошлый месяц",
"dateRightNow": "Прямо сейчас",
"successfullAddedContact": "Успешно добавлен",
"descriptionBlockUnknownConnections": "Если включить этот параметр, все соединения от людей не состоящих в ваших контактах будут отклонены.",
"descriptionExperimentsGroups": "Данная экспериментальная функция позволяет Cwtch подключаться к недоверенной серверной инфраструктуре, чтобы облегчить Вам общение с более чем одним контактом.",
"descriptionExperiments": "Экспериментальные функции Cwtch это необязательные дополнительные функции, которые добавляют некоторые возможности, но не имеют такой же устойчивости к метаданным как если бы вы общались через традиционный част 1 на 1..",
"titleManageProfiles": "Управление профилями Cwtch",
"tooltipUnlockProfiles": "Разблокировать зашифрованные профили, введя их пароль.",
"titleManageContacts": "Разговоры",
@ -191,7 +202,6 @@
"localePt": "Португальский",
"localeFr": "Французский",
"localeEn": "Английский",
"settingLanguage": "Язык",
"blockUnknownLabel": "Блокировать неизвестные контакты",
"zoomLabel": "Масштаб интерфейса (в основном влияет на размеры текста и кнопок)",
"versionBuilddate": "Версия: %1 Сборка от: %2",
@ -221,7 +231,6 @@
"radioUsePassword": "Пароль",
"editProfile": "Изменить профиль",
"newProfile": "Новый профиль",
"profileName": "Отображаемое имя",
"editProfileTitle": "Изменить профиль",
"addProfileTitle": "Добавить новый профиль",
"unblockBtn": "Разблокировать контакт",

View File

@ -39,6 +39,13 @@ class Settings extends ChangeNotifier {
bool streamerMode = false;
String _downloadPath = "";
bool _allowAdvancedTorConfig = false;
bool _useCustomTorConfig = false;
String _customTorConfig = "";
int _socksPort = -1;
int _controlPort = -1;
String _customTorAuth = "";
void setTheme(String themeId, String mode) {
theme = getTheme(themeId, mode);
notifyListeners();
@ -86,6 +93,13 @@ class Settings extends ChangeNotifier {
// auto-download folder
_downloadPath = settings["DownloadPath"] ?? "";
// allow a custom tor config
_allowAdvancedTorConfig = settings["AllowAdvancedTorConfig"] ?? false;
_useCustomTorConfig = settings["UseCustomTorrc"] ?? false;
_customTorConfig = settings["CustomTorrc"] ?? "";
_socksPort = settings["CustomSocksPort"] ?? -1;
_controlPort = settings["CustomControlPort"] ?? -1;
// Push the experimental settings to Consumers of Settings
notifyListeners();
}
@ -232,6 +246,38 @@ class Settings extends ChangeNotifier {
notifyListeners();
}
bool get allowAdvancedTorConfig => _allowAdvancedTorConfig;
set allowAdvancedTorConfig(bool torConfig) {
_allowAdvancedTorConfig = torConfig;
notifyListeners();
}
// Settings / Gettings for setting the custom tor config..
String get torConfig => _customTorConfig;
set torConfig(String torConfig) {
_customTorConfig = torConfig;
notifyListeners();
}
int get socksPort => _socksPort;
set socksPort(int newSocksPort) {
_socksPort = newSocksPort;
notifyListeners();
}
int get controlPort => _controlPort;
set controlPort(int controlPort) {
_controlPort = controlPort;
notifyListeners();
}
// Setters / Getters for toggling whether the app should use a custom tor config
bool get useCustomTorConfig => _useCustomTorConfig;
set useCustomTorConfig(bool useCustomTorConfig) {
_useCustomTorConfig = useCustomTorConfig;
notifyListeners();
}
/// Construct a default settings object.
Settings(this.locale, this.theme);
@ -252,6 +298,12 @@ class Settings extends ChangeNotifier {
"UIColumnModePortrait": uiColumnModePortrait.toString(),
"UIColumnModeLandscape": uiColumnModeLandscape.toString(),
"DownloadPath": _downloadPath,
"AllowAdvancedTorConfig": _allowAdvancedTorConfig,
"CustomTorRc": _customTorConfig,
"UseCustomTorrc": _useCustomTorConfig,
"CustomSocksPort": _socksPort,
"CustomControlPort": _controlPort,
"CustomAuth": _customTorAuth,
};
}
}

View File

@ -39,6 +39,8 @@ class MidnightDark extends CwtchDark {
get messageFromMeTextColor => font; //whiteishPurple;
get messageFromOtherBackgroundColor => peerBubble; //deepPurple;
get messageFromOtherTextColor => font; //whiteishPurple;
get textfieldBackgroundColor => peerBubble;
get textfieldBorderColor => userBubble;
}
class MidnightLight extends CwtchLight {
@ -66,4 +68,5 @@ class MidnightLight extends CwtchLight {
get messageFromMeTextColor => font; //mainTextColor;
get messageFromOtherBackgroundColor => peerBubble; //purple;
get messageFromOtherTextColor => font; //darkPurple;
get textfieldBackgroundColor => userBubble;
}

View File

@ -1,3 +1,6 @@
import 'package:cwtch/cwtch_icons_icons.dart';
import 'package:cwtch/settings.dart';
import 'package:cwtch/widgets/textfield.dart';
import 'package:flutter/material.dart';
import 'package:cwtch/torstatus.dart';
import 'package:cwtch/widgets/tor_icon.dart';
@ -5,6 +8,7 @@ import 'package:provider/provider.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import '../main.dart';
import 'globalsettingsview.dart';
/// Tor Status View provides all info on Tor network state and the (future) ability to configure the network in a variety
/// of ways (restart, enable bridges, enable pluggable transports etc)
@ -14,6 +18,10 @@ class TorStatusView extends StatefulWidget {
}
class _TorStatusView extends State<TorStatusView> {
TextEditingController torSocksPortController = TextEditingController();
TextEditingController torControlPortController = TextEditingController();
TextEditingController torConfigController = TextEditingController();
@override
void dispose() {
super.dispose();
@ -30,33 +38,157 @@ class _TorStatusView extends State<TorStatusView> {
}
Widget _buildSettingsList() {
return Consumer<TorStatus>(builder: (context, torStatus, child) {
return LayoutBuilder(builder: (BuildContext context, BoxConstraints viewportConstraints) {
return Scrollbar(
isAlwaysShown: true,
child: SingleChildScrollView(
clipBehavior: Clip.antiAlias,
child: ConstrainedBox(
constraints: BoxConstraints(
minHeight: viewportConstraints.maxHeight,
),
child: Column(children: [
ListTile(
leading: TorIcon(),
title: Text(AppLocalizations.of(context)!.torStatus),
subtitle: Text(torStatus.progress == 100 ? AppLocalizations.of(context)!.networkStatusOnline : torStatus.status),
trailing: ElevatedButton(
child: Text(AppLocalizations.of(context)!.resetTor),
onPressed: () {
Provider.of<FlwtchState>(context, listen: false).cwtch.ResetTor();
},
return Consumer<Settings>(builder: (
context,
settings,
child,
) {
// We don't want these to update on edit...only on construction...
if (torSocksPortController.text.isEmpty) {
torConfigController.text = settings.torConfig;
torSocksPortController.text = settings.socksPort.toString();
torControlPortController.text = settings.controlPort.toString();
}
return Consumer<TorStatus>(builder: (context, torStatus, child) {
return LayoutBuilder(builder: (BuildContext context, BoxConstraints viewportConstraints) {
return Scrollbar(
isAlwaysShown: true,
child: SingleChildScrollView(
clipBehavior: Clip.antiAlias,
child: ConstrainedBox(
constraints: BoxConstraints(
minHeight: viewportConstraints.maxHeight,
),
child: Column(children: [
ListTile(
leading: TorIcon(),
title: Text(AppLocalizations.of(context)!.torStatus),
subtitle: Text(torStatus.progress == 100 ? AppLocalizations.of(context)!.networkStatusOnline : torStatus.status),
trailing: ElevatedButton(
child: Text(AppLocalizations.of(context)!.resetTor),
onPressed: () {
Provider.of<FlwtchState>(context, listen: false).cwtch.ResetTor();
},
),
),
),
ListTile(
title: Text(AppLocalizations.of(context)!.torVersion),
subtitle: SelectableText(torStatus.version),
),
]))));
ListTile(
title: Text(AppLocalizations.of(context)!.torVersion),
subtitle: SelectableText(torStatus.version),
leading: Icon(CwtchIcons.info_24px, color: settings.current().mainTextColor),
),
SwitchListTile(
title: Text(AppLocalizations.of(context)!.torSettingsEnabledAdvanced),
subtitle: Text(AppLocalizations.of(context)!.torSettingsEnabledAdvancedDescription),
value: settings.allowAdvancedTorConfig,
onChanged: (bool value) {
settings.allowAdvancedTorConfig = value;
saveSettings(context);
},
activeTrackColor: settings.theme.defaultButtonColor,
inactiveTrackColor: settings.theme.defaultButtonDisabledColor,
secondary: Icon(CwtchIcons.settings_24px, color: settings.current().mainTextColor),
),
Visibility(
visible: settings.allowAdvancedTorConfig,
child: Column(children: [
ListTile(
title: Text(AppLocalizations.of(context)!.torSettingsCustomSocksPort),
subtitle: Text(AppLocalizations.of(context)!.torSettingsCustomSocksPortDescription),
leading: Icon(CwtchIcons.swap_horiz_24px, color: settings.current().mainTextColor),
trailing: Container(
width: 300,
child: CwtchTextField(
number: true,
controller: torSocksPortController,
validator: (value) {
try {
var port = int.parse(value);
if (port > 0 && port < 65536) {
return null;
} else {
return AppLocalizations.of(
context)!
.torSettingsErrorSettingPort;
}
}catch (e) {
return AppLocalizations.of(
context)!
.torSettingsErrorSettingPort;
}
},
onChanged: (String socksPort) {
try {
var port = int.parse(socksPort);
if (port > 0 && port < 65536) {
settings.socksPort = int.parse(socksPort);
saveSettings(context);
}
} catch (e) {}
},
))),
ListTile(
title: Text(AppLocalizations.of(context)!.torSettingsCustomControlPort),
subtitle: Text(AppLocalizations.of(context)!.torSettingsCustomControlPortDescription),
leading: Icon(CwtchIcons.swap_horiz_24px, color: settings.current().mainTextColor),
trailing: Container(
width: 300,
child: CwtchTextField(
number: true,
controller: torControlPortController,
validator: (value) {
try {
var port = int.parse(value);
if (port > 0 && port < 65536) {
return null;
} else {
return AppLocalizations.of(
context)!
.torSettingsErrorSettingPort;
}
}catch (e) {
return AppLocalizations.of(
context)!
.torSettingsErrorSettingPort;
}
},
onChanged: (String controlPort) {
try {
var port = int.parse(controlPort);
if (port > 0 && port < 65536) {
settings.controlPort =
int.parse(controlPort);
saveSettings(context);
}
} catch (e) {}
},
))),
SwitchListTile(
title: Text(AppLocalizations.of(context)!.torSettingsUseCustomTorServiceConfiguration, style: TextStyle(color: settings.current().mainTextColor)),
subtitle: Text(AppLocalizations.of(context)!.torSettingsUseCustomTorServiceConfigurastionDescription),
value: settings.useCustomTorConfig,
onChanged: (bool value) {
settings.useCustomTorConfig = value;
saveSettings(context);
},
activeTrackColor: settings.theme.defaultButtonColor,
inactiveTrackColor: settings.theme.defaultButtonDisabledColor,
secondary: Icon(CwtchIcons.enable_experiments, color: settings.current().mainTextColor),
),
Visibility(
visible: settings.useCustomTorConfig,
child: Padding(
padding: EdgeInsets.all(5),
child: CwtchTextField(
controller: torConfigController,
multiLine: true,
onChanged: (torConfig) {
settings.torConfig = torConfig;
saveSettings(context);
},
)))
]))
]))));
});
});
});
}

View File

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:provider/provider.dart';
import '../settings.dart';
@ -7,12 +8,14 @@ doNothing(String x) {}
// Provides a styled Text Field for use in Form Widgets.
// Callers must provide a text controller, label helper text and a validator.
class CwtchTextField extends StatefulWidget {
CwtchTextField({required this.controller, required this.hintText, this.validator, this.autofocus = false, this.onChanged = doNothing});
CwtchTextField({required this.controller, this.hintText = "", this.validator, this.autofocus = false, this.onChanged = doNothing, this.number = false, this.multiLine = false});
final TextEditingController controller;
final String hintText;
final FormFieldValidator? validator;
final Function(String) onChanged;
final bool autofocus;
final bool multiLine;
final bool number;
@override
_CwtchTextFieldState createState() => _CwtchTextFieldState();
@ -20,9 +23,11 @@ class CwtchTextField extends StatefulWidget {
class _CwtchTextFieldState extends State<CwtchTextField> {
late final FocusNode _focusNode;
late final ScrollController _scrollController;
@override
void initState() {
_scrollController = ScrollController();
_focusNode = FocusNode();
_focusNode.addListener(() {
// Select all...
@ -39,9 +44,22 @@ class _CwtchTextFieldState extends State<CwtchTextField> {
validator: widget.validator,
onChanged: widget.onChanged,
autofocus: widget.autofocus,
autovalidateMode: AutovalidateMode.onUserInteraction,
textAlign: widget.number ? TextAlign.end : TextAlign.start,
keyboardType: widget.multiLine
? TextInputType.multiline
: widget.number
? TextInputType.number
: TextInputType.text,
inputFormatters: widget.number ? <TextInputFormatter>[
FilteringTextInputFormatter.digitsOnly
] : null,
maxLines: widget.multiLine ? null : 1,
scrollController: _scrollController,
enableIMEPersonalizedLearning: false,
focusNode: _focusNode,
decoration: InputDecoration(
errorMaxLines: 2,
hintText: widget.hintText,
floatingLabelBehavior: FloatingLabelBehavior.never,
filled: true,
@ -51,6 +69,7 @@ class _CwtchTextFieldState extends State<CwtchTextField> {
errorStyle: TextStyle(
color: theme.current().textfieldErrorColor,
fontWeight: FontWeight.bold,
overflow: TextOverflow.visible
),
fillColor: theme.current().textfieldBackgroundColor,
contentPadding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 10.0),