Compare commits

...

17 Commits
main ... 5.51.x

Author SHA1 Message Date
Josh Perez 934b8ba4a8 v5.51.1 2022-07-26 15:31:29 -04:00
Josh Perez f270e978d7 Updates i18n strings 2022-07-26 15:28:58 -04:00
automated-signal 2c30baea71 Conversation.getProps: Allow for our own ACI to be missing
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2022-07-25 14:39:29 -07:00
automated-signal c396a4032b
Request our PNI along with group credential fetch
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2022-07-25 13:27:53 -07:00
automated-signal b99d401578
Replace mentions with text when forwarding
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2022-07-21 09:49:26 -07:00
Scott Nonnenberg ccc7acf00c v5.51.0 2022-07-20 15:16:13 -07:00
Scott Nonnenberg d77f5a7745 Update strings 2022-07-20 15:15:32 -07:00
automated-signal a5c06d87a2
Update frameless-titlebar to 2.3.5
Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
2022-07-19 09:31:04 -07:00
automated-signal 1875ba0fd2
Titlebar fixes
Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
2022-07-18 17:37:44 -07:00
automated-signal 1d03071dbe
Refresh PNI on startup
Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
2022-07-18 15:58:56 -07:00
Fedor Indutny d7434125eb
Always refetch profile key credential if expired 2022-07-18 13:23:16 -07:00
automated-signal 52686ed089
Repair broken attachments with non-array 'data' fields
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2022-07-18 13:22:27 -07:00
automated-signal 6e04fee57c
Wait for enqueueMessageForSend before resetting message input box
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2022-07-18 12:48:01 -07:00
automated-signal 9e45e0e21f
Spell check: Restore english region support
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2022-07-15 16:50:56 -07:00
automated-signal 87d3282f76
Ensure that the GroupV1 Migration dialog shows
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2022-07-15 15:19:27 -07:00
automated-signal 37ed2d6054
main.ts: Fix main title bar check
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2022-07-15 15:13:14 -07:00
automated-signal 50ad584ed6
Fix missing titlebar on Windows
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2022-07-14 12:32:50 -07:00
103 changed files with 10605 additions and 2288 deletions

File diff suppressed because it is too large Load Diff

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "جاري إرسال الإجابة...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "جاري إرسال التفاعل...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "مشاركة و إظهار القصص",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "لن يصبح بإمكانك بعد الآن مشاركة القصص أو مشاهدتها حينما يكون هذا الخيار غير مُشغَّل.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "توقف",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "التفاعلات مع قصتك",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "التفاعلات مع قصة",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Cavab göndərilir...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Reaksiya göndərilir...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Hekayələri paylaş və nəzərdən keçir",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Bu seçim bağlı olduqda hekayələrə baxa və ya onları paylaşa bilməyəcəksiniz.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Fasilə ver",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Hekayənizə reaksiya verildi",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Hekayəyə reaksiya verildi",
"description": "Used whenever we can't find a user's first name"

View File

@ -218,7 +218,7 @@
"description": "Shown as a header for non-pinned conversations in the left pane"
},
"archiveHelperText": {
"message": "Тези разговори са архивирани и ще се показват във Входящата кутия само ако бъдат получени нови съобщения.",
"message": "Тези разговори са архивирани и ще се показват във Входящата кутия, само ако бъдат получени нови съобщения.",
"description": "Shown at the top of the archived conversations list in the left pane"
},
"noArchivedConversations": {
@ -306,7 +306,7 @@
"description": "Message shown as the export location if we didn't capture the target directory"
},
"upgradingDatabase": {
"message": "Подновяване на базата данни. Това може да отнеме извесно време...",
"message": "Подновяване на базата данни. Това може да отнеме известно време...",
"description": "Message shown on the loading screen when we're changing database structure on first run of a new version"
},
"loadingMessages": {
@ -398,11 +398,11 @@
}
},
"membersNeedingVerification": {
"message": "Номерата ви за безопасност с тези членове от групата са се променили след последното ви потвърждение. Натиснете върху член от групата за да прегледате номера ви за сигурност с тях.",
"message": "Номерата ви за безопасност с тези членове от групата са се променили след последното ви потвърждение. Натиснете върху член от групата, за да прегледате номера ви за сигурност с тях.",
"description": "When there are multiple previously-verified group members with safety number changes, a banner will be shown. The list of contacts with safety number changes is shown, and this text introduces that list."
},
"changedRightAfterVerify": {
"message": "Номерът за безопасност, който се опитвате да потвърдите, се е променил. Моля, прегледайте вашия номер за безопасност с $name1$. Запомнете, това може да означава, че някой се опитва да прихване комуникация ви или $name2$ просто е преинсталирал Signal.",
"message": "Номерът за безопасност, който се опитвате да потвърдите, се е променил. Моля, прегледайте вашия номер за безопасност с $name1$. Запомнете, това може да означава, че някой се опитва да прихване комуникацията ви или $name2$ просто е преинсталирал Signal.",
"description": "Shown on the safety number screen when the user has selected to verify/unverify a contact's safety number, and we immediately discover a safety number change",
"placeholders": {
"name1": {
@ -548,7 +548,7 @@
"description": "Header for a key change dialog"
},
"identityChanged": {
"message": "Номера ви за безопасност с този контакт е променен. Това може да значи че някой се опитва да прихване комуникацията ви, или контакта ви просто е преинсталирал приложението. Потвърдете номерата по-долу.",
"message": "Номерът ви за безопасност с този контакт е променен. Това може да значи че някой се опитва да прихване комуникацията ви, или контакта ви просто е преинсталирал приложението. Потвърдете номера по-долу.",
"description": ""
},
"incomingError": {
@ -588,11 +588,11 @@
"description": "Section header in the media gallery"
},
"thisMonth": {
"message": "Този Месец",
"message": "Този месец",
"description": "Section header in the media gallery"
},
"unsupportedAttachment": {
"message": "Неподдържан прикачен тип. Натиснете за да го запишете.",
"message": "Неподдържан прикачен тип. Натиснете, за да го запишете.",
"description": "Displayed for incoming unsupported attachment"
},
"clickToSave": {
@ -680,7 +680,7 @@
"description": ""
},
"unableToLoadAttachment": {
"message": "Не може да се зареди избрания обект за прикачване.",
"message": "Не може да се зареди избраният обект за прикачване.",
"description": ""
},
"disconnected": {
@ -792,7 +792,7 @@
"description": "Shown in the search box before text is entered when searching in a specific conversation"
},
"noSearchResults": {
"message": "Нама резултати да \"$searchTerm$\"",
"message": "Няма резултати за \"$searchTerm$\"",
"description": "Shown in the search left pane when no results were found",
"placeholders": {
"searchTerm": {
@ -950,7 +950,7 @@
"description": "Shown in toast if user clicks on quote that references message no longer in database"
},
"messageFoundButNotLoaded": {
"message": "Оригиналното съобщение е намерено, но не е заредено.\nСкролнете по-нагоре за да го заредите.",
"message": "Оригиналното съобщение е намерено, но не е заредено.\nСкролнете по-нагоре, за да го заредите.",
"description": "Shown in toast if user clicks on quote references messages not loaded in view, but in database"
},
"voiceRecording--start": {
@ -1260,7 +1260,7 @@
"description": "Shown in timeline when a error happened, and the session was automatically reset."
},
"ChatRefresh--learnMore": {
"message": "Научи Още",
"message": "Научи повече",
"description": "Shown in timeline when session is automatically reset, to provide access to a popup info dialog"
},
"ChatRefresh--summary": {
@ -1286,7 +1286,7 @@
}
},
"DeliveryIssue--learnMore": {
"message": "Научи Още",
"message": "Научи повече",
"description": "Shown in timeline when message delivery issue happens, to provide access to a popup info dialog"
},
"DeliveryIssue--title": {
@ -1364,11 +1364,11 @@
"description": "Tagline displayed under 'installWelcome' string on the install page"
},
"linkedDevices": {
"message": "Свързани Устройства",
"message": "Свързани устройства",
"description": "Used in the guidance to help people find the 'link new device' area of their Signal mobile app"
},
"linkNewDevice": {
"message": "Свържи Ново Устройство",
"message": "Свържи ново устройство",
"description": "The menu option shown in Signal iOS to add a new linked device"
},
"Install__scan-this-code": {
@ -1438,7 +1438,7 @@
"description": "The placeholder for the 'choose device name' input"
},
"Preferences--device-name": {
"message": "Име на Устройството",
"message": "Име на устройството",
"description": "The label in settings panel shown for the user-provided name for this desktop instance"
},
"chooseDeviceName": {
@ -1466,7 +1466,7 @@
"description": ""
},
"installTooOld": {
"message": "Обновете Signal на това устройство, за да свържете с телефона си.",
"message": "Обновете Signal на това устройство, за да го свържете с телефона си.",
"description": ""
},
"installErrorHeader": {
@ -1490,7 +1490,7 @@
"description": "Header for calling options on the settings screen"
},
"calling__call-back": {
"message": "Обратно Повикване",
"message": "Обратно повикване",
"description": "Button to call someone back"
},
"calling__call-again": {
@ -1570,7 +1570,7 @@
"description": "Label under the ring button"
},
"calling__button--ring__disabled-because-group-is-too-large": {
"message": "Групата е твърде голяма за да звъннем на присъстващите.",
"message": "Групата е твърде голяма, за да звъннете на присъстващите.",
"description": "Button tooltip label when you can't ring because the group is too large"
},
"calling__button--ring__off": {
@ -1604,7 +1604,7 @@
"description": "Shown in the calling lobby to describe when it is just you"
},
"calling__pre-call-info--2-people-in-call": {
"message": "$first$и $second$са в този разговор",
"message": "$first$и $second$ са в този разговор",
"description": "Shown in the calling lobby to describe who is in the call",
"placeholders": {
"first": {
@ -1892,7 +1892,7 @@
"description": "Description of the always relay calls setting"
},
"alwaysRelayCallsDetail": {
"message": "Прехвърляне на всички обаждания през Signal сървърва, за да се прикрие IP адресът Ви от контатктът Ви. Активирането ще намали качеството на връзката.",
"message": "Прехвърляне на всички обаждания през Signal сървърва, за да се прикрие IP адресът Ви от контакта Ви. Активирането ще намали качеството на връзката.",
"description": "Details describing the always relay calls setting"
},
"permissions": {
@ -1976,7 +1976,7 @@
"description": "Header for notification settings"
},
"notificationSettingsDialog": {
"message": "Когато пристигнат съобщения, покажи известия които разкриват:",
"message": "Когато пристигнат съобщения, покажи известия, които разкриват:",
"description": "Explain the purpose of the notification settings"
},
"disableNotifications": {
@ -2070,15 +2070,15 @@
"description": "Displays the details of a key change"
},
"showLess": {
"message": "Скрии подробностите",
"message": "Скрий подробностите",
"description": "Hides the details of a key change"
},
"learnMore": {
"message": "Научете по-вече за потвърждението на номерата за безопасност.",
"message": "Научете повече за потвърждението на номерата за безопасност.",
"description": "Text that links to a support article on verifying safety numbers"
},
"expiredWarning": {
"message": "Тази версия на Сигнал за компютър вече е остаряла. Моля, обновете до последната версия за да можете да изпращате съобщения.",
"message": "Тази версия на Сигнал за компютър вече е остаряла. Моля, обновете до последната версия, за да можете да изпращате съобщения.",
"description": "Warning notification that this version of the app has expired"
},
"upgrade": {
@ -2098,23 +2098,23 @@
"description": "Label for contact and group sync settings"
},
"syncExplanation": {
"message": "Импортиране на всички Сигнал групи и контакти от Вашето мобилно устройство.",
"message": "Вкарване на всички Сигнал групи и контакти от Вашето мобилно устройство.",
"description": "Explanatory text for sync settings"
},
"lastSynced": {
"message": "Последно са импортирани на ",
"message": "Последно са вкарани на ",
"description": "Label for date and time of last sync operation"
},
"syncNow": {
"message": "Импортирай сега",
"message": "Вкарай сега",
"description": "Label for a button that syncs contacts and groups from your phone"
},
"syncing": {
"message": "Импортиране...",
"message": "Вкарване...",
"description": "Label for a disabled sync button while sync is in progress."
},
"syncFailed": {
"message": "Импортирането беше неуспешно. Убедете се че компютърът и телефонът Ви са свързани към интернет.",
"message": "Вкарването беше неуспешно. Убедете се, че компютърът и телефонът Ви са свързани към интернет.",
"description": "Informational text displayed if a sync operation times out."
},
"timestamp_s": {
@ -2150,7 +2150,7 @@
}
},
"justNow": {
"message": "Току що",
"message": "Току-що",
"description": "Shown if a message is very recent, less than 60 seconds old"
},
"timestampFormat_M": {
@ -2170,7 +2170,7 @@
"description": "Shown if the user tries to send more than 64kb of text"
},
"unblockToSend": {
"message": "Отблокирай този контакт за да изпратиш съобщение.",
"message": "Отблокирай този контакт, за да изпратиш съобщение.",
"description": "Brief message shown when trying to message a blocked number"
},
"unblockGroupToSend": {
@ -2336,7 +2336,7 @@
"description": "Label on button included with safety number change notification in the conversation"
},
"cannotGenerateSafetyNumber": {
"message": "Потребителя не може да бъде потвърден докато не обмените съобщения с него.",
"message": "Потребителят не може да бъде потвърден, докато не обмените съобщения с него.",
"description": "Shown on the safety number screen if you have never exchanged messages with that contact"
},
"yourSafetyNumberWith": {
@ -2370,7 +2370,7 @@
"description": "Description for the Note to Self conversation"
},
"notificationDrawAttention": {
"message": "Фокусирай този прозорец когато се появи уведомление",
"message": "Фокусирай този прозорец, когато се появи уведомление",
"description": "Label text for the setting that controls whether new notifications draw attention to the window"
},
"hideMenuBar": {
@ -2524,7 +2524,7 @@
"description": "Label underneath number informing user that SMS is not supported on desktop"
},
"newPhoneNumber": {
"message": "Въведете телефонен номер за да добавите контакт.",
"message": "Въведете телефонен номер, за да добавите контакт.",
"description": "Placeholder for adding a new number to a contact"
},
"invalidNumberError": {
@ -2568,7 +2568,7 @@
"description": "Shown in update dialog when partial update fails and we have to ask user to download full update"
},
"autoUpdateNewVersionInstructions": {
"message": "Натиснете Рестарт на Signal за да валидирате промените.",
"message": "Натиснете Рестарт на Signal, за да валидирате промените.",
"description": ""
},
"autoUpdateRestartButtonLabel": {
@ -3280,7 +3280,7 @@
"description": "Shown in the shortcuts guide"
},
"Keyboard--accept-video-call": {
"message": "Accept call with video",
"message": "Приемане на разговора с видео",
"description": "Shown in the calling keyboard shortcuts guide"
},
"Keyboard--accept-audio-call": {
@ -3476,11 +3476,11 @@
"description": "Title for the share stage of the sticker creator"
},
"StickerCreator--ShareStage--help": {
"message": "Имате достъп до Вашите нови стикери от иконата за стикери или споделете с Вашите приятели чрез линка по-долу.",
"message": "Отворете Вашите нови стикери от иконата за стикери или споделете с Вашите приятели чрез линка по-долу.",
"description": "Help text for the share stage of the sticker creator"
},
"StickerCreator--ShareStage--callToAction": {
"message": "Използвайте хаш-таг $hashtag$ за да помогнете на хората да намерят адресите на пакети със стикерия, които искате да споделите публично.",
"message": "Използвайте хаш-таг $hashtag$, за да помогнете на хората да намерят адресите на пакети със стикери, които искате да споделите публично.",
"description": "Call to action text for the share stage of the sticker creator",
"placeholders": {
"hashtag": {
@ -3582,11 +3582,11 @@
"description": "Use in the reaction picker as the alt text for the 'more' button"
},
"ReactionsViewer--all": {
"message": "Lir'ur",
"message": "Всичко",
"description": "Shown in reaction viewer as the title for the 'all' category"
},
"MessageRequests--message-direct": {
"message": "Искате ли да получавате съобщения от $name$ и да виждат името и снимката Ви? Те няма да знаят, че сте видели съобщението им докато не приемете.",
"message": "Искате ли да получавате съобщения от $name$ и да виждат името и снимката Ви? Те няма да знаят, че сте видели съобщението им, докато не приемете.",
"description": "Shown as the message for a message request in a direct message",
"placeholders": {
"name": {
@ -3826,7 +3826,7 @@
}
},
"member-of-more-than-3-groups--multiple-more": {
"message": "Член на $group1$, $group2$, $group3$ или още $remainingCount$ други",
"message": "Член на $group1$, $group2$, $group3$ и още $remainingCount$ други",
"description": "Shown in the conversation hero to indicate this user is a member of 5+ mutual groups.",
"placeholders": {
"group1": {
@ -4450,7 +4450,7 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--avatar--remove--other": {
"message": "$memberName$ премайна аватара на групата.",
"message": "$memberName$ премахна аватара на групата.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"memberName": {
@ -4610,7 +4610,7 @@
}
},
"GroupV2--member-add--from-invite--other": {
"message": "$inviteeName$ при поканата за група от $inviterName$.",
"message": "$inviteeName$ прие поканата за група от $inviterName$.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"inviteeName": {
@ -4624,7 +4624,7 @@
}
},
"GroupV2--member-add--from-invite--other-no-from": {
"message": "$inviteeName$ при поканата за група.",
"message": "$inviteeName$ прие поканата за група.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"inviteeName": {
@ -4906,7 +4906,7 @@
}
},
"GroupV2--member-privilege--demote--other--unknown": {
"message": "Някой администратор премахна администраторските права на $memberName$.",
"message": "Администратор премахна администраторските права на $memberName$.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"memberName": {
@ -4926,7 +4926,7 @@
}
},
"GroupV2--member-privilege--demote--you--unknown": {
"message": "Някой администратор премахна Вашите администраторски права.",
"message": "Администратор премахна Вашите администраторски права.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--pending-add--one--other--other": {
@ -5144,7 +5144,7 @@
}
},
"GroupV2--pending-remove--revoke-invite-from--one--unknown": {
"message": "Администратор оттеглих поканата на $memberName$ за групата до 1 човек .",
"message": "Администратор оттегли поканата на $memberName$ за групата до 1 човек .",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"memberName": {
@ -5394,7 +5394,7 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--group-link-reset--you": {
"message": "Нулирахте връзката на групата.",
"message": "Променихте връзката на групата.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--group-link-reset--other": {
@ -5408,7 +5408,7 @@
}
},
"GroupV2--group-link-reset--unknown": {
"message": "Груповата връзка е нулирана.",
"message": "Груповата връзка е променена.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--description--remove--you": {
@ -5484,7 +5484,7 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV1--Migration--disabled": {
"message": "Обновете групата, за да активирате нови функции като споменавания и администратори. Членове, които не са споделили името или снимката си с групата ще бъдат поканене. $learnMore$",
"message": "Обновете групата, за да активирате нови функции като споменавания и администратори. Членове, които не са споделили името или снимката си с групата, ще бъдат поканени. $learnMore$",
"description": "Shown instead of composition area when user is forced to migrate a legacy group (GV1).",
"placeholders": {
"learnMore": {
@ -5498,7 +5498,7 @@
"description": "Shown in timeline when a legacy group (GV1) is upgraded to a new group (GV2)"
},
"GroupV1--Migration--learn-more": {
"message": "Научи Още",
"message": "Научи повече",
"description": "Shown on a bubble below a 'group was migrated' timeline notification, or as button on Migrate dialog"
},
"GroupV1--Migration--migrate": {
@ -5534,7 +5534,7 @@
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--invited--one": {
"message": "Този члено трябва да приеме поканата за влизане в групата и няма да получава съобщения от групата докато не се съгласи.",
"message": "Този член трябва да приеме поканата за влизане в групата и няма да получава съобщения от групата докато не се съгласи.",
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--removed--before--many": {
@ -5698,7 +5698,7 @@
"description": "This is a button in the conversation context menu to show the chat color editor"
},
"showConversationDetails": {
"message": "Настройки на Група",
"message": "Настройки на група",
"description": "This is a button in the conversation context menu to show group settings"
},
"showConversationDetails--direct": {
@ -5882,11 +5882,11 @@
"description": "This lets users share their group link"
},
"GroupLinkManagement--confirm-reset": {
"message": "Наистина ли искате да нулирате груповата връзка? Хората вече няма да могат да се присъединят към групата чрез текущата връзка.",
"message": "Наистина ли искате да промените груповата връзка? Хората вече няма да могат да се присъединят към групата чрез текущата връзка.",
"description": "Shown in the confirmation dialog when an admin is about to reset the group link"
},
"GroupLinkManagement--reset": {
"message": "Нулиране на връзката",
"message": "Промяна на връзката",
"description": "This lets users generate a new group link"
},
"GroupLinkManagement--approve-label": {
@ -6366,7 +6366,7 @@
"description": "Header in the captcha dialog"
},
"CaptchaDialog__first-paragraph": {
"message": "С цел да преотвратим спам в Сигнал, моля потвърдете.",
"message": "С цел да предотвратим спам в Сигнал, моля потвърдете.",
"description": "First paragraph in the captcha dialog"
},
"CaptchaDialog__second-paragraph": {
@ -6716,7 +6716,7 @@
}
},
"ProfileEditor--learnMore": {
"message": "Научи Още",
"message": "Научи повече",
"description": "Text that links to a support article"
},
"Bio--speak-freely": {
@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Изпращане на отговор...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Изпращане на реакция...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Споделяне и преглед на истории",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Когато тази опция е изключена, няма да можете да споделяте или разглеждате Истории.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Пауза",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Реагира на вашата история",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Реагира на история",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "রিপ্লাই পাঠানো হচ্ছে...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "রিঅ্যাকশন পাঠানো হচ্ছে...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "স্টোরি শেয়ার করুন এবং দেখুন",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "এই অপশনটি বন্ধ থাকলে আপনি আর স্টোরি শেয়ার করতে বা দেখতে পাবেন না৷",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "পজ করুন",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "আপনার স্টোরি-তে রিঅ্যাক্ট করা হয়েছে",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "একটি স্টোরি-তে রিঅ্যাক্ট করা হয়েছে",
"description": "Used whenever we can't find a user's first name"

View File

@ -168,7 +168,7 @@
"description": "Shown in the context menu for a link to indicate that the user can copy the link"
},
"contextMenuCopyImage": {
"message": "Kopiraj slika",
"message": "Kopiraj sliku",
"description": "Shown in the context menu for an image to indicate that the user can copy the image"
},
"contextMenuNoSuggestions": {
@ -184,7 +184,7 @@
"description": "One of the menu options available in the Avatar popup menu"
},
"avatarMenuUpdateAvailable": {
"message": "Ažurirajte Signal",
"message": "Ažuriraj Signal",
"description": "One of the menu options available in the Avatar popup menu"
},
"loading": {
@ -206,11 +206,11 @@
}
},
"archivedConversations": {
"message": "Arhivirane Konverzacije",
"message": "Arhivirani razgovori",
"description": "Shown in place of the search box when showing archived conversation list"
},
"LeftPane--pinned": {
"message": "Istaknuto",
"message": "Prikvačeno",
"description": "Shown as a header for pinned conversations in the left pane"
},
"LeftPane--chats": {
@ -250,7 +250,7 @@
"description": "Shown in a toast when a user attempts to pin more than the maximum number of chats"
},
"chooseDirectory": {
"message": "Odaberi direktorij",
"message": "Odaberi mapu",
"description": "Button to allow the user to find a folder on disk"
},
"chooseFile": {
@ -270,7 +270,7 @@
"description": "Title of the popup window used to select data previously exported"
},
"importErrorHeader": {
"message": "Nešto je pošlo po zlu!",
"message": "Nešto nije u redu!",
"description": "Header of the error screen after a failed import"
},
"importingHeader": {
@ -286,7 +286,7 @@
"description": "Message shown if the import went wrong; second paragraph"
},
"importAgain": {
"message": "Odaberi direktorij i pokušaj ponovo",
"message": "Odaberi mapu i pokušaj ponovno",
"description": "Button shown if the user runs into an error during import, allowing them to start over"
},
"importCompleteHeader": {
@ -306,7 +306,7 @@
"description": "Message shown as the export location if we didn't capture the target directory"
},
"upgradingDatabase": {
"message": "Nadogradnja baze. Ovo može potrajati neko vrijeme...",
"message": "Nadogradnja baze podataka. Ovo može potrajati...",
"description": "Message shown on the loading screen when we're changing database structure on first run of a new version"
},
"loadingMessages": {
@ -332,7 +332,7 @@
"description": "Displayed when a user can't send a message because something has gone wrong in the conversation."
},
"scrollDown": {
"message": "Spusti na dno konverzacije",
"message": "Idi na dno razgovora",
"description": "Alt text for button to take user down to bottom of conversation, shown when user scrolls up"
},
"messagesBelow": {
@ -344,7 +344,7 @@
"description": "Text for unread message separator, just one message"
},
"unreadMessages": {
"message": "$count$nepročitanih poruka",
"message": "Broj nepročitanih poruka: $count$",
"description": "Text for unread message separator, with count",
"placeholders": {
"count": {
@ -398,7 +398,7 @@
}
},
"membersNeedingVerification": {
"message": "Your safety numbers with these group members have changed since you last verified. Click a group member to see your new safety number with them.",
"message": "Vaši sigurnosni brojevi kod ovih članova grupe su se promijenili od vaše zadnje provjere. Kliknite na jednog člana grupe kako biste vidjeli vaš sigurnosni broj kod njih.",
"description": "When there are multiple previously-verified group members with safety number changes, a banner will be shown. The list of contacts with safety number changes is shown, and this text introduces that list."
},
"changedRightAfterVerify": {
@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Slanje odgovora...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Slanje reakcije...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Dijelite i gledajte priče",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Nećete moći dijeliti i vidjeti priče nakon što isključite ovu opciju.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Pauziranje",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Reagovao/la na Vašu priču",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Reagovao/la na priču",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Enviant resposta...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Enviant reacció...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Compartir i veure històries",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Ja no podreu compartir ni veure històries quan aquesta opció estigui desactivada.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Pausa",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Ha reaccionat a la vostra història",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Ha reaccionat a una història.",
"description": "Used whenever we can't find a user's first name"

File diff suppressed because it is too large Load Diff

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Sending reply...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Sending reaction...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Share & View Stories",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Fyddwch chi ddim yn gallu rhannu na gweld Straeon bellach pan fydd y dewis hwn wedi'i ddiffodd.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Oedi",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Wedi ymateb i'ch stori",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Wedi ymateb i'r stori",
"description": "Used whenever we can't find a user's first name"
@ -7335,6 +7347,10 @@
"message": "Ddim ar gael bellach",
"description": "Label for when a story is not found"
},
"ContextMenu--button": {
"message": "Context menu",
"description": "Default aria-label for the context menu buttons"
},
"WhatsNew__modal-title": {
"message": "Be sy'n Newydd",
"description": "Title for the whats new modal"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Sender svar...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Sender reaktion...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Del og se Historier",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Du vil ikke længere kunne dele eller se historier, når denne indstilling er slået fra.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Pause",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Reagerede på din historie",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Reagerede på en historie",
"description": "Used whenever we can't find a user's first name"
@ -7336,7 +7348,7 @@
"description": "Label for when a story is not found"
},
"ContextMenu--button": {
"message": "Context menu",
"message": "Genvejsmenu",
"description": "Default aria-label for the context menu buttons"
},
"WhatsNew__modal-title": {

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Antwort wird verschickt …",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Reaktion wird verschickt …",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Storys teilen & betrachten",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Wenn diese Option deaktiviert ist, können keine Stories geteilt und angesehen werden.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Pause",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Auf deine Story reagiert",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Auf eine Story reagiert",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Γίνεται αποστολή απάντησης...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Γίνεται αποστολή αντίδρασης...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Κοινοποίηση και προβολή ιστοριών",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Δεν θα μπορείς πια να μοιραστείς ή να δεις Ιστορίες όταν αυτή η επιλογή είναι απενεργοποιημένη.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Παύση",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Αντέδρασε στην ιστορία σου",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Αντέδρασε σε μια ιστορία",
"description": "Used whenever we can't find a user's first name"
@ -7336,7 +7348,7 @@
"description": "Label for when a story is not found"
},
"ContextMenu--button": {
"message": "Μενού πληροφοριών",
"message": "Μενού περιβάλλοντος",
"description": "Default aria-label for the context menu buttons"
},
"WhatsNew__modal-title": {

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Sending reply...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Sending reaction...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Share & View Stories",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Vi ne plu povos kunhavigi aŭ vidi rakontojn, se tiu opcio estas malŝaltita.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Paŭzigi",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Reagis al via rakonto",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Reagis al rakonto",
"description": "Used whenever we can't find a user's first name"
@ -7335,6 +7347,10 @@
"message": "Ne plu disponebla",
"description": "Label for when a story is not found"
},
"ContextMenu--button": {
"message": "Context menu",
"description": "Default aria-label for the context menu buttons"
},
"WhatsNew__modal-title": {
"message": "Kio novas",
"description": "Title for the whats new modal"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Sending reply...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Sending reaction...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Share & View Stories",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "No podrás ver o compartir historias con esta opción desactivada.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Pausa",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Reaccionó a tu historia",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Reaccionó a una historia",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Vastuse saatmine …",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Reaktsiooni saatmine …",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Jaga ja vaata lugusid",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Kui see valik välja on lülitatud, ei saa sa enam lugusid jagada ega vaadata.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Paus",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Reageeris sinu loole",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Reageeris loole",
"description": "Used whenever we can't find a user's first name"

File diff suppressed because it is too large Load Diff

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "در حال ارسال پاسخ...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "در حال ارسال واکنش...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "اشتراک‌گذاری و نمایش استوری‌ها",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "وقتی این گزینه خاموش است، دیگر نمی‌توانید استوری‌ها را اشتراک‌گذاری یا مشاهده کنید.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "مکث",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "به استوری شما واکنش نشان داده شد",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "به یک استوری واکنش نشان داده شد",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Lähetetään vastausta...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Lähetetään reaktiota...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Jaa ja katso tarinoita",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Et voi enää jakaa tai katsoa tarinoita, kun tämä valinta on valittuna.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Pysäytä",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "lähetti reaktion tarinaasi",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Lähetti reaktion tarinaan",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Envoyer une réponse",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Envoyer une réaction",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Partager et voir les stories",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Vous ne pourrez plus partager ni voir les histoires si cette option est désactivée.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Mettre en pause",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "A réagi à votre histoire",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "A réagi à une histoire",
"description": "Used whenever we can't find a user's first name"

View File

@ -48,7 +48,7 @@
"description": "The label that is used for the Window menu in the program main menu. The '&' indicates that the following letter will be used as the keyboard 'shortcut letter' for accessing the menu with the Alt-<letter> combination."
},
"mainMenuHelp": {
"message": "A&xuda",
"message": "&Axuda",
"description": "The label that is used for the Help menu in the program main menu. The '&' indicates that the following letter will be used as the keyboard 'shortcut letter' for accessing the menu with the Alt-<letter> combination."
},
"mainMenuSettings": {
@ -64,7 +64,7 @@
"description": "Application menu command to hide the window"
},
"appMenuHideOthers": {
"message": "Ocultar outros",
"message": "Agochar outros",
"description": "Application menu command to hide all other windows"
},
"appMenuUnhide": {
@ -104,7 +104,7 @@
"description": "Edit menu command to remove the selected text"
},
"editMenuSelectAll": {
"message": "Escoller todo",
"message": "Seleccionar todo",
"description": "Edit menu command to select all of the text in selected text box"
},
"editMenuStartSpeaking": {
@ -148,7 +148,7 @@
"description": "View menu command to enter or leave Full Screen mode"
},
"viewMenuToggleDevTools": {
"message": "Mudar ferramentas de desenvolvemento",
"message": "Cambiar ferramentas de desenvolvemento",
"description": "View menu command to show or hide the developer tools"
},
"menuSetupAsNewDevice": {
@ -246,7 +246,7 @@
"description": "Undoes Archive Conversation action, and unpins the conversation from the top of the conversation list"
},
"pinnedConversationsFull": {
"message": "Só se poden marcar 4 conversas",
"message": "Só se poden fixar 4 conversas",
"description": "Shown in a toast when a user attempts to pin more than the maximum number of chats"
},
"chooseDirectory": {
@ -286,7 +286,7 @@
"description": "Message shown if the import went wrong; second paragraph"
},
"importAgain": {
"message": "Escolla o cartafol e inténtao de novo",
"message": "Escolle o cartafol e inténtao de novo",
"description": "Button shown if the user runs into an error during import, allowing them to start over"
},
"importCompleteHeader": {
@ -298,11 +298,11 @@
"description": "Button shown at end of successful import process, nothing left but a restart"
},
"importCompleteLinkButton": {
"message": "Vincule este dispositivo co seu teléfono",
"message": "Vincula este dispositivo co teu teléfono",
"description": "Button shown at end of successful 'light' import process, so the standard linking process still needs to happen"
},
"selectedLocation": {
"message": "a súa información de localización",
"message": "a túa información de localización",
"description": "Message shown as the export location if we didn't capture the target directory"
},
"upgradingDatabase": {
@ -354,11 +354,11 @@
}
},
"messageHistoryUnsynced": {
"message": "Pola túa seguridade, o historial das conversas non se transfire aos novos dispositivos ligados.",
"message": "Pola túa seguridade, o historial das conversas non se transfire aos novos dispositivos vinculados.",
"description": "Shown in the conversation history when a user links a new device to explain what is not supported."
},
"youMarkedAsVerified": {
"message": "Marcaches o teu Número de Seguranza con $name$ como verificado",
"message": "Marcaches o teu número de seguranza con $name$ como verificado",
"description": "Shown in the conversation history when the user marks a contact as verified.",
"placeholders": {
"name": {
@ -368,7 +368,7 @@
}
},
"youMarkedAsNotVerified": {
"message": "Marcaches como sen verificar o teu número de seguranza con $name$",
"message": "Marcaches o teu número de seguranza con $name$ como non verificado",
"description": "Shown in the conversation history when the user marks a contact as not verified, whether on the Safety Number screen or by dismissing a banner or dialog.",
"placeholders": {
"name": {
@ -388,7 +388,7 @@
}
},
"youMarkedAsNotVerifiedOtherDevice": {
"message": "Marcaches como sen verificar o teu número de seguranza con $name$ desde outro dispositivo",
"message": "Marcaches o teu número de seguranza con $name$ como non verificado desde outro dispositivo",
"description": "Shown in the conversation history when we discover that the user marked a contact as not verified on another device.",
"placeholders": {
"name": {
@ -416,7 +416,7 @@
}
},
"changedVerificationWarning": {
"message": "As seguintes persoas pode que reinstalasen ou cambiasen de dispositivo. Comproba o número de seguranza con elas para garantir a privacidade.",
"message": "As seguintes persoas pode que volvesen instalar ou cambiasen de dispositivo. Comproba o número de seguranza con elas para garantir a privacidade.",
"description": "Shown on confirmation dialog when user attempts to send a message"
},
"safetyNumberChangeDialog__pending-messages": {
@ -492,15 +492,15 @@
"description": "Shown as the text for the download button on the debug log screen"
},
"debugLogLinkCopied": {
"message": "Copiouse a ligazón no portaretallos",
"message": "Copiouse a ligazón no portapapeis",
"description": "Shown in a toast to let the user know that the link to the debug log has been copied to their clipboard"
},
"reportIssue": {
"message": "Contactar coa Axuda",
"message": "Contactar con Axuda",
"description": "Link to open the issue tracker"
},
"gotIt": {
"message": "Entendo",
"message": "Entendido!",
"description": "Label for a button that dismisses a dialog. The user clicks it to confirm that they understand the message in the dialog."
},
"submit": {
@ -592,7 +592,7 @@
"description": "Section header in the media gallery"
},
"unsupportedAttachment": {
"message": "Tipo de anexo que non se acepta. Prema para gardar.",
"message": "O tipo de anexo non se acepta. Prema para gardar.",
"description": "Displayed for incoming unsupported attachment"
},
"clickToSave": {
@ -608,7 +608,7 @@
"description": "Name for a voice message attachment"
},
"dangerousFileType": {
"message": "Este tipo de anexos non se permite por motivos de seguridade.",
"message": "Este tipo de anexos non se permite por motivos de seguridade",
"description": "Shown in toast when user attempts to send .exe file, for example"
},
"loadingPreview": {
@ -664,7 +664,7 @@
"description": "Label for the decryption error toast button"
},
"oneNonImageAtATimeToast": {
"message": "Ao incluír un adxunto sen imaxe, o límite é dun anexo por mensaxe.",
"message": "Ao incluír un anexo sen imaxe, o límite é dun anexo por mensaxe.",
"description": "An error popup when the user has attempted to add an attachment"
},
"cannotMixImageAndNonImageAttachments": {
@ -680,7 +680,7 @@
"description": ""
},
"unableToLoadAttachment": {
"message": "Non foi posíbel abrir o anexo escollido.",
"message": "Non se puido abrir o anexo escollido.",
"description": ""
},
"disconnected": {
@ -748,11 +748,11 @@
"description": "Title of the window that pops up with Signal Desktop preferences in it"
},
"signalDesktopStickerCreator": {
"message": "Creador de paquetes de iconas",
"message": "Creador de paquetes de stickers",
"description": "Title of the window that pops up with Signal Desktop preferences in it"
},
"aboutSignalDesktop": {
"message": "Sobre de Signal Desktop",
"message": "Sobre Signal Desktop",
"description": "Item under the Help menu, which opens a small about window"
},
"screenShareWindow": {
@ -792,7 +792,7 @@
"description": "Shown in the search box before text is entered when searching in a specific conversation"
},
"noSearchResults": {
"message": "Sen resultados para \"$searchTerm$\"",
"message": "Sen resultados para «$searchTerm$»",
"description": "Shown in the search left pane when no results were found",
"placeholders": {
"searchTerm": {
@ -806,7 +806,7 @@
"description": "Shown in the search left pane when no results were found and primary device has SMS/MMS handling enabled"
},
"noSearchResultsInConversation": {
"message": "Sen resultados para \"$searchTerm$\" en $conversationName$",
"message": "Sen resultados para «$searchTerm$» en $conversationName$",
"description": "Shown in the search left pane when no results were found",
"placeholders": {
"searchTerm": {
@ -876,7 +876,7 @@
"description": "Used as the 'title' attribute for the typing animation"
},
"contactInAddressBook": {
"message": "Esta persoa está nos seus contactos.",
"message": "Esta persoa está nos teus contactos.",
"description": "Description of icon denoting that contact is from your address book"
},
"contactAvatarAlt": {
@ -906,7 +906,7 @@
"description": "Shown on contact detail screen as a label for a phone or email"
},
"email": {
"message": "Correo electrónico",
"message": "correo electrónico",
"description": "Generic label shown if contact email has custom type but no label"
},
"phone": {
@ -938,7 +938,7 @@
"description": "Shown in triple-dot menu next to message to allow user to react to the associated message"
},
"replyToMessage": {
"message": "Responder a mensaxe",
"message": "Responder á mensaxe",
"description": "Shown in triple-dot menu next to message to allow user to start crafting a message with a quotation"
},
"originalMessageNotFound": {
@ -946,7 +946,7 @@
"description": "Shown in quote if reference message was not found as message was initially downloaded and processed"
},
"originalMessageNotAvailable": {
"message": "A mensaxe orixinal xa non está máis dispoñible",
"message": "A mensaxe orixinal xa non está dispoñible",
"description": "Shown in toast if user clicks on quote that references message no longer in database"
},
"messageFoundButNotLoaded": {
@ -1028,7 +1028,7 @@
"description": "A button shown in dialog requesting the user to turn on audio permissions"
},
"audio": {
"message": "Audio",
"message": "Son",
"description": "Shown in a quotation of a message containing an audio attachment if no text was originally provided with that attachment"
},
"video": {
@ -1048,7 +1048,7 @@
"description": "Shown as the title of our update error dialogs on windows"
},
"muted": {
"message": "Acalado",
"message": "Silenciado",
"description": "Shown in a button when a conversation is muted"
},
"mute": {
@ -1154,7 +1154,7 @@
"description": "Text shown in the confirmation dialog for deleting a message locally"
},
"deleteForEveryoneWarning": {
"message": "Esta mensaxe será eliminada para todos na conversa se están nunha versión recente de Signal. Poderán ver que eliminaches a mensaxe.",
"message": "Esta mensaxe eliminarase para todos na conversa se están nunha versión recente de Signal. Poderán ver que eliminaches a mensaxe.",
"description": "Text shown in the confirmation dialog for deleting a message for everyone"
},
"from": {
@ -1216,7 +1216,7 @@
"description": "Generic label for back"
},
"goBack": {
"message": "Ir atrás",
"message": "Volver",
"description": "Label for back button in a conversation"
},
"moreInfo": {
@ -1248,7 +1248,7 @@
"description": "Menu item for deleting messages, title case."
},
"deleteConversationConfirmation": {
"message": "Quere borrar de xeito permanente a conversa seleccionada?",
"message": "Queres borrar de xeito permanente a conversa seleccionada?",
"description": "Confirmation dialog text that asks the user if they really wish to delete the conversation. Answer buttons use the strings 'ok' and 'cancel'. The deletion is permanent, i.e. it cannot be undone."
},
"sessionEnded": {
@ -1268,7 +1268,7 @@
"description": "Shown on explainer dialog available from chat session refreshed timeline events"
},
"ChatRefresh--contactSupport": {
"message": "Contactar coa Axuda",
"message": "Contactar con Axuda",
"description": "Shown on explainer dialog available from chat session refreshed timeline events"
},
"DeliveryIssue--preview": {
@ -1446,7 +1446,7 @@
"description": "The header shown on the 'choose device name' screen in the device linking process"
},
"finishLinkingPhone": {
"message": "Acabouse de ligar este teléfono",
"message": "Acabouse de vincular este teléfono",
"description": "The text on the button to finish the linking process, after choosing the device name"
},
"initialSync": {
@ -1586,7 +1586,7 @@
"description": "Label in the calling lobby indicating that your camera is off"
},
"calling__pre-call-info--empty-group": {
"message": "Ninguén máis aquí",
"message": "Non hai ninguén máis",
"description": "Shown in the calling lobby to describe who is in the call"
},
"calling__pre-call-info--1-person-in-call": {
@ -1774,7 +1774,7 @@
}
},
"calling__in-this-call--zero": {
"message": "Ninguén máis aquí",
"message": "Non hai ninguén máis",
"description": "Shown in the participants list to describe how many people are in the call"
},
"calling__in-this-call--one": {
@ -1802,7 +1802,7 @@
}
},
"calling__block-info": {
"message": "Non recibirás o seu audio ou vídeo nin eles o teu.",
"message": "Non recibirás as súas mensaxes de son ou vídeos nin eles os teus.",
"description": "Shown in the modal dialog to describe how blocking works in a group call"
},
"calling__overflow__scroll-up": {
@ -1948,7 +1948,7 @@
"description": "Button in the settings dialog starting process to delete all data"
},
"deleteAllDataHeader": {
"message": "Quere eliminar todos os datos?",
"message": "Queres eliminar todos os datos?",
"description": "Header of the full-screen delete data confirmation screen"
},
"deleteAllDataBody": {
@ -1984,7 +1984,7 @@
"description": "Label for disabling notifications"
},
"nameAndMessage": {
"message": "Nome, contido e accions",
"message": "Nome, contido e accións",
"description": "Label for setting notifications to display name and message text"
},
"noNameOrMessage": {
@ -2046,7 +2046,7 @@
}
},
"sendFailed": {
"message": "Fallou o envío",
"message": "Erro no envío",
"description": "Shown on outgoing message if it fails to send"
},
"deleteFailed": {
@ -2058,7 +2058,7 @@
"description": "Shown on outgoing message if it cannot be sent immediately"
},
"partiallySent": {
"message": "Enviado parcialmente, toca para detalles",
"message": "Enviado parcialmente, preme para máis detalles",
"description": "Shown on outgoing message if it is partially sent"
},
"partiallyDeleted": {
@ -2114,7 +2114,7 @@
"description": "Label for a disabled sync button while sync is in progress."
},
"syncFailed": {
"message": "Erro ao importar. Asegúrate de que o teu ordenador e o teu teléfono está conectados a internet.",
"message": "Erro ao importar. Asegúrate de que o teu ordenador e o teu teléfono están conectados a Internet.",
"description": "Informational text displayed if a sync operation times out."
},
"timestamp_s": {
@ -2226,11 +2226,11 @@
"description": "Label for option to turn off message expiration in the timer menu"
},
"disappearingMessages": {
"message": "Desaparición das mensaxes",
"message": "Mensaxes temporais",
"description": "Conversation menu option to enable disappearing messages. Title of the settings section for Disappearing Messages. Label of the disappearing timer select in group creation flow"
},
"disappearingMessagesDisabled": {
"message": "Desaparición das mensaxes desactivada",
"message": "Mensaxes temporais desactivadas",
"description": "Displayed in the left pane when the timer is turned off"
},
"disappearingMessagesDisabledByMember": {
@ -2248,7 +2248,7 @@
}
},
"youDisabledDisappearingMessages": {
"message": "Desactivaches a desaparición das mensaxes.",
"message": "Desactivaches as mensaxes temporais.",
"description": "Displayed in the conversation list when the timer is turned off"
},
"timerSetTo": {
@ -2310,7 +2310,7 @@
}
},
"SafetyNumberModal__title": {
"message": "Verifica a chave de identificación",
"message": "Verifica o número de seguranza",
"description": "Title for the modal for safety number verification"
},
"safetyNumberChanged": {
@ -2332,11 +2332,11 @@
}
},
"verifyNewNumber": {
"message": "Verifica a chave de identificación",
"message": "Verifica o número de seguranza",
"description": "Label on button included with safety number change notification in the conversation"
},
"cannotGenerateSafetyNumber": {
"message": "Este usuario non pode ser verificado ata que intercambies mensaxes con el/a.",
"message": "Este usuario non pode verificarse ata que intercambiedes mensaxes.",
"description": "Shown on the safety number screen if you have never exchanged messages with that contact"
},
"yourSafetyNumberWith": {
@ -2366,7 +2366,7 @@
"description": "Name for the conversation with your own phone number"
},
"noteToSelfHero": {
"message": "Podes engadir notas para ti mesmo nesta conversa. Se a conta ten dispositivos ligados, as notas tamén se sincronizan.",
"message": "Podes engadir notas para ti mesmo nesta conversa. Se a conta ten dispositivos vinculados, as notas tamén se sincronizan.",
"description": "Description for the Note to Self conversation"
},
"notificationDrawAttention": {
@ -2862,11 +2862,11 @@
"description": "Shown in a toast if the user attempts to install a sticker pack and it fails"
},
"stickers--StickerManager--InstalledPacks": {
"message": "Adhesivos instalados",
"message": "Stickers instalados",
"description": "Shown in the sticker pack manager above your installed sticker packs."
},
"stickers--StickerManager--InstalledPacks--Empty": {
"message": "Sen adhesivos instalados",
"message": "Sen stickers instalados",
"description": "Shown in the sticker pack manager when you don't have any installed sticker packs."
},
"stickers--StickerManager--BlessedPacks": {
@ -2878,11 +2878,11 @@
"description": "Shown in the sticker pack manager when there are no blessed sticker packs available."
},
"stickers--StickerManager--ReceivedPacks": {
"message": "Adhesivos que recibiches",
"message": "Stickers que recibiches",
"description": "Shown in the sticker pack manager above sticker packs which you have received in messages."
},
"stickers--StickerManager--ReceivedPacks--Empty": {
"message": "Os adhesivos das mensaxes entrantes aparecerán aquí",
"message": "Os stickers das mensaxes entrantes aparecerán aquí",
"description": "Shown in the sticker pack manager when you have not received any sticker packs in messages."
},
"stickers--StickerManager--Install": {
@ -2984,7 +2984,7 @@
"description": "Label for recents emoji picker button"
},
"EmojiPicker__button--emoji": {
"message": "Emoji",
"message": "Emoticona",
"description": "Label for emoji emoji picker button"
},
"EmojiPicker__button--animal": {
@ -3256,11 +3256,11 @@
"description": "Header of the keyboard shortcuts guide - composer section"
},
"Keyboard--scroll-to-top": {
"message": "Desprazarse ata o fondo da lista",
"message": "Desprazarse ata o principio da lista",
"description": "Shown in the shortcuts guide"
},
"Keyboard--scroll-to-bottom": {
"message": "Desprazarse ata a cima da lista",
"message": "Desprazarse ata o final da lista",
"description": "Shown in the shortcuts guide"
},
"Keyboard--close-curent-conversation": {
@ -3272,11 +3272,11 @@
"description": "Header of the keyboard shortcuts guide - calling section"
},
"Keyboard--toggle-audio": {
"message": "Conmutar silenciar",
"message": "Activar ou desactivar silencio",
"description": "Shown in the shortcuts guide"
},
"Keyboard--toggle-video": {
"message": "Conmutar vídeo",
"message": "Activar ou desactivar vídeo",
"description": "Shown in the shortcuts guide"
},
"Keyboard--accept-video-call": {
@ -3288,7 +3288,7 @@
"description": "Shown in the calling keyboard shortcuts guide"
},
"Keyboard--start-audio-call": {
"message": "Iniciar chamada de audio",
"message": "Iniciar chamada de son",
"description": "Shown in the calling keyboard shortcuts guide"
},
"Keyboard--start-video-call": {
@ -3328,15 +3328,15 @@
"description": "Undo button for archiving a conversation"
},
"conversationReturnedToInbox": {
"message": "Conversa de volta á caixa de entrada",
"message": "Devolveuse a conversa á caixa de entrada",
"description": "A toast that shows up when the user unarchives a conversation"
},
"conversationMarkedUnread": {
"message": "Conversa marcada como sen ler",
"message": "Marcouse a conversa como sen ler",
"description": "A toast that shows up when user marks a conversation as unread"
},
"StickerCreator--title": {
"message": "Creador de paquetes de iconas",
"message": "Creador de paquetes de stickers",
"description": "The title of the Sticker Pack Creator window"
},
"StickerCreator--DropZone--staticText": {
@ -3426,7 +3426,7 @@
"description": "Title for the meta stage of the sticker creator"
},
"StickerCreator--MetaStage--Field--title": {
"message": "Tratamento",
"message": "Título",
"description": "Label for the title input of the meta stage of the sticker creator"
},
"StickerCreator--MetaStage--Field--author": {
@ -3446,7 +3446,7 @@
"description": "Title for the confirm dialog on the meta stage of the sticker creator"
},
"StickerCreator--MetaStage--ConfirmDialog--confirm": {
"message": "Enviar",
"message": "Subir",
"description": "Text for the upload button in the confirmation dialog on the meta stage of the sticker creator"
},
"StickerCreator--MetaStage--ConfirmDialog--text": {
@ -3524,7 +3524,7 @@
"description": "Text for the toast when an image that is too large was dropped on the sticker creator"
},
"StickerCreator--Toasts--errorProcessing": {
"message": "Erro procesando a imaxe",
"message": "Erro ao procesar a imaxe",
"description": "Text for the toast when an image cannot be processed was dropped on the sticker creator with a generic error"
},
"StickerCreator--Toasts--APNG--notSquare": {
@ -3610,7 +3610,7 @@
"description": "Shown as the message for a message request in a group"
},
"MessageRequests--message-group-blocked": {
"message": "Desbloquear este grupo e compartir cos seus membros o teu nome e fotografía? Non recibirás ningunha mensaxe ata que desbloquees.",
"message": "Desbloquear este grupo e compartir cos seus membros o teu nome e fotografía? Non recibirás ningunha mensaxe ata que o desbloquees.",
"description": "Shown as the message for a message request in a blocked group"
},
"MessageRequests--block": {
@ -3636,7 +3636,7 @@
"description": "Shown as the body in the confirmation modal for unblocking a private message request"
},
"MessageRequests--unblock-group-confirm-body": {
"message": "Os membros do grupo poderán engadirte de volta.",
"message": "Os membros do grupo poderán engadirte de novo.",
"description": "Shown as the body in the confirmation modal for unblocking a group message request"
},
"MessageRequests--block-and-report-spam": {
@ -3644,7 +3644,7 @@
"description": "Shown as a button to let the user block a message request and report spam"
},
"MessageRequests--block-and-report-spam-success-toast": {
"message": "Denunciado como spam e bloqueado.",
"message": "Denunciado como correo lixo e bloqueado.",
"description": "Shown in a toast when you successfully block a user and report them as spam"
},
"MessageRequests--block-direct-confirm-title": {
@ -3658,7 +3658,7 @@
}
},
"MessageRequests--block-direct-confirm-body": {
"message": "As persoas bloqueadas non poderán chamarte ou enviarche mensaxes.",
"message": "As persoas bloqueadas non poderán chamarte nin enviarche mensaxes.",
"description": "Shown as the body in the confirmation modal for blocking a private message request"
},
"MessageRequests--block-group-confirm-title": {
@ -3706,7 +3706,7 @@
"description": "Shown as a button to let the user delete a group message request"
},
"MessageRequests--delete-group-confirm-body": {
"message": "Abandonarás este grupo e será eliminado de todos os teus dispositivos.",
"message": "Abandonarás este grupo e eliminarase de todos os teus dispositivos.",
"description": "Shown as the body in the confirmation modal for deleting a group message request"
},
"MessageRequests--accept": {
@ -3742,11 +3742,11 @@
}
},
"MessageRequests--learn-more": {
"message": "Saber máis",
"message": "Saber máis.",
"description": "Shown at the end of profile sharing messages as a link."
},
"ConversationHero--members": {
"message": "$count$ persoas",
"message": "$count$ membro",
"description": "Specifies the number of members in a group conversation",
"placeholders": {
"count": {
@ -3756,7 +3756,7 @@
}
},
"ConversationHero--members-1": {
"message": "1 persoa",
"message": "1 membro",
"description": "Specifies the number of members in a group conversation when there is one member",
"placeholders": {
"count": {
@ -3848,7 +3848,7 @@
}
},
"ConversationHero--membership-added": {
"message": "$name$ foi engadido/a ao grupo.",
"message": "$name$ engadiuse ao grupo.",
"description": "Shown Indicates that you were added to a group by a given individual.",
"placeholders": {
"name": {
@ -3878,39 +3878,39 @@
"description": "Shown in tooltip for the button to decline a call (audio or video)"
},
"declinedIncomingAudioCall": {
"message": "Rexeitaches unha chamada de audio",
"message": "Rexeitaches unha chamada de son",
"description": "Shown in conversation history when you declined an incoming audio call"
},
"declinedIncomingVideoCall": {
"message": "Rexeitaches unha chamada de video",
"message": "Rexeitaches unha chamada de vídeo",
"description": "Shown in conversation history when you declined an incoming video call"
},
"acceptedIncomingAudioCall": {
"message": "Chamada de audio entrante",
"message": "Chamada entrante de son",
"description": "Shown in conversation history when you accepted an incoming audio call"
},
"acceptedIncomingVideoCall": {
"message": "Chamada de vídeo entrante",
"message": "Chamada entrante de vídeo",
"description": "Shown in conversation history when you accepted an incoming video call"
},
"missedIncomingAudioCall": {
"message": "Chamada de audio perdida",
"message": "Chamada perdida de son",
"description": "Shown in conversation history when you missed an incoming audio call"
},
"missedIncomingVideoCall": {
"message": "Chamada de vídeo perdida",
"message": "Chamada perdida de vídeo",
"description": "Shown in conversation history when you missed an incoming video call"
},
"acceptedOutgoingAudioCall": {
"message": "Chamada de audio saínte",
"message": "Chamada saínte de son",
"description": "Shown in conversation history when you made an outgoing audio call"
},
"acceptedOutgoingVideoCall": {
"message": "Chamada de vídeo saínte",
"message": "Chamada saínte de vídeo",
"description": "Shown in conversation history when you made an outgoing video call"
},
"missedOrDeclinedOutgoingAudioCall": {
"message": "Chamada de audio non respondida",
"message": "Chamada de son non respondida",
"description": "Shown in conversation history when your audio call is missed or declined"
},
"missedOrDeclinedOutgoingVideoCall": {
@ -3918,7 +3918,7 @@
"description": "Shown in conversation history when your video call is missed or declined"
},
"incomingAudioCall": {
"message": "Chamada de audio entrante...",
"message": "Chamada de son entrante...",
"description": "Shown in both the incoming call bar and notification for an incoming audio call"
},
"incomingVideoCall": {
@ -4020,7 +4020,7 @@
"description": "Title for the video call button in a conversation"
},
"joinOngoingCall": {
"message": "Únete",
"message": "Unirse",
"description": "Text that appears in a group when a call is active"
},
"callNeedPermission": {
@ -4156,7 +4156,7 @@
"description": "Label for audio output selector"
},
"callingDeviceSelection__select--no-device": {
"message": "Non hai dispositivos dispoñíbeis",
"message": "Non hai dispositivos dispoñibles",
"description": "Message for when there are no available devices to select for input/output audio or video"
},
"callingDeviceSelection__select--default": {
@ -4210,7 +4210,7 @@
}
},
"EmojiButton__label": {
"message": "Emoji",
"message": "Emoticona",
"description": "Label for emoji button"
},
"ErrorModal--title": {
@ -4218,7 +4218,7 @@
"description": "Title of popup dialog when user-initiated task has gone wrong"
},
"ErrorModal--description": {
"message": "Inténtao de novo ou contacte co soporte.",
"message": "Inténtao de novo ou contacta co soporte.",
"description": "Description text in popup dialog when user-initiated task has gone wrong"
},
"Confirmation--confirm": {
@ -4246,7 +4246,7 @@
"description": "Shown if we are unable to parse a group link"
},
"GroupV2--join--prompt": {
"message": "Quere participar neste grupo e compartir o seu nome e foto cos seus membros?",
"message": "Queres participar neste grupo e compartir o teu nome e foto cos seus membros?",
"description": "Shown when you click on a group link to confirm"
},
"GroupV2--join--already-in-group": {
@ -4286,7 +4286,7 @@
"description": "Shown when you click on a group link to confirm, if it requires admin approval"
},
"GroupV2--join--join-button": {
"message": "Únete",
"message": "Unirse",
"description": "The button to join the group"
},
"GroupV2--join--request-to-join-button": {
@ -4294,7 +4294,7 @@
"description": "The button to join the group, if approval is required"
},
"GroupV2--join--cancel-request-to-join": {
"message": "Cancelar Solicitude",
"message": "Cancelar solicitude",
"description": "The button to cancel request to join the group"
},
"GroupV2--join--cancel-request-to-join--confirmation": {
@ -4310,11 +4310,11 @@
"description": "Choosing not to continue in the cancel join confirmation dialog"
},
"GroupV2--join--member-count--single": {
"message": "1 persoa",
"message": "1 membro",
"description": "Shown in the metadata section if group has just one member"
},
"GroupV2--join--member-count--multiple": {
"message": "$count$ persoas",
"message": "$count$ membros",
"description": "Shown in the metadata section if group has more than one member",
"placeholders": {
"count": {
@ -4358,7 +4358,7 @@
"description": "Label for describing the general non-privileged members of a group"
},
"updating": {
"message": "Estase a actualizar…",
"message": "Actualizando…",
"description": "Shown along with a spinner when an update operation takes longer than one second"
},
"GroupV2--create--you": {
@ -4734,7 +4734,7 @@
}
},
"GroupV2--member-add-from-admin-approval--you--unknown": {
"message": "A túa solicitude para te unires ao grupo foi aprobada.",
"message": "A túa solicitude para te unires ao grupo aprobouse.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--member-add-from-admin-approval--other--you": {
@ -4970,7 +4970,7 @@
}
},
"GroupV2--pending-add--one--you--unknown": {
"message": "Fuches convidado ao grupo.",
"message": "Convidáronte ao grupo.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--pending-add--many--other": {
@ -5028,7 +5028,7 @@
}
},
"GroupV2--pending-remove--decline--from-you": {
"message": "Rexeitaches o convite para o grupo.",
"message": "Rexeitaches a invitación ao grupo.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--pending-remove--decline--unknown": {
@ -5278,7 +5278,7 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--admin-approval-remove-one--you--unknown": {
"message": "A túa solicitude para te unires ao grupo foi denegada por un administrador.",
"message": "Un administrador denegou a túa solicitude para te unires ao grupo.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--admin-approval-remove-one--other--you": {
@ -5390,7 +5390,7 @@
}
},
"GroupV2--group-link-remove--unknown": {
"message": "A ligazón ao grupo foi desactivada.",
"message": "Desactivouse a ligazón ao grupo.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--group-link-reset--you": {
@ -5408,7 +5408,7 @@
}
},
"GroupV2--group-link-reset--unknown": {
"message": "A ligazón ao grupo foi restablecida.",
"message": "Restableceuse a ligazón ao grupo.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--description--remove--you": {
@ -5494,7 +5494,7 @@
}
},
"GroupV1--Migration--was-upgraded": {
"message": "Este grupo actualizouse a Novo grupo.",
"message": "Este grupo actualizouse a Novo Grupo.",
"description": "Shown in timeline when a legacy group (GV1) is upgraded to a new group (GV2)"
},
"GroupV1--Migration--learn-more": {
@ -5506,7 +5506,7 @@
"description": "Shown on Migrate dialog to kick off the process"
},
"GroupV1--Migration--info--title": {
"message": "Que son os Novos grupos?",
"message": "Que son os Novos Grupos?",
"description": "Shown on Learn More popup after GV1 migration"
},
"GroupV1--Migration--migrate--title": {
@ -5514,7 +5514,7 @@
"description": "Shown on Migration popup after choosing to migrate group"
},
"GroupV1--Migration--info--summary": {
"message": "Os Novos Grupos teñen características como as @mencións e administradores do grupo, e no futuro terán aínda máis ferramentas.",
"message": "Os Novos grupos teñen características como as @mencións e administradores do grupo, e no futuro terán aínda máis ferramentas.",
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--keep-history": {
@ -5522,11 +5522,11 @@
"description": "Shown on Learn More popup after GV1 migration"
},
"GroupV1--Migration--migrate--keep-history": {
"message": "Todo o historial e multimedia vaise gardar antes de actualizar.",
"message": "Todo o historial e multimedia gardarase antes de actualizar.",
"description": "Shown on Migration popup before GV1 migration"
},
"GroupV1--Migration--info--invited--you": {
"message": "Tes que aceptar o convite para unirte outra vez a este grupo, e non recibirás mensaxes do grupo ate que aceptes.",
"message": "Tes que aceptar a invitación para unirte outra vez a este grupo, e non recibirás mensaxes do grupo ata que aceptes.",
"description": "Shown on Learn More popup after GV1 migration"
},
"GroupV1--Migration--info--invited--many": {
@ -5538,27 +5538,27 @@
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--removed--before--many": {
"message": "Estos membros non poden unirse aos Grupos Novos, e van ser eliminados do grupo:",
"message": "Estes membros non poden unirse aos Novos Grupos, e eliminaranse do grupo:",
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--removed--before--one": {
"message": "Este membro non pode unirse aos Grupos Novos, e vai ser eliminado do grupo:",
"message": "Este membro non pode unirse aos Novos Grupos, e eliminarase do grupo:",
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--removed--after--many": {
"message": "Os seguintes membros non se uniron ao Novo grupo e elimináronse:",
"message": "Os seguintes membros non se uniron a Novos Grupos e elimináronse:",
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--info--removed--after--one": {
"message": "Este membro non se uniu ao Novo grupo e eliminouse:",
"message": "Este membro non se uniu a Novos Grupos e eliminouse:",
"description": "Shown on Learn More popup after or Migration popup before GV1 migration"
},
"GroupV1--Migration--invited--you": {
"message": "Non te puideron engadir ó Novo Grupo e fuches convidado a unirte.",
"message": "Non te puideron engadir ao Novo Grupo e enviáronche unha invitación.",
"description": "Shown in timeline when a group is upgraded and you were invited instead of added"
},
"GroupV1--Migration--invited--one": {
"message": "$contact$ non se puido engadir ao Novo grupo e envióuselle unha invitación. ",
"message": "$contact$ non se puido engadir ao Novo Grupo e envióuselle unha invitación. ",
"description": "Shown in timeline when a group is upgraded and one person was invited, instead of added",
"placeholders": {
"contact": {
@ -5568,7 +5568,7 @@
}
},
"GroupV1--Migration--invited--many": {
"message": "$count$ membros non se puideron engadir ao Novo grupo e envióuselles unha invitación. ",
"message": "$count$ membros non se puideron engadir ao Novo Grupo e envióuselles unha invitación. ",
"description": "Shown in timeline when a group is upgraded and some people were invited, instead of added",
"placeholders": {
"contact": {
@ -5630,7 +5630,7 @@
"description": "In the instructions for becoming a sustainer. Second instruction."
},
"BadgeSustainerInstructions__instructions__3": {
"message": "Preme \"Doar a Signal\" e subscríbete",
"message": "Preme «Doar a Signal» e subscríbete",
"description": "In the instructions for becoming a sustainer. Third instruction."
},
"CompositionArea--expand": {
@ -5666,7 +5666,7 @@
"description": "Button text for removing as admin button in Group Contact Details modal"
},
"ContactModal--make-admin": {
"message": "Facer admin",
"message": "Facer administrador",
"description": "Button text for make admin button in Group Contact Details modal"
},
"ContactModal--make-admin-info": {
@ -5714,7 +5714,7 @@
"description": "This is the label for the group link management panel"
},
"ConversationDetails--disappearing-messages-label": {
"message": "Desaparición das mensaxes",
"message": "Mensaxes temporais",
"description": "This is the label for the disappearing messages setting panel"
},
"ConversationDetails--disappearing-messages-info--group": {
@ -5786,7 +5786,7 @@
"description": "This is the modal button to confirm leaving a group"
},
"ConversationDetailsActions--unblock-group-modal-title": {
"message": "Desbloquear o grupo \"$groupName$\"?",
"message": "Desbloquear o grupo «$groupName$»?",
"description": "This is the modal title for confirming unblock of a group",
"placeholders": {
"groupName": {
@ -5882,7 +5882,7 @@
"description": "This lets users share their group link"
},
"GroupLinkManagement--confirm-reset": {
"message": "Tes a certeza de querer restablecer a ligazón ao grupo? As persoas non poderán unirse ao grupo a través da ligazón actual.",
"message": "Seguro que queres restablecer a ligazón ao grupo? A xente xa non se poderá unirse ao grupo a través da ligazón actual.",
"description": "Shown in the confirmation dialog when an admin is about to reset the group link"
},
"GroupLinkManagement--reset": {
@ -6206,23 +6206,23 @@
"description": "The label for contact checkboxes that are disabled because they're already a member"
},
"MessageAudio--play": {
"message": "Reproducir mensaxe de son adxunta",
"message": "Reproducir mensaxe de son anexa",
"description": "Aria label for audio attachment's Play button"
},
"MessageAudio--pause": {
"message": "Pausar mensaxe de son adxunta",
"message": "Pausar mensaxe de son anexa",
"description": "Aria label for audio attachment's Pause button"
},
"MessageAudio--download": {
"message": "Descargar mensaxe de son adxunta",
"message": "Descargar mensaxe de son anexa",
"description": "Aria label for audio attachment's Download button"
},
"MessageAudio--pending": {
"message": "Descargando mensaxe de son adxunta...",
"message": "Descargando mensaxe de son anexa...",
"description": "Aria label for pending audio attachment spinner"
},
"MessageAudio--slider": {
"message": "Duración da mensaxe de son adxunta",
"message": "Duración da mensaxe de son anexa",
"description": "Aria label for audio attachment's playback time slider"
},
"emptyInboxMessage": {
@ -6366,11 +6366,11 @@
"description": "Header in the captcha dialog"
},
"CaptchaDialog__first-paragraph": {
"message": "Axuda a previr o spam en Signal, por favor completa a verificación.",
"message": "Axuda a previr o correo lixo en Signal, por favor completa a verificación.",
"description": "First paragraph in the captcha dialog"
},
"CaptchaDialog__second-paragraph": {
"message": "Tras verificar poderás seguir conversando. Tódalas mensaxes en pausa serán enviadas automáticamente.",
"message": "Despois de verificar, poderás seguir conversando. Todas as mensaxes en pausa enviaranse automaticamente.",
"description": "First paragraph in the captcha dialog"
},
"CaptchaDialog--can-close__title": {
@ -6540,11 +6540,11 @@
"description": "Name of the 'weeks' unit select for the custom disappearing message timeout dialog"
},
"settings__DisappearingMessages__footer": {
"message": "Establece o período após o cal desaparecerán as mensaxes en novos chats que ti inicies.",
"message": "Establece a duración das mensaxes temporais nas novas conversas que ti inicies.",
"description": "Footer for the Disappearing Messages settings section"
},
"settings__DisappearingMessages__timer__label": {
"message": "Establecer caducidade para os novos chats",
"message": "Establecer duración das novas conversas",
"description": "Label for the Disappearing Messages default timer setting"
},
"UniversalTimerNotification__text": {
@ -6736,7 +6736,7 @@
"description": "A default bio option"
},
"Bio--taking-break": {
"message": "Tomando un descanso",
"message": "Descansando",
"description": "A default bio option"
},
"ProfileEditorModal--profile": {
@ -6840,7 +6840,7 @@
"description": "Label for changing the zoom level"
},
"Preferences__link-previews--title": {
"message": "Crear vista previa de ligazóns",
"message": "Crear visualización de ligazóns",
"description": "Title for the generate link previews setting"
},
"Preferences__link-previews--description": {
@ -7008,7 +7008,7 @@
"description": "Label for the text button in the media editor"
},
"MediaEditor__control--sticker": {
"message": "Adhesivos",
"message": "Stickers",
"description": "Label for the sticker button in the media editor"
},
"MediaEditor__control--crop": {
@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Enviando resposta...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Enviando reacción...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Compartir e ver historias",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Non poderás compartir ou ver historias cando esta opción estea desactivada.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Pausar",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Reaccionou a túa historia",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Reaccionou a unha historia",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "જવાબ મોકલી રહ્યાં છીએ...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "પ્રતિક્રિયા મોકલી રહ્યાં છીએ...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "સ્ટોરી જુઓ અને શેર કરો",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "આ વિકલ્પ બંધ હોય ત્યારે તમે સ્ટોરી જોઈ કે શેર કરી શકશો નહીં.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "થોભાવો",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "તમારી સ્ટોરી પર પ્રતિક્રિયા આપી",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "સ્ટોરી પર પ્રતિક્રિયા આપી",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "שולח תשובה...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "שולח תגובה...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "שיתוף וצפיה בסטוריז",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "כבר לא תוכלו לשתף או לצפות בסיפורים כאשר האפשרות הזאת כבויה.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "השהה",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "הגיב/ה אל הסיפור שלך",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "הגיב/ה אל סיפור",
"description": "Used whenever we can't find a user's first name"

View File

@ -222,7 +222,7 @@
"description": "Shown at the top of the archived conversations list in the left pane"
},
"noArchivedConversations": {
"message": "No archived conversations.",
"message": "कोई भी आर्काइव की गई बातचीत नहीं है।",
"description": "Shown at the top of the archived conversations list in the left pane if there is no any archived conversation"
},
"archiveConversation": {
@ -420,7 +420,7 @@
"description": "Shown on confirmation dialog when user attempts to send a message"
},
"safetyNumberChangeDialog__pending-messages": {
"message": "Send pending messages",
"message": "लंबित संदेश भेजें",
"description": "Shown on confirmation dialog when user attempts to send a message in the outbox"
},
"identityKeyErrorOnSend": {
@ -464,7 +464,7 @@
"description": "Shown in conversation banner when more than one group member's safety number has changed, but they were previously verified."
},
"debugLogExplanation": {
"message": "When you click Submit, your log will be posted online for 30 days at a unique, unpublished URL. You may Save it locally first.",
"message": "जब आप सबमिट करें पर क्लिक करते हैं तब एक विशेष, अप्रकाशित URL पर 30 दिनों के लिए आपका लॉग ऑनलाइन पोस्ट किया जाएगा। आप इसे अपने पास सबसे पहले सहेज कर रख सकते हैं।",
"description": "Description of what will happen with your debug log"
},
"debugLogError": {
@ -476,11 +476,11 @@
"description": "Title of the success page for submitting a debug log"
},
"debugLogSuccessNextSteps": {
"message": "Debug log uploaded. When you contact support, copy the URL below and attach it along with a description of the problem you saw and steps to reproduce it.",
"message": "डीबग लॉग अपलोड किया गया। जब आप सपोर्ट से संपर्क करें तब नीचे दिए URL को कॉपी करके उसे अपने द्वारा देखी गई समस्या व उसे फिर से उत्पन्न करके के चरणों के विवरण के साथ जोड़ दें।",
"description": "Explanation of next steps to take when submitting debug log"
},
"debugLogLogIsIncomplete": {
"message": "... to see the full log, click Save",
"message": "... पूरा लॉग देखने के लिए सहेजें पर क्लिक करें",
"description": "Shown as the text for the copy button on the debug log screen"
},
"debugLogCopy": {
@ -646,7 +646,7 @@
}
},
"decryptionErrorToast": {
"message": "Desktop ran into a decryption error from $name$, device $deviceId$",
"message": "डेस्कटॉप को $name$, डिवाइस $deviceId$ की ओर से एक डीक्रिप्शन एरर हुआ। ",
"description": "An error popup when we haven't added an in-timeline error for decryption error, only for beta/internal users.",
"placeholders": {
"name": {
@ -836,11 +836,11 @@
"description": "Shown to separate the types of search results"
},
"findByUsernameHeader": {
"message": "Find by username",
"message": "यूज़रनेम द्वारा खोजें",
"description": "Shown when search could be a valid username, with one sub-item that will kick off the search"
},
"findByPhoneNumberHeader": {
"message": "Find by phone number",
"message": "फ़ोन नंबर द्वारा खोजें",
"description": "Shown when search could be a valid phone number, with one sub-item that will kick off the search"
},
"at-username": {
@ -926,7 +926,7 @@
"description": "Shown in the message bubble while a long message attachment is being downloaded"
},
"downloadFullMessage": {
"message": "Download Full Message",
"message": "पूरा संदेश डाउनलोड करें",
"description": "Shown in the message bubble while a long message attachment is not downloaded"
},
"downloadAttachment": {
@ -974,7 +974,7 @@
"description": "Confirmation dialog message for when the voice recording is interrupted due to app losing focus"
},
"voiceNoteLimit": {
"message": "Voice messages are limited to one hour. Recording will stop if you switch to another app.",
"message": "वॉयस संदेशों की सीमा अधिकतम एक घंटे है। यदि आप किसी अन्य ऐप पर स्विच करेंगे तो रिकॉर्डिंग रुक जाएगी।",
"description": "Shown in toast to warn user about limited time and that window must be in focus"
},
"voiceNoteMustBeOnlyAttachment": {
@ -1056,7 +1056,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": {
@ -1074,7 +1074,7 @@
}
},
"cannotUpdateRequireManualDetail": {
"message": "Signal couldn't update. Visit $url$ to install it manually. Then, $support$ about this problem",
"message": "Signal अपडेट नहीं हो सका। उसे मैनुअल तरीके से इंस्टॉल करने के लिए $url$ पर विज़िट करें। फिर इस समस्या के बारे में $support$",
"description": "Shown if a general error happened while trying to install update package and manual update is required",
"placeholders": {
"url": {
@ -1228,7 +1228,7 @@
"description": "Shown on the drop-down menu for an individual message, but only if it is an outgoing message that failed to send"
},
"retryDeleteForEveryone": {
"message": "Retry Delete for Everyone",
"message": "सभी के लिए डिलीट का फिर से प्रयास करें",
"description": "Shown on the drop-down menu for an individual message, but only if a previous delete for everyone failed to send"
},
"forwardMessage": {
@ -1314,7 +1314,7 @@
}
},
"ChangeNumber--notification": {
"message": "$sender$ changed their phone number",
"message": "$sender$ ने अपने फ़ोन नंबर बदल लिए",
"description": "Shown in timeline when a member of a conversation changes their phone number",
"placeholders": {
"sender": {
@ -1380,7 +1380,7 @@
"description": "Instructions on the device link screen"
},
"Install__instructions__2": {
"message": "Tap into $settings$, then tap $linkedDevices$",
"message": "$settings$ में टैप करें, फिर $linkedDevices$ पर टैप करें",
"description": "Instructions on the device link screen",
"placeholders": {
"settings": {
@ -1398,7 +1398,7 @@
"description": "Part of the 2nd instruction on the device link screen"
},
"Install__instructions__3": {
"message": "Tap $plusButton$ (Android) or $linkNewDevice$ (iPhone)",
"message": "$plusButton$ (ऐंड्रॉयड) या $linkNewDevice$ (iPhone) पर टैप करें",
"description": "Instructions on the device link screen",
"placeholders": {
"plusButton": {
@ -1412,7 +1412,7 @@
}
},
"Install__qr-failed": {
"message": "The QR code couldn't load. Check your internet and try again. $learnMore$",
"message": "QR कोड लोड नहीं हो सका। अपना इंटरनेट जाँचें और फिर से प्रयास करें। $learnMore$",
"description": "Shown on the install screen if the QR code fails to load",
"placeholders": {
"learnMore": {
@ -1430,11 +1430,11 @@
"description": "Shown on the install screen. Link takes users to a support page"
},
"Install__choose-device-name__description": {
"message": "You'll see this name under \"Linked Devices\" on your phone",
"message": "आपको यह नाम अपने फ़ोन पर \"लिंक किए गए डिवाइस\" के तहत दिखेगा।",
"description": "The subheader shown on the 'choose device name' screen in the device linking process"
},
"Install__choose-device-name__placeholder": {
"message": "My Computer",
"message": "मेरा कंप्यूटर",
"description": "The placeholder for the 'choose device name' input"
},
"Preferences--device-name": {
@ -1454,7 +1454,7 @@
"description": "Shown during initial link while contacts and groups are being pulled from mobile device"
},
"initialSync__subtitle": {
"message": "Note: Your chat history will not be synced to this device",
"message": "नोट : आपका चैट इतिहास इस डिवाइस के साथ सिंक नहीं किया जाएगा",
"description": "Shown during initial link while contacts and groups are being pulled from mobile device"
},
"installConnectionFailed": {
@ -1474,7 +1474,7 @@
"description": ""
},
"installUnknownError": {
"message": "An unexpected error occurred. Please try again.",
"message": "एक अनपेक्षित त्रुटि हुई। कृपया फिर से प्रयास करें।",
"description": ""
},
"installTryAgain": {
@ -1510,7 +1510,7 @@
"description": "Button label in the call lobby for returning to a call"
},
"calling__lobby-automatically-muted-because-there-are-a-lot-of-people": {
"message": "Microphone muted due to the size of the call",
"message": "कॉल में लोगों की संख्या के चलते माइक्रोफ़ोन म्यूट किया गया",
"description": "Shown in a call lobby toast if there are a lot of people already on the call"
},
"calling__call-is-full": {
@ -2050,7 +2050,7 @@
"description": "Shown on outgoing message if it fails to send"
},
"deleteFailed": {
"message": "Delete failed",
"message": "डिलीट नहीं किया जा सका",
"description": "Shown on a message which was deleted for everyone if the delete wasn't successfully sent to anyone"
},
"sendPaused": {
@ -2062,7 +2062,7 @@
"description": "Shown on outgoing message if it is partially sent"
},
"partiallyDeleted": {
"message": "Partially deleted, click to retry",
"message": "आंशिक रूप से डिलीट किया गया, फिर से प्रयास करने के लिए क्लिक करें",
"description": "Shown on a message which was deleted for everyone if the delete wasn't successfully sent to everyone"
},
"showMore": {
@ -2158,11 +2158,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": "[आज] LT",
"description": "Timestamp format string for displaying \"Today\" and the time"
},
"timestampFormat__long__yesterday": {
"message": "[Yesterday] LT",
"message": "[बीता कल] LT",
"description": "Timestamp format string for displaying \"Yesterday\" and the time"
},
"messageBodyTooLong": {
@ -2406,7 +2406,7 @@
"description": "Shown if request to Signal servers to find username fails"
},
"Toast--failed-to-fetch-phone-number": {
"message": "Failed to fetch phone number. Check your connection and try again.",
"message": "फ़ोन नंबर नहीं ला सका। अपना कनेक्शन जाँचें और फिर से प्रयास करें।",
"description": "Shown if request to Signal servers to find phone number fails"
},
"startConversation--username-not-found": {
@ -2420,7 +2420,7 @@
}
},
"startConversation--phone-number-not-found": {
"message": "User not found. \"$phoneNumber$\" is not a Signal user.",
"message": "यूज़र नहीं मिला। \"$phoneNumber$\" एक Signal यूज़र नहीं है।",
"description": "Shown in dialog if phone number is not found.",
"placeholders": {
"phoneNumber": {
@ -2430,7 +2430,7 @@
}
},
"startConversation--phone-number-not-valid": {
"message": "User not found. \"$phoneNumber$\" is not a valid phone number.",
"message": "यूज़र नहीं मिल सका। \"$phoneNumber$\" एक वैध फ़ोन नंबर नहीं है।",
"description": "Shown in dialog if phone number is not valid.",
"placeholders": {
"phoneNumber": {
@ -2548,11 +2548,11 @@
"description": ""
},
"autoUpdateRetry": {
"message": "Retry update",
"message": "अपडेट का फिर से प्रयास करें ",
"description": ""
},
"autoUpdateContactSupport": {
"message": "contact support",
"message": "संपर्क सहयोग",
"description": ""
},
"autoUpdateNewVersionMessage": {
@ -2564,7 +2564,7 @@
"description": ""
},
"downloadFullNewVersionMessage": {
"message": "Signal couldnt update. Click to try again.",
"message": "Signal अपडेट नहीं हो सका। फिर से प्रयास करने के लिए क्लिक करें। ",
"description": "Shown in update dialog when partial update fails and we have to ask user to download full update"
},
"autoUpdateNewVersionInstructions": {
@ -2758,7 +2758,7 @@
"description": "Shown in a message's bubble when the message has been deleted for everyone."
},
"message--giftBadge--unopened--incoming": {
"message": "View this message on mobile to open it",
"message": "इस संदेश को खोलने के लिए इसे मोबाइल पर देखें",
"description": "Shown in a message's bubble when you've received a gift badge from a contact"
},
"message--giftBadge--unopened--outgoing": {
@ -2766,39 +2766,39 @@
"description": "Shown in a message's bubble when you've sent a gift badge to a contact"
},
"message--giftBadge--unopened--label": {
"message": "Gift",
"message": "गिफ़्ट",
"description": "Shown in a message's bubble when you've received a gift badge from a contact"
},
"message--giftBadge--unopened--toast--incoming": {
"message": "Check your phone to open gift",
"message": "गिफ़्ट खोलने के लिए अपना फ़ोन जाँचें।",
"description": "Shown when you've clicked on an incoming gift badge you haven't yet redeemed"
},
"message--giftBadge--unopened--toast--outgoing": {
"message": "Check your phone to view your gift",
"message": "अपना गिफ़्ट देखने के लिए अपना फ़ोन जाँचें।",
"description": "Shown when you've clicked on an outgoing gift badge"
},
"message--giftBadge--preview--unopened": {
"message": "You received a gift",
"message": "आपको एक गिफ़्ट मिला है",
"description": "Shown to label the gift badge in notifications and the left pane"
},
"message--giftBadge--preview--redeemed": {
"message": "You redeemed a gift badge",
"message": "आपने एक गिफ़्ट बैज रिडीम किया",
"description": "Shown to label the redeemed gift badge in notifications and the left pane"
},
"message--giftBadge--preview--sent": {
"message": "You sent a gift badge",
"message": "आपने एक गिफ़्ट बैज भेजा",
"description": "Shown to label a gift badge you've sent in notifications and the left pane"
},
"message--giftBadge": {
"message": "Gift Badge",
"message": "गिफ़्ट बैज",
"description": "Shown to label the gift badge you've redeemed on another device"
},
"quote--giftBadge": {
"message": "Gift",
"message": "गिफ़्ट",
"description": "Shown to label a gift badge you've replied to"
},
"message--giftBadge--remaining--days": {
"message": "$days$ days remaining",
"message": "$days$ दिन शेष ",
"description": "Describes how long remains for the gift badge you've redeemed on another device (only rendered for days > 1)",
"placeholders": {
"days": {
@ -2808,7 +2808,7 @@
}
},
"message--giftBadge--remaining--hours": {
"message": "$hours$ hours remaining",
"message": "$hours$ घंटे शेष",
"description": "Describes how long remains for the gift badge you've redeemed on another device (only rendered for hours > 1)",
"placeholders": {
"hours": {
@ -2818,7 +2818,7 @@
}
},
"message--giftBadge--remaining--minutes": {
"message": "$minutes$ minutes remaining",
"message": "$minutes$ मिनट शेष",
"description": "Describes how long remains for the gift badge you've redeemed on another device (only rendered for minutes > 1)",
"placeholders": {
"minutes": {
@ -2828,7 +2828,7 @@
}
},
"message--giftBadge--remaining--one-minute": {
"message": "1 minute remaining",
"message": "1 मिनट शेष",
"description": "Describes how long remains for the gift badge you've redeemed on another device"
},
"message--giftBadge--expired": {
@ -2840,7 +2840,7 @@
"description": "Shown when you've sent a gift badge to someone then opened it"
},
"message--giftBadge--redeemed": {
"message": "Redeemed",
"message": "रिडीम किया गया",
"description": "Shown when you've redeemed the gift badge on another device"
},
"modal--giftBadge--title": {
@ -2848,7 +2848,7 @@
"description": "The title of the outgoing gift badge detail dialog"
},
"modal--giftBadge--description": {
"message": "You've gifted a badge to $name$. When they accept, they'll be given a choice to show or hide their badge.",
"message": "आपने $name$ को एक बैज गिफ़्ट किया है। जब वे इसे स्वीकार करेंगे तब उन्हें अपना बैज दिखाने या छिपाने का विकल्प दिया जाएगा।",
"description": "The description of the outgoing gift badge detail dialog",
"placeholders": {
"name": {
@ -3280,11 +3280,11 @@
"description": "Shown in the shortcuts guide"
},
"Keyboard--accept-video-call": {
"message": "Accept call with video",
"message": "वीडियो सहित कॉल को स्वीकार करें",
"description": "Shown in the calling keyboard shortcuts guide"
},
"Keyboard--accept-audio-call": {
"message": "Accept call with audio",
"message": "ऑडियो सहित कॉल स्वीकार करें।",
"description": "Shown in the calling keyboard shortcuts guide"
},
"Keyboard--start-audio-call": {
@ -5316,7 +5316,7 @@
}
},
"GroupV2--admin-approval-bounce--one": {
"message": "$joinerName$ requested and cancelled their request to join via the group link",
"message": "$joinerName$ ने ग्रुप लिंक के माध्यम से शामिल होने का अनुरोध किया या उसे रद्द किया।",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"joinerName": {
@ -5326,7 +5326,7 @@
}
},
"GroupV2--admin-approval-bounce": {
"message": "$joinerName$ requested and cancelled $numberOfRequests$ requests to join via the group link",
"message": "$joinerName$ ने अनुरोध किया और ग्रुप लिंक के माध्यम से शामिल होने के $numberOfRequests$ अनुरोध रद्द किए।",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"joinerName": {
@ -5938,7 +5938,7 @@
}
},
"PendingRequests--deny-for--with-link": {
"message": "Deny request from \"$name$\"? They will not be able to request to join via the group link again.",
"message": "\"$name$\" का अनुरोध अस्वीकार करें? वे फिर से ग्रुप लिंक के माध्यम से शामिल होने का अनुरोध नहीं कर पाएंगे।",
"description": "This is the modal content when confirming denying a group request to join",
"placeholders": {
"name": {
@ -6046,7 +6046,7 @@
"description": "Title of dialog to block a user from requesting to join via the link again"
},
"PendingRequests--block--contents": {
"message": "$name$ will not be able to join or request to join this group via the group link. They can still be added to the group manually.",
"message": "$name$ ग्रुप लिंक के माध्यम से इस ग्रुप में शामिल नहीं हो पाएंगे या होने का अनुरोध नहीं कर पाएंगे ।",
"description": "Details of dialog to block a user from requesting to join via the link again",
"placeholders": {
"name": {
@ -6056,7 +6056,7 @@
}
},
"PendingRequests--block--confirm": {
"message": "Block Request",
"message": "अनुरोध ब्लॉक करें",
"description": "Confirmation button of dialog to block a user from requesting to join via the link again"
},
"AvatarInput--no-photo-label--group": {
@ -6352,7 +6352,7 @@
}
},
"RemoveGroupMemberConfirmation__description__with-link": {
"message": "Remove \"$name$\" from the group? They will not be able to rejoin via the group link.",
"message": "\"$name$\" को ग्रुप से हटाना है? वे ग्रुप लिंक के माध्यम से फिर से शामिल नहीं हो पाएंगे।",
"description": "When confirming the removal of a group member, show this text in the dialog",
"placeholders": {
"name": {
@ -6500,11 +6500,11 @@
"description": "Text for an option in Conversation Details Disappearing Messages setting when user previously selected custom time"
},
"DisappearingTimeDialog__label--value": {
"message": "Number",
"message": "नंबर",
"description": "aria-label for the number select box"
},
"DisappearingTimeDialog__label--units": {
"message": "Unit of time",
"message": "समय की इकाई",
"description": "aria-label for the units of time select box"
},
"DisappearingTimeDialog__title": {
@ -6954,7 +6954,7 @@
"description": "Second line of the dialog displayed when Windows installer can't close application automatically and needs user intervention to complete the installation."
},
"NSIS__appRunning": {
"message": "$appName$ is running.\nClick OK to close it.\nIf it doesn't close, try closing it manually.",
"message": "$appName$ दौड़ रहे हैं।\n उसे बंद करने के लिए OK पर क्लिक करें।\nयदि यह बंद न हो तो इसे मैनुअल तरीके से बंद करने पर विचार करें।",
"description": "The contents of a dialog displayed when Windows installer detect that the application is running and asks user to close it. Note: please keep the line breaks so that the text occupies three separate lines",
"placeholders": {
"appName": {
@ -6964,19 +6964,19 @@
}
},
"NSIS__decompressionFailed": {
"message": "Failed to decompress files. Please try running the installer again.",
"message": "फ़ाइलें डीकंप्रेस नहीं कई जा सकीं। कृपया फिर से इंस्टॉलर रन कराने का प्रयास करें। ",
"description": "Displayed when Windows installer cannot decompress application files"
},
"NSIS__uninstallFailed": {
"message": "Failed to uninstall old application files. Please try running the installer again.",
"message": "पुरानी ऐप्लीकेशन फ़ाइलें अनइंस्टॉल नहीं की जा सकीं। कृपया फिर से इंस्टॉलर रन करने का प्रयास करें। ",
"description": "Displayed when Windows installer cannot uninstall the old application"
},
"CrashReportDialog__title": {
"message": "Application crashed",
"message": "ऐप्लीकेशन क्रैश हो गया",
"description": "A title of the dialog displayed when starting an application after a recent crash"
},
"CrashReportDialog__body": {
"message": "Signal restarted after a crash. You can submit a crash report to help Signal investigate the issue.",
"message": "एक क्रैश के बाद Signal फिर से शुरू हुआ। इस मामले की छानबीन में Signal की मदद करने के लिए आप एक क्रैश रिपोर्ट जमा कर सकते हैं।",
"description": "The body of the dialog displayed when starting an application after a recent crash"
},
"CrashReportDialog__submit": {
@ -6984,7 +6984,7 @@
"description": "A button label for submission of the crash reporter data after a recent crash"
},
"CrashReportDialog__erase": {
"message": "Don't Send",
"message": "नहीं भेजें",
"description": "A button label for erasure of the crash reporter data after a recent crash and continuing to start the app"
},
"CustomizingPreferredReactions__title": {
@ -7088,19 +7088,19 @@
"description": "Title for the my stories list"
},
"MyStories__story": {
"message": "Your story",
"message": "आपकी स्टोरी",
"description": "aria-label for each one of your stories"
},
"MyStories__download": {
"message": "Download story",
"message": "स्टोरी डाउनलोड करें",
"description": "aria-label for the download button"
},
"MyStories__more": {
"message": "More options",
"message": "अधिक विकल्प",
"description": "aria-label for the more button"
},
"MyStories__views--singular": {
"message": "$num$ view",
"message": "$num$ व्यू",
"description": "Number of views your story has",
"placeholders": {
"num": {
@ -7110,7 +7110,7 @@
}
},
"MyStories__views--plural": {
"message": "$num$ views",
"message": "$num$ व्यू",
"description": "Number of views your story has",
"placeholders": {
"num": {
@ -7120,7 +7120,7 @@
}
},
"MyStories__replies--singular": {
"message": "$num$ reply",
"message": "$num$ जवाब",
"description": "Number of replies your story has",
"placeholders": {
"num": {
@ -7130,7 +7130,7 @@
}
},
"MyStories__replies--plural": {
"message": "$num$ replies",
"message": "$num$ जवाब",
"description": "Number of replies your story has",
"placeholders": {
"num": {
@ -7140,7 +7140,7 @@
}
},
"MyStories__delete": {
"message": "Delete this story? It will also be deleted for everyone who received it.",
"message": "यह स्टोरी डिलीट करनी है? यह उन सभी के लिए डिलीट हो जाएगी जिन्हें यह मिली है।",
"description": "Confirmation dialog description text for deleting a story"
},
"Stories__title": {
@ -7152,23 +7152,23 @@
"description": "Label for your stories"
},
"Stories__add": {
"message": "Add a story",
"message": "कोई स्टोरी जोड़ें",
"description": "Description hint to add a story"
},
"Stories__hidden-stories": {
"message": "Hidden stories",
"message": "छिपी हुई स्टोरीज़",
"description": "Button label to go to hidden stories pane"
},
"Stories__list-empty": {
"message": "No recent stories to show right now",
"message": "अभी दिखाने के लिए कोई भी हाल की स्टोरी नहीं है।",
"description": "Description for when there are no stories to show"
},
"Stories__placeholder--text": {
"message": "Click to view a story",
"message": "किसी स्टोरी को देखने के लिए व्यू पर क्लिक करें",
"description": "Placeholder label for the story view"
},
"Stories__from-to-group": {
"message": "$name$ to $group$",
"message": "$name$ से $group$ को ",
"description": "Title for someone sending a story to a group",
"placeholders": {
"name": {
@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "जवाब भेजा जा रहा है...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "प्रतिक्रिया भेजी जा रही है...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "स्टोरीज़ शेयर और व्यू करें",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "इस विकल्प के ऑफ़ रहने पर आप स्टोरीज़ को शेयर या व्यू नहीं कर पाएंगे।",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "रोको",
"description": "Aria label for pausing a story"
@ -7194,7 +7210,7 @@
"description": "Button label to reply to a story"
},
"StoryViewer__reply-group": {
"message": "Reply to Group",
"message": "ग्रुप को जवाब दें",
"description": "Button label to reply to a group story"
},
"StoryViewer__mute": {
@ -7210,15 +7226,15 @@
"description": "Placeholder text for when there are no replies"
},
"StoryViewsNRepliesModal__tab--views": {
"message": "Views",
"message": "व्यू",
"description": "Title for views tab"
},
"StoryViewsNRepliesModal__tab--replies": {
"message": "Replies",
"message": "जवाब",
"description": "Title for replies tab"
},
"StoryViewsNRepliesModal__react": {
"message": "React to story",
"message": "स्टोरी पर प्रतिक्रिया दें",
"description": "aria-label for reaction button"
},
"StoryViewsNRepliesModal__reacted": {
@ -7226,23 +7242,23 @@
"description": "Description of someone reacting to a story"
},
"StoryListItem__label": {
"message": "Story",
"message": "स्टोरी",
"description": "aria-label for the story list button"
},
"StoryListItem__unhide": {
"message": "Show stories",
"message": "स्टोरीज़ दिखाएँ",
"description": "Label for menu item to un-hide the story"
},
"StoryListItem__hide": {
"message": "Hide story",
"message": "स्टोरी छिपाएँ",
"description": "Label for menu item to hide the story"
},
"StoryListItem__go-to-chat": {
"message": "Go to chat",
"message": "चैट पर जाएँ",
"description": "Label for menu item to go to conversation"
},
"StoryListItem__hide-modal--body": {
"message": "Hide story? New story updates from $name$ wont appear at the top of the stories list anymore.",
"message": "स्टोरी छिपानी है? $name$ के नए स्टोरी अपडेट अब स्टोरीज़ की सूची में सबसे ऊपर नहीं आएंगे।",
"description": "Body for the confirmation dialog for hiding a story"
},
"StoryListItem__hide-modal--confirm": {
@ -7250,7 +7266,7 @@
"description": "Action button for the confirmation dialog to hide a story"
},
"StoryImage__error": {
"message": "Error displaying image",
"message": "इमेज दिखाने में त्रुटि हुई",
"description": "aria-label for image errors"
},
"StoryCreator__text-bg": {
@ -7294,7 +7310,7 @@
"description": "Label for font"
},
"StoryCreator__link-preview-placeholder": {
"message": "Type or paste a URL",
"message": "कोई URL टाइप या पेस्ट करें",
"description": "Placeholder for the URL input for link previews"
},
"StoryCreator__link-preview-empty": {
@ -7310,11 +7326,11 @@
"description": "Title for the link preview tooltip"
},
"Quote__story": {
"message": "Story",
"message": "स्टोरी",
"description": "Title for replies to stories"
},
"Quote__story-reaction": {
"message": "Reacted to a story from $name$",
"message": "$name$ की एक स्टोरी पर प्रतिक्रिया दी",
"description": "Label for when a person reacts to a story",
"placeholders": {
"name": {
@ -7323,12 +7339,8 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "आपकी स्टोरी पर प्रतिक्रिया दी",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Reacted to a story",
"message": "किसी स्टोरी पर प्रतिक्रिया दी",
"description": "Used whenever we can't find a user's first name"
},
"Quote__story-unavailable": {

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Slanje odgovora…",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Slanje reakcije…",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Dijelite i gledajte priče",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Ako je ova opcija isključena, nećete moći dijeliti niti pregledavati priče.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Zaustavi",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Reagirala je na vašu priču",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Reakcija na priču",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Válasz küldése...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Reakció küldése...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Történetek megosztása és megtekintése",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Ha letiltod ezt a funkciót, akkor nem fogsz tudni új történeteket hozzáadni vagy másokét megtekinteni.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Szünet",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Reagált a történetedre",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Reagált egy történetre",
"description": "Used whenever we can't find a user's first name"

View File

@ -934,7 +934,7 @@
"description": "Shown in a message's triple-dot menu if there isn't room for a dedicated download button"
},
"reactToMessage": {
"message": "Berikan Reaksi terhadap Pesan",
"message": "Tanggapi Pesan",
"description": "Shown in triple-dot menu next to message to allow user to react to the associated message"
},
"replyToMessage": {
@ -2014,7 +2014,7 @@
}
},
"notificationReaction": {
"message": "$sender$ bereaksi $emoji$ terhadap pesan Anda",
"message": "$sender$ memberi tanggapan $emoji$ pada pesan Anda",
"description": "",
"placeholders": {
"sender": {
@ -2028,7 +2028,7 @@
}
},
"notificationReactionMessage": {
"message": "$sender$ bereaksi $emoji$ terhadap: $message$",
"message": "$sender$ memberi tanggapan $emoji$ pada: $message$",
"description": "",
"placeholders": {
"sender": {
@ -3574,7 +3574,7 @@
"description": ""
},
"Reactions--error": {
"message": "Gagal mengiirim tanggapan. Silahkan coba lagi.",
"message": "Gagal mengirim tanggapan. Silahkan coba lagi.",
"description": "Shown when a reaction fails to send"
},
"Reactions--more": {
@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Mengirim balasan…",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Mengirim tanggapan…",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Bagikan & Lihat Cerita",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Anda tidak akan bisa lagi berbagi atau melihat Cerita bila opsi ini dinonaktifkan.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Jeda",
"description": "Aria label for pausing a story"
@ -7218,11 +7234,11 @@
"description": "Title for replies tab"
},
"StoryViewsNRepliesModal__react": {
"message": "Menanggapi cerita",
"message": "Tanggapi cerita",
"description": "aria-label for reaction button"
},
"StoryViewsNRepliesModal__reacted": {
"message": "Bereaksi terhadap cerita",
"message": "Menanggapi cerita",
"description": "Description of someone reacting to a story"
},
"StoryListItem__label": {
@ -7323,12 +7339,8 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Bereaksi terhadap cerita Anda",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Bereaksi terhadap sebuah cerita",
"message": "Menanggapi cerita",
"description": "Used whenever we can't find a user's first name"
},
"Quote__story-unavailable": {

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Sending reply...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Sending reaction...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Share & View Stories",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Þú munt ekki lengur geta deilt eða skoðað sögur ef slökkt er á þessum valkosti.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Í bið",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Brást við sögunni þinni",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Brást við sögu",
"description": "Used whenever we can't find a user's first name"
@ -7335,6 +7347,10 @@
"message": "Ekki lengur tiltækt",
"description": "Label for when a story is not found"
},
"ContextMenu--button": {
"message": "Context menu",
"description": "Default aria-label for the context menu buttons"
},
"WhatsNew__modal-title": {
"message": "Hvað er nýtt",
"description": "Title for the whats new modal"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Invio risposta...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Invio reazione...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Condivisione e visualizzazione delle Storie",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Non potrai più condividere o visualizzare le Storie quando questa opzione è disattivata.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Pausa",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Ha reagito alla tua storia",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Ha reagito alla storia",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "返信を送信しています…",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "リアクションを送信しています...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "ストーリーズの共有と閲覧",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "このオプションをオフにすると、ストーリーズの共有や閲覧ができなくなります。",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "一時停止",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "あなたのストーリーにリアクションされました",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "ストーリーにリアクションがありました",
"description": "Used whenever we can't find a user's first name"

7366
_locales/ka/messages.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"softwareAcknowledgments": {
"message": "ការទទួលស្គាល់កម្មវិធី",
"message": "សេចក្តីថ្លែងអំណរគុណ​ចំពោះ​សូហ្វវែរ",
"description": "Shown in the about box for the link to software acknowledgments"
},
"privacyPolicy": {
@ -472,7 +472,7 @@
"description": "Error message a recommendations if debug log upload fails"
},
"debugLogSuccess": {
"message": "បាន​ដាក់​បញ្ជូនកំណត់​ហេតុលុបបំបាត់បញ្ហា",
"message": "បាន​ដាក់​បញ្ជូនកំណត់​ហេតុបំបាត់បញ្ហា",
"description": "Title of the success page for submitting a debug log"
},
"debugLogSuccessNextSteps": {
@ -6264,7 +6264,7 @@
"description": "Shown in the message request warning dialog. Clicking this button will open a page on Signal's support site"
},
"ContactSpoofing__same-name": {
"message": "ពិនិត្យមើលសំណើដោយប្រុងប្រយ័ត្ន។ Signal បានរកឃើញបញ្ជីទំនាក់ទំនងផ្សេងទៀតដែលមានឈ្មោះដូចគ្នា។ $link$",
"message": "ពិនិត្យមើលសំណើដោយប្រុងប្រយ័ត្ន។ Signal បានរកឃើញឈ្មោះទំនាក់ទំនងមួយទៀតដែលមានឈ្មោះដូចគ្នា។ $link$",
"description": "Shown in the timeline warning when you have a message request from someone with the same name as someone else",
"placeholders": {
"link": {
@ -6316,7 +6316,7 @@
"description": "Title for the contact name spoofing review dialog in groups"
},
"ContactSpoofingReviewDialog__group__description": {
"message": "សមាជិកក្រុម $count$ នាក់មានឈ្មោះស្រដៀងគ្នា។ ពិនិត្យមើលសមាជិកខាងក្រោម ឬជ្រើសរើសដើម្បីធ្វើសកម្មភាព។",
"message": "សមាជិកក្រុម $count$ នាក់មានឈ្មោះស្រដៀងគ្នា។ ពិនិត្យមើលសមាជិកខាងក្រោម ឬសម្រេចចាត់វិធានការ។",
"description": "Description for the group contact spoofing review dialog"
},
"ContactSpoofingReviewDialog__group__members-header": {
@ -6324,7 +6324,7 @@
"description": "Header in the group contact spoofing review dialog. After this header, there will be a list of members"
},
"ContactSpoofingReviewDialog__group__name-change-info": {
"message": "ថ្មីៗនេះបានប្តូរឈ្មោះប្រូហ្វាល់របស់ពួកគេពី $oldName$ ទៅជា $newName$",
"message": "ថ្មីៗនេះបានប្តូរឈ្មោះប្រូហ្វាល់របស់គេពី $oldName$ ទៅជា $newName$",
"description": "In the group contact spoofing review dialog, this text is shown when someone has changed their name recently",
"placeholders": {
"oldName": {
@ -6352,7 +6352,7 @@
}
},
"RemoveGroupMemberConfirmation__description__with-link": {
"message": "ដក \"$name$\" ចេញពីក្រុមឬ? ពួកគេនឹងមិនអាចចូលរួមឡើងវិញតាមរយៈតំណក្រុមទេ។",
"message": "ដក \"$name$\" ចេញពីក្រុមឬ? គេនឹងមិនអាចចូលរួមឡើងវិញតាមរយៈតំណក្រុមទេ។",
"description": "When confirming the removal of a group member, show this text in the dialog",
"placeholders": {
"name": {
@ -6390,7 +6390,7 @@
"description": "Displayed after successful captcha"
},
"verificationFailed": {
"message": "ការផ្ទៀងផ្ទាត់មិនបានជោគជ័យទេ។ សូមព្យាយាមម្តងទៀតនៅពេលក្រោយ។",
"message": "មិនអាចផ្ទៀងផ្ទាត់បានទេ។ សូមព្យាយាមម្តងទៀតនៅពេលក្រោយ។",
"description": "Displayed after unsuccessful captcha"
},
"deleteForEveryoneFailed": {
@ -6402,7 +6402,7 @@
"description": "Confirm title for deleting custom color"
},
"ChatColorPicker__delete--message": {
"message": "ពណ៌ដែលបានកំណត់ផ្ទាល់ខ្លួននេះនៅក្នុងការជជែកចំនួន $num$។ តើអ្នកចង់លុបវាចោលសម្រាប់ការជជែកទាំងអស់ឬទេ?",
"message": "ពណ៌ដែលបានកំណត់ផ្ទាល់ខ្លួននេះត្រូវបានប្រើនៅក្នុងការជជែកចំនួន $num$។ តើអ្នកពិតជាចង់លុបវាចោលសម្រាប់ការជជែកទាំងអស់មែនឬ?",
"description": "Confirm message for deleting custom color",
"placeholders": {
"num": {
@ -6548,7 +6548,7 @@
"description": "Label for the Disappearing Messages default timer setting"
},
"UniversalTimerNotification__text": {
"message": "ពេលវេលាសារដែលបាត់ដោយស្វ័យប្រវត្តិនឹងត្រូវបានកំណត់ទៅជា $timeValue$ នៅពេលអ្នកផ្ញើសារទៅពួកគេ។",
"message": "ពេលវេលាសម្រាប់ឲ្យសារបាត់ដោយស្វ័យប្រវត្តិនឹងត្រូវបានកំណត់ទៅ $timeValue$ នៅពេលអ្នកផ្ញើសារទៅពួកគេ។",
"description": "A message displayed when default disappearing message timeout is about to be applied",
"placeholders": {
"timeValue": {
@ -6558,7 +6558,7 @@
}
},
"ErrorBoundaryNotification__text": {
"message": "មិនអាចបង្ហាញសារនេះទេ។ សូមចុចដើម្បីដាក់ស្នើកំណត់ហេតុបំបាត់កំហុស។",
"message": "មិនអាចបង្ហាញសារនេះបានទេ។ សូមចុចដើម្បីដាក់បញ្ជូនកំណត់ហេតុបំបាត់បញ្ហា។",
"description": "An error notification displayed when message fails to render due to an internal error"
},
"GroupDescription__read-more": {
@ -6566,7 +6566,7 @@
"description": "Button text when the group description is too long"
},
"EditConversationAttributesModal__description-warning": {
"message": "ការពណ៌នាក្រុម នឹងត្រូវបង្ហាញទៅសមាជិកនៃក្រុមនេះ និងមនុស្សដែលត្រូវបានបបួល។",
"message": "សមាជិកក្រុមនេះ និងអ្នកទាំងឡាយដែលត្រូវបានគេបបួលនឹងមើលឃើញការពណ៌នាអំពីក្រុម។",
"description": "Label text shown when editing group description"
},
"ConversationDetailsHeader--add-group-description": {
@ -6638,7 +6638,7 @@
"description": "Shown on the edit username screen"
},
"ProfileEditor--username--check-characters": {
"message": "ឈ្មោះអ្នកប្រើប្រាស់អាចមានតែ a-z, 0-9 និង _",
"message": "ឈ្មោះអ្នកប្រើអាចមានត្រឹមតែ a-z, 0-9 និង _ ប៉ុណ្ណោះ",
"description": "Shown if user has attempted to use forbidden characters"
},
"ProfileEditor--username--check-starting-character": {
@ -6646,7 +6646,7 @@
"description": "Shown if user has attempted to begin their username with a number"
},
"ProfileEditor--username--check-character-min": {
"message": "ឈ្មោះអ្នកប្រើត្រូវមានតួអក្សរតិចបំផុត $min$។",
"message": "ឈ្មោះអ្នកប្រើត្រូវតែមានយ៉ាងតិច $min$ តួអក្សរ។",
"description": "Shown if user has attempted to enter a username with too few characters - currently min is 3",
"placeholders": {
"min": {
@ -6656,7 +6656,7 @@
}
},
"ProfileEditor--username--check-character-max": {
"message": "ឈ្មោះ​អ្នក​ប្រើ​ត្រូវ​តែ​មាន​តួអក្សរ​ច្រើន​បំផុត $max$។",
"message": "ឈ្មោះ​អ្នក​ប្រើ​ត្រូវ​តែ​មានច្រើន​បំផុត $max$ ​តួអក្សរ។",
"description": "Shown if user has attempted to enter a username with too many characters - currently min is 25",
"placeholders": {
"max": {
@ -6670,11 +6670,11 @@
"description": "Shown if user has attempted to save a username which is not available"
},
"ProfileEditor--username--general-error": {
"message": "ឈ្មោះអ្នកប្រើរបស់អ្នកមិនអាចរក្សាទុកបានទេ។ សូមពិនិត្យការតភ្ជាប់របស់អ្នក ហើយព្យាយាមម្តងទៀត។",
"message": "ឈ្មោះអ្នកប្រើរបស់អ្នកមិនអាចរក្សាទុកបានទេ។ សូមពិនិត្យមើលសេវាអ៊ីនធឺណិតរបស់អ្នក រួចព្យាយាមម្តងទៀត។",
"description": "Shown if something unknown has gone wrong with username save."
},
"ProfileEditor--username--delete-general-error": {
"message": "ឈ្មោះអ្នកប្រើរបស់អ្នកមិនអាចដកចេញបានទេ។ សូមពិនិត្យការតភ្ជាប់របស់អ្នក ហើយព្យាយាមម្តងទៀត។",
"message": "ឈ្មោះអ្នកប្រើរបស់អ្នកមិនអាចដកចេញបានទេ។ សូមពិនិត្យមើលសេវាអ៊ីនធឺណិតរបស់អ្នក រួចព្យាយាមម្តងទៀត។",
"description": "Shown if something unknown has gone wrong with username delete."
},
"ProfileEditor--username--delete-username": {
@ -6682,7 +6682,7 @@
"description": "Shown as aria label for trash icon next to username"
},
"ProfileEditor--username--confirm-delete-body": {
"message": "ការធ្វើបែបនេះនឹងលុប​ឈ្មោះ​អ្នក​ប្រើ​របស់​អ្នក​ចេញ ដោយ​អនុញ្ញាត​ឲ្យអ្នក​ប្រើ​ផ្សេង​ទៀតយក​វា។ តើ​អ្នក​ប្រាកដ​ឬ​ទេ?",
"message": "ការធ្វើបែបនេះនឹងលុប​ឈ្មោះ​អ្នក​ប្រើ​របស់​អ្នក​ចេញ ហើយធ្វើឲ្យអ្នក​ប្រើ​ផ្សេង​ទៀតយក​វាទៅប្រើបាន។ តើអ្នក​ច្បាស់អត់?",
"description": "Shown in dialog body if user has saved an empty string to delete their username"
},
"ProfileEditor--username--confirm-delete-button": {
@ -6706,7 +6706,7 @@
"description": "ConfirmationDialog text for discarding changes"
},
"ProfileEditor--info": {
"message": "ប្រូហ្វាល់របស់អ្នកត្រូវបានអ៊ិនគ្រីប។ ប្រូហ្វាល់របស់អ្នក និងការផ្លាស់ប្តូរទាំងនេះនឹងអាចមើលឃើញដោយបញ្ជីទំនាក់ទំនងរបស់អ្នក ហើយនៅពេលអ្នកចាប់ផ្តើម ឬទទួលយកការជជែកថ្មីៗ។ $learnMore$",
"message": "ប្រូហ្វាល់របស់អ្នកត្រូវបានអ៊ិនគ្រីប។ ប្រូហ្វាល់របស់អ្នក និងការផ្លាស់ប្តូរទាំងនេះនឹងអាចមើលឃើញដោយបញ្ជីទំនាក់ទំនងរបស់អ្នក និងនៅពេលដែលអ្នកចាប់ផ្តើម ឬទទួលយកការជជែកថ្មីៗ។ $learnMore$",
"description": "Information shown at the bottom of the profile editor section",
"placeholders": {
"learnMore": {
@ -6768,7 +6768,7 @@
"description": "Modal title for the list of admins in a group"
},
"AnnouncementsOnlyGroupBanner--announcements-only": {
"message": "មានតែ $admins$ ដែលអាចផ្ញើសារបាន",
"message": "មានតែ $admins$ ប៉ុណ្ណោះដែលអាចផ្ញើសារបាន",
"description": "Displayed if sending of messages is disabled to non-admins",
"placeholders": {
"admins": {
@ -6790,7 +6790,7 @@
"description": "Label for when you need to choose your fighter, err color"
},
"LeftPaneSetGroupMetadataHelper__avatar-modal-title": {
"message": "រូបតំណាងជាក្រុម",
"message": "រូបតំណាងក្រុម",
"description": "Title for the avatar picker in the group creation flow"
},
"Preferences__button--general": {
@ -6844,7 +6844,7 @@
"description": "Title for the generate link previews setting"
},
"Preferences__link-previews--description": {
"message": "ដើម្បីផ្លាស់ប្តូរការកំណត់នេះ សូមបើកកម្មវិធី Signal នៅលើឧបករណ៍ចល័តរបស់អ្នក ហើយចូលទៅកាន់ការកំណត់ រួចទៅការជជែក",
"message": "ដើម្បីផ្លាស់ប្តូរការកំណត់នេះ សូមបើកកម្មវិធី Signal នៅលើឧបករណ៍ចល័តរបស់អ្នក ហើយចូលទៅកាន់ការកំណត់ > ការជជែក",
"description": "Description for the generate link previews setting"
},
"Preferences--advanced": {
@ -6860,7 +6860,7 @@
"description": "Label for blocked contacts setting"
},
"Preferences--blocked-count-singular": {
"message": "$num$ បញ្ជីទំនាក់ទំនង",
"message": "$num$ ឈ្មោះទំនាក់ទំនង",
"description": "Number of contacts blocked singular",
"placeholders": {
"num": {
@ -6870,7 +6870,7 @@
}
},
"Preferences--blocked-count-plural": {
"message": "$num$ បញ្ជីទំនាក់ទំនង",
"message": "$num$ ឈ្មោះទំនាក់ទំនង",
"description": "Number of contacts blocked plural",
"placeholders": {
"num": {
@ -6884,7 +6884,7 @@
"description": "Title for the 'who can do X' setting"
},
"Preferences__privacy--description": {
"message": "ដើម្បីផ្លាស់ប្តូរការកំណត់ទាំងនេះ សូមបើកកម្មវិធី Signal នៅលើឧបករណ៍ចល័តរបស់អ្នក ហើយចូលទៅកាន់ការកំណត់ រួចទៅឯកជនភាព",
"message": "ដើម្បីផ្លាស់ប្តូរការកំណត់ទាំងនេះ សូមបើកកម្មវិធី Signal នៅលើឧបករណ៍ចល័តរបស់អ្នក ហើយចូលទៅកាន់ការកំណត់ > ឯកជនភាព",
"description": "Description for the 'who can do X' setting"
},
"Preferences__who-can--everybody": {
@ -6920,11 +6920,11 @@
"description": "Label for the typing indicators setting"
},
"Preferences--updates": {
"message": "បច្ចុប្បន្នភាព",
"message": "កំណែថ្មី",
"description": "Header for settings having to do with updates"
},
"Preferences__download-update": {
"message": "ទាញយកបច្ចុប្បន្នភាពដោយស្វ័យប្រវត្តិ",
"message": "ទាញយកកំណែថ្មីដោយស្វ័យប្រវត្តិ",
"description": "Label for checkbox for the auto download updates setting"
},
"Preferences__enable-notifications": {
@ -6936,7 +6936,7 @@
"description": "Label for Device list in call settings pane"
},
"DialogUpdate--version-available": {
"message": "ធ្វើបច្ចុប្បន្នភាពទៅកំណែ $version$ ដែលមាន",
"message": "ដំឡើងកំណែទៅ $version$ ដែលមាន",
"description": "Tooltip for new update available",
"placeholders": {
"status": {
@ -6946,15 +6946,15 @@
}
},
"NSIS__retry-dialog--first-line": {
"message": "Signal មិនអាចបិទបានទេ។",
"message": "មិនអាចបិទ Signal បានទេ។",
"description": "First line of the dialog displayed when Windows installer can't close application automatically and needs user intervention to complete the installation."
},
"NSIS__retry-dialog--second-line": {
"message": "សូមបិទវាមួយៗ ហើយចុចព្យាយាមម្តងទៀត ដើម្បីបន្ត។",
"message": "សូមបិទវាដោយផ្ទាល់ រួចចុចព្យាយាមម្តងទៀត ដើម្បីបន្ត។",
"description": "Second line of the dialog displayed when Windows installer can't close application automatically and needs user intervention to complete the installation."
},
"NSIS__appRunning": {
"message": "$appName$ កំពុងដំណើរការ។\nចុចបាទ/ចាសដើម្បីបិទវា។\nប្រសិនបើវាមិនបិទទេ សូមព្យាយាមបិទវាមួយៗ។",
"message": "$appName$ កំពុងដំណើរការ។\nចុច យល់ព្រម ដើម្បីបិទវា។\nបើវាមិនបិទទេ សូមសាកល្បងបិទវាដោយផ្ទាល់។",
"description": "The contents of a dialog displayed when Windows installer detect that the application is running and asks user to close it. Note: please keep the line breaks so that the text occupies three separate lines",
"placeholders": {
"appName": {
@ -6964,11 +6964,11 @@
}
},
"NSIS__decompressionFailed": {
"message": "មិនអាចបង្រួមឯកសារ។ សូមព្យាយាមដំណើរការកម្មវិធីដំឡើងម្តងទៀត។",
"message": "មិនអាចពន្លាឯកសារបានទេ។ សូមសាកល្បងដំណើរការកម្មវិធីដំឡើងម្តងទៀត។",
"description": "Displayed when Windows installer cannot decompress application files"
},
"NSIS__uninstallFailed": {
"message": "មិនអាចលុបឯកសារកម្មវិធីចាស់។ សូមព្យាយាមដំណើរការកម្មវិធីដំឡើងម្តងទៀត។",
"message": "មិនអាចលុបឯកសារកម្មវិធីចាស់ៗបានទេ។ សូមសាកល្បងដំណើរការកម្មវិធីដំឡើងម្តងទៀត។",
"description": "Displayed when Windows installer cannot uninstall the old application"
},
"CrashReportDialog__title": {
@ -6976,7 +6976,7 @@
"description": "A title of the dialog displayed when starting an application after a recent crash"
},
"CrashReportDialog__body": {
"message": "Signal បានចាប់ផ្តើមឡើងវិញបន្ទាប់ពីការគាំង។ អ្នកអាចដាក់ស្នើរបាយការណ៍គាំងដើម្បីជួយ Signal ស៊ើបអង្កេតបញ្ហានេះ។",
"message": "បន្ទាប់ពីគាំងមក Signal បានចាប់ផ្តើមឡើងវិញ។ អ្នកអាចដាក់បញ្ជូន​របាយការណ៍អំពីការគាំង​ដើម្បីជួយដល់ Signal ក្នុងការស៊ើបអង្កេតអំពីបញ្ហានេះ។",
"description": "The body of the dialog displayed when starting an application after a recent crash"
},
"CrashReportDialog__submit": {
@ -6996,7 +6996,7 @@
"description": "Instructions in the modal for customizing the preferred reactions."
},
"CustomizingPreferredReactions__had-save-error": {
"message": "មានបញ្ហាក្នុងការរក្សាទុកការកំណត់របស់អ្នក។ សូមព្យាយាមម្តងទៀត។",
"message": "មានបញ្ហាមួយកើតឡើងនៅពេលរក្សាទុកការកំណត់របស់អ្នក។ សូមព្យាយាមម្តងទៀត។",
"description": "Shown if there is an error when saving your preferred reaction settings. Should be very rare to see this message."
},
"MediaEditor__control--draw": {
@ -7036,7 +7036,7 @@
"description": "Describes what attribute the color picker will change on the text"
},
"MediaEditor__text--underline": {
"message": "គូសបន្ទាត់ពីក្រោម",
"message": "បន្ទាត់ពីក្រោម",
"description": "Describes what attribute the color picker will change on the text"
},
"MediaEditor__draw--pen": {
@ -7044,7 +7044,7 @@
"description": "Type of brush to free draw"
},
"MediaEditor__draw--highlighter": {
"message": "ប៊ិចពណ៌គូសចំណាំ",
"message": "ប៊ិចពណ៌គូសរំលេច",
"description": "Type of brush to free draw"
},
"MediaEditor__draw--thin": {
@ -7100,7 +7100,7 @@
"description": "aria-label for the more button"
},
"MyStories__views--singular": {
"message": "ចំនួនមើល $num$",
"message": "ចំនួនមើល $num$ ដង",
"description": "Number of views your story has",
"placeholders": {
"num": {
@ -7110,7 +7110,7 @@
}
},
"MyStories__views--plural": {
"message": "ចំនួនមើល $num$",
"message": "ចំនួនមើល $num$ ដង",
"description": "Number of views your story has",
"placeholders": {
"num": {
@ -7160,7 +7160,7 @@
"description": "Button label to go to hidden stories pane"
},
"Stories__list-empty": {
"message": "មិនមានរឿងថ្មីៗដើម្បីបង្ហាញនៅពេលនេះទេ",
"message": "មិនមានរឿងរ៉ាវថ្មីៗសម្រាប់បង្ហាញឥឡូវនេះទេ",
"description": "Description for when there are no stories to show"
},
"Stories__placeholder--text": {
@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "កំពុងផ្ញើការឆ្លើយតប…",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "កំពុង​ផ្ញើ​ប្រតិកម្ម…",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "ចែករំលែក និងមើលរឿងរ៉ាវ",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "អ្នកនឹងមិនអាចចែករំលែក ឬមើលរឿងរ៉ាវបានទៀតទេ នៅពេលជម្រើសនេះត្រូវបានបិទ។",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "ផ្អាក់",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "បានប្រតិកម្មទៅនឹងរឿងរ៉ាវរបស់អ្នក",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "បានប្រតិកម្មទៅនឹងរឿងរ៉ាវមួយ",
"description": "Used whenever we can't find a user's first name"
@ -7340,11 +7352,11 @@
"description": "Default aria-label for the context menu buttons"
},
"WhatsNew__modal-title": {
"message": "អ្វីថ្មី",
"message": "អ្វីដែលថ្មី",
"description": "Title for the whats new modal"
},
"WhatsNew__bugfixes": {
"message": "កំណែ​នេះ​មាន​ការ​កែ​សម្រួល និង​កែ​កំហុស​តូចៗ​មួយ​ចំនួន ដើម្បី​រក្សា​ Signal ឲ្យ​ដំណើរការ​ដោយ​រលូន។",
"message": "កំណែ​នេះ​មាន​ការ​កែ​សម្រួល និង​ការកែបញ្ហាតូចៗ​មួយ​ចំនួន ដើម្បី​ឲ្យ​ Signal បន្ត​ដំណើរការ​ដោយ​រលូន។",
"description": "Release notes for releases that only include bug fixes"
},
"WhatsNew__v5.47--1": {

File diff suppressed because it is too large Load Diff

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "답장 전송 중...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "반응 전송 중...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "스토리 공유 및 보기",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "이 옵션을 끄면 더 이상 스토리를 공유하거나 볼 수 없습니다.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "일시 정지",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "내 스토리에 반응했습니다.",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "스토리에 반응했습니다.",
"description": "Used whenever we can't find a user's first name"

View File

@ -2318,7 +2318,7 @@
"description": "A notification shown in the conversation when a contact reinstalls"
},
"safetyNumberChanges": {
"message": "Saugumo numerio pasikeitimai",
"message": "Saugumo numerių pokyčiai",
"description": "Title for safety number changed modal"
},
"safetyNumberChangedGroup": {
@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Siunčiamas atsakymas…",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Siunčiama reakcija…",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Dalintis ir žiūrėti istorijas",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Išjungę šią parinktį daugiau nebegalėsite bendrinti ar žiūrėti istorijų.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Pristabdyti",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Sureagavo į jūsų istoriją",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Sureagavo į istoriją",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Tiek nosūtīta atbilde...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Tiek nosūtīta reakcija...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Kopīgot un skatīt stāstus",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Jūs vairs nevarēsiet kopīgot un skatīt stāstus, kad šī opcija ir izslēgta.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Pauzēt",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Reaģēja uz jūsu stāstu",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Reaģēja uz stāstu",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Испраќање на одговор…",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Испраќање на реакција…",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Споделувајте и гледајте приказни",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Кога оваа опција е исклучена, нема да можете да споделувате и гледате приказни.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Паузирај",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Реагираше на Вашата приказна",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Реагираше на приказна",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "മറുപടി അയയ്ക്കുന്നു...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "പ്രതികരണം അയയ്ക്കുന്നു...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "സ്റ്റോറീസ് പങ്കിടുകയും കാണുകയും ചെയ്യുക",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "ഈ ഓപ്ഷൻ ഓഫായിരിക്കുമ്പോൾ നിങ്ങൾക്ക് സ്റ്റോറീസ് പങ്കിടാനോ കാണാനോ കഴിയില്ല.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "താൽക്കാലികമായി നിർത്തുക",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "നിങ്ങളുടെ സ്റ്റോറിയോട് പ്രതികരിച്ചു",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "ഒരു സ്റ്റോറിയോട് പ്രതികരിച്ചു",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "प्रत्युत्तर पाठवत आहे...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "प्रतिक्रिया पाठवत आहे...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "स्टोरीज शेअर करा व पहा",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "हा पर्याय बंद असताना आपण यापुढे स्टोरीज शेअर करू किंवा पाहू शकणार नाही.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "विराम द्या",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "आपल्या स्टोरीवर प्रतिक्रिया दिली ",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "स्टोरीला प्रतिक्रिया दिली",
"description": "Used whenever we can't find a user's first name"

View File

@ -246,7 +246,7 @@
"description": "Undoes Archive Conversation action, and unpins the conversation from the top of the conversation list"
},
"pinnedConversationsFull": {
"message": "Anda hanya boleh pin sehingga 4 carta",
"message": "Anda hanya boleh pin sehingga 4 sembang",
"description": "Shown in a toast when a user attempts to pin more than the maximum number of chats"
},
"chooseDirectory": {
@ -1012,11 +1012,11 @@
"description": "Shown if the user attempts to send an audio message without audio permissions turned on"
},
"audioCallingPermissionNeeded": {
"message": "Untuk panggilan, anda perlu benarkan Signal Desktop untuk mengakses mikrofon anda.",
"message": "Untuk panggilan, anda perlu membenarkan Signal Desktop mengakses mikrofon anda.",
"description": "Shown if the user attempts access the microphone for calling without audio permissions turned on"
},
"videoCallingPermissionNeeded": {
"message": "Untuk panggilan video, anda perlu benarkan Signal Desktop untuk mengakses kamera anda.",
"message": "Untuk panggilan video, anda perlu membenarkan Signal Desktop mengakses kamera anda.",
"description": "Shown if the user attempts access the camera for video calling without video permissions turned on"
},
"allowAccess": {
@ -1048,15 +1048,15 @@
"description": "Shown as the title of our update error dialogs on windows"
},
"muted": {
"message": "Diredamkan",
"message": "Disenyapkan",
"description": "Shown in a button when a conversation is muted"
},
"mute": {
"message": "Bisukan",
"message": "Senyapkan",
"description": "Shown in a button when a conversation is unmuted and can be muted"
},
"cannotUpdateDetail": {
"message": "Signal tidak dapat dikemas kini. $retry$ atau lawati $url$ untuk memasangnya secara manual. Kemudian, $support$ tentang masalah ini",
"message": "Signal tidak dapat dikemas kini. $retry$ atau layari $url$ untuk memasangnya secara manual. Kemudian, $support$ tentang masalah ini",
"description": "Shown if a general error happened while trying to install update package",
"placeholders": {
"retry": {
@ -1074,7 +1074,7 @@
}
},
"cannotUpdateRequireManualDetail": {
"message": "Signal tidak dapat dikemas kini. Lawati $url$ untuk memasangnya secara manual. Kemudian, $support$ tentang masalah ini",
"message": "Signal tidak dapat dikemas kini. Layari $url$ untuk memasangnya secara manual. Kemudian, $support$ tentang masalah ini",
"description": "Shown if a general error happened while trying to install update package and manual update is required",
"placeholders": {
"url": {
@ -1134,7 +1134,7 @@
"description": ""
},
"forward": {
"message": "Hantar",
"message": "Majukan",
"description": ""
},
"done": {
@ -1590,7 +1590,7 @@
"description": "Shown in the calling lobby to describe who is in the call"
},
"calling__pre-call-info--1-person-in-call": {
"message": "$first$ sedang dalam panggilan ini",
"message": "$first$ dalam panggilan ini",
"description": "Shown in the calling lobby to describe who is in the call",
"placeholders": {
"first": {
@ -1774,7 +1774,7 @@
}
},
"calling__in-this-call--zero": {
"message": "Tiada seorang pun di sini",
"message": "Tiada sesiapa di sini",
"description": "Shown in the participants list to describe how many people are in the call"
},
"calling__in-this-call--one": {
@ -2532,7 +2532,7 @@
"description": "When a person inputs a number that is invalid"
},
"unlinkedWarning": {
"message": "Klik untuk mempautkan semula Signal Desktop kepada peranti mudah alih anda untuk meneruskan pemesejan.",
"message": "Klik untuk memautkan semula Signal Desktop kepada peranti mudah alih anda untuk terus bermesej.",
"description": ""
},
"unlinked": {
@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Menghantar balasan…",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Menghantar reaksi…",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Kongsi & Tonton Cerita",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Anda tidak lagi dapat berkongsi atau melihat Cerita apabila pilihan ini dimatikan.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Jeda",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Bereaksi kepada cerita anda",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Bereaksi kepada cerita",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "ပြန်စာ ပို့နေဆဲ...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "တုံ့ပြန်ချက် ပို့နေဆဲ...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "စတိုရီများကို မျှဝေကြည့်ရှုရန်",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "ဤရွေးချယ်မှုကို ပိတ်ထားချိန်တွင် စတိုရီများ မျှဝေခြင်း သို့မဟုတ် ကြည့်ခြင်းကို လုပ်ဆောင်နိုင်တော့မည် မဟုတ်ပါ။",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "ခဏရပ်သည်",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "သင့်စတိုရီကို တုံ့ပြန်မှု ပေးခဲ့ပါသည်",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "စတိုရီတစ်ခုကို တုံ့ပြန်မှု ပေးခဲ့ပါသည်",
"description": "Used whenever we can't find a user's first name"

File diff suppressed because it is too large Load Diff

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Antwoord versturen...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Reactie versturen...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Verhalen delen en bekijken",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Zolang deze optie is uitgeschakeld kun je geen verhalen bekijken en delen.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Pauzeren",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Reageerde op je verhaal",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Reageerde op een verhaal",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Sending reply...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Sending reaction...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Share & View Stories",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Du kan ikkje lenger dela eller visa Historier når dette er skrudd av.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Pause",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Reagerte på historia di",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Reagerte på ei historie",
"description": "Used whenever we can't find a user's first name"
@ -7335,6 +7347,10 @@
"message": "Ikkje lenger tilgjengeleg",
"description": "Label for when a story is not found"
},
"ContextMenu--button": {
"message": "Context menu",
"description": "Default aria-label for the context menu buttons"
},
"WhatsNew__modal-title": {
"message": "Kva er nytt",
"description": "Title for the whats new modal"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Sender svar...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Sender reaksjon...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Del og se stories",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Hvis du slår av dette, vil du ikke lenger kunne dele eller se andres stories.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Pause",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Reacted to your story",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Reacted to a story",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "ਜਵਾਬ ਭੇਜਿਆ ਜਾ ਰਿਹਾ ਹੈ…",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "ਪ੍ਰਤੀਕਿਰਿਆ ਭੇਜੀ ਜਾ ਰਹੀ ਹੈ…",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "ਸਟੋਰੀਆਂ ਨੂੰ ਸਾਂਝਾ ਕਰੋ ਅਤੇ ਦੇਖੋ",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "ਇਸ ਵਿਕਲਪ ਦੇ ਬੰਦ ਹੋਣ 'ਤੇ ਤੁਸੀਂ ਨਾ ਹੀ ਸਟੋਰੀਆਂ ਨੂੰ ਸਾਂਝਾ ਕਰ ਸਕੋਗੇ ਅਤੇ ਨਾ ਹੀ ਦੇਖ ਸਕੋਗੇ।",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "ਰੋਕੋ",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "ਤੁਹਾਡੀ ਕਹਾਣੀਂ ਉੱਤੇ ਰਿਐਕਸ਼ਨ ਦਿੱਤਾ",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "ਕਿਸੇ ਕਹਾਣੀ ਉੱਤੇ ਰਿਐਕਸ਼ਨ ਦਿੱਤਾ",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Wysyłanie odpowiedzi…",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Wysyłanie reakcji…",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Udostępniaj i oglądaj relacje",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Gdy ta opcja jest wyłączona, nie będziesz w stanie udostępniać ani oglądać historii.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Pauza",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Zareagowano na Twoją historię",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Zareagowano na historię",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Enviando resposta...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Enviando reação...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Compartilhar e visualizar Stories",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Você não poderá compartilhar ou visualizar Stories quando essa opção estiver desabilitada.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Pausar",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Reagiu ao seu story",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Reagiu a um story",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "A enviar resposta...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "A enviar reação...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Partilhar e ver histórias",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Deixará de ser capaz de partilhar ou ver 'Histórias' quando esta opção se encontrar desativada.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Pausar",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Reagiu à sua história",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Reagiu a uma história",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Se trimite răspunsul…",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Se trimite reacția…",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Trimite și Vizualizează Poveștile",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Nu vei mai putea să distribui sau să vezi Povești atunci când această opțiune este dezactivată.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Pauză",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "A reacționat la povestea ta",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "A reacționat la poveste",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Отправляем ответ…",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Отправляем реакцию…",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Делиться историями и просматривать их",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Если эта настройка отключена, вы не сможете делиться историями и просматривать их.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Приостановить",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Отреагировал(-а) на вашу историю",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Отреагировал(-а) на историю",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Odosiela sa odpoveď…",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Odosiela sa reakcia…",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Zdieľať a zobraziť príbehy",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Keď je táto možnosť vypnutá, už nebudete môcť zdieľať ani zobrazovať príbehy.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Pozastaviť",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Reagoval na váš príbeh",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Reagoval na príbeh",
"description": "Used whenever we can't find a user's first name"

View File

@ -6988,7 +6988,7 @@
"description": "A button label for erasure of the crash reporter data after a recent crash and continuing to start the app"
},
"CustomizingPreferredReactions__title": {
"message": "Prilagodi reakcije",
"message": "Prilagodi odzive",
"description": "Shown in the header of the modal for customizing the preferred reactions. Also shown in the tooltip for the button that opens this modal."
},
"CustomizingPreferredReactions__subtitle": {
@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Pošiljanje odgovora ...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Pošiljanje odziva ...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Deljenje & Ogled Zgodb",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Če je ta nastavitev izklopljena, ne boste več mogli deliti ali gledati zgodb.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Pavza",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Reakcije na zgodbo",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Reakcija na zgodbo",
"description": "Used whenever we can't find a user's first name"
@ -7336,7 +7348,7 @@
"description": "Label for when a story is not found"
},
"ContextMenu--button": {
"message": "Meni s kontekstom",
"message": "Meni bližnjic",
"description": "Default aria-label for the context menu buttons"
},
"WhatsNew__modal-title": {

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Përgjigjja po dërgohet ...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Reagimi po dërgohet ...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Shpërndaj dhe shiko postimet e përkohshme ",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Pasi kjo të çaktivizohet, sdo të mund të shpërndash më materiale me të tjerë apo të shohësh postimet e përkohshme.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Ndalesë",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Reagoi ndaj historisë tuaj",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Reagoi te një histori",
"description": "Used whenever we can't find a user's first name"

View File

@ -28,7 +28,7 @@
"description": "Shown in a popup if the database cannot start up properly; allows user to delete database and restart"
},
"mainMenuFile": {
"message": "&Фајл",
"message": "&Fajl",
"description": "The label that is used for the File menu in the program main menu. The '&' indicates that the following letter will be used as the keyboard 'shortcut letter' for accessing the menu with the Alt-<letter> combination."
},
"mainMenuCreateStickers": {
@ -164,7 +164,7 @@
"description": "Label for context button next to each message"
},
"contextMenuCopyLink": {
"message": "Копирај везу",
"message": "Kopiraj link",
"description": "Shown in the context menu for a link to indicate that the user can copy the link"
},
"contextMenuCopyImage": {
@ -254,7 +254,7 @@
"description": "Button to allow the user to find a folder on disk"
},
"chooseFile": {
"message": "Изаберите фајл",
"message": "Izaberite fajl",
"description": "Button to allow the user to find a file on disk"
},
"loadDataHeader": {
@ -484,7 +484,7 @@
"description": "Shown as the text for the copy button on the debug log screen"
},
"debugLogCopy": {
"message": "Копирај везу",
"message": "Kopiraj link",
"description": "Shown as the text for the copy button on the debug log screen"
},
"debugLogSave": {
@ -492,7 +492,7 @@
"description": "Shown as the text for the download button on the debug log screen"
},
"debugLogLinkCopied": {
"message": "Линк копиран",
"message": "Link je kopiran",
"description": "Shown in a toast to let the user know that the link to the debug log has been copied to their clipboard"
},
"reportIssue": {
@ -600,7 +600,7 @@
"description": "Hover text for attachment filenames"
},
"unnamedFile": {
"message": "Неименована датотека",
"message": "Fajl bez naziva",
"description": "Hover text for attachment filenames"
},
"voiceMessage": {
@ -616,7 +616,7 @@
"description": "Shown while Signal Desktop is fetching metadata for a url in composition area"
},
"stagedPreviewThumbnail": {
"message": "Нацрт прегледа линка за $domain$",
"message": "Nacrt sličice prikaza linka za $domain$",
"description": "Shown while Signal Desktop is fetching metadata for a url in composition area",
"placeholders": {
"path": {
@ -626,7 +626,7 @@
}
},
"previewThumbnail": {
"message": "Сличица прегледа линка за $domain$",
"message": "Sličica prikaza linka za $domain$",
"description": "Shown while Signal Desktop is fetching metadata for a url in composition area",
"placeholders": {
"domain": {
@ -676,7 +676,7 @@
"description": "An error popup when the user has attempted to add an attachment"
},
"fileSizeWarning": {
"message": "Жао нам је, ваша датотека превазилази ограничење величине.",
"message": "Izabrani fajl prevazilazi ograničenja u pogledu veličine poruke.",
"description": ""
},
"unableToLoadAttachment": {
@ -1352,7 +1352,7 @@
"description": "Used on reset buttons"
},
"fileIconAlt": {
"message": "Икона датотеке",
"message": "Ikona fajla",
"description": "Used in the media gallery documents tab to visually represent a file"
},
"installWelcome": {
@ -2716,7 +2716,7 @@
"description": "Shown in notifications and in the left pane when an audio message is received."
},
"message--getNotificationText--file": {
"message": "Датотека",
"message": "Fajl",
"description": "Shown in notifications and in the left pane when a generic file is received."
},
"message--getNotificationText--stickers": {
@ -3196,11 +3196,11 @@
"description": "Shown in the shortcuts guide"
},
"Keyboard--attach-file": {
"message": "Закачи фајл",
"message": "Zakačite fajl",
"description": "Shown in the shortcuts guide"
},
"Keyboard--remove-draft-link-preview": {
"message": "Уклоните преглед нацрта везе",
"message": "Ukloni nacrt prikaza linka",
"description": "Shown in the shortcuts guide"
},
"Keyboard--remove-draft-attachments": {
@ -3392,7 +3392,7 @@
"description": "Label for the X button used to remove a staged sticker"
},
"StickerCreator--DropStage--dragDrop": {
"message": "Кликните или превуците/испустите датотеку да бисте додали налепницу",
"message": "Kliknite ili prevucite/otpustite fajl da dodate nalepnicu",
"description": "Shown on the + section of the file addition stage of sticker pack creation"
},
"StickerCreator--DropStage--help": {
@ -3554,7 +3554,7 @@
}
},
"StickerCreator--Toasts--linkedCopied": {
"message": "Веза копирана",
"message": "Link je kopiran",
"description": "Text for the toast when a link for sharing is copied from the Sticker Creator"
},
"StickerCreator--StickerPreview--light": {
@ -4238,11 +4238,11 @@
"description": "Shown in toast when a non-admin starts a group call in an announcements only group"
},
"GroupV2--join--invalid-link--title": {
"message": "Неисправна веза",
"message": "Neispravan link",
"description": "Shown if we are unable to parse a group link"
},
"GroupV2--join--invalid-link": {
"message": "Ово није важећа веза до групе. Уверите се да је цела веза нетакнута и исправна пре него што покушате да се придружите.",
"message": "Ovaj link za grupu nije ispravan. Proverite da li je ceo link kompletan i ispravan pre nego što pokušate da se pridružite.",
"description": "Shown if we are unable to parse a group link"
},
"GroupV2--join--prompt": {
@ -4258,11 +4258,11 @@
"description": "Shown if you click a group link for a group where you've already requested approval'"
},
"GroupV2--join--unknown-link-version--title": {
"message": "Непозната верзија везе",
"message": "Nepoznata verzija linka",
"description": "This group link is no longer valid."
},
"GroupV2--join--unknown-link-version": {
"message": "Ова верзија Signal Desktop-а не подржава ову везу.",
"message": "Ova verzija Signal Desktop-a ne podržava ovaj link.",
"description": "Shown if you click a group link and we can't get information about it"
},
"GroupV2--join--link-revoked--title": {
@ -4270,7 +4270,7 @@
"description": "Shown if you click a group link and we can't get information about it"
},
"GroupV2--join--link-revoked": {
"message": "Веза до групе није више активна.",
"message": "Link za grupu više nije ispravan.",
"description": "Shown if you click a group link and we can't get information about it"
},
"GroupV2--join--link-forbidden--title": {
@ -4278,7 +4278,7 @@
"description": "Shown if you click a group link and you have been forbidden from joining via the link"
},
"GroupV2--join--link-forbidden": {
"message": "Не можете да се придружите овој групи преко везе групе јер вас је администратор уклонио.",
"message": "Ne možete da se pridružite ovoj grupi preko linka za grupu jer vas je administrator uklonio.",
"description": "Shown if you click a group link and you have been forbidden from joining via the link"
},
"GroupV2--join--prompt-with-approval": {
@ -4338,7 +4338,7 @@
"description": "Shown in composition area when you've requested to join a group"
},
"GroupV2--join--general-join-failure--title": {
"message": "Грешка везе",
"message": "Greška sa linkom",
"description": "Shown if something went wrong when you try to join via a group link"
},
"GroupV2--join--general-join-failure": {
@ -4540,11 +4540,11 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--access-invite-link--disabled--you": {
"message": "Искључили сте одобрење администратора за везу до групе.",
"message": "Isključili ste obavezno odobrenje administratora za link za grupu.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--access-invite-link--disabled--other": {
"message": "$adminName$ је искључио/ла одобрење администратора за везу до групе.",
"message": "$adminName$ je isključio/la obavezno odobrenje administratora za link za grupu.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"adminName": {
@ -4554,15 +4554,15 @@
}
},
"GroupV2--access-invite-link--disabled--unknown": {
"message": "Одобрење администратора за везу до групе је онемогућено.",
"message": "Isključeno je obavezno odobrenje administratora za link za grupu.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--access-invite-link--enabled--you": {
"message": "Омогућили сте одобрење администратора за везу до групе.",
"message": "Uključili ste obavezno odobrenje administratora za link za grupu.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--access-invite-link--enabled--other": {
"message": "$adminName$ омогућио/ла одобрење администратора за везу до групе.",
"message": "$adminName$ je uključio/la obavezno odobrenje administratora za link za grupu.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"adminName": {
@ -4572,7 +4572,7 @@
}
},
"GroupV2--access-invite-link--enabled--unknown": {
"message": "Одобрење администратора за везу до групе је омогућено.",
"message": "Uključeno je obavezno odobrenje administratora za link za grupu.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--member-add--invited--you": {
@ -4710,11 +4710,11 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--member-add-from-link--you--you": {
"message": "Придружили сте се групи преко везе до групе.",
"message": "Pridružili ste se grupi preko linka za grupu.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--member-add-from-link--other": {
"message": "$memberName$ се придружио/ла групи преко везе до групе.",
"message": "$memberName$ se pridružio/la grupi preko linka za grupu.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"memberName": {
@ -5264,7 +5264,7 @@
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--admin-approval-add-one--other": {
"message": "$joinerName$ је затражио/ла да се придружи преко везе до групе.",
"message": "$joinerName$ je zatražio/la da se pridruži grupi preko linka za grupu.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"joinerName": {
@ -5316,7 +5316,7 @@
}
},
"GroupV2--admin-approval-bounce--one": {
"message": "$joinerName$ затражио и отказао захтев за придруживање групи преко везе",
"message": "$joinerName$ je zatražio/la da se pridruži grupi preko linka za grupu i zatim otkazao/la zahtev da se pridruži.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"joinerName": {
@ -5326,7 +5326,7 @@
}
},
"GroupV2--admin-approval-bounce": {
"message": "$joinerName$ затражио и отказао $numberOfRequests$ захтева за придруживање групи преко везе",
"message": "$joinerName$ je zatražio/la da se pridruži grupi preko linka za grupu i zatim otkazao/la zahteve ($numberOfRequests$) da se pridruži.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"joinerName": {
@ -5340,11 +5340,11 @@
}
},
"GroupV2--group-link-add--disabled--you": {
"message": "Укључили сте везу до групе без одобрењем администратора.",
"message": "Uključili ste link za grupu bez obaveznog odobrenja administratora.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--group-link-add--disabled--other": {
"message": "$adminName$ је укључио/ла везу до групе без одобрења администратора.",
"message": "$adminName$ je uključio/la link za grupu bez obaveznog odobrenja administratora.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"adminName": {
@ -5354,15 +5354,15 @@
}
},
"GroupV2--group-link-add--disabled--unknown": {
"message": "Веза до групе је укључена без одобрењем админитратора.",
"message": "Uključen je link za grupu bez obaveznog odobrenja administratora.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--group-link-add--enabled--you": {
"message": "Укључили сте везу до групе са одобрењем администратора.",
"message": "Uključili ste link za grupu sa obaveznim odobrenjem administratora.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--group-link-add--enabled--other": {
"message": "$adminName$ је укључио/ла везу до групе са одобрења администратора.",
"message": "$adminName$ je uključio/la link za grupu sa obaveznim odobrenjem administratora.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"adminName": {
@ -5372,15 +5372,15 @@
}
},
"GroupV2--group-link-add--enabled--unknown": {
"message": "Веза до групе је укључена са одобрењем админитратора.",
"message": "Uključen je link za grupu sa obaveznim odobrenjem administratora.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--group-link-remove--you": {
"message": "Искључили сте везу до групе.",
"message": "Isključili ste link za grupu.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--group-link-remove--other": {
"message": "$adminName$ искључио/ла везу до групе.",
"message": "$adminName$ je isključio/la link za grupu.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"adminName": {
@ -5390,15 +5390,15 @@
}
},
"GroupV2--group-link-remove--unknown": {
"message": "Веза до групе је искључена.",
"message": "Link za grupu je isključen.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--group-link-reset--you": {
"message": "Ресетовали сте везу до групе.",
"message": "Resetovali ste link za grupu.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--group-link-reset--other": {
"message": "$adminName$ ресетовао/ла везу до групе.",
"message": "$adminName$ je resetovao/la link za grupu.",
"description": "Shown in timeline or conversation preview when v2 group changes",
"placeholders": {
"adminName": {
@ -5408,7 +5408,7 @@
}
},
"GroupV2--group-link-reset--unknown": {
"message": "Веза до групе је ресетована.",
"message": "Link za grupu je resetovan.",
"description": "Shown in timeline or conversation preview when v2 group changes"
},
"GroupV2--description--remove--you": {
@ -5638,7 +5638,7 @@
"description": "Aria label for expanding composition area"
},
"CompositionArea--attach-file": {
"message": "Закачи фајл",
"message": "Zakači fajl",
"description": "Aria label for file attachment button in composition area"
},
"CompositionArea--sms-only__title": {
@ -5710,7 +5710,7 @@
"description": "Title for the modal to unmute a chat"
},
"ConversationDetails--group-link": {
"message": "Веза до групе",
"message": "Link za grupu",
"description": "This is the label for the group link management panel"
},
"ConversationDetails--disappearing-messages-label": {
@ -5874,19 +5874,19 @@
"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": "Веза до групе копирана",
"message": "Link za grupu je kopiran.",
"description": "Shown in a toast when a user selects to copy group link"
},
"GroupLinkManagement--share": {
"message": "Копирај везу",
"message": "Kopiraj link",
"description": "This lets users share their group link"
},
"GroupLinkManagement--confirm-reset": {
"message": "Да ли сте сигурни да желите да укинете везу према групи? Особе више неће моћи да се придруже групи помоћу тренутне везе.",
"message": "Da li ste sigurni da želite da resetujete link za grupu? Ljudi više neće moći da se pridruže grupi preko trenutnog linka.",
"description": "Shown in the confirmation dialog when an admin is about to reset the group link"
},
"GroupLinkManagement--reset": {
"message": "Ресетуј линк",
"message": "Resetuj link",
"description": "This lets users generate a new group link"
},
"GroupLinkManagement--approve-label": {
@ -5894,7 +5894,7 @@
"description": "Title for the approve new members select area"
},
"GroupLinkManagement--approve-info": {
"message": "Захтевајте од администратора да одобри придруживање нових чланова путем везе до групе",
"message": "Obavezno je da administrator odobri nove članove koji se pridružuju preko linka za grupu.",
"description": "Description for the approve new members select area"
},
"PendingInvites--tab-requests": {
@ -5938,7 +5938,7 @@
}
},
"PendingRequests--deny-for--with-link": {
"message": "Одбиј захтев од \"$name$\"? Неће моћи поново да затраже да се придруже преко линка групе.",
"message": "Želite li da odbijete zahtev koji šalje $name$? Neće više moći da pošalje zahtev da se pridruži preko linka za grupu.",
"description": "This is the modal content when confirming denying a group request to join",
"placeholders": {
"name": {
@ -6024,7 +6024,7 @@
"description": "This is the modal button to deny group request to join"
},
"PendingRequests--info": {
"message": "Људи са ове листе покушавају да се придруже „$name$“ преко везе до групе.",
"message": "Osobe sa ove liste pokušavaju da se pridruže grupi „$name$“ preko linka za grupu.",
"description": "Information shown below the pending admin approval list",
"placeholders": {
"name": {
@ -6046,7 +6046,7 @@
"description": "Title of dialog to block a user from requesting to join via the link again"
},
"PendingRequests--block--contents": {
"message": "$name$ неће моћи да се придружи или захтева да се придружи овој групи преко линка групе. И даље може се ручно додати у групу.",
"message": "$name$ neće moći da se pridruži grupi ili zatraži da se pridruži grupi preko linka za grupu. I dalje će moći ručno da se doda u grupu.",
"description": "Details of dialog to block a user from requesting to join via the link again",
"placeholders": {
"name": {
@ -6264,7 +6264,7 @@
"description": "Shown in the message request warning dialog. Clicking this button will open a page on Signal's support site"
},
"ContactSpoofing__same-name": {
"message": "Пажљиво прегледајте захтеве. Signal је пронашао други контакт са истим називом. $link$",
"message": "Pažljivo razmatrajte zahteve. Signal je pronašao još jedan kontakt sa istim imenom. $link$",
"description": "Shown in the timeline warning when you have a message request from someone with the same name as someone else",
"placeholders": {
"link": {
@ -6274,7 +6274,7 @@
}
},
"ContactSpoofing__same-name-in-group": {
"message": "$count$ чланови/а групе имају исто име. $link$",
"message": "Njih $count$ u grupi ima isto ime. $link$",
"description": "Shown in the timeline warning when you multiple group members have the same name",
"placeholders": {
"count": {
@ -6352,7 +6352,7 @@
}
},
"RemoveGroupMemberConfirmation__description__with-link": {
"message": "Уклони \"$name$\" из групе? Неће моћи поново да се придруже преко везе групе.",
"message": "Želite li da uklonite korisnika ($name$) iz grupe? Neće moći ponovo da se pridruži grupi preko linka.",
"description": "When confirming the removal of a group member, show this text in the dialog",
"placeholders": {
"name": {
@ -6840,7 +6840,7 @@
"description": "Label for changing the zoom level"
},
"Preferences__link-previews--title": {
"message": "Креирати приказ линка",
"message": "Generisanje prikaza linka",
"description": "Title for the generate link previews setting"
},
"Preferences__link-previews--description": {
@ -6964,11 +6964,11 @@
}
},
"NSIS__decompressionFailed": {
"message": "Декомпримовање датотека није успело. Покушајте поново да покренете инсталатер.",
"message": "Dekomprimovanje fajlova nije uspelo. Probajte ponovo da pokrenete instalacioni program.",
"description": "Displayed when Windows installer cannot decompress application files"
},
"NSIS__uninstallFailed": {
"message": "Деинсталирање старих датотека апликације није успело. Покушајте поново да покренете инсталатер.",
"message": "Deinstaliranje starih fajlova aplikacije nije uspelo. Probajte ponovo da pokrenete instalacioni program.",
"description": "Displayed when Windows installer cannot uninstall the old application"
},
"CrashReportDialog__title": {
@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Slanje odgovora…",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Slanje reakcije…",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Podelite i vidite priče",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Више нећете моћи да делите или гледате Приче када је ова опција искључена.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Паузирај",
"description": "Aria label for pausing a story"
@ -7306,7 +7322,7 @@
"description": "Placeholder for the add text input"
},
"TextAttachment__preview__link": {
"message": "Посетите везу",
"message": "Posetite link",
"description": "Title for the link preview tooltip"
},
"Quote__story": {
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Реаговано на причу",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Реакција на причу",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Skickar svar ...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Skickar reaktion ...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Dela och visa Stories",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Du kommer inte längre kunna dela eller se berättelser när denna inställning är av.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Pausa",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Reagerade på din berättelse",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Reagerade på en berättelse",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Tuma jibu .. ",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Tuma reaction ...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Shiriki & Tazama Stori",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Hutoweza tena kushirikisha wengine au kutazama stori wakati ambapo chaguo hili limezimwa.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Sitisha",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Ame-react kwa stori yako",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Ame-react kwa stori",
"description": "Used whenever we can't find a user's first name"

View File

@ -1454,7 +1454,7 @@
"description": "Shown during initial link while contacts and groups are being pulled from mobile device"
},
"initialSync__subtitle": {
"message": "குறிப்பு: உங்கள் சாட் வரலாறு இந்த சாதனத்துடன் ஒத்திசைக்கப்படாது",
"message": "குறிப்பு: உங்கள் சாட் வரலாறு இந்த டிவைஸுடன் ஒத்திசைக்கப்படாது",
"description": "Shown during initial link while contacts and groups are being pulled from mobile device"
},
"installConnectionFailed": {
@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "பதில் அனுப்பப்படுகிறது…",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "எதிர்வினை அனுப்பப்படுகிறது…",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "ஸ்டோரீஸ்-ஐப் பகிரவும் & பார்க்கவும்",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "இந்த விருப்பத்தேர்வு முடக்கப்பட்டிருக்கும் போது உங்களால் இனி ஸ்டோரீக்களைப் பகிரவோ பார்க்கவோ முடியாது.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Pause",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "உங்கள் ஸ்டோரிக்கு பதிலளித்துள்ளார்",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "ஒரு ஸ்டோரிக்கு பதிலளித்துள்ளார்",
"description": "Used whenever we can't find a user's first name"
@ -7336,7 +7348,7 @@
"description": "Label for when a story is not found"
},
"ContextMenu--button": {
"message": "Context menu",
"message": "கான்டெக்ச்ட் பட்டியல்",
"description": "Default aria-label for the context menu buttons"
},
"WhatsNew__modal-title": {

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "రిప్లై పంపుతోంది..",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "రియాక్షన్ పంపుతోంది...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "స్టోరీస్ చూడండి & పంచుకోండి",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "ఈ ఆప్షన్‌ను ఆఫ్ చేసినప్పుడు, మీరు స్టోరీస్ పంచుకోలేరు లేదా వీక్షించలేరు. ",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "నిలుపు",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "మీ స్టోరీకి ప్రతిస్పందించారు",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "ఒక స్టోరీకి రియాక్ట్ అయ్యారు",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "กำลังส่งการตอบกลับ…",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "กำลังส่งการแสดงความรู้สึก…",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "แชร์และดูสตอรี่",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "คุณจะแชร์หรือรับชมสตอรี่ไม่ได้อีกต่อไป ถ้าตัวเลือกนี้ถูกปิด",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "หยุดชั่วคราว",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "ตอบสนองกับสตอรี่ของคุณ",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "ตอบสนองกับสตอรี่",
"description": "Used whenever we can't find a user's first name"
@ -7336,7 +7348,7 @@
"description": "Label for when a story is not found"
},
"ContextMenu--button": {
"message": "เมนูบริบท",
"message": "เมนูลัด",
"description": "Default aria-label for the context menu buttons"
},
"WhatsNew__modal-title": {

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Yanıt gönderiliyor...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Tepki gönderiliyor...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Hikayeleri Paylaş ve Görüntüle",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Bu seçenek kapatıldığında artık Hikayeleri paylaşamayacak veya görüntüleyemeyeceksiniz.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Durdur",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Hikayene tepki verildi",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Bir hikayeye tepki verildi",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Надсилаємо відповідь...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Надсилаємо реакцію...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Поширення і перегляд сторіз",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Ви не зможете ділитись або переглядати Сторіз, якщо ця опція вимкнена.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Пауза",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Відреагували на вашу історію",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Реакції на історію",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "جواب بھیج رہے ہیں...",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "ردعمل بھیج رہے ہیں...",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "سٹوریز شیئر کریں اور دیکھیں",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "یہ آپشن آف ہو تو آپ سٹوریز دیکھ یا شیئر نہیں کر سکیں گے۔",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "وقفہ کریں",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "آپ کی اسٹوری پر ردعمل دیا",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "اسٹوری پر ردعمل دیا",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "Đang gửi câu trả lời…",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "Đang gửi bày tỏ cảm xúc…",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "Chia sẻ & Xem Story",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "Bạn sẽ không thể chia sẻ hoặc xem Story khi tùy chọn này được tắt.",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "Tạm ngưng",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "Đã bày tỏ cảm xúc với story của bạn",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "Đã bày tỏ cảm xúc với một story",
"description": "Used whenever we can't find a user's first name"

File diff suppressed because it is too large Load Diff

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "正在发送回复……",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "正在发送反应……",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "分享和浏览动态",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "关闭此选项后您将无法分享或浏览动态。",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "暂停",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "已回应您的动态",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "已回应动态",
"description": "Used whenever we can't find a user's first name"

View File

@ -7181,6 +7181,22 @@
}
}
},
"Stories__toast--sending-reply": {
"message": "正在傳送回覆…",
"description": "Toast message"
},
"Stories__toast--sending-reaction": {
"message": "正在傳送反應…",
"description": "Toast message"
},
"Stories__settings-toggle--title": {
"message": "分享及瀏覽限動",
"description": "Select box title for the stories on/off toggle"
},
"Stories__settings-toggle--description": {
"message": "關閉此選項時,你將無法再分享或觀看限時動態。",
"description": "Select box description for the stories on/off toggle"
},
"StoryViewer__pause": {
"message": "暫停",
"description": "Aria label for pausing a story"
@ -7323,10 +7339,6 @@
}
}
},
"Quote__story-reaction--yours": {
"message": "對你的限時動態表達了心情",
"description": "Label for when a person reacts to your story"
},
"Quote__story-reaction--single": {
"message": "對一則限時動態回應",
"description": "Used whenever we can't find a user's first name"

View File

@ -10,9 +10,10 @@ import type { LoggerType } from '../ts/types/Logging';
import type { LocaleMessagesType } from '../ts/types/I18N';
import type { LocalizerType } from '../ts/types/Util';
function normalizeLocaleName(locale: string): string {
if (/^en-/.test(locale)) {
return 'en';
function removeRegion(locale: string): string {
const match = /^([^-]+)(-.+)$/.exec(locale);
if (match) {
return match[1];
}
return locale;
@ -38,12 +39,29 @@ export type LocaleType = {
messages: LocaleMessagesType;
};
function finalize(
messages: LocaleMessagesType,
backupMessages: LocaleMessagesType,
localeName: string
) {
// We start with english, then overwrite that with anything present in locale
const finalMessages = merge(backupMessages, messages);
const i18n = setupI18n(localeName, finalMessages);
return {
i18n,
name: localeName,
messages: finalMessages,
};
}
export function load({
appLocale,
logger,
}: {
appLocale: string;
logger: Pick<LoggerType, 'error'>;
logger: Pick<LoggerType, 'error' | 'warn'>;
}): LocaleType {
if (!appLocale) {
throw new TypeError('`appLocale` is required');
@ -52,6 +70,9 @@ export function load({
if (!logger || !logger.error) {
throw new TypeError('`logger.error` is required');
}
if (!logger.warn) {
throw new TypeError('`logger.warn` is required');
}
const english = getLocaleMessages('en');
@ -59,30 +80,23 @@ export function load({
// default to 'en'
//
// possible locales:
// https://github.com/electron/electron/blob/master/docs/api/locales.md
let localeName = normalizeLocaleName(appLocale);
let messages;
// https://source.chromium.org/chromium/chromium/src/+/main:ui/base/l10n/l10n_util.cc
const normalized = removeRegion(appLocale);
try {
messages = getLocaleMessages(localeName);
// We start with english, then overwrite that with anything present in locale
messages = merge(english, messages);
return finalize(getLocaleMessages(appLocale), english, appLocale);
} catch (e) {
logger.error(
`Problem loading messages for locale ${localeName} ${e.stack}`
);
logger.error('Falling back to en locale');
localeName = 'en';
messages = english;
logger.warn(`Problem loading messages for locale ${appLocale}`);
}
const i18n = setupI18n(appLocale, messages);
try {
logger.warn(`Falling back to parent language: '${normalized}'`);
// Note: messages are from parent language, but we still keep the region
return finalize(getLocaleMessages(normalized), english, appLocale);
} catch (e) {
logger.error(`Problem loading messages for locale ${normalized}`);
return {
i18n,
name: localeName,
messages,
};
logger.warn("Falling back to 'en' locale");
return finalize(english, english, 'en');
}
}

View File

@ -608,9 +608,10 @@ if (OS.isWindows()) {
}
const mainTitleBarStyle =
OS.isLinux() || isTestEnvironment(getEnvironment())
? ('default' as const)
: ('hidden' as const);
(OS.isMacOS() || OS.hasCustomTitleBar()) &&
!isTestEnvironment(getEnvironment())
? ('hidden' as const)
: ('default' as const);
const nonMainTitleBarStyle = OS.hasCustomTitleBar()
? ('hidden' as const)
@ -1584,7 +1585,7 @@ app.on('ready', async () => {
if (!locale) {
const appLocale = getAppLocale();
locale = loadLocale({ appLocale, logger });
locale = loadLocale({ appLocale, logger: getLogger() });
}
sqlInitPromise = initializeSQL(userDataPath);

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.51.0-beta.1",
"version": "5.51.1",
"license": "AGPL-3.0-only",
"author": {
"name": "Signal Messenger, LLC",
@ -77,7 +77,7 @@
"fs-xattr": "0.3.0"
},
"dependencies": {
"@indutny/frameless-titlebar": "2.3.4",
"@indutny/frameless-titlebar": "2.3.5",
"@popperjs/core": "2.9.2",
"@react-spring/web": "9.4.5",
"@signalapp/libsignal-client": "0.18.1",

View File

@ -58,7 +58,7 @@
}
&__content {
height: var(--window-height);
height: calc(100vh - var(--titlebar-height));
position: relative;
}
}

View File

@ -146,7 +146,7 @@ import { showToast } from './util/showToast';
import { startInteractionMode } from './windows/startInteractionMode';
import type { MainWindowStatsType } from './windows/context';
import { deliveryReceiptsJobQueue } from './jobs/deliveryReceiptsJobQueue';
import { updateOurUsername } from './util/updateOurUsername';
import { updateOurUsernameAndPni } from './util/updateOurUsernameAndPni';
import { ReactionSource } from './reactions/ReactionSource';
import { singleProtoJobQueue } from './jobs/singleProtoJobQueue';
import { getInitialState } from './state/getInitialState';
@ -818,7 +818,7 @@ export async function startApp(): Promise<void> {
await window.Signal.Data.clearAllErrorStickerPackAttempts();
}
if (window.isBeforeVersion(lastVersion, 'v5.50.0-alpha.1')) {
if (window.isBeforeVersion(lastVersion, 'v5.51.0-beta.2')) {
await window.storage.put('groupCredentials', []);
await window.Signal.Data.removeAllProfileKeyCredentials();
}
@ -2213,18 +2213,6 @@ export async function startApp(): Promise<void> {
return unlinkAndDisconnect(RemoveAllConfiguration.Full);
}
if (!window.textsecure.storage.user.getUuid(UUIDKind.PNI)) {
log.info('PNI not captured during registration, fetching');
const { pni } = await server.whoami();
if (!pni) {
log.error('No PNI found, unlinking');
return unlinkAndDisconnect(RemoveAllConfiguration.Soft);
}
log.info('Setting PNI to', pni);
await window.textsecure.storage.user.setPni(pni);
}
if (connectCount === 1) {
try {
// Note: we always have to register our capabilities all at once, so we do this
@ -2239,7 +2227,7 @@ export async function startApp(): Promise<void> {
changeNumber: true,
stories: true,
}),
updateOurUsername(),
updateOurUsernameAndPni(),
]);
} catch (error) {
log.error(
@ -2249,6 +2237,11 @@ export async function startApp(): Promise<void> {
}
}
if (!window.textsecure.storage.user.getUuid(UUIDKind.PNI)) {
log.error('PNI not captured during registration, unlinking softly');
return unlinkAndDisconnect(RemoveAllConfiguration.Soft);
}
if (firstRun === true && deviceId !== 1) {
const hasThemeSetting = Boolean(window.storage.get('theme-setting'));
if (
@ -2519,11 +2512,6 @@ export async function startApp(): Promise<void> {
});
routineProfileRefresher.start();
} else {
assert(
false,
'Failed to fetch our conversation ID. Skipping routine profile refresh'
);
}
// Make sure we have the PNI identity
@ -3630,7 +3618,10 @@ export async function startApp(): Promise<void> {
case FETCH_LATEST_ENUM.LOCAL_PROFILE: {
const ourUuid = window.textsecure.storage.user.getUuid()?.toString();
const ourE164 = window.textsecure.storage.user.getNumber();
await Promise.all([getProfile(ourUuid, ourE164), updateOurUsername()]);
await Promise.all([
getProfile(ourUuid, ourE164),
updateOurUsernameAndPni(),
]);
break;
}
case FETCH_LATEST_ENUM.STORAGE_MANIFEST:

View File

@ -2,8 +2,7 @@
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
import { isBoolean } from 'lodash';
import { boolean } from '@storybook/addon-knobs';
import { action } from '@storybook/addon-actions';
import type { PropsType } from './GroupV1MigrationDialog';
@ -34,21 +33,11 @@ const contact3: ConversationType = getDefaultConversation({
id: 'guid-3',
});
function booleanOr(value: boolean | undefined, defaultValue: boolean): boolean {
return isBoolean(value) ? value : defaultValue;
}
const createProps = (overrideProps: Partial<PropsType> = {}): PropsType => ({
areWeInvited: boolean(
'areWeInvited',
booleanOr(overrideProps.areWeInvited, false)
),
areWeInvited: Boolean(overrideProps.areWeInvited),
droppedMembers: overrideProps.droppedMembers || [contact3, contact1],
getPreferredBadge: () => undefined,
hasMigrated: boolean(
'hasMigrated',
booleanOr(overrideProps.hasMigrated, false)
),
hasMigrated: Boolean(overrideProps.hasMigrated),
i18n,
invitedMembers: overrideProps.invitedMembers || [contact2],
migrate: action('migrate'),

View File

@ -215,7 +215,7 @@ export const TitleBarContainer = (props: PropsType): JSX.Element => {
[theme, hideMenuBar]
);
if (!hasCustomTitleBar || isFullScreen) {
if (!hasCustomTitleBar) {
return <>{children}</>;
}
@ -253,22 +253,25 @@ export const TitleBarContainer = (props: PropsType): JSX.Element => {
<div
className={classNames(
'TitleBarContainer',
isWindowActive ? 'TitleBarContainer--active' : null
isWindowActive ? 'TitleBarContainer--active' : null,
isFullScreen ? 'TitleBarContainer--fullscreen' : null
)}
>
<div className="TitleBarContainer__padding" />
<div className="TitleBarContainer__content">{children}</div>
<TitleBar
className="TitleBarContainer__title"
platform="win32"
iconSrc={iconSrc}
theme={titleBarTheme}
maximized={isMaximized}
menu={maybeMenu}
onDoubleClick={titleBarDoubleClick}
hideControls
/>
{!isFullScreen ? (
<TitleBar
className="TitleBarContainer__title"
platform="win32"
iconSrc={iconSrc}
theme={titleBarTheme}
maximized={isMaximized}
menu={maybeMenu}
onDoubleClick={titleBarDoubleClick}
hideControls
/>
) : null}
</div>
);
};

View File

@ -61,6 +61,7 @@ import type {
GroupCredentialsType,
GroupLogResponseType,
} from './textsecure/WebAPI';
import { HTTPError } from './textsecure/Errors';
import type MessageSender from './textsecure/SendMessage';
import { CURRENT_SCHEMA_VERSION as MAX_MESSAGE_SCHEMA } from './types/Message2';
import type { ConversationModel } from './models/conversations';
@ -1496,13 +1497,6 @@ export async function modifyGroupV2({
log.info(`modifyGroupV2/${logId}: Fetching profiles for ${logIds}`);
}
for (const member of membersMissingCredentials) {
member.set({
profileKeyCredential: null,
profileKeyCredentialExpiration: null,
});
}
// eslint-disable-next-line no-await-in-loop
await profileFetchQueue.addAll(
membersMissingCredentials.map(member => () => member.getProfiles())
@ -1740,19 +1734,25 @@ export async function fetchMembershipProof({
// Creating a group
export async function createGroupV2({
name,
avatar,
expireTimer,
conversationIds,
avatars,
}: Readonly<{
name: string;
avatar: undefined | Uint8Array;
expireTimer: undefined | number;
conversationIds: Array<string>;
avatars?: Array<AvatarDataType>;
}>): Promise<ConversationModel> {
export async function createGroupV2(
options: Readonly<{
name: string;
avatar: undefined | Uint8Array;
expireTimer: undefined | number;
conversationIds: Array<string>;
avatars?: Array<AvatarDataType>;
refreshedCredentials?: boolean;
}>
): Promise<ConversationModel> {
const {
name,
avatar,
expireTimer,
conversationIds,
avatars,
refreshedCredentials = false,
} = options;
// Ensure we have the credentials we need before attempting GroupsV2 operations
await maybeFetchNewCredentials();
@ -1775,10 +1775,6 @@ export async function createGroupV2({
window.ConversationController.getOurConversationOrThrow();
if (ourConversation.hasProfileKeyCredentialExpired()) {
log.info(`createGroupV2/${logId}: fetching our own credentials`);
ourConversation.set({
profileKeyCredential: null,
profileKeyCredentialExpiration: null,
});
await ourConversation.getProfiles();
}
@ -1874,12 +1870,45 @@ export async function createGroupV2({
...protoAndConversationAttributes,
});
await makeRequestWithTemporalRetry({
logId: `createGroupV2/${logId}`,
publicParams,
secretParams,
request: (sender, options) => sender.createGroup(groupProto, options),
});
try {
await makeRequestWithTemporalRetry({
logId: `createGroupV2/${logId}`,
publicParams,
secretParams,
request: (sender, requestOptions) =>
sender.createGroup(groupProto, requestOptions),
});
} catch (error) {
if (!(error instanceof HTTPError)) {
throw error;
}
if (error.code !== 400 || refreshedCredentials) {
throw error;
}
const logIds = conversationIds.map(conversationId => {
const contact = window.ConversationController.get(conversationId);
if (!contact) {
return;
}
contact.set({
profileKeyCredential: null,
profileKeyCredentialExpiration: null,
});
return contact.idForLogging();
});
log.warn(
`createGroupV2/${logId}: Profile key credentials were not ` +
`up-to-date. Updating profiles for ${logIds} and retrying`
);
return createGroupV2({
...options,
refreshedCredentials: true,
});
}
let avatarAttribute: ConversationAttributesType['avatar'];
if (uploadedAvatar) {

View File

@ -9,7 +9,22 @@ import type {
QuotedMessageType,
} from '../model-types.d';
import type { UUIDStringType } from '../types/UUID';
import { isIncoming, isOutgoing, isStory } from '../state/selectors/message';
export function isIncoming(
message: Pick<MessageAttributesType, 'type'>
): boolean {
return message.type === 'incoming';
}
export function isOutgoing(
message: Pick<MessageAttributesType, 'type'>
): boolean {
return message.type === 'outgoing';
}
export function isStory(message: Pick<MessageAttributesType, 'type'>): boolean {
return message.type === 'story';
}
export function isQuoteAMatch(
message: MessageAttributesType | null | undefined,

View File

@ -1758,7 +1758,7 @@ export class ConversationModel extends window.Backbone
const { customColor, customColorId } = this.getCustomColorData();
const ourACI = window.textsecure.storage.user.getCheckedUuid(UUIDKind.ACI);
const ourACI = window.textsecure.storage.user.getUuid(UUIDKind.ACI);
const ourPNI = window.textsecure.storage.user.getUuid(UUIDKind.PNI);
// TODO: DESKTOP-720
@ -1778,12 +1778,13 @@ export class ConversationModel extends window.Backbone
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
activeAt: this.get('active_at')!,
areWePending:
this.isMemberPending(ourACI) ||
Boolean(
ourPNI && !this.isMember(ourACI) && this.isMemberPending(ourPNI)
),
ourACI &&
(this.isMemberPending(ourACI) ||
Boolean(
ourPNI && !this.isMember(ourACI) && this.isMemberPending(ourPNI)
)),
areWePendingApproval: Boolean(
ourConversationId && this.isMemberAwaitingApproval(ourACI)
ourConversationId && ourACI && this.isMemberAwaitingApproval(ourACI)
),
areWeAdmin: this.areWeAdmin(),
avatars: getAvatarData(this.attributes),

View File

@ -2511,6 +2511,7 @@ export class MessageModel extends window.Backbone.Model<MessageAttributesType> {
await Attachment.migrateDataToFileSystem(downloadedAvatar, {
writeNewAttachmentData:
window.Signal.Migrations.writeNewAttachmentData,
logger: log,
});
avatar = {
...onDiskAttachment,

10
ts/os-locale.d.ts vendored
View File

@ -1,10 +0,0 @@
// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// We need this until we upgrade os-locale. Newer versions include type definitions.
// We can't upgrade it yet because we patch it to disable its findup/exec behavior.
declare module 'os-locale' {
export function sync(): string;
}

View File

@ -196,10 +196,6 @@ function* getFilteredConversations(
(conversation.id === ourConversationId ||
!conversationIdsSeen.has(conversation.id))
) {
conversation.set({
profileKeyCredential: null,
profileKeyCredentialExpiration: null,
});
conversationIdsSeen.add(conversation.id);
yield conversation;
break;

View File

@ -126,12 +126,6 @@ export async function maybeFetchNewCredentials(): Promise<void> {
return;
}
const pni = window.textsecure.storage.user.getUuid(UUIDKind.PNI)?.toString();
if (!pni) {
log.info(`${logId}: no PNI, returning early`);
return;
}
const previous: CredentialsDataType | undefined =
window.storage.get('groupCredentials');
const requestDates = getDatesForRequest(previous);
@ -151,6 +145,13 @@ export async function maybeFetchNewCredentials(): Promise<void> {
`${logId}: fetching credentials for ${startDayInMs} through ${endDayInMs}`
);
// TODO(indutny): In the future we'd like to avoid this extra call all the time
const { pni } = await server.whoami();
if (!pni) {
log.info(`${logId}: no PNI, returning early`);
return;
}
const serverPublicParamsBase64 = window.getServerPublicParams();
const clientZKAuthOperations = getClientZkAuthOperations(
serverPublicParamsBase64

View File

@ -3,7 +3,7 @@
import { singleProtoJobQueue } from '../jobs/singleProtoJobQueue';
import dataInterface from '../sql/Client';
import { updateOurUsername } from '../util/updateOurUsername';
import { updateOurUsernameAndPni } from '../util/updateOurUsernameAndPni';
import * as Errors from '../types/errors';
import * as log from '../logging/log';
import MessageSender from '../textsecure/SendMessage';
@ -21,7 +21,7 @@ export async function writeUsername({
}
const me = window.ConversationController.getOurConversationOrThrow();
await updateOurUsername();
await updateOurUsernameAndPni();
if (me.get('username') !== previousUsername) {
throw new Error('Username has changed on another device');

View File

@ -18,6 +18,7 @@ import {
get,
groupBy,
isFunction,
isTypedArray,
last,
map,
omit,
@ -90,6 +91,7 @@ import type {
import Server from './Server';
import { isCorruptionError } from './errors';
import { MINUTE } from '../util/durations';
import { getMessageIdForLogging } from '../util/idForLogging';
// We listen to a lot of events on ipc, often on the same channel. This prevents
// any warnings that might be sent to the console in that case.
@ -433,12 +435,25 @@ function _cleanData(
return cleaned;
}
function _cleanMessageData(data: MessageType): MessageType {
export function _cleanMessageData(data: MessageType): MessageType {
// Ensure that all messages have the received_at set properly
if (!data.received_at) {
assert(false, 'received_at was not set on the message');
data.received_at = window.Signal.Util.incrementMessageCounter();
}
if (data.attachments) {
const logId = getMessageIdForLogging(data);
data.attachments = data.attachments.map((attachment, index) => {
if (attachment.data && !isTypedArray(attachment.data)) {
log.warn(
`_cleanMessageData/${logId}: Attachment ${index} had non-array \`data\` field; deleting.`
);
return omit(attachment, ['data']);
}
return attachment;
});
}
return _cleanData(omit(data, ['dataMessage']));
}

View File

@ -6,7 +6,6 @@ import { Provider } from 'react-redux';
import type { Store } from 'redux';
import { ModalHost } from '../../components/ModalHost';
import type { PropsType } from '../smart/GroupV1MigrationDialog';
import { SmartGroupV1MigrationDialog } from '../smart/GroupV1MigrationDialog';
@ -14,13 +13,9 @@ export const createGroupV1MigrationModal = (
store: Store,
props: PropsType
): React.ReactElement => {
const { onClose } = props;
return (
<Provider store={store}>
<ModalHost onClose={onClose}>
<SmartGroupV1MigrationDialog {...props} />
</ModalHost>
<SmartGroupV1MigrationDialog {...props} />
</Provider>
);
};

View File

@ -38,6 +38,7 @@ import type { EmbeddedContactType } from '../../types/EmbeddedContact';
import { embeddedContactSelector } from '../../types/EmbeddedContact';
import type { AssertProps, BodyRangesType } from '../../types/Util';
import type { LinkPreviewType } from '../../types/message/LinkPreviews';
import { getMentionsRegex } from '../../types/Message';
import { CallMode } from '../../types/Calling';
import { SignalService as Proto } from '../../protobuf';
import type { AttachmentType } from '../../types/Attachment';
@ -93,6 +94,9 @@ import * as log from '../../logging/log';
import { getConversationColorAttributes } from '../../util/getConversationColorAttributes';
import { DAY, HOUR } from '../../util/durations';
import { getStoryReplyText } from '../../util/getStoryReplyText';
import { isIncoming, isOutgoing, isStory } from '../../messages/helpers';
export { isIncoming, isOutgoing, isStory };
const THREE_HOURS = 3 * HOUR;
const linkify = LinkifyIt();
@ -129,24 +133,6 @@ export type GetPropsForBubbleOptions = Readonly<{
contactNameColorSelector: ContactNameColorSelectorType;
}>;
export function isIncoming(
message: Pick<MessageWithUIFieldsType, 'type'>
): boolean {
return message.type === 'incoming';
}
export function isOutgoing(
message: Pick<MessageWithUIFieldsType, 'type'>
): boolean {
return message.type === 'outgoing';
}
export function isStory(
message: Pick<MessageWithUIFieldsType, 'type'>
): boolean {
return message.type === 'story';
}
export function hasErrors(
message: Pick<MessageWithUIFieldsType, 'errors'>
): boolean {
@ -720,7 +706,7 @@ function getTextAttachment(
}
export function cleanBodyForDirectionCheck(text: string): string {
const MENTIONS_REGEX = /\uFFFC/g;
const MENTIONS_REGEX = getMentionsRegex();
const EMOJI_REGEX = emojiRegex();
const initial = text.replace(MENTIONS_REGEX, '').replace(EMOJI_REGEX, '');

View File

@ -10,7 +10,11 @@ import * as log from '../../logging/log';
import { ForwardMessageModal } from '../../components/ForwardMessageModal';
import { LinkPreviewSourceType } from '../../types/LinkPreview';
import { ToastMessageBodyTooLong } from '../../components/ToastMessageBodyTooLong';
import { getAllComposableConversations } from '../selectors/conversations';
import type { GetConversationByIdType } from '../selectors/conversations';
import {
getAllComposableConversations,
getConversationSelector,
} from '../selectors/conversations';
import { getEmojiSkinTone } from '../selectors/items';
import { getIntl, getTheme, getRegionCode } from '../selectors/user';
import { getLinkPreview } from '../selectors/linkPreviews';
@ -27,6 +31,29 @@ import { useActions as useEmojiActions } from '../ducks/emojis';
import { useActions as useItemsActions } from '../ducks/items';
import { useGlobalModalActions } from '../ducks/globalModals';
import { useLinkPreviewActions } from '../ducks/linkPreviews';
import { processBodyRanges } from '../selectors/message';
import { getTextWithMentions } from '../../util/getTextWithMentions';
function renderMentions(
message: ForwardMessagePropsType,
conversationSelector: GetConversationByIdType
): string | undefined {
const { text } = message;
if (!text) {
return text;
}
const bodyRanges = processBodyRanges(message, {
conversationSelector,
});
if (bodyRanges && bodyRanges.length) {
return getTextWithMentions(bodyRanges, text);
}
return text;
}
export function SmartForwardMessageModal(): JSX.Element | null {
const forwardMessageProps = useSelector<
@ -35,6 +62,7 @@ export function SmartForwardMessageModal(): JSX.Element | null {
>(state => state.globalModals.forwardMessageProps);
const candidateConversations = useSelector(getAllComposableConversations);
const getPreferredBadge = useSelector(getPreferredBadgeSelector);
const getConversation = useSelector(getConversationSelector);
const i18n = useSelector(getIntl);
const linkPreviewForSource = useSelector(getLinkPreview);
const recentEmojis = useSelector(selectRecentEmojis);
@ -58,6 +86,8 @@ export function SmartForwardMessageModal(): JSX.Element | null {
toggleForwardMessageModal();
}
const cleanedBody = renderMentions(forwardMessageProps, getConversation);
return (
<ForwardMessageModal
attachments={attachments}
@ -96,7 +126,7 @@ export function SmartForwardMessageModal(): JSX.Element | null {
linkPreview={linkPreviewForSource(
LinkPreviewSourceType.ForwardMessageModal
)}
messageBody={forwardMessageProps.text}
messageBody={cleanedBody}
onClose={closeModal}
onEditorStateChange={(
messageText: string,

View File

@ -0,0 +1,51 @@
// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { assert } from 'chai';
import { _cleanMessageData } from '../../sql/Client';
import { IMAGE_GIF } from '../../types/MIME';
describe('_cleanMessageData', () => {
it('throws if message is missing received_at', () => {
assert.throws(() => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
_cleanMessageData({} as any);
}, 'received_at');
});
it('removes `data` field in attachment if it is not a typed array', () => {
const data = new Uint8Array([1, 2, 3]);
const message = {
id: 'something',
type: 'incoming' as const,
sent_at: Date.now(),
conversationId: 'conversation-id',
received_at: Date.now(),
timestamp: Date.now(),
attachments: [
{
contentType: IMAGE_GIF,
size: 4,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
data: 1 as any,
},
{
contentType: IMAGE_GIF,
size: 4,
data: {},
},
{
size: 4,
contentType: IMAGE_GIF,
data,
},
],
};
const actual = _cleanMessageData(message);
assert.isUndefined(actual.attachments?.[0].data);
assert.isUndefined(actual.attachments?.[1].data);
assert.strictEqual(actual.attachments?.[2].data, data);
});
});

View File

@ -202,6 +202,9 @@ describe('createTemplate', () => {
error(arg: unknown) {
throw new Error(String(arg));
},
warn(arg: unknown) {
throw new Error(String(arg));
},
},
});

View File

@ -396,6 +396,7 @@ describe('Attachment', () => {
const actual = await Attachment.migrateDataToFileSystem(input, {
writeNewAttachmentData,
logger,
});
assert.deepEqual(actual, expected);
});
@ -417,11 +418,12 @@ describe('Attachment', () => {
const actual = await Attachment.migrateDataToFileSystem(input, {
writeNewAttachmentData,
logger,
});
assert.deepEqual(actual, expected);
});
it('should throw error if data is not valid', async () => {
it('should clear `data` field if it is not a typed array', async () => {
const input = {
contentType: MIME.IMAGE_JPEG,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
@ -432,12 +434,12 @@ describe('Attachment', () => {
const writeNewAttachmentData = async () => 'abc/abcdefgh123456789';
await assert.isRejected(
Attachment.migrateDataToFileSystem(input, {
writeNewAttachmentData,
}),
'Expected `attachment.data` to be a typed array; got: number'
);
const actual = await Attachment.migrateDataToFileSystem(input, {
writeNewAttachmentData,
logger,
});
assert.isUndefined(actual.data);
});
});
});

View File

@ -4,6 +4,7 @@
import { assert } from 'chai';
import * as sinon from 'sinon';
import * as logger from '../../logging/log';
import { IMAGE_GIF, IMAGE_PNG } from '../../types/MIME';
import type { MessageAttributesType } from '../../model-types.d';
import type { Avatar, Email, Phone } from '../../types/EmbeddedContact';
@ -18,9 +19,6 @@ import { UUID } from '../../types/UUID';
describe('Contact', () => {
const NUMBER = '+12025550099';
const logger = {
error: () => undefined,
};
const writeNewAttachmentData = sinon
.stub()

View File

@ -33,6 +33,7 @@ import { ourProfileKeyService } from '../services/ourProfileKey';
import { assert, strictAssert } from '../util/assert';
import { getRegionCodeForNumber } from '../util/libphonenumberUtil';
import { getProvisioningUrl } from '../util/getProvisioningUrl';
import { isNotNil } from '../util/isNotNil';
import { SignalService as Proto } from '../protobuf';
import * as log from '../logging/log';
@ -43,19 +44,6 @@ const PREKEY_ROTATION_AGE = DAY * 1.5;
const PROFILE_KEY_LENGTH = 32;
const SIGNED_KEY_GEN_BATCH_SIZE = 100;
function getIdentifier(id: string | undefined) {
if (!id || !id.length) {
return id;
}
const parts = id.split('.');
if (!parts.length) {
return id;
}
return parts[0];
}
export type GeneratedKeysType = {
preKeys: Array<{
keyId: number;
@ -529,8 +517,9 @@ export default class AccountManager extends EventTarget {
password = password.substring(0, password.length - 2);
const registrationId = generateRegistrationId();
const previousNumber = getIdentifier(storage.get('number_id'));
const previousUuid = getIdentifier(storage.get('uuid_id'));
const previousNumber = storage.user.getNumber();
const previousACI = storage.user.getUuid(UUIDKind.ACI)?.toString();
const previousPNI = storage.user.getUuid(UUIDKind.PNI)?.toString();
let encryptedDeviceName;
if (deviceName) {
@ -556,11 +545,11 @@ export default class AccountManager extends EventTarget {
const ourUuid = UUID.cast(response.uuid);
const ourPni = UUID.cast(response.pni);
const uuidChanged = previousUuid && ourUuid && previousUuid !== ourUuid;
const uuidChanged = previousACI && ourUuid && previousACI !== ourUuid;
// We only consider the number changed if we didn't have a UUID before
const numberChanged =
!previousUuid && previousNumber && previousNumber !== number;
!previousACI && previousNumber && previousNumber !== number;
if (uuidChanged || numberChanged) {
if (uuidChanged) {
@ -592,15 +581,17 @@ export default class AccountManager extends EventTarget {
await senderCertificateService.clear();
if (previousUuid) {
const previousUuids = [previousACI, previousPNI].filter(isNotNil);
if (previousUuids.length > 0) {
await Promise.all([
storage.put(
'identityKeyMap',
omit(storage.get('identityKeyMap') || {}, previousUuid)
omit(storage.get('identityKeyMap') || {}, previousUuids)
),
storage.put(
'registrationIdMap',
omit(storage.get('registrationIdMap') || {}, previousUuid)
omit(storage.get('registrationIdMap') || {}, previousUuids)
),
]);
}
@ -849,4 +840,31 @@ export default class AccountManager extends EventTarget {
log.info('registration done');
this.dispatchEvent(new Event('registration'));
}
async setPni(pni: string): Promise<void> {
const { storage } = window.textsecure;
const oldPni = storage.user.getUuid(UUIDKind.PNI)?.toString();
if (oldPni === pni) {
return;
}
if (oldPni) {
await Promise.all([
storage.put(
'identityKeyMap',
omit(storage.get('identityKeyMap') || {}, oldPni)
),
storage.put(
'registrationIdMap',
omit(storage.get('registrationIdMap') || {}, oldPni)
),
]);
}
log.info(`AccountManager.setPni: updating pni from ${oldPni} to ${pni}`);
await storage.user.setPni(pni);
await storage.protocol.hydrateCaches();
}
}

View File

@ -2407,7 +2407,4 @@ export default class MessageSender {
async deleteUsername(): Promise<ReturnType<WebAPIType['deleteUsername']>> {
return this.server.deleteUsername();
}
async whoami(): Promise<ReturnType<WebAPIType['whoami']>> {
return this.server.whoami();
}
}

View File

@ -33,7 +33,7 @@ import type { SocketStatus } from '../types/SocketStatus';
import { toLogFormat } from '../types/errors';
import { isPackIdValid, redactPackId } from '../types/Stickers';
import type { UUID, UUIDStringType } from '../types/UUID';
import { isValidUuid, UUIDKind } from '../types/UUID';
import { UUIDKind } from '../types/UUID';
import * as Bytes from '../Bytes';
import { getRandomValue } from '../Crypto';
import * as linkPreviewFetch from '../linkPreviews/linkPreviewFetch';
@ -750,12 +750,15 @@ export type MakeProxiedRequestResultType =
totalSize: number;
};
export type WhoamiResultType = Readonly<{
uuid?: UUIDStringType;
pni?: UUIDStringType;
number?: string;
username?: string;
}>;
const whoamiResultZod = z
.object({
uuid: z.string(),
pni: z.string(),
number: z.string(),
username: z.string().or(z.null()).optional(),
})
.passthrough();
export type WhoamiResultType = z.infer<typeof whoamiResultZod>;
export type ConfirmCodeResultType = Readonly<{
uuid: UUIDStringType;
@ -1396,18 +1399,7 @@ export function initialize({
responseType: 'json',
});
if (!isRecord(response)) {
return {};
}
return {
uuid: isValidUuid(response.uuid) ? response.uuid : undefined,
pni: isValidUuid(response.pni) ? response.pni : undefined,
number:
typeof response.number === 'string' ? response.number : undefined,
username:
typeof response.username === 'string' ? response.username : undefined,
};
return whoamiResultZod.parse(response);
}
async function sendChallengeResponse(challengeResponse: ChallengeType) {

View File

@ -180,8 +180,10 @@ export async function migrateDataToFileSystem(
attachment: AttachmentType,
{
writeNewAttachmentData,
logger,
}: {
writeNewAttachmentData: (data: Uint8Array) => Promise<string>;
logger: LoggerType;
}
): Promise<AttachmentType> {
if (!isFunction(writeNewAttachmentData)) {
@ -195,11 +197,12 @@ export async function migrateDataToFileSystem(
return attachment;
}
// This attachment was already broken by a roundtrip to the database - repair it now
if (!isTypedArray(data)) {
throw new TypeError(
'Expected `attachment.data` to be a typed array;' +
` got: ${typeof attachment.data}`
logger.warn(
'migrateDataToFileSystem: Attachment had non-array `data` field; deleting.'
);
return omit({ ...attachment }, ['data']);
}
const path = await writeNewAttachmentData(data);

View File

@ -192,7 +192,7 @@ export function parseAndWriteAvatar(
context: {
message: MessageAttributesType;
getRegionCode: () => string | undefined;
logger: Pick<LoggerType, 'error'>;
logger: LoggerType;
writeNewAttachmentData: (data: Uint8Array) => Promise<string>;
}
): Promise<EmbeddedContactType> => {

View File

@ -7,6 +7,10 @@ import type { AttachmentType } from './Attachment';
import type { EmbeddedContactType } from './EmbeddedContact';
import type { IndexableBoolean, IndexablePresence } from './IndexedDB';
export function getMentionsRegex(): RegExp {
return /\uFFFC/g;
}
export type Message = (
| UserMessage
| VerifiedChangeMessage

View File

@ -589,6 +589,7 @@ export const processNewAttachment = async (
);
const onDiskAttachment = await migrateDataToFileSystem(rotatedAttachment, {
writeNewAttachmentData,
logger,
});
const finalAttachment = await captureDimensionsAndScreenshot(
onDiskAttachment,

View File

@ -127,7 +127,7 @@ export function makeVideoScreenshot({
strictAssert(context, 'Failed to get canvas context');
context.drawImage(video, 0, 0, canvas.width, canvas.height);
video.addEventListener('loadeddata', seek);
video.removeEventListener('loadeddata', seek);
video.removeEventListener('seeked', capture);
try {

View File

@ -123,7 +123,6 @@ async function doGetProfile(c: ConversationModel): Promise<void> {
const profileKey = c.get('profileKey');
const profileKeyVersion = c.deriveProfileKeyVersion();
const uuid = c.getCheckedUuid('getProfile');
const existingProfileKeyCredential = c.get('profileKeyCredential');
const lastProfile = c.get('lastProfile');
let profileCredentialRequestContext:
@ -139,7 +138,7 @@ async function doGetProfile(c: ConversationModel): Promise<void> {
'profileKeyVersion and accessKey are derived from profileKey'
);
if (existingProfileKeyCredential) {
if (!c.hasProfileKeyCredentialExpired()) {
getProfileOptions = {
accessKey,
profileKeyVersion,

View File

@ -15,6 +15,7 @@ export type SupportLocaleType =
| 'sq'
| 'zh-tw';
// See https://source.chromium.org/chromium/chromium/src/+/main:ui/base/l10n/l10n_util.cc
export type ElectronLocaleType =
| 'af'
| 'ar'
@ -25,8 +26,19 @@ export type ElectronLocaleType =
| 'cy'
| 'da'
| 'de'
| 'de-AT'
| 'de-CH'
| 'de-DE'
| 'de-LI'
| 'el'
| 'en'
| 'en-AU'
| 'en-CA'
| 'en-GB'
| 'en-GB-oxendict'
| 'en-IN'
| 'en-NZ'
| 'en-US'
| 'eo'
| 'es'
| 'es_419'
@ -35,12 +47,17 @@ export type ElectronLocaleType =
| 'fa'
| 'fi'
| 'fr'
| 'fr-CA'
| 'fr-CH'
| 'fr-FR'
| 'he'
| 'hi'
| 'hr'
| 'hu'
| 'id'
| 'it'
| 'it-CH'
| 'it-IT'
| 'ja'
| 'km'
| 'kn'
@ -72,6 +89,7 @@ export type ElectronLocaleType =
| 'ur'
| 'vi'
| 'zh_CN'
| 'zh-HK'
| 'zh_TW';
export function mapToSupportLocale(ourLocale: string): SupportLocaleType {

View File

@ -1,16 +0,0 @@
// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
export async function updateOurUsername(): Promise<void> {
if (!window.textsecure.messaging) {
throw new Error(
'updateOurUsername: window.textsecure.messaging not available'
);
}
const me = window.ConversationController.getOurConversationOrThrow();
const { username } = await window.textsecure.messaging.whoami();
me.set({ username });
window.Signal.Data.updateConversation(me.attributes);
}

Some files were not shown because too many files have changed in this diff Show More