diff --git a/_locales/de/messages.json b/_locales/de/messages.json index 3b5102b63..41c69f59c 100644 --- a/_locales/de/messages.json +++ b/_locales/de/messages.json @@ -83,10 +83,20 @@ "message": "Löschen", "description": "Edit menu command to remove the selected text" }, + "editProfileModalTitle": { + "message": "Profil", + "description": "Title for the Edit Profile modal" + }, "editMenuSelectAll": { "message": "Alles auswählen", "description": "Edit menu comand to select all of the text in selected text box" }, + "newSession": { + "message": "Neue Session" + }, + "addContact": { + "message": "Kontakt hinzufügen" + }, "editMenuStartSpeaking": { "message": "Sprachausgabe starten", "description": "Edit menu item under 'speech' to start dictation" @@ -147,6 +157,9 @@ "message": "Wird geladen …", "description": "Message shown on the loading screen before we've loaded any messages" }, + "or": { + "message": "oder" + }, "optimizingApplication": { "message": "Anwendung wird optimiert …", "description": "Message shown on the loading screen while we are doing application optimizations" @@ -549,10 +562,90 @@ } } }, + "copiedPublicKey": { + "message": "In Zwischenablage kopiert", + "description": "A toast message telling the user that the key was copied" + }, + "copiedChatId": { + "message": "In Zwischenablage kopiert", + "description": "A toast message telling the user that the key was copied" + }, + "sessionResetOngoing": { + "message": "Verschlüsselung neu gestartet", + "description": "your secure session is currently being reset, waiting for the reset acknowledgment." + }, + "blockUser": { + "message": "Blockieren" + }, + "unblockUser": { + "message": "Freigeben" + }, + "members": { + "message": "$count$ mitglied", + "placeholders": { + "count": { + "content": "$1", + "example": "26" + } + } + }, + "noContactsForGroup": { + "message": "Sie haben noch keine Kontakte." + }, + "getStarted": { + "message": "Loslegen" + }, + "createAccount": { + "message": "Konto Erstellen" + }, + "signIn": { + "message": "Einloggen" + }, + "beginYourSession": { + "message": "Beginnen
Sie
Ihre
Session." + }, + "continue": { + "message": "Fortsetzen" + }, + "welcomeToYourSession": { + "message": "Willkommen bei Session" + }, + "generateSessionID": { + "message": "Session ID erstellen" + }, + "yourUniqueSessionID": { + "message": "Das ist Ihre Session ID." + }, + "allUsersAreRandomly...": { + "message": "Ihre Session ID ist die eindeutige Adresse, unter der Personen Sie über Session kontaktieren können. Ihre Session ID ist nicht mit Ihrer realen Identität verbunden, völlig anonym und von Natur aus privat." + }, + "leaveOpenGroupConfirmation": { + "message": "Möchtest du wirklich diese Gruppe verlassen??", + "description": "Confirmation dialog text that tells the user what will happen if they leave the public channel." + }, + "leaveClosedGroupConfirmation": { + "message": "Möchtest du wirklich diese Gruppe verlassen?", + "description": "Confirmation dialog text that tells the user what will happen if they leave the closed group." + }, + "copyPublicKey": { + "message": "Kopieren", + "description": "Button action that the user can click to copy their public keys" + }, + "copyChatId": { + "message": "Kopieren" + }, + "deleteContact": { + "message": "Kontakt löschen", + "description": "Confirmation dialog title that asks the user if they really wish to delete the contact. Answer buttons use the strings 'ok' and 'cancel'. The deletion is permanent, i.e. it cannot be undone." + }, "oneNonImageAtATimeToast": { "message": "Mehrere Anhänge je Nachricht sind ausschließlich bei Bildern erlaubt.", "description": "An error popup when the user has attempted to add an attachment" }, + "editGroupName": { + "message": "Gruppe bearbeiten", + "description": "Button action that the user can click to edit a group name (closed)" + }, "cannotMixImageAndNonImageAttachments": { "message": "Du kannst Bilder nicht gemeinsam mit anderen Anhängen in einer Nachricht kombinieren.", "description": "An error popup when the user has attempted to add an attachment" @@ -739,6 +832,24 @@ "message": "Auf Nachricht antworten", "description": "Shown in triple-dot menu next to message to allow user to start crafting a message with a quotation" }, + "enterOpenGroupURL": { + "message": "Gruppen-URL öffnen" + }, + "newClosedGroup": { + "message": "Neue geschlossene Gruppe" + }, + "createClosedGroupNamePrompt": { + "message": "Gruppenname" + }, + "createClosedGroupPlaceholder": { + "message": "Geben Sie einen Gruppennamen ein." + }, + "addChannelDescription": { + "message": "Geben Sie eine offene Gruppen-URL ein." + }, + "next": { + "message": "Weiter" + }, "originalMessageNotFound": { "message": "Originalnachricht nicht gefunden", "description": "Shown in quote if reference message was not found as message was initially downloaded and processed" @@ -802,7 +913,7 @@ "description": "Shown on MacOS if running on a read-only volume and we cannot update" }, "ok": { - "message": "Okay", + "message": "Ok", "description": "" }, "cancel": { @@ -907,6 +1018,14 @@ "message": "Soll diese Unterhaltung unwiderruflich gelöscht werden?", "description": "Confirmation dialog text that asks the user if they really wish to delete the conversation. Answer buttons use the strings 'ok' and 'cancel'. The deletion is permanent, i.e. it cannot be undone." }, + "deleteAccount": { + "message": "Alle Daten löschen", + "description": "Text for button in settings view to delete account" + }, + "deleteAccountWarningSub": { + "message": "Dadurch werden Ihre Nachrichten, Sessions und Kontakte dauerhaft gelöscht.", + "description": "Warning for account deletion in settings view" + }, "sessionEnded": { "message": "Verschlüsselung zurückgesetzt", "description": "This is a past tense, informational message. In other words, your secure session has been reset." @@ -1117,10 +1236,60 @@ "message": "Erfahre mehr über das Verifizieren von Sicherheitsnummern", "description": "Text that links to a support article on verifying safety numbers" }, + "appearanceSettingsTitle": { + "message": "Darstellung" + }, + "privacySettingsTitle": { + "message": "Datenschutz" + }, + "notificationsSettingsTitle": { + "message": "Benachrichtigungen" + }, + "devicesSettingsTitle": { + "message": "Geräte" + }, + "linkPreviewsTitle": { + "message": "Link-Vorschauen senden", + "description": "Option to control creation and send of link previews in setting screen" + }, + "linkPreviewDescription": { + "message": "Vorschauen werden unterstützt für Links von Imgur, Instagram, Pinterest, Reddit und YouTube", + "description": "Description shown for the Link Preview option " + }, "expiredWarning": { "message": "Diese Version von Signal Desktop ist veraltet. Bitte führe eine Aktualisierung auf die aktuellste Version durch, um weiterhin Nachrichten austauschen zu können.", "description": "Warning notification that this version of the app has expired" }, + "readReceiptSettingDescription": { + "message": "Lesebestätigungen aktivieren", + "description": "Description of the read receipts setting" + }, + "readReceiptSettingTitle": { + "message": "Lesebestätigungen", + "description": "Title of the read receipts setting" + }, + "typingIndicatorsSettingDescription": { + "message": "sehen und teilen, wann Nachrichten eingetippt werden", + "description": "Description of the typing indicators setting" + }, + "typingIndicatorsSettingTitle": { + "message": "Tipp-Indikatoren", + "description": "Title of the typing indicators setting" + }, + "inviteContacts": { + "message": "Freunde einladen" + }, + "settingsHeader": { + "message": "Einstellungen" + }, + "leaveOpenGroup": { + "message": "Gruppe öffnen verlassen", + "description": "Button action that the user can click to leave the group" + }, + "leaveClosedGroup": { + "message": "Geschlossene Gruppe verlassen", + "description": "Button action that the user can click to leave the group" + }, "upgrade": { "message": "Aktualisieren", "description": "Label text for button to upgrade the app to the latest version" @@ -1513,6 +1682,24 @@ } } }, + "joinOpenGroup": { + "message": "Offener Gruppe beitreten" + }, + "yourSessionID": { + "message": "Ihre Session ID" + }, + "createClosedGroup": { + "message": "Neue geschlossene Gruppe" + }, + "searchForAKeyPhrase": { + "message": "Nach Unterhaltungen, Kontakten und Nachrichten suchen" + }, + "enterSessionID": { + "message": "Session ID eingeben" + }, + "usersCanShareTheir...": { + "message": "Benutzer können ihre Session ID freigeben, indem sie in ihren Einstellungen auf \"Session ID freigeben\" tippen oder ihren QR-Code freigeben." + }, "joinedTheGroup": { "message": "$name$ ist der Gruppe beigetreten", "description": "Shown in the conversation history when a single person joins the group", diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 67cb93cea..6d914c67c 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -596,8 +596,7 @@ "description": "Shown to separate the types of search results" }, "settingsHeader": { - "message": "Settings", - "description": "Shown to separate the types of search results" + "message": "Settings" }, "welcomeToSession": { "message": "Welcome to Session" @@ -723,9 +722,6 @@ "cancel": { "message": "Cancel" }, - "copy": { - "message": "Copy" - }, "close": { "message": "Close" }, @@ -913,11 +909,7 @@ "message": "Permanently delete the messages in this conversation?", "description": "Confirmation dialog text that asks the user if they really wish to delete the conversation. Answer buttons use the strings 'ok' and 'cancel'. The deletion is permanent, i.e. it cannot be undone." }, - "deletePublicChannel": { - "message": "Leave Channel", - "description": "Confirmation dialog title that asks the user if they really wish to delete a public channel. Answer buttons use the strings 'ok' and 'cancel'. The deletion is permanent, i.e. it cannot be undone." - }, - "deletePublicChannelConfirmation": { + "leaveOpenGroupConfirmation": { "message": "Leave this Open Group?", "description": "Confirmation dialog text that tells the user what will happen if they leave the public channel." }, @@ -1051,7 +1043,7 @@ "description": "Header for general options on the settings screen" }, "linkPreviewsTitle": { - "message": "Link Previews", + "message": "Send Link Previews", "description": "Option to control creation and send of link previews in setting screen" }, "linkPreviewDescription": { @@ -1591,10 +1583,6 @@ "copyChatId": { "message": "Copy Chat ID" }, - "leaveGroup": { - "message": "Leave Group", - "description": "Button action that the user can click to leave the group" - }, "leaveOpenGroup": { "message": "Leave Open Group", "description": "Button action that the user can click to leave the group" @@ -1800,7 +1788,7 @@ "message": "Connecting to server..." }, "connectToServerSuccess": { - "message": "Successfully connected to open group" + "message": "Successfully connected to open group" }, "setPasswordFail": { "message": "Failed to set password" @@ -1993,15 +1981,9 @@ "enterSessionID": { "message": "Enter Session ID" }, - "pasteSessionIDRecipient": { - "message": "Enter a Session ID" - }, "usersCanShareTheir...": { "message": "Users can share their Session ID from their account settings, or by sharing their QR code." }, - "searchByIDOrDisplayName": { - "message": "Search by ID # or Display Name" - }, "message": { "message": "Message" }, @@ -2014,9 +1996,6 @@ "createGroup": { "message": "Create Group" }, - "yourPublicKey": { - "message": "Your Session ID" - }, "appearanceSettingsTitle": { "message": "Appearance" }, @@ -2026,7 +2005,7 @@ "privacySettingsTitle": { "message": "Privacy" }, - "notificationSettingsTitle": { + "notificationsSettingsTitle": { "message": "Notifications" }, "devicesSettingsTitle": { @@ -2047,9 +2026,6 @@ } } }, - "addChannel": { - "message": "Join Open Group" - }, "joinOpenGroup": { "message": "Join Open Group" }, @@ -2071,7 +2047,7 @@ "closedGroupCreatedToastTitle": { "message": "Group created successfully" }, - "enterChannelURL": { + "enterOpenGroupURL": { "message": "Enter Open Group URL" }, "channelUrlPlaceholder": { diff --git a/js/models/conversations.js b/js/models/conversations.js index 6ecf74d29..9e03eb48f 100644 --- a/js/models/conversations.js +++ b/js/models/conversations.js @@ -2327,8 +2327,8 @@ let message = i18n('deleteContactConfirmation'); if (this.isPublic()) { - title = i18n('deletePublicChannel'); - message = i18n('deletePublicChannelConfirmation'); + title = i18n('leaveOpenGroup'); + message = i18n('leaveOpenGroupConfirmation'); } else if (this.isClosedGroup()) { title = i18n('leaveClosedGroup'); message = i18n('leaveClosedGroupConfirmation'); diff --git a/js/views/app_view.js b/js/views/app_view.js index 34acb03cd..3bfbe282a 100644 --- a/js/views/app_view.js +++ b/js/views/app_view.js @@ -238,8 +238,8 @@ let message = i18n('deleteContactConfirmation'); if (groupConvo.isPublic()) { - title = i18n('deletePublicChannel'); - message = i18n('deletePublicChannelConfirmation'); + title = i18n('leaveOpenGroup'); + message = i18n('leaveOpenGroupConfirmation'); } else if (groupConvo.isClosedGroup()) { title = i18n('leaveClosedGroup'); message = i18n('leaveClosedGroupConfirmation'); diff --git a/stylesheets/_session.scss b/stylesheets/_session.scss index e92145d17..5838f929d 100644 --- a/stylesheets/_session.scss +++ b/stylesheets/_session.scss @@ -209,7 +209,7 @@ textarea { border-radius: 2px; height: 33px; padding: 0px 18px; - line-height: 33px; + // line-height: 33px; font-size: $session-font-sm; } diff --git a/stylesheets/_session_left_pane.scss b/stylesheets/_session_left_pane.scss index ab1341ba7..71fb51a5e 100644 --- a/stylesheets/_session_left_pane.scss +++ b/stylesheets/_session_left_pane.scss @@ -273,10 +273,6 @@ $session-compose-margin: 20px; } } - h4 { - text-transform: uppercase; - } - .white-border { width: $session-left-pane-width; position: relative; @@ -339,6 +335,12 @@ $session-compose-margin: 20px; display: flex; flex-direction: column; flex-grow: 1; + + .left-pane-contact-bottom-buttons .session-button { + vertical-align: middle; + white-space: normal; + text-align: center; + } } .session-left-pane-section-content { @@ -382,6 +384,7 @@ $session-compose-margin: 20px; flex-grow: 1; font-size: $session-font-sm; font-family: $session-font-default; + text-overflow: ellipsis; &:focus { outline: none !important; @@ -424,7 +427,7 @@ $session-compose-margin: 20px; .session-button.square-outline.square.danger { flex-grow: 1; height: 50px; - line-height: 50px; + // line-height: 50px; @at-root .light-theme #{&} { border: 1px solid $session-shade-15; @@ -609,7 +612,7 @@ $session-compose-margin: 20px; flex-grow: 1; border: 1px solid $session-shade-8; height: 50px; - line-height: 50px; + // line-height: 50px; } } } diff --git a/ts/components/EditProfileDialog.tsx b/ts/components/EditProfileDialog.tsx index 0c21c7e9c..293bf1349 100644 --- a/ts/components/EditProfileDialog.tsx +++ b/ts/components/EditProfileDialog.tsx @@ -122,7 +122,7 @@ export class EditProfileDialog extends React.Component { {viewDefault || viewQR ? ( { diff --git a/ts/components/conversation/ConversationHeader.tsx b/ts/components/conversation/ConversationHeader.tsx index 69355ea29..df752921b 100644 --- a/ts/components/conversation/ConversationHeader.tsx +++ b/ts/components/conversation/ConversationHeader.tsx @@ -2,12 +2,7 @@ import React from 'react'; import { Avatar } from '../Avatar'; import { Colors, LocalizerType } from '../../types/Util'; -import { - ContextMenu, - ContextMenuTrigger, - MenuItem, - SubMenu, -} from 'react-contextmenu'; +import { ContextMenu, ContextMenuTrigger, MenuItem } from 'react-contextmenu'; import { SessionIconButton, diff --git a/ts/components/conversation/media-gallery/MediaGallery.tsx b/ts/components/conversation/media-gallery/MediaGallery.tsx index b2efb473a..35cee9961 100644 --- a/ts/components/conversation/media-gallery/MediaGallery.tsx +++ b/ts/components/conversation/media-gallery/MediaGallery.tsx @@ -65,13 +65,13 @@ export class MediaGallery extends React.Component {
{ }, { id: SessionSettingCategory.Notifications, - title: window.i18n('notificationSettingsTitle'), + title: window.i18n('notificationsSettingsTitle'), hidden: false, }, { diff --git a/ts/components/session/SessionClosableOverlay.tsx b/ts/components/session/SessionClosableOverlay.tsx index 749143d7e..28aafe99c 100644 --- a/ts/components/session/SessionClosableOverlay.tsx +++ b/ts/components/session/SessionClosableOverlay.tsx @@ -134,20 +134,20 @@ export class SessionClosableOverlay extends React.Component { buttonText = window.i18n('next'); descriptionLong = window.i18n('usersCanShareTheir...'); subtitle = window.i18n('enterSessionID'); - placeholder = window.i18n('pasteSessionIDRecipient'); + placeholder = window.i18n('enterSessionID'); break; case 'contact': title = window.i18n('addContact'); buttonText = window.i18n('next'); descriptionLong = window.i18n('usersCanShareTheir...'); subtitle = window.i18n('enterSessionID'); - placeholder = window.i18n('pasteSessionIDRecipient'); + placeholder = window.i18n('enterSessionID'); break; case 'open-group': - title = window.i18n('addChannel'); - buttonText = window.i18n('joinChannel'); + title = window.i18n('joinOpenGroup'); + buttonText = window.i18n('joinOpenGroup'); descriptionLong = window.i18n('addChannelDescription'); - subtitle = window.i18n('enterChannelURL'); + subtitle = window.i18n('enterOpenGroupURL'); placeholder = window.i18n('channelUrlPlaceholder'); break; case 'closed-group': @@ -239,13 +239,13 @@ export class SessionClosableOverlay extends React.Component { )} {isAddContactView && ( - + )} {isAddContactView && ( diff --git a/ts/components/session/settings/SessionSettings.tsx b/ts/components/session/settings/SessionSettings.tsx index 3b4076da0..95d836da6 100644 --- a/ts/components/session/settings/SessionSettings.tsx +++ b/ts/components/session/settings/SessionSettings.tsx @@ -238,6 +238,7 @@ export class SettingsView extends React.Component { showLinkDeviceButton={!shouldRenderPasswordLock} category={category} isSecondaryDevice={isSecondaryDevice} + categoryTitle={window.i18n(`${category}SettingsTitle`)} />
diff --git a/ts/components/session/settings/SessionSettingsHeader.tsx b/ts/components/session/settings/SessionSettingsHeader.tsx index 21e663e96..854438b59 100644 --- a/ts/components/session/settings/SessionSettingsHeader.tsx +++ b/ts/components/session/settings/SessionSettingsHeader.tsx @@ -12,6 +12,7 @@ interface Props extends SettingsViewProps { showLinkDeviceButton: boolean | null; // isSecondaryDevice is used to just disable the linkDeviceButton when we are already a secondary device isSecondaryDevice: boolean; + categoryTitle: string; } export class SettingsHeader extends React.Component { @@ -63,16 +64,8 @@ export class SettingsHeader extends React.Component { } public render() { - const { category } = this.props; + const { category, categoryTitle } = this.props; const { disableLinkDeviceButton } = this.state; - const categoryString = String(category); - const categoryTitlePrefix = - categoryString[0].toUpperCase() + categoryString.substr(1); - // Remove 's' on the end to keep words in singular form - const categoryTitle = - categoryTitlePrefix[categoryTitlePrefix.length - 1] === 's' - ? `${categoryTitlePrefix.slice(0, -1)} Settings` - : `${categoryTitlePrefix} Settings`; const showSearch = false; const showAddDevice = category === SessionSettingCategory.Devices && diff --git a/ts/session/utils/Menu.tsx b/ts/session/utils/Menu.tsx index e6c47d372..165056090 100644 --- a/ts/session/utils/Menu.tsx +++ b/ts/session/utils/Menu.tsx @@ -141,9 +141,7 @@ export function getDeleteContactMenuItem( ): JSX.Element | null { if (showDeleteContact(isMe, isClosable, isGroup, isPublic, isRss)) { if (isPublic) { - return ( - {i18n('deletePublicChannel')} - ); + return {i18n('leaveOpenGroup')}; } return {i18n('deleteContact')}; } @@ -159,7 +157,7 @@ export function getLeaveGroupMenuItem( i18n: LocalizerType ): JSX.Element | null { if (showLeaveGroup(isKickedFromGroup, isGroup, isPublic, isRss)) { - return {i18n('leaveGroup')}; + return {i18n('leaveClosedGroup')}; } return null; }