Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d1a1641b00 | ||
|
|
595cda3ed5 | ||
|
|
272b8ad759 | ||
|
|
831de5fae2 | ||
|
|
f768cf7698 | ||
|
|
c08c9936ca | ||
|
|
24285563bd | ||
|
|
88ceae206d | ||
|
|
93b8e67a1a | ||
|
|
63162666de | ||
|
|
81e0e05c7f | ||
|
|
f811e0abe1 | ||
|
|
c0a2a7d225 | ||
|
|
6374fa5cf6 | ||
|
|
e1c67b5a51 |
@ -1559,6 +1559,30 @@ Signal Desktop makes use of the following open source projects.
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
## @types/dom-mediacapture-transform
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) Microsoft Corporation.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE
|
||||
|
||||
## @types/fabric
|
||||
|
||||
MIT License
|
||||
@ -13246,7 +13270,7 @@ For more information on this, and how to apply and follow the GNU AGPL, see
|
||||
|
||||
```
|
||||
|
||||
## libsignal-account-keys 0.1.0, libsignal-core 0.1.0, mrp 2.50.5, protobuf 2.50.5, ringrtc 2.50.5, regex-aot 0.1.0, partial-default-derive 0.1.0
|
||||
## libsignal-account-keys 0.1.0, libsignal-core 0.1.0, mrp 2.51.0, protobuf 2.51.0, ringrtc 2.51.0, regex-aot 0.1.0, partial-default-derive 0.1.0
|
||||
|
||||
```
|
||||
GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Onbekende kontak"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Onbekend"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Onbekende groep"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 lid} other {{count,number} lede}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} genooi)} other {{memberList} (+{invitesCount,number} genooi)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Geen groeplede nie"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Nog geen ander groeplede nie"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} en jy"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} en {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} en jy"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} en {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} en nog <clickable>{remainingCount,number} ander persoon</clickable>} other {{member1}, {member2}, {member3} en nog <clickable>{remainingCount,number} ander persone</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} en nog <clickable>{remainingCount,number} ander persoon</clickable>} other {{member1}, {member2}, {member3} en nog <clickable>{remainingCount,number} ander persone</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Gaan noukeurig na"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Media sal voortgaan om in die agtergrond afgelaai te word"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Herstel van media is onderbreek"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Wag tans vir Internetverbinding…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Onderbreek oordrag"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Jy moet Signal op jou foon oopmaak om voort te gaan om hierdie rekening te gebruik. As jy nie Signal op jou foon oopmaak nie, sal jou rekening binnekort geskrap word. <learnMoreLink>Vind meer uit</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Kan nie media herstel nie"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Jou toestel het nie genoeg stoorruimte beskikbaar nie. Stel {diskSpaceAmount} stoorruimte beskikbaar om jou media af te laai."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Vou uit"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Rugsteunkopieë"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Intern"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Voer geënkripteerde rugsteun uit na die geheue en pas die geldigheid-suite daarop toe"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Kontroleer geldigheid"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Laaste invoer om {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Bilinməyən əlaqə"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Bilinmir"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Bilinməyən qrup"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 üzv} other {{count,number} üzv}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} dəvət edildi)} other {{memberList} (+{invitesCount,number} dəvət edildi)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Qrup üzvü yoxdur"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Hələlik başqa qrup üzvü yoxdur"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} və siz"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} və {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} və siz"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} və {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} və daha <clickable>{remainingCount,number} nəfər</clickable>} other {{member1}, {member2}, {member3} və daha <clickable>{remainingCount,number} nəfər</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} və daha <clickable>{remainingCount,number} nəfər</clickable>} other {{member1}, {member2}, {member3} və daha <clickable>{remainingCount,number} nəfər</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Diqqətlə nəzərdən keçir"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Media faylı ehtiyat nüsxədə endirilməyə davam edəcək"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Media faylının bərpası dayandırıldı"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "İnternet bağlantısı gözlənilir..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Köçürməyə fasilə ver"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Bu hesabdan istifadəyə davam etmək üçün telefonunuzda Signal-ı açmalısınız. Telefonunuzda Signal-ı açmasanız, hesabınız tezliklə silinəcək. <learnMoreLink>Daha ətraflı</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Media faylını bərpa etmək mümkün deyil"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Cihazınızda kifayət qədər boş yer yoxdur. Media faylını bərpa etmək üçün {diskSpaceAmount} həcmində yer boşaldın."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Genişləndir"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Nüsxələr"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Daxili"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Şifrələnmiş ehtiyat nüsxəni yaddaşa ixrac edin və üstündəki yoxlama paketini aktivləşdirin"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Yoxla"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Son idxal {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Непознат контакт"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Непознат"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Непозната група"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 член} other {{count,number} членове}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} поканен)} other {{memberList} (+{invitesCount,number} поканени)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Групата няма членове"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "В групата още няма други членове"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} и вие"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} и {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} и вие"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} и {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} и <clickable>{remainingCount,number} друг</clickable>} other {{member1}, {member2}, {member3} и <clickable>{remainingCount,number} други</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} и <clickable>{remainingCount,number} друг</clickable>} other {{member1}, {member2}, {member3} и <clickable>{remainingCount,number} други</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Прегледайте внимателно"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Мултимедията ще продължи да се изтегля във фонов режим"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Възстановяването на мултимедия е на пауза"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Изчаква се връзка с интернет..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Пауза на трансфера"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "За да продължите да използвате този акаунт, трябва да отворите Signal на телефона си. Ако не отворите Signal на телефона си, вашият акаунт скоро ще бъде изтрит. <learnMoreLink>Научете повече</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Не може да се възстанови мултимедията"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Устройството ви няма достатъчно свободно място. Освободете {diskSpaceAmount} място, за да възстановите мултимедията."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Разшири"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Резервни копия"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Вътрешни"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Експортиране на криптирано резервно копие в паметта и стартиране на пакета за валидиране за него"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Валидиране"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Последно импортиране на {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "অজানা কন্ট্যাক্ট"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "অজানা"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "অচেনা গ্রুপ"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 জন সদস্য} other {{count,number} জন সদস্য}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} জন আমন্ত্রিত)} other {{memberList} (+{invitesCount,number} জন আমন্ত্রিত)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "গ্ৰুপে কোনো সদস্য নেই"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "এখনো গ্রুপের অন্য কোনো সদস্য নেই"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} ও আপনি"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} এবং {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2}, ও আপনি"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2}, ও {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, এবং <clickable>অন্য {remainingCount,number} জন</clickable>} other {{member1}, {member2}, {member3}, এবং <clickable>অন্য {remainingCount,number} জন</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, এবং <clickable>অন্য {remainingCount,number} জন</clickable>} other {{member1}, {member2}, {member3}, এবং <clickable>অন্য {remainingCount,number} জন</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "সাবধানে পর্যালোচনা করুন"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "মিডিয়া ব্যাকগ্রাউন্ডে ডাউনলোড হতে থাকবে"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "মিডিয়া পুনরুদ্ধার স্থগিত করা হয়েছে"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "ইন্টারনেট সংযোগের জন্য অপেক্ষা করা হচ্ছে..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "ট্রান্সফারে সাময়িক বিরতি দিন"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "এই অ্যাকাউন্টটির ব্যবহার চালিয়ে যেতে আপনাকে অবশ্যই আপনার ফোনে Signal খুলতে হবে। আপনি যদি আপনার ফোনে Signal না খুলেন, তাহলে আপনার অ্যাকাউন্ট শীঘ্রই মুছে ফেলা হবে। <learnMoreLink>আরো জানুন</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "মিডিয়া পুনরুদ্ধার করা যায়নি"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "আপনার ডিভাইসে পর্যাপ্ত খালি জায়গা নেই। আপনার মিডিয়া পুনরুদ্ধার করতে {diskSpaceAmount} জায়গা খালি করুন।"
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "প্রসারিত করুন"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "ব্যাকআপ সমূহ"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "অভ্যন্তরীণ"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "এনক্রিপ্ট করা ব্যাকআপ মেমোরিতে স্থানান্তর করুন এবং এতে যাচাইকরণ স্যুট চালান"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "যাচাই করুন"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "শেষ ইমপোর্ট {date} {time} এ"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Nepoznat kontakt"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Nepoznato"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Nepoznata grupa"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {{count,number} član} few {{count,number} člana} many {{count,number} članova} other {{count,number} članova}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} pozvani)} few {{memberList} (+{invitesCount,number} pozvana)} many {{memberList} (+{invitesCount,number} pozvanih)} other {{memberList} (+{invitesCount,number} pozvanih)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Nema članova grupe"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Još nema drugih članova grupe"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} i vi"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} i {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} i vi"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} i {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} i <clickable>{remainingCount,number} drugi</clickable>} few {{member1}, {member2}, {member3} i <clickable>{remainingCount,number} druga</clickable>} many {{member1}, {member2}, {member3} i <clickable>{remainingCount,number} drugih</clickable>} other {{member1}, {member2}, {member3} i <clickable>{remainingCount,number} drugih</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} i <clickable>{remainingCount,number} drugi</clickable>} few {{member1}, {member2}, {member3} i <clickable>{remainingCount,number} druga</clickable>} many {{member1}, {member2}, {member3} i <clickable>{remainingCount,number} drugih</clickable>} other {{member1}, {member2}, {member3} i <clickable>{remainingCount,number} drugih</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Pažljivo pregledajte"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Mediji će nastaviti da se preuzimaju u pozadini"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Obnova medijskih sadržaja je pauzirana"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Čeka se internetska veza..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Pauzirajte prijenos"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Morate otvoriti Signal na telefonu da nastavite koristiti ovaj račun. Ako ne otvorite Signal na svom telefonu, vaš račun će uskoro biti izbrisan. <learnMoreLink>Saznajte više</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Nije moguće obnoviti medijske sadržaje"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Vaš uređaj nema dovoljno slobodnog prostora. Oslobodite {diskSpaceAmount} prostora za obnovu medijskih sadržaja."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Proširi"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Rezervne kopije"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Interno"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Izvezite šifriranu sigurnosnu kopiju u memoriju i pokrenite paket za provjeru valjanosti na njoj"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Potvrdi"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Posljednji uvoz {date} u {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Contacte desconegut"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Desconegut"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Grup desconegut"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 membre} other {{count,number} membres}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} convidat)} other {{memberList} (+{invitesCount,number} convidats)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "No hi ha membres del grup"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Encara no hi ha altres membres al grup"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} i tu"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} i {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} i tu"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} i {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} i <clickable>{remainingCount,number} persona més</clickable>} other {{member1}, {member2}, {member3} i <clickable>{remainingCount,number} persones més</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} i <clickable>{remainingCount,number} persona més</clickable>} other {{member1}, {member2}, {member3} i <clickable>{remainingCount,number} persones més</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Revisa amb atenció"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Els arxius es continuaran descarregant en segon pla"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "La restauració dels arxius s s'ha interromput"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Esperant la connexió a Internet…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Pausar la transferència"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Per continuar utilitzant aquest compte, has d'obrir Signal al teu telèfon. Si no obres Signal al telèfon, el teu compte s'eliminarà aviat. <learnMoreLink>Més informació</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "No es poden restaurar els arxius multimèdia"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "El teu dispositiu no té prou espai lliure. Allibera {diskSpaceAmount} d'espai per restaurar els teus arxius multimèdia."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Expandeix"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Còpies de seguretat"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Intern"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Exportar còpia de seguretat xifrada a la memòria i executar-hi la suite de validació"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Validar"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Darrera importació: {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Neznámý kontakt"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Neznámý"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Neznámá skupina"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 člen} few {{count,number} členové} many {{count,number} členů} other {{count,number} členů}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+ {invitesCount,number} pozvaný/á)} few {{memberList} (+ {invitesCount,number} pozvaní)} many {{memberList} (+ {invitesCount,number} pozvaných)} other {{memberList} (+ {invitesCount,number} pozvaných)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Ve skupině nejsou žádní členové"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Zatím žádní další členové skupiny"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} a vy"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} a {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} a vy"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} a {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} a <clickable>{remainingCount,number} další</clickable>} few {{member1}, {member2}, {member3} a <clickable>{remainingCount,number} další</clickable>} many {{member1}, {member2}, {member3} a <clickable>{remainingCount,number} dalších</clickable>} other {{member1}, {member2}, {member3} a <clickable>{remainingCount,number} dalších</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} a <clickable>{remainingCount,number} další </clickable>} few {{member1}, {member2}, {member3} a <clickable>{remainingCount,number} další</clickable>} many {{member1}, {member2}, {member3} a <clickable>{remainingCount,number} dalších</clickable>} other {{member1}, {member2}, {member3} a <clickable>{remainingCount,number} dalších</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Pečlivě kontrolujte"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Média se budou nadále stahovat na pozadí"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Obnovování médií pozastaveno"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Čeká se na připojení k internetu…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Pozastavit přenos"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Pro další používání tohoto účtu musíte otevřít aplikaci Signal ve svém telefonu. Pokud účet Signal v telefonu neotevřete, bude brzy smazán. <learnMoreLink>Zjistit více</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Média nelze obnovit"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Vaše zařízení nemá dostatek volného místa. Uvolněte {diskSpaceAmount} místa pro obnovení médií."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Rozbalit"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Zálohování"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Vnitřní"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Exportuje šifrovanou zálohu do paměti a spustí ověřovací sadu"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Ověřit"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Poslední import {date} v {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Ukendt kontakt"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Ukendt"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Ukendt gruppe"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 medlem} other {{count,number} medlemmer}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} inviteret)} other {{memberList} (+{invitesCount,number} inviterede)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Ingen gruppemedlemmer"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Endnu ingen andre gruppemedlemmer"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} og dig"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} og {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} og dig"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} og {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} og <clickable>{remainingCount,number} anden</clickable>} other {{member1}, {member2}, {member3} og <clickable>{remainingCount,number} andre</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} og <clickable>{remainingCount,number} anden</clickable>} other {{member1}, {member2}, {member3} og <clickable>{remainingCount,number} andre</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Gennemgå omhyggeligt"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Medierne vil fortsætte med at blive downloadet i baggrunden"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Gendannelse af medier sat på pause"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Venter på internetforbindelse..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Sæt overførsel på pause"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Du skal åbne Signal på din telefon for at fortsætte med at bruge denne konto. Hvis du ikke åbner Signal på din telefon, vil din konto snart blive slettet. <learnMoreLink>Få mere at vide</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Kan ikke gendanne medier"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Din enhed har ikke nok ledig plads. Frigør {diskSpaceAmount} lagerplads for at gendanne dine medier."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Udvid"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Sikkerhedskopier"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Internt"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Eksportér en krypteret sikkerhedskopi til hukommelsen, og udfør validering"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Valider"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Seneste import {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Unbekannter Kontakt"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Unbekannt"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Unbekannte Gruppe"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {{count,number} Mitglied} other {{count,number} Mitglieder}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} eingeladen)} other {{memberList} (+{invitesCount,number} eingeladen)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Keine Gruppenmitglieder"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Noch keine weiteren Gruppenmitglieder"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} und du"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} und {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} und du"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} und {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1},, {member2} {member3} und <clickable>{remainingCount,number} anderer</clickable>} other {{member1}, {member2}, {member3} und <clickable>{remainingCount,number} andere</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} und <clickable>{remainingCount,number} anderer</clickable>} other {{member1}, {member2}, {member3} und <clickable>{remainingCount,number} andere</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Prüfe sorgfältig"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Der Medien-Download wird im Hintergrund fortgesetzt"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Wiederherstellen von Medien angehalten"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Wartet auf Internetverbindung …"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Übertragung anhalten"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Um dieses Konto weiterhin nutzen zu können, musst du Signal auf deinem Telefon öffnen. Wenn du Signal nicht auf deinem Telefon öffnest, wird dein Konto bald gelöscht. <learnMoreLink>Mehr erfahren</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Medien können nicht wiederhergestellt werden"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Dein Gerät hat nicht genug Speicherplatz. Du musst {diskSpaceAmount} freigeben, um deine Medien wiederherzustellen."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Erweitern"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Backups"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Intern"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Verschlüsselte Datensicherung auf Speicher sichern und Validierungssuite darauf ausführen"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Validieren"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Letzter Import: {date} {time} Uhr"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Άγνωστη επαφή"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Άγνωστο"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Άγνωστη ομάδα"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 μέλος} other {{count,number} μέλη}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} προσκεκλημένος)} other {{memberList} (+{invitesCount,number} προσκεκλημένοι)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Δεν υπάρχουν μέλη της ομάδας"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Δεν υπάρχουν άλλα μέλη ομάδας ακόμα"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} και εσύ"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} και {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} και εσύ"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} και {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} και <clickable>{remainingCount,number} ακόμα</clickable>} other {{member1}, {member2}, {member3} και <clickable>{remainingCount,number} ακόμα</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} και <clickable>{remainingCount,number} ακόμα</clickable>} other {{member1}, {member2}, {member3} και <clickable>{remainingCount,number} ακόμα</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Προσεκτικός έλεγχος"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Η λήψη πολυμέσων θα συνεχιστεί στο παρασκήνιο"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Επαναφορά πολυμέσων σε παύση"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Αναμονή για σύνδεση στο διαδίκτυο…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Παύση μεταφοράς"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Πρέπει να ανοίξεις το Signal στο τηλέφωνό σου για να συνεχίσεις να χρησιμοποιείς αυτόν τον λογαριασμό. Εάν δεν ανοίξεις το Signal στο τηλέφωνό σου, ο λογαριασμός σου θα διαγραφεί σύντομα. <learnMoreLink>Μάθε περισσότερα</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Η επαναφορά πολυμέσων απέτυχε"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Η συσκευή σου δεν διαθέτει αρκετό ελεύθερο χώρο. Απελευθέρωσε {diskSpaceAmount} χώρου για επαναφορά των πολυμέσων σου."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Ανάπτυξη"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Αντίγραφα ασφαλείας"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Εσωτερική"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Εξαγωγή αποκρυπτογραφημένου αντιγράφου ασφαλείας και εκτέλεση σουίτας επικύρωσης σε αυτό"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Eπικύρωση"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Τελευταία εισαγωγή στις {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Contacto desconocido"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Desconocido"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Grupo desconocido"
|
||||
@ -180,7 +180,7 @@
|
||||
"messageformat": "Zoom"
|
||||
},
|
||||
"icu:windowMenuBringAllToFront": {
|
||||
"messageformat": "Traer todas al frente"
|
||||
"messageformat": "Traer todo al frente"
|
||||
},
|
||||
"icu:viewMenuResetZoom": {
|
||||
"messageformat": "Tamaño original"
|
||||
@ -600,7 +600,7 @@
|
||||
"messageformat": "Failed to process some frames during backup import. Please share your logs."
|
||||
},
|
||||
"icu:cannotSelectPhotosAndVideosAlongWithFiles": {
|
||||
"messageformat": "No se pueden seleccionar fotos y vídeos junto con archivos."
|
||||
"messageformat": "No se pueden adjuntar fotos y vídeos junto con documentos."
|
||||
},
|
||||
"icu:cannotSelectMultipleFileAttachments": {
|
||||
"messageformat": "Solo se puede seleccionar un archivo a la vez."
|
||||
@ -2592,7 +2592,7 @@
|
||||
"messageformat": "Centrarse en el campo de escritura"
|
||||
},
|
||||
"icu:Keyboard--open-all-media-view": {
|
||||
"messageformat": "Abrir vista de archivos multimedia"
|
||||
"messageformat": "Abrir vista de todos los archivos"
|
||||
},
|
||||
"icu:Keyboard--open-emoji-chooser": {
|
||||
"messageformat": "Abrir selector de emojis"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 participante} other {{count,number} participantes}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invitado)} other {{memberList} (+{invitesCount,number} invitados)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "No hay personas en el grupo"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Todavía no hay otras personas en el grupo"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} y tú"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} y {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} y tú"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} y {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} y <clickable>{remainingCount,number} persona más</clickable>} other {{member1}, {member2}, {member3} y <clickable>{remainingCount,number} personas más</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} y <clickable>{remainingCount,number} persona más</clickable>} other {{member1}, {member2}, {member3} y <clickable>{remainingCount,number} personas más</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Revisa detenidamente"
|
||||
@ -3945,7 +3945,7 @@
|
||||
"messageformat": "Haz una donación a Signal"
|
||||
},
|
||||
"icu:BadgeSustainerInstructions__subheader": {
|
||||
"messageformat": "Signal es posible gracias a personas como tú. Contribuye y recibe una insignia para lucir en tu perfil."
|
||||
"messageformat": "Signal es posible gracias a personas como tú. Haz una donación y recibe una insignia para lucir en tu perfil."
|
||||
},
|
||||
"icu:BadgeSustainerInstructions__instructions__1": {
|
||||
"messageformat": "Abre Signal en tu teléfono"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Los archivos multimedia continuarán descargándose en segundo plano"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Restauración de archivos multimedia en pausa"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Esperando conexión a Internet…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Pausar transferencia"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Para continuar usando esta cuenta, debes abrir Signal en tu teléfono. Si no abres Signal en tu teléfono, tu cuenta se eliminará pronto. <learnMoreLink>Más información</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "No se pueden restaurar los archivos multimedia"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Tu dispositivo no tiene suficiente espacio libre. Libera {diskSpaceAmount} de espacio para restaurar tus archivos multimedia."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Expandir"
|
||||
},
|
||||
@ -4569,7 +4575,7 @@
|
||||
"messageformat": "¿Eliminar a {name} del grupo?"
|
||||
},
|
||||
"icu:RemoveGroupMemberConfirmation__description__with-link": {
|
||||
"messageformat": "¿Eliminar a {name} del grupo? Esta persona no podrá volver a unirse al grupo mediante enlace."
|
||||
"messageformat": "¿Eliminar a {name} del grupo? No podrá volver a unirse al grupo mediante enlace."
|
||||
},
|
||||
"icu:CaptchaDialog__title": {
|
||||
"messageformat": "Verificar para seguir chateando"
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Copias de seguridad"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Interno"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Exportar copia de seguridad cifrada a la memoria y ejecutar el conjunto de validación"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Validar"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Última importación: {time} del {date}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Tundmatu kontakt"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Tundmatu"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Tundmatu grupp"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 liige} other {{count,number} liiget}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} kutsutut)} other {{memberList} (+{invitesCount,number} kutsutut)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Grupis ei ole liikmeid"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Grupis ei ole veel teisi liikmeid"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} ja sina"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} ja {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} ja sina"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} ja {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} ja veel <clickable>{remainingCount,number}</clickable>} other {{member1}, {member2}, {member3} ja veel <clickable>{remainingCount,number}</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} ja veel <clickable>{remainingCount,number}</clickable>} other {{member1}, {member2}, {member3} ja veel <clickable>{remainingCount,number}</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Vaata hoolega üle"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Meedia allalaadimine jätkub taustal"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Meedia taastamine on pausil"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Internetiühenduse ootel …"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Peata edastus"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Selle konto edasi kasutamiseks pead Signali telefonis avama. Kui sa Signalit oma telefonis ei ava, kustutame varsti su konto. <learnMoreLink>Rohkem teavet</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Meediat ei saa taastada"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Sinu seadmes ei ole piisavalt vaba ruumi. Oma meedia taastamiseks vabasta {diskSpaceAmount} ruumi."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Laienda"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Varukoopiad"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Sisemine"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Ekspordi krüptitud varukoopia mälusse ja käivita sellel valideerimisprotsess"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Valideeri"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Viimane importimine: {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Kontaktu ezezaguna"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Ezezaguna"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Talde ezezaguna"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {{count,number} kide} other {{count,number} kide}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} gonbidatu)} other {{memberList} (+{invitesCount,number} gonbidatu)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Taldeak ez dauka kiderik"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Oraindik ez dago beste taldekiderik"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} eta zu"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} eta {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2}, eta zu"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2}, eta {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} eta <clickable>beste {remainingCount,number}</clickable>} other {{member1}, {member2}, {member3} eta <clickable>beste {remainingCount,number}</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} eta <clickable>beste {remainingCount,number}</clickable>} other {{member1}, {member2}, {member3} eta <clickable>beste {remainingCount,number}</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Berrikusi kontu handiz"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Multimedia-edukia atzeko planoan deskargatzen jarraituko da"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Multimedia-edukia leheneratzeko prozesua pausatuta dago"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Interneteko konexioaren zain…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Pausatu transferentzia"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Kontu hau erabiltzen jarraitzeko, Signal telefonoan ireki behar duzu. Signal telefonoan ireki ezean, kontua laster ezabatuko da. <learnMoreLink>Informazio gehiago</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Ezin da leheneratu multimedia-edukia"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Zure gailuak ez du leku libre nahikorik. Multimedia-edukia leheneratzeko, utzi {diskSpaceAmount} libre."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Zabaldu"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Babeskopiak"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Barnekoa"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Esportatu segurtasun-kopia enkriptatua memoriara eta exekutatu baliozkotze-paketea bertan"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Baliozkotu"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Azken inportazioa {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "مخاطب ناشناس"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "ناشناخته"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "گروه ناشناخته"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {۱ عضو} other {{count,number} عضو}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} ({invitesCount,number}+ عضو دعوتشده)} other {{memberList} ({invitesCount,number}+ عضو دعوتشده)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "عضوی در گروه وجود ندارد"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "هنوز هیچ عضو دیگری در گروه حضور ندارد"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} و شما"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} و {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1} ، {member2} و شما"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1} ، {member2} و {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}، {member2}، {member3}، و <clickable>{remainingCount,number} نفر دیگر</clickable>} other {{member1} ، {member2} ، {member3} ، و <clickable>{remainingCount,number} نفر دیگر</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}، {member2}، {member3}، و <clickable>{remainingCount,number} نفر دیگر</clickable>} other {{member1} ، {member2} ، {member3} ، و <clickable>{remainingCount,number} نفر دیگر</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "با دقت بازنگری کنید"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "دانلود رسانه در پسزمینه ادامه خواهد یافت"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "بازیابی رسانه متوقف شد"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "در انتظار اتصال به اینترنت..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "توقف موقت انتقال"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "برای ادامه استفاده از این حساب، باید سیگنال را در تلفن خود باز کنید. اگر سیگنال را در تلفن خود باز نکنید، حساب شما به زودی حذف خواهد شد. <learnMoreLink>اطلاعات بیشتر</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "رسانه بازیابی نشد"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "دستگاه شما فضای خالی کافی ندارد. برای بازیابی رسانه خود، {diskSpaceAmount} فضا آزاد کنید."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "گسترش"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "نسخههای پشتیبان"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "داخلی"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "نسخه پشتیبان رمزگذاریشده را به حافظه صادر کنید و مجموعه اعتبارسنجی را روی آن اجرا کنید"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "اعتبارسنجی"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "آخرین واردسازی در {time} {date}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Tuntematon yhteystieto"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Tuntematon"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Tuntematon ryhmä"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 jäsen} other {{count,number} jäsentä}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} kutsuttu)} other {{memberList} (+{invitesCount,number} kutsuttua)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Ei ryhmän jäseniä"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Ei vielä muita ryhmän jäseniä"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} ja sinä"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} ja {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} ja sinä"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} ja {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} ja <clickable>{remainingCount,number} muu</clickable>} other {{member1}, {member2}, {member3} ja <clickable>{remainingCount,number} muuta</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} ja <clickable>{remainingCount,number} muu</clickable>} other {{member1}, {member2}, {member3} ja <clickable>{remainingCount,number} muuta</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Tarkista huolellisesti"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Median lataaminen jatkuu taustalla"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Median palauttaminen keskeytetty"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Odotetaan internetyhteyttä..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Keskeytä siirto"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Sinun on avattava Signal puhelimessasi, jotta voit jatkaa tilin käyttöä. Jos et avaa Signalia puhelimellasi, tilisi poistetaan pian. <learnMoreLink>Lue lisää</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Mediaa ei voi palauttaa"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Laitteessasi ei ole tarpeeksi vapaata tilaa. Vapauta {diskSpaceAmount} tilaa median palauttamiseksi."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Laajenna"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Varmuuskopiot"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Sisäinen"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Vie salattu varmuuskopio muistiin ja suorita sille vahvistuspaketti"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Vahvista"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Viimeisin tuonti {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Contact inconnu"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Inconnu"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Groupe inconnu"
|
||||
@ -237,7 +237,7 @@
|
||||
"messageformat": "Conversations"
|
||||
},
|
||||
"icu:LeftPane--corrupted-username--text": {
|
||||
"messageformat": "Une erreur s’est produite et votre nom d’utilisateur n’est plus associé à votre compte. Vous pouvez tenter de le reconfigurer ou en choisir un autre."
|
||||
"messageformat": "Une erreur s'est produite : votre nom d'utilisateur n'est plus associé à votre compte. Vous pouvez tenter de le reconfigurer ou en choisir un autre."
|
||||
},
|
||||
"icu:LeftPane--corrupted-username--action-text": {
|
||||
"messageformat": "Résoudre"
|
||||
@ -912,7 +912,7 @@
|
||||
"messageformat": "Vous allez supprimer ce message de cet appareil."
|
||||
},
|
||||
"icu:deleteForEveryoneWarning": {
|
||||
"messageformat": "Ce message sera supprimé pour tous les membres participant à la conversation s’ils utilisent une version récente de Signal. Ils pourront voir que vous avez supprimé un message."
|
||||
"messageformat": "Ce message sera supprimé de cette conversation pour tous les utilisateurs disposant d'une version récente de Signal. Ils verront que vous avez supprimé un message."
|
||||
},
|
||||
"icu:from": {
|
||||
"messageformat": "De"
|
||||
@ -1062,7 +1062,7 @@
|
||||
"messageformat": "En savoir plus"
|
||||
},
|
||||
"icu:ChatRefresh--summary": {
|
||||
"messageformat": "Signal utilise un chiffrement de bout en bout, et l’actualisation de votre session de conversation pourrait parfois être nécessaire. Cela n’affecte pas la sécurité de votre conversation, mais vous pourriez alors manquer un message de ce contact. Vous pouvez lui demander de vous le renvoyer."
|
||||
"messageformat": "Signal utilise un chiffrement de bout en bout et doit parfois actualiser votre session. Cela n'a aucune incidence sur la sécurité de votre conversation, mais il se peut que vous ayez manqué un message de ce contact. Auquel cas, vous pouvez lui demander de vous le renvoyer."
|
||||
},
|
||||
"icu:ChatRefresh--contactSupport": {
|
||||
"messageformat": "Contacter l'assistance"
|
||||
@ -1095,25 +1095,25 @@
|
||||
"messageformat": "{obsoleteConversationTitle} et {conversationTitle} appartiennent au même compte. L’historique de vos conversations est ici."
|
||||
},
|
||||
"icu:ConversationMerge--notification--with-e164": {
|
||||
"messageformat": "L’historique de vos messages dans {conversationTitle} et son numéro {obsoleteConversationNumber} ont été fusionnés."
|
||||
"messageformat": "Signal a fusionné les messages échangés avec {conversationTitle} et avec son numéro {obsoleteConversationNumber}."
|
||||
},
|
||||
"icu:ConversationMerge--notification--no-title": {
|
||||
"messageformat": "L’historique de vos conversations dans {conversationTitle} et une autre conversation appartenant à ce groupe ont été fusionnés."
|
||||
"messageformat": "Signal a fusionné les messages échangés avec {conversationTitle} et ceux d'une autre conversation associée au même contact."
|
||||
},
|
||||
"icu:ConversationMerge--learn-more": {
|
||||
"messageformat": "En savoir plus"
|
||||
},
|
||||
"icu:ConversationMerge--explainer-dialog--line-1": {
|
||||
"messageformat": "Après avoir envoyé un message à {obsoleteConversationTitle}, vous avez découvert que ce numéro appartenait en fait à {conversationTitle}. Leur numéro de téléphone est privé."
|
||||
"messageformat": "Après avoir envoyé un message au {obsoleteConversationTitle}, vous avez découvert que ce numéro est en fait celui de {conversationTitle}. Son numéro de téléphone est privé."
|
||||
},
|
||||
"icu:ConversationMerge--explainer-dialog--line-2": {
|
||||
"messageformat": "L’historique de vos messages contenus dans les deux conversations a été fusionné ici."
|
||||
},
|
||||
"icu:PhoneNumberDiscovery--notification--withSharedGroup": {
|
||||
"messageformat": "{phoneNumber} appartient à {conversationTitle}. Vous êtes tous deux membres du groupe {sharedGroup}."
|
||||
"messageformat": "{phoneNumber} est le numéro de {conversationTitle}. Vous êtes tous deux membres du groupe {sharedGroup}."
|
||||
},
|
||||
"icu:PhoneNumberDiscovery--notification--noSharedGroup": {
|
||||
"messageformat": "{phoneNumber} appartient à {conversationTitle}"
|
||||
"messageformat": "{phoneNumber} est le numéro de {conversationTitle}"
|
||||
},
|
||||
"icu:TitleTransition--notification": {
|
||||
"messageformat": "Vous avez démarré cette conversation avec {oldTitle}"
|
||||
@ -1203,7 +1203,7 @@
|
||||
"messageformat": "Ce média à vue unique ne peut plus être téléchargé. Demandez à {name} de vous le renvoyer."
|
||||
},
|
||||
"icu:TapToViewNotAvailableModal__body--error": {
|
||||
"messageformat": "Impossible de télécharger ce média à vue unique. {name} devra le renvoyer."
|
||||
"messageformat": "Impossible de télécharger ce média à vue unique. {name} devra vous le renvoyer."
|
||||
},
|
||||
"icu:BackfillFailureModal__title": {
|
||||
"messageformat": "Impossible de télécharger le média"
|
||||
@ -1335,10 +1335,10 @@
|
||||
"messageformat": "Impossible de récupérer les informations associées au lien de l’appel. Vérifiez votre connexion réseau et réessayez."
|
||||
},
|
||||
"icu:calling__call-link-copied": {
|
||||
"messageformat": "Lien de l’appel copié."
|
||||
"messageformat": "Lien d'appel copié."
|
||||
},
|
||||
"icu:calling__call-link-no-longer-valid": {
|
||||
"messageformat": "Le lien de cet appel n’est plus valide."
|
||||
"messageformat": "Ce lien d'appel n'est plus valide."
|
||||
},
|
||||
"icu:calling__call-link-default-title": {
|
||||
"messageformat": "Appel Signal"
|
||||
@ -1692,7 +1692,7 @@
|
||||
"messageformat": "Envoi mis en pause"
|
||||
},
|
||||
"icu:partiallySent": {
|
||||
"messageformat": "Envoi partiel. Cliquer pour afficher plus d'infos."
|
||||
"messageformat": "Envoi partiel. Cliquer pour en savoir plus"
|
||||
},
|
||||
"icu:partiallyDeleted": {
|
||||
"messageformat": "Suppression partielle. Cliquez pour réessayer."
|
||||
@ -1902,7 +1902,7 @@
|
||||
"messageformat": "Échec du téléchargement"
|
||||
},
|
||||
"icu:ToastManager__CannotEditMessage_24": {
|
||||
"messageformat": "Vous ne pouvez modifier que pendant les 24 heures suivant l’envoi du message."
|
||||
"messageformat": "Une fois envoyés, les messages ne peuvent être modifiés que pendant 24 heures."
|
||||
},
|
||||
"icu:startConversation--username-not-found": {
|
||||
"messageformat": "{atUsername} n'utilise pas Signal. Le nom d'utilisateur saisi est peut-être incomplet."
|
||||
@ -2172,7 +2172,7 @@
|
||||
"messageformat": "Stickers reçus"
|
||||
},
|
||||
"icu:stickers--StickerManager--ReceivedPacks--Empty": {
|
||||
"messageformat": "Les stickers des messages reçus s’affichent ici"
|
||||
"messageformat": "Les stickers des messages reçus s'afficheront ici."
|
||||
},
|
||||
"icu:stickers--StickerManager--Install": {
|
||||
"messageformat": "Installer"
|
||||
@ -2223,7 +2223,7 @@
|
||||
"messageformat": "Aucun pack de stickers à afficher"
|
||||
},
|
||||
"icu:stickers--StickerPicker--NoRecents": {
|
||||
"messageformat": "Les stickers récemment utilisés s'affichent ici."
|
||||
"messageformat": "Les stickers récemment utilisés s'afficheront ici."
|
||||
},
|
||||
"icu:stickers__StickerPicker__recent": {
|
||||
"messageformat": "Récents"
|
||||
@ -2931,7 +2931,7 @@
|
||||
"messageformat": "Supprimer et quitter"
|
||||
},
|
||||
"icu:MessageRequests--delete-group-confirm-body": {
|
||||
"messageformat": "Vous allez quitter ce groupe et le supprimer de tous vos appareils."
|
||||
"messageformat": "Vous quitterez ce groupe et il sera supprimé de tous vos appareils."
|
||||
},
|
||||
"icu:MessageRequests--accept": {
|
||||
"messageformat": "Accepter"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 membre} other {{count,number} membres}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} membre invité)} other {{memberList} (+{invitesCount,number} membres invités)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Aucun membre"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Aucun autre membre"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} et vous"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} et {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} et vous"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} et {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} et <clickable>{remainingCount,number} autre personne</clickable>} other {{member1}, {member2}, {member3} et <clickable>{remainingCount,number} autres personnes</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} et <clickable>{remainingCount,number} autre personne</clickable>} other {{member1}, {member2}, {member3} et <clickable>{remainingCount,number} autres personnes</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Faites attention"
|
||||
@ -3354,7 +3354,7 @@
|
||||
"messageformat": "Impossible de modifier le message"
|
||||
},
|
||||
"icu:MessageMaxEditsModal__Description": {
|
||||
"messageformat": "{max, plural, one {{max,number} modification peut-être appliquée à ce message.} other {{max,number} modifications seulement peuvent être appliquées à ce message.}}"
|
||||
"messageformat": "{max, plural, one {Vous ne pouvez modifier ce message qu'une seule {max,number} fois.} other {Vous ne pouvez modifier ce message que {max,number} fois.}}"
|
||||
},
|
||||
"icu:unknown-sgnl-link": {
|
||||
"messageformat": "Le lien sgnl:// est incorrect."
|
||||
@ -3672,10 +3672,10 @@
|
||||
"messageformat": "Vous avez été invité à rejoindre le groupe."
|
||||
},
|
||||
"icu:GroupV2--pending-add--many--other": {
|
||||
"messageformat": "{count, plural, one {{memberName} a invité {count,number} personne au groupe.} other {{memberName} a invité {count,number} personnes au groupe.}}"
|
||||
"messageformat": "{count, plural, one {{memberName} a invité {count,number} personne à rejoindre le groupe.} other {{memberName} a invité {count,number} personnes à rejoindre le groupe.}}"
|
||||
},
|
||||
"icu:GroupV2--pending-add--many--you": {
|
||||
"messageformat": "{count, plural, one {Vous avez invité {count,number} utilisateur à rejoindre le groupe.} other {Vous avez invité {count,number} utilisateurs à rejoindre le groupe.}}"
|
||||
"messageformat": "{count, plural, one {Vous avez invité {count,number} personne à rejoindre le groupe.} other {Vous avez invité {count,number} personnes à rejoindre le groupe.}}"
|
||||
},
|
||||
"icu:GroupV2--pending-add--many--unknown": {
|
||||
"messageformat": "{count, plural, one {{count,number} personne a été invitée au groupe.} other {{count,number} personnes ont été invitées au groupe.}}"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Le téléchargement des médias se poursuivra en arrière-plan"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Restauration des médias en pause"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "En attente de connexion Internet…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Mettre en pause le transfert"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Pour continuer d'utiliser ce compte, vous devez ouvrir Signal sur votre téléphone. Sans quoi, il sera bientôt supprimé. <learnMoreLink>En savoir plus</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Impossible de restaurer les médias"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "L'espace libre disponible sur votre appareil est insuffisant. Libérez {diskSpaceAmount} d’espace pour restaurer vos médias."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Agrandir"
|
||||
},
|
||||
@ -4497,7 +4503,7 @@
|
||||
"messageformat": "Aucune conversation"
|
||||
},
|
||||
"icu:emptyInbox__subtitle": {
|
||||
"messageformat": "Les conversations récentes s’afficheront ici."
|
||||
"messageformat": "Les conversations récentes s'afficheront ici."
|
||||
},
|
||||
"icu:ForwardMessageModal__title": {
|
||||
"messageformat": "Transférer à"
|
||||
@ -4602,7 +4608,7 @@
|
||||
"messageformat": "Supprimer la couleur"
|
||||
},
|
||||
"icu:ChatColorPicker__delete--message": {
|
||||
"messageformat": "{num, plural, one {Cette couleur personnalisée est utilisée dans {num,number} conversation. Souhaitez-vous la supprimer pour toutes les conversations ?} other {Cette couleur personnalisée est utilisée dans {num,number} conversations. Souhaitez-vous la supprimer pour toutes les conversations ?}}"
|
||||
"messageformat": "{num, plural, one {Cette couleur personnalisée est utilisée dans {num,number} conversation. Voulez-vous la supprimer pour toutes les conversations ?} other {Cette couleur personnalisée est utilisée dans {num,number} conversations. Voulez-vous la supprimer pour toutes les conversations ?}}"
|
||||
},
|
||||
"icu:ChatColorPicker__menu-title": {
|
||||
"messageformat": "Couleur des bulles"
|
||||
@ -4770,7 +4776,7 @@
|
||||
"messageformat": "Disparaît dans"
|
||||
},
|
||||
"icu:MessageDetail__view-edits": {
|
||||
"messageformat": "Voir l’historique des modifications"
|
||||
"messageformat": "Afficher l'historique des modifications"
|
||||
},
|
||||
"icu:ProfileEditor--about": {
|
||||
"messageformat": "À propos"
|
||||
@ -4779,7 +4785,7 @@
|
||||
"messageformat": "Nom d'utilisateur"
|
||||
},
|
||||
"icu:ProfileEditor--username--corrupted--body": {
|
||||
"messageformat": "Une erreur s'est produite : votre nom d'utilisateur n'est plus associé à votre compte. Nous vous invitons à le réassocier à votre compte ou à en choisir un autre."
|
||||
"messageformat": "Une erreur s'est produite : votre nom d'utilisateur n'est plus associé à votre compte. Vous pouvez tenter de le reconfigurer ou en choisir un autre."
|
||||
},
|
||||
"icu:ProfileEditor--username--corrupted--fix-button": {
|
||||
"messageformat": "Résoudre"
|
||||
@ -4815,7 +4821,7 @@
|
||||
"messageformat": "{max, plural, one {Le nom d’utilisateur ne peut pas comporter plus de {max,number} caractère.} other {Le nom d’utilisateur ne peut pas comporter plus de {max,number} caractères.}}"
|
||||
},
|
||||
"icu:ProfileEditor--username--check-discriminator-min": {
|
||||
"messageformat": "Nom d’utilisateur non valide. Veuillez saisir au moins 2 chiffres."
|
||||
"messageformat": "Nom d'utilisateur incorrect. Veuillez saisir au moins 2 chiffres."
|
||||
},
|
||||
"icu:ProfileEditor--username--check-discriminator-all-zero": {
|
||||
"messageformat": "Ce numéro ne peut pas être 00. Veuillez saisir un chiffre en 1 et 9."
|
||||
@ -4869,7 +4875,7 @@
|
||||
"messageformat": "Prénom (champ obligatoire)"
|
||||
},
|
||||
"icu:ProfileEditor--last-name": {
|
||||
"messageformat": "Nom de famille (facultatif)"
|
||||
"messageformat": "Nom (facultatif)"
|
||||
},
|
||||
"icu:ConfirmDiscardDialog--discard": {
|
||||
"messageformat": "Voulez-vous supprimer ces modifications ?"
|
||||
@ -4890,7 +4896,7 @@
|
||||
"messageformat": "Votre nom d’utilisateur, votre code QR et votre lien ne s’affichent pas sur votre profil. Ne les partagez qu’avec des personnes de confiance."
|
||||
},
|
||||
"icu:ProfileEditor--info--pnp--no-username": {
|
||||
"messageformat": "Vos amis peuvent désormais vous contacter grâce à votre nom d’utilisateur facultatif, ce qui vous évite de partager votre numéro de téléphone."
|
||||
"messageformat": "Vos amis peuvent désormais vous contacter grâce à votre nom d'utilisateur facultatif, ce qui vous évite de partager votre numéro de téléphone."
|
||||
},
|
||||
"icu:Bio--speak-freely": {
|
||||
"messageformat": "Oui à la liberté d'expression !"
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Sauvegardes"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Configuration interne"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Exporter la sauvegarde chiffrée vers la mémoire interne et exécuter les tests de validation"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Exécuter"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Dernière importation le {date} à {time}"
|
||||
@ -5097,10 +5103,10 @@
|
||||
"messageformat": "Modifier..."
|
||||
},
|
||||
"icu:Preferences__pnp__sharing--title": {
|
||||
"messageformat": "Qui peut voir mon numéro de téléphone"
|
||||
"messageformat": "Qui peut voir mon numéro"
|
||||
},
|
||||
"icu:Preferences__pnp__sharing--description--everyone": {
|
||||
"messageformat": "Votre numéro de téléphone sera visible par les personnes et les groupes avec lesquels vous échangez des messages."
|
||||
"messageformat": "Seuls les contacts et les groupes avec lesquels vous échangez des messages pourront voir votre numéro de téléphone."
|
||||
},
|
||||
"icu:Preferences__pnp__sharing--description--nobody": {
|
||||
"messageformat": "Personne n’aura accès à votre numéro, sauf les utilisateurs qui l’ont déjà enregistré dans les contacts de leur téléphone."
|
||||
@ -5118,13 +5124,13 @@
|
||||
"messageformat": "Personne"
|
||||
},
|
||||
"icu:Preferences__pnp__discoverability--title": {
|
||||
"messageformat": "Qui peut me retrouver grâce à mon numéro de téléphone"
|
||||
"messageformat": "Qui peut me trouver grâce à mon numéro"
|
||||
},
|
||||
"icu:Preferences__pnp__discoverability--description--everyone": {
|
||||
"messageformat": "Toutes les personnes disposant de votre numéro de téléphone pourront voir que vous utilisez Signal et lancer une conversation avec vous."
|
||||
},
|
||||
"icu:Preferences__pnp__discoverability--description--nobody": {
|
||||
"messageformat": "Personne ne verra votre numéro de téléphone sur Signal, à moins que vous leur envoyiez un message ou que vous ayez déjà une conversation existante avec eux."
|
||||
"messageformat": "Personne ne saura que vous utilisez Signal, hormis les utilisateurs à qui vous envoyez un message ou avec qui vous avez déjà démarré une conversation."
|
||||
},
|
||||
"icu:Preferences__pnp__discoverability__everyone": {
|
||||
"messageformat": "Tout le monde"
|
||||
@ -5415,13 +5421,13 @@
|
||||
"messageformat": "Supprimer cette story ? Cela la supprime aussi pour tous ses destinataires."
|
||||
},
|
||||
"icu:payment-event-notification-message-you-label": {
|
||||
"messageformat": "Vous avez initié une procédure de paiement en faveur de {receiver}"
|
||||
"messageformat": "Vous avez initié un paiement en faveur de {receiver}"
|
||||
},
|
||||
"icu:payment-event-notification-message-you-label-without-receiver": {
|
||||
"messageformat": "Vous avez initié une procédure de paiement"
|
||||
},
|
||||
"icu:payment-event-notification-message-label": {
|
||||
"messageformat": "{sender} a initié une procédure de paiement en votre faveur"
|
||||
"messageformat": "{sender} a initié un paiement en votre faveur"
|
||||
},
|
||||
"icu:payment-event-activation-request-label": {
|
||||
"messageformat": "{sender} souhaite que vous activiez les paiements. N’envoyez de paiements qu’aux personnes en qui vous avez confiance. Vous pouvez activer les paiements depuis votre téléphone mobile via Paramètres > Paiements."
|
||||
@ -5520,7 +5526,7 @@
|
||||
"messageformat": "Aucune story"
|
||||
},
|
||||
"icu:Stories__list__empty--subtitle": {
|
||||
"messageformat": "Les nouveaux contenus s’afficheront ici."
|
||||
"messageformat": "Les nouveaux contenus s'afficheront ici."
|
||||
},
|
||||
"icu:Stories__list--sending": {
|
||||
"messageformat": "Envoi…"
|
||||
@ -5670,7 +5676,7 @@
|
||||
"messageformat": "Ne partager qu'avec"
|
||||
},
|
||||
"icu:SendStoryModal__excluded": {
|
||||
"messageformat": "{count, plural, one {{count,number} exclu} other {{count,number} exclus}}"
|
||||
"messageformat": "{count, plural, one {{count,number} contact exclu} other {{count,number} contacts exclus}}"
|
||||
},
|
||||
"icu:SendStoryModal__new": {
|
||||
"messageformat": "Nouvelle story"
|
||||
@ -5940,7 +5946,7 @@
|
||||
"messageformat": "Ces chiffres servent à protéger la confidentialité de votre nom d'utilisateur, vous évitant ainsi de recevoir des messages indésirables. Ne partagez votre nom d’utilisateur qu’avec les personnes et les groupes avec lesquels vous voulez discuter. Si vous changez de nom d’utilisateur, une nouvelle série de chiffres vous sera attribuée."
|
||||
},
|
||||
"icu:EditUsernameModalBody__change-confirmation": {
|
||||
"messageformat": "Modifier votre nom d’utilisateur entraîne la réinitialisation de votre lien et code QR existants. Êtes-vous sûr de vouloir continuer ?"
|
||||
"messageformat": "Si vous changez de nom d'utilisateur, votre lien et votre code QR existants seront réinitialisés. Voulez-vous vraiment continuer ?"
|
||||
},
|
||||
"icu:EditUsernameModalBody__change-confirmation__continue": {
|
||||
"messageformat": "Poursuivre"
|
||||
@ -5949,7 +5955,7 @@
|
||||
"messageformat": "La récupération de votre nom d’utilisateur aura pour effet de réinitialiser votre lien et votre code QR existants. Voulez-vous vraiment continuer ?"
|
||||
},
|
||||
"icu:EditUsernameModalBody__username-recovered__text": {
|
||||
"messageformat": "Nous avons réinitialisé votre lien et votre code QR. Votre nouveau nom d’utilisateur est {username}"
|
||||
"messageformat": "Nous avons réinitialisé votre lien et votre code QR. Votre nouveau nom d'utilisateur est {username}"
|
||||
},
|
||||
"icu:UsernameLinkModalBody__hint": {
|
||||
"messageformat": "Et si on discutait sur Signal ? Scannez ce code QR pour me contacter.",
|
||||
@ -6010,7 +6016,7 @@
|
||||
"messageformat": "Liens et codes QR"
|
||||
},
|
||||
"icu:UsernameOnboardingModalBody__row__qr__body": {
|
||||
"messageformat": "Les noms d’utilisateur sont associés à des liens et des codes QR uniques. Vous pouvez les envoyer à vos amis pour démarrer une conversation sans attendre."
|
||||
"messageformat": "Chaque nom d'utilisateur est associé à un lien et un code QR uniques. Vous pouvez les partager avec vos amis pour démarrer une conversation instantanément."
|
||||
},
|
||||
"icu:UsernameOnboardingModalBody__continue": {
|
||||
"messageformat": "Configurer le nom d’utilisateur"
|
||||
@ -6121,7 +6127,7 @@
|
||||
"messageformat": "Aucun appel"
|
||||
},
|
||||
"icu:CallsList__EmptyState--noQuery__subtitle": {
|
||||
"messageformat": "Les appels récents s’afficheront ici."
|
||||
"messageformat": "Les appels récents s'afficheront ici."
|
||||
},
|
||||
"icu:CallsList__EmptyState--hasQuery": {
|
||||
"messageformat": "Aucun résultat ne correspond à votre recherche : \"{query}\""
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Teagmhálaí Anaithnid"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Anaithnid"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Grúpa anaithnid"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 bhall} two {{count,number} bhall} few {{count,number} bhall} many {{count,number} mball} other {{count,number} ball}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+ {invitesCount,number} chuireadh seolta amháin)} two {{memberList} (+ {invitesCount,number} chuireadh seolta)} few {{memberList} (+ {invitesCount,number} chuireadh seolta)} many {{memberList} (+ {invitesCount,number} gcuireadh seolta)} other {{memberList} (+ {invitesCount,number} cuireadh seolta)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Níl aon bhall sa ghrúpa"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Níl aon bhall eile sa ghrúpa fós"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} agus tusa"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} agus {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} agus tusa"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} agus {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} agus <clickable>{remainingCount,number} duine amháin eile</clickable>} two {{member1}, {member2}, {member3} agus <clickable>{remainingCount,number} dhuine eile</clickable>} few {{member1}, {member2}, {member3} agus <clickable>{remainingCount,number} dhuine eile</clickable>} many {{member1}, {member2}, {member3} agus <clickable>{remainingCount,number} nduine eile</clickable>} other {{member1}, {member2}, {member3} agus <clickable>{remainingCount,number} duine eile</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} agus <clickable>{remainingCount,number} duine amháin eile</clickable>} two {{member1}, {member2}, {member3} agus <clickable>{remainingCount,number} dhuine eile</clickable>} few {{member1}, {member2}, {member3} agus <clickable>{remainingCount,number} dhuine eile</clickable>} many {{member1}, {member2}, {member3} agus <clickable>{remainingCount,number} nduine eile</clickable>} other {{member1}, {member2}, {member3} agus <clickable>{remainingCount,number} duine eile</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Déan athbhreithniú go cúramach"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Leanfaidh íoslódáil meán sa chúlra"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Aischur meán curtha ar sos"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Ag feitheamh le nasc Idirlín..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Cuir an t-aistriú ar sos"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Ní mór duit Signal a oscailt ar do ghuthán le leanúint le húsáid an chuntais seo. Mura n-osclaíonn tú Signal ar do ghuthán, scriosfar do chuntas ar ball. <learnMoreLink>Tuilleadh faisnéise</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Ní féidir na meáin a aischur"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Ní leor an spás saor ar do ghléas. Saor {diskSpaceAmount} de spás le do mheáin a aischur."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Fairsingigh"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Cúltacaí"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Inmheánach"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Easpórtáil cúltaca criptithe chuig cuimhne agus rith sraith bhailíochtaithe air"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Bailíochtaigh"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Iompórtáil deiridh {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Contacto descoñecido"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Descoñecido"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Grupo descoñecido"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 membro} other {{count,number} membros}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} convidado)} other {{memberList} (+{invitesCount,number} convidados)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Sen membros"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Non hai máis membros no grupo"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} e ti"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} e {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} e ti"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} e {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} e <clickable>{remainingCount,number} máis</clickable>} other {{member1}, {member2}, {member3} e <clickable>{remainingCount,number} máis</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} e <clickable>{remainingCount,number} máis</clickable>} other {{member1}, {member2}, {member3} e <clickable>{remainingCount,number} máis</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Revisa a información con atención"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Os arquivos multimedia descargaranse en segundo plano"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Restauración de arquivos multimedia en pausa"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Agardando por unha conexión a Internet…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Parar transferencia"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Debes abrir Signal no teu teléfono para seguir empregando esta conta. Se non o fas, a túa conta eliminarase en breve. <learnMoreLink>Máis información</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Non se poden restaurar os arquivos"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "O teu dispositivo non ten espazo libre suficiente. Libera {diskSpaceAmount} de espazo para poder restaurar os arquivos multimedia."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Expandir"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Copias de seguranza"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Interna"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Exporta a copia de seguridade cifrada á memoria e executa o paquete de validación"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Validar"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Última importación o {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "અજાણ્યો સંપર્ક"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "અજાણ્યું"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "અજાણ્યું ગ્રુપ"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 સભ્ય} other {{count,number} સભ્યો}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number}ને આમંત્રિત કર્યા)} other {{memberList} (+{invitesCount,number}ને આમંત્રિત કર્યા)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "કોઈ ગ્રૂપના સભ્યો નથી"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "હજી સુધી કોઈ અન્ય ગ્રૂપના સભ્યો નથી"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} અને તમે"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} અને {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} અને તમે"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} અને {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} અને <clickable>{remainingCount,number} અન્ય</clickable>} other {{member1}, {member2}, {member3} અને <clickable>{remainingCount,number} અન્ય</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} અને <clickable>{remainingCount,number} અન્ય</clickable>} other {{member1}, {member2}, {member3} અને <clickable>{remainingCount,number} અન્ય</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "કાળજીપૂર્વક રિવ્યૂ કરો"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "મીડિયા બેકગ્રાઉન્ડમાં ડાઉનલોડ કરવાનું ચાલુ રહેશે"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "મીડિયા રિસ્ટોર થવાનું થોભાવ્યું"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "ઇન્ટરનેટ કનેક્શનની રાહ જોઈ રહ્યાં છીએ..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "ટ્રાન્સફર થોભાવો"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "આ એકાઉન્ટનો ઉપયોગ ચાલુ રાખવા માટે તમારે તમારા ફોન પર Signal ખોલવું આવશ્યક છે. જો તમે તમારા ફોન પર Signal નહીં ખોલો, તો તમારું એકાઉન્ટ ટૂંક સમયમાં ડિલીટ થઈ જશે. <learnMoreLink>વધુ જાણો</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "મીડિયા રિસ્ટોર કરી શકતા નથી"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "તમારા ડિવાઇસમાં પૂરતી જગ્યા ખાલી નથી. તમારા મીડિયાને રિસ્ટોર કરવા માટે {diskSpaceAmount} જગ્યા ખાલી કરો."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "વિસ્તૃત કરો"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "બેકઅપ"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "આંતરિક"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "એન્ક્રિપ્ટેડ બેકઅપને મેમરી પર નિકાસ કરો અને તેના પર વેલિડેશન સ્યુટ ચલાવો"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "વેલિડેટ કરો"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "છેલ્લું ઇમ્પોર્ટ {date} {time} વાગ્યે હતું"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "איש קשר בלתי ידוע"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "בלתי ידוע"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "קבוצה לא ידועה"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {חבר/ה 1} two {{count,number} חברים} many {{count,number} חברים} other {{count,number} חברים}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} מוזמנ/ת)} two {{memberList} (+{invitesCount,number} מוזמנים)} many {{memberList} (+{invitesCount,number} מוזמנים)} other {{memberList} (+{invitesCount,number} מוזמנים)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "אין חברים בקבוצה"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "עדיין אין חברים אחרים בקבוצה"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} ואת/ה"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} ו–{member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2}, ואת/ה"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2}, ו{member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, ו–<clickable>{remainingCount,number} אחר/ת</clickable>} two {{member1}, {member2}, {member3}, ו–<clickable>{remainingCount,number} אחרים</clickable>} many {{member1}, {member2}, {member3}, ו–<clickable>{remainingCount,number} אחרים</clickable>} other {{member1}, {member2}, {member3}, ו–<clickable>{remainingCount,number} אחרים</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, ו–<clickable>{remainingCount,number} אחר/ת</clickable>} two {{member1}, {member2}, {member3}, ו–<clickable>{remainingCount,number} אחרים</clickable>} many {{member1}, {member2}, {member3}, ו–<clickable>{remainingCount,number} אחרים</clickable>} other {{member1}, {member2}, {member3}, ו–<clickable>{remainingCount,number} אחרים</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "יש לסקור בזהירות"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "הורדת המדיה תמשיך ברקע"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "שחזור המדיה הושהה"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "בהמתנה לחיבור אינטרנט…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "השהיית העברה"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "יש לפתוח את Signal בטלפון שלך כדי להמשיך להשתמש בחשבון הזה. אם לא תפתח/י את Signal בטלפון שלך, החשבון שלך יימחק בקרוב. <learnMoreLink>למידע נוסף</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "לא ניתן לשחזר מדיה"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "אין מספיק מקום פנוי במכשיר שלך. יש לפנות {diskSpaceAmount} של שטח כדי לשחזר את המדיה שלך."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "הרחב"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "גיבויים"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "פנימי"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "לייצא גיבוי מוצפן לזיכרון ולהריץ עליו אימות"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "אימות"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "יבוא אחרון במועד {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "अज्ञात संपर्क"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "अनजान"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "अंजान ग्रुप"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 सदस्य} other {{count,number} सदस्य}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} को इनवाइट किया गया)} other {{memberList} (+{invitesCount,number} को इनवाइट किया गया)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "समूह का कोई सदस्य नहीं है"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "अभी तक ग्रुप का कोई और सदस्य नहीं है"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} और आप"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} और {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2}, और आप"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2}, और {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, और <clickable>{remainingCount,number} दूसरा व्यक्ति</clickable>} other {{member1}, {member2}, {member3}, और <clickable>{remainingCount,number} दूसरे लोग</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, और <clickable>{remainingCount,number} दूसरा व्यक्ति</clickable>} other {{member1}, {member2}, {member3}, और <clickable>{remainingCount,number} दूसरे लोग</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "सावधानी से समीक्षा करें"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "मीडिया बैकग्राउंड में डाउनलोड होता रहेगा"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "मीडिया को रीस्टोर करना पॉज़ किया गया"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "इंटरनेट कनेक्शन के लिए इंतज़ार करें..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "ट्रांसफ़र पॉज़ करें"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "यह अकाउंट इस्तेमाल करना जारी रखने के लिए, आपको अपने फ़ोन पर Signal खोलना होगा। अगर आप अपने फ़ोन पर Signal नहीं खोलते, तो आपका अकाउंट जल्द ही डिलीट हो जाएगा। <learnMoreLink>ज़्यादा जानें</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "मीडिया को रीस्टोर नहीं किया जा सकता"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "आपके डिवाइस में पर्याप्त खाली जगह नहीं है। अपना मीडिया रीस्टोर करने के लिए, {diskSpaceAmount} स्पेस खाली करें।"
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "बड़ा करें"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "बैकअप"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "अंदरूनी"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "एनक्रिप्टेड बैकअप को मेमोरी में एक्सपोर्ट करें और इस पर वैलिडेशन सुइट चलाएँ"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "वैलिडेट करें"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "{date} {time} पर आख़िरी एक्सपोर्ट"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Nepoznati kontakt"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Nepoznato"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Nepoznata grupa"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 član} few {{count,number} člana} many {{count,number} članova} other {{count,number} članova}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} pozvani korisnik)} few {{memberList} (+{invitesCount,number} pozvana korisnika)} many {{memberList} (+{invitesCount,number} pozvanih korisnika)} other {{memberList} (+{invitesCount,number} pozvanih korisnika)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Nema članova grupe"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Još nema drugih članova u grupi"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} i vi"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} i {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} i vi"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} i {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} i još <clickable>{remainingCount,number} osoba</clickable>} few {{member1}, {member2}, {member3} i još <clickable>{remainingCount,number} osobe</clickable>} many {{member1}, {member2}, {member3} i još <clickable>{remainingCount,number} osoba</clickable>} other {{member1}, {member2}, {member3} i još <clickable>{remainingCount,number} osoba</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} i još <clickable>{remainingCount,number} osoba</clickable>} few {{member1}, {member2}, {member3} i još <clickable>{remainingCount,number} osobe</clickable>} many {{member1}, {member2}, {member3} i još <clickable>{remainingCount,number} osoba</clickable>} other {{member1}, {member2}, {member3} i još <clickable>{remainingCount,number} osoba</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Pažljivo pregledajte"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Medijski zapisi nastavit će se preuzimati u pozadini"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Vraćanje medijskih zapisa je pauzirano"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Čekanje internetske veze…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Pauziraj prijenos"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Morate otvoriti Signal na svom telefonu kako biste nastavili koristiti ovaj račun. Ako ne otvorite Signal na svom telefonu, vaš račun će uskoro biti izbrisan. <learnMoreLink>Saznaj više</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Nije moguće vratiti medijske zapise"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Nema dovoljno slobodnog prostora na vašem uređaju. Oslobodite {diskSpaceAmount} prostora da biste preuzeli svoje medijske zapise."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Proširi"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Sigurnosne kopije"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Interne postavke"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Izvoz šifrirane sigurnosne kopije u memoriju i pokretanje paketa za njezinu provjeru valjanosti"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Provjeri valjanost"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Posljednji uvoz {date} u {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Ismeretlen kontakt"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Ismeretlen"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Ismeretlen csoport"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 tag} other {{count,number} tag}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} meghívva)} other {{memberList} (+{invitesCount,number} meghívva)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Nincsenek csoporttagok"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Még nincs más csoporttag"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} és te"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} és {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} és te"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} és {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} és <clickable>{remainingCount,number} másik</clickable>} other {{member1}, {member2}, {member3} és <clickable>{remainingCount,number} másik</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} és <clickable>{remainingCount,number} másik</clickable>} other {{member1}, {member2}, {member3} és <clickable>{remainingCount,number} másik</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Tekintsd át figyelmesen"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "A médiafájl letöltése a háttérben folytatódik"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Médiafájl visszaállítása szünetel"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Várakozás az internetkapcsolatra..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Átvitel szüneteltetése"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "A fiók használatának folytatásához meg kell nyitnod a Signalt a telefonodon. Ha nem nyitod meg a Signalt a telefonodon, a fiókod hamarosan törlődik. <learnMoreLink>Tudj meg többet!</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Nem lehet visszaállítani a médiafájlt"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Az eszközödön nincs elég szabad hely. Szabadíts fel {diskSpaceAmount} helyet a médiafájlok visszaállításához."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Bővítés"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Biztonsági mentések"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Belső"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Titkosított biztonsági mentés exportálása a memóriába és a validációs csomag futtatása"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Validálás"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Utolsó importálás időpontja: {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Kontak tidak dikenal"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Tidak diketahui"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Grup tidak dikenal"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, other {{count,number} anggota}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, other {{memberList} (+{invitesCount,number} diundang)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Tidak ada anggota grup"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Belum ada anggota grup lain"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} dan Anda"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} dan {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2}, dan Anda"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2}, dan {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}, {member2}, {member3}, dan <clickable>{remainingCount,number} lainnya</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}, {member2}, {member3}, dan <clickable>{remainingCount,number} lainnya</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Tinjau dengan cermat"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Pengunduhan media akan terus berlangsung di latar belakang"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Pemulihan media dijeda"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Menunggu koneksi internet …"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Jeda transfer"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Anda harus membuka Signal di ponsel agar dapat terus menggunakan akun ini. Jika Anda tidak membuka Signal di ponsel, akun Anda akan segera dihapus. <learnMoreLink>Pelajari selengkapnya</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Tidak dapat memulihkan media"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Perangkat Anda tidak punya cukup ruang kosong. Kosongkan penyimpanan sebesar {diskSpaceAmount} untuk memulihkan media Anda."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Lebarkan"
|
||||
},
|
||||
@ -5001,10 +5007,10 @@
|
||||
"messageformat": "Internal"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Ekspor cadangan terenkripsi ke memori perangkat dan jalankan rangkaian validasi pada cadangan tersebut"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Validasi"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Impor terakhir pada {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Contatto sconosciuto"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Sconosciuto"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Gruppo sconosciuto"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 persona} other {{count,number} persone}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} persona invitata)} other {{memberList} (+{invitesCount,number} persone invitate)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Questo gruppo non ha partecipanti"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Non ci sono altre persone nel gruppo"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "Tu e {member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} e {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "Tu, {member1} e {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} e {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} e <clickable>{remainingCount,number} altra persona</clickable>} other {{member1}, {member2}, {member3} e <clickable>{remainingCount,number} altre persone</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} e <clickable>{remainingCount,number} altra persona</clickable>} other {{member1}, {member2}, {member3} e <clickable>{remainingCount,number} altre persone</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Controlla con attenzione"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Il download dei media proseguirà in background"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Ripristino dei media in pausa"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "In attesa di una connessione Internet…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Metti in pausa"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Devi aprire Signal dal tuo telefono per continuare a usare questo account. Se non apri Signal sul tuo telefono, il tuo account potrebbe essere eliminato a breve. <learnMoreLink>Scopri di più</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Impossibile ripristinare i media"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Il tuo dispositivo non ha spazio libero a sufficienza. Libera {diskSpaceAmount} di spazio per ripristinare i tuoi media."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Espandi"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Backup"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Configurazione interna"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Esporta backup crittografati sul tuo spazio di archiviazione ed esegui una validation suite sul backup"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Esegui"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Ultima importazione il {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "不明な連絡先"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "不明"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "不明なグループ"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, other {メンバー{count,number}人}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, other {{memberList} (+{invitesCount,number}人招待中)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "グループメンバーはいません"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "まだ他のグループメンバーがいません"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member}とあなた"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}、{member2}とあなた"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}、{member2}と{member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}、{member2}、{member3}、<clickable>他{remainingCount,number}人</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}、{member2}、{member3}、<clickable>他{remainingCount,number}人</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "慎重に確認してください"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "メディアはバックグラウンドで引き続きダウンロードされます"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "メディアの復元が中断されました"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "インターネット接続を待っています..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "転送を一時停止する"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "このアカウントの使用を継続するには、お使いのスマートフォンでSignalを開く必要があります。この操作を行わないと、アカウントは間もなく消去されます。<learnMoreLink>さらに詳しく</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "メディアを復元できません"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "ご利用の端末には十分な空き容量がありません。メディアを復元するために{diskSpaceAmount}の空き容量を確保してください。"
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "大きく"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "バックアップ"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "内部設定"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "暗号化されたバックアップをメモリにエクスポートし、検証処理を実行します"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "検証する"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "最終インポート: {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "უცნობი კონტაქტი"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "უცნობი"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "უცნობი ჯგუფი"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 წევრი} other {{count,number} წევრი}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} მოწვეული)} other {{memberList} (+{invitesCount,number} მოწვეული)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "ჯგუფის წევრები ვერ მოიძებნა"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "ჯგუფის სხვა წევრები ჯერ არ არიან"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} და შენ"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} და {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} და შენ"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} და {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} და <clickable>{remainingCount,number} სხვა</clickable>} other {{member1}, {member2}, {member3} და <clickable>{remainingCount,number} სხვა</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} და <clickable>{remainingCount,number} სხვა</clickable>} other {{member1}, {member2}, {member3} და <clickable>{remainingCount,number} სხვა</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "ყურადღებით გადახედე"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "მედია ფაილები ჩამოტვირთვას პარალელურად გააგრძელებს"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "მედია ფაილების აღდგენა შეჩერდა"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "ველოდებით ინტერნეტ კავშირს..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "გადატანის დროებით შეჩერება"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "ამ ანგარიშის გამოყენების გასაგრძელებლად შენს მობილურში Signal უნდა გახსნა. თუ შენს მობილურში Signal-ს არ გახსნი, მალე შენი ანგარიში წაიშლება. <learnMoreLink>გაიგე მეტი</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "მედია ფაილების აღდგენა ვერ მოხერხდა"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "შენს მოწყობილობას საკმარისი თავისუფალი ადგილი არ აქვს. გაათავისუფლე {diskSpaceAmount} ადგილი, რათა შენი მედია ფაილები აღადგინო."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "გაფართოება"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "სარეზერვო კოპიები"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "შიდა"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "გადაიტანე დაშიფრული სათადარიგო ასლი მეხსიერებაში და გაუშვი მასზე დადასტურების ნაკრები"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "დადასტურება"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "ბოლო იმპორტირება {date} -ში {time}-ზე"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Белгісіз контакт"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Белгісіз"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Белгісіз топ"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 мүше} other {{count,number} мүше}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (тағы {invitesCount,number} адам шақырылды)} other {{memberList} (тағы {invitesCount,number} адам шақырылды)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Топ мүшелері жоқ"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Бұл топта әзірге басқа мүшелер жоқ"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} және сіз"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} және {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} және сіз"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} және {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} және тағы <clickable>{remainingCount,number}</clickable> мүше} other {{member1}, {member2}, {member3} және <clickable>{remainingCount,number}</clickable> мүше}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} және тағы <clickable>{remainingCount,number}</clickable> мүше} other {{member1}, {member2}, {member3} және <clickable>{remainingCount,number}</clickable> мүше}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Мұқият тексеріңіз"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Мультимедиа фондық режимде жүктеп алына береді."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Мультимедианы қалпына келтіру процесі уақытша тоқтады"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Интернет байланысының қосылғаны күтіліп жатыр..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Тасымалдауды кідірту"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Осы аккаунтты әрі қарай пайдалана беру үшін телефоныңызда Signal қолданбасын ашыңыз. Телефоныңызда Signal қолданбасын ашпасаңыз, аккаунтыңыз көп ұзамай жойылады. <learnMoreLink>Толық ақпарат</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Мультимедианы қалпына келтіру мүмкін емес"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Құрылғыңыздағы бос орын жеткіліксіз. Мультимедианы қалпына келтіру үшін {diskSpaceAmount} орын босатыңыз."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Кеңейту"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Резервтік көшірмелер"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Ішкі"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Шифрланған сақтық көшірмені жадқа экспорттаңыз және оның жарамдылығын тексеріңіз"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Тексеру"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Соңғы импорттау уақыты: {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "បញ្ជីទំនាក់ទំនងដែលមិនស្គាល់"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "មិនស្គាល់"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "ក្រុមមិនស្គាល់"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, other {សមាជិក {count,number} នាក់}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, other {{memberList} (+{invitesCount,number} ត្រូវបានអញ្ជើញ)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "មិនមានសមាជិកក្រុមទេ"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "មិនមានសមាជិកក្រុមផ្សេងទៀតនៅឡើយទេ"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} និងអ្នក"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} និង {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} និងអ្នក"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} និង {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}, {member2}, {member3} និង <clickable>{remainingCount,number} នាក់ផ្សេងទៀត</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}, {member2}, {member3} និង <clickable>{remainingCount,number} នាក់ផ្សេងទៀត</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "ពិនិត្យមើលដោយយកចិត្តទុកដាក់"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "មេឌៀនឹងបន្តទាញយកនៅផ្ទៃខាងក្រោយ"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "ការស្ដារមេឌៀត្រូវបានផ្អាក"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "កំពុងរង់ចាំការតភ្ជាប់អ៊ីនធឺណិត…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "ផ្អាកការផ្ទេរ"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "អ្នកត្រូវតែបើក Signal នៅលើទូរសព្ទរបស់អ្នក ដើម្បីបន្តប្រើប្រាស់គណនីនេះ។ ប្រសិនបើអ្នកមិនបើក Signal នៅលើទូរសព្ទរបស់អ្នកទេ គណនីរបស់អ្នកនឹងត្រូវបានលុបចោលក្នុងពេលឆាប់ៗនេះ។ <learnMoreLink>ស្វែងយល់បន្ថែម</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "មិនអាចស្តារមេឌៀឡើងវិញបានទេ"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "ឧបករណ៍របស់អ្នកមិនមានទំហំផ្ទុកទំនេរគ្រប់គ្រាន់ទេ។ បង្កើនទំហំផ្ទុក {diskSpaceAmount} ដើម្បីស្ដារមេឌៀរបស់អ្នកមកវិញ។"
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "ពង្រីក"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "ការបម្រុងទុក"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "ផ្ទៃក្នុង"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "នាំចេញការបម្រុងទុកដែលបានអ៊ីនគ្រីបទៅអង្គចងចាំ ហើយធ្វើការផ្ទៀងផ្ទាត់លើវា"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "ផ្ទៀងផ្ទាត់"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "ការនាំចូលចុងក្រោយនៅ {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "ತಿಳಿದಿಲ್ಲದ ಸಂಪರ್ಕ"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "ತಿಳಿದಿಲ್ಲ"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "ತಿಳಿದಿಲ್ಲದ ಗುಂಪು"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 ಸದಸ್ಯ} other {{count,number} ಸದಸ್ಯರು}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} ಆಹ್ವಾನಿಸಲಾಗಿದೆ)} other {{memberList} (+{invitesCount,number} ಅವರನ್ನು ಆಹ್ವಾನಿಸಲಾಗಿದೆ)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "ಗುಂಪಿನ ಯಾವುದೇ ಸದಸ್ಯರಿಲ್ಲ"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "ಈವರೆಗೂ ಗುಂಪಿನ ಬೇರೆ ಯಾವುದೇ ಸದಸ್ಯರು ಇಲ್ಲ"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} ಮತ್ತು ನೀವು"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} ಮತ್ತು {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} ಮತ್ತು ನೀವು"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} ಮತ್ತು {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} ಮತ್ತು <clickable>{remainingCount,number} ಇತರ</clickable>} other {{member1}, {member2}, {member3} ಮತ್ತು <clickable>{remainingCount,number} ಇತರರು</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} ಮತ್ತು <clickable>{remainingCount,number} ಇತರ</clickable>} other {{member1}, {member2}, {member3} ಮತ್ತು <clickable>{remainingCount,number} ಇತರರು</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "ಎಚ್ಚರಿಕೆಯಿಂದ ಪರಿಶೀಲಿಸಿ"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "ಬ್ಯಾಕ್ ಗ್ರೌಂಡ್ ನಲ್ಲಿ ಮೀಡಿಯಾ ಡೌನ್ ಲೋಡ್ ಮುಂದುವರೆಯುತ್ತದೆ"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "ಮೀಡಿಯಾ ರಿಸ್ಟೋರ್ ಮಾಡುವುದನ್ನು ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕಕ್ಕಾಗಿ ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "ವರ್ಗಾವಣೆಯನ್ನು ವಿರಾಮಗೊಳಿಸಿ"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "ಈ ಖಾತೆ ಬಳಸುವುದನ್ನು ಮುಂದುವರಿಸಲು ನಿಮ್ಮ ಫೋನ್ನಲ್ಲಿ ನೀವು Signal ಅನ್ನು ತೆರೆಯಬೇಕು. ನಿಮ್ಮ ಫೋನ್ನಲ್ಲಿ ನೀವು Signal ಅನ್ನು ತೆರೆಯದಿದ್ದರೆ, ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಶೀಘ್ರದಲ್ಲೇ ಅಳಿಸಲಾಗುವುದು. <learnMoreLink>ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "ಮೀಡಿಯಾವನ್ನು ರಿಸ್ಟೋರ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "ನಿಮ್ಮ ಸಾಧನವು ಸಾಕಷ್ಟು ಮುಕ್ತ ಸ್ಥಳಾವಕಾಶವನ್ನು ಹೊಂದಿಲ್ಲ. ನಿಮ್ಮ ಮೀಡಿಯಾವನ್ನು ರಿಸ್ಟೋರ್ ಮಾಡಲು {diskSpaceAmount} ಸ್ಥಳಾವಕಾಶವನ್ನು ಮುಕ್ತಗೊಳಿಸಿ.\n\n"
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "ವಿಸ್ತರಿಸಿ"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "ಬ್ಯಾಕಪ್ಗಳು"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "ಆಂತರಿಕ"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "ಎನ್ಕ್ರಿಪ್ಟ್ ಆಗಿರುವ ಬ್ಯಾಕಪ್ ಅನ್ನು ಮೆಮೊರಿಗೆ ಎಕ್ಸ್ಪೋರ್ಟ್ ಮಾಡಿ ಮತ್ತು ಅದರ ಮೇಲೆ ವ್ಯಾಲಿಡೇಶನ್ ಸೂಟ್ ಅನ್ನು ರನ್ ಮಾಡಿ"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "ಮೌಲ್ಯೀಕರಿಸಿ"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "ಈ ಹಿಂದೆ ಇಂಪೋರ್ಟ್ ಮಾಡಿದ್ದು: {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "알 수 없는 연락처"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "알 수 없음"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "알 수 없는 그룹"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, other {멤버 {count,number}명}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, other {{memberList}(+{invitesCount,number}명 초대됨)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "그룹 멤버 없음"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "아직 다른 그룹 멤버가 없습니다"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "나와 {member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1}, {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "나와 {member1}, {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2}, {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}, {member2}, {member3}, 외 <clickable>{remainingCount,number} 명</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}, {member2}, {member3}, 외 <clickable>{remainingCount,number} 명</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "신중하게 검토하세요"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "미디어가 백그라운드에서 계속 다운로드됩니다."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "미디어 복원 일시 중지됨"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "인터넷 연결을 기다리는 중…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "전송 일시 중지"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "이 계정을 계속 사용하려면 휴대폰에서 Signal을 열어야 합니다. 휴대폰에서 Signal을 열지 않으면 계정이 곧 삭제됩니다. <learnMoreLink>자세히 알아보기</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "미디어를 복원할 수 없음"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "기기에 여유 공간이 부족합니다. 미디어를 복원하려면 {diskSpaceAmount}의 여유 공간을 확보하세요."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "확장"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "백업"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "내부"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "암호화된 백업을 메모리로 내보내고, 해당 백업에 유효성 검사 제품군을 실행합니다"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "유효성 검사"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "마지막으로 가져온 시간: {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Белгисиз байланыш"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Белгисиз"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Белгисиз топ"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, other {{count,number} мүчө}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, other {{memberList} (+{invitesCount,number} чакырылды)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Топ мүчөлөрү жок"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Азырынча эч ким жок"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} жана сиз"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} жана {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} жана сиз"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} жана дагы {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}, {member2}, {member3}, жана <clickable>{remainingCount,number} башка</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}, {member2}, {member3}, жана <clickable>{remainingCount,number} башка</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Этият болуңуз"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Медиа файлдар фондо жүктөлө берет"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Калыбына келтирүү тындырылды"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Internet байланышы күтүлүүдө..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Өткөрүүнү тындыруу"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Бул аккаунтту колдоно берүү үчүн телефонуңуздан Signal'ды ачышыңыз керек. Ачпасаңыз, аккаунтуңуз жакында өчүп калат. <learnMoreLink>Кененирээк маалымат</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Медиа файлдар калыбына келген жок"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Түзмөгүңүздө бош орун калбай калды. Медиа файлдарыңызды калыбына келтирүү үчүн сактоо мейкиндигинен {diskSpaceAmount} орун бошотуңуз."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Кеңейтүү"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Камдык көчүрмөлөр"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Ички"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Шифрленген камдык көчүрмөнү эстутумга экспорттоо жана анда текшерүү топтомун иштетүү"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Текшерүү"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Акыркы импортоо {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Nežinomas adresatas"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Nežinoma"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Nežinoma grupė"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 narys} few {{count,number} nariai} many {{count,number} nario} other {{count,number} narių}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} pakviestas žmogus)} few {{memberList} (+{invitesCount,number} pakviesti žmonės)} many {{memberList} (+{invitesCount,number} pakviestų žmonių)} other {{memberList} (+{invitesCount,number} pakviestų žmonių)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Grupėje narių nėra"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Kitų grupės narių dar nėra"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} ir jūs"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} ir {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} ir jūs"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} ir {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} ir dar <clickable>{remainingCount,number} žmogus</clickable>} few {{member1}, {member2}, {member3} ir dar <clickable>{remainingCount,number} žmonės</clickable>} many {{member1}, {member2}, {member3} ir dar <clickable>{remainingCount,number} žmonių</clickable>} other {{member1}, {member2}, {member3} ir dar <clickable>{remainingCount,number} žmonių</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} ir dar <clickable>{remainingCount,number} žmogus</clickable>} few {{member1}, {member2}, {member3} ir dar <clickable>{remainingCount,number} žmonės</clickable>} many {{member1}, {member2}, {member3} ir dar <clickable>{remainingCount,number} žmonių</clickable>} other {{member1}, {member2}, {member3} ir dar <clickable>{remainingCount,number} žmonių</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Atidžiai peržiūrėkite"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Įrašai ir toliau bus atsisiunčiami fone"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Įrašų atkūrimas pristabdytas"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Laukiama interneto ryšio…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Pristabdyti perkėlimą"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Jei norite toliau naudoti šią paskyrą, telefone turite atidaryti „Signal“. Jei neatidarysite „Signal“ savo telefone, jūsų paskyra netrukus bus pašalinta. <learnMoreLink>Sužinoti daugiau</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Įrašų atkurti neįmanoma"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Jūsų įrenginyje trūksta vietos. Atlaisvinkite iki {diskSpaceAmount} vietos, kad galėtumėte atkurti savo įrašus."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Išskleisti"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Atsarginės kopijos"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Vidiniai"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Eksportuokite užšifruotą atsarginę kopiją į atmintį ir paleiskite joje patvirtinimo rinkinį"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Patvirtinti"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Paskutinis importavimas {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Nezināma kontaktpersona"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Nezināms"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Nezināma grupa"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, zero {{count,number} dalībnieki} one {1 dalībnieks} other {{count,number} dalībnieki}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, zero {{memberList} (+{invitesCount,number} uzaicināti)} one {{memberList} (+{invitesCount,number} uzaicināts)} other {{memberList} (+{invitesCount,number} uzaicināti)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Nav grupas dalībnieku"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Citu grupas dalībnieku vēl nav"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} un jūs"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} un {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} un jūs"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} un {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, zero {{member1}, {member2}, {member3} un <clickable>{remainingCount,number} citi</clickable>} one {{member1}, {member2}, {member3} un <clickable>{remainingCount,number} cits</clickable>} other {{member1}, {member2}, {member3} un <clickable>{remainingCount,number} citi</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, zero {{member1}, {member2}, {member3} un <clickable>{remainingCount,number} citi</clickable>} one {{member1}, {member2}, {member3} un <clickable>{remainingCount,number} cits</clickable>} other {{member1}, {member2}, {member3} un <clickable>{remainingCount,number} citi</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Rūpīgi pārbaudiet"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Multivides lejupielāde turpināsies fonā"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Multivides atjaunošana ir apturēta"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Gaida interneta savienojumu…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Apturēt pārsūtīšanu"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Lai turpinātu izmantot šo kontu, tālrunī ir jāatver Signal. Ja tālrunī neatvērsiet programmu Signal, jūsu konts drīz tiks dzēsts. <learnMoreLink>Uzzināt vairāk</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Nevar atjaunot multividi"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Ierīces krātuvē nepietiek brīvas vietas. Lai atjaunotu multividi, atbrīvojiet {diskSpaceAmount} vietas krātuvē ."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Izvērst"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Rezerves kopijas"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Iekšējā"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Eksportējiet šifrētu rezerves kopiju atmiņā un palaidiet tās validācijas komplektu"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Validēt"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Pēdējoreiz importēts {date}, plkst. {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Непознат контакт"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Непознато"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Непозната група"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {{count,number} член} other {{count,number} членови}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} поканет)} other {{memberList} (+{invitesCount,number} поканети)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Нема членови на групата"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Сè уште нема други членови во групата"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} и вие"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} и {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} и вие"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} и {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} и <clickable>{remainingCount,number} друг</clickable>} other {{member1}, {member2}, {member3} и <clickable>{remainingCount,number} други</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} и <clickable>{remainingCount,number} друг</clickable>} other {{member1}, {member2}, {member3} и <clickable>{remainingCount,number} други</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Внимателно прегледајте"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Медиумските датотеки ќе продолжат да се преземаат во заднина"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Враќањето на медиумски датотеки е паузирано"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Се чека поврзување на интернет…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Паузирајте го преносот"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Треба да го отворите Signal на вашиот телефон за да продолжите да ја користите оваа корисничка сметка. Ако не го отворите Signal на вашиот телефон, вашата корисничка сметка ќе биде избришана наскоро. <learnMoreLink>Дознајте повеќе</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Не може да се вратат медиумските датотеки"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "На вашиот уред нема доволно слободен простор. Ослободете простор од {diskSpaceAmount} за да ги вратите вашите медиумски датотеки."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Прошири"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Резервни копии"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Внатрешнo"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Извези ја целосна шифрираната резервна копија во меморијата и спроведи пакет за валидација"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Валидирај"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Последен внес на {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "അജ്ഞാത കോൺടാക്ട്"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "അജ്ഞാതം"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "അജ്ഞാത ഗ്രൂപ്പ്"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {{count,number} അംഗം} other {{count,number} അംഗങ്ങൾ}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} ക്ഷണിച്ചു)} other {{memberList} (+{invitesCount,number} ക്ഷണിച്ചു)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "ഗ്രൂപ്പ് അംഗങ്ങളൊന്നുമില്ല"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "മറ്റ് ഗ്രൂപ്പ് അംഗങ്ങളൊന്നും ഇതുവരെ ഇല്ല"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} എന്നയാളും നിങ്ങളും"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1}, {member2} എന്നിവർ"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2}, എന്നിവരും നിങ്ങളും"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2}, {member3} എന്നിവർ"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} എന്നിവരും <clickable>മറ്റ്{remainingCount,number} ആളും</clickable>} other {{member1}, {member2}, {member3} എന്നിവരും <clickable>മറ്റ്{remainingCount,number} പേരും</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, എന്നിവരും <clickable>മറ്റ്{remainingCount,number} ആളും</clickable>} other {{member1}, {member2}, {member3} എന്നിവരും <clickable>മറ്റ്{remainingCount,number} പേരും</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "ശ്രദ്ധാപൂർവ്വം അവലോകനം ചെയ്യുക"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "പശ്ചാത്തലത്തിൽ മീഡിയ ഡൗൺലോഡ് ചെയ്യുന്നത് തുടരും"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "മീഡിയ പുനഃസ്ഥാപിക്കുന്നത് താൽക്കാലികമായി നിർത്തി"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "ഇൻ്റർനെറ്റ് കണക്ഷനായി കാത്തിരിക്കുന്നു..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "കൈമാറ്റം താൽക്കാലികമായി നിർത്തുക"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "ഈ അക്കൗണ്ട് ഉപയോഗിക്കുന്നത് തുടരാൻ നിങ്ങളുടെ ഫോണിൽ Signal തുറക്കണം. നിങ്ങളുടെ ഫോണിൽ Signal തുറന്നില്ലെങ്കിൽ, നിങ്ങളുടെ അക്കൗണ്ട് ഉടൻ തന്നെ ഇല്ലാതാക്കപ്പെടും. <learnMoreLink>കൂടുതലറിയുക</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "മീഡിയ പുനഃസ്ഥാപിക്കാനാവില്ല"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "നിങ്ങളുടെ ഉപകരണത്തിൽ മതിയായ ഇടമില്ല. നിങ്ങളുടെ മീഡിയ പുനഃസ്ഥാപിക്കാൻ {diskSpaceAmount} ഇടം സൃഷ്ടിക്കുക."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "വികസിപ്പിക്കുക"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "ബാക്കപ്പുകൾ"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "ഇന്റേണല്"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "എൻക്രിപ്റ്റ് ചെയ്ത ബാക്കപ്പ്, മെമ്മറിയിലേക്ക് എക്സ്പോർട്ട് ചെയ്ത് അതിൽ വാലിഡേഷൻ സ്യൂട്ട് റൺ ചെയ്യുക"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "പരിശോധിച്ചുറപ്പിക്കുക"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "അവസാനം ഇമ്പോർട്ട് ചെയ്തത് {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "अज्ञात संपर्क"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "अज्ञात"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "अज्ञात गट"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 सदस्य} other {{count,number} सदस्य}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} निमंत्रित)} other {{memberList} (+{invitesCount,number} निमंत्रित)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "एकही गट सदस्य नाही"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "अद्याप इतर कोणतेही गट सदस्य नाहीत"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} आणि तुम्ही"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} आणि {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2}, आणि तुम्ही"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2}, आणि {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, आणि <clickable>आणखी{remainingCount,number} </clickable>} other {{member1}, {member2}, {member3}, आणि <clickable>आणखी{remainingCount,number} </clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, आणि <clickable>आणखी{remainingCount,number} </clickable>} other {{member1}, {member2}, {member3}, आणि <clickable>आणखी{remainingCount,number} </clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "काळजीपूर्वक पुनरावलोकन करा"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "मीडिया मागे डाऊनलोड होत राहील"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "मिडीया पुर्नस्थापित करणे थांबवले"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "इंटरनेट कनेक्शनची वाट पाहात आहे..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "हस्तांतरणाला विराम द्या"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "तुम्ही तुमच्या फोनवर Signal उघडून हे खाते वापरत राहणे आवश्यक आहे. जर तुम्ही तुमच्या फोनवर Signal उघडले नाहीत, तर तुमचे खाते लवकरच हटवले जाईल. <learnMoreLink>अधिक जाणून घ्या</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "मिडीया पुर्नस्थापित करू शकत नाही"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "आपल्या डिव्हाइसमध्ये पुरेशी मोकळी जागा नाही. आपला मिडीया पुर्नस्थापित करण्यासाठी {diskSpaceAmount} जागा मोकळी करा."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "विस्तारित करा"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "बॅकअप"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "अंतर्गत"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "कूटबद्ध केलेला बॅकअप मेमरीमध्ये पाठवा आणि त्यावर व्हॅलिडेशन सूट चालवा"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "व्हॅलिडेट करा"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "{date} {time} रोजी शेवटची आयात"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Kenalan tidak diketahui"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Tidak diketahui"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Kumpulan tidak diketahui"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, other {{count,number} ahli}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, other {{memberList} (+{invitesCount,number} dijemput)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Tiada ahli kumpulan"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Tiada ahli kumpulan lain setakat ini"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} dan anda"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} dan {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} dan anda"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} dan {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}, {member2}, {member3} dan <clickable>{remainingCount,number} yang lain</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}, {member2}, {member3} dan <clickable>{remainingCount,number} yang lain</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Semak dengan teliti"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Media akan terus memuat turun di latar belakang"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Pemulihan media dijeda"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Menunggu sambungan Internet..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Jeda pemindahan"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Anda mesti membuka Signal di telefon untuk terus menggunakan akaun ini. Jika anda tidak membuka Signal di telefon, akaun anda akan dipadam tidak lama lagi. <learnMoreLink>Ketahui lagi</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Tidak dapat memulihkan media"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Peranti anda tidak mempunyai ruang yang cukup. Kosongkan {diskSpaceAmount} ruang untuk memulihkan media anda."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Kembangkan"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Sandaran"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Dalaman"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Eksport sandaran yang disulitkan ke memori dan jalankan set pengesahan ke atasnya"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Sahkan"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Terakhir diimport pada {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "မသိသော အဆက်အသွယ်"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "မသိရှိ"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "မသိသော အဖွဲ့"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, other {မန်ဘာ {count,number} ဦး}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, other {{memberList} (+{invitesCount,number} အား ဖိတ်ကြားထားသည်)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "အဖွဲ့၀င်များမရှိပါ"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "အခြားအဖွဲ့၀င်များ မရှိသေးပါ"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} နှင့် သင်"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} နှင့် {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1} ၊ {member2} နှင့် သင်"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1} ၊ {member2} နှင့် {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1} ၊ {member2} ၊ {member3} နှင့် <clickable>အခြား{remainingCount,number} ယောက်</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1} ၊ {member2} ၊ {member3} နှင့် <clickable>အခြား{remainingCount,number} ယောက်</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "သေချာပြန်လည်စစ်ဆေးပါ"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "မီဒီယာသည် နောက်ခံတွင် ဆက်လက်ဒေါင်းလုဒ်လုပ်ပါမည်"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "မီဒီယာ ပြန်လည်ရယူခြင်းကို ခေတ္တရပ်ထားသည်"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "အင်တာနက်ချိတ်ဆက်မှုကို စောင့်ဆိုင်းနေသည်..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "လွှဲပြောင်းမှုကို ခေတ္တရပ်ပါ"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "ဤအကောင့်ကို ဆက်လက်အသုံးပြုရန် သင့်ဖုန်းတွင် Signal ကိုဖွင့်ရပါမည်။ သင့်ဖုန်းတွင် Signal မဖွင့်ပါက သင့်အကောင့်ကို မကြာမီ ဖျက်သွားပါမည်။ <learnMoreLink>ပိုမိုလေ့လာရန်</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "မီဒီယာကို ပြန်လည်ရယူ၍မရပါ"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "သင့်စက်တွင် နေရာလွတ် အလုံအလောက်မရှိပါ။ သင့်မီဒီယာကိုပြန်လည်ရယူရန် နေရာလွတ် {diskSpaceAmount} ထွက်လာအောင် ရှင်းထုတ်ပါ။"
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "ဖြန့်ရန်"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "အရန်သိမ်းဆည်းမှုများ"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "အတွင်းပိုင်း"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "ကုဒ်ပြောင်းဝှက်ထားသော ဘက်ခ်အပ်ကို မန်မိုရီသို့ပို့ပြီး ၎င်းတွင် မှန်ကန်ကြောင်းအတည်ပြုပါ"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "အတည်ပြုရန်"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "{date} {time} တွင် နောက်ဆုံးထည့်သွင်းခဲ့သည်"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Ukjent kontakt"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Ukjent"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Ukjent gruppe"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 medlem} other {{count,number} medlemmer}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invitert)} other {{memberList} (+{invitesCount,number} inviterte)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Ingen gruppemedlemmer"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Ingen andre medlemmer ennå"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} og deg"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} og {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} og deg"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} og {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} og <clickable>{remainingCount,number} annen</clickable>} other {{member1}, {member2}, {member3} og <clickable>{remainingCount,number} andre</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} og <clickable>{remainingCount,number} annen</clickable>} other {{member1}, {member2}, {member3} og <clickable>{remainingCount,number} andre</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Se nøye gjennom"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Mediefilene lastes ned i bakgrunnen"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Gjenoppretting satt på pause"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Venter på internettilkobling …"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Sett overføring på pause"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Du må åpne Signal på telefonen for å fortsette å bruke denne kontoen. Kontoen slettes snart dersom du ikke åpner Signal på telefonen din. <learnMoreLink>Les mer</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Kan ikke gjenopprette mediefilene"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Enheten har ikke nok lagringsplass. Slett {diskSpaceAmount} for å gjenopprette mediefilene dine."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Ekspander"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Sikkerhetskopiering"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Internt"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Eksporter en kryptert sikkerhetskopi til minnet og kjør bekreftelse av den"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Bekreft"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Siste import {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Onbekend contact"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Onbekend"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Onbekende groep"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {{count,number} lid} other {{count,number} leden}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} uitgenodigd)} other {{memberList} (+{invitesCount,number} uitgenodigd)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Geen groepsleden"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Nog geen andere groepsleden"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} en jij"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} en {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} en jij"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} en {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} en <clickable>{remainingCount,number} ander</clickable>} other {{member1}, {member2}, {member3} en <clickable>{remainingCount,number} anderen</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} en <clickable>{remainingCount,number} ander</clickable>} other {{member1}, {member2}, {member3} en <clickable>{remainingCount,number} anderen</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Beoordeel zorgvuldig"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Media worden op de achtergrond verder gedownload"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Media herstellen gepauzeerd"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Wachten op internetverbinding…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Overzetten pauzeren"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Open Signal op je telefoon om dit account te kunnen blijven gebruiken. Als je Signal niet opent op je telefoon wordt je account binnenkort verwijderd. <learnMoreLink>Meer informatie</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Kan media niet herstellen"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Je apparaat heeft niet genoeg vrije ruimte. Maak {diskSpaceAmount} ruimte vrij om je media te herstellen."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Vergroten"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Back-ups"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Intern"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Versleutelde back-up exporteren naar geheugen en de validatiesuite erop uitvoeren"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Valideren"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Laatst geïmporteerd op {date} om {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "ਅਣਜਾਣ ਸੰਪਰਕ"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "ਅਣਜਾਣ"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "ਅਣਜਾਣ ਗਰੁੱਪ"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 ਮੈਂਬਰ} other {{count,number} ਮੈਂਬਰ}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} ਨੂੰ ਸੱਦਿਆ ਗਿਆ)} other {{memberList} (+{invitesCount,number} ਨੂੰ ਸੱਦਿਆ ਗਿਆ)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "ਕੋਈ ਗਰੁੱਪ ਮੈਂਬਰ ਨਹੀਂ ਹੈ"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "ਹਾਲੇ ਤੱਕ ਕੋਈ ਹੋਰ ਗਰੁੱਪ ਮੈਂਬਰ ਨਹੀਂ ਹੈ"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} ਅਤੇ ਤੁਸੀਂ"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} ਅਤੇ {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2}, ਅਤੇ ਤੁਸੀਂ"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2}, ਅਤੇ {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, ਅਤੇ <clickable>{remainingCount,number} ਹੋਰ</clickable>} other {{member1}, {member2}, {member3}, ਅਤੇ <clickable>{remainingCount,number} ਹੋਰ</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, ਅਤੇ <clickable>{remainingCount,number} ਹੋਰ</clickable>} other {{member1}, {member2}, {member3}, ਅਤੇ <clickable>{remainingCount,number} ਹੋਰ</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "ਧਿਆਨ ਨਾਲ ਸਮੀਖਿਆ ਕਰੋ"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "ਮੀਡੀਆ ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਡਾਊਨਲੋਡ ਹੁੰਦਾ ਰਹੇਗਾ"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "ਮੀਡੀਆ ਰੀਸਟੋਰ ਕਰਨਾ ਰੋਕਿਆ ਗਿਆ"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "ਇੰਟਰਨੈੱਟ ਕਨੈਕਸ਼ਨ ਦੀ ਉਡੀਕ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "ਟ੍ਰਾਂਸਫਰ ਨੂੰ ਰੋਕੋ"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "ਇਸ ਖਾਤੇ ਦੀ ਵਰਤੋਂ ਜਾਰੀ ਰੱਖਣ ਲਈ ਤੁਹਾਨੂੰ ਆਪਣੇ ਫ਼ੋਨ 'ਤੇ Signal ਖੋਲ੍ਹਣਾ ਪਵੇਗਾ। ਜੇਕਰ ਤੁਸੀਂ ਆਪਣੇ ਫ਼ੋਨ 'ਤੇ Signal ਨਹੀਂ ਖੋਲ੍ਹਦੇ, ਤਾਂ ਤੁਹਾਡਾ ਖਾਤਾ ਜਲਦੀ ਹੀ ਮਿਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ। <learnMoreLink>ਹੋਰ ਜਾਣੋ</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "ਮੀਡੀਆ ਰੀਸਟੋਰ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਵਿੱਚ ਲੋੜੀਂਦੀ ਖਾਲੀ ਥਾਂ ਨਹੀਂ ਹੈ। ਆਪਣਾ ਮੀਡੀਆ ਰੀਸਟੋਰ ਕਰਨ ਲਈ {diskSpaceAmount} ਥਾਂ ਖਾਲੀ ਕਰੋ।"
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "ਫੈਲਾਓ"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "ਬੈਕਅੱਪ"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "ਅੰਦਰੂਨੀ"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "ਇਨਕ੍ਰਿਪਟਡ ਬੈਕਅੱਪ ਨੂੰ ਮੈਮੋਰੀ ਵਿੱਚ ਐਕਸਪੋਰਟ ਕਰੋ ਅਤੇ ਇਸ 'ਤੇ ਵੈਲੀਡੇਸ਼ਨ ਸੂਟ ਚਲਾਓ"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "ਪ੍ਰਮਾਣਿਤ ਕਰੋ"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "ਆਖਰੀ ਵਾਰ {date} {time} ਇੰਮਪੋਰਟ ਕੀਤਾ ਗਿਆ"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Contato desconhecido"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Desconhecido"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Grupo desconhecido"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 membro} other {{count,number} membros}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+ {invitesCount,number} convidado)} other {{memberList} (+ {invitesCount,number} convidados)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Sem membros no grupo"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Ainda não há membros nesse grupo"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} e você"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} e {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} e você"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} e {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} e mais <clickable>{remainingCount,number} pessoa</clickable>} other {{member1}, {member2}, {member3} e outras <clickable>{remainingCount,number} pessoas</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} e mais <clickable>{remainingCount,number} pessoa</clickable>} other {{member1}, {member2}, {member3} e outras <clickable>{remainingCount,number} pessoas</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Analise com atenção"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "O download de mídia continuará em segundo plano"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Restauração de arquivos de mídia em pausa"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Aguardando a conexão com a Internet…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Interromper transferência"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Você precisa abrir o Signal no seu telefone para continuar usando esta conta. Caso contrário, sua conta será excluída em breve. <learnMoreLink>Saiba mais</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Não é possível restaurar os arquivos de mídia"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Seu dispositivo não tem espaço livre suficiente. Libere {diskSpaceAmount} de espaço para restaurar seus arquivos de mídia."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Expandir"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Backups"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Interno"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Exporte o backup criptografado para a memória e execute o pacote de validação"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Validar"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Última importação feita em {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Contacto desconhecido"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Desconhecido"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Grupo desconhecido"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 membro} other {{count,number} membros}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} convidado)} other {{memberList} (+{invitesCount,number} convidados)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Não há membros do grupo"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Ainda não há outros membros do grupo"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} e você"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} e {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} e você"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} e {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} e mais <clickable>{remainingCount,number}</clickable>} other {{member1}, {member2}, {member3} e mais <clickable>{remainingCount,number}</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} e mais <clickable>{remainingCount,number}</clickable>} other {{member1}, {member2}, {member3} e mais <clickable>{remainingCount,number}</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Verifique cuidadosamente"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Os ficheiros multimédia continuarão a ser descarregados em segundo plano"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Restauro dos ficheiros em pausa"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "À espera de ligação à internet…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Pausar transferência"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Tem de abrir o Signal no seu telemóvel para continuar a usar esta conta. Se não abrir o Signal no seu telemóvel, a sua conta será eliminada em breve. <learnMoreLink>Saiba mais</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Não é possível restaurar os ficheiros"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "O seu dispositivo não tem espaço livre suficiente. Liberte até {diskSpaceAmount} de espaço para restaurar os seus ficheiros."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Expandir"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Cópias de segurança"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Interno"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Exportar a cópia de segurança encriptada para a memória e executar o conjunto de validação"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Validar"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Última importação feita em {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Contact necunoscut"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Necunoscut"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Grup necunoscut"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 membru} few {{count,number} membri} other {{count,number} de membri}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invitat)} few {{memberList} (+{invitesCount,number} invitați)} other {{memberList} (+{invitesCount,number} de invitați)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Niciun membru al grupului"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Niciun alt membru al grupului încă"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} și tu"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} și {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} și tu"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} și {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} și <clickable>încă {remainingCount,number}</clickable>} few {{member1}, {member2}, {member3} și <clickable>alte {remainingCount,number}</clickable>} other {{member1}, {member2}, {member3} și <clickable>alte {remainingCount,number}</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, și <clickable>încă {remainingCount,number}</clickable>} few {{member1}, {member2}, {member3}, și <clickable>alte {remainingCount,number}</clickable>} other {{member1}, {member2}, {member3}, și <clickable>alte {remainingCount,number}</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Examinează cu atenție"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Fișierele vor continua să se descarce în fundal"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Restaurarea fișierelor, întreruptă"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Se așteaptă conectarea la Internet..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Întrerupe transferul"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Trebuie să deschizi Signal pe telefon pentru a continua să utilizezi acest cont. Dacă nu deschizi Signal pe telefon, contul tău va fi șters în curând. <learnMoreLink>Află mai multe</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Nu se pot restaura fișierele media"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Dispozitivul tău nu are suficient spațiu liber. Eliberează {diskSpaceAmount} spațiu și restaurează-ți fișierele."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Extinde"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Backup-uri"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Internă"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Exportă backup-ul criptat în memorie și rulează suita de validare pe acesta"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Validează"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Ultimul import: {date} la {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Неизвестный контакт"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Неизвестно"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Неизвестная группа"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {{count,number} участник} few {{count,number} участника} many {{count,number} участников} other {{count,number} участника}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} приглашён)} few {{memberList} (+{invitesCount,number} приглашены)} many {{memberList} (+{invitesCount,number} приглашены)} other {{memberList} (+{invitesCount,number} приглашены)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Нет участников группы"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Других участников группы пока нет"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} и вы"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} и {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} и вы"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} и {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} и ещё <clickable>{remainingCount,number}</clickable>} few {{member1}, {member2}, {member3} и ещё <clickable>{remainingCount,number}</clickable>} many {{member1}, {member2}, {member3} и ещё <clickable>{remainingCount,number}</clickable>} other {{member1}, {member2}, {member3} и ещё <clickable>{remainingCount,number}</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} и ещё <clickable>{remainingCount,number}</clickable>} few {{member1}, {member2}, {member3} и ещё <clickable>{remainingCount,number}</clickable>} many {{member1}, {member2}, {member3} и ещё <clickable>{remainingCount,number}</clickable>} other {{member1}, {member2}, {member3} и ещё <clickable>{remainingCount,number}</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Внимательно проверьте"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Медиафайлы будут по-прежнему загружаться в фоновом режиме"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Восстановление медиафайлов приостановлено"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Ожидаем подключение к интернету..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Приостановить трансфер"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Чтобы продолжить использование этой учётной записи, необходимо открыть Signal на телефоне. Если вы не откроете Signal на телефоне, ваша учётная запись будет вскоре удалена. <learnMoreLink>Узнать больше</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Не удается восстановить медиафайлы"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "На вашем устройстве недостаточно места на диске. Освободите {diskSpaceAmount} места для восстановления медиафайлов."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Развернуть"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Резервные копии"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Внутренние"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Экспортируйте зашифрованную резервную копию в память и запустите для нее набор проверок"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Проверить"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Последний импорт: {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Neznámy kontakt"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Neznáme"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Neznáma skupina"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {Jeden člen} few {{count,number} členovia} many {{count,number} člena} other {{count,number} členov}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} pozvaný)} few {{memberList} (+{invitesCount,number} pozvaní)} many {{memberList} (+{invitesCount,number} pozvaného)} other {{memberList} (+{invitesCount,number} pozvaných)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Žiadni členovia skupiny"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Zatiaľ tu nie sú žiadni ďalší členovia skupiny"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} a vy"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} a {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} a vy"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} a {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} a <clickable>{remainingCount,number} ďalší</clickable>} few {{member1}, {member2}, {member3} a <clickable>{remainingCount,number} ďalší</clickable>} many {{member1}, {member2}, {member3} a <clickable>{remainingCount,number} ďalšieho</clickable>} other {{member1}, {member2}, {member3} a <clickable>{remainingCount,number} ďalších</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} a <clickable>{remainingCount,number} ďalší</clickable>} few {{member1}, {member2}, {member3} a <clickable>{remainingCount,number} ďalší</clickable>} many {{member1}, {member2}, {member3} a <clickable>{remainingCount,number} ďalšieho</clickable>} other {{member1}, {member2}, {member3} a <clickable>{remainingCount,number} ďalších</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Dôkladne skontrolujte"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Sťahovanie médií bude pokračovať na pozadí"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Obnovovanie médií bolo pozastavené"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Čaká sa na internetové pripojenie…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Pozastaviť prenos"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Ak chcete naďalej používať tento účet, musíte v telefóne otvoriť Signal. Ak tak neurobíte, váš účet bude čoskoro odstránený. <learnMoreLink>Zistiť viac</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Médiá nie je možné obnoviť"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Vo vašom zariadení nemáte dostatok voľného miesta. Ak chcete obnoviť svoje médiá, uvoľnite {diskSpaceAmount}."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Rozbaliť"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Zálohy"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Pokročilé"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Exportujte šifrovanú zálohu do pamäte a spustite na nej testovaciu súpravu"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Overiť"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Posledný import {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Neznan stik"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Neznano"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Neznana skupina"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 član_ica} two {{count,number} člana_ici} few {{count,number} člani_ce} other {{count,number} članov_ic}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} povabljen_a)} two {{memberList} (+{invitesCount,number} povabljena)} few {{memberList} (+{invitesCount,number} povabljeni)} other {{memberList} (+{invitesCount,number} povabljenih)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Brez članov skupine"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Drugih članov skupine še ni"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} in vi"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} in {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} in vi"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} in {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} in še <clickable>{remainingCount,number} drug</clickable>} two {{member1}, {member2}, {member3} in še <clickable>{remainingCount,number} druga</clickable>} few {{member1}, {member2}, {member3} in še <clickable>{remainingCount,number} drugi</clickable>} other {{member1}, {member2}, {member3} in še <clickable>{remainingCount,number} drugih</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} in še <clickable>{remainingCount,number} drug</clickable>} two {{member1}, {member2}, {member3} in še <clickable>{remainingCount,number} druga</clickable>} few {{member1}, {member2}, {member3} in še <clickable>{remainingCount,number} drugi</clickable>} other {{member1}, {member2}, {member3} in še <clickable>{remainingCount,number} drugih</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Skrbno preglejte"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Mediji se bodo še naprej prenašali v ozadju"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Obnovitev medijev je ustavljena"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Čakanje na internetno povezavo …"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Prekini prenos"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Če želite še naprej uporabljati ta račun, morate v telefonu odpreti aplikacijo Signal. Če Signala v telefonu ne odprete, bo vaš račun kmalu izbrisan. <learnMoreLink>Več o tem</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Ni mogoče obnoviti medijev"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Vaša naprava nima dovolj prostora. Sprostite {diskSpaceAmount} prostora za shranjevanje za obnovitev medijev."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Razširi"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Varnostne kopije"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Notranje"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Izvozite šifrirano varnostno kopijo v pomnilnik in na njej zaženite paket za preverjanje"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Preveri"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Zadnji uvoz: {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Kontakt i panjohur"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "I panjohur"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Grup i panjohur"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 anëtar} other {{count,number} anëtarë}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} i ftuar)} other {{memberList} (+{invitesCount,number} të ftuar)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Nuk ka anëtarë grupi"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Nuk ka ende anëtarë të tjerë të grupit"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} dhe ti"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} dhe {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} dhe ti"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1},{member2} dhe {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} dhe <clickable>{remainingCount,number} tjetër</clickable>} other {{member1}, {member2}, {member3} dhe <clickable>{remainingCount,number} të tjerë</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} dhe <clickable>{remainingCount,number} tjetër</clickable>} other {{member1}, {member2}, {member3} dhe <clickable>{remainingCount,number} të tjerë</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Rishqyrto me kujdes"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Media do të vazhdojë të shkarkohet në sfond"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Rikthimi i medias u ndërpre"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Në pritje të lidhjes me internetin..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Ndërprit transferimin"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Duhet ta hapësh Signal në telefon për të vazhduar përdorimin e llogarisë. Nëse nuk e hap Signal në telefon, llogaria do të fshihet së shpejti. <learnMoreLink>Mëso më shumë</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Media nuk mund të rikthehet"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Pajisja nuk ka hapësirë të mjaftueshme të lirë. Liro {diskSpaceAmount} hapësirë për të rikthyer median."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Zgjeroje"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Kopjeruajtje"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "E brendshme"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Eksporto kopjeruajtjet e koduara në memorie dhe ekzekuto paketën e verifikimit në të"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Verifiko"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Importimi i fundit më {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Непознати контакт"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Непознато"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Непозната група"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {Чланова: {count,number}} other {Чланова: {count,number}}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (и још {invitesCount,number} позвана особа)} other {{memberList} (и још њих {invitesCount,number} позваних)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Нема чланова групе"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Још увек нема других чланова групе"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} и ви"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} и {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} и ви"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} и {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} и још <clickable>{remainingCount,number} особа</clickable>} other {{member1}, {member2}, {member3} и још <clickable>њих {remainingCount,number}</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} и још <clickable>{remainingCount,number} особа</clickable>} other {{member1}, {member2}, {member3} и још <clickable>њих {remainingCount,number}</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Пажљиво прегледајте"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Медији ће наставити да се преузимају у позадини"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Враћање медија је паузирано"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Чека се веза са интернетом…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Паузирај пренос"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Морате да отворите Signal на свом телефону да бисте наставили да користите овај налог. Ако не отворите Signal на свом телефону, ваш налог ће ускоро бити избрисан. <learnMoreLink>Сазнајте више</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Враћање медија није успело"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "На уређају нема довољно слободног простора. Ослободите {diskSpaceAmount} меморијског простора да бисте вратили медије."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Прошири"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Резервне копије"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Интерно"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Извоз шифроване резервне копије у меморију и покретање пакета за њену валидацију"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Валидирај"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Последњи увоз: {date} у {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Okänd kontakt"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Okänt"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Okänd grupp"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 medlem} other {{count,number} medlemmar}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+ {invitesCount,number} inbjuden)} other {{memberList} (+ {invitesCount,number} inbjudna)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Inga gruppmedlemmar"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Inga andra gruppmedlemmar än"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} och du"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} och {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} och du"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} och {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} och <clickable>{remainingCount,number} annan</clickable>} other {{member1}, {member2}, {member3} och <clickable>{remainingCount,number} andra</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} och <clickable>{remainingCount,number} annan</clickable>} other {{member1}, {member2}, {member3} och <clickable>{remainingCount,number} andra</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Granska noggrant"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Media fortsätter att laddas ner i bakgrunden"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Återställning av media pausad"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Väntar på internetuppkoppling …"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Pausa överföringen"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Du måste öppna Signal på din telefon för att fortsätta använda det här kontot. Om du inte öppnar Signal på din telefon kommer ditt konto att tas bort snart. <learnMoreLink>Läs mer</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Det går inte att återställa media"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Din enhet har inte tillräckligt med ledigt utrymme. Frigör {diskSpaceAmount} utrymme för att återställa dina media."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Fäll ut"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Säkerhetskopior"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Internt"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Exportera krypterad säkerhetskopia till minnet och kör valideringssvit på den"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Validera"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Senaste importen vid {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Anwani isiyojulikana"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Isiyojulikana"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Kikundi hakijulikani"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {Mwanachama 1} other {Wanachama {count,number}}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} wamealikwa)} other {{memberList} (+{invitesCount,number} wamealikwa)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Hakuna wanachama wa kikundi"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Hakuna wanachama wa kikundi wengine"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "wewe na {member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} na {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "wewe na {member1}, {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} na {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} na <clickable>mwingine{remainingCount,number} </clickable>} other {{member1}, {member2}, {member3} na <clickable>wengine{remainingCount,number} </clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} na <clickable>mwingine{remainingCount,number} </clickable>} other {{member1}, {member2}, {member3} na <clickable>wengine{remainingCount,number} </clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Kagua kwa uangalifu"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Video na picha zitaendelea kupakuliwa kwenye usuli"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Urejeshaji wa video na picha umesitishwa"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Inasubiri muunganiko wa Intaneti..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Sitisha kuhamisha"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Lazima ufungue Signal kwenye simu yako ili uendelee kutumia akaunti hii. Ikiwa hautafungua Signal kwenye simu yako, akaunti yako itafutwa hivi karibuni. <learnMoreLink>Pata maelezo zaidi</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Imeshindwa kurejesha video na picha"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Kifaa chako hakina nafasi ya kutosha. Futa nafasi ya {diskSpaceAmount} ili kurejesha video na picha zako."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Panua"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Nakalahifadhi"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Wa ndani"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Hamishia hifadhi nakala iliyosimbwa fiche kwenye kumbukumbu na utekeleze masharti ya uthibitishaji juu yake"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Thibitisha"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Import ya mwisho {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "தெரியாத தொடர்பு"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "முன் தெரிந்திராத"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "தெரியாத குழு"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 உறுப்பினர்} other {{count,number} உறுப்பினர்கள்}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} அழைக்கப்பட்டார்)} other {{memberList} (+{invitesCount,number} அழைக்கப்பட்டார்கள்)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "பிற குழு உறுப்பினர்கள்"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "இப்போது வரை பிற குழு உறுப்பினர்கள் இல்லை"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} மற்றும் நீங்கள்"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1}மற்றும்{member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1},{member2}, மற்றும் நீங்கள்"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1},{member2}, மற்றும் {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1},{member2},{member3}, மற்றும் <clickable>{remainingCount,number} பிற நபர்</clickable>} other {{member1}, {member2}, {member3}, மற்றும் <clickable>{remainingCount,number} பிற நபர்கள்</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, மற்றும் <clickable>{remainingCount,number} பிற நபர்</clickable>} other {{member1}, {member2}, {member3}, மற்றும் <clickable>{remainingCount,number} பிற நபர்கள்</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "கவனமாக மதிப்பாய்வு செய்க"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "மீடியா பின்னணியில் தொடர்ந்து பதிவிறக்கம் செய்யப்படும்"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "மீடியாவை மீட்டமைப்பது இடைநிறுத்தப்பட்டது"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "இணைய இணைப்பிற்காகக் காத்திருக்கிறது..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "பரிமாற்றத்தை இடைநிறுத்துக"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "இந்தக் கணக்கைத் தொடர்ந்து பயன்படுத்த உங்கள் ஃபோனில் சிக்னலைத் திறக்க வேண்டும். உங்கள் ஃபோனில் நீங்கள் சிக்னலைத் திறக்கவில்லை எனில், உங்கள் கணக்கு விரைவில் அழிக்கப்படும். <learnMoreLink>மேலும் அறிக</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "மீடியாவை மீட்டமைக்க முடியவில்லை"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "உங்கள் டிவைஸில் போதுமான இடம் இல்லை. உங்கள் மீடியாவை மீட்டமைக்க {diskSpaceAmount} இடத்தைக் காலியக்கவும்."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "விரிவாக்கு"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "காப்புப் பிரதிகள்"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "உள்ளகம்"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "குறியாக்கப்பட்ட காப்புப்பிரதியை நினைவகத்திற்கு ஏற்றுமதி செய்து, அதில் சரிபார்ப்புத் தொகுப்பை இயக்குங்கள்"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "சரிபார்த்திடுக"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "கடைசியாக இறக்குமதி {date} {time} இல்"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "తెలియని పరిచయం"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "తెలియని"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "తెలియని సమూహం"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 సభ్యుడు} other {{count,number} సభ్యులు}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} ఆహ్వానించబడ్డారు)} other {{memberList} (+{invitesCount,number} ఆహ్వానించబడ్డారు)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "గ్రూప్ సభ్యులు ఎవరూ లేరు"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "ఇంకా ఇతర గ్రూప్ సభ్యులు ఎవరూ లేరు"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} మరియు మీరు"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} మరియు {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} మరియు మీరు"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} మరియు {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} మరియు <clickable>ఇతర {remainingCount,number}</clickable>} other {{member1}, {member2}, {member3} మరియు <clickable>{remainingCount,number} ఇతరులు</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} మరియు <clickable>ఇతర {remainingCount,number}</clickable>} other {{member1}, {member2}, {member3} మరియు <clickable>{remainingCount,number} ఇతరులు</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "జాగ్రత్తగా సమీక్షించండి"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "నేపథ్యంలో మీడియా డౌన్ లోడ్ చేయడం కొనసాగిస్తుంది"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "మీడియా పునరుద్ధరణ పాజ్ చేయబడింది"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "ఇంటర్నెట్ కనెక్షన్ కోసం వేచి ఉంది..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "బదిలీని పాజ్ చేయండి"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "ఈ ఖాతాను ఉపయోగించడం కొనసాగించడానికి మీరు మీ ఫోన్లో Signal ను తప్పకుండా తెరవాలి. ఒకవేళ మీరు మీ ఫోన్లో Signal ను తెరవకపోతే, మీ ఖాతా త్వరలో తొలగించబడుతుంది. <learnMoreLink>మరింత తెలుసుకోండి</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "మీడియాను పునరుద్ధరించడం సాధ్యం కాదు"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "మీ పరికరంలో తగినంత ఖాళీ స్థలం లేదు. మీ మీడియాను పునరుద్ధరించడానికి స్థలంలో {diskSpaceAmount} ని ఖాళీ చేయండి.\n\n"
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "విస్తరించండి"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "ప్రత్యామ్నాయములు"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "అంతర్గత"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "ఎన్క్రిప్ట్ చేయబడిన బ్యాకప్ను మెమరీకి ఎగుమతి చేయండి మరియు దానిపై వ్యాలిడేషన్ సూట్ను రన్ చేయండి"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "ప్రామాణీకరించండి"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "{date} {time} వద్ద చివరిగా దిగుమతి చేయబడింది"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "ผู้ที่ติดต่อที่ไม่รู้จัก"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "ไม่ทราบ"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "กลุ่มที่ไม่รู้จัก"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, other {สมาชิก {count,number} คน}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, other {{memberList} (+{invitesCount,number} สมาชิกที่เชิญ)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "ไม่มีสมาชิกในกลุ่ม"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "ยังไม่มีสมาชิกกลุ่มคนอื่น"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} และคุณ"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} และ {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} และคุณ"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} และ {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}, {member2}, {member3} และอีก <clickable>{remainingCount,number} คน</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}, {member2}, {member3} และอีก <clickable>{remainingCount,number} คน</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "โปรดตรวจสอบอย่างถี่ถ้วน"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "การดาวน์โหลดไฟล์สื่อจะยังคงดำเนินต่อในพื้นหลัง"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "การกู้คืนไฟล์สื่อหยุดชั่วคราว"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "กำลังรอการเชื่อมต่ออินเทอร์เน็ต..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "หยุดการถ่ายโอนชั่วคราว"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "คุณต้องเปิด Signal บนโทรศัพท์เพื่อใช้งานบัญชีนี้ต่อไป โดยบัญชีของคุณจะถูกลบในไม่ช้าหากไม่ดำเนินการ <learnMoreLink>เรียนรู้เพิ่มเติม</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "ไม่สามารถกู้คืนไฟล์สื่อได้"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "อุปกรณ์ของคุณมีพื้นที่จัดเก็บไม่เพียงพอ โปรดเพิ่มพื้นที่จัดเก็บ {diskSpaceAmount} เพื่อกู้คืนไฟล์สื่อของคุณ"
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "ขยาย"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "ข้อมูลสำรอง"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "ภายใน"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "ส่งออกข้อมูลสำรองที่เข้ารหัสไปยังหน่วยความจำและดำเนินการตรวจสอบความถูกต้อง"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "ตรวจสอบ"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "นำเข้าครั้งสุดท้ายเมื่อ {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Unknown contact"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Hindi tukoy"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Unknown group"
|
||||
@ -2958,31 +2958,31 @@
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Walang group members"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Wala pang ibang group members"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "Ikaw at si {member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} at {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "Ikaw at sina {member1}, at {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2}, at {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, at <clickable>{remainingCount,number} pa</clickable>} other {{member1}, {member2}, {member3}, at <clickable>{remainingCount,number} pa</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, at <clickable>{remainingCount,number} pa</clickable>} other {{member1}, {member2}, {member3}, at <clickable>{remainingCount,number} na iba pa</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Suriing mabuti"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Patuloy na magda-download ng media sa background"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Naka-pause ang pagre-restore ng media"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Naghihintay ng Internet connection..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "I-pause ang transfer"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Kailangan mong buksan ang Signal sa phone mo para patuloy mong magamit ang account na ito. Kung hindi mo bubuksan ang Signal sa phone mo, mabubura ang iyong account. <learnMoreLink>Matuto pa</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Hindi ma-restore ang media"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Walang sapat na free space ang iyong device. Magbawas ng {diskSpaceAmount} ng space para ma-restore ang iyong media."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "I-expand"
|
||||
},
|
||||
@ -5001,10 +5007,10 @@
|
||||
"messageformat": "Internal"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "I-export ang encrypted backup sa memory at magpatakbo ng validation suite dito"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "I-validate"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Last import at {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Bilinmeyen kişi"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Bilinmeyen"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Bilinmeyen grup"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 üye} other {{count,number} üye}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} davet edildi)} other {{memberList} (+{invitesCount,number} davet edildi)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Grup üyesi yok"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Henüz başka grup üyesi yok"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} ve sen"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} ve {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} ve sen"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} ve {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} ve <clickable>{remainingCount,number} diğer</clickable>} other {{member1}, {member2}, {member3} ve <clickable> {remainingCount,number} diğer</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} ve <clickable> {remainingCount,number} diğer</clickable>} other {{member1}, {member2}, {member3} ve <clickable> {remainingCount,number} diğer</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Dikkatle incele"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Medya arka planda indirilmeye devam edecek"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Medya geri yükleme duraklatıldı"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "İnternet bağlantısı bekleniyor..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Aktarımı duraklat"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Bu hesabı kullanmaya devam etmek için telefonunda Signal'ı açman gerekiyor. Telefonunda Signal'ı açmazsan, hesabın kısa süre içinde silinecektir. <learnMoreLink>Dahasını öğren</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Medya geri yüklenemiyor"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Cihazında yeterli boş alan yok. Medyanı geri yüklemek için {diskSpaceAmount} alan boşalt."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Genişlet"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Yedekler"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Dahili"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Şifreli yedeklemeyi belleğe aktar ve üzerinde doğrulama paketini çalıştır"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Doğrula"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Son içe aktarma: {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "نامەلۇم ئالاقەداش"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "نامەلۇم"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "نامەلۇم گۇرۇپپا"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, other {{count,number} ئەزا}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, other {{memberList} (+{invitesCount,number} تەكلىپ قىلىنغان)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "گۇرۇپپا ئەزالىرى يوق"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "تېخى باشقا گۇرۇپپا ئەزالىرى يوق"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} ۋە سىز"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} ۋە {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1} ، {member2} ، ۋە سىز"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1} ، {member2} ، ۋە{member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1} ، {member2} ، {member3} ۋە <clickable>{remainingCount,number}باشقىلار</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1} ، {member2} ، {member3} ۋە <clickable>{remainingCount,number}باشقىلار</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "ئەستايىدىللىق بىلەن تەكشۈرۈڭ"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "مېدىيا ئارقا سۇپىدا داۋاملىق چۈشۈرۈلىدۇ"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "مېدىيانى ئەسلىگە كەلتۈرۈش توختاپ قالدى"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "تور ئۇلىنىشىنى ساقلاۋاتىدۇ..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "يۆتكەشنى توختىتىڭ"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "بۇ ھېساباتنى داۋاملىق ئىشلىتىش ئۈچۈن چوقۇم تېلېفونىڭىزدا Signalنى ئېچىشىڭىز كېرەك. ئەگەر تېلېفونىڭىزدا Signalنى ئاچمىسىڭىز ، ھېساباتىڭىز تېزلا ئۆچۈرۈلىدۇ. <learnMoreLink>تەپسىلاتى</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "مېدىيانى ئەسلىگە كەلتۈرگىلى بولمىدى"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "ئۈسكۈنىڭىزدە يېتەرلىك بوشلۇق يوق. مېدىيارىڭىزنى ئەسلىگە كەلتۈرۈش ئۈچۈن {diskSpaceAmount} بوشلۇق بىكارلاڭ.\n\n"
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "كېڭەيتىش"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "زاپاسلار"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "ئىچكى سەپلىمە"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "مەخپىيلەشتۈرۈلگەن زاپاسلاشنى ئىچكى ساقلىغۇچقا ئېكسپورت قىلىڭ ۋە ئۇنىڭدا دەلىللەشنى ئىجرا قىلىڭ"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "دەلىللەش"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "ئاخىرقى ئەكىرىلگەن ۋاقىت {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Невідомий контакт"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Невідомий користувач"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Невідома група"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {{count,number} учасник} few {{count,number} учасники} many {{count,number} учасників} other {{count,number} учасника}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} запрошено)} few {{memberList} (+{invitesCount,number} запрошено)} many {{memberList} (+{invitesCount,number} запрошено)} other {{memberList} (+{invitesCount,number} запрошено)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Учасників немає"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Інших учасників поки що немає"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} і ви"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} і {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2} і ви"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} і {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} і <clickable>ще {remainingCount,number} учасник</clickable>} few {{member1}, {member2}, {member3} і <clickable>ще {remainingCount,number} учасники</clickable>} many {{member1}, {member2}, {member3} і <clickable>ще {remainingCount,number} учасників</clickable>} other {{member1}, {member2}, {member3} і <clickable>ще {remainingCount,number} учасника</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3} і <clickable>ще {remainingCount,number} учасник</clickable>} few {{member1}, {member2}, {member3} і <clickable>ще {remainingCount,number} учасники</clickable>} many {{member1}, {member2}, {member3} і <clickable>ще {remainingCount,number} учасників</clickable>} other {{member1}, {member2}, {member3} і <clickable>ще {remainingCount,number} учасника</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Уважно перевірте цей запит"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Завантаження медіафайлів продовжиться у фоновому режимі"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Відновлення медіафайлів зупинено"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Очікування з'єднання з інтернетом…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Припинити передачу даних"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Щоб і надалі користуватися цим акаунтом, вам потрібно відкрити Signal на телефоні. Якщо цього не зробити, невдовзі ваш акаунт буде видалено. <learnMoreLink>Докладніше</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Не вдається відновити медіафайли"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "На пристрої недостатньо місця. Звільніть {diskSpaceAmount}, щоб відновити медіафайли."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Розкрити"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Резервні копії"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Система"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Експортувати зашифровану резервну копію в пам'ять і запустити програму перевірки"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Перевірити"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Востаннє імпортовано: {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "نامعلوم رابطہ"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "نامعلوم"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "نامعلوم گروپ"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, one {1 ممبر} other {{count,number} ممبرز}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} کو مدعو کیا گیا)} other {{memberList} (+{invitesCount,number} مدعو کیے گئے)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "کوئی گروپ ممبرز نہیں ہیں"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "ابھی تک کوئی اور گروپ ممبرز نہیں ہیں"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} اور آپ"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} اور{member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}، {member2}، اور آپ"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}، {member2}، اور {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}، {member2}، {member3}، اور <clickable>{remainingCount,number} دیگر</clickable>} other {{member1}، {member2}، {member3}، اور <clickable>{remainingCount,number} دیگر</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, one {{member1}، {member2}، {member3}، اور <clickable>{remainingCount,number} دیگر</clickable>} other {{member1}، {member2}، {member3}، اور <clickable>{remainingCount,number} دیگر</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "احتیاط سے جائزہ لیں"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "پس منظر میں میڈیا ڈاؤن لوڈ ہونا جاری رہے گا"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "میڈیا بحال کرنے میں توقف کر دیا گيا"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "انٹرنیٹ کنکشن کا انتظار ہو رہا ہے..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "ٹرانسفر روکیں"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "آپ کو اس اکاؤنٹ کا استعمال جاری رکھنے کے لیے اپنے فون پر Signal کھولنا ہو گا۔ اگر آپ اپنے فون پر Signal نہیں کھولتے، تو جلد ہی آپ کا اکاؤنٹ حذف کر دیا جائے گا۔ <learnMoreLink>مزید جانیں</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "میڈیا بحال نہیں ہو سکتا"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "آپ کی ڈیوائس میں کافی جگہ خالی نہیں ہے۔ اپنے میڈیا کو بحال کرنے کے لیے {diskSpaceAmount} جگہ خالی کریں۔"
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "پھیلائیں"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "بیک اپس"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "اندرونی"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "انکرپٹ کردہ بیک اپ کو میموری میں ایکسپورٹ کریں اور اس پر تصدیقی سوئٹ چلائیں"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "تصدیق کریں"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "آخری درآمد {date} {time} پر کی گئی"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "Liên hệ không rõ"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "Không rõ"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "Nhóm chưa biết"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, other {{count,number} thành viên}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, other {{memberList} (+{invitesCount,number} được mời)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "Không có thành viên nhóm"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "Chưa có thành viên nhóm nào khác"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} và bạn"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} và {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}, {member2}, và bạn"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}, {member2} và {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}, {member2}, {member3} và <clickable>{remainingCount,number} người khác</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}, {member2}, {member3} và <clickable>{remainingCount,number} người khác</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "Kiểm tra kỹ"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "Tập tin đa phương tiện vẫn sẽ tiếp tục được tải xuống ở chế độ nền"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "Khôi phục được tạm dừng"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "Đang chờ kết nối mạng…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "Tạm dừng chuyển"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "Bạn phải mở Signal trên điện thoại để tiếp tục sử dụng tài khoản này. Nếu không mở Signal trên điện thoại, tài khoản của bạn sẽ sớm bị xóa. <learnMoreLink>Tìm hiểu thêm</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "Không thể khôi phục tập tin đa phương tiện"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "Thiết bị của bạn không có đủ dung lượng trống. Giải phóng {diskSpaceAmount} dung lượng để khôi phục tập tin đa phương tiện của bạn."
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "Mở rộng"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "Sao lưu"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "Nội bộ"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "Xuất bản sao lưu được mã hóa vào bộ nhớ và chạy bộ xác thực trên đó"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "Xác thực"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "Lần nhập cuối cùng vào lúc {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "不明嘅聯絡人"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "未知"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "不明嘅群組"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, other {{count,number} 位成員}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, other {{memberList} (+ {invitesCount,number} 個已獲邀請)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "未有谷友"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "仲未有其他谷友"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} 同你"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} 同 {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}、{member2} 同你"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}、{member2} 同 {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}、{member2}、{member3} 同<clickable>另外 {remainingCount,number} 個</clickable>谷友}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}、{member2}、{member3} 同<clickable>另外 {remainingCount,number} 個</clickable>谷友}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "請仔細審查"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "媒體會繼續喺背景下載"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "還原媒體暫停咗"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "等緊網絡連線…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "暫停轉移"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "你一定要喺手機上面打開 Signal 先至可以繼續用呢個帳戶。如果你唔喺手機上面打開 Signal,你嘅帳戶就會好快被刪除。<learnMoreLink>了解詳情</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "還原唔到媒體"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "你部機唔夠位。請你搵多 {diskSpaceAmount} 空間嚟還原媒體。"
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "展開"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "備份"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "内部"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "將加密備份匯出去內建記憶體同埋執行驗證套件"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "驗證"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "上次匯入嘅時間係 {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "未知联系人"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "未知"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "未知群组"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, other {{count,number} 名成员}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, other {{memberList}(+{invitesCount,number} 名受邀者)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "无群组成员"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "暂无其他群组成员"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member}和您"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}、{member2}和您"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}、{member2}和{member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}、{member2}、{member3}和<clickable>其他 {remainingCount,number} 人</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}、{member2}、{member3}和<clickable>其他 {remainingCount,number} 人</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "请仔细审查"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "媒体将会在后台继续下载"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "恢复媒体已暂停"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "正在等待互联网连接…"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "暂停转移"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "您必须在手机上打开 Signal 才能继续使用此账户。如果不在手机上打开 Signal,您的账户将会很快被删除。<learnMoreLink>了解更多</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "无法恢复媒体"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "您的设备没有足够的可用空间。请释放 {diskSpaceAmount} 的存储空间以恢复您的媒体。"
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "扩展"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "备份"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "内部"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "将加密备份导出到内存并对其运行验证套件"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "验证"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "上次导入时间为 {date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "未知聯絡人"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "未知"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "未知的群組"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, other {{count,number} 位成員}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, other {{memberList} (+ {invitesCount,number} 被邀請)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "沒有群組成員"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "尚未有其他群組成員"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} 和你"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} 及 {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}、{member2} 和你"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}、{member2} 和 {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}、{member2}、{member3} 和<clickable>另外{remainingCount,number}</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}、{member2}、{member3} 和<clickable>另外{remainingCount,number}</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "仔細檢查"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "媒體將繼續在背景下載"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "還原媒體已暫停"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "正在等待網絡連線..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "暫停轉移"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "你必須在手機上開啟 Signal 才能繼續使用此帳戶。如果你沒有在手機上開啟 Signal,你的帳戶將很快被刪除。<learnMoreLink>了解更多</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "無法還原媒體"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "你的裝置沒有足夠的可用空間。釋放 {diskSpaceAmount} 的空間來還原你的媒體。"
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "擴充"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "備份"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "內部"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "將加密備份匯出到內部記憶體並執行驗證套件"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "驗證"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "最後匯入時間在{date} {time}"
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"messageformat": "未知聯絡人"
|
||||
},
|
||||
"icu:unknownContactShort": {
|
||||
"messageformat": "Unknown"
|
||||
"messageformat": "未知"
|
||||
},
|
||||
"icu:unknownGroup": {
|
||||
"messageformat": "未知的群組"
|
||||
@ -2955,34 +2955,34 @@
|
||||
"messageformat": "{count, plural, other {{count,number} 個成員}}"
|
||||
},
|
||||
"icu:ConversationHero--member-list-and-invited": {
|
||||
"messageformat": "{invitesCount, plural, one {{memberList} (+{invitesCount,number} invited)} other {{memberList} (+{invitesCount,number} invited)}}"
|
||||
"messageformat": "{invitesCount, plural, other {{memberList} (+ {invitesCount,number} 被邀請)}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-zero": {
|
||||
"messageformat": "No group members"
|
||||
"messageformat": "沒有群組成員"
|
||||
},
|
||||
"icu:ConversationHero--group-members-only-you": {
|
||||
"messageformat": "No other group members yet"
|
||||
"messageformat": "尚未有其他群組成員"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one": {
|
||||
"messageformat": "{member}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-one-and-you": {
|
||||
"messageformat": "{member} and you"
|
||||
"messageformat": "{member} 和你"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two": {
|
||||
"messageformat": "{member1} and {member2}"
|
||||
"messageformat": "{member1} 及 {member2}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-two-and-you": {
|
||||
"messageformat": "{member1}, {member2}, and you"
|
||||
"messageformat": "{member1}、{member2} 和你"
|
||||
},
|
||||
"icu:ConversationHero--group-members-three": {
|
||||
"messageformat": "{member1}, {member2}, and {member3}"
|
||||
"messageformat": "{member1}、{member2} 和 {member3}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}、{member2}、{member3} 和<clickable>另外{remainingCount,number}</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--group-members-other-and-you": {
|
||||
"messageformat": "{remainingCount, plural, one {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} other</clickable>} other {{member1}, {member2}, {member3}, and <clickable>{remainingCount,number} others</clickable>}}"
|
||||
"messageformat": "{remainingCount, plural, other {{member1}、{member2}、{member3} 和<clickable>另外{remainingCount,number}</clickable>}}"
|
||||
},
|
||||
"icu:ConversationHero--review-carefully": {
|
||||
"messageformat": "仔細檢查"
|
||||
@ -4017,10 +4017,10 @@
|
||||
"messageformat": "媒體將繼續在背景下載"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__title-offline": {
|
||||
"messageformat": "Restoring media paused"
|
||||
"messageformat": "還原媒體已暫停"
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__description-offline": {
|
||||
"messageformat": "Waiting for Internet connection..."
|
||||
"messageformat": "正在等待網絡連線..."
|
||||
},
|
||||
"icu:BackupMediaDownloadProgress__button-pause": {
|
||||
"messageformat": "暫停轉移"
|
||||
@ -4058,6 +4058,12 @@
|
||||
"icu:CriticalIdlePrimaryDeviceModal__description": {
|
||||
"messageformat": "你必須在手機上開啟 Signal 才能繼續使用此帳戶。如果你沒有在手機上開啟 Signal,你的帳戶將很快被刪除。<learnMoreLink>了解更多</learnMoreLink>"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__title": {
|
||||
"messageformat": "無法還原媒體"
|
||||
},
|
||||
"icu:LowDiskSpaceBackupImportModal__description": {
|
||||
"messageformat": "你的裝置沒有足夠的可用空間。釋放 {diskSpaceAmount} 的空間來還原你的媒體。"
|
||||
},
|
||||
"icu:CompositionArea--expand": {
|
||||
"messageformat": "擴充"
|
||||
},
|
||||
@ -4998,13 +5004,13 @@
|
||||
"messageformat": "備份"
|
||||
},
|
||||
"icu:Preferences__button--internal": {
|
||||
"messageformat": "Internal"
|
||||
"messageformat": "內部"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup--description": {
|
||||
"messageformat": "Export encrypted backup to memory and run validation suite on it"
|
||||
"messageformat": "將加密備份匯出到內部記憶體並執行驗證套件"
|
||||
},
|
||||
"icu:Preferences__internal__validate-backup": {
|
||||
"messageformat": "Validate"
|
||||
"messageformat": "驗證"
|
||||
},
|
||||
"icu:Preferences--lastSynced": {
|
||||
"messageformat": "最後匯入時間在{date} {time}"
|
||||
|
||||
@ -1 +1,4 @@
|
||||
<svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#official-compact__a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.911.71a1.4 1.4 0 0 1 2.178 0l.667.826a.6.6 0 0 0 .623.202l1.025-.275a1.4 1.4 0 0 1 1.761 1.28l.055 1.06a.6.6 0 0 0 .385.53l.991.379a1.4 1.4 0 0 1 .673 2.071l-.579.89a.6.6 0 0 0 0 .654l.58.89a1.4 1.4 0 0 1-.674 2.071l-.991.38a.6.6 0 0 0-.385.53l-.055 1.06a1.4 1.4 0 0 1-1.761 1.28l-1.025-.276a.6.6 0 0 0-.623.202l-.667.825a1.4 1.4 0 0 1-2.178 0l-.667-.825a.6.6 0 0 0-.623-.202l-1.025.275a1.4 1.4 0 0 1-1.761-1.28l-.055-1.06a.6.6 0 0 0-.385-.53l-.991-.379a1.4 1.4 0 0 1-.673-2.07l.579-.89a.6.6 0 0 0 0-.655l-.579-.89a1.4 1.4 0 0 1 .673-2.071l.991-.38a.6.6 0 0 0 .385-.529l.055-1.06a1.4 1.4 0 0 1 1.761-1.28l1.025.275a.6.6 0 0 0 .623-.202L6.91.711Zm4.009 5.27a.65.65 0 1 0-1.09-.71L7.078 9.506l-1.19-1.53a.65.65 0 0 0-1.026.8l1.75 2.25a.65.65 0 0 0 1.058-.046l3.25-5Z" fill="#000"/></g><defs><clipPath id="official-compact__a"><path fill="#fff" d="M0 0h16v16H0z"/></clipPath></defs></svg>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.71684 1.55346C7.37724 0.736493 8.6228 0.736493 9.2832 1.55346L9.71883 2.09237C9.80587 2.20004 9.9482 2.24629 10.0819 2.21034L10.7511 2.03041C11.7656 1.75764 12.7733 2.48976 12.8273 3.53888L12.863 4.23092C12.8701 4.36919 12.9581 4.49026 13.0874 4.53977L13.7345 4.78755C14.7156 5.16317 15.1005 6.34777 14.5276 7.22831L14.1497 7.80915C14.0742 7.9252 14.0742 8.07485 14.1497 8.1909L14.5276 8.77174C15.1005 9.65228 14.7156 10.8369 13.7345 11.2125L13.0874 11.4603C12.9581 11.5098 12.8701 11.6309 12.863 11.7691L12.8273 12.4612C12.7733 13.5103 11.7656 14.2424 10.7511 13.9696L10.0819 13.7897C9.9482 13.7538 9.80587 13.8 9.71884 13.9077L9.2832 14.4466C8.6228 15.2636 7.37724 15.2636 6.71684 14.4466L6.2812 13.9077C6.19417 13.8 6.05184 13.7538 5.91814 13.7897L5.24894 13.9696C4.23446 14.2424 3.22678 13.5103 3.17271 12.4612L3.13703 11.7691C3.12991 11.6309 3.04194 11.5098 2.91265 11.4603L2.2655 11.2125C1.28444 10.8369 0.899538 9.65228 1.47245 8.77174L1.85036 8.1909C1.92587 8.07485 1.92587 7.9252 1.85036 7.80915L1.47245 7.22831C0.899538 6.34777 1.28444 5.16317 2.2655 4.78755L2.91264 4.53977C3.04194 4.49026 3.12991 4.36919 3.13703 4.23092L3.17271 3.53888C3.22678 2.48977 4.23446 1.75764 5.24894 2.03041L5.91814 2.21034C6.05184 2.24629 6.19417 2.20004 6.2812 2.09237L6.71684 1.55346ZM8.27221 2.37071C8.13212 2.19741 7.86792 2.19741 7.72783 2.37071L7.2922 2.90961C6.88188 3.41721 6.2109 3.63522 5.58059 3.46575L4.9114 3.28582C4.6962 3.22796 4.48245 3.38326 4.47098 3.6058L4.43531 4.29784C4.40171 4.94968 3.98703 5.52044 3.37748 5.75383L2.73033 6.0016C2.52223 6.08128 2.44058 6.33256 2.56211 6.51934L2.94002 7.10018C3.29598 7.64728 3.29598 8.35278 2.94002 8.89987L2.56211 9.48071C2.44058 9.66749 2.52223 9.91877 2.73033 9.99845L3.37748 10.2462C3.98703 10.4796 4.40171 11.0504 4.43531 11.7022L4.47098 12.3943C4.48245 12.6168 4.6962 12.7721 4.9114 12.7142L5.58059 12.5343C6.21091 12.3648 6.88188 12.5828 7.2922 13.0904L7.72783 13.6293C7.86792 13.8026 8.13212 13.8026 8.27221 13.6293L8.70784 13.0904C9.11816 12.5828 9.78914 12.3648 10.4194 12.5343L11.0886 12.7142C11.3038 12.7721 11.5176 12.6168 11.5291 12.3943L11.5647 11.7022C11.5983 11.0504 12.013 10.4796 12.6226 10.2462L13.2697 9.99845C13.4778 9.91877 13.5595 9.66749 13.4379 9.48071L13.06 8.89987C12.7041 8.35278 12.7041 7.64727 13.06 7.10018L13.4379 6.51934C13.5595 6.33256 13.4778 6.08128 13.2697 6.0016L12.6226 5.75382C12.013 5.52044 11.5983 4.94968 11.5647 4.29784L11.5291 3.6058C11.5176 3.38326 11.3038 3.22796 11.0886 3.28582L10.4194 3.46575C9.78913 3.63522 9.11816 3.41721 8.70784 2.90961L8.27221 2.37071Z" fill="black" style="fill:black;fill-opacity:1;"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.3543 5.45504C10.6553 5.65068 10.7407 6.05328 10.545 6.35427L7.62001 10.8543C7.50541 11.0306 7.31261 11.1405 7.10253 11.1494C6.89245 11.1583 6.69104 11.0651 6.56194 10.8991L4.98694 8.87409C4.76655 8.59072 4.81759 8.18234 5.10096 7.96195C5.38432 7.74155 5.7927 7.7926 6.0131 8.07597L7.02759 9.38031L9.45503 5.64578C9.65067 5.3448 10.0533 5.2594 10.3543 5.45504Z" fill="black" style="fill:black;fill-opacity:1;"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 3.2 KiB |
1
images/icons/v3/official/official-fill-compact.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg width="16" height="16" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#official-compact__a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.911.71a1.4 1.4 0 0 1 2.178 0l.667.826a.6.6 0 0 0 .623.202l1.025-.275a1.4 1.4 0 0 1 1.761 1.28l.055 1.06a.6.6 0 0 0 .385.53l.991.379a1.4 1.4 0 0 1 .673 2.071l-.579.89a.6.6 0 0 0 0 .654l.58.89a1.4 1.4 0 0 1-.674 2.071l-.991.38a.6.6 0 0 0-.385.53l-.055 1.06a1.4 1.4 0 0 1-1.761 1.28l-1.025-.276a.6.6 0 0 0-.623.202l-.667.825a1.4 1.4 0 0 1-2.178 0l-.667-.825a.6.6 0 0 0-.623-.202l-1.025.275a1.4 1.4 0 0 1-1.761-1.28l-.055-1.06a.6.6 0 0 0-.385-.53l-.991-.379a1.4 1.4 0 0 1-.673-2.07l.579-.89a.6.6 0 0 0 0-.655l-.579-.89a1.4 1.4 0 0 1 .673-2.071l.991-.38a.6.6 0 0 0 .385-.529l.055-1.06a1.4 1.4 0 0 1 1.761-1.28l1.025.275a.6.6 0 0 0 .623-.202L6.91.711Zm4.009 5.27a.65.65 0 1 0-1.09-.71L7.078 9.506l-1.19-1.53a.65.65 0 0 0-1.026.8l1.75 2.25a.65.65 0 0 0 1.058-.046l3.25-5Z" fill="#000"/></g><defs><clipPath id="official-compact__a"><path fill="#fff" d="M0 0h16v16H0z"/></clipPath></defs></svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1013 B After Width: | Height: | Size: 1013 B |
@ -1,10 +1,19 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1505_3717)">
|
||||
<path d="M9.12005 0.350618L9.39005 1.44187C8.32793 1.70308 7.31143 2.12346 6.37505 2.68874L5.79755 1.72499C6.82943 1.10199 7.9496 0.638627 9.12005 0.350618ZM14.8801 0.350618L14.6101 1.44187C15.6722 1.70308 16.6887 2.12346 17.6251 2.68874L18.2063 1.72499C17.1733 1.10164 16.0518 0.63827 14.8801 0.350618ZM1.72505 5.79749C1.10205 6.82937 0.638688 7.94954 0.350679 9.11999L1.44193 9.38999C1.70314 8.32787 2.12352 7.31137 2.6888 6.37499L1.72505 5.79749ZM1.12505 12C1.12469 11.4546 1.16543 10.9099 1.24693 10.3706L0.135054 10.2019C-0.0449366 11.3939 -0.0449366 12.6061 0.135054 13.7981L1.24693 13.6294C1.16543 13.0901 1.12469 12.5454 1.12505 12ZM18.2026 22.275L17.6251 21.3112C16.6898 21.8762 15.6746 22.2966 14.6138 22.5581L14.8838 23.6494C16.053 23.361 17.1718 22.8976 18.2026 22.275ZM22.8751 12C22.8754 12.5454 22.8347 13.0901 22.7532 13.6294L23.8651 13.7981C24.045 12.6061 24.045 11.3939 23.8651 10.2019L22.7532 10.3706C22.8347 10.9099 22.8754 11.4546 22.8751 12ZM23.6494 14.88L22.5582 14.61C22.297 15.6721 21.8766 16.6886 21.3113 17.625L22.2751 18.2062C22.8984 17.1732 23.3618 16.0517 23.6494 14.88ZM13.6294 22.755C12.5493 22.9175 11.4508 22.9175 10.3707 22.755L10.2019 23.8669C11.3939 24.0469 12.6062 24.0469 13.7982 23.8669L13.6294 22.755ZM20.7544 18.4519C20.1058 19.3303 19.329 20.1065 18.4501 20.7544L19.1176 21.66C20.0872 20.9471 20.9443 20.0925 21.6601 19.125L20.7544 18.4519ZM18.4501 3.24562C19.3292 3.89409 20.106 4.67088 20.7544 5.54999L21.6601 4.87499C20.9465 3.90801 20.092 3.05351 19.1251 2.33999L18.4501 3.24562ZM3.24568 5.54999C3.89415 4.67088 4.67094 3.89409 5.55005 3.24562L4.87505 2.33999C3.90807 3.05351 3.05357 3.90801 2.34005 4.87499L3.24568 5.54999ZM22.2751 5.79749L21.3113 6.37499C21.8762 7.3102 22.2966 8.32541 22.5582 9.38624L23.6494 9.11624C23.3611 7.94709 22.8977 6.82821 22.2751 5.79749ZM10.3707 1.24687C11.4508 1.08436 12.5493 1.08436 13.6294 1.24687L13.7982 0.134993C12.6062 -0.0449977 11.3939 -0.0449977 10.2019 0.134993L10.3707 1.24687ZM3.82318 21.9581L1.50005 22.5L2.04193 20.1769L0.946929 19.92L0.405054 22.2431C0.361409 22.4295 0.366042 22.6239 0.418516 22.808C0.470991 22.9921 0.56957 23.1598 0.704926 23.2951C0.840282 23.4305 1.00794 23.5291 1.19203 23.5815C1.37611 23.634 1.57055 23.6386 1.75693 23.595L4.07818 23.0625L3.82318 21.9581ZM1.1813 18.9169L2.2763 19.1719L2.6513 17.5612C2.10471 16.6426 1.69717 15.648 1.44193 14.61L0.350679 14.88C0.595311 15.8742 0.967127 16.8327 1.45693 17.7319L1.1813 18.9169ZM6.4313 21.3544L4.82068 21.7294L5.07568 22.8244L6.26068 22.5487C7.1598 23.0385 8.11833 23.4104 9.11255 23.655L9.38255 22.5637C8.34668 22.3055 7.3547 21.8954 6.4388 21.3469L6.4313 21.3544ZM12.0001 2.24999C10.258 2.2509 8.54799 2.71852 7.0479 3.60424C5.54781 4.48996 4.31242 5.76141 3.47022 7.28636C2.62803 8.81131 2.20978 10.5341 2.25899 12.2754C2.30821 14.0168 2.82308 15.7132 3.75005 17.1881L2.81255 21.1875L6.81193 20.25C8.09107 21.0556 9.54002 21.5528 11.0443 21.7022C12.5486 21.8517 14.0671 21.6493 15.4797 21.111C16.8923 20.5727 18.1604 19.7134 19.1839 18.6008C20.2073 17.4882 20.958 16.1529 21.3767 14.7003C21.7954 13.2477 21.8705 11.7177 21.5963 10.2311C21.322 8.74446 20.7058 7.34198 19.7964 6.13443C18.8869 4.92687 17.7092 3.94733 16.3561 3.27319C15.003 2.59904 13.5118 2.24875 12.0001 2.24999Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1505_3717">
|
||||
<rect width="24" height="24" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<svg width="120" height="120" viewBox="0 0 120 120" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M60 0C63.1129 0 66.1704 0.237052 69.1554 0.694089L68.2971 6.25402C65.5919 5.83983 62.821 5.625 60 5.625C57.1791 5.625 54.4084 5.83981 51.7033 6.25396L50.845 0.694031C53.8299 0.237032 56.8873 0 60 0Z" fill="white"/>
|
||||
<path d="M74.2386 1.69964L72.9038 7.16531C78.386 8.49956 83.5428 10.6648 88.2334 13.5201L91.154 8.71185C85.9782 5.56117 80.2879 3.17191 74.2386 1.69964Z" fill="white"/>
|
||||
<path d="M95.4595 11.5943L92.1352 16.1324C96.6182 19.4219 100.578 23.3821 103.868 27.8651L108.406 24.5408C104.776 19.5941 100.406 15.2242 95.4595 11.5943Z" fill="white"/>
|
||||
<path d="M111.288 28.8463L106.48 31.767C109.335 36.4576 111.501 41.6145 112.835 47.0966L118.3 45.7618C116.828 39.7125 114.439 34.0221 111.288 28.8463Z" fill="white"/>
|
||||
<path d="M119.306 50.845L113.746 51.7033C114.16 54.4084 114.375 57.1791 114.375 60C114.375 62.821 114.16 65.5919 113.746 68.2971L119.306 69.1554C119.763 66.1703 120 63.1129 120 60C120 56.8873 119.763 53.8299 119.306 50.845Z" fill="white"/>
|
||||
<path d="M106.48 88.2334C109.335 83.5428 111.5 78.3859 112.835 72.9038L118.3 74.2386C116.828 80.2879 114.439 85.9782 111.288 91.1541L106.48 88.2334Z" fill="white"/>
|
||||
<path d="M103.868 92.1352L108.406 95.4595C104.776 100.406 100.406 104.776 95.4592 108.406L92.1349 103.868C96.6179 100.578 100.578 96.6182 103.868 92.1352Z" fill="white"/>
|
||||
<path d="M88.233 106.48L91.1537 111.288C85.9779 114.439 80.2875 116.828 74.2382 118.3L72.9034 112.835C78.3855 111.501 83.5424 109.335 88.233 106.48Z" fill="white"/>
|
||||
<path d="M68.2967 113.746L69.155 119.306C66.1701 119.763 63.1127 120 60 120C56.8871 120 53.8296 119.763 50.8445 119.306L51.7027 113.747C54.4067 114.16 57.1775 114.375 60 114.375C62.8209 114.375 65.5916 114.16 68.2967 113.746Z" fill="white"/>
|
||||
<path d="M47.0958 112.836L45.7613 118.3C41.2172 117.194 36.8756 115.571 32.8024 113.496L27.1079 114.825L25.8297 109.347L33.525 107.551L35.3557 108.484C39.0447 110.363 42.9774 111.834 47.0958 112.836Z" fill="white"/>
|
||||
<path d="M21.0823 110.455L22.3604 115.933L12.5995 118.21C6.10396 119.726 0.274262 113.896 1.7899 107.4L4.06746 97.6395L9.54531 98.9177L7.26776 108.679C6.6994 111.114 8.88552 113.301 11.3214 112.732L21.0823 110.455Z" fill="white"/>
|
||||
<path d="M10.6531 94.1702L5.1752 92.8921L6.50393 87.1976C4.42895 83.1243 2.8055 78.7825 1.69953 74.2382L7.16393 72.9036C8.16591 77.0223 9.63675 80.9552 11.5161 84.6443L12.4486 86.475L10.6531 94.1702Z" fill="white"/>
|
||||
<path d="M6.2532 68.2968L0.694021 69.155C0.237029 66.1701 0 63.1127 0 60C0 56.8871 0.237051 53.8297 0.694084 50.8446L6.25402 51.7029C5.83983 54.4081 5.625 57.179 5.625 60C5.625 62.8223 5.83959 65.5929 6.2532 68.2968Z" fill="white"/>
|
||||
<path d="M7.1653 47.0962L1.69963 45.7614C3.1719 39.7121 5.56116 34.0218 8.71184 28.846L13.5201 31.7667C10.6648 36.4572 8.49955 41.6141 7.1653 47.0962Z" fill="white"/>
|
||||
<path d="M16.1324 27.8648L11.5943 24.5405C15.2242 19.5938 19.594 15.2239 24.5408 11.5941L27.8651 16.1321C23.3821 19.4217 19.4219 23.3818 16.1324 27.8648Z" fill="white"/>
|
||||
<path d="M31.767 13.5199L28.8463 8.71166C34.0221 5.56101 39.7124 3.17178 45.7617 1.69955L47.0966 7.16521C41.6144 8.49942 36.4576 10.6647 31.767 13.5199Z" fill="white"/>
|
||||
<path d="M108.75 60C108.75 86.9239 86.9239 108.75 60 108.75C51.4601 108.75 43.433 106.554 36.4526 102.696C35.7805 102.325 34.9963 102.202 34.2485 102.377L12.5634 107.437L17.6233 85.7513C17.7978 85.0035 17.6752 84.2193 17.3037 83.5472C13.4459 76.5669 11.25 68.5399 11.25 60C11.25 33.0761 33.0761 11.25 60 11.25C86.9239 11.25 108.75 33.0761 108.75 60Z" fill="white"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.5 KiB |
@ -6,7 +6,7 @@
|
||||
"description": "Private messaging from your desktop",
|
||||
"desktopName": "signal.desktop",
|
||||
"repository": "https://github.com/signalapp/Signal-Desktop.git",
|
||||
"version": "7.53.0-alpha.1",
|
||||
"version": "7.53.0",
|
||||
"license": "AGPL-3.0-only",
|
||||
"author": {
|
||||
"name": "Signal Messenger, LLC",
|
||||
@ -121,9 +121,10 @@
|
||||
"@react-types/shared": "3.27.0",
|
||||
"@signalapp/libsignal-client": "0.68.0",
|
||||
"@signalapp/quill-cjs": "2.1.2",
|
||||
"@signalapp/ringrtc": "2.50.5",
|
||||
"@signalapp/sqlcipher": "2.0.0",
|
||||
"@signalapp/ringrtc": "2.51.0",
|
||||
"@signalapp/sqlcipher": "2.0.1",
|
||||
"@tanstack/react-virtual": "3.11.2",
|
||||
"@types/dom-mediacapture-transform": "0.1.11",
|
||||
"@types/fabric": "4.5.3",
|
||||
"backbone": "1.6.0",
|
||||
"blob-util": "2.0.2",
|
||||
|
||||
35
pnpm-lock.yaml
generated
@ -138,14 +138,17 @@ importers:
|
||||
specifier: 2.1.2
|
||||
version: 2.1.2
|
||||
'@signalapp/ringrtc':
|
||||
specifier: 2.50.5
|
||||
version: 2.50.5
|
||||
specifier: 2.51.0
|
||||
version: 2.51.0
|
||||
'@signalapp/sqlcipher':
|
||||
specifier: 2.0.0
|
||||
version: 2.0.0
|
||||
specifier: 2.0.1
|
||||
version: 2.0.1
|
||||
'@tanstack/react-virtual':
|
||||
specifier: 3.11.2
|
||||
version: 3.11.2(react-dom@17.0.2(react@17.0.2))(react@17.0.2)
|
||||
'@types/dom-mediacapture-transform':
|
||||
specifier: 0.1.11
|
||||
version: 0.1.11
|
||||
'@types/fabric':
|
||||
specifier: 4.5.3
|
||||
version: 4.5.3(patch_hash=e5f339ecf72fbab1c91505e7713e127a7184bfe8164aa3a9afe9bf45a0ad6b89)
|
||||
@ -2547,11 +2550,11 @@ packages:
|
||||
resolution: {integrity: sha512-y2sgqdivlrG41J4Zvt/82xtH/PZjDlgItqlD2g/Cv3ZbjlR6cGhTNXbfNygCJB8nXj+C7I28pjt1Zm3k0pv2mg==}
|
||||
engines: {npm: '>=8.2.3'}
|
||||
|
||||
'@signalapp/ringrtc@2.50.5':
|
||||
resolution: {integrity: sha512-4+2IfQv/wx9RMztM/tnZsvk6LjElZq7OgHITlszwJib2Gzh2Q31kyZ7vgLnsfFxfbzVQrWI9cTEc0u/hqJiDmg==}
|
||||
'@signalapp/ringrtc@2.51.0':
|
||||
resolution: {integrity: sha512-p0S7JLReO9NjfxB3Er3V6eydNB4IUfrIIimtlD7E9CerUWtejxvPNqEPxfKTCL/vVde/pqsIn0Qw9LjysA84xA==}
|
||||
|
||||
'@signalapp/sqlcipher@2.0.0':
|
||||
resolution: {integrity: sha512-1VglhOpAsAHvTFoqB1gkwbnWwU0h37flLhRHcKKYyfEbRVc+3TDRBJ54Fm8WEELnmZPju1HVGM4tnyKgq7eI+A==}
|
||||
'@signalapp/sqlcipher@2.0.1':
|
||||
resolution: {integrity: sha512-7dSgNnf/hrGZfVSGlhVH39f7BDNNOO61tg6Xu/Fa38TCeZj6/U5YILKQavBArCtkahUvzGBV9QIyRr0zereU7A==}
|
||||
|
||||
'@sinclair/typebox@0.27.8':
|
||||
resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
|
||||
@ -2956,6 +2959,12 @@ packages:
|
||||
'@types/doctrine@0.0.9':
|
||||
resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==}
|
||||
|
||||
'@types/dom-mediacapture-transform@0.1.11':
|
||||
resolution: {integrity: sha512-Y2p+nGf1bF2XMttBnsVPHUWzRRZzqUoJAKmiP10b5umnO6DDrWI0BrGDJy1pOHoOULVmGSfFNkQrAlC5dcj6nQ==}
|
||||
|
||||
'@types/dom-webcodecs@0.1.14':
|
||||
resolution: {integrity: sha512-ba9aF0qARLLQpLihONIRbj8VvAdUxO+5jIxlscVcDAQTcJmq5qVr781+ino5qbQUJUmO21cLP2eLeXYWzao5Vg==}
|
||||
|
||||
'@types/eslint-scope@3.7.7':
|
||||
resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
|
||||
|
||||
@ -12148,14 +12157,14 @@ snapshots:
|
||||
lodash: 4.17.21
|
||||
quill-delta: 5.1.0
|
||||
|
||||
'@signalapp/ringrtc@2.50.5':
|
||||
'@signalapp/ringrtc@2.51.0':
|
||||
dependencies:
|
||||
https-proxy-agent: 7.0.6
|
||||
tar: 6.2.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@signalapp/sqlcipher@2.0.0':
|
||||
'@signalapp/sqlcipher@2.0.1':
|
||||
dependencies:
|
||||
node-addon-api: 8.3.0
|
||||
node-gyp-build: 4.8.4
|
||||
@ -12700,6 +12709,12 @@ snapshots:
|
||||
|
||||
'@types/doctrine@0.0.9': {}
|
||||
|
||||
'@types/dom-mediacapture-transform@0.1.11':
|
||||
dependencies:
|
||||
'@types/dom-webcodecs': 0.1.14
|
||||
|
||||
'@types/dom-webcodecs@0.1.14': {}
|
||||
|
||||
'@types/eslint-scope@3.7.7':
|
||||
dependencies:
|
||||
'@types/eslint': 9.6.1
|
||||
|
||||
@ -50,6 +50,7 @@ RUN curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/v${NVM_VERSION}/insta
|
||||
|
||||
ENV NODE_PATH=$NVM_DIR/v$NODE_VERSION/lib/node_modules
|
||||
ENV PATH=$NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH
|
||||
ENV CI=true
|
||||
|
||||
# Install pnpm
|
||||
RUN npm install -g pnpm@10.3.0
|
||||
|
||||
@ -109,4 +109,6 @@ $ sha256sum ../release/signal-desktop_7.45.0_amd64-OUR_BUILD.deb signal-desktop_
|
||||
### What to do if the checksums don't match
|
||||
|
||||
- Double check you have followed the instructions correctly and are comparing the right versions.
|
||||
- Are you working from a previous checkout of Signal-Desktop? Some generated files might be inadvertently included in the build. Try to delete them before building:
|
||||
- `rm -rf bundles`
|
||||
- File an issue [on the Github Issues page](https://github.com/signalapp/Signal-Desktop/issues).
|
||||
|
||||
@ -177,14 +177,14 @@
|
||||
&--signal-official {
|
||||
.module-Avatar__contents {
|
||||
align-items: center;
|
||||
background-color: variables.$color-ultramarine;
|
||||
background-color: #3640fd;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.module-Avatar__image {
|
||||
height: 66%;
|
||||
width: 66%;
|
||||
height: 62%;
|
||||
width: 62%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -288,7 +288,7 @@
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
@include mixins.color-svg(
|
||||
'../images/icons/v3/official/official-compact.svg',
|
||||
'../images/icons/v3/official/official-fill-compact.svg',
|
||||
variables.$color-ultramarine
|
||||
);
|
||||
}
|
||||
@ -313,7 +313,7 @@
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
@include mixins.color-svg(
|
||||
'../images/icons/v3/official/official.svg',
|
||||
'../images/icons/v3/official/official-fill.svg',
|
||||
variables.$color-ultramarine
|
||||
);
|
||||
}
|
||||
|
||||
@ -266,6 +266,14 @@
|
||||
}
|
||||
}
|
||||
|
||||
&--official {
|
||||
&::after {
|
||||
@include details-icon(
|
||||
'../images/icons/v3/official/official-compact.svg'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
&--heart {
|
||||
&::after {
|
||||
@include details-icon('../images/icons/v3/heart/heart.svg');
|
||||
|
||||
@ -45,11 +45,16 @@
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
@include mixins.font-title-2;
|
||||
@include mixins.font-title-1;
|
||||
margin-bottom: 2px;
|
||||
margin-top: 0;
|
||||
|
||||
color: light-dark(variables.$color-gray-90, variables.$color-gray-05);
|
||||
|
||||
.module-contact-name {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
&__with {
|
||||
@ -137,16 +142,16 @@
|
||||
|
||||
max-width: 255px;
|
||||
margin-inline: auto;
|
||||
margin-block-start: 10px;
|
||||
padding-block: 16px;
|
||||
padding-inline: 20px;
|
||||
|
||||
border-radius: 18px;
|
||||
background-color: #e0e8fc;
|
||||
margin-inline: auto;
|
||||
background-color: light-dark(#eeefff, #3b3d50);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
color: variables.$color-gray-75;
|
||||
color: light-dark(variables.$color-gray-75, variables.$color-gray-02);
|
||||
}
|
||||
|
||||
&__release-notes-notice-content {
|
||||
@ -162,8 +167,8 @@
|
||||
top: 3px;
|
||||
|
||||
@include mixins.color-svg(
|
||||
'../images/icons/v3/check/check-circle-fill.svg',
|
||||
variables.$color-borage-blue
|
||||
'../images/icons/v3/official/official-compact.svg',
|
||||
light-dark(variables.$color-gray-75, variables.$color-gray-05)
|
||||
);
|
||||
}
|
||||
|
||||
@ -178,7 +183,7 @@
|
||||
|
||||
@include mixins.color-svg(
|
||||
'../images/icons/v3/bell/bell-compact.svg',
|
||||
variables.$color-gray-75
|
||||
light-dark(variables.$color-gray-75, variables.$color-gray-05)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -269,8 +269,6 @@ export class SignalProtocolStore extends EventEmitter {
|
||||
|
||||
sessionQueues = new Map<SessionIdType, PQueue>();
|
||||
|
||||
sessionQueueJobCounter = 0;
|
||||
|
||||
readonly #identityQueues = new Map<ServiceIdString, PQueue>();
|
||||
#currentZone?: Zone;
|
||||
#currentZoneDepth = 0;
|
||||
@ -1009,29 +1007,13 @@ export class SignalProtocolStore extends EventEmitter {
|
||||
|
||||
async enqueueSessionJob<T>(
|
||||
qualifiedAddress: QualifiedAddress,
|
||||
name: string,
|
||||
task: () => Promise<T>,
|
||||
zone: Zone = GLOBAL_ZONE
|
||||
): Promise<T> {
|
||||
this.sessionQueueJobCounter += 1;
|
||||
const id = this.sessionQueueJobCounter;
|
||||
|
||||
const waitStart = Date.now();
|
||||
|
||||
return this.withZone(zone, 'enqueueSessionJob', async () => {
|
||||
const queue = this.#_getSessionQueue(qualifiedAddress);
|
||||
|
||||
const waitTime = Date.now() - waitStart;
|
||||
log.info(
|
||||
`enqueueSessionJob(${id}): queuing task ${name}, waited ${waitTime}ms`
|
||||
);
|
||||
const queueStart = Date.now();
|
||||
|
||||
return queue.add<T>(() => {
|
||||
const queueTime = Date.now() - queueStart;
|
||||
log.info(
|
||||
`enqueueSessionJob(${id}): running task ${name}, waited ${queueTime}ms`
|
||||
);
|
||||
return task();
|
||||
});
|
||||
});
|
||||
@ -1611,7 +1593,6 @@ export class SignalProtocolStore extends EventEmitter {
|
||||
|
||||
await this.enqueueSessionJob(
|
||||
addr,
|
||||
`_archiveSession(${addr.toString()})`,
|
||||
async () => {
|
||||
const item = entry.hydrated ? entry.item : hydrateSession(entry.fromDB);
|
||||
|
||||
|
||||
498
ts/calling/VideoSupport.ts
Normal file
@ -0,0 +1,498 @@
|
||||
// Copyright 2025 Signal Messenger, LLC
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
/* eslint-disable max-classes-per-file */
|
||||
/* eslint-disable no-restricted-syntax */
|
||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||
/* eslint-disable no-await-in-loop */
|
||||
|
||||
import { videoPixelFormatToEnum } from '@signalapp/ringrtc';
|
||||
import type { VideoFrameSender, VideoFrameSource } from '@signalapp/ringrtc';
|
||||
import type { RefObject } from 'react';
|
||||
import * as log from '../logging/log';
|
||||
|
||||
export class GumVideoCaptureOptions {
|
||||
maxWidth = 640;
|
||||
maxHeight = 480;
|
||||
maxFramerate = 30;
|
||||
preferredDeviceId?: string;
|
||||
screenShareSourceId?: string;
|
||||
mediaStream?: MediaStream;
|
||||
onEnded?: () => void;
|
||||
}
|
||||
|
||||
interface GumConstraints extends MediaStreamConstraints {
|
||||
video?: boolean | GumTrackConstraints;
|
||||
}
|
||||
|
||||
interface GumTrackConstraints extends MediaTrackConstraints {
|
||||
mandatory?: GumTrackConstraintSet;
|
||||
}
|
||||
|
||||
type GumTrackConstraintSet = {
|
||||
chromeMediaSource: string;
|
||||
chromeMediaSourceId?: string;
|
||||
maxWidth: number;
|
||||
maxHeight: number;
|
||||
minFrameRate: number;
|
||||
maxFrameRate: number;
|
||||
};
|
||||
|
||||
export class GumVideoCapturer {
|
||||
private defaultCaptureOptions: GumVideoCaptureOptions;
|
||||
private localPreview?: RefObject<HTMLVideoElement>;
|
||||
private captureOptions?: GumVideoCaptureOptions;
|
||||
private sender?: VideoFrameSender;
|
||||
private mediaStream?: MediaStream;
|
||||
private spawnedSenderRunning = false;
|
||||
private preferredDeviceId?: string;
|
||||
private updateLocalPreviewIntervalId?: any;
|
||||
|
||||
constructor(defaultCaptureOptions: GumVideoCaptureOptions) {
|
||||
this.defaultCaptureOptions = defaultCaptureOptions;
|
||||
}
|
||||
|
||||
capturing(): boolean {
|
||||
return this.captureOptions !== undefined;
|
||||
}
|
||||
|
||||
setLocalPreview(localPreview: RefObject<HTMLVideoElement> | undefined): void {
|
||||
const oldLocalPreview = this.localPreview?.current;
|
||||
if (oldLocalPreview) {
|
||||
oldLocalPreview.srcObject = null;
|
||||
}
|
||||
|
||||
this.localPreview = localPreview;
|
||||
|
||||
this.updateLocalPreviewSourceObject();
|
||||
|
||||
// This is a dumb hack around the fact that sometimes the
|
||||
// this.localPreview.current is updated without a call
|
||||
// to setLocalPreview, in which case the local preview
|
||||
// won't be rendered.
|
||||
if (this.updateLocalPreviewIntervalId !== undefined) {
|
||||
clearInterval(this.updateLocalPreviewIntervalId);
|
||||
}
|
||||
this.updateLocalPreviewIntervalId = setInterval(
|
||||
this.updateLocalPreviewSourceObject.bind(this),
|
||||
1000
|
||||
);
|
||||
}
|
||||
|
||||
async enableCapture(options?: GumVideoCaptureOptions): Promise<void> {
|
||||
return this.startCapturing(options ?? this.defaultCaptureOptions);
|
||||
}
|
||||
|
||||
async enableCaptureAndSend(
|
||||
sender?: VideoFrameSender,
|
||||
options?: GumVideoCaptureOptions
|
||||
): Promise<void> {
|
||||
const startCapturingPromise = this.startCapturing(
|
||||
options ?? this.defaultCaptureOptions
|
||||
);
|
||||
if (sender) {
|
||||
this.startSending(sender);
|
||||
}
|
||||
// Bubble up the error.
|
||||
return startCapturingPromise;
|
||||
}
|
||||
|
||||
disable(): void {
|
||||
this.stopCapturing();
|
||||
this.stopSending();
|
||||
|
||||
if (this.updateLocalPreviewIntervalId !== undefined) {
|
||||
clearInterval(this.updateLocalPreviewIntervalId);
|
||||
}
|
||||
this.updateLocalPreviewIntervalId = undefined;
|
||||
}
|
||||
|
||||
async setPreferredDevice(deviceId: string): Promise<void> {
|
||||
this.preferredDeviceId = deviceId;
|
||||
|
||||
if (this.captureOptions) {
|
||||
const { captureOptions, sender } = this;
|
||||
|
||||
this.disable();
|
||||
// Bubble up the error if starting video failed.
|
||||
return this.enableCaptureAndSend(sender, captureOptions);
|
||||
}
|
||||
}
|
||||
|
||||
async enumerateDevices(): Promise<Array<MediaDeviceInfo>> {
|
||||
const devices = await window.navigator.mediaDevices.enumerateDevices();
|
||||
const cameras = devices.filter(d => d.kind === 'videoinput');
|
||||
return cameras;
|
||||
}
|
||||
|
||||
private async getUserMedia(
|
||||
options: GumVideoCaptureOptions
|
||||
): Promise<MediaStream> {
|
||||
// Return provided media stream
|
||||
if (options.mediaStream) {
|
||||
return options.mediaStream;
|
||||
}
|
||||
|
||||
const constraints: GumConstraints = {
|
||||
audio: false,
|
||||
video: {
|
||||
deviceId: options.preferredDeviceId ?? this.preferredDeviceId,
|
||||
width: {
|
||||
max: options.maxWidth,
|
||||
ideal: options.maxWidth,
|
||||
},
|
||||
height: {
|
||||
max: options.maxHeight,
|
||||
ideal: options.maxHeight,
|
||||
},
|
||||
frameRate: {
|
||||
max: options.maxFramerate,
|
||||
ideal: options.maxFramerate,
|
||||
},
|
||||
},
|
||||
};
|
||||
if (options.screenShareSourceId !== undefined) {
|
||||
constraints.video = {
|
||||
mandatory: {
|
||||
chromeMediaSource: 'desktop',
|
||||
chromeMediaSourceId: options.screenShareSourceId,
|
||||
maxWidth: options.maxWidth,
|
||||
maxHeight: options.maxHeight,
|
||||
minFrameRate: 1,
|
||||
maxFrameRate: options.maxFramerate,
|
||||
},
|
||||
};
|
||||
}
|
||||
return window.navigator.mediaDevices.getUserMedia(constraints);
|
||||
}
|
||||
|
||||
private async startCapturing(options: GumVideoCaptureOptions): Promise<void> {
|
||||
if (this.capturing()) {
|
||||
log.warn('startCapturing(): already capturing');
|
||||
return;
|
||||
}
|
||||
log.info(
|
||||
`startCapturing(): ${options.maxWidth}x${options.maxHeight}@${options.maxFramerate}`
|
||||
);
|
||||
this.captureOptions = options;
|
||||
try {
|
||||
// If we start/stop/start, we may have concurrent calls to getUserMedia,
|
||||
// which is what we want if we're switching from camera to screenshare.
|
||||
// But we need to make sure we deal with the fact that things might be
|
||||
// different after the await here.
|
||||
const mediaStream = await this.getUserMedia(options);
|
||||
// It's possible video was disabled, switched to screenshare, or
|
||||
// switched to a different camera while awaiting a response, in
|
||||
// which case we need to disable the camera we just accessed.
|
||||
if (this.captureOptions !== options) {
|
||||
log.warn('startCapturing(): different state after getUserMedia()');
|
||||
for (const track of mediaStream.getVideoTracks()) {
|
||||
// Make the light turn off faster
|
||||
track.stop();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (
|
||||
this.mediaStream !== undefined &&
|
||||
this.mediaStream.getVideoTracks().length > 0
|
||||
) {
|
||||
// We have a stream and track for the requested camera already. Stop
|
||||
// the duplicate track that we just started.
|
||||
log.warn('startCapturing(): dropping duplicate call to startCapturing');
|
||||
for (const track of mediaStream.getVideoTracks()) {
|
||||
track.stop();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
this.mediaStream = mediaStream;
|
||||
if (
|
||||
!this.spawnedSenderRunning &&
|
||||
this.mediaStream !== undefined &&
|
||||
this.sender !== undefined
|
||||
) {
|
||||
this.spawnSender(this.mediaStream, this.sender);
|
||||
}
|
||||
|
||||
this.updateLocalPreviewSourceObject();
|
||||
} catch (e) {
|
||||
log.error(`startCapturing(): ${e}`);
|
||||
|
||||
// It's possible video was disabled, switched to screenshare, or
|
||||
// switched to a different camera while awaiting a response, in
|
||||
// which case we should reset the captureOptions if we set them.
|
||||
if (this.captureOptions === options) {
|
||||
// We couldn't open the camera. Oh well.
|
||||
this.captureOptions = undefined;
|
||||
}
|
||||
// Re-raise so that callers can surface this condition to the user.
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
private stopCapturing(): void {
|
||||
if (!this.capturing()) {
|
||||
log.warn('stopCapturing(): not capturing');
|
||||
return;
|
||||
}
|
||||
log.info('stopCapturing()');
|
||||
this.captureOptions = undefined;
|
||||
if (this.mediaStream) {
|
||||
for (const track of this.mediaStream.getVideoTracks()) {
|
||||
// Make the light turn off faster
|
||||
track.stop();
|
||||
}
|
||||
this.mediaStream = undefined;
|
||||
}
|
||||
|
||||
this.updateLocalPreviewSourceObject();
|
||||
}
|
||||
|
||||
private startSending(sender: VideoFrameSender): void {
|
||||
if (this.sender === sender) {
|
||||
return;
|
||||
}
|
||||
if (this.sender) {
|
||||
// If we're replacing an existing sender, make sure we stop the
|
||||
// current setInterval loop before starting another one.
|
||||
this.stopSending();
|
||||
}
|
||||
this.sender = sender;
|
||||
|
||||
if (!this.spawnedSenderRunning && this.mediaStream !== undefined) {
|
||||
this.spawnSender(this.mediaStream, this.sender);
|
||||
}
|
||||
}
|
||||
|
||||
private spawnSender(mediaStream: MediaStream, sender: VideoFrameSender) {
|
||||
const track = mediaStream.getVideoTracks()[0];
|
||||
if (track === undefined || this.spawnedSenderRunning) {
|
||||
return;
|
||||
}
|
||||
|
||||
const { onEnded } = this.captureOptions || {};
|
||||
|
||||
if (track.readyState === 'ended') {
|
||||
this.stopCapturing();
|
||||
log.error('spawnSender(): Video track ended before spawning sender');
|
||||
return;
|
||||
}
|
||||
|
||||
const reader = new MediaStreamTrackProcessor({
|
||||
track,
|
||||
}).readable.getReader();
|
||||
const buffer = Buffer.alloc(MAX_VIDEO_CAPTURE_BUFFER_SIZE);
|
||||
this.spawnedSenderRunning = true;
|
||||
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
||||
(async () => {
|
||||
try {
|
||||
while (mediaStream === this.mediaStream) {
|
||||
const { done, value: frame } = await reader.read();
|
||||
if (done) {
|
||||
break;
|
||||
}
|
||||
if (!frame) {
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
const format = videoPixelFormatToEnum(frame.format ?? 'I420');
|
||||
if (format === undefined) {
|
||||
log.warn(`Unsupported video frame format: ${frame.format}`);
|
||||
break;
|
||||
}
|
||||
|
||||
const { width, height } = frame.visibleRect || {};
|
||||
if (!width || !height) {
|
||||
continue;
|
||||
}
|
||||
|
||||
await frame.copyTo(buffer);
|
||||
if (sender !== this.sender) {
|
||||
break;
|
||||
}
|
||||
|
||||
sender.sendVideoFrame(width, height, format, buffer);
|
||||
} catch (e) {
|
||||
log.error(`sendVideoFrame(): ${e}`);
|
||||
} finally {
|
||||
// This must be called for more frames to come.
|
||||
frame.close();
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
log.error(`spawnSender(): ${e}`);
|
||||
} finally {
|
||||
reader.releaseLock();
|
||||
onEnded?.();
|
||||
}
|
||||
this.spawnedSenderRunning = false;
|
||||
})();
|
||||
}
|
||||
|
||||
private stopSending(): void {
|
||||
// The spawned sender should stop
|
||||
this.sender = undefined;
|
||||
}
|
||||
|
||||
private updateLocalPreviewSourceObject(): void {
|
||||
if (!this.localPreview) {
|
||||
return;
|
||||
}
|
||||
const localPreview = this.localPreview.current;
|
||||
if (!localPreview) {
|
||||
return;
|
||||
}
|
||||
|
||||
const { mediaStream = null } = this;
|
||||
|
||||
if (localPreview.srcObject === mediaStream) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (mediaStream && this.captureOptions) {
|
||||
localPreview.srcObject = mediaStream;
|
||||
if (localPreview.width === 0) {
|
||||
localPreview.width = this.captureOptions.maxWidth;
|
||||
}
|
||||
if (localPreview.height === 0) {
|
||||
localPreview.height = this.captureOptions.maxHeight;
|
||||
}
|
||||
} else {
|
||||
localPreview.srcObject = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const MAX_VIDEO_CAPTURE_WIDTH = 2880;
|
||||
export const MAX_VIDEO_CAPTURE_HEIGHT = 1800;
|
||||
export const MAX_VIDEO_CAPTURE_AREA =
|
||||
MAX_VIDEO_CAPTURE_WIDTH * MAX_VIDEO_CAPTURE_HEIGHT;
|
||||
export const MAX_VIDEO_CAPTURE_BUFFER_SIZE = MAX_VIDEO_CAPTURE_AREA * 4;
|
||||
|
||||
export class CanvasVideoRenderer {
|
||||
private canvas?: RefObject<HTMLCanvasElement>;
|
||||
private buffer: Buffer;
|
||||
private imageData?: ImageData;
|
||||
private source?: VideoFrameSource;
|
||||
private rafId?: any;
|
||||
|
||||
constructor() {
|
||||
this.buffer = Buffer.alloc(MAX_VIDEO_CAPTURE_BUFFER_SIZE);
|
||||
}
|
||||
|
||||
setCanvas(canvas: RefObject<HTMLCanvasElement> | undefined): void {
|
||||
this.canvas = canvas;
|
||||
}
|
||||
|
||||
enable(source: VideoFrameSource): void {
|
||||
if (this.source === source) {
|
||||
return;
|
||||
}
|
||||
if (this.source) {
|
||||
// If we're replacing an existing source, make sure we stop the
|
||||
// current rAF loop before starting another one.
|
||||
if (this.rafId) {
|
||||
window.cancelAnimationFrame(this.rafId);
|
||||
}
|
||||
}
|
||||
this.source = source;
|
||||
this.requestAnimationFrameCallback();
|
||||
}
|
||||
|
||||
disable(): void {
|
||||
this.renderBlack();
|
||||
this.source = undefined;
|
||||
if (this.rafId) {
|
||||
window.cancelAnimationFrame(this.rafId);
|
||||
}
|
||||
}
|
||||
|
||||
private requestAnimationFrameCallback() {
|
||||
this.renderVideoFrame();
|
||||
this.rafId = window.requestAnimationFrame(
|
||||
this.requestAnimationFrameCallback.bind(this)
|
||||
);
|
||||
}
|
||||
|
||||
private renderBlack() {
|
||||
if (!this.canvas) {
|
||||
return;
|
||||
}
|
||||
const canvas = this.canvas.current;
|
||||
if (!canvas) {
|
||||
return;
|
||||
}
|
||||
const context = canvas.getContext('2d');
|
||||
if (!context) {
|
||||
return;
|
||||
}
|
||||
context.fillStyle = 'black';
|
||||
context.fillRect(0, 0, canvas.width, canvas.height);
|
||||
}
|
||||
|
||||
private renderVideoFrame() {
|
||||
if (!this.source || !this.canvas) {
|
||||
return;
|
||||
}
|
||||
const canvas = this.canvas.current;
|
||||
if (!canvas) {
|
||||
return;
|
||||
}
|
||||
const context = canvas.getContext('2d');
|
||||
if (!context) {
|
||||
return;
|
||||
}
|
||||
|
||||
const frame = this.source.receiveVideoFrame(
|
||||
this.buffer,
|
||||
MAX_VIDEO_CAPTURE_WIDTH,
|
||||
MAX_VIDEO_CAPTURE_HEIGHT
|
||||
);
|
||||
if (!frame) {
|
||||
return;
|
||||
}
|
||||
const [width, height] = frame;
|
||||
|
||||
if (
|
||||
canvas.clientWidth <= 0 ||
|
||||
width <= 0 ||
|
||||
canvas.clientHeight <= 0 ||
|
||||
height <= 0
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
const frameAspectRatio = width / height;
|
||||
const canvasAspectRatio = canvas.clientWidth / canvas.clientHeight;
|
||||
|
||||
let dx = 0;
|
||||
let dy = 0;
|
||||
if (frameAspectRatio > canvasAspectRatio) {
|
||||
// Frame wider than view: We need bars at the top and bottom
|
||||
canvas.width = width;
|
||||
canvas.height = width / canvasAspectRatio;
|
||||
dy = (canvas.height - height) / 2;
|
||||
} else if (frameAspectRatio < canvasAspectRatio) {
|
||||
// Frame narrower than view: We need pillars on the sides
|
||||
canvas.width = height * canvasAspectRatio;
|
||||
canvas.height = height;
|
||||
dx = (canvas.width - width) / 2;
|
||||
} else {
|
||||
// Will stretch perfectly with no bars
|
||||
canvas.width = width;
|
||||
canvas.height = height;
|
||||
}
|
||||
|
||||
if (dx > 0 || dy > 0) {
|
||||
context.fillStyle = 'black';
|
||||
context.fillRect(0, 0, canvas.width, canvas.height);
|
||||
}
|
||||
|
||||
if (this.imageData?.width !== width || this.imageData?.height !== height) {
|
||||
this.imageData = new ImageData(width, height);
|
||||
}
|
||||
this.imageData.data.set(this.buffer.subarray(0, width * height * 4));
|
||||
context.putImageData(this.imageData, dx, dy);
|
||||
}
|
||||
}
|
||||
@ -43,6 +43,7 @@ export type PropsType = ContactNameData & {
|
||||
module?: string;
|
||||
preferFirstName?: boolean;
|
||||
onClick?: VoidFunction;
|
||||
largeVerifiedBadge?: boolean;
|
||||
};
|
||||
|
||||
export function ContactName({
|
||||
@ -54,6 +55,7 @@ export function ContactName({
|
||||
preferFirstName,
|
||||
title,
|
||||
onClick,
|
||||
largeVerifiedBadge,
|
||||
}: PropsType): JSX.Element {
|
||||
const getClassName = getClassNamesFor('module-contact-name', module);
|
||||
|
||||
@ -75,7 +77,13 @@ export function ContactName({
|
||||
>
|
||||
<Emojify text={text} />
|
||||
{(isSignalConversation || isMe) && (
|
||||
<span className="ContactModal__official-badge" />
|
||||
<span
|
||||
className={
|
||||
largeVerifiedBadge
|
||||
? 'ContactModal__official-badge__large'
|
||||
: 'ContactModal__official-badge'
|
||||
}
|
||||
/>
|
||||
)}
|
||||
</WrappingElement>
|
||||
);
|
||||
|
||||
@ -120,6 +120,8 @@ DirectNoGroupsJustProfile.args = {
|
||||
|
||||
export const SignalConversation = Template.bind({});
|
||||
SignalConversation.args = {
|
||||
avatarUrl: 'images/profile-avatar.svg',
|
||||
title: 'Signal',
|
||||
isSignalConversation: true,
|
||||
phoneNumber: casual.phone,
|
||||
};
|
||||
|
||||
@ -291,10 +291,20 @@ export function ConversationHero({
|
||||
let titleElem: JSX.Element | undefined;
|
||||
|
||||
if (isMe) {
|
||||
titleElem = <>{i18n('icu:noteToSelf')}</>;
|
||||
titleElem = (
|
||||
<ContactName
|
||||
isMe={isMe}
|
||||
title={i18n('icu:noteToSelf')}
|
||||
largeVerifiedBadge={isMe}
|
||||
/>
|
||||
);
|
||||
} else if (isSignalConversation || conversationType !== 'direct') {
|
||||
titleElem = (
|
||||
<ContactName isSignalConversation={isSignalConversation} title={title} />
|
||||
<ContactName
|
||||
isSignalConversation={isSignalConversation}
|
||||
title={title}
|
||||
largeVerifiedBadge={isSignalConversation}
|
||||
/>
|
||||
);
|
||||
} else if (title) {
|
||||
titleElem = (
|
||||
@ -336,10 +346,7 @@ export function ConversationHero({
|
||||
theme={theme}
|
||||
title={title}
|
||||
/>
|
||||
<h1 className="module-conversation-hero__profile-name">
|
||||
{titleElem}
|
||||
{isMe && <span className="ContactModal__official-badge__large" />}
|
||||
</h1>
|
||||
<h1 className="module-conversation-hero__profile-name">{titleElem}</h1>
|
||||
{about && !isMe && (
|
||||
<div className="module-about__container">
|
||||
<About text={about} />
|
||||
|
||||
@ -495,7 +495,7 @@ export function ConversationDetails({
|
||||
icon={
|
||||
<ConversationDetailsIcon
|
||||
ariaLabel={i18n('icu:ConversationHero--signal-official-chat')}
|
||||
icon={IconType.timer}
|
||||
icon={IconType.official}
|
||||
/>
|
||||
}
|
||||
label={i18n('icu:ConversationHero--signal-official-chat')}
|
||||
|
||||
@ -26,6 +26,7 @@ export enum IconType {
|
||||
'mention' = 'mention',
|
||||
'mute' = 'mute',
|
||||
'notifications' = 'notifications',
|
||||
'official' = 'official',
|
||||
'reset' = 'reset',
|
||||
'share' = 'share',
|
||||
'spinner' = 'spinner',
|
||||
|
||||
@ -1,20 +1,7 @@
|
||||
// Copyright 2025 Signal Messenger, LLC
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
import * as RemoteConfig from '../../RemoteConfig';
|
||||
import { isBeta, isProduction } from '../../util/version';
|
||||
|
||||
export function isFunPickerEnabled(): boolean {
|
||||
const version = window.getVersion?.();
|
||||
|
||||
if (version != null) {
|
||||
if (isProduction(version)) {
|
||||
return RemoteConfig.isEnabled('desktop.funPicker.prod');
|
||||
}
|
||||
|
||||
if (isBeta(version)) {
|
||||
return RemoteConfig.isEnabled('desktop.funPicker.beta');
|
||||
}
|
||||
}
|
||||
|
||||
return RemoteConfig.isEnabled('desktop.funPicker');
|
||||
}
|
||||
|
||||
@ -81,7 +81,11 @@ function getStringFromNode(
|
||||
element.classList.contains(FUN_STATIC_EMOJI_CLASS) ||
|
||||
element.classList.contains(FUN_INLINE_EMOJI_CLASS)
|
||||
) {
|
||||
return element.ariaLabel || '';
|
||||
return (
|
||||
element.ariaLabel ||
|
||||
element.attributes.getNamedItem('data-emoji-value')?.value ||
|
||||
''
|
||||
);
|
||||
}
|
||||
|
||||
// Sometimes we need to add multiple newlines to represent nested divs, and other times
|
||||
|
||||
@ -21,14 +21,12 @@ import {
|
||||
CallLinkRootKey,
|
||||
CallLogLevel,
|
||||
CallState,
|
||||
CanvasVideoRenderer,
|
||||
ConnectionState,
|
||||
DataMode,
|
||||
JoinState,
|
||||
HttpMethod,
|
||||
GroupCall,
|
||||
GroupMemberInfo,
|
||||
GumVideoCapturer,
|
||||
HangupMessage,
|
||||
HangupType,
|
||||
IceCandidateMessage,
|
||||
@ -41,7 +39,6 @@ import {
|
||||
SpeechEvent,
|
||||
} from '@signalapp/ringrtc';
|
||||
import { uniqBy, noop, compact } from 'lodash';
|
||||
|
||||
import Long from 'long';
|
||||
import type { CallLinkAuthCredentialPresentation } from '@signalapp/libsignal-client/zkgroup';
|
||||
import {
|
||||
@ -51,7 +48,8 @@ import {
|
||||
GenericServerPublicParams,
|
||||
} from '@signalapp/libsignal-client/zkgroup';
|
||||
import { Aci } from '@signalapp/libsignal-client';
|
||||
import type { GumVideoCaptureOptions } from '@signalapp/ringrtc/dist/ringrtc/VideoSupport';
|
||||
import { CanvasVideoRenderer, GumVideoCapturer } from '../calling/VideoSupport';
|
||||
import type { GumVideoCaptureOptions } from '../calling/VideoSupport';
|
||||
import type {
|
||||
ActionsType as CallingReduxActionsType,
|
||||
GroupCallParticipantInfoType,
|
||||
@ -229,7 +227,6 @@ type CallingReduxInterface = Pick<
|
||||
|
||||
export type SetPresentingOptionsType = Readonly<{
|
||||
conversationId: string;
|
||||
hasLocalVideo: boolean;
|
||||
mediaStream?: MediaStream;
|
||||
source?: PresentedSource;
|
||||
callLinkRootKey?: string;
|
||||
@ -424,7 +421,6 @@ const GROUP_CALL_OPTIONS: GumVideoCaptureOptions = {
|
||||
|
||||
export class CallingClass {
|
||||
readonly #videoCapturer: GumVideoCapturer;
|
||||
|
||||
readonly videoRenderer: CanvasVideoRenderer;
|
||||
|
||||
#localPreviewContainer: HTMLDivElement | null = null;
|
||||
@ -441,10 +437,11 @@ export class CallingClass {
|
||||
#lastMediaDeviceSettings?: MediaDeviceSettings;
|
||||
#deviceReselectionTimer?: NodeJS.Timeout;
|
||||
#callsLookup: { [key: string]: Call | GroupCall };
|
||||
#hadLocalVideoBeforePresenting?: boolean;
|
||||
#currentRtcStatsInterval: number | null = null;
|
||||
#callDebugNumber: number = 0;
|
||||
|
||||
#cameraEnabled: boolean = false;
|
||||
|
||||
// Send our profile key to other participants in call link calls to ensure they
|
||||
// can see our profile info. Only send once per aci until the next app start.
|
||||
#sendProfileKeysForAdhocCallCache: Set<AciString>;
|
||||
@ -1062,9 +1059,13 @@ export class CallingClass {
|
||||
type: 'ProfileKeyForCall',
|
||||
});
|
||||
|
||||
RingRTC.setOutgoingAudio(call.callId, hasLocalAudio);
|
||||
RingRTC.setVideoCapturer(call.callId, this.#videoCapturer);
|
||||
RingRTC.setVideoRenderer(call.callId, this.videoRenderer);
|
||||
// Set the camera disposition as we transition from the lobby to the outgoing call.
|
||||
this.#cameraEnabled = hasLocalVideo;
|
||||
|
||||
// Set the initial state for outgoing media for the outgoing call.
|
||||
call.setOutgoingAudioMuted(!hasLocalAudio);
|
||||
call.setOutgoingVideoMuted(!hasLocalVideo);
|
||||
|
||||
this.#attachToCall(conversation, call);
|
||||
|
||||
this.#reduxInterface.outgoingCall({
|
||||
@ -2080,6 +2081,12 @@ export class CallingClass {
|
||||
});
|
||||
log.info(logId);
|
||||
|
||||
const call = getOwn(this.#callsLookup, conversationId);
|
||||
if (!call || !(call instanceof Call)) {
|
||||
log.warn(`${logId}: Trying to accept a non-existent call`);
|
||||
return;
|
||||
}
|
||||
|
||||
const callId = this.#getCallIdForConversation(conversationId);
|
||||
if (!callId) {
|
||||
log.warn(`${logId}: Trying to accept a non-existent call`);
|
||||
@ -2093,9 +2100,20 @@ export class CallingClass {
|
||||
hasLocalVideo: asVideoCall,
|
||||
});
|
||||
await this.#startDeviceReselectionTimer();
|
||||
RingRTC.setVideoCapturer(callId, this.#videoCapturer);
|
||||
RingRTC.setVideoRenderer(callId, this.videoRenderer);
|
||||
RingRTC.accept(callId, asVideoCall);
|
||||
|
||||
if (asVideoCall) {
|
||||
// Warm up the camera as soon as possible.
|
||||
drop(this.enableLocalCamera(CallMode.Direct));
|
||||
}
|
||||
|
||||
// Set the starting camera disposition based on the type of call.
|
||||
this.#cameraEnabled = asVideoCall;
|
||||
|
||||
// Set the initial state for outgoing media for the incoming call.
|
||||
call.setOutgoingAudioMuted(false);
|
||||
call.setOutgoingVideoMuted(!asVideoCall);
|
||||
|
||||
RingRTC.accept(callId);
|
||||
} else {
|
||||
log.info(
|
||||
`${logId}: Permissions were denied, call not allowed, hanging up.`
|
||||
@ -2168,6 +2186,11 @@ export class CallingClass {
|
||||
entries.forEach(([callConversationId, call]) => {
|
||||
log.info(`${logId}: Hanging up conversation ${callConversationId}`);
|
||||
if (call instanceof Call) {
|
||||
// Stop media immediately upon hangup.
|
||||
this.disableLocalVideo();
|
||||
this.videoRenderer.disable();
|
||||
call.setOutgoingAudioMuted(true);
|
||||
call.setOutgoingVideoMuted(true);
|
||||
RingRTC.hangup(call.callId);
|
||||
} else if (call instanceof GroupCall) {
|
||||
// This ensures that we turn off our devices.
|
||||
@ -2197,7 +2220,7 @@ export class CallingClass {
|
||||
}
|
||||
|
||||
if (call instanceof Call) {
|
||||
RingRTC.setOutgoingAudio(call.callId, enabled);
|
||||
call.setOutgoingAudioMuted(!enabled);
|
||||
} else if (call instanceof GroupCall) {
|
||||
call.setOutgoingAudioMuted(!enabled);
|
||||
} else {
|
||||
@ -2223,8 +2246,17 @@ export class CallingClass {
|
||||
);
|
||||
}
|
||||
|
||||
this.#cameraEnabled = enabled;
|
||||
|
||||
if (call instanceof Call) {
|
||||
RingRTC.setOutgoingVideo(call.callId, enabled);
|
||||
if (enabled) {
|
||||
// Start sending video from the camera.
|
||||
await this.enableCaptureAndSend(call);
|
||||
} else {
|
||||
// Stop the camera.
|
||||
this.disableLocalVideo();
|
||||
}
|
||||
call.setOutgoingVideoMuted(!enabled);
|
||||
} else if (call instanceof GroupCall) {
|
||||
call.setOutgoingVideoMuted(!enabled);
|
||||
} else {
|
||||
@ -2237,7 +2269,7 @@ export class CallingClass {
|
||||
mediaStream: MediaStream
|
||||
): Promise<void> {
|
||||
if (call instanceof Call) {
|
||||
RingRTC.setOutgoingVideoIsScreenShare(call.callId, true);
|
||||
call.setOutgoingVideoIsScreenShare(true);
|
||||
} else if (call instanceof GroupCall) {
|
||||
call.setOutgoingVideoIsScreenShare(true);
|
||||
call.setPresenting(true);
|
||||
@ -2258,7 +2290,7 @@ export class CallingClass {
|
||||
|
||||
// Enable the video transmission once the stream is running
|
||||
if (call instanceof Call) {
|
||||
RingRTC.setOutgoingVideo(call.callId, true);
|
||||
call.setOutgoingVideoMuted(false);
|
||||
} else if (call instanceof GroupCall) {
|
||||
call.setOutgoingVideoMuted(false);
|
||||
} else {
|
||||
@ -2266,19 +2298,22 @@ export class CallingClass {
|
||||
}
|
||||
}
|
||||
|
||||
async #stopPresenting(
|
||||
call: Call | GroupCall,
|
||||
hasLocalVideo: boolean
|
||||
): Promise<void> {
|
||||
async #stopPresenting(call: Call | GroupCall): Promise<void> {
|
||||
if (call instanceof Call) {
|
||||
// Disable video transmission first
|
||||
RingRTC.setOutgoingVideo(call.callId, hasLocalVideo);
|
||||
call.setOutgoingVideoMuted(!this.#cameraEnabled);
|
||||
|
||||
// Stop screenshare
|
||||
RingRTC.setOutgoingVideoIsScreenShare(call.callId, false);
|
||||
call.setOutgoingVideoIsScreenShare(false);
|
||||
|
||||
if (this.#cameraEnabled) {
|
||||
// Start sending video from the camera since it was enabled
|
||||
// prior to screensharing
|
||||
await this.enableCaptureAndSend(call);
|
||||
}
|
||||
} else if (call instanceof GroupCall) {
|
||||
// Ditto
|
||||
call.setOutgoingVideoMuted(!hasLocalVideo);
|
||||
call.setOutgoingVideoMuted(!this.#cameraEnabled);
|
||||
|
||||
call.setOutgoingVideoIsScreenShare(false);
|
||||
call.setPresenting(false);
|
||||
@ -2289,7 +2324,6 @@ export class CallingClass {
|
||||
|
||||
async setPresenting({
|
||||
conversationId,
|
||||
hasLocalVideo,
|
||||
mediaStream,
|
||||
source,
|
||||
callLinkRootKey,
|
||||
@ -2300,16 +2334,13 @@ export class CallingClass {
|
||||
return;
|
||||
}
|
||||
|
||||
this.#videoCapturer.disable();
|
||||
this.disableLocalVideo();
|
||||
|
||||
const isPresenting = mediaStream != null;
|
||||
if (isPresenting) {
|
||||
this.#hadLocalVideoBeforePresenting = hasLocalVideo;
|
||||
await this.#startPresenting(call, mediaStream);
|
||||
} else {
|
||||
const prevHasLocalVideo =
|
||||
this.#hadLocalVideoBeforePresenting ?? hasLocalVideo;
|
||||
this.#hadLocalVideoBeforePresenting = undefined;
|
||||
await this.#stopPresenting(call, prevHasLocalVideo);
|
||||
await this.#stopPresenting(call);
|
||||
}
|
||||
|
||||
if (isPresenting) {
|
||||
@ -3243,9 +3274,19 @@ export class CallingClass {
|
||||
call.handleStateChanged = async () => {
|
||||
if (call.state === CallState.Accepted) {
|
||||
acceptedTime = acceptedTime ?? Date.now();
|
||||
}
|
||||
|
||||
// Start rendering received video frames.
|
||||
this.videoRenderer.enable(call);
|
||||
if (this.#cameraEnabled) {
|
||||
// Start sending video from the camera (if not already).
|
||||
await this.enableCaptureAndSend(call);
|
||||
}
|
||||
}
|
||||
if (call.state === CallState.Ended) {
|
||||
// Stop media since the call has ended.
|
||||
this.disableLocalVideo();
|
||||
this.videoRenderer.disable();
|
||||
|
||||
this.#stopDeviceReselectionTimer();
|
||||
this.#lastMediaDeviceSettings = undefined;
|
||||
delete this.#callsLookup[conversationId];
|
||||
|
||||
@ -1113,7 +1113,6 @@ type MergeableItemType = {
|
||||
};
|
||||
|
||||
type MergedRecordType = UnknownRecord & {
|
||||
hasConflict: boolean;
|
||||
shouldDrop: boolean;
|
||||
hasError: boolean;
|
||||
isUnsupported: boolean;
|
||||
@ -1133,7 +1132,7 @@ async function mergeRecord(
|
||||
|
||||
const ITEM_TYPE = Proto.ManifestRecord.Identifier.Type;
|
||||
|
||||
let mergeResult: MergeResultType = { hasConflict: false, details: [] };
|
||||
let mergeResult: MergeResultType = { details: [] };
|
||||
let isUnsupported = false;
|
||||
let hasError = false;
|
||||
let updatedConversations = new Array<ConversationModel>();
|
||||
@ -1220,7 +1219,6 @@ async function mergeRecord(
|
||||
log.info(
|
||||
`storageService.merge(${redactedID}): merged item type=${itemType} ` +
|
||||
`oldID=${oldID} ` +
|
||||
`conflict=${mergeResult.hasConflict} ` +
|
||||
`shouldDrop=${Boolean(mergeResult.shouldDrop)} ` +
|
||||
`details=${JSON.stringify(mergeResult.details)}`
|
||||
);
|
||||
@ -1235,7 +1233,6 @@ async function mergeRecord(
|
||||
}
|
||||
|
||||
return {
|
||||
hasConflict: mergeResult.hasConflict,
|
||||
shouldDrop: Boolean(mergeResult.shouldDrop),
|
||||
hasError,
|
||||
isUnsupported,
|
||||
@ -1286,7 +1283,7 @@ async function getNonConversationRecords(): Promise<NonConversationRecordsResult
|
||||
async function processManifest(
|
||||
manifest: Proto.IManifestRecord,
|
||||
version: number
|
||||
): Promise<number> {
|
||||
): Promise<void> {
|
||||
if (!window.textsecure.messaging) {
|
||||
throw new Error('storageService.processManifest: We are offline!');
|
||||
}
|
||||
@ -1409,14 +1406,13 @@ async function processManifest(
|
||||
});
|
||||
});
|
||||
|
||||
let conflictCount = 0;
|
||||
if (remoteOnlyRecords.size) {
|
||||
const fetchResult = await fetchRemoteRecords(
|
||||
version,
|
||||
Bytes.isNotEmpty(manifest.recordIkm) ? manifest.recordIkm : undefined,
|
||||
remoteOnlyRecords
|
||||
);
|
||||
conflictCount = await processRemoteRecords(version, fetchResult);
|
||||
await processRemoteRecords(version, fetchResult);
|
||||
}
|
||||
|
||||
// Post-merge, if our local records contain any storage IDs that were not
|
||||
@ -1559,8 +1555,6 @@ async function processManifest(
|
||||
storyDistribution,
|
||||
shouldSave
|
||||
);
|
||||
|
||||
conflictCount += 1;
|
||||
}
|
||||
|
||||
callLinkDbRecords.forEach(callLinkDbRecord => {
|
||||
@ -1629,11 +1623,7 @@ async function processManifest(
|
||||
});
|
||||
}
|
||||
|
||||
log.info(
|
||||
`storageService.process(${version}): conflictCount=${conflictCount}`
|
||||
);
|
||||
|
||||
return conflictCount;
|
||||
log.info(`storageService.process(${version}): done`);
|
||||
}
|
||||
|
||||
export type FetchRemoteRecordsResultType = Readonly<{
|
||||
@ -1769,7 +1759,7 @@ async function fetchRemoteRecords(
|
||||
async function processRemoteRecords(
|
||||
storageVersion: number,
|
||||
{ decryptedItems, missingKeys }: FetchRemoteRecordsResultType
|
||||
): Promise<number> {
|
||||
): Promise<void> {
|
||||
const ITEM_TYPE = Proto.ManifestRecord.Identifier.Type;
|
||||
const droppedKeys = new Set<string>();
|
||||
|
||||
@ -1938,8 +1928,6 @@ async function processRemoteRecords(
|
||||
|
||||
const newRecordsWithErrors: Array<UnknownRecord> = [];
|
||||
|
||||
let conflictCount = 0;
|
||||
|
||||
mergedRecords.forEach((mergedRecord: MergedRecordType) => {
|
||||
if (mergedRecord.isUnsupported) {
|
||||
unknownRecords.set(mergedRecord.storageID, {
|
||||
@ -1955,10 +1943,6 @@ async function processRemoteRecords(
|
||||
});
|
||||
}
|
||||
|
||||
if (mergedRecord.hasConflict) {
|
||||
conflictCount += 1;
|
||||
}
|
||||
|
||||
if (mergedRecord.shouldDrop) {
|
||||
droppedKeys.add(mergedRecord.storageID);
|
||||
}
|
||||
@ -2018,12 +2002,6 @@ async function processRemoteRecords(
|
||||
`count=${redactedPendingDeletes.length}`
|
||||
);
|
||||
await window.storage.put('storage-service-pending-deletes', pendingDeletes);
|
||||
|
||||
if (conflictCount === 0) {
|
||||
conflictBackOff.reset();
|
||||
}
|
||||
|
||||
return conflictCount;
|
||||
} catch (err) {
|
||||
log.error(
|
||||
`storageService.process(${storageVersion}): ` +
|
||||
@ -2031,16 +2009,11 @@ async function processRemoteRecords(
|
||||
Errors.toLogFormat(err)
|
||||
);
|
||||
}
|
||||
|
||||
// conflictCount
|
||||
return 0;
|
||||
}
|
||||
|
||||
async function sync({
|
||||
ignoreConflicts = false,
|
||||
reason,
|
||||
}: {
|
||||
ignoreConflicts?: boolean;
|
||||
reason: string;
|
||||
}): Promise<Proto.ManifestRecord | undefined> {
|
||||
if (!window.storage.get('storageKey')) {
|
||||
@ -2059,9 +2032,7 @@ async function sync({
|
||||
log.warn('storageService.sync: fixed storage key');
|
||||
}
|
||||
|
||||
log.info(
|
||||
`storageService.sync: starting... ignoreConflicts=${ignoreConflicts}, reason=${reason}`
|
||||
);
|
||||
log.info(`storageService.sync: starting... reason=${reason}`);
|
||||
|
||||
let manifest: Proto.ManifestRecord | undefined;
|
||||
try {
|
||||
@ -2097,12 +2068,9 @@ async function sync({
|
||||
`version=${localManifestVersion}`
|
||||
);
|
||||
|
||||
const conflictCount = await processManifest(manifest, version);
|
||||
await processManifest(manifest, version);
|
||||
|
||||
log.info(
|
||||
`storageService.sync: updated to version=${version} ` +
|
||||
`conflicts=${conflictCount}`
|
||||
);
|
||||
log.info(`storageService.sync: updated to version=${version}`);
|
||||
|
||||
await window.storage.put('manifestVersion', version);
|
||||
if (Bytes.isNotEmpty(manifest.recordIkm)) {
|
||||
@ -2111,11 +2079,6 @@ async function sync({
|
||||
await window.storage.remove('manifestRecordIkm');
|
||||
}
|
||||
|
||||
const hasConflicts = conflictCount !== 0;
|
||||
if (hasConflicts && !ignoreConflicts) {
|
||||
await upload({ fromSync: true, reason: `sync/${reason}` });
|
||||
}
|
||||
|
||||
// We now know that we've successfully completed a storage service fetch
|
||||
await window.storage.put('storageFetchComplete', true);
|
||||
|
||||
@ -2190,11 +2153,7 @@ async function upload({
|
||||
// Syncing before we upload so that we repair any unknown records and
|
||||
// records with errors as well as ensure that we have the latest up to date
|
||||
// manifest.
|
||||
// We are going to upload after this sync so we can ignore any conflicts
|
||||
// that arise during the sync.
|
||||
const ignoreConflicts = true;
|
||||
previousManifest = await sync({
|
||||
ignoreConflicts,
|
||||
reason: `upload/${reason}`,
|
||||
});
|
||||
}
|
||||
@ -2326,23 +2285,12 @@ export async function reprocessUnknownFields(): Promise<void> {
|
||||
)
|
||||
);
|
||||
|
||||
const conflictCount = await processRemoteRecords(version, {
|
||||
await processRemoteRecords(version, {
|
||||
decryptedItems: newRecords,
|
||||
missingKeys: new Set(),
|
||||
});
|
||||
|
||||
log.info(
|
||||
`storageService.reprocessUnknownFields(${version}): done, ` +
|
||||
`conflictCount=${conflictCount}`
|
||||
);
|
||||
|
||||
const hasConflicts = conflictCount !== 0;
|
||||
if (hasConflicts) {
|
||||
log.info(
|
||||
`storageService.reprocessUnknownFields(${version}): uploading`
|
||||
);
|
||||
await upload({ reason: 'reprocessUnknownFields/hasConflicts' });
|
||||
}
|
||||
log.info(`storageService.reprocessUnknownFields(${version}): done`);
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
@ -94,7 +94,6 @@ type RecordClass =
|
||||
| Proto.IGroupV2Record;
|
||||
|
||||
export type MergeResultType = Readonly<{
|
||||
hasConflict: boolean;
|
||||
shouldDrop?: boolean;
|
||||
conversation?: ConversationModel;
|
||||
needsProfileFetch?: boolean;
|
||||
@ -104,11 +103,6 @@ export type MergeResultType = Readonly<{
|
||||
details: ReadonlyArray<string>;
|
||||
}>;
|
||||
|
||||
type HasConflictResultType = Readonly<{
|
||||
hasConflict: boolean;
|
||||
details: ReadonlyArray<string>;
|
||||
}>;
|
||||
|
||||
function toRecordVerified(verified: number): Proto.ContactRecord.IdentityState {
|
||||
const VERIFIED_ENUM = window.textsecure.storage.protocol.VerifiedStatus;
|
||||
const STATE_ENUM = Proto.ContactRecord.IdentityState;
|
||||
@ -751,11 +745,22 @@ type RecordClassObject = {
|
||||
[key: string]: any;
|
||||
};
|
||||
|
||||
function doRecordsConflict(
|
||||
localRecord: RecordClassObject,
|
||||
function areNicknamesEqual(
|
||||
local: Proto.ContactRecord.IName,
|
||||
remote: Proto.ContactRecord.IName
|
||||
): boolean {
|
||||
return local.given === remote.given && local.family === remote.family;
|
||||
}
|
||||
|
||||
function logRecordChanges(
|
||||
localRecord: RecordClassObject | undefined,
|
||||
remoteRecord: RecordClassObject
|
||||
): HasConflictResultType {
|
||||
): Array<string> {
|
||||
const details = new Array<string>();
|
||||
if (localRecord == null) {
|
||||
details.push('no local');
|
||||
return details;
|
||||
}
|
||||
|
||||
for (const key of Object.keys(remoteRecord)) {
|
||||
const localValue = localRecord[key];
|
||||
@ -795,6 +800,14 @@ function doRecordsConflict(
|
||||
continue;
|
||||
}
|
||||
|
||||
if (key === 'nickname') {
|
||||
const areEqual = areNicknamesEqual(localValue, remoteValue);
|
||||
if (!areEqual) {
|
||||
details.push('nickname');
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if (localValue === remoteValue) {
|
||||
continue;
|
||||
}
|
||||
@ -823,37 +836,7 @@ function doRecordsConflict(
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
hasConflict: details.length > 0,
|
||||
details,
|
||||
};
|
||||
}
|
||||
|
||||
function doesRecordHavePendingChanges(
|
||||
mergedRecord: RecordClass,
|
||||
serviceRecord: RecordClass,
|
||||
conversation: ConversationModel
|
||||
): HasConflictResultType {
|
||||
const shouldSync = Boolean(conversation.get('needsStorageServiceSync'));
|
||||
|
||||
if (!shouldSync) {
|
||||
return { hasConflict: false, details: [] };
|
||||
}
|
||||
|
||||
const { hasConflict, details } = doRecordsConflict(
|
||||
mergedRecord,
|
||||
serviceRecord
|
||||
);
|
||||
|
||||
if (!hasConflict) {
|
||||
conversation.set({ needsStorageServiceSync: false });
|
||||
}
|
||||
|
||||
return {
|
||||
hasConflict,
|
||||
details,
|
||||
};
|
||||
return details;
|
||||
}
|
||||
|
||||
export async function mergeGroupV1Record(
|
||||
@ -870,7 +853,6 @@ export async function mergeGroupV1Record(
|
||||
}
|
||||
|
||||
const groupId = Bytes.toBinary(groupV1Record.id);
|
||||
let details = new Array<string>();
|
||||
|
||||
// Attempt to fetch an existing group pertaining to the `groupId` or create
|
||||
// a new group and populate it with the attributes from the record.
|
||||
@ -887,6 +869,11 @@ export async function mergeGroupV1Record(
|
||||
);
|
||||
}
|
||||
|
||||
const details = logRecordChanges(
|
||||
conversation == null ? undefined : toGroupV1Record(conversation),
|
||||
groupV1Record
|
||||
);
|
||||
|
||||
if (!conversation) {
|
||||
// It's possible this group was migrated to a GV2 if so we attempt to
|
||||
// retrieve the master key and find the conversation locally. If we
|
||||
@ -920,9 +907,6 @@ export async function mergeGroupV1Record(
|
||||
details.push('GV1 record for GV2 group, dropping');
|
||||
|
||||
return {
|
||||
// Note: conflicts cause immediate uploads, but we should upload
|
||||
// only in response to user's action.
|
||||
hasConflict: false,
|
||||
shouldDrop: true,
|
||||
conversation,
|
||||
oldStorageID,
|
||||
@ -934,33 +918,22 @@ export async function mergeGroupV1Record(
|
||||
conversation.set({
|
||||
storageID,
|
||||
storageVersion,
|
||||
needsStorageServiceSync: false,
|
||||
});
|
||||
|
||||
let hasPendingChanges: boolean;
|
||||
|
||||
if (isGroupV1(conversation.attributes)) {
|
||||
addUnknownFields(groupV1Record, conversation, details);
|
||||
|
||||
const { hasConflict, details: extraDetails } = doesRecordHavePendingChanges(
|
||||
toGroupV1Record(conversation),
|
||||
groupV1Record,
|
||||
conversation
|
||||
);
|
||||
|
||||
details = details.concat(extraDetails);
|
||||
hasPendingChanges = hasConflict;
|
||||
} else {
|
||||
// We cannot preserve unknown fields if local group is V2 and the remote is
|
||||
// still V1, because the storageItem that we'll put into manifest will have
|
||||
// a different record type.
|
||||
|
||||
// We want to upgrade group in the storage after merging it.
|
||||
hasPendingChanges = true;
|
||||
conversation.set({ needsStorageServiceSync: true });
|
||||
details.push('marking v1 group for an update to v2');
|
||||
}
|
||||
|
||||
return {
|
||||
hasConflict: hasPendingChanges,
|
||||
conversation,
|
||||
oldStorageID,
|
||||
oldStorageVersion,
|
||||
@ -1052,6 +1025,11 @@ export async function mergeGroupV2Record(
|
||||
throw missingCaseError(recordStorySendMode);
|
||||
}
|
||||
|
||||
const details = logRecordChanges(
|
||||
toGroupV2Record(conversation),
|
||||
groupV2Record
|
||||
);
|
||||
|
||||
conversation.set({
|
||||
hideStory: Boolean(groupV2Record.hideStory),
|
||||
isArchived: Boolean(groupV2Record.archived),
|
||||
@ -1062,6 +1040,7 @@ export async function mergeGroupV2Record(
|
||||
storageID,
|
||||
storageVersion,
|
||||
storySendMode,
|
||||
needsStorageServiceSync: false,
|
||||
});
|
||||
|
||||
conversation.setMuteExpiration(
|
||||
@ -1078,18 +1057,8 @@ export async function mergeGroupV2Record(
|
||||
|
||||
applyAvatarColor(conversation, groupV2Record.avatarColor);
|
||||
|
||||
let details = new Array<string>();
|
||||
|
||||
addUnknownFields(groupV2Record, conversation, details);
|
||||
|
||||
const { hasConflict, details: extraDetails } = doesRecordHavePendingChanges(
|
||||
toGroupV2Record(conversation),
|
||||
groupV2Record,
|
||||
conversation
|
||||
);
|
||||
|
||||
details = details.concat(extraDetails);
|
||||
|
||||
if (isGroupV1(conversation.attributes)) {
|
||||
// If we found a GroupV1 conversation from this incoming GroupV2 record, we need to
|
||||
// migrate it!
|
||||
@ -1119,7 +1088,6 @@ export async function mergeGroupV2Record(
|
||||
}
|
||||
|
||||
return {
|
||||
hasConflict,
|
||||
conversation,
|
||||
updatedConversations: [conversation],
|
||||
oldStorageID,
|
||||
@ -1157,18 +1125,18 @@ export async function mergeContactRecord(
|
||||
|
||||
// All contacts must have UUID
|
||||
if (!serviceId) {
|
||||
return { hasConflict: false, shouldDrop: true, details: ['no uuid'] };
|
||||
return { shouldDrop: true, details: ['no uuid'] };
|
||||
}
|
||||
|
||||
// Contacts should not have PNI as ACI
|
||||
if (aci && !isAciString(aci)) {
|
||||
return { hasConflict: false, shouldDrop: true, details: ['invalid aci'] };
|
||||
return { shouldDrop: true, details: ['invalid aci'] };
|
||||
}
|
||||
|
||||
if (
|
||||
window.storage.user.getOurServiceIdKind(serviceId) !== ServiceIdKind.Unknown
|
||||
) {
|
||||
return { hasConflict: false, shouldDrop: true, details: ['our own uuid'] };
|
||||
return { shouldDrop: true, details: ['our own uuid'] };
|
||||
}
|
||||
|
||||
const { conversation } = window.ConversationController.maybeMergeContacts({
|
||||
@ -1179,6 +1147,11 @@ export async function mergeContactRecord(
|
||||
reason: 'mergeContactRecord',
|
||||
});
|
||||
|
||||
const details = logRecordChanges(
|
||||
await toContactRecord(conversation),
|
||||
originalContactRecord
|
||||
);
|
||||
|
||||
// We're going to ignore this; it's likely a PNI-only contact we've already merged
|
||||
if (conversation.getServiceId() !== serviceId) {
|
||||
const previousStorageID = conversation.get('storageID');
|
||||
@ -1194,9 +1167,8 @@ export async function mergeContactRecord(
|
||||
`had serviceId that didn't match provided serviceId ${serviceId}`
|
||||
);
|
||||
return {
|
||||
hasConflict: false,
|
||||
shouldDrop: true,
|
||||
details: [],
|
||||
details,
|
||||
};
|
||||
}
|
||||
|
||||
@ -1212,7 +1184,6 @@ export async function mergeContactRecord(
|
||||
);
|
||||
}
|
||||
|
||||
let details = new Array<string>();
|
||||
const remoteName = dropNull(contactRecord.givenName);
|
||||
const remoteFamilyName = dropNull(contactRecord.familyName);
|
||||
const localName = conversation.get('profileName');
|
||||
@ -1255,7 +1226,6 @@ export async function mergeContactRecord(
|
||||
const verified = await conversation.safeGetVerified();
|
||||
let { identityState } = contactRecord;
|
||||
if (identityState == null) {
|
||||
details.push('identity state was null, reverting to default state');
|
||||
identityState = Proto.ContactRecord.IdentityState.DEFAULT;
|
||||
}
|
||||
const newVerified = fromRecordVerified(identityState);
|
||||
@ -1269,7 +1239,8 @@ export async function mergeContactRecord(
|
||||
|
||||
if (verified !== newVerified) {
|
||||
details.push(
|
||||
`updating verified state from=${verified} to=${newVerified}`
|
||||
`updating verified state from=${verified} ` +
|
||||
`is_null=${identityState == null} to=${newVerified}`
|
||||
);
|
||||
|
||||
conversation.set({ verified: newVerified });
|
||||
@ -1299,6 +1270,7 @@ export async function mergeContactRecord(
|
||||
markedUnread: Boolean(contactRecord.markedUnread),
|
||||
storageID,
|
||||
storageVersion,
|
||||
needsStorageServiceSync: false,
|
||||
});
|
||||
|
||||
if (contactRecord.hidden) {
|
||||
@ -1338,15 +1310,7 @@ export async function mergeContactRecord(
|
||||
|
||||
applyAvatarColor(conversation, contactRecord.avatarColor);
|
||||
|
||||
const { hasConflict, details: extraDetails } = doesRecordHavePendingChanges(
|
||||
await toContactRecord(conversation),
|
||||
contactRecord,
|
||||
conversation
|
||||
);
|
||||
details = details.concat(extraDetails);
|
||||
|
||||
return {
|
||||
hasConflict,
|
||||
conversation,
|
||||
updatedConversations: [conversation],
|
||||
needsProfileFetch,
|
||||
@ -1361,7 +1325,6 @@ export async function mergeAccountRecord(
|
||||
storageVersion: number,
|
||||
accountRecord: Proto.IAccountRecord
|
||||
): Promise<MergeResultType> {
|
||||
let details = new Array<string>();
|
||||
const {
|
||||
linkPreviews,
|
||||
unlistedPhoneNumber,
|
||||
@ -1393,6 +1356,14 @@ export async function mergeAccountRecord(
|
||||
usernameLink,
|
||||
} = accountRecord;
|
||||
|
||||
const conversation =
|
||||
window.ConversationController.getOurConversationOrThrow();
|
||||
|
||||
const details = logRecordChanges(
|
||||
toAccountRecord(conversation),
|
||||
accountRecord
|
||||
);
|
||||
|
||||
const updatedConversations = new Array<ConversationModel>();
|
||||
|
||||
await window.storage.put('read-receipt-setting', Boolean(readReceipts));
|
||||
@ -1476,10 +1447,10 @@ export async function mergeAccountRecord(
|
||||
if (pinnedConversations) {
|
||||
const modelPinnedConversations = window
|
||||
.getConversations()
|
||||
.filter(conversation => Boolean(conversation.get('isPinned')));
|
||||
.filter(convo => Boolean(convo.get('isPinned')));
|
||||
|
||||
const modelPinnedConversationIds = modelPinnedConversations.map(
|
||||
conversation => conversation.get('id')
|
||||
const modelPinnedConversationIds = modelPinnedConversations.map(convo =>
|
||||
convo.get('id')
|
||||
);
|
||||
|
||||
const missingStoragePinnedConversationIds = window.storage
|
||||
@ -1497,10 +1468,7 @@ export async function mergeAccountRecord(
|
||||
.map(conversationId =>
|
||||
window.ConversationController.get(conversationId)
|
||||
)
|
||||
.filter(
|
||||
(conversation): conversation is ConversationModel =>
|
||||
conversation !== undefined
|
||||
)
|
||||
.filter((convo): convo is ConversationModel => convo !== undefined)
|
||||
);
|
||||
|
||||
details.push(
|
||||
@ -1510,7 +1478,7 @@ export async function mergeAccountRecord(
|
||||
|
||||
const remotelyPinnedConversations = pinnedConversations
|
||||
.map(({ contact, legacyGroupId, groupMasterKey }) => {
|
||||
let conversation: ConversationModel | undefined;
|
||||
let convo: ConversationModel | undefined;
|
||||
|
||||
if (contact) {
|
||||
if (!contact.serviceId && !contact.e164) {
|
||||
@ -1519,7 +1487,7 @@ export async function mergeAccountRecord(
|
||||
);
|
||||
return undefined;
|
||||
}
|
||||
conversation = window.ConversationController.lookupOrCreate({
|
||||
convo = window.ConversationController.lookupOrCreate({
|
||||
serviceId: contact.serviceId
|
||||
? normalizeServiceId(
|
||||
contact.serviceId,
|
||||
@ -1531,26 +1499,26 @@ export async function mergeAccountRecord(
|
||||
});
|
||||
} else if (legacyGroupId && legacyGroupId.length) {
|
||||
const groupId = Bytes.toBinary(legacyGroupId);
|
||||
conversation = window.ConversationController.get(groupId);
|
||||
convo = window.ConversationController.get(groupId);
|
||||
} else if (groupMasterKey && groupMasterKey.length) {
|
||||
const groupFields = deriveGroupFields(groupMasterKey);
|
||||
const groupId = Bytes.toBase64(groupFields.id);
|
||||
|
||||
conversation = window.ConversationController.get(groupId);
|
||||
convo = window.ConversationController.get(groupId);
|
||||
} else {
|
||||
log.error(
|
||||
'storageService.mergeAccountRecord: Invalid identifier received'
|
||||
);
|
||||
}
|
||||
|
||||
if (!conversation) {
|
||||
if (!convo) {
|
||||
log.error(
|
||||
'storageService.mergeAccountRecord: missing conversation id.'
|
||||
);
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return conversation;
|
||||
return convo;
|
||||
})
|
||||
.filter(isNotNil);
|
||||
|
||||
@ -1567,14 +1535,14 @@ export async function mergeAccountRecord(
|
||||
`pinning=${remotelyPinnedConversations.length}`
|
||||
);
|
||||
|
||||
conversationsToUnpin.forEach(conversation => {
|
||||
conversation.set({ isPinned: false });
|
||||
updatedConversations.push(conversation);
|
||||
conversationsToUnpin.forEach(convo => {
|
||||
convo.set({ isPinned: false });
|
||||
updatedConversations.push(convo);
|
||||
});
|
||||
|
||||
remotelyPinnedConversations.forEach(conversation => {
|
||||
conversation.set({ isPinned: true, isArchived: false });
|
||||
updatedConversations.push(conversation);
|
||||
remotelyPinnedConversations.forEach(convo => {
|
||||
convo.set({ isPinned: true, isArchived: false });
|
||||
updatedConversations.push(convo);
|
||||
});
|
||||
|
||||
await window.storage.put(
|
||||
@ -1690,17 +1658,6 @@ export async function mergeAccountRecord(
|
||||
]);
|
||||
}
|
||||
|
||||
const ourID = window.ConversationController.getOurConversationId();
|
||||
|
||||
if (!ourID) {
|
||||
throw new Error('Could not find ourID');
|
||||
}
|
||||
|
||||
const conversation = await window.ConversationController.getOrCreateAndWait(
|
||||
ourID,
|
||||
'private'
|
||||
);
|
||||
|
||||
addUnknownFields(accountRecord, conversation, details);
|
||||
|
||||
const oldStorageID = conversation.get('storageID');
|
||||
@ -1720,6 +1677,7 @@ export async function mergeAccountRecord(
|
||||
username: dropNull(username),
|
||||
storageID,
|
||||
storageVersion,
|
||||
needsStorageServiceSync: false,
|
||||
});
|
||||
|
||||
let needsProfileFetch = false;
|
||||
@ -1739,18 +1697,9 @@ export async function mergeAccountRecord(
|
||||
|
||||
applyAvatarColor(conversation, accountRecord.avatarColor);
|
||||
|
||||
const { hasConflict, details: extraDetails } = doesRecordHavePendingChanges(
|
||||
toAccountRecord(conversation),
|
||||
accountRecord,
|
||||
conversation
|
||||
);
|
||||
|
||||
updatedConversations.push(conversation);
|
||||
|
||||
details = details.concat(extraDetails);
|
||||
|
||||
return {
|
||||
hasConflict,
|
||||
conversation,
|
||||
updatedConversations,
|
||||
needsProfileFetch,
|
||||
@ -1775,8 +1724,6 @@ export async function mergeStoryDistributionListRecord(
|
||||
);
|
||||
}
|
||||
|
||||
const details: Array<string> = [];
|
||||
|
||||
const isMyStory = Bytes.areEqual(
|
||||
MY_STORY_BYTES,
|
||||
storyDistributionListRecord.identifier
|
||||
@ -1797,6 +1744,13 @@ export async function mergeStoryDistributionListRecord(
|
||||
const localStoryDistributionList =
|
||||
await DataReader.getStoryDistributionWithMembers(listId);
|
||||
|
||||
const details = logRecordChanges(
|
||||
localStoryDistributionList == null
|
||||
? undefined
|
||||
: toStoryDistributionListRecord(localStoryDistributionList),
|
||||
storyDistributionListRecord
|
||||
);
|
||||
|
||||
const remoteListMembers: Array<ServiceIdString> = (
|
||||
storyDistributionListRecord.recipientServiceIds || []
|
||||
).map(id => normalizeServiceId(id, 'mergeStoryDistributionListRecord'));
|
||||
@ -1823,7 +1777,7 @@ export async function mergeStoryDistributionListRecord(
|
||||
storageUnknownFields: storyDistributionListRecord.$unknownFields
|
||||
? Bytes.concatenate(storyDistributionListRecord.$unknownFields)
|
||||
: null,
|
||||
storageNeedsSync: Boolean(localStoryDistributionList?.storageNeedsSync),
|
||||
storageNeedsSync: false,
|
||||
};
|
||||
|
||||
if (!localStoryDistributionList) {
|
||||
@ -1839,7 +1793,6 @@ export async function mergeStoryDistributionListRecord(
|
||||
|
||||
return {
|
||||
details,
|
||||
hasConflict: false,
|
||||
};
|
||||
}
|
||||
|
||||
@ -1862,11 +1815,6 @@ export async function mergeStoryDistributionListRecord(
|
||||
});
|
||||
}
|
||||
|
||||
const { hasConflict, details: conflictDetails } = doRecordsConflict(
|
||||
toStoryDistributionListRecord(storyDistribution),
|
||||
storyDistributionListRecord
|
||||
);
|
||||
|
||||
const localMembersListSet = new Set(localStoryDistributionList.members);
|
||||
const toAdd: Array<ServiceIdString> = remoteListMembers.filter(
|
||||
serviceId => !localMembersListSet.has(serviceId)
|
||||
@ -1894,8 +1842,7 @@ export async function mergeStoryDistributionListRecord(
|
||||
});
|
||||
|
||||
return {
|
||||
details: [...details, ...conflictDetails],
|
||||
hasConflict,
|
||||
details,
|
||||
oldStorageID,
|
||||
oldStorageVersion,
|
||||
};
|
||||
@ -1914,11 +1861,17 @@ export async function mergeStickerPackRecord(
|
||||
throw new Error(`No stickerPackRecord identifier for ${redactedStorageID}`);
|
||||
}
|
||||
|
||||
const details: Array<string> = [];
|
||||
const id = Bytes.toHex(stickerPackRecord.packId);
|
||||
|
||||
const localStickerPack = await DataReader.getStickerPackInfo(id);
|
||||
|
||||
const details = logRecordChanges(
|
||||
localStickerPack == null
|
||||
? undefined
|
||||
: toStickerPackRecord(localStickerPack),
|
||||
stickerPackRecord
|
||||
);
|
||||
|
||||
if (stickerPackRecord.$unknownFields) {
|
||||
details.push('adding unknown fields');
|
||||
}
|
||||
@ -1968,11 +1921,6 @@ export async function mergeStickerPackRecord(
|
||||
details.push('clearing unknown fields');
|
||||
}
|
||||
|
||||
const { hasConflict, details: conflictDetails } = doRecordsConflict(
|
||||
toStickerPackRecord(stickerPack),
|
||||
stickerPackRecord
|
||||
);
|
||||
|
||||
const wasUninstalled = Boolean(localStickerPack?.uninstalledAt);
|
||||
const isUninstalled = Boolean(stickerPack.uninstalledAt);
|
||||
|
||||
@ -2024,8 +1972,7 @@ export async function mergeStickerPackRecord(
|
||||
await DataWriter.updateStickerPackInfo(stickerPack);
|
||||
|
||||
return {
|
||||
details: [...details, ...conflictDetails],
|
||||
hasConflict,
|
||||
details,
|
||||
oldStorageID,
|
||||
oldStorageVersion,
|
||||
};
|
||||
@ -2042,11 +1989,9 @@ export async function mergeCallLinkRecord(
|
||||
});
|
||||
// callLinkRecords must have rootKey
|
||||
if (!callLinkRecord.rootKey) {
|
||||
return { hasConflict: false, shouldDrop: true, details: ['no rootKey'] };
|
||||
return { shouldDrop: true, details: ['no rootKey'] };
|
||||
}
|
||||
|
||||
const details: Array<string> = [];
|
||||
|
||||
const rootKeyString = fromRootKeyBytes(callLinkRecord.rootKey);
|
||||
const adminKeyString = callLinkRecord.adminPasskey
|
||||
? fromAdminKeyBytes(callLinkRecord.adminPasskey)
|
||||
@ -2058,6 +2003,13 @@ export async function mergeCallLinkRecord(
|
||||
const localCallLinkDbRecord =
|
||||
await DataReader.getCallLinkRecordByRoomId(roomId);
|
||||
|
||||
const details = logRecordChanges(
|
||||
localCallLinkDbRecord == null
|
||||
? undefined
|
||||
: toCallLinkRecord(localCallLinkDbRecord),
|
||||
callLinkRecord
|
||||
);
|
||||
|
||||
// Note deletedAtTimestampMs can be 0
|
||||
const deletedAtTimestampMs = callLinkRecord.deletedAtTimestampMs?.toNumber();
|
||||
const deletedAt = deletedAtTimestampMs || null;
|
||||
@ -2086,7 +2038,7 @@ export async function mergeCallLinkRecord(
|
||||
storageUnknownFields: callLinkRecord.$unknownFields
|
||||
? Bytes.concatenate(callLinkRecord.$unknownFields)
|
||||
: null,
|
||||
storageNeedsSync: localCallLinkDbRecord?.storageNeedsSync === 1 ? 1 : 0,
|
||||
storageNeedsSync: 0,
|
||||
};
|
||||
|
||||
if (!localCallLinkDbRecord) {
|
||||
@ -2128,7 +2080,6 @@ export async function mergeCallLinkRecord(
|
||||
|
||||
return {
|
||||
details,
|
||||
hasConflict: false,
|
||||
shouldDrop,
|
||||
};
|
||||
}
|
||||
@ -2150,11 +2101,6 @@ export async function mergeCallLinkRecord(
|
||||
);
|
||||
}
|
||||
|
||||
const { hasConflict, details: conflictDetails } = doRecordsConflict(
|
||||
toCallLinkRecord(callLinkDbRecord),
|
||||
callLinkRecord
|
||||
);
|
||||
|
||||
// First update local record
|
||||
details.push('updated');
|
||||
const callLink = callLinkFromRecord(callLinkDbRecord);
|
||||
@ -2180,8 +2126,7 @@ export async function mergeCallLinkRecord(
|
||||
}
|
||||
|
||||
return {
|
||||
details: [...details, ...conflictDetails],
|
||||
hasConflict,
|
||||
details,
|
||||
shouldDrop,
|
||||
oldStorageID,
|
||||
oldStorageVersion,
|
||||
|
||||
@ -2014,7 +2014,6 @@ function _setPresenting(
|
||||
|
||||
await calling.setPresenting({
|
||||
conversationId: activeCall.conversationId,
|
||||
hasLocalVideo: activeCallState.hasLocalVideo,
|
||||
mediaStream,
|
||||
source: sourceToPresent,
|
||||
callLinkRootKey: rootKey,
|
||||
|
||||
@ -306,7 +306,6 @@ describe('calling duck', () => {
|
||||
sinon.assert.calledOnce(this.callingServiceSetPresenting);
|
||||
sinon.assert.calledWith(this.callingServiceSetPresenting, {
|
||||
conversationId: 'fake-group-call-conversation-id',
|
||||
hasLocalVideo: false,
|
||||
mediaStream: undefined,
|
||||
source: presentedSource,
|
||||
callLinkRootKey: undefined,
|
||||
|
||||
@ -10,10 +10,10 @@ describe('Username', () => {
|
||||
const { getUsernameFromSearch } = Username;
|
||||
|
||||
it('matches partial username searches without discriminator', () => {
|
||||
assert.strictEqual(getUsernameFromSearch('u'), 'u.01');
|
||||
assert.strictEqual(getUsernameFromSearch('us'), 'us.01');
|
||||
assert.strictEqual(getUsernameFromSearch('use'), 'use.01');
|
||||
assert.strictEqual(getUsernameFromSearch('use.'), 'use.01');
|
||||
assert.strictEqual(getUsernameFromSearch('user'), 'user.01');
|
||||
assert.strictEqual(getUsernameFromSearch('usern'), 'usern.01');
|
||||
assert.strictEqual(getUsernameFromSearch('usern.'), 'usern.01');
|
||||
});
|
||||
|
||||
it('matches and strips leading @', () => {
|
||||
@ -30,6 +30,28 @@ describe('Username', () => {
|
||||
it('matches valid username searches', () => {
|
||||
assert.strictEqual(getUsernameFromSearch('username.12'), 'username.12');
|
||||
assert.strictEqual(getUsernameFromSearch('xyz.568'), 'xyz.568');
|
||||
assert.strictEqual(getUsernameFromSearch('numbered9.34'), 'numbered9.34');
|
||||
assert.strictEqual(getUsernameFromSearch('u12.34'), 'u12.34');
|
||||
assert.strictEqual(
|
||||
getUsernameFromSearch('with_underscore.56'),
|
||||
'with_underscore.56'
|
||||
);
|
||||
assert.strictEqual(
|
||||
getUsernameFromSearch('username_with_32_characters_1234.45'),
|
||||
'username_with_32_characters_1234.45'
|
||||
);
|
||||
});
|
||||
|
||||
it('does not match when then username starts with a number', () => {
|
||||
assert.isUndefined(getUsernameFromSearch('1user.12'));
|
||||
assert.isUndefined(getUsernameFromSearch('9user_name.12'));
|
||||
});
|
||||
|
||||
it('does not match usernames shorter than 3 characters or longer than 32', () => {
|
||||
assert.isUndefined(getUsernameFromSearch('us.12'));
|
||||
assert.isUndefined(
|
||||
getUsernameFromSearch('username_with_33_characters_12345.67')
|
||||
);
|
||||
});
|
||||
|
||||
it('does not match something that looks like a phone number', () => {
|
||||
@ -51,8 +73,8 @@ describe('Username', () => {
|
||||
|
||||
it('returns true if it ends with a discriminator', () => {
|
||||
assert.isTrue(probablyAUsername('someone.00'));
|
||||
assert.isTrue(probablyAUsername('32423423.04'));
|
||||
assert.isTrue(probablyAUsername('d.04'));
|
||||
assert.isTrue(probablyAUsername('d2423423.04'));
|
||||
assert.isTrue(probablyAUsername('e_f.04'));
|
||||
});
|
||||
|
||||
it('returns false if just a discriminator', () => {
|
||||
@ -67,6 +89,16 @@ describe('Username', () => {
|
||||
assert.isFalse(probablyAUsername('john'));
|
||||
});
|
||||
|
||||
it('returns false for usernames starting with a number', () => {
|
||||
assert.isFalse(probablyAUsername('1user.01'));
|
||||
assert.isFalse(probablyAUsername('9name.99'));
|
||||
});
|
||||
|
||||
it('returns false for usernames shorter than 3 characters or longer than 32', () => {
|
||||
assert.isFalse(probablyAUsername('us.12'));
|
||||
assert.isFalse(probablyAUsername('username_with_33_characters_12345.67'));
|
||||
});
|
||||
|
||||
it('returns false for something that looks like a phone number', () => {
|
||||
assert.isFalse(probablyAUsername('+'));
|
||||
assert.isFalse(probablyAUsername('2223'));
|
||||
|
||||
321
ts/test-mock/storage/conflict_test.ts
Normal file
@ -0,0 +1,321 @@
|
||||
// Copyright 2025 Signal Messenger, LLC
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import { assert } from 'chai';
|
||||
import Long from 'long';
|
||||
import { expect } from 'playwright/test';
|
||||
import type { Group, StorageState } from '@signalapp/mock-server';
|
||||
import { Proto } from '@signalapp/mock-server';
|
||||
|
||||
import * as durations from '../../util/durations';
|
||||
import { createCallLink } from '../helpers';
|
||||
import type { App, Bootstrap } from './fixtures';
|
||||
import { initStorage, debug, getCallLinkRecordPredicate } from './fixtures';
|
||||
|
||||
const IdentifierType = Proto.ManifestRecord.Identifier.Type;
|
||||
|
||||
describe('storage service', function (this: Mocha.Suite) {
|
||||
this.timeout(durations.MINUTE);
|
||||
|
||||
let bootstrap: Bootstrap;
|
||||
let app: App;
|
||||
let group: Group;
|
||||
|
||||
beforeEach(async () => {
|
||||
({ bootstrap, app, group } = await initStorage());
|
||||
});
|
||||
|
||||
afterEach(async function (this: Mocha.Context) {
|
||||
if (!bootstrap) {
|
||||
return;
|
||||
}
|
||||
|
||||
await bootstrap.maybeSaveLogs(this.currentTest, app);
|
||||
await app.close();
|
||||
await bootstrap.teardown();
|
||||
});
|
||||
|
||||
for (const kind of ['contact', 'group']) {
|
||||
// eslint-disable-next-line no-loop-func
|
||||
it(`should handle ${kind} conflicts`, async () => {
|
||||
const {
|
||||
phone,
|
||||
contacts: [first],
|
||||
} = bootstrap;
|
||||
|
||||
const window = await app.getWindow();
|
||||
|
||||
const leftPane = window.locator('#LeftPane');
|
||||
const conversationStack = window.locator('.Inbox__conversation-stack');
|
||||
|
||||
const testid = kind === 'contact' ? first.device.aci : group.id;
|
||||
|
||||
debug('archiving conversation on desktop');
|
||||
{
|
||||
const state = await phone.expectStorageState('consistency check');
|
||||
|
||||
await leftPane.locator(`[data-testid="${testid}"]`).click();
|
||||
|
||||
await conversationStack
|
||||
.locator('button.module-ConversationHeader__button--more')
|
||||
.click();
|
||||
|
||||
await window.locator('.react-contextmenu-item >> "Archive"').click();
|
||||
|
||||
const newState = await phone.waitForStorageState({
|
||||
after: state,
|
||||
});
|
||||
|
||||
const record =
|
||||
kind === 'contact'
|
||||
? await newState.getContact(first)
|
||||
: await newState.getGroup(group);
|
||||
|
||||
assert.ok(record, 'contact record not found');
|
||||
assert.ok(record?.archived, 'contact archived');
|
||||
}
|
||||
|
||||
debug('updating contact on phone without sync message');
|
||||
let archivedVersion: number;
|
||||
{
|
||||
const state = await phone.expectStorageState('consistency check');
|
||||
|
||||
let newState: StorageState;
|
||||
|
||||
if (kind === 'contact') {
|
||||
newState = state.updateContact(first, { archived: true });
|
||||
} else {
|
||||
newState = state.updateGroup(group, { archived: true });
|
||||
}
|
||||
|
||||
newState = await phone.setStorageState(newState);
|
||||
archivedVersion = newState.version;
|
||||
}
|
||||
|
||||
debug('attempting unarchive');
|
||||
await leftPane.getByLabel('Archived Chats').click();
|
||||
|
||||
await leftPane.locator(`[data-testid="${testid}"]`).click();
|
||||
|
||||
await conversationStack
|
||||
.locator('button.module-ConversationHeader__button--more')
|
||||
.click();
|
||||
|
||||
await window.locator('.react-contextmenu-item >> "Unarchive"').click();
|
||||
|
||||
await app.waitForManifestVersion(archivedVersion);
|
||||
|
||||
debug('waiting for archived chats to appear again');
|
||||
await leftPane.getByLabel('Archived Chats').waitFor();
|
||||
|
||||
// Conversation should be still open
|
||||
await conversationStack
|
||||
.locator('button.module-ConversationHeader__button--more')
|
||||
.click();
|
||||
|
||||
await window.locator('.react-contextmenu-item >> "Unarchive"').waitFor();
|
||||
|
||||
debug('Verifying the final manifest version');
|
||||
const finalState = await phone.expectStorageState('final state');
|
||||
|
||||
assert.strictEqual(finalState.version, archivedVersion);
|
||||
});
|
||||
}
|
||||
|
||||
it('should handle account conflicts', async () => {
|
||||
const {
|
||||
phone,
|
||||
desktop,
|
||||
contacts: [first, second],
|
||||
} = bootstrap;
|
||||
|
||||
const window = await app.getWindow();
|
||||
|
||||
const leftPane = window.locator('#LeftPane');
|
||||
const conversationStack = window.locator('.Inbox__conversation-stack');
|
||||
|
||||
debug('pinning second contact');
|
||||
{
|
||||
const state = await phone.expectStorageState('consistency check');
|
||||
|
||||
await second.sendText(desktop, 'Hello!', {
|
||||
timestamp: bootstrap.getTimestamp(),
|
||||
});
|
||||
await leftPane.locator(`[data-testid="${second.device.aci}"]`).click();
|
||||
|
||||
await conversationStack
|
||||
.locator('button.module-ConversationHeader__button--more')
|
||||
.click();
|
||||
|
||||
await window.locator('.react-contextmenu-item >> "Pin chat"').click();
|
||||
|
||||
const newState = await phone.waitForStorageState({
|
||||
after: state,
|
||||
});
|
||||
|
||||
assert(newState.isPinned(second));
|
||||
}
|
||||
|
||||
debug('updating pins on phone without sync message');
|
||||
let archivedVersion: number;
|
||||
{
|
||||
const state = await phone.expectStorageState('consistency check');
|
||||
|
||||
let newState = state.unpin(first).unpinGroup(group);
|
||||
|
||||
newState = await phone.setStorageState(newState);
|
||||
archivedVersion = newState.version;
|
||||
}
|
||||
|
||||
debug('unpinning second contact');
|
||||
await conversationStack
|
||||
.locator('button.module-ConversationHeader__button--more')
|
||||
.click();
|
||||
|
||||
await window.locator('.react-contextmenu-item >> "Unpin chat"').click();
|
||||
|
||||
await app.waitForManifestVersion(archivedVersion);
|
||||
|
||||
debug('verifying that second contact is still unpinned');
|
||||
await conversationStack
|
||||
.locator('button.module-ConversationHeader__button--more')
|
||||
.click();
|
||||
|
||||
await window.locator('.react-contextmenu-item >> "Unpin chat"').waitFor();
|
||||
|
||||
debug('Verifying the final manifest version');
|
||||
const finalState = await phone.expectStorageState('final state');
|
||||
|
||||
assert.strictEqual(finalState.version, archivedVersion);
|
||||
});
|
||||
|
||||
it('should handle story distribution list conflicts', async () => {
|
||||
const { phone } = bootstrap;
|
||||
|
||||
const window = await app.getWindow();
|
||||
|
||||
debug('updating distribution list in UI');
|
||||
{
|
||||
const state = await phone.expectStorageState('consistency check');
|
||||
|
||||
await window.getByTestId('NavTabsItem--Stories').click();
|
||||
|
||||
await window.locator('.StoriesTab__MoreActionsIcon').click();
|
||||
await window.getByRole('button', { name: 'Story Privacy' }).click();
|
||||
|
||||
await window
|
||||
.getByTestId('StoriesSettingsModal__list')
|
||||
.getByRole('button', { name: 'My Story' })
|
||||
.click();
|
||||
await window
|
||||
.getByTestId('DistributionListSettingsModal')
|
||||
.locator('input[name=replies-reactions]')
|
||||
.click();
|
||||
|
||||
const newState = await phone.waitForStorageState({
|
||||
after: state,
|
||||
});
|
||||
|
||||
const updatedList = newState.findRecord(({ type }) => {
|
||||
return type === IdentifierType.STORY_DISTRIBUTION_LIST;
|
||||
});
|
||||
assert.isFalse(updatedList?.record?.storyDistributionList?.allowsReplies);
|
||||
}
|
||||
|
||||
debug('updating distribution list on phone without sync');
|
||||
let archivedVersion: number;
|
||||
{
|
||||
const state = await phone.expectStorageState('consistency check');
|
||||
|
||||
let newState = state.updateRecord(
|
||||
({ type }) => {
|
||||
return type === IdentifierType.STORY_DISTRIBUTION_LIST;
|
||||
},
|
||||
// Just changing storage ID
|
||||
record => record
|
||||
);
|
||||
|
||||
newState = await phone.setStorageState(newState);
|
||||
archivedVersion = newState.version;
|
||||
}
|
||||
|
||||
debug('attempting update through UI again');
|
||||
await window
|
||||
.getByTestId('DistributionListSettingsModal')
|
||||
.locator('input[name=replies-reactions]')
|
||||
.click();
|
||||
|
||||
await app.waitForManifestVersion(archivedVersion);
|
||||
|
||||
debug('wait for checkbox to go back to unchecked');
|
||||
{
|
||||
const checkbox = window
|
||||
.getByTestId('DistributionListSettingsModal')
|
||||
.locator('input[name=replies-reactions]');
|
||||
await expect(checkbox).not.toBeChecked();
|
||||
}
|
||||
|
||||
debug('Verifying the final manifest version');
|
||||
const finalState = await phone.expectStorageState('final state');
|
||||
|
||||
assert.strictEqual(finalState.version, archivedVersion);
|
||||
});
|
||||
|
||||
it('should handle call link conflicts', async () => {
|
||||
const { phone } = bootstrap;
|
||||
|
||||
const window = await app.getWindow();
|
||||
let state = await phone.expectStorageState('initial state');
|
||||
|
||||
debug('Creating call link');
|
||||
const roomId = await createCallLink(window, { name: 'Fun link' });
|
||||
assert.exists(roomId, 'Call link roomId should exist');
|
||||
|
||||
debug('Waiting for storage update');
|
||||
state = await phone.waitForStorageState({ after: state });
|
||||
|
||||
assert.exists(state.findRecord(getCallLinkRecordPredicate(roomId)));
|
||||
|
||||
debug('Updating storage without sync');
|
||||
const deletedAt = bootstrap.getTimestamp();
|
||||
state = state.updateRecord(getCallLinkRecordPredicate(roomId), record => ({
|
||||
...record,
|
||||
callLink: {
|
||||
...(record.callLink ?? {}),
|
||||
deletedAtTimestampMs: Long.fromNumber(deletedAt),
|
||||
},
|
||||
}));
|
||||
|
||||
state = await phone.setStorageState(state);
|
||||
|
||||
debug('Deleting link in UI');
|
||||
await window.getByText('Fun link').click();
|
||||
await window
|
||||
.locator('.CallsTab__ConversationCallDetails')
|
||||
.getByText('Delete link')
|
||||
.click();
|
||||
|
||||
const confirmModal = await window.getByTestId(
|
||||
'ConfirmationDialog.CallLinkDetails__DeleteLinkModal'
|
||||
);
|
||||
await confirmModal.locator('.module-Button').getByText('Delete').click();
|
||||
|
||||
debug('Waiting for manifest sync');
|
||||
await app.waitForManifestVersion(state.version);
|
||||
|
||||
debug('Creating second call link');
|
||||
const otherRoomId = await createCallLink(window, { name: 'Second link' });
|
||||
assert.exists(otherRoomId, 'Call link roomId should exist');
|
||||
|
||||
debug('Waiting for storage update');
|
||||
state = await phone.waitForStorageState({ after: state });
|
||||
|
||||
assert.strictEqual(
|
||||
state
|
||||
.findRecord(getCallLinkRecordPredicate(roomId))
|
||||
?.record.callLink?.deletedAtTimestampMs?.toNumber(),
|
||||
deletedAt
|
||||
);
|
||||
assert.exists(state.findRecord(getCallLinkRecordPredicate(otherRoomId)));
|
||||
});
|
||||
});
|
||||
@ -1798,7 +1798,6 @@ export default class MessageReceiver
|
||||
);
|
||||
const unsealedPlaintext = await this.#storage.protocol.enqueueSessionJob(
|
||||
address,
|
||||
`sealedSenderDecryptMessage(${address.toString()})`,
|
||||
() =>
|
||||
sealedSenderDecryptMessage(
|
||||
Buffer.from(ciphertext),
|
||||
@ -1893,7 +1892,6 @@ export default class MessageReceiver
|
||||
|
||||
const plaintext = await this.#storage.protocol.enqueueSessionJob(
|
||||
address,
|
||||
`signalDecrypt(${address.toString()})`,
|
||||
async () =>
|
||||
this.#unpad(
|
||||
await signalDecrypt(
|
||||
@ -1925,7 +1923,6 @@ export default class MessageReceiver
|
||||
|
||||
const plaintext = await this.#storage.protocol.enqueueSessionJob(
|
||||
address,
|
||||
`signalDecryptPreKey(${address.toString()})`,
|
||||
async () =>
|
||||
this.#unpad(
|
||||
await signalDecryptPreKey(
|
||||
|
||||
@ -445,7 +445,6 @@ export default class OutgoingMessage {
|
||||
|
||||
return window.textsecure.storage.protocol.enqueueSessionJob<MessageType>(
|
||||
address,
|
||||
`doSendMessage(${address.toString()}, ${this.timestamp})`,
|
||||
async () => {
|
||||
const protocolAddress = ProtocolAddress.new(
|
||||
serviceId,
|
||||
@ -641,7 +640,7 @@ export default class OutgoingMessage {
|
||||
) {
|
||||
newError = new OutgoingIdentityKeyError(serviceId, error);
|
||||
log.error(
|
||||
'Got "key changed" error from encrypt - no identityKey for application layer',
|
||||
'UntrustedIdentityKeyError from decrypt!',
|
||||
serviceId,
|
||||
deviceIds
|
||||
);
|
||||
|
||||
@ -183,7 +183,6 @@ async function handleServerKeys(
|
||||
try {
|
||||
await window.textsecure.storage.protocol.enqueueSessionJob(
|
||||
address,
|
||||
`handleServerKeys(${serviceId})`,
|
||||
() =>
|
||||
processPreKeyBundle(
|
||||
preKeyBundle,
|
||||
|
||||
@ -14,7 +14,8 @@ export function getMinNickname(): number {
|
||||
return parseIntWithFallback(RemoteConfig.getValue('global.nicknames.min'), 3);
|
||||
}
|
||||
|
||||
const USERNAME_CHARS = /^@?[a-zA-Z0-9]+(.\d+)?$/;
|
||||
// Usernames have a minimum length of 3 and maximum of 32
|
||||
const USERNAME_CHARS = /^@?[a-zA-Z_][a-zA-Z0-9_]{2,31}(.\d+)?$/;
|
||||
const ALL_DIGITS = /^\d+$/;
|
||||
|
||||
export function getUsernameFromSearch(searchTerm: string): string | undefined {
|
||||
|
||||