Compare commits

...

9 Commits
main ... 5.33.x

Author SHA1 Message Date
Fedor Indutnyy db520339f3 v5.33.0 2022-02-23 17:22:56 -08:00
Fedor Indutnyy e923060b83 Update translations 2022-02-23 17:22:37 -08:00
automated-signal 3d0abbe354
updateGroup: Update group attributes last, after notifications are added
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2022-02-23 12:25:50 -08:00
automated-signal 5c8cc2dc94
Use browser time formatting instead of Moment
Co-authored-by: Evan Hahn <69474926+EvanHahn-Signal@users.noreply.github.com>
2022-02-23 10:42:51 -08:00
automated-signal c88f10bac2
Improve conversion between typed arrays
Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
2022-02-22 18:39:03 -08:00
automated-signal 733fc56742
Remove setup menu items after QR code linking
Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
2022-02-22 18:38:52 -08:00
automated-signal dd12c6f599
envelopeTypeToCiphertextType: Handle all envelope types
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2022-02-22 17:04:18 -08:00
automated-signal 9f42aa3e72
Drop GV1 records when GV2 records are present
Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
2022-02-22 16:08:25 -08:00
automated-signal 4769f73b6a
Fix z-index on group calling overflow scroll buttons
Co-authored-by: Evan Hahn <69474926+EvanHahn-Signal@users.noreply.github.com>
2022-02-17 09:51:43 -08:00
76 changed files with 557 additions and 319 deletions

View File

@ -1352,7 +1352,7 @@
"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 Signal on your phone",
"message": "Open Signal op u telefoon",
"description": "Instructions on the device link screen"
},
"Install__instructions__2": {
@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "You are already in a call",
"description": "Tooltip in disabled notification button when you're on another call"
},
@ -5048,7 +5048,7 @@
}
},
"GroupV2--pending-remove--revoke-invite-from-you--many--other": {
"message": "$adminName$ revoked the invitations to the group you sent to $count$ people.",
"message": "$adminName$ het n uitnodiging na die groep vir $count$ mense herroep.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"adminName": {
@ -5062,7 +5062,7 @@
}
},
"GroupV2--pending-remove--revoke-invite-from-you--many--you": {
"message": "You rescinded your invitation to $count$ people.",
"message": "U het u uitnodiging vir $count$ mense herroep.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"count": {
@ -5072,7 +5072,7 @@
}
},
"GroupV2--pending-remove--revoke-invite-from-you--many--unknown": {
"message": "An admin revoked the invitations to the group you sent to $count$ people.",
"message": "n Beheerder het n uitnodiging na die groep vir $count$ mense herroep.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"count": {
@ -5086,7 +5086,7 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--admin-approval-add-one--other": {
"message": "$joinerName$ requested to join via the group link.",
"message": "$joinerName$ het d.m.v. die groepskakel versoek om aan te sluit.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"joinerName": {
@ -5100,11 +5100,11 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--admin-approval-remove-one--you--unknown": {
"message": "Your request to join the group has been denied by an admin.",
"message": "U versoek om by die groep aan te sluit is deur n beheerder geweier.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--admin-approval-remove-one--other--you": {
"message": "You denied a request to join the group from $joinerName$.",
"message": "U het n versoek van $joinerName$ om by die groep aan te sluit geweier.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"joinerName": {
@ -5114,7 +5114,7 @@
}
},
"GroupV2--admin-approval-remove-one--other--own": {
"message": "$joinerName$ canceled their request to join the group.",
"message": "$joinerName$ het hul versoek gekanselleer om by die groep aan te sluit.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"joinerName": {
@ -5124,7 +5124,7 @@
}
},
"GroupV2--admin-approval-remove-one--other--other": {
"message": "$adminName$ denied a request to join the group from $joinerName$.",
"message": "$adminName$ het n versoek van $joinerName$ om by die groep aan te sluit geweier.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"adminName": {
@ -5138,11 +5138,11 @@
}
},
"GroupV2--group-link-add--disabled--you": {
"message": "You turned on the group link with admin approval disabled.",
"message": "U het die groepskakel met beheerdergoedkeuring gedeaktiveer.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--group-link-add--disabled--other": {
"message": "$adminName$ turned on the group link with admin approval disabled.",
"message": "$adminName$ het die groepskakel met beheerdergoedkeuring gedeaktiveer.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"adminName": {
@ -5152,15 +5152,15 @@
}
},
"GroupV2--group-link-add--disabled--unknown": {
"message": "The group link has been turned on with admin approval disabled.",
"message": "Die groepskakel en beheerdergoedkeuring is gedeaktiveer.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--group-link-add--enabled--you": {
"message": "You turned on the group link with admin approval enabled.",
"message": "U het die groepskakel met beheerdergoedkeuring geaktiveer.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--group-link-add--enabled--other": {
"message": "$adminName$ turned on the group link with admin approval enabled.",
"message": "$adminName$ het die groepskakel met beheerdergoedkeuring geaktiveer.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"adminName": {
@ -5170,7 +5170,7 @@
}
},
"GroupV2--group-link-add--enabled--unknown": {
"message": "The group link has been turned on with admin approval enabled.",
"message": "Die groepskakel en beheerdergoedkeuring is geaktiveer.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--group-link-remove--you": {
@ -5178,7 +5178,7 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--group-link-remove--other": {
"message": "$adminName$ turned off the group link.",
"message": "$adminName$ het die groepskakel gedeaktiveer.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"adminName": {
@ -5188,7 +5188,7 @@
}
},
"GroupV2--group-link-remove--unknown": {
"message": "The group link has been turned off.",
"message": "Die groepskakel is gedeaktiveer.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--group-link-reset--you": {
@ -5196,7 +5196,7 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--group-link-reset--other": {
"message": "$adminName$ reset the group link.",
"message": "$adminName$ het die groepskakel teruggestel.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"adminName": {
@ -5206,7 +5206,7 @@
}
},
"GroupV2--group-link-reset--unknown": {
"message": "The group link has been reset.",
"message": "Die groepbeskrywing is teruggestel.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--description--remove--you": {
@ -5214,7 +5214,7 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--description--remove--other": {
"message": "$memberName$ removed the group description.",
"message": "$memberName$ het die groepbeskrywing verwyder.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"adminName": {
@ -5232,7 +5232,7 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--description--change--other": {
"message": "$memberName$ changed the group description.",
"message": "$memberName$ het die groepbeskrywing verander.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"adminName": {
@ -5250,7 +5250,7 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--announcements--admin--other": {
"message": "$memberName$ changed the group settings to only allow admins to send messages.",
"message": "$memberName$ het die groepinstellings verander sodat slegs beheerders boodskappe kan stuur.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"adminName": {
@ -5260,7 +5260,7 @@
}
},
"GroupV2--announcements--admin--unknown": {
"message": "The group was changed to only allow admins to send messages.",
"message": "Die groep is verander sodat slegs beheerders boodskappe kan stuur.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--announcements--member--you": {
@ -5268,7 +5268,7 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--announcements--member--other": {
"message": "$memberName$ changed the group settings to allow all members to send messages.",
"message": "$memberName$ het die groepinstellings verander sodat alle lede boodskappe kan stuur.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"adminName": {
@ -5278,11 +5278,11 @@
}
},
"GroupV2--announcements--member--unknown": {
"message": "The group was changed to allow all members to send messages.",
"message": "Die groep is verander sodat alle lede boodskappe kan stuur.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV1--Migration--disabled": {
"message": "Upgrade this group to activate new features like @mentions and admins. Members who have not shared their name or photo in this group will be invited to join. $learnMore$",
"message": "Gradeer hierdie groep op om nuwe funksies soos @vermeldings en beheerders te aktiveer. Lede wat nie hul naam of foto in die groep gedeel het nie, sal genooi word om aan te sluit. $learnMore$.",
"description": "Shown instead of composition area when user is forced to migrate a legacy group (GV1).",
"placeholders": {
"learnMore": {
@ -5296,11 +5296,11 @@
"description": "Shown in timeline when a legacy group (GV1) is upgraded to a new group (GV2)"
},
"GroupV1--Migration--learn-more": {
"message": "Kom meer te wete",
"message": "Leer meer",
"description": "Shown on a bubble below a 'group was migrated' timeline notification, or as button on Migrate dialog"
},
"GroupV1--Migration--migrate": {
"message": "Gradeer",
"message": "Gradeer op",
"description": "Shown on Migrate dialog to kick off the process"
},
"GroupV1--Migration--info--title": {
@ -5316,7 +5316,7 @@
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--keep-history": {
"message": "Alle goodskapgeskiedenis en media van voor die opgradering is behou.",
"message": "Alle boodskapgeskiedenis en media van voor die opgradering is behou.",
"description": "Shown on Learn More popup after GV1 migration"
},
"GroupV1--Migration--migrate--keep-history": {
@ -5324,7 +5324,7 @@
"description": "Shown on Migration popup before GV1 migration"
},
"GroupV1--Migration--info--invited--you": {
"message": "U moet weer n uitnodiging om by die groep aaan te sluit aanvaar, en sal geen groepboodskappe ontvang voor u aanvaar nie:",
"message": "U moet weer n uitnodiging om by die groep aan te sluit aanvaar, en sal geen groepboodskappe ontvang voor u aanvaar nie:",
"description": "Shown on Learn More popup after GV1 migration"
},
"GroupV1--Migration--info--invited--many": {
@ -5332,7 +5332,7 @@
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--invited--one": {
"message": "Hierdie lid moet weer uitnodiging om by die groep aaan te sluit aanvaar, en sal geen groepboodskappe ontvang voor hulle aanvaar nie:",
"message": "Hierdie lid moet weer n uitnodiging om by die groep aaan te sluit aanvaar, en sal geen groepboodskappe ontvang voor hulle aanvaar nie:",
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--removed--before--many": {
@ -5340,23 +5340,23 @@
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--removed--before--one": {
"message": "Hierdie lide kan nie by nuwe groepe aansluit nie en sal van die volgende groep verwyder word:",
"message": "Hierdie lede kan nie by nuwe groepe aansluit nie en sal van die volgende groep verwyder word:",
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--removed--after--many": {
"message": "These members were not capable of joining New Groups, and were removed from the group:",
"message": "Hierdie lede kon nie by nuwe groepe aansluit nie en is van die volgende groep verwyder:",
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--removed--after--one": {
"message": "This member was not capable of joining New Groups, and was removed from the group:",
"message": "Hierdie lid kon nie by nuwe groepe aansluit nie en is van die volgende groep verwyder:",
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--invited--you": {
"message": "You couldn't be added to the New Group and have been invited to join.",
"message": "U kon nie tot die nuwe groep toegevoeg word nie en is genooi om aan te sluit.",
"description": "Shown in timeline when a group is upgraded and you were invited instead of added"
},
"GroupV1--Migration--invited--one": {
"message": "$contact$ couldnt be added to the New Group and has been invited to join.",
"message": "$contact$ kon nie tot die nuwe groep toegevoeg word nie en is genooi om aan te sluit.",
"description": "Shown in timeline when a group is upgraded and one person was invited, instead of added",
"placeholders": {
"contact": {
@ -5366,7 +5366,7 @@
}
},
"GroupV1--Migration--invited--many": {
"message": "$count$ members couldnt be added to the New Group and have been invited to join.",
"message": "$count$ lede kon nie tot die nuwe groep toegevoeg word nie en is genooi om aan te sluit.",
"description": "Shown in timeline when a group is upgraded and some people were invited, instead of added",
"placeholders": {
"contact": {
@ -5376,7 +5376,7 @@
}
},
"GroupV1--Migration--removed--one": {
"message": "$contact$ was removed from the group.",
"message": "$contact$ is van die groep verwyder.",
"description": "Shown in timeline when a group is upgraded and one person was removed entirely during the upgrade",
"placeholders": {
"contact": {
@ -5386,7 +5386,7 @@
}
},
"GroupV1--Migration--removed--many": {
"message": "$count$ members were removed from the group.",
"message": "$count$ lede is van die groep verwyder.",
"description": "Shown in timeline when a group is upgraded and some people were removed entirely during the upgrade",
"placeholders": {
"contact": {
@ -5400,11 +5400,11 @@
"description": "Generic close label"
},
"previous": {
"message": "previous",
"message": "vorige",
"description": "Generic previous label"
},
"next": {
"message": "next",
"message": "volgende",
"description": "Generic next label"
},
"BadgeDialog__become-a-sustainer-button": {
@ -5420,39 +5420,39 @@
"description": "In the instructions for becoming a sustainer. The subheading."
},
"BadgeSustainerInstructions__instructions__1": {
"message": "Open Signal on your phone",
"message": "Open Signal op u telefoon",
"description": "In the instructions for becoming a sustainer. First instruction."
},
"BadgeSustainerInstructions__instructions__2": {
"message": "Tap on your profile photo in the top left to open Settings",
"message": "Tik op u profielfoto bo links om Instellings te open",
"description": "In the instructions for becoming a sustainer. Second instruction."
},
"BadgeSustainerInstructions__instructions__3": {
"message": "Tap on \"Become a Sustainer\" and subscribe",
"message": "Tik op “Word n onderhouer” en teken in",
"description": "In the instructions for becoming a sustainer. Third instruction."
},
"CompositionArea--expand": {
"message": "Expand",
"message": "Vou uit",
"description": "Aria label for expanding composition area"
},
"CompositionArea--attach-file": {
"message": "Heg leër aan",
"message": "Heg lêer aan",
"description": "Aria label for file attachment button in composition area"
},
"CompositionArea--sms-only__title": {
"message": "This person isnt using Signal",
"message": "Hierdie mens gebruik nie Signal nie",
"description": "Title for the composition area for the SMS-only contact"
},
"CompositionArea--sms-only__body": {
"message": "Signal Desktop does not support messaging non-Signal contacts. Ask this person to install Signal for a more secure messaging experience.",
"message": "Signal Desktop kan nie boodskappe stuur aan nie-Signal-kontakte nie. Vra die persoon om Signal te installeer vir n veiliger boodskapdiens.",
"description": "Body for the composition area for the SMS-only contact"
},
"CompositionArea--sms-only__spinner-label": {
"message": "Checking contact's registration status",
"message": "Gaan tans kontak se registrasiestatus na",
"description": "Displayed while checking if the contact is SMS-only"
},
"countMutedConversationsDescription": {
"message": "Include muted conversations in badge count",
"message": "Sluit gedempte gesprekke in wapentelling in",
"description": "Description for counting muted conversations in badge setting"
},
"ContactModal--message": {
@ -5460,15 +5460,15 @@
"description": "Button text for send message button in Group Contact Details modal"
},
"ContactModal--rm-admin": {
"message": "Remove as admin",
"message": "Verwyder as beheerder",
"description": "Button text for removing as admin button in Group Contact Details modal"
},
"ContactModal--make-admin": {
"message": "Make admin",
"message": "Maak beheerder",
"description": "Button text for make admin button in Group Contact Details modal"
},
"ContactModal--make-admin-info": {
"message": "$contact$ will be able to edit this group and its members.",
"message": "$contact$ sal hierdie groep en sy lede kan wysig.",
"description": "Shown in a confirmation dialog when you are about to grant admin privileges to someone",
"placeholders": {
"contact": {
@ -5478,7 +5478,7 @@
}
},
"ContactModal--rm-admin-info": {
"message": "Remove $contact$ as group admin?",
"message": "Verwyder $contact$ as groepbeheerder?",
"description": "Shown in a confirmation dialog when you are about to remove admin privileges from someone",
"placeholders": {
"contact": {
@ -5492,23 +5492,23 @@
"description": "Button text for remove from group button in Group Contact Details modal"
},
"showChatColorEditor": {
"message": "Chat color",
"message": "Kletskleur",
"description": "This is a button in the conversation context menu to show the chat color editor"
},
"showConversationDetails": {
"message": "Group settings",
"message": "Groepinstellings",
"description": "This is a button in the conversation context menu to show group settings"
},
"showConversationDetails--direct": {
"message": "Chat settings",
"message": "Kletsinstellings",
"description": "This is a button in the conversation context menu to show chat settings"
},
"ConversationDetails__unmute--title": {
"message": "Unmute this chat?",
"message": "Ontdemp hierdie klets?",
"description": "Title for the modal to unmute a chat"
},
"ConversationDetails--group-link": {
"message": "Group link",
"message": "Groepskakel",
"description": "This is the label for the group link management panel"
},
"ConversationDetails--disappearing-messages-label": {
@ -5516,11 +5516,11 @@
"description": "This is the label for the disappearing messages setting panel"
},
"ConversationDetails--disappearing-messages-info--group": {
"message": "When enabled, messages sent and received in this group will disappear after they've been seen.",
"message": "Indien geaktiveer, sal boodskappe wat in hierdie groep gestuur en ontvang is, verdwyn nadat dit gesien is.",
"description": "This is the info about the disappearing messages setting, in groups"
},
"ConversationDetails--disappearing-messages-info--direct": {
"message": "When enabled, messages sent and received in this 1:1 chat will disappear after they've been seen.",
"message": "Indien geaktiveer, sal boodskappe wat in hierdie 1:1-klets gestuur en ontvang is, verdwyn nadat dit gesien is.",
"description": "This is the info about the disappearing messages setting, for direct conversations"
},
"ConversationDetails--notifications": {
@ -5532,23 +5532,23 @@
"description": "This is the label for the 'who can edit the group' panel"
},
"ConversationDetails--group-info-info": {
"message": "Choose who can edit group name, photo, description, and disappearing messages timer.",
"message": "Kies wie die groepnaam, -foto, -beskrywing en verdwynboodskap-afteller kan wysig.",
"description": "This is the additional info for the 'who can edit the group' panel"
},
"ConversationDetails--add-members-label": {
"message": "Who can add members",
"message": "Wie kan lede toevoeg",
"description": "This is the label for the 'who can add members' panel"
},
"ConversationDetails--add-members-info": {
"message": "Choose who can add members to this group.",
"message": "Kies wie lede tot hierdie groep kan toevoeg.",
"description": "This is the additional info for the 'who can add members' panel"
},
"ConversationDetails--announcement-label": {
"message": "Who can send messages",
"message": "Wie kan boodskappe stuur",
"description": "This is the additional info for the 'who can send messages' panel"
},
"ConversationDetails--announcement-info": {
"message": "Choose who can send messages to the group.",
"message": "Kies wie boodskappe na die groep mag stuur.",
"description": "This is the additional info for the 'who can send messages' panel"
},
"ConversationDetails--requests-and-invites": {
@ -5560,19 +5560,19 @@
"description": "This is a button to leave a group"
},
"ConversationDetailsActions--block-group": {
"message": "Blokkeer groep",
"message": "Versper groep",
"description": "This is a button to block a group"
},
"ConversationDetailsActions--leave-group-must-choose-new-admin": {
"message": "Before you leave, you must choose at least one new admin for this group.",
"message": "Voor u verlaat, moet u ten minste een nuwe beheerder vir hierdie groep kies.",
"description": "Shown if, before leaving a group, you need to choose an admin"
},
"ConversationDetailsActions--leave-group-modal-title": {
"message": "Wil jy regtig verlaat?",
"message": "Wil u regtig verlaat?",
"description": "This is the modal title for confirming leaving a group"
},
"ConversationDetailsActions--leave-group-modal-content": {
"message": "Jy sal nie meer boodskappe in hierdie groep kan stuur of ontvang nie.",
"message": "U sal nie meer boodskappe in hierdie groep kan stuur of ontvang nie.",
"description": "This is the modal content for confirming leaving a group"
},
"ConversationDetailsActions--leave-group-modal-confirm": {
@ -5580,7 +5580,7 @@
"description": "This is the modal button to confirm leaving a group"
},
"ConversationDetailsActions--block-group-modal-title": {
"message": "Block and Leave the \"$groupName$\" Group?",
"message": "Versper en verlaat die “$groupName$”-groep?",
"description": "This is the modal title for confirming blocking a group",
"placeholders": {
"groupName": {
@ -5590,15 +5590,15 @@
}
},
"ConversationDetailsActions--block-group-modal-content": {
"message": "Jy sal nie meer boodskappe of nuus van hierdie groep ontvang nie.",
"message": "U sal nie meer boodskappe of nuus van hierdie groep ontvang nie.",
"description": "This is the modal content for confirming blocking a group"
},
"ConversationDetailsActions--block-group-modal-confirm": {
"message": "Blokkeer",
"message": "Versper",
"description": "This is the modal button to confirm blocking a group"
},
"ConversationDetailsHeader--members": {
"message": "$number$ members",
"message": "$number$ lede",
"description": "This is the number of members in a group",
"placeholders": {
"number": {
@ -5616,7 +5616,7 @@
"description": "This is a button on the conversation details to show all media"
},
"ConversationDetailsMembershipList--title": {
"message": "$number$ members",
"message": "$number$ lede",
"description": "The title of the membership list panel",
"placeholders": {
"number": {
@ -5638,19 +5638,19 @@
"description": "In the conversation notifications settings, this is the label for the mentions option"
},
"ConversationNotificationsSettings__mentions__info": {
"message": "Receive notifications when you're mentioned in muted chats",
"message": "Ontvang kennisgewings wanneer u in gedempte kletse genoem word?",
"description": "In the conversation notifications settings, this is the sub-label for the mentions option"
},
"ConversationNotificationsSettings__mentions__select__always-notify": {
"message": "Always notify",
"message": "Laat altyd weet",
"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": "Don't notify if muted",
"message": "Laat nie weet indien gedemp",
"description": "In the conversation notifications settings, this is the option that doesn't notify you for @mentions if the conversation is muted"
},
"GroupLinkManagement--clipboard": {
"message": "Group link copied.",
"message": "Groepskakel gekopieer.",
"description": "Shown in a toast when a user selects to copy group link"
},
"GroupLinkManagement--share": {
@ -5662,7 +5662,7 @@
"description": "Shown in the confirmation dialog when an admin is about to reset the group link"
},
"GroupLinkManagement--reset": {
"message": "Reset link",
"message": "Stel skakel terug",
"description": "This lets users generate a new group link"
},
"GroupLinkManagement--approve-label": {
@ -5670,11 +5670,11 @@
"description": "Title for the approve new members select area"
},
"GroupLinkManagement--approve-info": {
"message": "Require an admin to approve new members joining via the group link",
"message": "n Beheerder moet nuwe lede goedkeur wat d.m.v. die groepskakel aansluit",
"description": "Description for the approve new members select area"
},
"PendingInvites--tab-requests": {
"message": "Requests ($count$)",
"message": "Versoeke ($count$)",
"description": "Label for the tab to view pending requests",
"placeholders": {
"name": {
@ -5684,7 +5684,7 @@
}
},
"PendingInvites--tab-invites": {
"message": "Invites ($count$)",
"message": "Uitnodigings ($count$)",
"description": "Label for the tab to view pending invites",
"placeholders": {
"name": {
@ -5694,7 +5694,7 @@
}
},
"PendingRequests--approve-for": {
"message": "Approve request from \"$name$\"?",
"message": "Keur versoek van \u001b“$name$” goed?",
"description": "This is the modal content when confirming approving a group request to join",
"placeholders": {
"name": {
@ -5704,7 +5704,7 @@
}
},
"PendingRequests--deny-for": {
"message": "Deny request from \"$name$\"?",
"message": "Weier versoek van “$name$”?",
"description": "This is the modal content when confirming denying a group request to join",
"placeholders": {
"name": {
@ -5714,19 +5714,19 @@
}
},
"PendingInvites--invites": {
"message": "Deur u uitgenooi",
"message": "Deur u genooi",
"description": "This is the title list of all invites"
},
"PendingInvites--invited-by-you": {
"message": "Deur u uitgenooi",
"message": "Deur u genooi",
"description": "This is the title for the list of members you have invited"
},
"PendingInvites--invited-by-others": {
"message": "Deur ander uitgenooi",
"message": "Deur ander genooi",
"description": "This is the title for the list of members who have invited other people"
},
"PendingInvites--invited-count": {
"message": "Invited $number$",
"message": "$number$ genooi",
"description": "This is the label for the number of members someone has invited",
"placeholders": {
"number": {
@ -5736,11 +5736,11 @@
}
},
"PendingInvites--revoke-for-label": {
"message": "Revoke group invite",
"message": "Herroep groepuitnodiging",
"description": "This is aria label for revoking a group invite icon"
},
"PendingInvites--revoke-for": {
"message": "Revoke group invite for \"$name$\"?",
"message": "Herroep groepuitnodiging vir “$name$”?",
"description": "This is the modal content when confirming revoking a single invite",
"placeholders": {
"number": {
@ -5754,7 +5754,7 @@
}
},
"PendingInvites--revoke-from-singular": {
"message": "Revoke 1 invite sent by \"$name$\"?",
"message": "Herroep 1 uitnodiging wat deur “$name$” gestuur is?",
"description": "This is the modal content when confirming revoking a single invite",
"placeholders": {
"name": {
@ -5764,7 +5764,7 @@
}
},
"PendingInvites--revoke-from-plural": {
"message": "Revoke $number$ invites sent by \"$name$\"?",
"message": "Herroep $number$ uitnodigings wat deur “$name$” gestuur is?",
"description": "This is the modal content when confirming revoking multiple invites",
"placeholders": {
"number": {
@ -5778,11 +5778,11 @@
}
},
"PendingInvites--revoke": {
"message": "Revoke",
"message": "Herroep",
"description": "This is the modal button to confirm revoking invites"
},
"PendingRequests--approve": {
"message": "Approve Request",
"message": "Keur versoek goed",
"description": "This is the modal button to approve group request to join"
},
"PendingRequests--deny": {
@ -5790,7 +5790,7 @@
"description": "This is the modal button to deny group request to join"
},
"PendingRequests--info": {
"message": "People on this list are attempting to join \"$name$\" via the group link.",
"message": "Mense op hierdie lys probeer by “$name$” aansluit d.m.v. die groepskakel.",
"description": "Information shown below the pending admin approval list",
"placeholders": {
"name": {
@ -5800,23 +5800,23 @@
}
},
"PendingInvites--info": {
"message": "Details about people invited to this group arent shown until they join. Invitees will only see messages after they join the group.",
"message": "Details oor mense wat na die groep genooi is sal eers vertoon wanneer hulle aansluit. Genooides sal slegs boodskappe sien wanneer hulle by die groep aansluit.",
"description": "Information shown below the invite list"
},
"AvatarInput--no-photo-label--group": {
"message": "Add a group photo",
"message": "Voeg n groepfoto toe",
"description": "The label for the avatar uploader when no group photo is selected"
},
"AvatarInput--no-photo-label--profile": {
"message": "Add a photo",
"message": "Voeg n foto toe",
"description": "The label for the avatar uploader when no profile photo is selected"
},
"AvatarInput--change-photo-label": {
"message": "Change photo",
"message": "Verander foto",
"description": "The label for the avatar uploader when a photo is selected"
},
"AvatarInput--upload-photo-choice": {
"message": "Upload photo",
"message": "Laai foto op",
"description": "The button text when you click on an uploaded avatar and want to upload a new one"
},
"AvatarInput--remove-photo-choice": {
@ -5824,19 +5824,19 @@
"description": "The button text when you click on an uploaded avatar and want to remove it"
},
"ContactPill--remove": {
"message": "Remove contact",
"message": "Verwyder kontak",
"description": "The label for the 'remove' button on the contact pill"
},
"ComposeErrorDialog--close": {
"message": "Reg so",
"message": "Goed",
"description": "The text on the button when there's an error in the composer"
},
"NewlyCreatedGroupInvitedContactsDialog--title--one": {
"message": "Invitation sent",
"message": "Uitnodiging gestuur",
"description": "When creating a new group and inviting users, this is shown in the dialog"
},
"NewlyCreatedGroupInvitedContactsDialog--title--many": {
"message": "$count$ invitations sent",
"message": "$count$ uitnodigings gestuur",
"description": "When creating a new group and inviting users, this is shown in the dialog",
"placeholders": {
"count": {
@ -5846,7 +5846,7 @@
}
},
"NewlyCreatedGroupInvitedContactsDialog--body--user-paragraph--one": {
"message": "$name$ cant be automatically added to this group by you.",
"message": "$name$ kan nie outomaties deur u tot hierdie groep toegevoeg word nie.",
"description": "When creating a new group and inviting users, this is shown in the dialog",
"placeholders": {
"name": {
@ -5856,15 +5856,15 @@
}
},
"NewlyCreatedGroupInvitedContactsDialog--body--user-paragraph--many": {
"message": "These users cant be automatically added to this group by you.",
"message": "Hierdie gebruikers kan nie outomaties deur u tot hierdie groep toegevoeg word nie.",
"description": "When creating a new group and inviting users, this is shown in the dialog"
},
"NewlyCreatedGroupInvitedContactsDialog--body--info-paragraph": {
"message": "Theyve been invited to join, and wont see any group messages until they accept.",
"message": "Hulle is genooi om aan te sluit en sal geen groepboodskappe sien tot hulle aanvaar nie.",
"description": "When creating a new group and inviting users, this is shown in the dialog"
},
"NewlyCreatedGroupInvitedContactsDialog--body--learn-more": {
"message": "Kom meer te wete",
"message": "Leer meer",
"description": "When creating a new group and inviting users, this is shown in the dialog"
},
"AddGroupMembersModal--title": {
@ -5872,11 +5872,11 @@
"description": "When adding new members to an existing group, this is shown in the dialog"
},
"AddGroupMembersModal--continue-to-confirm": {
"message": "Dateer op",
"message": "Werk by",
"description": "When adding new members to an existing group, this is shown in the dialog"
},
"AddGroupMembersModal--confirm-title--one": {
"message": "Add $person$ to \"$group$\"?",
"message": "Voeg $person$ tot “$group$” by?",
"description": "When adding new members to an existing group, this is shown in the confirmation dialog",
"placeholders": {
"person": {
@ -5890,7 +5890,7 @@
}
},
"AddGroupMembersModal--confirm-title--many": {
"message": "Add $count$ members to \"$group$\"?",
"message": "Voeg $count$ lede tot “$group$” by?",
"description": "When adding new members to an existing group, this is shown in the confirmation dialog",
"placeholders": {
"count": {
@ -5904,7 +5904,7 @@
}
},
"AddGroupMembersModal--confirm-button--one": {
"message": "Add member",
"message": "Voeg lid by",
"description": "When adding new members to an existing group, this is shown on the confirmation dialog button"
},
"AddGroupMembersModal--confirm-button--many": {
@ -5916,7 +5916,7 @@
"description": "The text of the button to create new groups"
},
"selectContact": {
"message": "Select contact $name$",
"message": "Kies kontak $name$",
"description": "The label for contact checkboxes that are non-selected (clicking them should select the contact)",
"placeholders": {
"name": {
@ -5926,7 +5926,7 @@
}
},
"deselectContact": {
"message": "De-select contact $name$",
"message": "Ontkies kontak $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": "Cannot select contact $name$",
"message": "Kan nie kontak $name$ kies nie",
"description": "The label for contact checkboxes that are disabled",
"placeholders": {
"name": {
@ -5950,27 +5950,27 @@
"description": "The label for contact checkboxes that are disabled because they're already a member"
},
"MessageAudio--play": {
"message": "Play audio attachment",
"message": "Speel oudio-aanhegsel af",
"description": "Aria label for audio attachment's Play button"
},
"MessageAudio--pause": {
"message": "Pause audio attachment",
"message": "Laat oudio-aanhegsel wag",
"description": "Aria label for audio attachment's Pause button"
},
"MessageAudio--download": {
"message": "Download audio attachment",
"message": "Laai die oudio-aanhegsel af",
"description": "Aria label for audio attachment's Download button"
},
"MessageAudio--pending": {
"message": "Downloading audio attachment...",
"message": "Oudio-aanhegsel word afgelaai…",
"description": "Aria label for pending audio attachment spinner"
},
"MessageAudio--slider": {
"message": "Playback time of audio attachment",
"message": "Afspeeltyd van oudio-aanhegsel",
"description": "Aria label for audio attachment's playback time slider"
},
"emptyInboxMessage": {
"message": "Click the $composeIcon$ above and search for your contacts or groups to message.",
"message": "Klik die $composeIcon$ hier bo en soek na kontakte of groepe om n boodskap te stuur.",
"description": "Shown in the left-pane when the inbox is empty",
"placeholders": {
"composeIcon": {
@ -5980,7 +5980,7 @@
}
},
"composeIcon": {
"message": "compose button",
"message": "saamstelknop",
"description": "Shown in the left-pane when the inbox is empty. Describes the button that composes a new message."
},
"ForwardMessageModal--continue": {

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "إنك بالفعل في مكالمة",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,8 +3909,8 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"message": "Artıq zəngdəsiniz.",
"calling__in-another-call-tooltip": {
"message": "Artıq zəngdəsiniz",
"description": "Tooltip in disabled notification button when you're on another call"
},
"calling__call-notification__button__call-full-tooltip": {

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Вече сте в това повикване",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "আপনি ইতিমধ্যেই একটি কলে আছেন",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Ja sou en una trucada.",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Již jste v hovoru",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Rydych eisoes mewn galwad",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Du er allerede i et opkald",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Du nimmst bereits an einem Anruf teil",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Είσαι ήδη σε κάποια κλήση",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Vi jam estas en alvoko",
"description": "Tooltip in disabled notification button when you're on another call"
},
@ -6842,11 +6842,11 @@
"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!",
"message": "Estas nun pli facile trovi tiun bruan tajpanton aŭ maĉanton en grup-alvokoj — jen nova animacia parol-indikilo!",
"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.",
"message": "La listo de disponeblaj lingvoj pligrandiĝis. Ni sincere estas dankemaj al la traduk-volontuloj, kies peno ebligis tion.",
"description": "Release notes for v5.32"
}
}

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Ya participas en una llamada",
"description": "Tooltip in disabled notification button when you're on another call"
},
@ -6830,7 +6830,7 @@
"description": "Release notes for v5.28"
},
"WhatsNew__v5.29--1": {
"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.",
"message": "¡Ahora, con menos distracciones por teclados ruidosos o masticadores compulsiv@s! 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": {
@ -6846,7 +6846,7 @@
"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!",
"message": "Hemos expandido la lista de idiomas soportados. ¡Gracias a traductores voluntari@s que lo hacen posible!",
"description": "Release notes for v5.32"
}
}

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Sa oled juba kõnes",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Deian zaude",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "شما در حال حاضر در یک تماس هستید",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Olet jo puhelussa",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Vous êtes déjà en communication",
"description": "Tooltip in disabled notification button when you're on another call"
},
@ -6582,7 +6582,7 @@
"description": "Label for the notification content setting select box"
},
"Preferences--blocked": {
"message": "Bloquée",
"message": "Bloqués",
"description": "Label for blocked contacts setting"
},
"Preferences--blocked-count-singular": {
@ -6838,7 +6838,7 @@
"description": "Release notes for v5.31"
},
"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!",
"message": "Lespace a été réarrangé dans len-tête du panneau de gauche et dans la zone de recherche. Il y a tellement place pour des activités!",
"description": "Release notes for v5.31"
},
"WhatsNew__v5.32--1": {

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "તમે પહેલેથી જ કૉલમાં છો",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "אתה כבר בשיחה",
"description": "Tooltip in disabled notification button when you're on another call"
},
@ -6846,7 +6846,7 @@
"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.",
"message": "הרשימה של השפות הנתמכות הורחבה. אנחנו מעריכים בכנות את המתרגמים המתנדבים שמאמציהם הפכו זאת לאפשרי.",
"description": "Release notes for v5.32"
}
}

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "आप पहले ही एक कॉल में हैं",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Već ste na pozivu",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Már beléptél a hívásba",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Anda telah berada dalam panggilan",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -214,7 +214,7 @@
"description": "Shown as a header for pinned conversations in the left pane"
},
"LeftPane--chats": {
"message": "Spjöll",
"message": "Spjall",
"description": "Shown as a header for non-pinned conversations in the left pane"
},
"archiveHelperText": {
@ -1868,7 +1868,7 @@
"description": "Description of the always relay calls setting"
},
"alwaysRelayCallsDetail": {
"message": "Senda símtöl áfram í gegnum netþjóna Signal til að minnka líkur á að þínir tengiliðu geti komist að þinni ip addressu. Að virkja þennan möguleika mun minnka gæði símtals.",
"message": "Senda símtöl áfram í gegnum netþjóna Signal til að minnka líkur á að tengiliðirnir þínir geti komist að IP-vistfanginu þínu. Að virkja þennan möguleika mun minnka gæði símtala.",
"description": "Details describing the always relay calls setting"
},
"permissions": {
@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Þú ert nú þegar í samtali",
"description": "Tooltip in disabled notification button when you're on another call"
},
@ -6528,7 +6528,7 @@
"description": "Button to switch the settings view"
},
"Preferences__button--chats": {
"message": "Spjöll",
"message": "Spjall",
"description": "Button to switch the settings view (and a title of pane)"
},
"Preferences__button--calls": {
@ -6582,7 +6582,7 @@
"description": "Label for the notification content setting select box"
},
"Preferences--blocked": {
"message": "Bannaður",
"message": "Bannaðir",
"description": "Label for blocked contacts setting"
},
"Preferences--blocked-count-singular": {
@ -6842,11 +6842,11 @@
"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!",
"message": "Ekki láta hávært lyklaglamur eða smjatt frá næsta manni trufla þig - núna er tánmerki með hreyfingu sem lætur þig vita þegar einhver er að tala!",
"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.",
"message": "Listinn yfir studd tungumál er alltaf að lengjast. Við þökkum einlæglega öllum sjálfboðaliðunum sem sjá um þýðingarnar.",
"description": "Release notes for v5.32"
}
}

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Sei già in una chiamata",
"description": "Tooltip in disabled notification button when you're on another call"
},

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": {
@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "あなたはすでに通話中です",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -210,7 +210,7 @@
"description": "Shown in place of the search box when showing archived conversation list"
},
"LeftPane--pinned": {
"message": "Pinned",
"message": "បានខ្ទាស់",
"description": "Shown as a header for pinned conversations in the left pane"
},
"LeftPane--chats": {
@ -452,7 +452,7 @@
"description": "Used on a warning dialog to make it clear that it might be risky to call the conversation."
},
"continueCall": {
"message": "Continue Call",
"message": "បន្តការហៅ",
"description": "Used on a warning dialog to make it clear that it might be risky to continue the group call."
},
"noLongerVerified": {
@ -726,7 +726,7 @@
"description": "Item under the help menu, pops up a screen showing the application's keyboard shortcuts"
},
"contactUs": {
"message": "Contact Us",
"message": "ទាក់ទងយើង",
"description": "Item under the help menu, takes you to the contact us support page"
},
"goToReleaseNotes": {
@ -1240,7 +1240,7 @@
"description": "Shown in timeline when session is automatically reset, to provide access to a popup info dialog"
},
"ChatRefresh--summary": {
"message": "Signal uses end-to-end encryption and it may need to refresh your chat session sometimes. This doesnt affect your chats security but you may have missed a message from this contact and you can ask them to resend it.",
"message": "Signal ប្រើប្រាស់កូដនីយកម្មទាំងសងខាង ហើយជួនកាល​វាអាចត្រូវការផ្ទុកឡើងវិញ​នូវវគ្គជជែករបស់អ្នក។ នេះមិនប៉ះពាល់សន្តិសុខនៃការជជែករបស់អ្នកទេ តែអ្នកអាចខកខានសារមួយពីលេខទំនាក់ទំនងនេះ និងអ្នកអាចសុំគេឲ្យផ្ញើម្តងទៀត។",
"description": "Shown on explainer dialog available from chat session refreshed timeline events"
},
"ChatRefresh--contactSupport": {
@ -1558,7 +1558,7 @@
"description": "Button tooltip label for turning ringing on"
},
"calling__your-video-is-off": {
"message": "Your camera is off",
"message": "កាមេរ៉ារបស់អ្នកបានបិទ",
"description": "Label in the calling lobby indicating that your camera is off"
},
"calling__pre-call-info--empty-group": {
@ -1754,7 +1754,7 @@
"description": "Shown in the participants list to describe how many people are in the call"
},
"calling__in-this-call--one": {
"message": "In this call · 1 person",
"message": "ក្នុងការហៅនេះ · មនុស្ស 1 នាក់",
"description": "Shown in the participants list to describe how many people are in the call"
},
"calling__in-this-call--many": {
@ -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": "Report Spam and Block",
"message": "រាយការណ៍សារឥតបានការ និងហាមឃាត់",
"description": "Shown as a button to let the user block a message request and report spam"
},
"MessageRequests--block-and-report-spam-success-toast": {
@ -3888,7 +3888,7 @@
}
},
"calling__call-notification__ended": {
"message": "The group call has ended",
"message": "ការហៅជាក្រុមត្រូវបានបញ្ចប់",
"description": "Notification message when a group call has ended"
},
"calling__call-notification__started-by-someone": {
@ -3896,7 +3896,7 @@
"description": "Notification message when a group call has started, but we don't know who started it"
},
"calling__call-notification__started-by-you": {
"message": "You started a group call",
"message": "អ្នកបានចាប់ផ្តើមការហៅជាក្រុម",
"description": "Notification message when a group call has started by you"
},
"calling__call-notification__started": {
@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "You are already in a call",
"description": "Tooltip in disabled notification button when you're on another call"
},
@ -4068,11 +4068,11 @@
"description": "Shown in toast when a non-admin starts a group call in an announcements only group"
},
"GroupV2--join--invalid-link--title": {
"message": "Invalid Link",
"message": "តំណភ្ជាប់មិនត្រឹមត្រូវ",
"description": "Shown if we are unable to parse a group link"
},
"GroupV2--join--invalid-link": {
"message": "This is not a valid group link. Make sure the entire link is intact and correct before attempting to join.",
"message": "នេះមិនមែនជាតំណភ្ជាប់ក្រុមត្រឹមត្រូវទេ។ សូមប្រាកដថា តំណភ្ជាប់ទាំងមូលនៅដដែលនិងត្រឹមត្រូវ មុនពេលព្យាយាមចូលរួម។",
"description": "Shown if we are unable to parse a group link"
},
"GroupV2--join--prompt": {
@ -4100,7 +4100,7 @@
"description": "Shown if you click a group link and we can't get information about it"
},
"GroupV2--join--link-revoked": {
"message": "This group link is no longer valid.",
"message": "តំណភ្ជាប់ក្រុមនេះ លែងមានសុពលភាពហើយ។",
"description": "Shown if you click a group link and we can't get information about it"
},
"GroupV2--join--prompt-with-approval": {
@ -4120,7 +4120,7 @@
"description": "The button to cancel request to join the group"
},
"GroupV2--join--cancel-request-to-join--confirmation": {
"message": "Cancel your request to join this group?",
"message": "បោះបង់សំណើរបស់អ្នក​ ដើម្បីចូលរួមក្រុមនេះ?",
"description": "A confirmation message that shows after you click the button"
},
"GroupV2--join--cancel-request-to-join--yes": {
@ -4156,7 +4156,7 @@
}
},
"GroupV2--join--requested": {
"message": "Your request to join has been sent to the group admin. Youll be notified when they take action.",
"message": "ការស្នើសុំរបស់អ្នកដើម្បីចូលក្រុម ត្រូវបានផ្ញើទៅកាន់អ្នកគ្រប់គ្រងក្រុម។ អ្នកនឹងទទួលដំណឹង នៅពេលគេមានសកម្មភាព។",
"description": "Shown in composition area when you've requested to join a group"
},
"GroupV2--join--general-join-failure--title": {
@ -5210,7 +5210,7 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--description--remove--you": {
"message": "You removed the group description.",
"message": "អ្នកបានដកការពណ៌នាក្រុម។",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--description--remove--other": {
@ -5224,7 +5224,7 @@
}
},
"GroupV2--description--remove--unknown": {
"message": "The group description was removed.",
"message": "ការពណ៌នាក្រុមនេះត្រូវបានដកចេញ។",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--description--change--you": {
@ -5242,7 +5242,7 @@
}
},
"GroupV2--description--change--unknown": {
"message": "The group description was changed.",
"message": "ការពណ៌នាក្រុមនេះត្រូវបានផ្លាស់ប្តូរ។",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--announcements--admin--you": {
@ -5292,7 +5292,7 @@
}
},
"GroupV1--Migration--was-upgraded": {
"message": "This group was upgraded to a New Group.",
"message": "ក្រុមនេះ ត្រូវបានដំឡើងទៅក្រុមថ្មី។",
"description": "Shown in timeline when a legacy group (GV1) is upgraded to a new group (GV2)"
},
"GroupV1--Migration--learn-more": {
@ -5328,11 +5328,11 @@
"description": "Shown on Learn More popup after GV1 migration"
},
"GroupV1--Migration--info--invited--many": {
"message": "These members will need to accept an invite to join this group again, and will not receive group messages until they accept:",
"message": "សមាជិកទាំងនេះ នឹងត្រូវយល់ព្រមការអញ្ជើញចួលរួមក្រុមនេះម្តងទៀត ហើយនឹងមិនអាចទទួលសារក្នុងក្រុម រហូតដល់ពួកគេយល់ព្រម៖",
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--invited--one": {
"message": "This member will need to accept an invite to join this group again, and will not receive group messages until they accept:",
"message": "សមាជិកទាំងនេះ នឹងត្រូវយល់ព្រមការអញ្ជើញចួលរួមក្រុមនេះម្តងទៀត ហើយនឹងមិនអាចទទួលសារក្នុងក្រុម រហូតដល់ពួកគេយល់ព្រម៖",
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--removed--before--many": {
@ -5340,7 +5340,7 @@
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--removed--before--one": {
"message": "This member is 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--after--many": {
@ -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 ដំណើរការបានដោយមនុស្សដូចអ្នក។ ចូលរួមចំណែកដើម្បីទទួលបានស្លាកសម្គាល់គណនី។",
"description": "In the instructions for becoming a sustainer. The subheading."
},
"BadgeSustainerInstructions__instructions__1": {
@ -5424,7 +5424,7 @@
"description": "In the instructions for becoming a sustainer. First instruction."
},
"BadgeSustainerInstructions__instructions__2": {
"message": "Tap on your profile photo in the top left to open Settings",
"message": "ចុចលើរូបថតប្រវត្តិរូបរបស់អ្នក នៅខាងលើផ្នែកឆ្វេង ដើម្បីបើក ការកំណត់",
"description": "In the instructions for becoming a sustainer. Second instruction."
},
"BadgeSustainerInstructions__instructions__3": {
@ -5552,7 +5552,7 @@
"description": "This is the additional info for the 'who can send messages' panel"
},
"ConversationDetails--requests-and-invites": {
"message": "Requests & Invites",
"message": "សំណើ និងការអញ្ជើញ",
"description": "This is a button to display which members have been invited but have not joined yet"
},
"ConversationDetailsActions--leave-group": {
@ -5786,7 +5786,7 @@
"description": "This is the modal button to approve group request to join"
},
"PendingRequests--deny": {
"message": "Deny Request",
"message": "បដិសេធសំណើ",
"description": "This is the modal button to deny group request to join"
},
"PendingRequests--info": {
@ -5946,7 +5946,7 @@
}
},
"alreadyAMember": {
"message": "Already a member",
"message": "សមាជិករួចហើយ",
"description": "The label for contact checkboxes that are disabled because they're already a member"
},
"MessageAudio--play": {
@ -6004,7 +6004,7 @@
"description": "Shown in the message request warning dialog. Gives more information about message requests"
},
"MessageRequestWarning__dialog__learn-even-more": {
"message": "About Message Requests",
"message": "អំពីការស្នើរសុំសារ",
"description": "Shown in the message request warning dialog. Clicking this button will open a page on Signal's support site"
},
"ContactSpoofing__same-name": {
@ -6112,7 +6112,7 @@
"description": "Header in the captcha dialog that can be closed"
},
"CaptchaDialog--can-close__body": {
"message": "If you choose to skip verification, you may miss messages from other people and your messages may fail to send.",
"message": "ប្រសិនបើអ្នករំលងការផ្ទៀងផ្ទាត់ អ្នកអាចនឹងបាត់សារពីអ្នកដទៃ ហើយសាររបស់អ្នកប្រហែលបរាជ័យក្នុងការផ្ញើចេញ។",
"description": "Body of the captcha dialog that can be closed"
},
"CaptchaDialog--can_close__skip-verification": {
@ -6120,7 +6120,7 @@
"description": "Skip button of the captcha dialog that can be closed"
},
"verificationComplete": {
"message": "Verification complete.",
"message": "ការផ្ទៀងផ្ទាត់បានបញ្ចប់",
"description": "Displayed after successful captcha"
},
"verificationFailed": {
@ -6222,7 +6222,7 @@
"description": "Label for the saturation slider"
},
"CustomColorEditor__title": {
"message": "Custom Color",
"message": "កំណត់ពណ៌ដោយខ្លួនឯង",
"description": "Modal title for the custom color editor"
},
"customDisappearingTimeOption": {
@ -6234,7 +6234,7 @@
"description": "Text for an option in Conversation Details Disappearing Messages setting when user previously selected custom time"
},
"DisappearingTimeDialog__title": {
"message": "Custom Time",
"message": "ថេរវេលាកំណត់ខ្លួនឯង",
"description": "Title for the custom disappearing message timeout dialog"
},
"DisappearingTimeDialog__body": {
@ -6292,11 +6292,11 @@
"description": "Button text when the group description is too long"
},
"EditConversationAttributesModal__description-warning": {
"message": "Group descriptions will be visible to members of this group and people who have been invited.",
"message": "ការពណ៌នាក្រុម នឹងត្រូវបង្ហាញទៅសមាជិកនៃក្រុមនេះ និងមនុស្សដែលត្រូវបានអញ្ជើញ។",
"description": "Label text shown when editing group description"
},
"ConversationDetailsHeader--add-group-description": {
"message": "Add group description...",
"message": "បន្ថែមការពណ៌នាក្រុម...",
"description": "Placeholder text in the details header for those that can edit the group description"
},
"MediaQualitySelector--button": {
@ -6304,7 +6304,7 @@
"description": "aria-label for the media quality selector button"
},
"MediaQualitySelector--title": {
"message": "Media Quality",
"message": "គុណភាពមេឌៀ",
"description": "Popup selector title"
},
"MediaQualitySelector--standard-quality-title": {
@ -6446,23 +6446,23 @@
"description": "Text that links to a support article"
},
"Bio--speak-freely": {
"message": "Speak Freely",
"message": "និយាយដោយសេរី",
"description": "A default bio option"
},
"Bio--encrypted": {
"message": "Encrypted",
"message": "បានកូដនីយកម្ម",
"description": "A default bio option"
},
"Bio--free-to-chat": {
"message": "Free to chat",
"message": "ឥតគិតថ្លៃជជែក",
"description": "A default bio option"
},
"Bio--coffee-lover": {
"message": "Coffee lover",
"message": "អ្នកស្រលាញ់កាហ្វេ",
"description": "A default bio option"
},
"Bio--taking-break": {
"message": "Taking a break",
"message": "សម្រាកបន្ថិច",
"description": "A default bio option"
},
"ProfileEditorModal--profile": {
@ -6614,11 +6614,11 @@
"description": "Description for the 'who can do X' setting"
},
"Preferences__who-can--everybody": {
"message": "Everybody",
"message": "អ្នកទាំងអស់គ្នា",
"description": "Option for who can see my X select"
},
"Preferences__who-can--contacts": {
"message": "My Contacts",
"message": "លេខទំនាក់ទំនងរបស់ខ្ញុំ",
"description": "Option for who can see my X select"
},
"Preferences__who-can--nobody": {

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "ನೀವು ಈಗಾಗಲೇ ಕಾಲ್‌ನಲ್ಲಿದ್ದೀರಿ",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "이미 통화 참가자 수 최대",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Jixwe tu di gerînekê de yî",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "ທ່ານໄດ້ຢູ່ໄນ ການໂທແລ້ວ",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Jūs jau esate skambutyje",
"description": "Tooltip in disabled notification button when you're on another call"
},
@ -5408,11 +5408,11 @@
"description": "Generic next label"
},
"BadgeDialog__become-a-sustainer-button": {
"message": "Tapti remėju",
"message": "Tapti rėmėju",
"description": "In the badge dialog. This button is shown under sustainer badges, taking users to some instructions"
},
"BadgeSustainerInstructions__header": {
"message": "Tapkite remėju",
"message": "Tapkite rėmėju",
"description": "In the instructions for becoming a sustainer. The heading."
},
"BadgeSustainerInstructions__subheader": {
@ -5428,7 +5428,7 @@
"description": "In the instructions for becoming a sustainer. Second instruction."
},
"BadgeSustainerInstructions__instructions__3": {
"message": "Spustelėkite ant „Tapti remėju“ ir prenumeruokite",
"message": "Spustelėkite ant „Tapti rėmėju“ ir prenumeruokite",
"description": "In the instructions for becoming a sustainer. Third instruction."
},
"CompositionArea--expand": {

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Jūs jau esat zvanā",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Веќе сте на повик",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "നിങ്ങൾ ഇതിനകം ഒരു കോളിൽ ഉണ്ട്",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "आपण आधीच एक कॉलमध्ये आहात",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Anda sudah berada dalam panggilan",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Du er allerede i en samtale",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -218,7 +218,7 @@
"description": "Shown as a header for non-pinned conversations in the left pane"
},
"archiveHelperText": {
"message": "Deze gesprekken zijn gearchiveerd en zullen alleen in Postvak IN verschijnen als je nieuwe berichten ontvangt.",
"message": "Deze gesprekken zijn gearchiveerd en zullen alleen in postvak-in verschijnen als je nieuwe berichten ontvangt.",
"description": "Shown at the top of the archived conversations list in the left pane"
},
"archiveConversation": {
@ -258,7 +258,7 @@
"description": "Header shown on the first screen in the data import process"
},
"loadDataDescription": {
"message": "Je hebt net de exportprodedure doorlopen, en je contacten en berichten wachten geduldig op je computer. Kies de map die je opgeslagen Signal-gegevens bevat.",
"message": "Je hebt zojuist de exportprocedure doorlopen, en je contacten en berichten bevinden zich nu op je computer. Kies de map waarin je Signal-gegevens zijn opgeslagen.",
"description": "Introduction to the process of importing messages and contacts from disk"
},
"importChooserTitle": {
@ -826,7 +826,7 @@
"description": "Shown to separate the types of search results"
},
"contactsHeader": {
"message": "Contacten",
"message": "Contactpersonen",
"description": "Shown to separate the types of search results"
},
"groupsHeader": {
@ -1426,11 +1426,11 @@
"description": "The text on the button to finish the linking process, after choosing the device name"
},
"initialSync": {
"message": "Contacten en groepen worden gesynchroniseerd",
"message": "Contactpersonen en groepen worden gesynchroniseerd",
"description": "Shown during initial link while contacts and groups are being pulled from mobile device"
},
"initialSync__subtitle": {
"message": "Let op: Je gespreksgeschiedenis uit het verleden wordt niet overgezet naar dit apparaat",
"message": "Opmerking: Het is met Signal niet mogelijk om je gespreksgeschiedenis van voor het moment van koppelen te synchroniseren naar dit apparaat",
"description": "Shown during initial link while contacts and groups are being pulled from mobile device"
},
"installConnectionFailed": {
@ -2350,7 +2350,7 @@
"description": "Label underneath number a user enters that is not an existing contact"
},
"newConversation": {
"message": "Nieuw gesprek",
"message": "Nieuw gesprek beginnen",
"description": "Label for header when starting a new conversation"
},
"contactSearchPlaceholder": {
@ -2380,7 +2380,7 @@
}
},
"chooseGroupMembers__title": {
"message": "Kies leden",
"message": "Groepsleden kiezen",
"description": "The title for the 'choose group members' left pane screen"
},
"chooseGroupMembers__back-button": {
@ -2424,11 +2424,11 @@
}
},
"chooseGroupMembers__cant-add-member__title": {
"message": "Kan persoon niet toevoegen aan de groep",
"message": "Deze persoon kan niet worden toegevoegd aan de groep",
"description": "Shown in the alert when you try to add someone who can't be added to a group"
},
"chooseGroupMembers__cant-add-member__body": {
"message": "$name$ kan niet aan de groep worden toegevoegd omdat hij of zij een oude versie van Signal gebruikt. Je kunt hem of haar aan de groep toevoegen nadat hij of zij Signal heeft bijgewerkt.",
"message": "$name$ kan niet aan de groep worden toegevoegd omdat hij of zij een oude versie van Signal gebruikt. Je kunt hem of haar aan de groep toevoegen nadat hij of zij Signal heeft bijgewerkt.",
"description": "Shown in the alert when you try to add someone who can't be added to a group",
"placeholders": {
"max": {
@ -3432,7 +3432,7 @@
}
},
"MessageRequests--message-group": {
"message": "Wil je lid worden van deze groep, en sta je toe dat alle leden van de groep je profielnaam, -foto en -omschrijving kunnen zien? Als je leesbevestigingen hebt ingeschakeld kunnen andere groepsleden die nog niet zien totdat je de uitnodiging hebt aanvaard.",
"message": "Wil je lid worden van deze groep, en sta je toe dat alle leden van de groep je profielnaam, -foto en -omschrijving kunnen zien? Als je leesbevestigingen hebt ingeschakeld kunnen de leden van deze groep die nog niet zien totdat je de uitnodiging hebt aanvaard.",
"description": "Shown as the message for a message request in a group"
},
"MessageRequests--message-group-blocked": {
@ -3909,8 +3909,8 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"message": "Je neemt al aan een oproep deel",
"calling__in-another-call-tooltip": {
"message": "Je neemt op dit moment al aan een oproep deel",
"description": "Tooltip in disabled notification button when you're on another call"
},
"calling__call-notification__button__call-full-tooltip": {

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Du er allereie i ein annan samtale",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "You are already in a call",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "ਤੁਸੀਂ ਪਹਿਲਾਂ ਹੀ ਕਾਲ ਵਿੱਚ ਹੋ",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Uczestniczysz już w rozmowie",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "تاسې له پخوا څخه په ټلیفوني اړیکه کې یاست",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Você já está em uma chamada",
"description": "Tooltip in disabled notification button when you're on another call"
},
@ -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": "ddd, D MMM",
"message": "ddd, D [de] 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": "D MMM, YYYY",
"message": "D [de] MMM, YYYY",
"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": {
@ -6842,11 +6842,11 @@
"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!",
"message": "A partir de agora, em ligações com mais de uma pessoa, um indicador de som animado próximo ao nome de cada pessoa revelará facilmente a origem do som!",
"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.",
"message": "Signal foi traduzido para mais idiomas. Agradecemos sinceramente aos tradutores voluntários cujos esforços tornaram isso possível.",
"description": "Release notes for v5.32"
}
}

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Já se encontra numa chamada",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Ești deja într-un apel",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Вы уже участвуете в другом звонке",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Už ste v hovore",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Ste že v tem klicu",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Jeni tashmë në një thirrje",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Већ имате позив",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -210,7 +210,7 @@
"description": "Shown in place of the search box when showing archived conversation list"
},
"LeftPane--pinned": {
"message": "Fastnålade",
"message": "Nålade",
"description": "Shown as a header for pinned conversations in the left pane"
},
"LeftPane--chats": {
@ -234,7 +234,7 @@
"description": "Undoes Archive Conversation action, and moves archived conversation back to the main conversation list"
},
"pinConversation": {
"message": "Fäst konversation",
"message": "Nåla konversation",
"description": "Shown in menu for conversation, and pins the conversation to the top of the conversation list"
},
"unpinConversation": {
@ -242,7 +242,7 @@
"description": "Undoes Archive Conversation action, and unpins the conversation from the top of the conversation list"
},
"pinnedConversationsFull": {
"message": "Du kan bara fästa upp till fyra chattar",
"message": "Du kan bara nåla upp till fyra chattar",
"description": "Shown in a toast when a user attempts to pin more than the maximum number of chats"
},
"chooseDirectory": {
@ -2126,11 +2126,11 @@
"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": "[Idag] LT",
"description": "Timestamp format string for displaying \"Today\" and the time"
},
"timestampFormat__long__yesterday": {
"message": "[Yesterday] LT",
"message": "[Igår] LT",
"description": "Timestamp format string for displaying \"Yesterday\" and the time"
},
"messageBodyTooLong": {
@ -3022,7 +3022,7 @@
"description": "Shown in the shortcuts guide"
},
"Keyboard--toggle-reaction-picker": {
"message": "Växla emoji-reaktionsväljare för valt meddelande",
"message": "Växla emojireaktionsväljare för valt meddelande",
"description": "Shown in the shortcuts guide"
},
"Keyboard--save-attachment": {
@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Du har redan ett samtal",
"description": "Tooltip in disabled notification button when you're on another call"
},
@ -6732,7 +6732,7 @@
"description": "Label for the redo button in the media editor"
},
"MediaEditor__text--regular": {
"message": "Regular",
"message": "Normal",
"description": "Describes what attribute the color picker will change on the text"
},
"MediaEditor__text--highlight": {
@ -6760,7 +6760,7 @@
"description": "Tip width of the brush"
},
"MediaEditor__draw--regular": {
"message": "Regular",
"message": "Normal",
"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": "Tjock",
"description": "Tip width of the brush"
},
"MediaEditor__crop--reset": {

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Tayari uko kwenye mazungumzo ya simu",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "நீங்கள் ஏற்கனவே அழைப்பில் உள்ளீர்கள்",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "మీరు ఇప్పటికే కాల్‌లో ఉన్నారు",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "คุณอยู่ในสายแล้ว",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Zaten bir aramadasınız",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "سىز چاقىرىقتا",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Ви вже у дзвінку",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "آپ پہلے ہی کال میں ہیں",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "Bạn đã đang ở trong một cuộc gọi",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "您已在通话中",
"description": "Tooltip in disabled notification button when you're on another call"
},

View File

@ -3909,7 +3909,7 @@
}
}
},
"calling__call-notification__button__in-another-call-tooltip": {
"calling__in-another-call-tooltip": {
"message": "你已經在通話中",
"description": "Tooltip in disabled notification button when you're on another call"
},

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.33.0-beta.1",
"version": "5.33.0",
"license": "AGPL-3.0-only",
"author": {
"name": "Open Whisper Systems",
@ -186,7 +186,7 @@
"@babel/preset-typescript": "7.16.0",
"@chanzuckerberg/axe-storybook-testing": "3.0.2",
"@electron/fuses": "1.5.0",
"@signalapp/mock-server": "1.0.1",
"@signalapp/mock-server": "1.1.0",
"@storybook/addon-actions": "5.1.11",
"@storybook/addon-knobs": "5.1.11",
"@storybook/addons": "5.1.11",

View File

@ -4086,7 +4086,7 @@ button.module-image__border-overlay:focus {
position: absolute;
transition: opacity 200ms ease-out;
width: 100%;
z-index: $z-index-base;
z-index: $z-index-above-above-base;
&--hidden {
opacity: 0;

View File

@ -35,7 +35,12 @@ export type EncryptedAttachment = {
// Generate a number between zero and 16383
export function generateRegistrationId(): number {
const id = new Uint16Array(getRandomBytes(2))[0];
const bytes = getRandomBytes(2);
const id = new Uint16Array(
bytes.buffer,
bytes.byteOffset,
bytes.byteLength / 2
)[0];
// eslint-disable-next-line no-bitwise
return id & 0x3fff;

View File

@ -2842,18 +2842,6 @@ async function updateGroup(
activeAt = newAttributes.active_at;
}
conversation.set({
...newAttributes,
active_at: activeAt,
temporaryMemberCount: isInGroup
? undefined
: newAttributes.temporaryMemberCount,
});
if (idChanged) {
conversation.trigger('idUpdated', conversation, 'groupId', previousId);
}
// Save all synthetic messages describing group changes
let syntheticSentAt = initialSentAt - (groupChangeMessages.length + 1);
const changeMessagesToSave = groupChangeMessages.map(changeMessage => {
@ -2915,6 +2903,21 @@ async function updateGroup(
});
}
// We update group membership last to ensure that all notifications are in place before
// the group updates happen on the model.
conversation.set({
...newAttributes,
active_at: activeAt,
temporaryMemberCount: isInGroup
? undefined
: newAttributes.temporaryMemberCount,
});
if (idChanged) {
conversation.trigger('idUpdated', conversation, 'groupId', previousId);
}
// No need for convo.updateLastMessage(), 'newmessage' handler does that
}

View File

@ -12,6 +12,7 @@ import {
deriveStorageManifestKey,
encryptProfile,
decryptProfile,
deriveMasterKeyFromGroupV1,
} from '../Crypto';
import {
mergeAccountRecord,
@ -1046,26 +1047,86 @@ async function processRemoteRecords(
`count=${missingKeys.size}`
);
const ITEM_TYPE = Proto.ManifestRecord.Identifier.Type;
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
const ITEM_TYPE = Proto.ManifestRecord.Identifier.Type;
const sortedStorageItems = decryptedStorageItems.sort((_, b) =>
b.itemType === ITEM_TYPE.ACCOUNT ? -1 : 1
);
// Drop all GV1 records for which we have GV2 record in the same manifest
const masterKeys = new Map<string, string>();
for (const { itemType, storageID, storageRecord } of decryptedStorageItems) {
if (itemType === ITEM_TYPE.GROUPV2 && storageRecord.groupV2?.masterKey) {
masterKeys.set(
Bytes.toBase64(storageRecord.groupV2.masterKey),
storageID
);
}
}
let accountItem: MergeableItemType | undefined;
const prunedStorageItems = decryptedStorageItems.filter(item => {
const { itemType, storageID, storageRecord } = item;
if (itemType === ITEM_TYPE.ACCOUNT) {
if (accountItem !== undefined) {
log.warn(
`storageService.process(${storageVersion}): duplicate account ` +
`record=${redactStorageID(storageID, storageVersion)} ` +
`previous=${redactStorageID(accountItem.storageID, storageVersion)}`
);
droppedKeys.add(accountItem.storageID);
}
accountItem = item;
return false;
}
if (itemType !== ITEM_TYPE.GROUPV1 || !storageRecord.groupV1?.id) {
return true;
}
const masterKey = deriveMasterKeyFromGroupV1(storageRecord.groupV1.id);
const gv2StorageID = masterKeys.get(Bytes.toBase64(masterKey));
if (!gv2StorageID) {
return true;
}
log.warn(
`storageService.process(${storageVersion}): dropping ` +
`GV1 record=${redactStorageID(storageID, storageVersion)} ` +
`GV2 record=${redactStorageID(gv2StorageID, storageVersion)} ` +
'is in the same manifest'
);
droppedKeys.add(storageID);
return false;
});
try {
log.info(
`storageService.process(${storageVersion}): ` +
`attempting to merge records=${sortedStorageItems.length}`
);
const mergedRecords = await pMap(
sortedStorageItems,
(item: MergeableItemType) => mergeRecord(storageVersion, item),
{ concurrency: 5 }
`attempting to merge records=${prunedStorageItems.length}`
);
if (accountItem === undefined) {
log.warn(`storageService.process(${storageVersion}): no account record`);
} else {
log.info(
`storageService.process(${storageVersion}): account ` +
`record=${redactStorageID(accountItem.storageID, storageVersion)}`
);
}
const mergedRecords = [
...(await pMap(
prunedStorageItems,
(item: MergeableItemType) => mergeRecord(storageVersion, item),
{ concurrency: 5 }
)),
// 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
...(accountItem ? [await mergeRecord(storageVersion, accountItem)] : []),
];
log.info(
`storageService.process(${storageVersion}): ` +
`processed records=${mergedRecords.length}`
@ -1190,7 +1251,9 @@ async function sync(
throw new Error('storageService.sync: Cannot start; no storage key!');
}
log.info('storageService.sync: starting...');
log.info(
`storageService.sync: starting... ignoreConflicts=${ignoreConflicts}`
);
let manifest: Proto.ManifestRecord | undefined;
try {
@ -1329,6 +1392,9 @@ async function upload(fromSync = false): Promise<void> {
false
);
await uploadManifest(version, generatedManifest);
// Clear pending delete keys after successful upload
await window.storage.put('storage-service-pending-deletes', []);
} catch (err) {
if (err.code === 409) {
await sleep(conflictBackOff.getAndIncrement());

View File

@ -203,6 +203,8 @@ export function SmartInstallScreen(): ReactElement {
updateProvisioningUrl,
confirmNumber
);
window.removeSetupMenuItems();
} catch (err: unknown) {
if (hasCleanedUp) {
return;

View File

@ -165,12 +165,18 @@ describe('Crypto', () => {
describe('generateRegistrationId', () => {
it('generates an integer between 0 and 16383 (inclusive)', () => {
let max = 0;
for (let i = 0; i < 100; i += 1) {
const id = generateRegistrationId();
assert.isAtLeast(id, 0);
assert.isAtMost(id, 16383);
assert(Number.isInteger(id));
max = Math.max(max, id);
}
// Probability of this being false is ~ 10^{-181}
assert.isAtLeast(max, 0x100);
});
});

View File

@ -0,0 +1,140 @@
// Copyright 2022 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
import { Proto } from '@signalapp/mock-server';
import * as durations from '../../util/durations';
import type { App, Bootstrap } from './fixtures';
import { initStorage, debug } from './fixtures';
const IdentifierType = Proto.ManifestRecord.Identifier.Type;
describe('storage service', function needsName() {
this.timeout(durations.MINUTE);
let bootstrap: Bootstrap;
let app: App;
beforeEach(async () => {
({ bootstrap, app } = await initStorage());
});
afterEach(async () => {
await app.close();
await bootstrap.teardown();
});
it('should drop gv1 record if there is a matching gv2 record', async () => {
const { phone } = bootstrap;
debug('adding both records');
{
const state = await phone.expectStorageState('consistency check');
const groupV1Id = Buffer.from('Wi9258rCEp7AdSdp+jCMlQ==', 'base64');
const masterKey = Buffer.from(
'2+rdvzFGCOJI8POHcPNZHrYQWS/JXmT63R5OXKxhrPk=',
'base64'
);
const updatedState = await phone.setStorageState(
state
.addRecord({
type: IdentifierType.GROUPV1,
record: {
groupV1: {
id: groupV1Id,
},
},
})
.addRecord({
type: IdentifierType.GROUPV2,
record: {
groupV2: {
masterKey,
},
},
})
);
debug('sending fetch storage');
await phone.sendFetchStorage({
timestamp: bootstrap.getTimestamp(),
});
debug('waiting for next storage state');
const nextState = await phone.waitForStorageState({
after: updatedState,
});
assert.isFalse(
nextState.hasRecord(({ type }) => {
return type === IdentifierType.GROUPV1;
}),
'should not have gv1 record'
);
assert.isTrue(
nextState.hasRecord(({ type, record }) => {
if (type !== IdentifierType.GROUPV2) {
return false;
}
if (!record.groupV2?.masterKey) {
return false;
}
return Buffer.from(masterKey).equals(record.groupV2.masterKey);
}),
'should have gv2 record'
);
}
});
it('should drop duplicate account record', async () => {
const { phone } = bootstrap;
debug('duplicating account record');
{
const state = await phone.expectStorageState('consistency check');
const oldAccount = state.findRecord(({ type }) => {
return type === IdentifierType.ACCOUNT;
});
if (oldAccount === undefined) {
throw new Error('should have initial account record');
}
const updatedState = await phone.setStorageState(
state.addRecord({
type: IdentifierType.ACCOUNT,
record: oldAccount.record,
})
);
debug('sending fetch storage');
await phone.sendFetchStorage({
timestamp: bootstrap.getTimestamp(),
});
debug('waiting for next storage state');
const nextState = await phone.waitForStorageState({
after: updatedState,
});
assert.isFalse(
nextState.hasRecord(({ type, key }) => {
return type === IdentifierType.ACCOUNT && key.equals(oldAccount.key);
}),
'should not have old account record'
);
assert.isTrue(
nextState.hasRecord(({ type }) => {
return type === IdentifierType.ACCOUNT;
}),
'should have new account record'
);
}
});
});

View File

@ -2792,14 +2792,35 @@ export default class MessageReceiver
}
function envelopeTypeToCiphertextType(type: number | undefined): number {
if (type === Proto.Envelope.Type.CIPHERTEXT) {
const { Type } = Proto.Envelope;
if (type === Type.CIPHERTEXT) {
return CiphertextMessageType.Whisper;
}
if (type === Proto.Envelope.Type.PLAINTEXT_CONTENT) {
if (type === Type.KEY_EXCHANGE) {
throw new Error(
'envelopeTypeToCiphertextType: Cannot process KEY_EXCHANGE messages'
);
}
if (type === Type.PLAINTEXT_CONTENT) {
return CiphertextMessageType.Plaintext;
}
if (type === Proto.Envelope.Type.PREKEY_BUNDLE) {
if (type === Type.PREKEY_BUNDLE) {
return CiphertextMessageType.PreKey;
}
if (type === Type.RECEIPT) {
return CiphertextMessageType.Plaintext;
}
if (type === Type.UNIDENTIFIED_SENDER) {
throw new Error(
'envelopeTypeToCiphertextType: Cannot process UNIDENTIFIED_SENDER messages'
);
}
if (type === Type.UNKNOWN) {
throw new Error(
'envelopeTypeToCiphertextType: Cannot process UNKNOWN messages'
);
}
throw new Error(`envelopeTypeToCiphertextType: Unknown type ${type}`);
}

View File

@ -66,20 +66,12 @@ export function formatDateTimeShort(
const now = Date.now();
const diff = now - timestamp;
if (diff < MINUTE) {
return i18n('justNow');
}
if (diff < HOUR) {
return i18n('minutesAgo', [Math.floor(diff / MINUTE).toString()]);
if (diff < HOUR || isToday(timestamp)) {
return formatTime(i18n, rawTimestamp);
}
const m = moment(timestamp);
if (isToday(timestamp)) {
return m.format('LT');
}
if (diff < WEEK && m.isSame(now, 'month')) {
return m.format('ddd');
}
@ -123,7 +115,10 @@ export function formatTime(
return i18n('minutesAgo', [Math.floor(diff / MINUTE).toString()]);
}
return moment(timestamp).format('LT');
return new Date(timestamp).toLocaleTimeString([], {
hour: 'numeric',
minute: '2-digit',
});
}
export function formatDate(

View File

@ -1342,10 +1342,10 @@
"@react-spring/shared" "~9.4.0"
"@react-spring/types" "~9.4.0"
"@signalapp/mock-server@1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@signalapp/mock-server/-/mock-server-1.0.1.tgz#ae461528ca18218cf34366d5afa1c672b0ddabe0"
integrity sha512-9XYIFZwwGnFEg/WSffn3KWOHHe/ooL44+UQ3cFX68jEtgOk575EeRZaTFge+XNxzciAbDuCtkWivYCODPBJISA==
"@signalapp/mock-server@1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@signalapp/mock-server/-/mock-server-1.1.0.tgz#1b6ca0f4c89fb2f0b803af06bb6571780edebf10"
integrity sha512-dsrxPhvbNM5kdaGzQSwLc2jgDNkNi93DvccWwSl8P28Wfir/1IVt+8/9alaTen0xr0UBbscfreZ2sJ8junNLjA==
dependencies:
"@signalapp/signal-client" "0.12.1"
debug "^4.3.2"