Compare commits

...

10 Commits
main ... 5.32.x

Author SHA1 Message Date
Evan Hahn 0aef497b24 v5.32.0 2022-02-16 09:11:39 -06:00
Evan Hahn b0e0c11574
Update translations 2022-02-16 09:10:22 -06:00
automated-signal 9c568d0246
Don't mark messages read if a call is fullscreen
Co-authored-by: Evan Hahn <69474926+EvanHahn-Signal@users.noreply.github.com>
2022-02-16 08:17:04 -06:00
automated-signal 84ddb58a6b
Fix node-fetch redirect issue for VoIP URLs
Co-authored-by: Evan Hahn <69474926+EvanHahn-Signal@users.noreply.github.com>
2022-02-15 15:00:07 -06:00
automated-signal 42b935e768
Dropped storage keys should not cause upload
Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
2022-02-14 14:32:12 -08:00
Evan Hahn cf7bb9dee8
Upgrade node-fetch to 2.6.7
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-11 17:25:39 -08:00
automated-signal 9555a30bef
Our conversation doesn't require profile sharing
Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
2022-02-11 17:19:51 -08:00
automated-signal cbcee66e4e
Disable "Call Again" if already on a call
Co-authored-by: Evan Hahn <69474926+EvanHahn-Signal@users.noreply.github.com>
2022-02-11 17:18:32 -08:00
automated-signal d58f173f71
Drop invalid storage service keys
Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
2022-02-11 13:30:48 -08:00
automated-signal a77a3962c3
Sender Key: Use sender key expire duration from remote config
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2022-02-11 13:30:33 -08:00
82 changed files with 1292 additions and 511 deletions

View File

@ -5416,7 +5416,7 @@
"description": "In the instructions for becoming a sustainer. The heading."
},
"BadgeSustainerInstructions__subheader": {
"message": "Signal is powered by people like you. Contribute and receive a badge.",
"message": "Signal word deur mense soos u aangedryf. Dra by en verdien n wapen.",
"description": "In the instructions for becoming a sustainer. The subheading."
},
"BadgeSustainerInstructions__instructions__1": {
@ -5996,7 +5996,7 @@
"description": "Moment.js format for date headers in the message timeline, for dates >=6 months old. See https://momentjs.com/docs/#/displaying/format/."
},
"MessageRequestWarning__learn-more": {
"message": "Kom meer te wete",
"message": "Leer meer",
"description": "Shown on the message request warning. Clicking this button will open a dialog with more information"
},
"MessageRequestWarning__dialog__details": {
@ -6008,7 +6008,7 @@
"description": "Shown in the message request warning dialog. Clicking this button will open a page on Signal's support site"
},
"ContactSpoofing__same-name": {
"message": "Review requests carefully. Signal found another contact with the same name. $link$",
"message": "Hersien versoeke met sorg. Signal het n ander kontak met dieselfde naam gevind. $link$",
"description": "Shown in the timeline warning when you have a message request from someone with the same name as someone else",
"placeholders": {
"link": {
@ -6018,7 +6018,7 @@
}
},
"ContactSpoofing__same-name-in-group": {
"message": "$count$ group members have the same name. $link$",
"message": "$count$ groeplede het dieselfde naam. $link$",
"description": "Shown in the timeline warning when you multiple group members have the same name",
"placeholders": {
"count": {
@ -6032,19 +6032,19 @@
}
},
"ContactSpoofing__same-name__link": {
"message": "Review request",
"message": "Hersien versoek",
"description": "Shown in the timeline warning when you have a message request from someone with the same name as someone else"
},
"ContactSpoofing__same-name-in-group__link": {
"message": "Click to review",
"message": "Klik om te hersien",
"description": "Shown in the timeline warning when you multiple group members have the same name"
},
"ContactSpoofingReviewDialog__title": {
"message": "Review request",
"message": "Hersien versoek",
"description": "Title for the contact name spoofing review dialog"
},
"ContactSpoofingReviewDialog__description": {
"message": "If you're not sure who the request is from, review the contacts below and take action.",
"message": "Indien u onseker is oor die sender van die versoek, kan u die kontakte hieronder nagaan en aksie neem.",
"description": "Description for the contact spoofing review dialog"
},
"ContactSpoofingReviewDialog__possibly-unsafe-title": {
@ -6056,11 +6056,11 @@
"description": "Header in the contact spoofing review dialog, shown above the \"safe\" user"
},
"ContactSpoofingReviewDialog__group__title": {
"message": "Review members",
"message": "Hersien lede",
"description": "Title for the contact name spoofing review dialog in groups"
},
"ContactSpoofingReviewDialog__group__description": {
"message": "$count$ group members have similar names. Review the members below or choose to take action.",
"message": "$count$ groeplede het soortgelyke name. Hersien die lede hier onder of kies n aksie om te neem.",
"description": "Description for the group contact spoofing review dialog"
},
"ContactSpoofingReviewDialog__group__members-header": {
@ -6068,7 +6068,7 @@
"description": "Header in the group contact spoofing review dialog. After this header, there will be a list of members"
},
"ContactSpoofingReviewDialog__group__name-change-info": {
"message": "Recently changed their profile name from $oldName$ to $newName$",
"message": "Het onlangs hul profielaam van $oldName$ na $newName$ verander.",
"description": "In the group contact spoofing review dialog, this text is shown when someone has changed their name recently",
"placeholders": {
"oldName": {
@ -6086,7 +6086,7 @@
"description": "When confirming the removal of a group member, show this text in the button"
},
"RemoveGroupMemberConfirmation__description": {
"message": "Remove \"$name$\" from the group?",
"message": "Verwyder “$name$” uit die groep?",
"description": "When confirming the removal of a group member, show this text in the dialog",
"placeholders": {
"name": {
@ -6096,19 +6096,19 @@
}
},
"CaptchaDialog__title": {
"message": "Verify to continue messaging",
"message": "Verifieer om voort te klets",
"description": "Header in the captcha dialog"
},
"CaptchaDialog__first-paragraph": {
"message": "To help prevent spam on Signal, please complete verification.",
"message": "Voltooi asb. verifikasie om gemorspos op Signal te help voorkom.",
"description": "First paragraph in the captcha dialog"
},
"CaptchaDialog__second-paragraph": {
"message": "After verifying, you can continue messaging. Any paused messages will automatically be sent.",
"message": "Na verifikasie kan u boodskappe stuur. Enige wagtende boodskappe sal outomaties verstuur word.",
"description": "First paragraph in the captcha dialog"
},
"CaptchaDialog--can-close__title": {
"message": "Continue without verifying?",
"message": "Gaan voort sonder verifikasie?",
"description": "Header in the captcha dialog that can be closed"
},
"CaptchaDialog--can-close__body": {
@ -6116,7 +6116,7 @@
"description": "Body of the captcha dialog that can be closed"
},
"CaptchaDialog--can_close__skip-verification": {
"message": "Skip verification",
"message": "Slaan verifikasie oor",
"description": "Skip button of the captcha dialog that can be closed"
},
"verificationComplete": {
@ -6124,19 +6124,19 @@
"description": "Displayed after successful captcha"
},
"verificationFailed": {
"message": "Verification failed. Please retry later.",
"message": "Verifikasie het misluk. Probeer later weer.",
"description": "Displayed after unsuccessful captcha"
},
"deleteForEveryoneFailed": {
"message": "Failed to delete message for everyone. Please retry later.",
"message": "Kon nie boodskap vir almal skrap nie. Probeer later weer.",
"description": "Displayed when delete-for-everyone has failed to send to all recipients"
},
"ChatColorPicker__delete--title": {
"message": "Delete color",
"message": "Skrap kleur",
"description": "Confirm title for deleting custom color"
},
"ChatColorPicker__delete--message": {
"message": "This custom color is used in $num$ chats. Do you want to delete it for all chats?",
"message": "Hierdie pasgemaakte kleur word in $num$ kletse gebruik. Wil u dit vir alle kletse skrap?",
"description": "Confirm message for deleting custom color",
"placeholders": {
"num": {
@ -6146,7 +6146,7 @@
}
},
"ChatColorPicker__global-chat-color": {
"message": "Global Chat Color",
"message": "Algehele kletskleur",
"description": "Modal title for the chat color picker and editor for all conversations"
},
"ChatColorPicker__menu-title": {
@ -6154,7 +6154,7 @@
"description": "View title for the chat color picker and editor"
},
"ChatColorPicker__reset": {
"message": "Reset chat color",
"message": "Stel kletskleur terug",
"description": "Button label for resetting chat colors"
},
"ChatColorPicker__resetDefault": {
@ -6162,11 +6162,11 @@
"description": "Confirmation dialog title for resetting all chat colors or only the global default one"
},
"ChatColorPicker__resetAll": {
"message": "Reset all chat colors",
"message": "Stel alle kletskleure terug",
"description": "Button label for resetting all chat colors"
},
"ChatColorPicker__confirm-reset-default": {
"message": "Reset default",
"message": "Herstel verstek",
"description": "Button label for resetting only global chat color"
},
"ChatColorPicker__confirm-reset": {
@ -6178,15 +6178,15 @@
"description": "Modal message text for confirming resetting of chat colors"
},
"ChatColorPicker__custom-color--label": {
"message": "Show custom color editor",
"message": "Toon kleurpasmaakredigeerder",
"description": "aria-label for custom color editor button"
},
"ChatColorPicker__sampleBubble1": {
"message": "Here's a preview of the chat color.",
"message": "Hier is n voorskou van die kletskleur.",
"description": "An example message bubble for selecting the chat color"
},
"ChatColorPicker__sampleBubble2": {
"message": "Another bubble.",
"message": "Nog n bel.",
"description": "An example message bubble for selecting the chat color"
},
"ChatColorPicker__sampleBubble3": {
@ -6194,7 +6194,7 @@
"description": "An example message bubble for selecting the chat color"
},
"ChatColorPicker__context--edit": {
"message": "Edit color",
"message": "Wysig kleur",
"description": "Option in the custom color bubble context menu"
},
"ChatColorPicker__context--duplicate": {
@ -6226,11 +6226,11 @@
"description": "Modal title for the custom color editor"
},
"customDisappearingTimeOption": {
"message": "Custom time...",
"message": "Pasgemaakte tyd…",
"description": "Text for an option in Disappearing Messages menu and Conversation Details Disappearing Messages setting when no user value is available"
},
"selectedCustomDisappearingTimeOption": {
"message": "Custom time",
"message": "Pasgemaakte tyd",
"description": "Text for an option in Conversation Details Disappearing Messages setting when user previously selected custom time"
},
"DisappearingTimeDialog__title": {
@ -6238,7 +6238,7 @@
"description": "Title for the custom disappearing message timeout dialog"
},
"DisappearingTimeDialog__body": {
"message": "Choose a custom time for disappearing messages.",
"message": "Kies n pasgemaakte tyd vir verdwynboodskappe.",
"description": "Body for the custom disappearing message timeout dialog"
},
"DisappearingTimeDialog__set": {
@ -6246,23 +6246,23 @@
"description": "Text for the dialog button confirming the custom disappearing message timeout"
},
"DisappearingTimeDialog__seconds": {
"message": "Seconds",
"message": "Sekondes",
"description": "Name of the 'seconds' unit select for the custom disappearing message timeout dialog"
},
"DisappearingTimeDialog__minutes": {
"message": "Minutes",
"message": "Minute",
"description": "Name of the 'minutes' unit select for the custom disappearing message timeout dialog"
},
"DisappearingTimeDialog__hours": {
"message": "Hours",
"message": "Uur",
"description": "Name of the 'hours' unit select for the custom disappearing message timeout dialog"
},
"DisappearingTimeDialog__days": {
"message": "Days",
"message": "Dae",
"description": "Name of the 'days' unit select for the custom disappearing message timeout dialog"
},
"DisappearingTimeDialog__weeks": {
"message": "Weeks",
"message": "Weke",
"description": "Name of the 'weeks' unit select for the custom disappearing message timeout dialog"
},
"settings__DisappearingMessages__footer": {
@ -6270,11 +6270,11 @@
"description": "Footer for the Disappearing Messages settings section"
},
"settings__DisappearingMessages__timer__label": {
"message": "Default timer for new chats",
"message": "Verstekteller vir nuwe kletse",
"description": "Label for the Disappearing Messages default timer setting"
},
"UniversalTimerNotification__text": {
"message": "The disappearing message time will be set to $timeValue$ when you message them.",
"message": "Die verdwynboodskaptyd sal op $timeValue$ gestel word wanneer u n boodskap aan hulle stuur.",
"description": "A message displayed when default disappearing message timeout is about to be applied",
"placeholders": {
"timeValue": {
@ -6284,11 +6284,11 @@
}
},
"ErrorBoundaryNotification__text": {
"message": "Couldn't display this message. Click to submit a debug log.",
"message": "Kon nie die boodskap vertoon nie. Klik om n ontfoutlog in te dien.",
"description": "An error notification displayed when message fails to render due to an internal error"
},
"GroupDescription__read-more": {
"message": "read more",
"message": "lees meer",
"description": "Button text when the group description is too long"
},
"EditConversationAttributesModal__description-warning": {
@ -6300,7 +6300,7 @@
"description": "Placeholder text in the details header for those that can edit the group description"
},
"MediaQualitySelector--button": {
"message": "Select media quality",
"message": "Kies mediakwaliteit",
"description": "aria-label for the media quality selector button"
},
"MediaQualitySelector--title": {
@ -6328,7 +6328,7 @@
"description": "In the message details screen, shown above contacts where the message failed to deliver"
},
"MessageDetailsHeader--Pending": {
"message": "Pending",
"message": "Hangend",
"description": "In the message details screen, shown above contacts where the message is still sending"
},
"MessageDetailsHeader--Sent": {
@ -6364,7 +6364,7 @@
"description": "Shown on the edit username screen"
},
"ProfileEditor--username--check-characters": {
"message": "Usernames may only contain a-z, 0-9 and _",
"message": "Gebruikername mag slegs a-z, 0-9 en _ bevat",
"description": "Shown if user has attempted to use forbidden characters"
},
"ProfileEditor--username--check-starting-character": {
@ -6372,7 +6372,7 @@
"description": "Shown if user has attempted to begin their username with a number"
},
"ProfileEditor--username--check-character-min": {
"message": "Usernames must have a least $min$ characters.",
"message": "Gebruikersname moet minstens $min$ karakters bevat.",
"description": "Shown if user has attempted to enter a username with too few characters - currently min is 3",
"placeholders": {
"min": {
@ -6382,7 +6382,7 @@
}
},
"ProfileEditor--username--check-character-max": {
"message": "Usernames must have at most $max$ characters.",
"message": "Gebruikername moet hoogstens $max$ karakters bevat.",
"description": "Shown if user has attempted to enter a username with too many characters - currently min is 25",
"placeholders": {
"max": {
@ -6392,31 +6392,31 @@
}
},
"ProfileEditor--username--check-username-taken": {
"message": "Hierdie gebruikersnaam is reeds in gebruik.",
"message": "Hierdie gebruikernaam is reeds in gebruik.",
"description": "Shown if user has attempted to save a username which is not available"
},
"ProfileEditor--username--general-error": {
"message": "Your username couldnt be saved. Check your connection and try again.",
"message": "U gebruikernaam kon nie bewaar word nie. Gaan u verbinding na en probeer weer.",
"description": "Shown if something unknown has gone wrong with username save."
},
"ProfileEditor--username--delete-general-error": {
"message": "Your username couldnt be removed. Check your connection and try again.",
"message": "U gebruikernaam kon nie verwyder word nie. Gaan u verbinding na en probeer weer.",
"description": "Shown if something unknown has gone wrong with username delete."
},
"ProfileEditor--username--delete-username": {
"message": "Delete username",
"message": "Skrap gebruikernaam",
"description": "Shown as aria label for trash icon next to username"
},
"ProfileEditor--username--confirm-delete-body": {
"message": "This will remove your username, allowing other users to claim it. Are you sure?",
"message": "Dit sal u gebruikernaam verwyder en ander mense sal dit kan gebruik. Is u seker?",
"description": "Shown in dialog body if user has saved an empty string to delete their username"
},
"ProfileEditor--username--confirm-delete-button": {
"message": "Wis",
"message": "Skrap",
"description": "Shown in dialog button if user has saved an empty string to delete their username"
},
"ProfileEditor--about-placeholder": {
"message": "Write something about yourself...",
"message": "Skryf n paar woorde oor uself…",
"description": "Placeholder text for about input field"
},
"ProfileEditor--first-name": {
@ -6428,11 +6428,11 @@
"description": "Placeholder text for last name field"
},
"ConfirmDiscardDialog--discard": {
"message": "Wil jy hierdie veranderinge weggooi?",
"message": "Wil u hierdie veranderinge weggooi?",
"description": "ConfirmationDialog text for discarding changes"
},
"ProfileEditor--info": {
"message": "Your profile is encrypted. Your profile and changes to it will be visible to your contacts and when you start or accept new chats. $learnMore$",
"message": "U profiel is geënkripteer. U profiel en veranderinge daaraan sal aan u kontakte sigbaar wees wanneer u nuwe kletse begin of aanvaar. $learnMore$",
"description": "Information shown at the bottom of the profile editor section",
"placeholders": {
"learnMore": {
@ -6474,11 +6474,11 @@
"description": "Title for editing your name"
},
"ProfileEditorModal--about": {
"message": "Meer oor",
"message": "Oor",
"description": "Title for about editing"
},
"ProfileEditorModal--avatar": {
"message": "Your Avatar",
"message": "U avatar",
"description": "Title for profile avatar editing"
},
"ProfileEditorModal--username": {
@ -6486,15 +6486,15 @@
"description": "Title for username editing"
},
"ProfileEditorModal--error": {
"message": "Your profile could not be updated. Please try again.",
"message": "U profiel kan nie bygewerk word nie. Probeer asb. weer.",
"description": "Error message when something goes wrong updating your profile."
},
"AnnouncementsOnlyGroupBanner--modal": {
"message": "Message an admin",
"message": "Stuur n boodskap aan beheerder",
"description": "Modal title for the list of admins in a group"
},
"AnnouncementsOnlyGroupBanner--announcements-only": {
"message": "Only $admins$ can send messages",
"message": "Slegs $admins$ kan boodskappe stuur",
"description": "Displayed if sending of messages is disabled to non-admins",
"placeholders": {
"admins": {
@ -6508,19 +6508,19 @@
"description": "Clickable text describing administrators of a group, used in the message an admin label"
},
"AvatarEditor--choose": {
"message": "Select an avatar",
"message": "Kies n avatar",
"description": "Label for the avatar selector"
},
"AvatarColorPicker--choose": {
"message": "Choose a color",
"message": "Kies n kleur",
"description": "Label for when you need to choose your fighter, err color"
},
"LeftPaneSetGroupMetadataHelper__avatar-modal-title": {
"message": "Group Avatar",
"message": "Groepavatar",
"description": "Title for the avatar picker in the group creation flow"
},
"Preferences__button--general": {
"message": "Algemene",
"message": "Algemeen",
"description": "Button to switch the settings view"
},
"Preferences__button--appearance": {
@ -6544,7 +6544,7 @@
"description": "Button to switch the settings view"
},
"Preferences--lastSynced": {
"message": "Last import at $date$ $time$",
"message": "Laaste invoer om $date$ $time$",
"description": "Label for date and time of last sync operation",
"placeholders": {
"date": {
@ -6562,7 +6562,7 @@
"description": "Title for system type settings"
},
"Preferences--zoom": {
"message": "Zoom level",
"message": "Zoemvlak",
"description": "Label for changing the zoom level"
},
"Preferences__link-previews--title": {
@ -6570,7 +6570,7 @@
"description": "Title for the generate link previews setting"
},
"Preferences__link-previews--description": {
"message": "To change this setting, open the Signal app on your mobile device and navigate to Settings > Chats",
"message": "Open die Signal-toep op u mobiele toestel en gaan na Instellings > Kletse om hierdie instellings te verander",
"description": "Description for the generate link previews setting"
},
"Preferences--advanced": {
@ -6578,15 +6578,15 @@
"description": "Title for advanced settings"
},
"Preferences--notification-content": {
"message": "Notification content",
"message": "Kennisgewinginhoud",
"description": "Label for the notification content setting select box"
},
"Preferences--blocked": {
"message": "Geblokkeer",
"message": "Versper",
"description": "Label for blocked contacts setting"
},
"Preferences--blocked-count-singular": {
"message": "$num$ contact",
"message": "$num$ kontak",
"description": "Number of contacts blocked singular",
"placeholders": {
"num": {
@ -6596,7 +6596,7 @@
}
},
"Preferences--blocked-count-plural": {
"message": "$num$ contacts",
"message": "$num$ kontakte",
"description": "Number of contacts blocked plural",
"placeholders": {
"num": {
@ -6606,11 +6606,11 @@
}
},
"Preferences__who-can--title": {
"message": "Who can...",
"message": "Wie kan…",
"description": "Title for the 'who can do X' setting"
},
"Preferences__privacy--description": {
"message": "To change these settings, open the Signal app on your mobile device and navigate to Settings > Privacy",
"message": "Open die Signal-toep op u mobiele toestel en gaan na Instellings > Privaatheid om hierdie instellings te verander",
"description": "Description for the 'who can do X' setting"
},
"Preferences__who-can--everybody": {
@ -6626,43 +6626,43 @@
"description": "Option for who can see my X select"
},
"Preferences--messaging": {
"message": "Messaging",
"message": "Boodskappe",
"description": "Title for the messaging settings"
},
"Preferences--see-me": {
"message": "See my phone number",
"message": "Sien my telefoonnommer",
"description": "Label for the see my phone number setting"
},
"Preferences--find-me": {
"message": "Find me by my phone number",
"message": "Vind my op my telefoonnommer",
"description": "Label for the find me by my phone number setting"
},
"Preferences--read-receipts": {
"message": "Read receipts",
"message": "Leesbewyse",
"description": "Label for the read receipts setting"
},
"Preferences--typing-indicators": {
"message": "Typing indicators",
"message": "Tikaanduiders",
"description": "Label for the typing indicators setting"
},
"Preferences--updates": {
"message": "Updates",
"message": "Bywerkings",
"description": "Header for settings having to do with updates"
},
"Preferences__download-update": {
"message": "Automatically download updates",
"message": "Laai bywerkings outomaties af",
"description": "Label for checkbox for the auto download updates setting"
},
"Preferences__enable-notifications": {
"message": "Enable notifications",
"message": "Aktiveer kennisgewings",
"description": "Label for checkbox for the notifications setting"
},
"Preferences__devices": {
"message": "Devices",
"message": "Toestelle",
"description": "Label for Device list in call settings pane"
},
"DialogUpdate--version-available": {
"message": "Update to version $version$ available",
"message": "Bywerking na weergawe $version$ is beskikbaar",
"description": "Tooltip for new update available",
"placeholders": {
"status": {
@ -6672,19 +6672,19 @@
}
},
"NSIS__retry-dialog--first-line": {
"message": "Signal cannot be closed.",
"message": "Signal kan nie toegemaak word nie.",
"description": "First line of the dialog displayed when Windows installer can't close application automatically and needs user intervention to complete the installation."
},
"NSIS__retry-dialog--second-line": {
"message": "Please close it manually and click Retry to continue.",
"message": "Maak dit asb. handmatig toe en klik Probeer weer om voort te gaan.",
"description": "Second line of the dialog displayed when Windows installer can't close application automatically and needs user intervention to complete the installation."
},
"CrashReportDialog__title": {
"message": "Application crashed",
"message": "Toepassing het uitgebom",
"description": "A title of the dialog displayed when starting an application after a recent crash"
},
"CrashReportDialog__body": {
"message": "Signal restarted after a crash. You can submit a crash report to help Signal investigate the issue.",
"message": "Signal het uitgebom en moes weer begin. U kan n uitbomverslag stuur om Signal te help om die probleem te ondersoek.",
"description": "The body of the dialog displayed when starting an application after a recent crash"
},
"CrashReportDialog__submit": {
@ -6692,27 +6692,27 @@
"description": "A button label for submission of the crash reporter data after a recent crash"
},
"CrashReportDialog__erase": {
"message": "Don't Send",
"message": "Moenie stuur nie",
"description": "A button label for erasure of the crash reporter data after a recent crash and continuing to start the app"
},
"CustomizingPreferredReactions__title": {
"message": "Customize reactions",
"message": "Pas reaksies aan",
"description": "Shown in the header of the modal for customizing the preferred reactions. Also shown in the tooltip for the button that opens this modal."
},
"CustomizingPreferredReactions__subtitle": {
"message": "Click to replace an emoji",
"message": "Klik om n emoji te vervang",
"description": "Instructions in the modal for customizing the preferred reactions."
},
"CustomizingPreferredReactions__had-save-error": {
"message": "There was an error when saving your settings. Please try again.",
"message": "U instellings kon nie bewaar word nie. Probeer asb. weer.",
"description": "Shown if there is an error when saving your preferred reaction settings. Should be very rare to see this message."
},
"MediaEditor__control--draw": {
"message": "Draw",
"message": "Skets",
"description": "Label for the draw button in the media editor"
},
"MediaEditor__control--text": {
"message": "Add text",
"message": "Voeg teks toe",
"description": "Label for the text button in the media editor"
},
"MediaEditor__control--sticker": {
@ -6720,19 +6720,19 @@
"description": "Label for the sticker button in the media editor"
},
"MediaEditor__control--crop": {
"message": "Crop and rotate",
"message": "Snoei en roteer",
"description": "Label for the crop & rotate button in the media editor"
},
"MediaEditor__control--undo": {
"message": "Ongedaan",
"message": "Ontdoen",
"description": "Label for the undo button in the media editor"
},
"MediaEditor__control--redo": {
"message": "Weer",
"message": "Herdoen",
"description": "Label for the redo button in the media editor"
},
"MediaEditor__text--regular": {
"message": "Regular",
"message": "Gewoon",
"description": "Describes what attribute the color picker will change on the text"
},
"MediaEditor__text--highlight": {
@ -6740,11 +6740,11 @@
"description": "Describes what attribute the color picker will change on the text"
},
"MediaEditor__text--outline": {
"message": "Outline",
"message": "Buitelyn",
"description": "Describes what attribute the color picker will change on the text"
},
"MediaEditor__text--underline": {
"message": "Underline",
"message": "Onderstreep",
"description": "Describes what attribute the color picker will change on the text"
},
"MediaEditor__draw--pen": {
@ -6756,11 +6756,11 @@
"description": "Type of brush to free draw"
},
"MediaEditor__draw--thin": {
"message": "Thin",
"message": "Dun",
"description": "Tip width of the brush"
},
"MediaEditor__draw--regular": {
"message": "Regular",
"message": "Gewoon",
"description": "Tip width of the brush"
},
"MediaEditor__draw--medium": {
@ -6768,7 +6768,7 @@
"description": "Tip width of the brush"
},
"MediaEditor__draw--heavy": {
"message": "Heavy",
"message": "Swaar",
"description": "Tip width of the brush"
},
"MediaEditor__crop--reset": {
@ -6776,7 +6776,7 @@
"description": "Reset the crop state"
},
"MediaEditor__crop--rotate": {
"message": "Rotate",
"message": "Roteer",
"description": "Rotate the canvas"
},
"MediaEditor__crop--flip": {
@ -6784,19 +6784,19 @@
"description": "Flip/mirror the canvas"
},
"MediaEditor__crop--lock": {
"message": "Sluit",
"message": "Vergrendel",
"description": "Lock the aspect ratio"
},
"MediaEditor__crop--crop": {
"message": "Crop",
"message": "Snoei",
"description": "Performs the crop"
},
"WhatsNew__modal-title": {
"message": "What's New",
"message": "Wat is nuut",
"description": "Title for the whats new modal"
},
"WhatsNew__bugfixes": {
"message": "This version contains a number of small tweaks and bug fixes to keep Signal running smoothly.",
"message": "Hierdie weergawe bevat n aantal klein aanpassings en regstellings om Signal glad te laat werk.",
"description": "Release notes for releases that only include bug fixes"
},
"WhatsNew__v5.26--1": {
@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "Die lys van ondersteunde tale is uitgebrei. Ons is innig dankbaar teenoor die vrywilligers wat moeite gedoen het om dit moontlik te maak.",
"description": "Release notes for v5.32"
}
}

View File

@ -1054,7 +1054,7 @@
"description": "Shown in a button when a conversation is unmuted and can be muted"
},
"cannotUpdateDetail": {
"message": "Signal couldn't update. $retry$ or visit $url$ to install it manually. Then, $support$ about this problem",
"message": "‫لقد تعذر تحديث Signal. $retry$ أو يكفي زيارة $url$ لتثبيته يدويا. بعدها، $support$ حول هذا المشكل",
"description": "Shown if a general error happened while trying to install update package",
"placeholders": {
"retry": {
@ -1290,7 +1290,7 @@
}
},
"ChangeNumber--notification": {
"message": "$sender$ changed their phone number",
"message": "‫‏لقد تغير رقم هاتف $sender$",
"description": "Shown in timeline when a member of a conversation changes their phone number",
"placeholders": {
"sender": {
@ -1356,7 +1356,7 @@
"description": "Instructions on the device link screen"
},
"Install__instructions__2": {
"message": "Tap into $settings$, then tap $linkedDevices$",
"message": "‫‏يكفي لمس $settings$، بعدها يُرجى لمس $linkedDevices$",
"description": "Instructions on the device link screen",
"placeholders": {
"settings": {
@ -1374,7 +1374,7 @@
"description": "Part of the 2nd instruction on the device link screen"
},
"Install__instructions__3": {
"message": "Tap $plusButton$ (Android) or $linkNewDevice$ (iPhone)",
"message": "‫يُرجى لمس $plusButton$ (أندرويد) أو $linkNewDevice$ (آيفون)",
"description": "Instructions on the device link screen",
"placeholders": {
"plusButton": {
@ -1388,7 +1388,7 @@
}
},
"Install__qr-failed": {
"message": "The QR code couldn't load. Check your internet and try again. $learnMore$",
"message": "لقد تعذر تحميل الرمز المربع. يُرجى التحقق من اتصالك بالانترنت ثم المحاولة مرة أخرى. $learnMore$",
"description": "Shown on the install screen if the QR code fails to load",
"placeholders": {
"learnMore": {
@ -1406,11 +1406,11 @@
"description": "Shown on the install screen. Link takes users to a support page"
},
"Install__choose-device-name__description": {
"message": "You'll see this name under \"Linked Devices\" on your phone",
"message": "سوف يظهر هذا الاسم تحت « الأجهزة المرتبطة » في هاتفك",
"description": "The subheader shown on the 'choose device name' screen in the device linking process"
},
"Install__choose-device-name__placeholder": {
"message": "My Computer",
"message": "حاسوبي",
"description": "The placeholder for the 'choose device name' input"
},
"Preferences--device-name": {
@ -1430,7 +1430,7 @@
"description": "Shown during initial link while contacts and groups are being pulled from mobile device"
},
"initialSync__subtitle": {
"message": "Note: Your chat history will not be synced to this device",
"message": "ملاحظة : لن تُزامَن تواريخ محادثاتك مع هذا الجهاز",
"description": "Shown during initial link while contacts and groups are being pulled from mobile device"
},
"installConnectionFailed": {
@ -1450,7 +1450,7 @@
"description": ""
},
"installUnknownError": {
"message": "An unexpected error occurred. Please try again.",
"message": "‫لقد حدث خطأ غير متوقع. يُرجى إعادة المحاولة لاحقا.",
"description": ""
},
"installTryAgain": {
@ -1486,7 +1486,7 @@
"description": "Button label in the call lobby for returning to a call"
},
"calling__lobby-automatically-muted-because-there-are-a-lot-of-people": {
"message": "Microphone muted due to the size of the call",
"message": "لقد تم كتم الميكروفون بسبب كثرة الحاضرين في المكالمة",
"description": "Shown in a call lobby toast if there are a lot of people already on the call"
},
"calling__call-is-full": {
@ -2502,11 +2502,11 @@
"description": ""
},
"autoUpdateRetry": {
"message": "Retry update",
"message": "إعادة محاولة التحديث",
"description": ""
},
"autoUpdateContactSupport": {
"message": "contact support",
"message": "جهة اتصال الدعم",
"description": ""
},
"autoUpdateNewVersionMessage": {
@ -6680,11 +6680,11 @@
"description": "Second line of the dialog displayed when Windows installer can't close application automatically and needs user intervention to complete the installation."
},
"CrashReportDialog__title": {
"message": "Application crashed",
"message": "لقد انهار التطبيق",
"description": "A title of the dialog displayed when starting an application after a recent crash"
},
"CrashReportDialog__body": {
"message": "Signal restarted after a crash. You can submit a crash report to help Signal investigate the issue.",
"message": "‫لقد عاد Signal للاشتغال بعد انهياره. يُرجى إرسال تقرير الانهيار لمساعدة Signal على التحقيق في هذا المشكل.",
"description": "The body of the dialog displayed when starting an application after a recent crash"
},
"CrashReportDialog__submit": {
@ -6692,7 +6692,7 @@
"description": "A button label for submission of the crash reporter data after a recent crash"
},
"CrashReportDialog__erase": {
"message": "Don't Send",
"message": "لا ترسل",
"description": "A button label for erasure of the crash reporter data after a recent crash and continuing to start the app"
},
"CustomizingPreferredReactions__title": {
@ -6808,7 +6808,7 @@
"description": "Release notes for v5.26"
},
"WhatsNew__macos-m1": {
"message": "Signal Desktop is now optimized for Apple's M1 chip which is used in their newer computers. If you're on one of those new-fangled devices, the app should be much snappier. If you're not, give a warm welcome to the users that are. Huge thanks to $dennis$ for his hard work here!",
"message": "‫لقد أصبح Signal Desktop مُحسَّنا لاشتغال تحت إمرة معالج « M1 » لشركة آبل، والذي يستخدمونه في حواسيبهم الحديثة. إن كنت من مستخدمي هذا الصنف من الأجهزة، فمن المفترض أن يكون عمل التطبيق أسرع. أما إذا لم يتوفر لديك ذلك النوع من الحواسيب، فعلى الأقل هناك من تحسَّن أداء عملهم بالتطبيق. نخص بالشكر والامتنان $dennis$ الذي قام بعمل جبار لتمكين هذا التحسين.",
"description": "Release note for the macOS M1 release",
"placeholders": {
"dennis": {
@ -6826,7 +6826,7 @@
"description": "Release notes for v5.27"
},
"WhatsNew__v5.28--1": {
"message": "New year, new initial setup screen. We've redesigned the initial setup screens just in time for 2022.",
"message": "‫عام جديد، شاشة تثبيت جديدة. لقد أعدنا تصميم شاشات التثبيت في الوقت المناسب لسنة 2022.",
"description": "Release notes for v5.28"
},
"WhatsNew__v5.29--1": {
@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "‫يمكنك التعقب بسهولة أي فرد يصدر أصواتا عالية على أزرار لوحة المفاتيح أو من يمضغ بشدة خلال المكالمات الجماعية - لقد أضفنا مؤشر تحدُّث جديد ومتحرك ! ",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "لقد توسعت قائمة اللغات التي يدعمها التطبيق. لذا، فإننا نتقدم ببالغ الامتنان للمترجمين المتطوعين الذين حققوا بجهودهم هذا المبتغى.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Sol bölmə başlığında və axtarış sahəsində boşluqlar qarışdırıldı, artıq fəaliyyətlər üçün daha çox yer var!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Qrup zənglərində yüksək səsli makinanı və ya ağır çeynəməni asanlıqla izləyin - yeni hərəkətli danışıq göstəricisi əlavə etdik!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "Dəstəklənən dillərin siyahısı genişləndirildi. Səyləri ilə bunu mümkün edən könüllü tərcüməçilərə ürəkdən təşəkkürlər!",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Hem reorganitzat l'espai en la capçalera del panell esquerre i l'àrea de cerca i ara hi ha molt d'espai per a les activitats!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Localitzeu fàcilment aquest mecanògraf sorollós errant o el mastegador pesat a les trucades de grup: hem introduït un nou indicador animat de parla!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "La llista de llengües compatibles s'ha ampliat. Un agraïment sincer per als traductors voluntaris els esforços dels quals ho han fet possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Promíchali jsme rozmístění v záhlaví levého panelu a v oblasti vyhledávání, takže teď máte mnohem více místa pro své aktivity!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Snadno vystopujte hlasitého písaře nebo žvýkače ve skupinových hovorech - zavedli jsme nový animovaný indikátor mluvení!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "Seznam podporovaných jazyků se rozšířil. Upřímně si vážíme dobrovolných překladatelů, jejichž úsilí to umožnilo.",
"description": "Release notes for v5.32"
}
}

View File

@ -32,7 +32,7 @@
"description": "The label that is used for the File menu in the program main menu. The '&' indicates that the following letter will be used as the keyboard 'shortcut letter' for accessing the menu with the Alt-<letter> combination."
},
"mainMenuCreateStickers": {
"message": "Creu/uwchlwytho pecyn sticeri",
"message": "Creu/llwytho pecyn sticeri",
"description": "The label that is used for the Create/upload sticker pack option in the File menu in the program main menu. The '&' indicates that the following letter will be used as the keyboard 'shortcut letter' for accessing the menu with the Alt-<letter> combination."
},
"mainMenuEdit": {
@ -306,7 +306,7 @@
"description": "Message shown on the loading screen when we're changing database structure on first run of a new version"
},
"loadingMessages": {
"message": "Yn llwytho negeseuon. $count$ hyd yma...",
"message": "Wedi llwytho negeseuon. $count$ hyd yma...",
"description": "Message shown on the loading screen when we're catching up on the backlog of messages",
"placeholders": {
"count": {
@ -328,7 +328,7 @@
"description": "Displayed when a user can't send a message because something has gone wrong in the conversation."
},
"scrollDown": {
"message": "Sgrolio lawr i waelod y sgwrs",
"message": "Sgroliwch i waelod y sgwrs",
"description": "Alt text for button to take user down to bottom of conversation, shown when user scrolls up"
},
"messagesBelow": {
@ -398,7 +398,7 @@
"description": "When there are multiple previously-verified group members with safety number changes, a banner will be shown. The list of contacts with safety number changes is shown, and this text introduces that list."
},
"changedRightAfterVerify": {
"message": "Mae'r rhif diogelwch yr ydych in ceisio dilysu wedi newid. Arolygwch eich rhif diogelwch newydd â $name1$. Cofiwch, gall y newid hwn olygu bod rhywun yn ceisio rhyng-gipio eich cyfathrebiad neu yn syml bod $name2$ wedi ailosod Signal.",
"message": "Mae'r rhif diogelwch rydych yn ceisio ei ddilysu wedi newid. Adolygwch eich rhif diogelwch newydd â $name1$. Cofiwch, gall y newid hwn olygu bod rhywun yn ceisio rhyng-gipio eich cyfathrebiad neu yn syml bod $name2$ wedi ailosod Signal.",
"description": "Shown on the safety number screen when the user has selected to verify/unverify a contact's safety number, and we immediately discover a safety number change",
"placeholders": {
"name1": {
@ -412,15 +412,15 @@
}
},
"changedVerificationWarning": {
"message": "Gall fod y bobl ganlynol fod wedi ailosod neu newid dyfeisiau. Gwiriwch eich rhif diogelwch gyda nhw i sicrhau preifatrwydd.",
"message": "Mae'n bosib fod y bobl canlynol wedi ailosod neu newid eu dyfeisiau. Gwiriwch eich rhif diogelwch gyda nhw i sicrhau preifatrwydd.",
"description": "Shown on confirmation dialog when user attempts to send a message"
},
"safetyNumberChangeDialog__pending-messages--1": {
"message": "Anfon negeseuon sydd o dan ystyriaeth",
"message": "Anfon negeseuon sy'n disgwyl",
"description": "Shown on confirmation dialog when user attempts to send a message in the outbox"
},
"safetyNumberChangeDialog__pending-messages--many": {
"message": "Anfon $count$ neges sydd o dan ystyriaeth",
"message": "Yn anfon $count$ neges sy'n disgwyl",
"description": "Shown on confirmation dialog when user attempts to send a message in the outbox",
"placeholders": {
"count": {
@ -430,7 +430,7 @@
}
},
"identityKeyErrorOnSend": {
"message": "Mae'ch rhif diogelwch gyda $name1$ wedi newid. Gall hyn olygu bod rhywun yn ceisio rhyng-gipio eich cyfathrebu, neu yn syml bod $name2$ wedi ail-osod Signal. Efallai hoffech wirio'r rhif diogelwch gyda'r cysylltiad hwn.",
"message": "Mae'ch rhif diogelwch gyda $name1$ wedi newid. Gall hyn olygu bod rhywun yn ceisio rhyng-gipio eich cyfathrebu, neu yn syml bod $name2$ wedi ail-osod Signal. Efallai hoffech chi wirio'r rhif diogelwch gyda'r cysylltiad hwn.",
"description": "Shown when user clicks on a failed recipient in the message detail view after an identity key change",
"placeholders": {
"name1": {
@ -456,7 +456,7 @@
"description": "Used on a warning dialog to make it clear that it might be risky to continue the group call."
},
"noLongerVerified": {
"message": "Mae'ch rhif diogelwch gyda $name$ wedi newid ac nid yw wedi'i dilysu bellach. Cliciwch i'w ddangos.",
"message": "Mae'ch rhif diogelwch gyda $name$ wedi newid ac nid yw wedi'i ddilysu bellach. Cliciwch i'w ddangos.",
"description": "Shown in conversation banner when user's safety number has changed, but they were previously verified.",
"placeholders": {
"name": {
@ -470,7 +470,7 @@
"description": "Shown in conversation banner when more than one group member's safety number has changed, but they were previously verified."
},
"debugLogExplanation": {
"message": "Bydd y cofnod hwn yn cael ei gofnodi'n gyhoeddus ar-lein i gyfranwyr ei weld. Gallwch lawrlwytho'r log llawn cyn ei gyflwyno.",
"message": "Bydd y cofnod hwn yn cael ei gofnodi'n gyhoeddus ar-lein i gyfranwyr ei weld. Gallwch lwytho'r cofnod llawn cyn ei gyflwyno.",
"description": ""
},
"debugLogError": {
@ -586,11 +586,11 @@
"description": "The string \"yesterday\""
},
"thisWeek": {
"message": "Wythnos Hon",
"message": "Yr Wythnos Hon",
"description": "Section header in the media gallery"
},
"thisMonth": {
"message": "Mis Yma",
"message": "Y Mis Yma",
"description": "Section header in the media gallery"
},
"unsupportedAttachment": {
@ -610,7 +610,7 @@
"description": "Name for a voice message attachment"
},
"dangerousFileType": {
"message": "Nid oes caniatâd i atodiad o'r math am resymau diogelwch",
"message": "Nid oes caniatâd i atodiad o'r math yma am resymau diogelwch",
"description": "Shown in toast when user attempts to send .exe file, for example"
},
"loadingPreview": {
@ -648,7 +648,7 @@
}
},
"decryptionErrorToast": {
"message": "Cafodd y bwrdd gwaith wall dadgryptio o $name$, device $deviceId$",
"message": "Cafodd y bwrdd gwaith wall dadgryptio o $name$, dyfais $deviceId$",
"description": "An error popup when we haven't added an in-timeline error for decryption error, only for beta/internal users.",
"placeholders": {
"name": {
@ -666,7 +666,7 @@
"description": "Label for the decryption error toast button"
},
"oneNonImageAtATimeToast": {
"message": "Wrth gynnwys atodiad heb ddelwedd, dim ond un atodiad i bob neges.",
"message": "Wrth gynnwys atodiad heb ddelwedd, y terfyn yw ond un atodiad i bob neges.",
"description": "An error popup when the user has attempted to add an attachment"
},
"cannotMixImageAndNonImageAttachments": {
@ -698,7 +698,7 @@
"description": "Shown to allow the user to manually attempt a reconnect."
},
"connectingHangOn": {
"message": "Dylai ddim fod yn hir...",
"message": "Dylai ddim fod yn hir",
"description": "Subtext description for when the client is connecting to the server."
},
"offline": {
@ -758,7 +758,7 @@
"description": "Item under the Help menu, which opens a small about window"
},
"screenShareWindow": {
"message": "Yn rhannu sgrîn",
"message": "Yn rhannu sgrin",
"description": "Title for screen sharing window"
},
"speech": {
@ -1134,7 +1134,7 @@
"description": "Text shown in the confirmation dialog for deleting a message locally"
},
"deleteForEveryoneWarning": {
"message": "Bydd y neges hon yn cael ei dileu i bawb sydd yn y sgwrs os ydynt yn defnyddio fersiwn diweddar o Signal. Byddant yn gallu gweld eich bod wedi dileu neges.",
"message": "Bydd y neges hon yn cael ei dileu i bawb sydd yn y sgwrs os ydynt yn defnyddio fersiwn diweddar o Signal. Byddan nhw'n gallu gweld eich bod wedi dileu neges.",
"description": "Text shown in the confirmation dialog for deleting a message for everyone"
},
"from": {
@ -1196,7 +1196,7 @@
"description": "Generic label for back"
},
"goBack": {
"message": "Nôl",
"message": "Ewch nôl",
"description": "Label for back button in a conversation"
},
"moreInfo": {
@ -1208,7 +1208,7 @@
"description": "Shown on the drop-down menu for an individual message, but only if it is an outgoing message that failed to send"
},
"forwardMessage": {
"message": "Anfon ymlaen",
"message": "Anfon neges ymlaen",
"description": "Shown on the drop-down menu for an individual message, forwards a message"
},
"deleteMessage": {
@ -1240,7 +1240,7 @@
"description": "Shown in timeline when session is automatically reset, to provide access to a popup info dialog"
},
"ChatRefresh--summary": {
"message": "Defnyddir Signal amgryptio dechrau-i'r-diwedd ac efallai bydd rhaid iddo adnewyddu eich sesiwn sgwrsio o dro i dro. Nid yw hyn yn cael effaith ar ddiogelwch eich sgyrsiau ond efallai byddwch wedi methu neges gan y cysylltiad yma a gallwch ofyn iddynt ail-anfon.",
"message": "Mae Signal yn defnyddio amgryptio dechrau-i'r-diwedd ac efallai bydd rhaid iddo adnewyddu eich sesiwn sgwrsio o dro i dro. Nid yw hyn yn cael effaith ar ddiogelwch eich sgyrsiau ond efallai byddwch wedi methu neges gan y cysylltiad yma a gallwch ofyn iddyn nhw ei hail-anfon.",
"description": "Shown on explainer dialog available from chat session refreshed timeline events"
},
"ChatRefresh--contactSupport": {
@ -1328,7 +1328,7 @@
"description": "Used on reset buttons"
},
"fileIconAlt": {
"message": "Eicon Ffeil",
"message": "Eicon ffeil",
"description": "Used in the media gallery documents tab to visually represent a file"
},
"installWelcome": {
@ -1430,7 +1430,7 @@
"description": "Shown during initial link while contacts and groups are being pulled from mobile device"
},
"initialSync__subtitle": {
"message": "Sylw: Ni fydd eich hanes sgwrsio yn cael ei gydweddu a'r ddyfais hon",
"message": "Sylw: Ni fydd eich hanes sgwrsio yn cael ei gydweddu â'r ddyfais hon",
"description": "Shown during initial link while contacts and groups are being pulled from mobile device"
},
"installConnectionFailed": {
@ -1454,7 +1454,7 @@
"description": ""
},
"installTryAgain": {
"message": "Ceisio eto",
"message": "Ceisiwch eto",
"description": ""
},
"Preferences--theme": {
@ -1530,11 +1530,11 @@
"description": "Label under the share screen button"
},
"calling__button--presenting-disabled": {
"message": "Diffoddir cyflwyno",
"message": "Cyflwyno wedi'i analluogi",
"description": "Button tooltip label for when screen sharing is disabled"
},
"calling__button--presenting-on": {
"message": "Dechrau rhannu",
"message": "Dechrau cyflwyno",
"description": "Button tooltip label for starting to share screen"
},
"calling__button--presenting-off": {
@ -1558,7 +1558,7 @@
"description": "Button tooltip label for turning ringing on"
},
"calling__your-video-is-off": {
"message": "Mae'ch fideo wedi'i ddiffodd",
"message": "Mae'ch camera i ffwrdd",
"description": "Label in the calling lobby indicating that your camera is off"
},
"calling__pre-call-info--empty-group": {
@ -1808,11 +1808,11 @@
}
},
"calling__presenting--stop": {
"message": "Peidio rhannu",
"message": "Peidio â rhannu",
"description": "Button for stopping screen sharing"
},
"calling__presenting--you-stopped": {
"message": "Peidiasoch â chyflwyno",
"message": "Rydych wedi peidio â chyflwyno",
"description": "Toast that appears when someone stops presenting"
},
"calling__presenting--person-ongoing": {
@ -1836,7 +1836,7 @@
}
},
"calling__presenting--permission-title": {
"message": "Angen caniatâd",
"message": "Mae angen caniatâd",
"description": "Shown as the title for the modal that requests screen recording permissions"
},
"calling__presenting--macos-permission-description": {
@ -1868,7 +1868,7 @@
"description": "Description of the always relay calls setting"
},
"alwaysRelayCallsDetail": {
"message": "Ail-alw pob galwad drwy'r gweinydd Signal i osgoi datgelu eich cyfeiriad IP i'ch cyswllt. Bydd galluogi yn lleihau ansawdd galwadau.",
"message": "Ail-alw pob galwad drwy'r gweinydd Signal i osgoi datgelu eich cyfeiriad IP i'ch cyswllt. Bydd ei alluogi yn lleihau ansawdd galwadau.",
"description": "Details describing the always relay calls setting"
},
"permissions": {
@ -2026,7 +2026,7 @@
"description": "Shown on outgoing message if it fails to send"
},
"sendPaused": {
"message": "Oedwyd anfon",
"message": "Oedwyd yr anfon",
"description": "Shown on outgoing message if it cannot be sent immediately"
},
"partiallySent": {
@ -2202,11 +2202,11 @@
"description": "Displayed in the left pane when the timer is turned off"
},
"disappearingMessagesDisabledByMember": {
"message": "Diffoddodd aelod negeseuon byrhoedlog.",
"message": "Diffoddodd aelod y negeseuon byrhoedlog.",
"description": "Displayed in the left pane when the timer is turned off"
},
"disabledDisappearingMessages": {
"message": "Diffoddodd $name$ negeseuon byrhoedlog.",
"message": "Diffoddodd $name$ y negeseuon byrhoedlog.",
"description": "Displayed in the conversation list when the timer is turned off",
"placeholders": {
"name": {
@ -2216,7 +2216,7 @@
}
},
"youDisabledDisappearingMessages": {
"message": "Diffoddasoch negeseuon byrhoedlog.",
"message": "Rydych chi wedi diffodd y negeseuon byrhoedlog.",
"description": "Displayed in the conversation list when the timer is turned off"
},
"timerSetTo": {
@ -2230,7 +2230,7 @@
}
},
"audioNotificationDescription": {
"message": "Canu synau hysbysu",
"message": "Chwarae synau hysbysu",
"description": "Description for audio notification setting"
},
"callRingtoneNotificationDescription": {
@ -2342,7 +2342,7 @@
"description": "Label text for the setting that controls whether new notifications draw attention to the window"
},
"hideMenuBar": {
"message": "Cuddio bar dewislen",
"message": "Cuddio'r bar dewislen",
"description": "Label text for menu bar visibility setting"
},
"startConversation": {
@ -2370,7 +2370,7 @@
"description": "Shown if request to Signal servers to find username fails"
},
"startConversation--username-not-found": {
"message": "Heb ganfod y defnyddiwr. Nid yw $atUsername$ yn ddefnyddiwr Signal; gwnewch yn siŵr eich bod wedi nodi'r enw defnyddiwr cyflawn.",
"message": "Heb ganfod y defnyddiwr. Nid yw $atUsername$ yn ddefnyddiwr Signal; gwnewch yn siŵr eich bod wedi rhoi'r enw defnyddiwr llawn.",
"description": "Shown in dialog if username is not found. Note that 'username' will be the output of at-username",
"placeholders": {
"atUsername": {
@ -2396,7 +2396,7 @@
"description": "The 'next' button text in the 'choose group members' left pane screen"
},
"chooseGroupMembers__maximum-group-size__title": {
"message": "Uchafswm maint y grŵp wedi'i gyrraedd",
"message": "Mae uchafswm maint y grŵp wedi'i gyrraedd",
"description": "Shown in the alert when you add the maximum number of group members"
},
"chooseGroupMembers__maximum-group-size__body": {
@ -2410,7 +2410,7 @@
}
},
"chooseGroupMembers__maximum-recommended-group-size__title": {
"message": "Mae'r terfyn aelodaeth a argymhellir wedi'i gyrraedd",
"message": "Wedi cyrraedd terfyn aelodaeth sy'n cael ei argymhell",
"description": "Shown in the alert when you add the maximum recommended number of group members"
},
"chooseGroupMembers__maximum-recommended-group-size__body": {
@ -2466,7 +2466,7 @@
"description": "Shown in the modal when we can't create a group"
},
"updateGroupAttributes__title": {
"message": "Golygu grŵp",
"message": "Golygu'r grŵp",
"description": "Shown in the modal when we want to update a group"
},
"updateGroupAttributes__error-message": {
@ -2894,7 +2894,7 @@
}
},
"Message--from-me-unsupported-message": {
"message": "Anfonodd un o'ch dyfeisiau neges na ellir ei phrosesu na'i harddangos oherwydd ei bod yn defnyddio nodwedd Signal newydd.",
"message": "Anfonodd un o'ch dyfeisiau neges nad oes modd ei phrosesu na'i harddangos oherwydd ei bod yn defnyddio nodwedd Signal newydd.",
"description": ""
},
"Message--from-me-unsupported-message-ask-to-resend": {
@ -3010,7 +3010,7 @@
"description": "Shown in the shortcuts guide"
},
"Keyboard--default-message-action": {
"message": "Gweithred rhagosodedig ar gyfer y neges hon",
"message": "Gweithred rhagosodedig y neges hon",
"description": "Shown in the shortcuts guide"
},
"Keyboard--view-details-for-selected-message": {
@ -3042,7 +3042,7 @@
"description": "Shown in the shortcuts guide"
},
"Keyboard--send-in-expanded-composer": {
"message": "Anfon (mewn cyfansoddwr estynedig)",
"message": "Anfon (yn y cyfansoddwr estynedig)",
"description": "Shown in the shortcuts guide"
},
"Keyboard--attach-file": {
@ -3050,7 +3050,7 @@
"description": "Shown in the shortcuts guide"
},
"Keyboard--remove-draft-link-preview": {
"message": "Dileu rhagolwg dolen ddrafft",
"message": "Tynnu rhagolwg dolen ddrafft",
"description": "Shown in the shortcuts guide"
},
"Keyboard--remove-draft-attachments": {
@ -3058,7 +3058,7 @@
"description": "Shown in the shortcuts guide"
},
"Keyboard--conversation-by-index": {
"message": "Neidio i sgwrs",
"message": "Symud i sgwrs",
"description": "A shortcut allowing direct navigation to conversations 1 to 9 in list"
},
"Keyboard--Key--ctrl": {
@ -3272,7 +3272,7 @@
"description": "Title for the confirm dialog on the meta stage of the sticker creator"
},
"StickerCreator--MetaStage--ConfirmDialog--confirm": {
"message": "Uwchlwytho",
"message": "Llwytho i fyny",
"description": "Text for the upload button in the confirmation dialog on the meta stage of the sticker creator"
},
"StickerCreator--MetaStage--ConfirmDialog--text": {
@ -3284,7 +3284,7 @@
"description": "Title for the upload stage of the sticker creator"
},
"StickerCreator--UploadStage-uploaded": {
"message": "$count$ o $total$ wedi'i uwchlwytho",
"message": "$count$ o $total$ wedi'u llwytho i fyny",
"description": "Title for the upload stage of the sticker creator",
"placeholders": {
"count": {
@ -3306,7 +3306,7 @@
"description": "Help text for the share stage of the sticker creator"
},
"StickerCreator--ShareStage--callToAction": {
"message": "Defnyddiwch yr hashnod $hashtag$ i helpu pobl eraill i ddod o hyd i'r URLau ar gyfer unrhyw becynnau sticeri cyfaddas yr hoffech eu gwneud yn hygyrch i'r cyhoedd.",
"message": "Defnyddiwch yr hashnod $hashtag$ i helpu pobl eraill i ddod o hyd i URLau unrhyw becynnau sticeri cyfaddas yr hoffech eu gwneud yn hygyrch i'r cyhoedd.",
"description": "Call to action text for the share stage of the sticker creator",
"placeholders": {
"hashtag": {
@ -3328,7 +3328,7 @@
"description": "Text for the create another sticker pack button on the share stage of the sticker creator"
},
"StickerCreator--ShareStage--socialMessage": {
"message": "Edrychwch ar y pecyn sticeri newydd hwn a greais ar gyfer Signal. #makeprivacystick",
"message": "Edrychwch ar y pecyn sticeri newydd hwn rwyf wedi'u creu ar gyfer Signal. #makeprivacystick",
"description": "Text which is shared to social media platforms for sticker packs"
},
"StickerCreator--Toasts--imagesAdded": {
@ -3346,7 +3346,7 @@
"description": "Text for the toast when an image that is animated was dropped on the sticker creator"
},
"StickerCreator--Toasts--tooLarge": {
"message": "Delwedd wedi'i gollwng yn rhy fawr",
"message": "Mae'r ddelwedd yn rhy fawr",
"description": "Text for the toast when an image that is too large was dropped on the sticker creator"
},
"StickerCreator--Toasts--errorProcessing": {
@ -3466,7 +3466,7 @@
"description": "Shown as the body in the confirmation modal for unblocking a group message request"
},
"MessageRequests--block-and-report-spam": {
"message": "Adrodd ar Sothach a'i Rwystro",
"message": "Adrodd ar Sbam a'i Rwystro",
"description": "Shown as a button to let the user block a message request and report spam"
},
"MessageRequests--block-and-report-spam-success-toast": {
@ -3994,7 +3994,7 @@
"description": "Label for the mute notifications drop-down selector"
},
"notMuted": {
"message": "Heb ei ddistewi",
"message": "Heb eu distewi",
"description": "Label when the conversation is not muted"
},
"muteHour": {
@ -4116,11 +4116,11 @@
"description": "The button to join the group, if approval is required"
},
"GroupV2--join--cancel-request-to-join": {
"message": "Canslo Cais",
"message": "Diddymu'r Cais",
"description": "The button to cancel request to join the group"
},
"GroupV2--join--cancel-request-to-join--confirmation": {
"message": "Canslo eich cais i ymuno â'r grwp?",
"message": "Diddymu eich cais i ymuno â'r grŵp?",
"description": "A confirmation message that shows after you click the button"
},
"GroupV2--join--cancel-request-to-join--yes": {
@ -4180,11 +4180,11 @@
"description": "Label for describing the general non-privileged members of a group"
},
"updating": {
"message": "Diweddaru...",
"message": "Yn diweddaru...",
"description": "Shown along with a spinner when an update operation takes longer than one second"
},
"GroupV2--create--you": {
"message": "Rydych wedi creu'r grŵp",
"message": "Rydych wedi creu'r grŵp.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--create--other": {
@ -4236,7 +4236,7 @@
}
},
"GroupV2--title--remove--other": {
"message": "Tynnodd $memberName$ enw'r grŵp.",
"message": "Mae $memberName$ wedi tynnu enw'r grŵp.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"memberName": {
@ -4246,11 +4246,11 @@
}
},
"GroupV2--title--remove--you": {
"message": "Rydych wedi dileu enw'r grŵp.",
"message": "Rydych wedi tynnu enw'r grŵp.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--title--remove--unknown": {
"message": "Tynnodd aelod enw'r grŵp.",
"message": "Mae aelod wedi tynnu enw'r grŵp.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--avatar--change--other": {
@ -4282,7 +4282,7 @@
}
},
"GroupV2--avatar--remove--you": {
"message": "Rydych wedi tynnu avatar y grŵp.",
"message": "Rydych wedi tynnu afatar y grŵp.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--avatar--remove--unknown": {
@ -4304,7 +4304,7 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--access-attributes--admins--unknown": {
"message": "Newidiodd gweinyddwr pwy sy'n gallu golygu manylion y grŵp i \"Dim ond gweinyddwyr.\"",
"message": "Newidiodd y gweinyddwr pwy sy'n gallu golygu manylion y grŵp i \"Dim ond gweinyddwyr.\"",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--access-attributes--all--other": {
@ -4514,7 +4514,7 @@
}
},
"GroupV2--member-add--you--other": {
"message": "Ychwanegodd $memberName$ chi y grŵp.",
"message": "Ychwanegodd $memberName$ chi i'r grŵp.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"memberName": {
@ -4532,7 +4532,7 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--member-add-from-link--you--you": {
"message": "Ymunasoch â'r grŵp trwy'r ddolen grŵp.",
"message": "Rydych wedi ymuno â'r grŵp trwy'r ddolen grŵp.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--member-add-from-link--other": {
@ -4652,7 +4652,7 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--member-remove--you--unknown": {
"message": "Rydych wedi'ch dileu o'r grŵp.",
"message": "Rydych wedi'ch tynnu o'r grŵp.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--member-privilege--promote--other--other": {
@ -4976,7 +4976,7 @@
}
},
"GroupV2--pending-remove--revoke-invite-from-you--one--other": {
"message": "Dirymodd $adminName$ y gwahoddiad i'r grŵp a anfonoch at $inviteeName$.",
"message": "Dirymodd $adminName$ y gwahoddiad i'r grŵp wnaethoch chi ei anfon at $inviteeName$.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"adminName": {
@ -4996,7 +4996,7 @@
}
},
"GroupV2--pending-remove--revoke-invite-from-you--one--unknown": {
"message": "Dirymodd gweinyddwr y gwahoddiad i'r grŵp a anfonoch at $inveName$.",
"message": "Dirymodd gweinyddwr y gwahoddiad i'r grŵp wnaethoch chi ei anfon at $inveName$.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"inviteeName": {
@ -5082,7 +5082,7 @@
}
},
"GroupV2--admin-approval-add-one--you": {
"message": "Anfonasoch gais i ymuno â'r grŵp.",
"message": "Rydych wedi anfon cais i ymuno â'r grŵp.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--admin-approval-add-one--other": {
@ -5096,7 +5096,7 @@
}
},
"GroupV2--admin-approval-remove-one--you--you": {
"message": "Fe wnaethoch chi ganslo eich cais i ymuno â'r grŵp.",
"message": "Fe wnaethoch chi ddiddymu eich cais i ymuno â'r grŵp.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--admin-approval-remove-one--you--unknown": {
@ -5174,7 +5174,7 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--group-link-remove--you": {
"message": "Diffoddasoch y ddolen grŵp.",
"message": "Rydych wedi diffodd y ddolen grŵp.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--group-link-remove--other": {
@ -5192,7 +5192,7 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--group-link-reset--you": {
"message": "Ailosodasoch y ddolen grŵp.",
"message": "Rydych wedi ailosod y ddolen grŵp.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--group-link-reset--other": {
@ -5210,11 +5210,11 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--description--remove--you": {
"message": "Dileasoch disgrifiad y grŵp.",
"message": "Rydych wedi tynnu disgrifiad y grŵp.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--description--remove--other": {
"message": "Dilëwyd disgrifiad y grŵp gan $memberName$.",
"message": "Mae $memberName$ wedi tynnu disgrifiad y grŵp.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"adminName": {
@ -5224,7 +5224,7 @@
}
},
"GroupV2--description--remove--unknown": {
"message": "Dilëwyd disgrifiad y grŵp.",
"message": "Mae disgrifiad y grŵp wedi ei dynnu.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--description--change--you": {
@ -5232,7 +5232,7 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--description--change--other": {
"message": "Newidiodd $memberName$ disgrifiad y grŵp.",
"message": "Newidiodd $memberName$ ddisgrifiad y grŵp.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"adminName": {
@ -5246,11 +5246,11 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--announcements--admin--you": {
"message": "Newidiasoch gosodiadau'r grŵp i ganiatáu gweinyddwyr un unig i anfon negeseuon.",
"message": "Rydych wedi newid gosodiadau'r grŵp i ganiatáu i'r gweinyddwyr yn unig i anfon negeseuon.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--announcements--admin--other": {
"message": "Newidiodd $memberName$ gosodiadau'r grŵp i ganiatáu gweinyddwyr un unig i anfon negeseuon.",
"message": "Newidiodd $memberName$ gosodiadau'r grŵp i ganiatáu i'r gweinyddwyr yn unig anfon negeseuon.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"adminName": {
@ -5264,11 +5264,11 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--announcements--member--you": {
"message": "Newidiasoch gosodiadau'r grŵp i ganiatáu pob aelod i anfon negeseuon.",
"message": "Rydych wedi newid gosodiadau'r grŵp i ganiatáu i bob aelod anfon negeseuon.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--announcements--member--other": {
"message": "Newidiodd $memberName$ gosodiadau'r grŵp i ganiatáu pob aelod i anfon negeseuon.",
"message": "Newidiodd $memberName$ osodiadau'r grŵp i ganiatáu i bob aelod anfon negeseuon.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"adminName": {
@ -5278,7 +5278,7 @@
}
},
"GroupV2--announcements--member--unknown": {
"message": "Newidiwyd gosodiadau'r grŵp i ganiatáu pob aelod i anfon negeseuon.",
"message": "Newidiwyd gosodiadau'r grŵp i ganiatáu i bob aelod anfon negeseuon.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV1--Migration--disabled": {
@ -5312,7 +5312,7 @@
"description": "Shown on Migration popup after choosing to migrate group"
},
"GroupV1--Migration--info--summary": {
"message": "Mae gan Grwpiau Newydd nodweddion fel @crybwyll a gweinyddwyr grwpiau, a byddant â nodweddion ychwanegol yn y dyfodol.",
"message": "Mae gan Grwpiau Newydd nodweddion fel @mentions a gweinyddwyr grwpiau, a byddant â nodweddion ychwanegol yn y dyfodol.",
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--keep-history": {
@ -5328,27 +5328,27 @@
"description": "Shown on Learn More popup after GV1 migration"
},
"GroupV1--Migration--info--invited--many": {
"message": "Bydd angen i'r aelodau hyn dderbyn gwahoddiad i ymuno â'r grŵp hwn eto, a ni fyddant yn derbyn negeseuon grŵp nes eu bod yn derbyn:",
"message": "Bydd angen i'r aelodau hyn dderbyn gwahoddiad i ymuno â'r grŵp hwn eto, a byddan nhw ddim yn derbyn negeseuon grŵp nes eu bod yn derbyn:",
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--invited--one": {
"message": "Bydd angen i'r aelod hwn dderbyn gwahoddiad i ymuno â'r grŵp hwn eto, a ni fydd yn derbyn negeseuon grŵp nes ei fod wedi derbyn:",
"message": "Bydd angen i'r aelod hwn dderbyn gwahoddiad i ymuno â'r grŵp hwn eto, a byddan nhw ddim yn derbyn negeseuon grŵp nes ei fod wedi derbyn:",
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--removed--before--many": {
"message": "Nid yw'r aelodau hyn yn gallu ymuno â Grwpiau Newydd, a chânt eu tynnu o'r grŵp:",
"message": "Nid yw'r aelodau hyn yn gallu ymuno â Grwpiau Newydd, byddan nhw'n cael eu tynnu o'r grŵp:",
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--removed--before--one": {
"message": "Nid yw'r aelod hwn yn gallu ymuno â Grwpiau Newydd, a chaiff ei dynnu o'r grŵp.",
"message": "Nid yw'r aelod hwn yn gallu ymuno â Grwpiau Newydd, a bydd yn cael ei dynnu o'r grŵp.",
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--removed--after--many": {
"message": "Nid oedd yr aelodau hyn yn gallu ymuno â Grwpiau Newydd, a chawsant eu tynnu o'r grŵp:",
"message": "Nid oedd yr aelodau hyn yn gallu ymuno â Grwpiau Newydd ac mae nhw wedi cael eu tynnu o'r grŵp:",
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--removed--after--one": {
"message": "Nid oedd yr aelod hwn yn gallu ymuno â Grwpiau Newydd, a chafodd ei dynnu o'r grŵp:",
"message": "Nid oedd yr aelod hwn yn gallu ymuno â Grwpiau Newydd, ac mae wedi ei thynnu/dynnu o'r grŵp:",
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--invited--you": {
@ -5366,7 +5366,7 @@
}
},
"GroupV1--Migration--invited--many": {
"message": "Nid oedd modd ychwanegu $count$ aelod at y Grŵp Newydd ac fe'u gwahoddwyd i ymuno.",
"message": "Nid oedd modd ychwanegu $count$ aelod at y Grŵp Newydd ac mae wedi cael gwahoddiad i ymuno.",
"description": "Shown in timeline when a group is upgraded and some people were invited, instead of added",
"placeholders": {
"contact": {
@ -5408,11 +5408,11 @@
"description": "Generic next label"
},
"BadgeDialog__become-a-sustainer-button": {
"message": "Dod yn Gynhaliwr",
"message": "Dod yn Gefnogwr",
"description": "In the badge dialog. This button is shown under sustainer badges, taking users to some instructions"
},
"BadgeSustainerInstructions__header": {
"message": "Dod yn Gynhaliwr",
"message": "Dod yn Gefnogwr",
"description": "In the instructions for becoming a sustainer. The heading."
},
"BadgeSustainerInstructions__subheader": {
@ -5496,7 +5496,7 @@
"description": "This is a button in the conversation context menu to show the chat color editor"
},
"showConversationDetails": {
"message": "Gosodiadau grŵp",
"message": "Gosodiadau'r grŵp",
"description": "This is a button in the conversation context menu to show group settings"
},
"showConversationDetails--direct": {
@ -5572,7 +5572,7 @@
"description": "This is the modal title for confirming leaving a group"
},
"ConversationDetailsActions--leave-group-modal-content": {
"message": "Ni fyddwch yn gallu anfon na derbyn negeseuon yn y grŵp hwn mwyach.",
"message": "Fyddwch chi ddim yn gallu anfon na derbyn negeseuon yn y grŵp hwn mwyach.",
"description": "This is the modal content for confirming leaving a group"
},
"ConversationDetailsActions--leave-group-modal-confirm": {
@ -5590,7 +5590,7 @@
}
},
"ConversationDetailsActions--block-group-modal-content": {
"message": "Ni fyddwch bellach yn derbyn negeseuon na diweddariadau gan y grŵp hwn.",
"message": "Fyddwch chi ddim bellach yn derbyn negeseuon na diweddariadau gan y grŵp hwn.",
"description": "This is the modal content for confirming blocking a group"
},
"ConversationDetailsActions--block-group-modal-confirm": {
@ -5638,7 +5638,7 @@
"description": "In the conversation notifications settings, this is the label for the mentions option"
},
"ConversationNotificationsSettings__mentions__info": {
"message": "Derbyn hysbysiadau pan sonir amdanoch mewn sgyrsiau wedi'u tewi?",
"message": "Derbyn hysbysiadau pan mae sôn amdanoch mewn sgyrsiau wedi'u tewi?",
"description": "In the conversation notifications settings, this is the sub-label for the mentions option"
},
"ConversationNotificationsSettings__mentions__select__always-notify": {
@ -5646,7 +5646,7 @@
"description": "In the conversation notifications settings, this is the option that always notifies you for @mentions"
},
"ConversationNotificationsSettings__mentions__select__dont-notify-for-mentions-if-muted": {
"message": "Paid hysbysu os ddistewyd",
"message": "Peidio hysbysu os wedi distewi",
"description": "In the conversation notifications settings, this is the option that doesn't notify you for @mentions if the conversation is muted"
},
"GroupLinkManagement--clipboard": {
@ -5658,7 +5658,7 @@
"description": "This lets users share their group link"
},
"GroupLinkManagement--confirm-reset": {
"message": "Ydych chi'n siŵr eich bod am ailosod y ddolen grŵp? Ni fydd pobl bellach yn gallu ymuno â'r grŵp gan ddefnyddio'r ddolen gyfredol.",
"message": "Ydych chi'n siŵr eich bod am ailosod y ddolen grŵp? Fydd dim modd i bobl ymuno â'r grŵp gan ddefnyddio'r ddolen gyfredol.",
"description": "Shown in the confirmation dialog when an admin is about to reset the group link"
},
"GroupLinkManagement--reset": {
@ -5800,7 +5800,7 @@
}
},
"PendingInvites--info": {
"message": "Nid yw manylion am bobl sydd wedi'u gwahodd i'r grŵp hwn nes iddyn nhw ymuno. Dim ond ar ôl iddyn nhw ymuno â'r grŵp y bydd gwahoddedigion yn gweld negeseuon.",
"message": "Nid yw manylion am bobl sydd wedi'u gwahodd i'r grŵp hwn yn cael eu dangos nes iddyn nhw ymuno. Dim ond ar ôl iddyn nhw ymuno â'r grŵp y bydd gwahoddedigion yn gweld negeseuon.",
"description": "Information shown below the invite list"
},
"AvatarInput--no-photo-label--group": {
@ -5816,7 +5816,7 @@
"description": "The label for the avatar uploader when a photo is selected"
},
"AvatarInput--upload-photo-choice": {
"message": "Uwchlwytho llun",
"message": "Llwytho llun i fyny",
"description": "The button text when you click on an uploaded avatar and want to upload a new one"
},
"AvatarInput--remove-photo-choice": {
@ -5846,7 +5846,7 @@
}
},
"NewlyCreatedGroupInvitedContactsDialog--body--user-paragraph--one": {
"message": "Nid oes modd i ti ychwanegu $name$ yn awtomatig i'r grŵp.",
"message": "Nid oes modd ychwanegu $name$ yn awtomatig i'r grŵp.",
"description": "When creating a new group and inviting users, this is shown in the dialog",
"placeholders": {
"name": {
@ -5856,11 +5856,11 @@
}
},
"NewlyCreatedGroupInvitedContactsDialog--body--user-paragraph--many": {
"message": "Nid oes modd i ti ychwanegu'r defnyddiwr hwn i'r grŵp yn awtomatig.",
"message": "Nid oes modd ychwanegu'r defnyddiwr hwn i'r grŵp yn awtomatig.",
"description": "When creating a new group and inviting users, this is shown in the dialog"
},
"NewlyCreatedGroupInvitedContactsDialog--body--info-paragraph": {
"message": "Maent nhw wedi eu gwahodd, a ni fyddent yn gweld unrhyw negeseuon grŵp nes iddynt dderbyn.",
"message": "Maen nhw wedi eu gwahodd, a fyddan nhw ddim yn gweld unrhyw negeseuon grŵp nes iddyn nhw dderbyn.",
"description": "When creating a new group and inviting users, this is shown in the dialog"
},
"NewlyCreatedGroupInvitedContactsDialog--body--learn-more": {
@ -5926,7 +5926,7 @@
}
},
"deselectContact": {
"message": "Dad-ddewiswch $name$ cyswllt",
"message": "Dad-ddewiswch cyswllt $name$ ",
"description": "The label for contact checkboxes that are selected (clicking them should de-select the contact)",
"placeholders": {
"name": {
@ -5936,7 +5936,7 @@
}
},
"cannotSelectContact": {
"message": "Methu dewis $name$ cyswllt",
"message": "Methu dewis cyswllt $name$",
"description": "The label for contact checkboxes that are disabled",
"placeholders": {
"name": {
@ -5946,7 +5946,7 @@
}
},
"alreadyAMember": {
"message": "Rydyn nhw eisoes yn aelod",
"message": "Eisoes yn aelod",
"description": "The label for contact checkboxes that are disabled because they're already a member"
},
"MessageAudio--play": {
@ -5954,7 +5954,7 @@
"description": "Aria label for audio attachment's Play button"
},
"MessageAudio--pause": {
"message": "Seibi atodiad sain",
"message": "Oedi atodiad sain",
"description": "Aria label for audio attachment's Pause button"
},
"MessageAudio--download": {
@ -5966,11 +5966,11 @@
"description": "Aria label for pending audio attachment spinner"
},
"MessageAudio--slider": {
"message": "Amser chwarae nôl atodiad sain",
"message": "Amser chwarae'r atodiad sain",
"description": "Aria label for audio attachment's playback time slider"
},
"emptyInboxMessage": {
"message": "Cliciwch y $composeIcon$ uchod a chwilio am gysylltiadau neu grwpiau i anfon negeseuon atynt.",
"message": "Cliciwch y $composeIcon$ uchod a chwilio am gysylltiadau neu grwpiau i anfon negeseuon atyn nhw.",
"description": "Shown in the left-pane when the inbox is empty",
"placeholders": {
"composeIcon": {
@ -5980,7 +5980,7 @@
}
},
"composeIcon": {
"message": "botwm cyfansoddi",
"message": "y botwm cyfansoddi",
"description": "Shown in the left-pane when the inbox is empty. Describes the button that composes a new message."
},
"ForwardMessageModal--continue": {
@ -6004,7 +6004,7 @@
"description": "Shown in the message request warning dialog. Gives more information about message requests"
},
"MessageRequestWarning__dialog__learn-even-more": {
"message": "Ychylch Ceisiadau Neges",
"message": "Ynghylch Ceisiadau Neges",
"description": "Shown in the message request warning dialog. Clicking this button will open a page on Signal's support site"
},
"ContactSpoofing__same-name": {
@ -6100,7 +6100,7 @@
"description": "Header in the captcha dialog"
},
"CaptchaDialog__first-paragraph": {
"message": "I helpu atal sothach ar Signal cwblhewch gwirio os gwelwch yn dda.",
"message": "I helpu atal sbam ar Signal cwblhewch y gwirio, os gwelwch yn dda.",
"description": "First paragraph in the captcha dialog"
},
"CaptchaDialog__second-paragraph": {
@ -6112,23 +6112,23 @@
"description": "Header in the captcha dialog that can be closed"
},
"CaptchaDialog--can-close__body": {
"message": "Os byddwch yn dewis hepgor y gwiriad, efallai byddwch yn methu negeseuon gan bobl eraill ac efallai bydd eich negeseuon chi yn methu ag anfon.",
"message": "Os byddwch yn dewis hepgor y gwiriad, efallai byddwch yn colli negeseuon gan bobl eraill ac efallai bydd eich negeseuon yn methu a'u hanfon.",
"description": "Body of the captcha dialog that can be closed"
},
"CaptchaDialog--can_close__skip-verification": {
"message": "Hepgor gwiriad",
"message": "Hepgor y gwirio",
"description": "Skip button of the captcha dialog that can be closed"
},
"verificationComplete": {
"message": "Cwblhawyd gwirio.",
"message": "Cwblhawyd y gwirio.",
"description": "Displayed after successful captcha"
},
"verificationFailed": {
"message": "Methwyd gwirio, rhowch gynnig arall arni nes ymlaen.",
"message": "Methwyd gwirio, rhowch gynnig arall arni, yn nes ymlaen.",
"description": "Displayed after unsuccessful captcha"
},
"deleteForEveryoneFailed": {
"message": "Methwyd dileu y neges i bawb. Rhowch gynnig arall arni nes ymlaen.",
"message": "Methwyd dileu y neges i bawb. Rhowch gynnig arall arni, yn nes ymlaen.",
"description": "Displayed when delete-for-everyone has failed to send to all recipients"
},
"ChatColorPicker__delete--title": {
@ -6146,7 +6146,7 @@
}
},
"ChatColorPicker__global-chat-color": {
"message": "Lliw Sgwrs Eang",
"message": "Lliw Sgwrs Cyffredin",
"description": "Modal title for the chat color picker and editor for all conversations"
},
"ChatColorPicker__menu-title": {
@ -6166,7 +6166,7 @@
"description": "Button label for resetting all chat colors"
},
"ChatColorPicker__confirm-reset-default": {
"message": "Ailosod lliwau diofyn",
"message": "Ailosod lliwiau rhagosodedig",
"description": "Button label for resetting only global chat color"
},
"ChatColorPicker__confirm-reset": {
@ -6230,11 +6230,11 @@
"description": "Text for an option in Disappearing Messages menu and Conversation Details Disappearing Messages setting when no user value is available"
},
"selectedCustomDisappearingTimeOption": {
"message": "Amser cyfaddas:",
"message": "Amser cyfaddas",
"description": "Text for an option in Conversation Details Disappearing Messages setting when user previously selected custom time"
},
"DisappearingTimeDialog__title": {
"message": "Dewis Amser",
"message": "Amser Cyfaddas",
"description": "Title for the custom disappearing message timeout dialog"
},
"DisappearingTimeDialog__body": {
@ -6266,7 +6266,7 @@
"description": "Name of the 'weeks' unit select for the custom disappearing message timeout dialog"
},
"settings__DisappearingMessages__footer": {
"message": "Gosod cyfnod negeseuon byrhoedlog rhagosodedig ar gyfer holl sgyrsiau newydd a sydd wedi'u dechrau gennych.",
"message": "Gosod cyfnod negeseuon byrhoedlog rhagosodedig ar gyfer pob sgwrs newydd sydd wedi'u dechrau gennych.",
"description": "Footer for the Disappearing Messages settings section"
},
"settings__DisappearingMessages__timer__label": {
@ -6328,7 +6328,7 @@
"description": "In the message details screen, shown above contacts where the message failed to deliver"
},
"MessageDetailsHeader--Pending": {
"message": "Dan ystyriaeth",
"message": "Yn disgwyl",
"description": "In the message details screen, shown above contacts where the message is still sending"
},
"MessageDetailsHeader--Sent": {
@ -6368,7 +6368,7 @@
"description": "Shown if user has attempted to use forbidden characters"
},
"ProfileEditor--username--check-starting-character": {
"message": "Ni all enw defnyddiwr gychwyn gyda rhif.",
"message": "Nid yw enw defnyddiwr yn gallu gychwyn gyda rhif.",
"description": "Shown if user has attempted to begin their username with a number"
},
"ProfileEditor--username--check-character-min": {
@ -6408,7 +6408,7 @@
"description": "Shown as aria label for trash icon next to username"
},
"ProfileEditor--username--confirm-delete-body": {
"message": "Bydd hyn yn dileu eich enw defnyddiwr, gan ganiatáu i ddefnyddwyr eraill ei hawlio. Ydych chi'n siŵr?",
"message": "Bydd hyn yn tynnu eich enw defnyddiwr, gan ganiatáu i ddefnyddwyr eraill ei hawlio. Ydych chi'n siŵr?",
"description": "Shown in dialog body if user has saved an empty string to delete their username"
},
"ProfileEditor--username--confirm-delete-button": {
@ -6416,7 +6416,7 @@
"description": "Shown in dialog button if user has saved an empty string to delete their username"
},
"ProfileEditor--about-placeholder": {
"message": "Ysgrifennwch rhywbeth amdanoch",
"message": "Ysgrifennwch rhywbeth amdanoch chi...",
"description": "Placeholder text for about input field"
},
"ProfileEditor--first-name": {
@ -6432,7 +6432,7 @@
"description": "ConfirmationDialog text for discarding changes"
},
"ProfileEditor--info": {
"message": "Mae'ch proffil wedi'u amgryptio. Bydd eich proffil i'w weld gan eich cysylltiadau a pan fyddwch yn dechrau neu derbyn sgyrsiau newydd. $learnMore$",
"message": "Mae'ch proffil wedi'u hamgryptio. Bydd eich proffil i'w weld gan eich cysylltiadau a pan fyddwch yn dechrau neu dderbyn sgyrsiau newydd. $learnMore$",
"description": "Information shown at the bottom of the profile editor section",
"placeholders": {
"learnMore": {
@ -6446,7 +6446,7 @@
"description": "Text that links to a support article"
},
"Bio--speak-freely": {
"message": "Siarad heb Rwystr",
"message": "Siarad yn Rhydd",
"description": "A default bio option"
},
"Bio--encrypted": {
@ -6458,7 +6458,7 @@
"description": "A default bio option"
},
"Bio--coffee-lover": {
"message": "Carwr Coffi",
"message": "Carwr coffi",
"description": "A default bio option"
},
"Bio--taking-break": {
@ -6478,7 +6478,7 @@
"description": "Title for about editing"
},
"ProfileEditorModal--avatar": {
"message": "Eich Avatar",
"message": "Eich Afatar",
"description": "Title for profile avatar editing"
},
"ProfileEditorModal--username": {
@ -6508,7 +6508,7 @@
"description": "Clickable text describing administrators of a group, used in the message an admin label"
},
"AvatarEditor--choose": {
"message": "Dewis avatar",
"message": "Dewis afatar",
"description": "Label for the avatar selector"
},
"AvatarColorPicker--choose": {
@ -6516,7 +6516,7 @@
"description": "Label for when you need to choose your fighter, err color"
},
"LeftPaneSetGroupMetadataHelper__avatar-modal-title": {
"message": "Rhithffurf y Grŵp",
"message": "Afatar y Grŵp",
"description": "Title for the avatar picker in the group creation flow"
},
"Preferences__button--general": {
@ -6610,7 +6610,7 @@
"description": "Title for the 'who can do X' setting"
},
"Preferences__privacy--description": {
"message": "I newid y gosodiadau hyn, agorwch yr app Signal ar eich dyfais symudol a llywio i Gosodiadau > Preifatrwydd",
"message": "I newid y gosodiadau hyn, agorwch yr ap Signal ar eich dyfais symudol a llywio i Gosodiadau > Preifatrwydd",
"description": "Description for the 'who can do X' setting"
},
"Preferences__who-can--everybody": {
@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Wedi symud y bylchu ym mhennyn y cwarel chwith a'r ardal chwilio, mae nawr mwy o le i weithgareddau!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Mae nawdd yn hawdd dod o hyd i'r person sy'n teipio'n swnllyd neu'n cnoi'n drwm mewn galwad grŵp - rydym yn cyflwynon dangosydd siaradwr animeiddiedig!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "Mae'r rhestr o ieithoedd sy'n cael eu cefnogi wedi ehangu. Rydym yn gwerthfawrogi'n fawr y cyfieithwyr gwirfoddol sydd wedi gwneud hyn yn bosib.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Vi har ændret på afstanden i venstre rudes sidehoved og søgeområde, så der nu er masser af plads til aktiviteter!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Nu er det nemt at opspore personen, der højlydt taster eller smasker i gruppeopkald - vi har indført en ny animeret taleindikator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "Listen med understøttede sprog er blevet udvidet. Vi sætter stor pris på de frivillige oversættere, hvis indsats har gjort dette muligt.",
"description": "Release notes for v5.32"
}
}

View File

@ -648,7 +648,7 @@
}
},
"decryptionErrorToast": {
"message": "Desktop hat einen Entschlüsselungsfehler von $name$, Gerät $deviceId$ festgestellt. ",
"message": "Signal Desktop hat einen Entschlüsselungsfehler von $name$, Gerät $deviceId$ festgestellt. ",
"description": "An error popup when we haven't added an in-timeline error for decryption error, only for beta/internal users.",
"placeholders": {
"name": {
@ -838,7 +838,7 @@
"description": "Shown to separate the types of search results"
},
"findByUsernameHeader": {
"message": "Nutzernamen suchen",
"message": "Nach Nutzernamen suchen",
"description": "Shown to separate the types of search results"
},
"at-username": {
@ -5988,7 +5988,7 @@
"description": "aria-label for the 'next' button in the forward a message modal dialog"
},
"TimelineDateHeader--date-in-last-6-months": {
"message": "ddd D. MMM",
"message": "ddd, D. MMM",
"description": "Moment.js format for date headers in the message timeline, for dates <6 months old. See https://momentjs.com/docs/#/displaying/format/."
},
"TimelineDateHeader--date-older-than-6-months": {
@ -6408,7 +6408,7 @@
"description": "Shown as aria label for trash icon next to username"
},
"ProfileEditor--username--confirm-delete-body": {
"message": "Dies löscht deinen Nutzernamen, sodass andere Nutzer ihn übernehmen können. Bist du sicher?",
"message": "Dies löscht deinen Nutzernamen, was dazu führt, dass andere Nutzer ihn übernehmen können. Bist du sicher?",
"description": "Shown in dialog body if user has saved an empty string to delete their username"
},
"ProfileEditor--username--confirm-delete-button": {
@ -6800,7 +6800,7 @@
"description": "Release notes for releases that only include bug fixes"
},
"WhatsNew__v5.26--1": {
"message": "Langweilig: unbearbeitete Bilder über Signal senden.\nAufregend: Ergänze Katzensticker, Neonschrift und male glückliche Bäume auf deine Bilder, bevor du sie über Signal verschickst.",
"message": "Langweilig: Unbearbeitete Bilder über Signal senden.\nAufregend: Ergänze Katzensticker, Neonschrift und male glückliche Bäume auf deine Bilder, bevor du sie über Signal verschickst.",
"description": "Release notes for v5.26"
},
"WhatsNew__v5.26--2": {
@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Die Abstände in der Kopfzeile des linken Fensters und im Suchbereich wurden verändert, und jetzt gibt es so viel Platz für Aktivitäten!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Mache nun ganz leicht den noch verbliebenen lauten Tipper oder Schwerkauenden in Gruppenanrufen ausfindig wir haben ein neuen animierten Sprechenindikator eingeführt!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "Die Liste der unterstützten Sprachen wurde erweitert. Wir bedanken uns von ganzem Herzen bei den ehrenamtlichen Übersetzern, die dies ermöglicht haben.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Pli agrabla spaco en la maldekstra panelo ĉirkaŭ la serĉa areo. Bone!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -1430,7 +1430,7 @@
"description": "Shown during initial link while contacts and groups are being pulled from mobile device"
},
"initialSync__subtitle": {
"message": "Nota: Tus chats previos no se sincronizarán con este dispositivo",
"message": "Aviso: Tus chats previos no se sincronizarán con este dispositivo",
"description": "Shown during initial link while contacts and groups are being pulled from mobile device"
},
"installConnectionFailed": {
@ -1486,7 +1486,7 @@
"description": "Button label in the call lobby for returning to a call"
},
"calling__lobby-automatically-muted-because-there-are-a-lot-of-people": {
"message": "Micrófono silenciado por llamada con bastantes participantes",
"message": "Micrófono silenciado debido a llamada de grupo",
"description": "Shown in a call lobby toast if there are a lot of people already on the call"
},
"calling__call-is-full": {
@ -6808,7 +6808,7 @@
"description": "Release notes for v5.26"
},
"WhatsNew__macos-m1": {
"message": "Ahora, Signal Desktop está optimizada para los procesadores M1 que Apple usa en sus nuevos Macs. Si utilizas uno de esos Macs, Signal funciona de manera más ligera. Si no, dale la bienvenida a la gente que los usa. ¡Los agradecimientos son para $dennis$ por su duro trabajo!",
"message": "Ahora, Signal Desktop está optimizada para los procesadores M1 en los nuevos Mac de Apple. Si utilizas uno de esos Macs, Signal funciona de manera más ligera. Si no, dale la bienvenida a la gente que los usa. ¡Los agradecimientos son para $dennis$ por su duro trabajo!",
"description": "Release note for the macOS M1 release",
"placeholders": {
"dennis": {
@ -6818,7 +6818,7 @@
}
},
"WhatsNew__v5.27--1": {
"message": "¿La llamada dura demasiado? Tu sistema permanecerá despierto durante todo el tiempo de la llamada, en lugar de entrar en hibernación en medio de esa conversación tan importante.",
"message": "¿La llamada dura demasiado? Tu sistema permanecerá activo durante todo el tiempo que dure la llamada, en lugar de entrar en hibernación en medio de esa conversación tan importante.",
"description": "Release notes for v5.27"
},
"WhatsNew__v5.27--2": {
@ -6830,7 +6830,7 @@
"description": "Release notes for v5.28"
},
"WhatsNew__v5.29--1": {
"message": "¡Ahora, con menos ruido por búsquedas de mecanógrafos frenéticos o masticadores compulsivos! En la sala de espera, Desktop desactivará el audio automáticamente si hay ocho o más personas en la llamada.",
"message": "¡Ahora, con menos ruido por teclados frenéticos o masticadores compulsivos! En la sala de espera, Desktop desactivará el audio automáticamente si hay ocho o más personas en la llamada.",
"description": "Release notes for v5.29"
},
"WhatsNew__v5.31--1": {
@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "¡Modifica el panel de la izquierda y el área de búsqueda para dejar más espacio para tus actividades!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Indentifica quién es esa persona que no deja de teclear o suspirar durante la llamada en grupo. ¡Hemos introducido un indicador de ruidos!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "Hemos expandido la lista de lenguages soportados. ¡Gracias a traductores voluntari@s que lo hacen posible!",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Säädetty vasemman sivupalkin otsikkoa ja hakukenttää niin, että nyt on paljon enemmän tilaa puuhastella!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Voit jäljittää ryhmäpuheluista häiritsevän kovaäänisen kirjoittajan tai pureskelijan helposti olemme esitelleet uuden animoidun puheilmaisimen!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "Tuettujen kielten luettelo on laajentunut. Kiitämme vilpittömästi vapaaehtoiskääntäjiä, joiden ponnistelut mahdollistivat tämän.",
"description": "Release notes for v5.32"
}
}

View File

@ -5988,11 +5988,11 @@
"description": "aria-label for the 'next' button in the forward a message modal dialog"
},
"TimelineDateHeader--date-in-last-6-months": {
"message": "jjj, MMM J",
"message": "ddd D MMM",
"description": "Moment.js format for date headers in the message timeline, for dates <6 months old. See https://momentjs.com/docs/#/displaying/format/."
},
"TimelineDateHeader--date-older-than-6-months": {
"message": "MMM J, AAAA",
"message": "LL",
"description": "Moment.js format for date headers in the message timeline, for dates >=6 months old. See https://momentjs.com/docs/#/displaying/format/."
},
"MessageRequestWarning__learn-more": {
@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Repérez facilement le dactylo bruyant ou le gros mâcheur dans les appels de groupe nous avons introduit un nouvel indicateur de parole animé!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "La liste des langues prises en charge sest agrandie. Nous remercions sincèrement les traducteurs bénévoles dont les efforts ont rendu cela possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "סידרנו ברחבי המרווח בכותרת של החלונית השמאלית ובאזור החיפוש ועכשיו יש הרבה יותר מקום עבור פעילויות!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -2506,7 +2506,7 @@
"description": ""
},
"autoUpdateContactSupport": {
"message": "Kapcsolatfelvétel a támogatással",
"message": "kapcsolatfelvétel a támogatással",
"description": ""
},
"autoUpdateNewVersionMessage": {
@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Átrendeztük a baloldali sáv fejléce és keresője körüli területet, így rengeteg hely áll rendelkezésre a tevékenységek megjelenítéséhez.",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Találd meg könnyedén, hogy ki gépel túl zajosan vagy nyammog a mikrofonba egy-egy csoporthívás alatt - bevezettük az új, animált aktív beszéd-indikátort",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "A támogatott nyelvek listája kibővült. Hálásan köszönjük az önkéntes fordítóknak, akik munkája ezt lehetővé tette!",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Við stokkuðum upp bilin vinstra megin efst, og nú er svo mikið pláss fyrir virkni!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Abbiamo cambiato la spaziatura nell'intestazione del pannello di sinistra e nell'area di ricerca e ora c'è così tanto spazio per le attività!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Rintraccia facilmente il dattilografo errante o il masticatore pesante nelle chiamate di gruppo - abbiamo introdotto un nuovo indicatore animato di chi parla!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "La lista delle lingue supportate si è ampliata. Apprezziamo sinceramente i traduttori volontari i cui sforzi lo hanno reso possibile.",
"description": "Release notes for v5.32"
}
}

View File

@ -2122,15 +2122,15 @@
"description": "Shown if a message is very recent, less than 60 seconds old"
},
"timestampFormat_M": {
"message": "MMM D",
"message": "MMMD",
"description": "Timestamp format string for displaying month and day (but not the year) of a date within the current year, ex: use 'MMM D' for 'Aug 8', or 'D MMM' for '8 Aug'."
},
"timestampFormat__long__today": {
"message": "[Today] LT",
"message": "[今日] LT",
"description": "Timestamp format string for displaying \"Today\" and the time"
},
"timestampFormat__long__yesterday": {
"message": "[Yesterday] LT",
"message": "[昨日] LT",
"description": "Timestamp format string for displaying \"Yesterday\" and the time"
},
"messageBodyTooLong": {
@ -5988,7 +5988,7 @@
"description": "aria-label for the 'next' button in the forward a message modal dialog"
},
"TimelineDateHeader--date-in-last-6-months": {
"message": "MMMD日ddd",
"message": "MMMD日 (ddd)",
"description": "Moment.js format for date headers in the message timeline, for dates <6 months old. See https://momentjs.com/docs/#/displaying/format/."
},
"TimelineDateHeader--date-older-than-6-months": {
@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "左ペインのヘッダと検索エリアの間隔をシャッフルし、アクティビティのためのスペースがとても広くなりました。",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "新しい音声インジケータを導入しました。グループ通話で、大声でタイピングする人やクチャクチャする人を簡単に見つけることができます。",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "対応言語が増えました。ボランティア翻訳者の皆様のご尽力に心から感謝いたします。",
"description": "Release notes for v5.32"
}
}

View File

@ -180,7 +180,7 @@
"description": "One of the menu options available in the Avatar popup menu"
},
"avatarMenuChatColors": {
"message": "Chat Color",
"message": "ពណ៌នៃការសន្ទនា",
"description": "One of the menu options available in the Avatar popup menu"
},
"avatarMenuUpdateAvailable": {
@ -1038,7 +1038,7 @@
"description": "Shown in a quotation of a message containing a photo if no text was originally provided with that image"
},
"text": {
"message": "Text",
"message": "អក្សរ",
"description": "Label for the word 'text'"
},
"cannotUpdate": {
@ -1046,7 +1046,7 @@
"description": "Shown as the title of our update error dialogs on windows"
},
"muted": {
"message": "Muted",
"message": "បានបិទសម្លេង",
"description": "Shown in a button when a conversation is muted"
},
"mute": {
@ -1134,7 +1134,7 @@
"description": "Text shown in the confirmation dialog for deleting a message locally"
},
"deleteForEveryoneWarning": {
"message": "This message will be deleted for everyone in the conversation if theyre on a recent version of Signal. They will be able to see that you deleted a message.",
"message": "សារនេះ នឹងត្រូវលុបចោលសម្រាប់អ្នករាល់គ្នា នៅក្នុងការសន្ទនា បើសិនពួកគេកំពុងប្រើប្រាស់ Signal ជំនាន់ថ្មីៗ។ ពួកគេនឹងអាចឃើញថា អ្នកបានលុបសារមួយ។",
"description": "Text shown in the confirmation dialog for deleting a message for everyone"
},
"from": {
@ -1232,7 +1232,7 @@
"description": "This is a past tense, informational message. In other words, your secure session has been reset."
},
"ChatRefresh--notification": {
"message": "Chat session refreshed",
"message": "វគ្គជជែកត្រូវបានផ្ទុកឡើងវិញ",
"description": "Shown in timeline when a error happened, and the session was automatically reset."
},
"ChatRefresh--learnMore": {
@ -2834,7 +2834,7 @@
"description": "Label for recents emoji picker button"
},
"EmojiPicker__button--emoji": {
"message": "Emoji",
"message": "រូបតំណាងអារម្មណ៍",
"description": "Label for emoji emoji picker button"
},
"EmojiPicker__button--animal": {
@ -3470,7 +3470,7 @@
"description": "Shown as a button to let the user block a message request and report spam"
},
"MessageRequests--block-and-report-spam-success-toast": {
"message": "Reported as spam and blocked.",
"message": "បានរាយការណ៍សារឥតបានការ និងបានហាមឃាត់។",
"description": "Shown in a toast when you successfully block a user and report them as spam"
},
"MessageRequests--block-direct-confirm-title": {
@ -4036,7 +4036,7 @@
}
},
"EmojiButton__label": {
"message": "Emoji",
"message": "រូបតំណាងអារម្មណ៍",
"description": "Label for emoji button"
},
"ErrorModal--title": {
@ -5246,7 +5246,7 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--announcements--admin--you": {
"message": "You changed the group settings to only allow admins to send messages.",
"message": "អ្នកបានផ្លាស់ប្តូរការកំណត់ក្រុម ដើម្បីអនុញ្ញាតតែអ្នកគ្រប់គ្រងផ្ញើសារ។",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--announcements--admin--other": {
@ -5264,7 +5264,7 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--announcements--member--you": {
"message": "You changed the group settings to allow all members to send messages.",
"message": "អ្នកបានផ្លាស់ប្តូរការកំណត់ក្រុម ដើម្បីអនុញ្ញាតសមាជិកទាំងអស់ផ្ញើសារ។",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--announcements--member--other": {
@ -5304,27 +5304,27 @@
"description": "Shown on Migrate dialog to kick off the process"
},
"GroupV1--Migration--info--title": {
"message": "What are New Groups?",
"message": "តើអ្វីជាក្រុមថ្មី?",
"description": "Shown on Learn More popup after GV1 migration"
},
"GroupV1--Migration--migrate--title": {
"message": "Upgrade to New Group",
"message": "ដំឡើងទៅក្រុមថ្មី",
"description": "Shown on Migration popup after choosing to migrate group"
},
"GroupV1--Migration--info--summary": {
"message": "New Groups have features like @mentions and group admins, and will support more features in the future.",
"message": "ក្រុមថ្មី មានមុខងារដូចជា @រៀបរាប់ និងអ្នកគ្រប់គ្រងក្រុម ហើយនឹងគាំទ្រមុខងារបន្ថែមនៅពេលអនាគត។",
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--keep-history": {
"message": "All message history and media has been kept from before the upgrade.",
"message": "ប្រវត្តិសារ​ និងឯកសារមេឌាទាំងអស់ ត្រូវបានរក្សាទុកមុនពេលដំឡើង។",
"description": "Shown on Learn More popup after GV1 migration"
},
"GroupV1--Migration--migrate--keep-history": {
"message": "All message history and media will be kept from before the upgrade.",
"message": "ប្រវត្តិសារ​ និងឯកសារមេឌាទាំងអស់ នឹងត្រូវរក្សាទុកមុនពេលដំឡើង។",
"description": "Shown on Migration popup before GV1 migration"
},
"GroupV1--Migration--info--invited--you": {
"message": "You will need to accept an invite to join this group again, and will not receive group messages until you accept.",
"message": "អ្នកនឹងត្រូវយល់ព្រមការអញ្ជើញចួលរួមក្រុមនេះម្តងទៀត ហើយនឹងមិនអាចទទួលសារក្នុងក្រុម រហូតដល់អ្នកយល់ព្រម។",
"description": "Shown on Learn More popup after GV1 migration"
},
"GroupV1--Migration--info--invited--many": {
@ -5336,7 +5336,7 @@
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--removed--before--many": {
"message": "These members are not capable of joining New Groups, and will be removed from the group:",
"message": "សមាជិកក្រុមទាំងនេះ មិនអាចចូលរួមក្រុមថ្មី ហើយនឹងត្រូវលុបចេញពីក្រុម៖",
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--removed--before--one": {
@ -5408,11 +5408,11 @@
"description": "Generic next label"
},
"BadgeDialog__become-a-sustainer-button": {
"message": "Become a Sustainer",
"message": "ក្លាយជា Sustainer ម្នាក់",
"description": "In the badge dialog. This button is shown under sustainer badges, taking users to some instructions"
},
"BadgeSustainerInstructions__header": {
"message": "Become a Sustainer",
"message": "ក្លាយជា Sustainer ម្នាក់",
"description": "In the instructions for becoming a sustainer. The heading."
},
"BadgeSustainerInstructions__subheader": {
@ -5464,7 +5464,7 @@
"description": "Button text for removing as admin button in Group Contact Details modal"
},
"ContactModal--make-admin": {
"message": "Make admin",
"message": "តម្លើងជាអ្នកគ្រប់គ្រងក្រុម",
"description": "Button text for make admin button in Group Contact Details modal"
},
"ContactModal--make-admin-info": {
@ -5642,7 +5642,7 @@
"description": "In the conversation notifications settings, this is the sub-label for the mentions option"
},
"ConversationNotificationsSettings__mentions__select__always-notify": {
"message": "Always notify",
"message": "តែងតែជូនដំណឹង",
"description": "In the conversation notifications settings, this is the option that always notifies you for @mentions"
},
"ConversationNotificationsSettings__mentions__select__dont-notify-for-mentions-if-muted": {
@ -6000,7 +6000,7 @@
"description": "Shown on the message request warning. Clicking this button will open a dialog with more information"
},
"MessageRequestWarning__dialog__details": {
"message": "You have no groups in common with this person. Review requests carefully before accepting to avoid unwanted messages.",
"message": "អ្នកមិនមានក្រុមជាមួយបុគ្គលនេះទេ។ សូមពិនិត្យសំណើរអោយបានច្បាស់មុនពេលទទួល ដើម្បីចៀសវាងទទួលបានសារដែលអ្នកមិនចង់ទទួល។",
"description": "Shown in the message request warning dialog. Gives more information about message requests"
},
"MessageRequestWarning__dialog__learn-even-more": {
@ -6044,15 +6044,15 @@
"description": "Title for the contact name spoofing review dialog"
},
"ContactSpoofingReviewDialog__description": {
"message": "If you're not sure who the request is from, review the contacts below and take action.",
"message": "ប្រសិនបើអ្នកមិនច្បាស់ថាសំណើរនេះមកពីណាទេ សូមពិនិត្យលេខទំនាក់ទំនងនៅខាងក្រោមហើយចាត់វិធានការ",
"description": "Description for the contact spoofing review dialog"
},
"ContactSpoofingReviewDialog__possibly-unsafe-title": {
"message": "Request",
"message": "ស្នើសុំ",
"description": "Header in the contact spoofing review dialog, shown above the potentially-unsafe user"
},
"ContactSpoofingReviewDialog__safe-title": {
"message": "Your contact",
"message": "លេខទំនាក់ទំនងរបស់អ្នក",
"description": "Header in the contact spoofing review dialog, shown above the \"safe\" user"
},
"ContactSpoofingReviewDialog__group__title": {
@ -6132,7 +6132,7 @@
"description": "Displayed when delete-for-everyone has failed to send to all recipients"
},
"ChatColorPicker__delete--title": {
"message": "Delete color",
"message": "លុបពណ៌",
"description": "Confirm title for deleting custom color"
},
"ChatColorPicker__delete--message": {
@ -6150,15 +6150,15 @@
"description": "Modal title for the chat color picker and editor for all conversations"
},
"ChatColorPicker__menu-title": {
"message": "Chat Color",
"message": "ពណ៌នៃការសន្ទនា",
"description": "View title for the chat color picker and editor"
},
"ChatColorPicker__reset": {
"message": "Reset chat color",
"message": "កំណត់ពណ៌ការសន្ទនាឡើងវិញ",
"description": "Button label for resetting chat colors"
},
"ChatColorPicker__resetDefault": {
"message": "Reset Chat Colors",
"message": "កំណត់ពណ៌ការសន្ទនាឡើងវិញ",
"description": "Confirmation dialog title for resetting all chat colors or only the global default one"
},
"ChatColorPicker__resetAll": {
@ -6174,7 +6174,7 @@
"description": "Confirm button label for resetting chat colors"
},
"ChatColorPicker__confirm-reset-message": {
"message": "Would you like to override all chat colors?",
"message": "តើអ្នកចង់លុបពណ៌តំណាងការសន្ទនាទាំងអស់មែនទេ?",
"description": "Modal message text for confirming resetting of chat colors"
},
"ChatColorPicker__custom-color--label": {
@ -6182,7 +6182,7 @@
"description": "aria-label for custom color editor button"
},
"ChatColorPicker__sampleBubble1": {
"message": "Here's a preview of the chat color.",
"message": "នេះជាការពិនិត្យម្ដងទៀតនូវពណ៌នៃការសន្ទនា",
"description": "An example message bubble for selecting the chat color"
},
"ChatColorPicker__sampleBubble2": {
@ -6190,15 +6190,15 @@
"description": "An example message bubble for selecting the chat color"
},
"ChatColorPicker__sampleBubble3": {
"message": "The color is visible to only you.",
"message": "ពណ៌នេះមើលឃើញតែអ្នកប៉ុណ្ណោះ",
"description": "An example message bubble for selecting the chat color"
},
"ChatColorPicker__context--edit": {
"message": "Edit color",
"message": "កែរពណ៌",
"description": "Option in the custom color bubble context menu"
},
"ChatColorPicker__context--duplicate": {
"message": "Duplicate",
"message": "ស្ទួន",
"description": "Option in the custom color bubble context menu"
},
"ChatColorPicker__context--delete": {
@ -6230,7 +6230,7 @@
"description": "Text for an option in Disappearing Messages menu and Conversation Details Disappearing Messages setting when no user value is available"
},
"selectedCustomDisappearingTimeOption": {
"message": "Custom time",
"message": "ថេរវេលាកំណត់ខ្លួនឯង",
"description": "Text for an option in Conversation Details Disappearing Messages setting when user previously selected custom time"
},
"DisappearingTimeDialog__title": {
@ -6242,7 +6242,7 @@
"description": "Body for the custom disappearing message timeout dialog"
},
"DisappearingTimeDialog__set": {
"message": "Set",
"message": "កំណត់",
"description": "Text for the dialog button confirming the custom disappearing message timeout"
},
"DisappearingTimeDialog__seconds": {
@ -6266,11 +6266,11 @@
"description": "Name of the 'weeks' unit select for the custom disappearing message timeout dialog"
},
"settings__DisappearingMessages__footer": {
"message": "Set a default disappearing message timer for all new chats started by you.",
"message": "កំណត់ថេរវេលានៃការលុបសារសម្រាប់រាល់ការសន្ទនាថ្មីៗដែលចាប់ផ្ដើមដោយអ្នក",
"description": "Footer for the Disappearing Messages settings section"
},
"settings__DisappearingMessages__timer__label": {
"message": "Default timer for new chats",
"message": "ពេលវេលាតាមលំនាំដើមសម្រាប់ការសន្ទនាថ្មីៗ",
"description": "Label for the Disappearing Messages default timer setting"
},
"UniversalTimerNotification__text": {
@ -6308,11 +6308,11 @@
"description": "Popup selector title"
},
"MediaQualitySelector--standard-quality-title": {
"message": "Standard",
"message": "ស្ដង់ដារ",
"description": "Title for option for standard quality"
},
"MediaQualitySelector--standard-quality-description": {
"message": "Faster, less data",
"message": "លឿនជាងមុន ទិន្នន៏យតិចជាងមុន",
"description": "Description of standard quality selector"
},
"MediaQualitySelector--high-quality-title": {
@ -6320,7 +6320,7 @@
"description": "Title for option for high quality"
},
"MediaQualitySelector--high-quality-description": {
"message": "Slower, more data",
"message": "យឺតជាងមុន ទិន្នន័យច្រើនជាងមុន",
"description": "Description of high quality selector"
},
"MessageDetailsHeader--Failed": {
@ -6420,11 +6420,11 @@
"description": "Placeholder text for about input field"
},
"ProfileEditor--first-name": {
"message": "First Name (Required)",
"message": "ឈ្មោះ (ទាមទារ)",
"description": "Placeholder text for first name field"
},
"ProfileEditor--last-name": {
"message": "Last Name (Optional)",
"message": "ត្រកូល (ទាមទារ)",
"description": "Placeholder text for last name field"
},
"ConfirmDiscardDialog--discard": {
@ -6508,7 +6508,7 @@
"description": "Clickable text describing administrators of a group, used in the message an admin label"
},
"AvatarEditor--choose": {
"message": "Select an avatar",
"message": "ជ្រើសរើសរូបតំណាង",
"description": "Label for the avatar selector"
},
"AvatarColorPicker--choose": {
@ -6622,15 +6622,15 @@
"description": "Option for who can see my X select"
},
"Preferences__who-can--nobody": {
"message": "Nobody",
"message": "គ្មាននរណា",
"description": "Option for who can see my X select"
},
"Preferences--messaging": {
"message": "Messaging",
"message": "ការផ្ញើសារ",
"description": "Title for the messaging settings"
},
"Preferences--see-me": {
"message": "See my phone number",
"message": "មើលលេខទូរស័ព្ទរបស់ខ្ញុំ",
"description": "Label for the see my phone number setting"
},
"Preferences--find-me": {
@ -6696,7 +6696,7 @@
"description": "A button label for erasure of the crash reporter data after a recent crash and continuing to start the app"
},
"CustomizingPreferredReactions__title": {
"message": "Customize reactions",
"message": "ដាក់រូបប្រតិកម្មតាមចំនូលចិត្ត",
"description": "Shown in the header of the modal for customizing the preferred reactions. Also shown in the tooltip for the button that opens this modal."
},
"CustomizingPreferredReactions__subtitle": {
@ -6708,7 +6708,7 @@
"description": "Shown if there is an error when saving your preferred reaction settings. Should be very rare to see this message."
},
"MediaEditor__control--draw": {
"message": "Draw",
"message": "គូរ",
"description": "Label for the draw button in the media editor"
},
"MediaEditor__control--text": {
@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Pertvarkėme tarpus kairiojo polangio antraštėje ir paieškos srityje, ir dabar yra žymiai daugiau vietos veikloms!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Grupės pokalbiuose lengvai raskite garsiai rašančius klaviatūra ar čepsinčius asmenis pristatėme naują animuotą kalbėjimo indikatorių!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "Išplėstas palaikomų kalbų sąrašas. Nuoširdžiai dėkojame vertėjams-savanoriams, kurių pastangų dėka visa tai tapo įmanoma.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -1348,11 +1348,11 @@
"description": "The menu option shown in Signal iOS to add a new linked device"
},
"Install__scan-this-code": {
"message": "Scan deze code met de Signal app op je telefoon",
"message": "Scan deze code met de Signal-app op je telefoon",
"description": "Title of the device link screen. Also used as alt text for the QR code on the device link screen"
},
"Install__instructions__1": {
"message": "Open de Signal app op je telefoon",
"message": "Open de Signal-app op je telefoon",
"description": "Instructions on the device link screen"
},
"Install__instructions__2": {
@ -1406,7 +1406,7 @@
"description": "Shown on the install screen. Link takes users to a support page"
},
"Install__choose-device-name__description": {
"message": "Je zult deze naam zien in het menu Gekoppelde apparaten in de Signal app op je telefoon.",
"message": "Je zult deze naam zien in het menu Gekoppelde apparaten in de Signal-app op je telefoon.",
"description": "The subheader shown on the 'choose device name' screen in the device linking process"
},
"Install__choose-device-name__placeholder": {
@ -2486,7 +2486,7 @@
"description": "When a person inputs a number that is invalid"
},
"unlinkedWarning": {
"message": "Klik hier om Signal-Desktop te koppelen aan de Signal app op je telefoon. Dit is nodig om Signal-Desktop te kunnen gebruiken.",
"message": "Klik hier om Signal-Desktop te koppelen aan de Signal-app op je telefoon. Dit is nodig om Signal-Desktop te kunnen gebruiken.",
"description": ""
},
"unlinked": {
@ -4060,7 +4060,7 @@
"description": "Shown in toast when you attempt to forward a message to an announcement only group"
},
"GroupV2--add--missing-capability": {
"message": "Deze personen kunnen niet aan de groep worden toegevoegd totdat ze hun Signal app hebben bijgewerkt.",
"message": "Deze personen kunnen niet aan de groep worden toegevoegd totdat ze hun Signal-app hebben bijgewerkt.",
"description": "Shown in a confirmation dialog when members who cannot view announcement only group cannot be added"
},
"GroupV2--cannot-start-group-call": {
@ -5420,7 +5420,7 @@
"description": "In the instructions for becoming a sustainer. The subheading."
},
"BadgeSustainerInstructions__instructions__1": {
"message": "Open de Signal app op je telefoon",
"message": "Open de Signal-app op je telefoon",
"description": "In the instructions for becoming a sustainer. First instruction."
},
"BadgeSustainerInstructions__instructions__2": {
@ -5440,7 +5440,7 @@
"description": "Aria label for file attachment button in composition area"
},
"CompositionArea--sms-only__title": {
"message": "Deze persoon maakt geen gebruik van de Signal app",
"message": "Deze persoon maakt geen gebruik van de Signal-app",
"description": "Title for the composition area for the SMS-only contact"
},
"CompositionArea--sms-only__body": {
@ -6570,7 +6570,7 @@
"description": "Title for the generate link previews setting"
},
"Preferences__link-previews--description": {
"message": "Open de Signal app op je mobiele telefoon en navigeer naar Instellingen > Gesprekken om deze instellingen te veranderen",
"message": "Open de Signal-app op je mobiele telefoon en navigeer naar Instellingen > Gesprekken om deze instellingen te veranderen",
"description": "Description for the generate link previews setting"
},
"Preferences--advanced": {
@ -6610,7 +6610,7 @@
"description": "Title for the 'who can do X' setting"
},
"Preferences__privacy--description": {
"message": "Open de Signal app op je mobiele telefoon en navigeer naar Instellingen > Privacy om deze instellingen te veranderen",
"message": "Open de Signal-app op je mobiele telefoon en navigeer naar Instellingen > Privacy om deze instellingen te veranderen",
"description": "Description for the 'who can do X' setting"
},
"Preferences__who-can--everybody": {
@ -6676,7 +6676,7 @@
"description": "First line of the dialog displayed when Windows installer can't close application automatically and needs user intervention to complete the installation."
},
"NSIS__retry-dialog--second-line": {
"message": "Sluit zelf de Signal app en klik vervolgens op Opnieuw proberen.",
"message": "Sluit zelf de Signal-app en klik vervolgens op Opnieuw proberen.",
"description": "Second line of the dialog displayed when Windows installer can't close application automatically and needs user intervention to complete the installation."
},
"CrashReportDialog__title": {
@ -6808,7 +6808,7 @@
"description": "Release notes for v5.26"
},
"WhatsNew__macos-m1": {
"message": "Signal-Desktop is nu geoptimaliseerd voor Apples M1-chip die in hun nieuwere computers wordt gebruikt. Als je een van deze nieuwe apparaten gebruikt, zou de Signal app vanaf nu veel sneller moeten zijn. Veel dank aan $dennis$ voor zijn harde werk aan deze verbetering!",
"message": "Signal-Desktop is nu geoptimaliseerd voor Apples M1-chip die in hun nieuwere computers wordt gebruikt. Als je een van deze nieuwe apparaten gebruikt, zou de Signal-app vanaf nu veel sneller moeten zijn. Veel dank aan $dennis$ voor zijn harde werk aan deze verbetering!",
"description": "Release note for the macOS M1 release",
"placeholders": {
"dennis": {
@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "We hebben de ruimte in het linker paneel beter ingedeeld.",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Met een nieuw spreker-pictogram kun je vanaf nu in een groepsoproep duidelijk zien wie er op dit moment spreekt, of wie er lawaai maakt.",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "Signal is nu in nog meer talen beschikbaar, waaronder Fries! Veel dank aan de vertalers die dit mogelijk maken.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -1852,7 +1852,7 @@
"description": "Shown as the description for the modal that requests screen recording permissions"
},
"calling__presenting--permission-instruction-step3": {
"message": "Zaznać pole wyboru po prawej stronie Signal. Jeśli nie widzisz aplikacji Signal na liście, kliknij +, aby ką dodać.",
"message": "Zaznacz pole wyboru obok Signal. Jeśli nie widzisz aplikacji Signal na liście, kliknij + aby ją dodać.",
"description": "Shown as the description for the modal that requests screen recording permissions"
},
"calling__presenting--permission-open": {
@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Popracowaliśmy trochę nad nagłówkiem lewego panelu i polem wyszukiwania, aby dać mu więcej miejsca.",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Teraz z łatwością znajdziesz głośnych stukaczy w klawiaturę i jeszcze głośniejszych przeżuwaczy - wprowadziliśmy do połączeń grupowych nowy, animowany wskaźnik osób mówiących.",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "Lista dostępnych języków została rozszerzona. Jesteśmy wdzięczni tłumaczom ochotnikom, którzy to umożliwili.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "O cabeçalho estava muito apertado na nossa barra lateral. Encaixamos as peças com maior folga. Agora há muito espaço para mais atividades!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Estava embaralhado em torno do espaçamento no cabeçalho do painel esquerdo e da área de pesquisa mas, agora há muito espaço para atividades! ",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Acompanhe facilmente aquele digitador barulhento errante ou mastigador pesado nas chamadas de grupo, introduzimos um novo indicador de fala animado! ",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "A lista de idiomas suportados foi expandida. Agradecemos sinceramente aos tradutores voluntários cujos esforços tornaram isso possível. ",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Am modificat spațierea ce tine de căutare și profil a panoului din stânga, iar acum există mai mult spațiu pentru alte activități.",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Acum poți depista cu ușurință pe cei ce tastează sau mestecă gălăgios în apelurile de grup, am introdus un nou indicator animat de vorbire!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "Lista de limbi în care este tradusă aplicația s-a extins. Apreciem cu sinceritate traducătorii voluntari ale căror eforturi au făcut posibil acest lucru.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Мы переместили свободное место в заголовке и поиске на панели слева.",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Легко найдите того, кто громко печатает в групповых звонках — мы добавили новый анимированный индикатор говорящего!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "Список поддерживаемых языков расширился. Мы искренне ценим переводчиков-волонтёров, чьи усилия сделали это возможным.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Pendlovať okolo medzier v hlavičke ľavého panela a oblasti vyhľadávania a teraz je tu toľko priestoru na aktivity!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "V skupinových hovoroch jednoducho vystopujte tú pochabú hlasnú pisárku alebo silného žvanila zaviedli sme nový animovaný indikátor rozprávania!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "Zoznam podporovaných jazykov sa rozšíril. Úprimne si vážime dobrovoľných prekladateľov, ktorých úsilie to umožnilo.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "U punua me hapësirën te kryet e kuadratit majtas dhe fushën e kërkimeve dhe tani ka boll vend për veprimtaritë!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "Lista e gjuhëve të mbuluara është zgjeruar. Çmojmë sinqerisht përkthyesit vullnetarë, përpjekjet e të cilëve kanë bërë të mundur këtë gjë.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -790,7 +790,7 @@
"description": "Aria label for clear search button"
},
"searchIn": {
"message": "Sök chatt",
"message": "Sök i chatt",
"description": "Shown in the search box before text is entered when searching in a specific conversation"
},
"noSearchResults": {
@ -1046,15 +1046,15 @@
"description": "Shown as the title of our update error dialogs on windows"
},
"muted": {
"message": "Ljud av",
"message": "Tystad",
"description": "Shown in a button when a conversation is muted"
},
"mute": {
"message": "Ljud av",
"message": "Tysta",
"description": "Shown in a button when a conversation is unmuted and can be muted"
},
"cannotUpdateDetail": {
"message": "Signal couldn't update. $retry$ or visit $url$ to install it manually. Then, $support$ about this problem",
"message": "Det gick inte att uppdatera Signal. $retry$ eller besök $url$ för att installera det manuellt. Därefter, $support$ om detta problem",
"description": "Shown if a general error happened while trying to install update package",
"placeholders": {
"retry": {
@ -1510,7 +1510,7 @@
"description": "Button tooltip label for turning on the camera"
},
"calling__button--audio__label": {
"message": "Ljud av",
"message": "Tysta",
"description": "Label under the audio button"
},
"calling__button--audio-disabled": {
@ -2502,11 +2502,11 @@
"description": ""
},
"autoUpdateRetry": {
"message": "Retry update",
"message": "Försök att uppdatera igen",
"description": ""
},
"autoUpdateContactSupport": {
"message": "contact support",
"message": "kontakta supporten",
"description": ""
},
"autoUpdateNewVersionMessage": {
@ -5992,7 +5992,7 @@
"description": "Moment.js format for date headers in the message timeline, for dates <6 months old. See https://momentjs.com/docs/#/displaying/format/."
},
"TimelineDateHeader--date-older-than-6-months": {
"message": "MMM D, YYYY",
"message": "MMM D, ÅÅÅÅ",
"description": "Moment.js format for date headers in the message timeline, for dates >=6 months old. See https://momentjs.com/docs/#/displaying/format/."
},
"MessageRequestWarning__learn-more": {
@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "Listan över språk som stöds har utökats. Vi uppskattar uppriktigt de frivilliga översättare vars ansträngningar gjorde detta möjligt.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Погрались з місцем у лівій верхній частині вікна та у зоні пошуку, і тепер там стільки місця для різних речей!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Легко знайдіть у групових викликах того, хто гучно друкує чи жує — ми впровадили новий анімований індикатор особи, що розмовляє!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "Перелік мов, які підтримуються, розширено. Ми щиро вдячні перекладачам-волонтерам, чиї зусилля зробили це можливим.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "Shuffled around the spacing in the left pane header and search area and now there is so much room for activities!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "Easily track down that errant loud typist or heavy chewer in group calls - we've introduced a new animated speaking indicator!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "The list of supported languages has expanded. We sincerely appreciate the volunteer translators whose efforts made this possible.",
"description": "Release notes for v5.32"
}
}

View File

@ -6840,5 +6840,13 @@
"WhatsNew__v5.31--2": {
"message": "在左窗格標題和搜尋區域間距的任何地方,現在有很多活動空間!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {
"message": "在群組通話中輕鬆追踪錯誤的大聲打字員或多話碎碎念的人 - 我們引入了一個新的動畫說話指示器!",
"description": "Release notes for v5.32"
},
"WhatsNew__v5.32--2": {
"message": "支援的語言清單已增加。 我們衷心感謝那些努力使這一切成為可能的翻譯志願者。",
"description": "Release notes for v5.32"
}
}

View File

@ -4,7 +4,7 @@
"description": "Private messaging from your desktop",
"desktopName": "signal.desktop",
"repository": "https://github.com/signalapp/Signal-Desktop.git",
"version": "5.32.0-beta.1",
"version": "5.32.0",
"license": "AGPL-3.0-only",
"author": {
"name": "Open Whisper Systems",
@ -128,7 +128,7 @@
"mkdirp": "0.5.2",
"moment": "2.29.1",
"mustache": "2.3.0",
"node-fetch": "2.6.1",
"node-fetch": "2.6.7",
"node-forge": "0.10.0",
"normalize-path": "3.0.0",
"p-map": "2.1.0",

View File

@ -1,90 +0,0 @@
diff --git a/node_modules/node-fetch/lib/index.es.js b/node_modules/node-fetch/lib/index.es.js
index 61906c9..f09f5bd 100644
--- a/node_modules/node-fetch/lib/index.es.js
+++ b/node_modules/node-fetch/lib/index.es.js
@@ -1231,6 +1231,9 @@ class Request {
this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;
this.counter = init.counter || input.counter || 0;
this.agent = init.agent || input.agent;
+
+ // Custom Signal Desktop option
+ this.ca = init.ca || input.ca;
}
get method() {
@@ -1350,7 +1353,7 @@ function getNodeRequestOptions(request) {
method: request.method,
headers: exportNodeCompatibleHeaders(headers),
agent
- });
+ }, request.ca ? { ca: request.ca } : {});
}
/**
@@ -1514,7 +1517,8 @@ function fetch(url, opts) {
body: request.body,
signal: request.signal,
timeout: request.timeout,
- size: request.size
+ size: request.size,
+ ca: request.ca,
};
// HTTP-redirect fetch step 9
diff --git a/node_modules/node-fetch/lib/index.js b/node_modules/node-fetch/lib/index.js
index 4b241bf..23fa901 100644
--- a/node_modules/node-fetch/lib/index.js
+++ b/node_modules/node-fetch/lib/index.js
@@ -1235,6 +1235,9 @@ class Request {
this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;
this.counter = init.counter || input.counter || 0;
this.agent = init.agent || input.agent;
+
+ // Custom Signal Desktop option
+ this.ca = init.ca || input.ca;
}
get method() {
@@ -1354,7 +1357,7 @@ function getNodeRequestOptions(request) {
method: request.method,
headers: exportNodeCompatibleHeaders(headers),
agent
- });
+ }, request.ca ? { ca: request.ca } : {});
}
/**
@@ -1518,7 +1521,8 @@ function fetch(url, opts) {
body: request.body,
signal: request.signal,
timeout: request.timeout,
- size: request.size
+ size: request.size,
+ ca: request.ca,
};
// HTTP-redirect fetch step 9
diff --git a/node_modules/node-fetch/lib/index.mjs b/node_modules/node-fetch/lib/index.mjs
index ecf59af..b723a5c 100644
--- a/node_modules/node-fetch/lib/index.mjs
+++ b/node_modules/node-fetch/lib/index.mjs
@@ -1229,6 +1229,9 @@ class Request {
this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;
this.counter = init.counter || input.counter || 0;
this.agent = init.agent || input.agent;
+
+ // Custom Signal Desktop option
+ this.ca = init.ca || input.ca;
}
get method() {
@@ -1512,7 +1515,8 @@ function fetch(url, opts) {
body: request.body,
signal: request.signal,
timeout: request.timeout,
- size: request.size
+ size: request.size,
+ ca: request.ca,
};
// HTTP-redirect fetch step 9

View File

@ -0,0 +1,165 @@
diff --git a/node_modules/node-fetch/lib/index.es.js b/node_modules/node-fetch/lib/index.es.js
index 4852f7c..8a6bee9 100644
--- a/node_modules/node-fetch/lib/index.es.js
+++ b/node_modules/node-fetch/lib/index.es.js
@@ -1253,6 +1253,9 @@ class Request {
this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;
this.counter = init.counter || input.counter || 0;
this.agent = init.agent || input.agent;
+
+ // Custom Signal Desktop option
+ this.ca = init.ca || input.ca;
}
get method() {
@@ -1372,7 +1375,7 @@ function getNodeRequestOptions(request) {
method: request.method,
headers: exportNodeCompatibleHeaders(headers),
agent
- });
+ }, request.ca ? { ca: request.ca } : {});
}
/**
@@ -1406,11 +1409,20 @@ const URL$1 = Url.URL || whatwgUrl.URL;
// fix an issue where "PassThrough", "resolve" aren't a named export for node <10
const PassThrough$1 = Stream.PassThrough;
+function isSignalVoipUrl(hostname) {
+ return hostname.endsWith('.voip.signal.org');
+}
+
const isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {
const orig = new URL$1(original).hostname;
const dest = new URL$1(destination).hostname;
- return orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);
+ return (
+ orig === dest ||
+ (orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest)) ||
+ // An additional check to keep Authorization for Signal's voip URLs.
+ (isSignalVoipUrl(orig) && isSignalVoipUrl(dest))
+ );
};
/**
@@ -1556,7 +1568,8 @@ function fetch(url, opts) {
body: request.body,
signal: request.signal,
timeout: request.timeout,
- size: request.size
+ size: request.size,
+ ca: request.ca,
};
if (!isDomainOrSubdomain(request.url, locationURL)) {
diff --git a/node_modules/node-fetch/lib/index.js b/node_modules/node-fetch/lib/index.js
index e5b04f1..5153530 100644
--- a/node_modules/node-fetch/lib/index.js
+++ b/node_modules/node-fetch/lib/index.js
@@ -1257,6 +1257,9 @@ class Request {
this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;
this.counter = init.counter || input.counter || 0;
this.agent = init.agent || input.agent;
+
+ // Custom Signal Desktop option
+ this.ca = init.ca || input.ca;
}
get method() {
@@ -1376,7 +1379,7 @@ function getNodeRequestOptions(request) {
method: request.method,
headers: exportNodeCompatibleHeaders(headers),
agent
- });
+ }, request.ca ? { ca: request.ca } : {});
}
/**
@@ -1410,11 +1413,20 @@ const URL$1 = Url.URL || whatwgUrl.URL;
// fix an issue where "PassThrough", "resolve" aren't a named export for node <10
const PassThrough$1 = Stream.PassThrough;
+function isSignalVoipUrl(hostname) {
+ return hostname.endsWith('.voip.signal.org');
+}
+
const isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {
const orig = new URL$1(original).hostname;
const dest = new URL$1(destination).hostname;
- return orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);
+ return (
+ orig === dest ||
+ (orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest)) ||
+ // An additional check to keep Authorization for Signal's voip URLs.
+ (isSignalVoipUrl(orig) && isSignalVoipUrl(dest))
+ );
};
/**
@@ -1560,7 +1572,8 @@ function fetch(url, opts) {
body: request.body,
signal: request.signal,
timeout: request.timeout,
- size: request.size
+ size: request.size,
+ ca: request.ca,
};
if (!isDomainOrSubdomain(request.url, locationURL)) {
diff --git a/node_modules/node-fetch/lib/index.mjs b/node_modules/node-fetch/lib/index.mjs
index 49ee05e..ec12540 100644
--- a/node_modules/node-fetch/lib/index.mjs
+++ b/node_modules/node-fetch/lib/index.mjs
@@ -1251,6 +1251,9 @@ class Request {
this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;
this.counter = init.counter || input.counter || 0;
this.agent = init.agent || input.agent;
+
+ // Custom Signal Desktop option
+ this.ca = init.ca || input.ca;
}
get method() {
@@ -1370,7 +1373,7 @@ function getNodeRequestOptions(request) {
method: request.method,
headers: exportNodeCompatibleHeaders(headers),
agent
- });
+ }, request.ca ? { ca: request.ca } : {});
}
/**
@@ -1404,11 +1407,20 @@ const URL$1 = Url.URL || whatwgUrl.URL;
// fix an issue where "PassThrough", "resolve" aren't a named export for node <10
const PassThrough$1 = Stream.PassThrough;
+function isSignalVoipUrl(hostname) {
+ return hostname.endsWith('.voip.signal.org');
+}
+
const isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {
const orig = new URL$1(original).hostname;
const dest = new URL$1(destination).hostname;
- return orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);
+ return (
+ orig === dest ||
+ (orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest)) ||
+ // An additional check to keep Authorization for Signal's voip URLs.
+ (isSignalVoipUrl(orig) && isSignalVoipUrl(dest))
+ );
};
/**
@@ -1554,7 +1566,8 @@ function fetch(url, opts) {
body: request.body,
signal: request.signal,
timeout: request.timeout,
- size: request.size
+ size: request.size,
+ ca: request.ca,
};
if (!isDomainOrSubdomain(request.url, locationURL)) {

View File

@ -12,17 +12,18 @@ export type ConfigKeyType =
| 'desktop.disableGV1'
| 'desktop.groupCallOutboundRing'
| 'desktop.internalUser'
| 'desktop.messageCleanup'
| 'desktop.mandatoryProfileSharing'
| 'desktop.mediaQuality.levels'
| 'desktop.messageCleanup'
| 'desktop.messageRequests'
| 'desktop.retryReceiptLifespan'
| 'desktop.retryRespondMaxAge'
| 'desktop.senderKey.send'
| 'desktop.senderKey.retry'
| 'desktop.senderKey.send'
| 'desktop.senderKeyMaxAge'
| 'desktop.sendSenderKey3'
| 'desktop.showUserBadges2'
| 'desktop.showUserBadges.beta'
| 'desktop.showUserBadges2'
| 'desktop.usernames'
| 'global.calling.maxGroupCallRingSize'
| 'global.groupsv2.groupSizeHardLimit'

View File

@ -114,6 +114,7 @@ function renderCallingNotificationButton(
props: Readonly<PropsType>
): ReactNode {
const {
activeCallConversationId,
conversationId,
i18n,
nextItem,
@ -135,16 +136,23 @@ function renderCallingNotificationButton(
buttonText = wasIncoming
? i18n('calling__call-back')
: i18n('calling__call-again');
onClick = () => {
startCallingLobby({ conversationId, isVideoCall: wasVideoCall });
};
if (activeCallConversationId) {
disabledTooltipText = i18n(
'calling__call-notification__button__in-another-call-tooltip'
);
onClick = noop;
} else {
onClick = () => {
startCallingLobby({ conversationId, isVideoCall: wasVideoCall });
};
}
break;
}
case CallMode.Group: {
if (props.ended) {
return null;
}
const { activeCallConversationId, deviceCount, maxDevices } = props;
const { deviceCount, maxDevices } = props;
if (activeCallConversationId) {
if (activeCallConversationId === conversationId) {
buttonText = i18n('calling__return');

View File

@ -41,6 +41,11 @@ import { SignalService as Proto } from '../protobuf';
import * as log from '../logging/log';
import { singleProtoJobQueue } from '../jobs/singleProtoJobQueue';
import * as Errors from '../types/errors';
import type {
ExtendedStorageID,
RemoteRecord,
UnknownRecord,
} from '../types/StorageService.d';
type IManifestRecordIdentifier = Proto.ManifestRecord.IIdentifier;
@ -80,18 +85,10 @@ function redactStorageID(
return `${version ?? '?'}:${storageID.substring(0, 3)}${convoId}`;
}
type RemoteRecord = {
itemType: number;
storageID: string;
storageVersion?: number;
};
type UnknownRecord = RemoteRecord;
function unknownRecordToRedactedID({
function redactExtendedStorageID({
storageID,
storageVersion,
}: UnknownRecord): string {
}: ExtendedStorageID): string {
return redactStorageID(storageID, storageVersion);
}
@ -181,15 +178,25 @@ async function generateManifest(
const validationError = conversation.validate();
if (validationError) {
if (conversation.get('storageID')) {
log.warn(
'storageService.generateManifest: skipping contact',
conversation.idForLogging(),
'due to local validation error',
validationError
);
conversation.unset('storageID');
const droppedID = conversation.get('storageID');
const droppedVersion = conversation.get('storageVersion');
if (!droppedID) {
continue;
}
const recordID = redactStorageID(
droppedID,
droppedVersion,
conversation
);
log.warn(
`storageService.generateManifest(${version}): ` +
`skipping contact=${recordID} ` +
`due to local validation error=${validationError}`
);
conversation.unset('storageID');
deleteKeys.push(Bytes.fromBase64(droppedID));
continue;
}
@ -280,7 +287,7 @@ async function generateManifest(
window.storage.get('storage-service-unknown-records') || []
).filter((record: UnknownRecord) => !validRecordTypes.has(record.itemType));
const redactedUnknowns = unknownRecordsArray.map(unknownRecordToRedactedID);
const redactedUnknowns = unknownRecordsArray.map(redactExtendedStorageID);
log.info(
`storageService.upload(${version}): adding unknown ` +
@ -302,7 +309,7 @@ async function generateManifest(
'storage-service-error-records',
new Array<UnknownRecord>()
);
const redactedErrors = recordsWithErrors.map(unknownRecordToRedactedID);
const redactedErrors = recordsWithErrors.map(redactExtendedStorageID);
log.info(
`storageService.upload(${version}): adding error ` +
@ -319,6 +326,24 @@ async function generateManifest(
manifestRecordKeys.add(identifier);
});
// Delete keys that we wanted to drop during the processing of the manifest.
const storedPendingDeletes = window.storage.get(
'storage-service-pending-deletes',
[]
);
const redactedPendingDeletes = storedPendingDeletes.map(
redactExtendedStorageID
);
log.info(
`storageService.upload(${version}): ` +
`deleting extra keys=${JSON.stringify(redactedPendingDeletes)} ` +
`count=${redactedPendingDeletes.length}`
);
for (const { storageID } of storedPendingDeletes) {
deleteKeys.push(Bytes.fromBase64(storageID));
}
// Validate before writing
const rawDuplicates = new Set();
@ -715,6 +740,7 @@ type MergeableItemType = {
type MergedRecordType = UnknownRecord & {
hasConflict: boolean;
shouldDrop: boolean;
hasError: boolean;
isUnsupported: boolean;
};
@ -780,6 +806,7 @@ async function mergeRecord(
`storageService.merge(${redactedID}): merged item type=${itemType} ` +
`oldID=${oldID} ` +
`conflict=${mergeResult.hasConflict} ` +
`shouldDrop=${Boolean(mergeResult.shouldDrop)} ` +
`details=${JSON.stringify(mergeResult.details)}`
);
} catch (err) {
@ -794,6 +821,7 @@ async function mergeRecord(
return {
hasConflict: mergeResult.hasConflict,
shouldDrop: Boolean(mergeResult.shouldDrop),
hasError,
isUnsupported,
itemType,
@ -948,6 +976,8 @@ async function processRemoteRecords(
}
);
const missingKeys = new Set<string>(remoteOnlyRecords.keys());
const storageItems = Proto.StorageItems.decode(storageItemsBuffer);
const decryptedStorageItems = await pMap(
@ -967,6 +997,7 @@ async function processRemoteRecords(
}
const base64ItemID = Bytes.toBase64(key);
missingKeys.delete(base64ItemID);
const storageItemKey = deriveStorageItemKey(storageKey, base64ItemID);
@ -1005,6 +1036,18 @@ async function processRemoteRecords(
{ concurrency: 5 }
);
const redactedMissingKeys = Array.from(missingKeys).map(id =>
redactStorageID(id, storageVersion)
);
log.info(
`storageService.process(${storageVersion}): missing remote ` +
`keys=${JSON.stringify(redactedMissingKeys)} ` +
`count=${missingKeys.size}`
);
const droppedKeys = new Set<string>();
// Merge Account records last since it contains the pinned conversations
// and we need all other records merged first before we can find the pinned
// records in our db
@ -1062,15 +1105,26 @@ async function processRemoteRecords(
if (mergedRecord.hasConflict) {
conflictCount += 1;
}
if (mergedRecord.shouldDrop) {
droppedKeys.add(mergedRecord.storageID);
}
});
const redactedDroppedKeys = Array.from(droppedKeys.values()).map(key =>
redactStorageID(key, storageVersion)
);
log.info(
`storageService.process(${storageVersion}): ` +
`dropped keys=${JSON.stringify(redactedDroppedKeys)} ` +
`count=${redactedDroppedKeys.length}`
);
// Filter out all the unknown records we're already supporting
const newUnknownRecords = Array.from(unknownRecords.values()).filter(
(record: UnknownRecord) => !validRecordTypes.has(record.itemType)
);
const redactedNewUnknowns = newUnknownRecords.map(
unknownRecordToRedactedID
);
const redactedNewUnknowns = newUnknownRecords.map(redactExtendedStorageID);
log.info(
`storageService.process(${storageVersion}): ` +
@ -1083,7 +1137,7 @@ async function processRemoteRecords(
);
const redactedErrorRecords = newRecordsWithErrors.map(
unknownRecordToRedactedID
redactExtendedStorageID
);
log.info(
`storageService.process(${storageVersion}): ` +
@ -1098,6 +1152,20 @@ async function processRemoteRecords(
newRecordsWithErrors
);
// Store/overwrite keys pending deletion, but use them only when we have to
// upload a new manifest to avoid oscillation.
const pendingDeletes = [...missingKeys, ...droppedKeys].map(storageID => ({
storageID,
storageVersion,
}));
const redactedPendingDeletes = pendingDeletes.map(redactExtendedStorageID);
log.info(
`storageService.process(${storageVersion}): ` +
`pending deletes=${JSON.stringify(redactedPendingDeletes)} ` +
`count=${redactedPendingDeletes.length}`
);
await window.storage.put('storage-service-pending-deletes', pendingDeletes);
if (conflictCount === 0) {
conflictBackOff.reset();
}
@ -1111,6 +1179,7 @@ async function processRemoteRecords(
);
}
// conflictCount
return 0;
}
@ -1249,10 +1318,16 @@ async function upload(fromSync = false): Promise<void> {
const localManifestVersion = window.storage.get('manifestVersion', 0);
const version = Number(localManifestVersion) + 1;
log.info('storageService.upload: will update to manifest version', version);
log.info(
`storageService.upload(${version}): will update to manifest version`
);
try {
const generatedManifest = await generateManifest(version, previousManifest);
const generatedManifest = await generateManifest(
version,
previousManifest,
false
);
await uploadManifest(version, generatedManifest);
} catch (err) {
if (err.code === 409) {
@ -1264,7 +1339,10 @@ async function upload(fromSync = false): Promise<void> {
setTimeout(runStorageServiceSyncJob);
return;
}
log.error('storageService.upload', Errors.toLogFormat(err));
log.error(
`storageService.upload(${version}): error`,
Errors.toLogFormat(err)
);
}
}

View File

@ -36,11 +36,9 @@ import {
import { ourProfileKeyService } from './ourProfileKey';
import { isGroupV1, isGroupV2 } from '../util/whatTypeOfConversation';
import { isValidUuid } from '../types/UUID';
import type { ConversationAttributesType } from '../model-types.d';
import * as preferredReactionEmoji from '../reactions/preferredReactionEmoji';
import { SignalService as Proto } from '../protobuf';
import * as log from '../logging/log';
import type { WhatIsThis } from '../window.d';
const { updateConversation } = dataInterface;
@ -52,6 +50,7 @@ type RecordClass =
export type MergeResultType = Readonly<{
hasConflict: boolean;
shouldDrop?: boolean;
conversation?: ConversationModel;
oldStorageID?: string;
oldStorageVersion?: number;
@ -555,6 +554,21 @@ export async function mergeGroupV1Record(
const oldStorageID = conversation.get('storageID');
const oldStorageVersion = conversation.get('storageVersion');
if (!isGroupV1(conversation.attributes)) {
details.push('GV1 record for GV2 group, dropping');
return {
// Note: conflicts cause immediate uploads, but we should upload
// only in response to user's action.
hasConflict: false,
shouldDrop: true,
conversation,
oldStorageID,
oldStorageVersion,
details,
};
}
conversation.set({
isArchived: Boolean(groupV1Record.archived),
markedUnread: Boolean(groupV1Record.markedUnread),
@ -759,25 +773,11 @@ export async function mergeContactRecord(
// All contacts must have UUID
if (!uuid) {
return { hasConflict: false, details: ['no uuid'] };
return { hasConflict: false, shouldDrop: true, details: ['no uuid'] };
}
if (!isValidUuid(uuid)) {
return { hasConflict: false, details: ['invalid uuid'] };
}
const c = new window.Whisper.Conversation({
e164,
uuid,
type: 'private',
} as Partial<ConversationAttributesType> as WhatIsThis);
const validationError = c.validate();
if (validationError) {
return {
hasConflict: false,
details: [`validation error=${validationError}`],
};
return { hasConflict: false, shouldDrop: true, details: ['invalid uuid'] };
}
const id = window.ConversationController.ensureContactIds({

View File

@ -951,6 +951,7 @@ export function isMissingRequiredProfileSharing(
conversation: ConversationType
): boolean {
const doesConversationRequireIt =
!conversation.isMe &&
!conversation.left &&
(isGroupV1(conversation) || isDirectConversation(conversation));

View File

@ -1124,12 +1124,15 @@ export function getPropsForCallHistory(
throw new Error('getPropsForCallHistory: Missing callHistoryDetails');
}
const activeCallConversationId = activeCall?.conversationId;
switch (callHistoryDetails.callMode) {
// Old messages weren't saved with a call mode.
case undefined:
case CallMode.Direct:
return {
...callHistoryDetails,
activeCallConversationId,
callMode: CallMode.Direct,
};
case CallMode.Group: {
@ -1150,7 +1153,7 @@ export function getPropsForCallHistory(
const deviceCount = call?.peekInfo?.deviceCount ?? 0;
return {
activeCallConversationId: activeCall?.conversationId,
activeCallConversationId,
callMode: CallMode.Group,
conversationId,
creator,

View File

@ -3,19 +3,36 @@
import { assert } from 'chai';
import { v4 as generateUuid } from 'uuid';
import * as sinon from 'sinon';
import type { LoggerType } from '../../types/Logging';
import { normalizeUuid } from '../../util/normalizeUuid';
describe('normalizeUuid', () => {
it('converts uuid to lower case', () => {
const uuid = generateUuid();
assert.strictEqual(normalizeUuid(uuid, 'context 1'), uuid);
assert.strictEqual(normalizeUuid(uuid.toUpperCase(), 'context 2'), uuid);
let warn: sinon.SinonStub;
let logger: Pick<LoggerType, 'warn'>;
beforeEach(() => {
warn = sinon.stub();
logger = { warn };
});
it("throws if passed a string that's not a UUID", () => {
assert.throws(
() => normalizeUuid('not-UUID-at-all', 'context 3'),
it('converts uuid to lower case', () => {
const uuid = generateUuid();
assert.strictEqual(normalizeUuid(uuid, 'context 1', logger), uuid);
assert.strictEqual(
normalizeUuid(uuid.toUpperCase(), 'context 2', logger),
uuid
);
sinon.assert.notCalled(warn);
});
it("warns if passed a string that's not a UUID", () => {
normalizeUuid('not-UUID-at-all', 'context 3', logger);
sinon.assert.calledOnce(warn);
sinon.assert.calledWith(
warn,
'Normalizing invalid uuid: not-UUID-at-all to not-uuid-at-all in ' +
'context "context 3"'
);

18
ts/types/Storage.d.ts vendored
View File

@ -11,7 +11,12 @@ import type { PhoneNumberDiscoverability } from '../util/phoneNumberDiscoverabil
import type { PhoneNumberSharingMode } from '../util/phoneNumberSharingMode';
import type { RetryItemType } from '../util/retryPlaceholders';
import type { ConfigMapType as RemoteConfigType } from '../RemoteConfig';
import { SystemTraySetting } from './SystemTraySetting';
import type { SystemTraySetting } from './SystemTraySetting';
import type {
ExtendedStorageID,
RemoteRecord,
UnknownRecord,
} from './StorageService';
import type { GroupCredentialType } from '../textsecure/WebAPI';
import type {
@ -105,14 +110,9 @@ export type StorageAccessType = {
avatarUrl: string;
manifestVersion: number;
storageCredentials: StorageServiceCredentials;
'storage-service-error-records': Array<{
itemType: number;
storageID: string;
}>;
'storage-service-unknown-records': Array<{
itemType: number;
storageID: string;
}>;
'storage-service-error-records': Array<UnknownRecord>;
'storage-service-unknown-records': Array<UnknownRecord>;
'storage-service-pending-deletes': Array<ExtendedStorageID>;
'preferred-video-input-device': string;
'preferred-audio-input-device': AudioDevice;
'preferred-audio-output-device': AudioDevice;

13
ts/types/StorageService.d.ts vendored Normal file
View File

@ -0,0 +1,13 @@
// Copyright 2020-2022 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
export type ExtendedStorageID = {
storageID: string;
storageVersion?: number;
};
export type RemoteRecord = ExtendedStorageID & {
itemType: number;
};
export type UnknownRecord = RemoteRecord;

View File

@ -1,4 +1,4 @@
// Copyright 2020-2021 Signal Messenger, LLC
// Copyright 2020-2022 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { LocalizerType } from '../types/Util';
@ -8,6 +8,7 @@ import * as log from '../logging/log';
type DirectCallNotificationType = {
callMode: CallMode.Direct;
activeCallConversationId?: string;
wasIncoming: boolean;
wasVideoCall: boolean;
wasDeclined: boolean;

View File

@ -3,15 +3,24 @@
import type { UUIDStringType } from '../types/UUID';
import { isValidUuid } from '../types/UUID';
import { assert } from './assert';
import type { LoggerType } from '../types/Logging';
import * as log from '../logging/log';
export function normalizeUuid(uuid: string, context: string): UUIDStringType {
export function normalizeUuid(
uuid: string,
context: string,
logger: Pick<LoggerType, 'warn'> = log
): UUIDStringType {
const result = uuid.toLowerCase();
assert(
isValidUuid(uuid) && isValidUuid(result),
`Normalizing invalid uuid: ${uuid} to ${result} in context "${context}"`
);
if (!isValidUuid(uuid) || !isValidUuid(result)) {
logger.warn(
`Normalizing invalid uuid: ${uuid} to ${result} in context "${context}"`
);
// Cast anyway we don't want to throw here
return result as unknown as UUIDStringType;
}
return result;
}

View File

@ -289,7 +289,7 @@ export async function sendToGroupViaSenderKey(options: {
);
// 1. Add sender key info if we have none, or clear out if it's too old
const THIRTY_DAYS = 30 * DAY;
const EXPIRE_DURATION = getSenderKeyExpireDuration();
// Note: From here on, generally need to recurse if we change senderKeyInfo
const senderKeyInfo = sendTarget.getSenderKeyInfo();
@ -310,7 +310,7 @@ export async function sendToGroupViaSenderKey(options: {
recursionCount: recursionCount + 1,
});
}
if (isOlderThan(senderKeyInfo.createdAtDate, THIRTY_DAYS)) {
if (isOlderThan(senderKeyInfo.createdAtDate, EXPIRE_DURATION)) {
const { createdAtDate } = senderKeyInfo;
log.info(
`sendToGroupViaSenderKey/${logId}: Resetting sender key; ${createdAtDate} is too old`
@ -657,6 +657,30 @@ export async function sendToGroupViaSenderKey(options: {
// Utility Methods
const MAX_SENDER_KEY_EXPIRE_DURATION = 90 * DAY;
function getSenderKeyExpireDuration(): number {
try {
const parsed = parseIntOrThrow(
window.Signal.RemoteConfig.getValue('desktop.senderKeyMaxAge'),
'getSenderKeyExpireDuration'
);
const duration = Math.min(parsed, MAX_SENDER_KEY_EXPIRE_DURATION);
log.info(
`getSenderKeyExpireDuration: using expire duration of ${duration}`
);
return duration;
} catch (error) {
log.warn(
`getSenderKeyExpireDuration: Failed to parse integer. Using default of ${MAX_SENDER_KEY_EXPIRE_DURATION}.`,
error && error.stack ? error.stack : error
);
return MAX_SENDER_KEY_EXPIRE_DURATION;
}
}
export function _shouldFailSend(error: unknown, logId: string): boolean {
const logError = (message: string) => {
log.error(`_shouldFailSend/${logId}: ${message}`);

View File

@ -54,6 +54,7 @@ import {
getConversationSelector,
getMessagesByConversation,
} from '../state/selectors/conversations';
import { getActiveCallState } from '../state/selectors/calling';
import { ConversationDetailsMembershipList } from '../components/conversation/conversation-details/ConversationDetailsMembershipList';
import { showSafetyNumberChangeDialog } from '../shims/showSafetyNumberChangeDialog';
import type {
@ -471,6 +472,11 @@ export class ConversationView extends window.Backbone.View<ConversationModel> {
return;
}
const activeCall = getActiveCallState(window.reduxStore.getState());
if (activeCall && !activeCall.pip) {
return;
}
const message = await getMessageById(messageId);
if (!message) {
throw new Error(`markMessageRead: failed to load message ${messageId}`);

View File

@ -10341,6 +10341,13 @@ node-fetch@2.6.1, node-fetch@^2.6.0:
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
node-fetch@2.6.7:
version "2.6.7"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
dependencies:
whatwg-url "^5.0.0"
node-fetch@^1.0.1:
version "1.7.3"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
@ -14456,6 +14463,11 @@ tough-cookie@~2.5.0:
psl "^1.1.28"
punycode "^2.1.1"
tr46@~0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
trim-newlines@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144"
@ -14986,6 +14998,11 @@ wbuf@^1.1.0, wbuf@^1.7.3:
dependencies:
minimalistic-assert "^1.0.0"
webidl-conversions@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=
webpack-cli@4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.6.0.tgz#27ae86bfaec0cf393fcfd58abdc5a229ad32fd16"
@ -15184,6 +15201,14 @@ whatwg-fetch@>=0.10.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"
whatwg-url@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0=
dependencies:
tr46 "~0.0.3"
webidl-conversions "^3.0.0"
which-boxed-primitive@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"