diff --git a/android/app/src/main/res/drawable-hdpi/ic_launcher_background.png b/android/app/src/main/res/drawable-hdpi/ic_launcher_background.png index c39b3f6..df000bc 100644 Binary files a/android/app/src/main/res/drawable-hdpi/ic_launcher_background.png and b/android/app/src/main/res/drawable-hdpi/ic_launcher_background.png differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_launcher_background.png b/android/app/src/main/res/drawable-mdpi/ic_launcher_background.png index 8d9cc1c..fabe397 100644 Binary files a/android/app/src/main/res/drawable-mdpi/ic_launcher_background.png and b/android/app/src/main/res/drawable-mdpi/ic_launcher_background.png differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_launcher_background.png b/android/app/src/main/res/drawable-xhdpi/ic_launcher_background.png index 6546be8..09640b0 100644 Binary files a/android/app/src/main/res/drawable-xhdpi/ic_launcher_background.png and b/android/app/src/main/res/drawable-xhdpi/ic_launcher_background.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_launcher_background.png b/android/app/src/main/res/drawable-xxhdpi/ic_launcher_background.png index 6031e62..a8cb027 100644 Binary files a/android/app/src/main/res/drawable-xxhdpi/ic_launcher_background.png and b/android/app/src/main/res/drawable-xxhdpi/ic_launcher_background.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_background.png b/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_background.png index 1bb2377..ec87477 100644 Binary files a/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_background.png and b/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_background.png differ diff --git a/assets/logo/img/logo_background.png b/assets/logo/img/logo_background.png index 1d9a40c..e49df47 100644 Binary files a/assets/logo/img/logo_background.png and b/assets/logo/img/logo_background.png differ diff --git a/lib/config/themes.dart b/lib/config/themes.dart index 2ac9769..84ba4c9 100644 --- a/lib/config/themes.dart +++ b/lib/config/themes.dart @@ -56,6 +56,17 @@ abstract class FluffyThemes { brightness: brightness, colorScheme: colorScheme, dividerColor: dividerColor, + dialogTheme: DialogThemeData( + alignment: Alignment.center, + // Compact dialogs: less padding and a smaller corner radius than the + // Material 3 default (28px), so modals like "set chat description" + // leave more room for the text field. + insetPadding: const EdgeInsets.symmetric(horizontal: 24, vertical: 24), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppConfig.borderRadius), + ), + actionsPadding: const EdgeInsets.fromLTRB(20, 0, 20, 12), + ), segmentedButtonTheme: SegmentedButtonThemeData( style: SegmentedButton.styleFrom( iconColor: colorScheme.onSurface, diff --git a/lib/l10n/intl_en.arb b/lib/l10n/intl_en.arb index 3f77921..8efb8ba 100644 --- a/lib/l10n/intl_en.arb +++ b/lib/l10n/intl_en.arb @@ -1,2917 +1,2927 @@ { - "editImage": "Edit image", - "@editImage": { - "type": "String", - "placeholders": {} - }, - "rotateLeft": "Rotate left", - "@rotateLeft": { - "type": "String", - "placeholders": {} - }, - "rotateRight": "Rotate right", - "@rotateRight": { - "type": "String", - "placeholders": {} - }, - "mirror": "Mirror", - "@mirror": { - "type": "String", - "placeholders": {} - }, - "save": "Save", - "@save": { - "type": "String", - "placeholders": {} - }, - "draw": "Draw", - "@draw": { - "type": "String", - "placeholders": {} - }, - "undo": "Undo", - "@undo": { - "type": "String", - "placeholders": {} - }, - "clear": "Clear", - "@clear": { - "type": "String", - "placeholders": {} - }, - "eraser": "Eraser", - "@eraser": { - "type": "String", - "placeholders": {} - }, - "crop": "Crop", - "@crop": { - "type": "String", - "placeholders": {} - }, - "@@locale": "en", - "@@last_modified": "2021-08-14 12:38:37.885451", - "repeatPassword": "Repeat password", - "notAnImage": "Not an image file.", - "remove": "Remove", - "@remove": { - "type": "String", - "placeholders": {} - }, - "importNow": "Import now", - "importEmojis": "Import Emojis", - "importFromZipFile": "Import from .zip file", - "exportEmotePack": "Export Emote pack as .zip", - "replace": "Replace", - "about": "About", - "aboutHomeserver": "About {homeserver}", - "@aboutHomeserver": { - "type": "String", - "placeholders": { - "homeserver": { - "type": "String" - } - } - }, - "accept": "Accept", - "@accept": { - "type": "String", - "placeholders": {} - }, - "acceptedTheInvitation": "👍 {username} accepted the invitation", - "@acceptedTheInvitation": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "account": "Account", - "@account": { - "type": "String", - "placeholders": {} - }, - "accountsAndSettings": "Accounts and settings", - "@accountsAndSettings": { - "type": "String", - "placeholders": {} - }, - "activatedEndToEndEncryption": "🔐 {username} activated end to end encryption", - "@activatedEndToEndEncryption": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "addEmail": "Add email", - "@addEmail": { - "type": "String", - "placeholders": {} - }, - "confirmMatrixId": "Please confirm your Matrix ID in order to delete your account.", - "supposedMxid": "This should be {mxid}", - "@supposedMxid": { - "type": "String", - "placeholders": { - "mxid": { - "type": "String" - } - } - }, - "addToSpace": "Add to space", - "admin": "Admin", - "@admin": { - "type": "String", - "placeholders": {} - }, - "alias": "alias", - "@alias": { - "type": "String", - "placeholders": {} - }, - "all": "All", - "@all": { - "type": "String", - "placeholders": {} - }, - "commandHint_roomupgrade": "Upgrade this room to the given room version", - "commandHint_googly": "Send some googly eyes", - "commandHint_cuddle": "Send a cuddle", - "commandHint_hug": "Send a hug", - "googlyEyesContent": "{senderName} sends you googly eyes", - "@googlyEyesContent": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "cuddleContent": "{senderName} cuddles you", - "@cuddleContent": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "hugContent": "{senderName} hugs you", - "@hugContent": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "answeredTheCall": "{senderName} answered the call", - "@answeredTheCall": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "anyoneCanJoin": "Anyone can join", - "@anyoneCanJoin": { - "type": "String", - "placeholders": {} - }, - "appLock": "App lock", - "@appLock": { - "type": "String", - "placeholders": {} - }, - "appLockDescription": "Lock the app when not using with a pin code", - "archive": "Archive", - "@archive": { - "type": "String", - "placeholders": {} - }, - "areGuestsAllowedToJoin": "Are guest users allowed to join?", - "@areGuestsAllowedToJoin": { - "type": "String", - "placeholders": {} - }, - "areYouSure": "Are you sure?", - "@areYouSure": { - "type": "String", - "placeholders": {} - }, - "discardEdits": "You have unsaved changes. Discard your edits?", - "@discardEdits": { - "type": "String", - "placeholders": {} - }, - "areYouSureYouWantToLogout": "Are you sure you want to log out?", - "@areYouSureYouWantToLogout": { - "type": "String", - "placeholders": {} - }, - "askSSSSSign": "To be able to sign the other person, please enter your secure store passphrase or recovery key.", - "@askSSSSSign": { - "type": "String", - "placeholders": {} - }, - "askVerificationRequest": "Accept this verification request from {username}?", - "@askVerificationRequest": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "autoplayImages": "Automatically play animated stickers and emotes", - "@autoplayImages": { - "type": "String", - "placeholder": {} - }, - "badServerLoginTypesException": "The homeserver supports the login types:\n{serverVersions}\nBut this app supports only:\n{supportedVersions}", - "@badServerLoginTypesException": { - "type": "String", - "placeholders": { - "serverVersions": { - "type": "String" - }, - "supportedVersions": { - "type": "String" - } - } - }, - "sendTypingNotifications": "Send typing notifications", - "swipeRightToLeftToReply": "Swipe right to left to reply", - "sendOnEnter": "Send on enter", - "noMoreChatsFound": "No more chats found...", - "noChatsFoundHere": "No chats found here yet. Start a new chat with someone by using the button below. ⤵️", - "unread": "Unread", - "space": "Space", - "banFromChat": "Ban from chat", - "@banFromChat": { - "type": "String", - "placeholders": {} - }, - "banned": "Banned", - "@banned": { - "type": "String", - "placeholders": {} - }, - "bannedUser": "{username} banned {targetName}", - "@bannedUser": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "blockDevice": "Block Device", - "@blockDevice": { - "type": "String", - "placeholders": {} - }, - "blocked": "Blocked", - "@blocked": { - "type": "String", - "placeholders": {} - }, - "cancel": "Cancel", - "@cancel": { - "type": "String", - "placeholders": {} - }, - "cantOpenUri": "Can't open the URI {uri}", - "@cantOpenUri": { - "type": "String", - "placeholders": { - "uri": { - "type": "String" - } - } - }, - "changeDeviceName": "Change device name", - "@changeDeviceName": { - "type": "String", - "placeholders": {} - }, - "changedTheChatAvatar": "{username} changed the chat avatar", - "@changedTheChatAvatar": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "changedTheChatDescription": "{username} changed the chat description", - "changedTheChatName": "{username} changed the chat name", - "changedTheChatPermissions": "{username} changed the chat permissions", - "@changedTheChatPermissions": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "changedTheDisplaynameTo": "{username} changed their displayname to: '{displayname}'", - "@changedTheDisplaynameTo": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "displayname": { - "type": "String" - } - } - }, - "changedTheGuestAccessRules": "{username} changed the guest access rules", - "@changedTheGuestAccessRules": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "changedTheGuestAccessRulesTo": "{username} changed the guest access rules to: {rules}", - "@changedTheGuestAccessRulesTo": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "rules": { - "type": "String" - } - } - }, - "changedTheHistoryVisibility": "{username} changed the history visibility", - "@changedTheHistoryVisibility": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "changedTheHistoryVisibilityTo": "{username} changed the history visibility to: {rules}", - "@changedTheHistoryVisibilityTo": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "rules": { - "type": "String" - } - } - }, - "changedTheJoinRules": "{username} changed the join rules", - "@changedTheJoinRules": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "changedTheJoinRulesTo": "{username} changed the join rules to: {joinRules}", - "@changedTheJoinRulesTo": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "joinRules": { - "type": "String" - } - } - }, - "changedTheProfileAvatar": "{username} changed their avatar", - "@changedTheProfileAvatar": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "changedTheRoomAliases": "{username} changed the room aliases", - "@changedTheRoomAliases": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "changedTheRoomInvitationLink": "{username} changed the invitation link", - "@changedTheRoomInvitationLink": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "changePassword": "Change password", - "@changePassword": { - "type": "String", - "placeholders": {} - }, - "changeTheHomeserver": "Change the homeserver", - "@changeTheHomeserver": { - "type": "String", - "placeholders": {} - }, - "changeTheme": "Change your style", - "@changeTheme": { - "type": "String", - "placeholders": {} - }, - "changeTheNameOfTheGroup": "Change the name of the group", - "@changeTheNameOfTheGroup": { - "type": "String", - "placeholders": {} - }, - "changeYourAvatar": "Change your avatar", - "@changeYourAvatar": { - "type": "String", - "placeholders": {} - }, - "channelCorruptedDecryptError": "The encryption has been corrupted", - "@channelCorruptedDecryptError": { - "type": "String", - "placeholders": {} - }, - "chat": "Chat", - "@chat": { - "type": "String", - "placeholders": {} - }, - "chatBackup": "Chat backup", - "@chatBackup": { - "type": "String", - "placeholders": {} - }, - "chatDetails": "Chat details", - "@chatDetails": { - "type": "String", - "placeholders": {} - }, - "chats": "Chats", - "@chats": { - "type": "String", - "placeholders": {} - }, - "chooseAStrongPassword": "Choose a strong password", - "@chooseAStrongPassword": { - "type": "String", - "placeholders": {} - }, - "clearArchive": "Clear archive", - "close": "Close", - "@close": { - "type": "String", - "placeholders": {} - }, - "commandHint_markasdm": "Mark as direct message room for the giving Matrix ID", - "commandHint_markasgroup": "Mark as group", - "commandHint_ban": "Ban the given user from this room", - "@commandHint_ban": { - "type": "String", - "description": "Usage hint for the command /ban" - }, - "commandHint_clearcache": "Clear cache", - "@commandHint_clearcache": { - "type": "String", - "description": "Usage hint for the command /clearcache" - }, - "commandHint_create": "Create an empty group chat\nUse --no-encryption to disable encryption", - "@commandHint_create": { - "type": "String", - "description": "Usage hint for the command /create" - }, - "commandHint_discardsession": "Discard session", - "@commandHint_discardsession": { - "type": "String", - "description": "Usage hint for the command /discardsession" - }, - "commandHint_dm": "Start a direct chat\nUse --no-encryption to disable encryption", - "@commandHint_dm": { - "type": "String", - "description": "Usage hint for the command /dm" - }, - "commandHint_html": "Send HTML-formatted text", - "@commandHint_html": { - "type": "String", - "description": "Usage hint for the command /html" - }, - "commandHint_invite": "Invite the given user to this room", - "@commandHint_invite": { - "type": "String", - "description": "Usage hint for the command /invite" - }, - "commandHint_join": "Join the given room", - "@commandHint_join": { - "type": "String", - "description": "Usage hint for the command /join" - }, - "commandHint_kick": "Remove the given user from this room", - "@commandHint_kick": { - "type": "String", - "description": "Usage hint for the command /kick" - }, - "commandHint_leave": "Leave this room", - "@commandHint_leave": { - "type": "String", - "description": "Usage hint for the command /leave" - }, - "commandHint_me": "Describe yourself", - "@commandHint_me": { - "type": "String", - "description": "Usage hint for the command /me" - }, - "commandHint_myroomavatar": "Set your picture for this room (by mxc-uri)", - "@commandHint_myroomavatar": { - "type": "String", - "description": "Usage hint for the command /myroomavatar" - }, - "commandHint_myroomnick": "Set your display name for this room", - "@commandHint_myroomnick": { - "type": "String", - "description": "Usage hint for the command /myroomnick" - }, - "commandHint_op": "Set the given user's power level (default: 50)", - "@commandHint_op": { - "type": "String", - "description": "Usage hint for the command /op" - }, - "commandHint_plain": "Send unformatted text", - "@commandHint_plain": { - "type": "String", - "description": "Usage hint for the command /plain" - }, - "commandHint_react": "Send reply as a reaction", - "@commandHint_react": { - "type": "String", - "description": "Usage hint for the command /react" - }, - "commandHint_send": "Send text", - "@commandHint_send": { - "type": "String", - "description": "Usage hint for the command /send" - }, - "commandHint_unban": "Unban the given user from this room", - "@commandHint_unban": { - "type": "String", - "description": "Usage hint for the command /unban" - }, - "commandInvalid": "Command invalid", - "@commandInvalid": { + "editImage": "Edit image", + "@editImage": { + "type": "String", + "placeholders": {} + }, + "rotateLeft": "Rotate left", + "@rotateLeft": { + "type": "String", + "placeholders": {} + }, + "rotateRight": "Rotate right", + "@rotateRight": { + "type": "String", + "placeholders": {} + }, + "mirror": "Mirror", + "@mirror": { + "type": "String", + "placeholders": {} + }, + "save": "Save", + "@save": { + "type": "String", + "placeholders": {} + }, + "draw": "Draw", + "@draw": { + "type": "String", + "placeholders": {} + }, + "undo": "Undo", + "@undo": { + "type": "String", + "placeholders": {} + }, + "clear": "Clear", + "@clear": { + "type": "String", + "placeholders": {} + }, + "eraser": "Eraser", + "@eraser": { + "type": "String", + "placeholders": {} + }, + "crop": "Crop", + "@crop": { + "type": "String", + "placeholders": {} + }, + "@@locale": "en", + "@@last_modified": "2021-08-14 12:38:37.885451", + "repeatPassword": "Repeat password", + "notAnImage": "Not an image file.", + "remove": "Remove", + "@remove": { + "type": "String", + "placeholders": {} + }, + "importNow": "Import now", + "importEmojis": "Import Emojis", + "importFromZipFile": "Import from .zip file", + "exportEmotePack": "Export Emote pack as .zip", + "replace": "Replace", + "about": "About", + "aboutHomeserver": "About {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { "type": "String" - }, - "commandMissing": "{command} is not a command.", - "@commandMissing": { - "type": "String", - "placeholders": { - "command": { - "type": "String" - } - }, - "description": "State that {command} is not a valid /command." - }, - "compareEmojiMatch": "Please compare the emojis", - "@compareEmojiMatch": { - "type": "String", - "placeholders": {} - }, - "compareNumbersMatch": "Please compare the numbers", - "@compareNumbersMatch": { - "type": "String", - "placeholders": {} - }, - "configureChat": "Configure chat", - "@configureChat": { - "type": "String", - "placeholders": {} - }, - "contactHasBeenInvitedToTheGroup": "Contact has been invited to the group", - "@contactHasBeenInvitedToTheGroup": { - "type": "String", - "placeholders": {} - }, - "contentHasBeenReported": "The content has been reported to the server admins", - "@contentHasBeenReported": { - "type": "String", - "placeholders": {} - }, - "copiedToClipboard": "Copied to clipboard", - "@copiedToClipboard": { - "type": "String", - "placeholders": {} - }, - "copy": "Copy", - "@copy": { - "type": "String", - "placeholders": {} - }, - "copyToClipboard": "Copy to clipboard", - "@copyToClipboard": { - "type": "String", - "placeholders": {} - }, - "couldNotDecryptMessage": "Could not decrypt message: {error}", - "@couldNotDecryptMessage": { - "type": "String", - "placeholders": { - "error": { - "type": "String" - } - } - }, - "checkList": "Check list", - "countParticipants": "{count, plural, =1{1 participant} other{{count} participants}}", - "@countParticipants": { - "type": "String", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "countInvited": "{count} invited", - "@countInvited": { - "type": "String", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "create": "Create", - "@create": { - "type": "String", - "placeholders": {} - }, - "createdTheChat": "💬 {username} created the chat", - "@createdTheChat": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "createGroup": "Create group", - "createNewSpace": "New space", - "@createNewSpace": { - "type": "String", - "placeholders": {} - }, - "canal": "Canal", - "canalIsPublic": "Canal is public", - "canalName": "Canal name", - "canalOnlyAdminCanPost": "Only canal admins are allowed to post in this room", - "createCanalAndInviteUsers": "Create a canal and invite users", - "createMuralAndInviteUsers": "Create a mural and invite users", - "mural": "Mural", - "muralIsPublic": "Mural is public", - "muralName": "Mural name", - "currentlyActive": "Currently active", - "@currentlyActive": { - "type": "String", - "placeholders": {} - }, - "darkTheme": "Dark", - "@darkTheme": { - "type": "String", - "placeholders": {} - }, - "dateAndTimeOfDay": "{date}, {timeOfDay}", - "@dateAndTimeOfDay": { - "type": "String", - "placeholders": { - "date": { - "type": "String" - }, - "timeOfDay": { - "type": "String" - } - } - }, - "deactivateAccountWarning": "This will deactivate your user account. This can not be undone! Are you sure?", - "@deactivateAccountWarning": { - "type": "String", - "placeholders": {} - }, - "defaultPermissionLevel": "Default permission level for new users", - "@defaultPermissionLevel": { - "type": "String", - "placeholders": {} - }, - "delete": "Delete", - "@delete": { - "type": "String", - "placeholders": {} - }, - "deleteAccount": "Delete account", - "@deleteAccount": { - "type": "String", - "placeholders": {} - }, - "deleteMessage": "Delete message", - "@deleteMessage": { - "type": "String", - "placeholders": {} - }, - "devices": "Devices", - "@devices": { - "type": "String", - "placeholders": {} - }, - "directChats": "Direct Chats", - "@directChats": { - "type": "String", - "placeholders": {} - }, - "displaynameHasBeenChanged": "Displayname has been changed", - "@displaynameHasBeenChanged": { - "type": "String", - "placeholders": {} - }, - "downloadFile": "Download file", - "@downloadFile": { - "type": "String", - "placeholders": {} - }, - "edit": "Edit", - "@edit": { - "type": "String", - "placeholders": {} - }, - "editBlockedServers": "Edit blocked servers", - "@editBlockedServers": { - "type": "String", - "placeholders": {} - }, - "chatPermissions": "Chat permissions", - "editDisplayname": "Edit displayname", - "@editDisplayname": { - "type": "String", - "placeholders": {} - }, - "editRoomAliases": "Edit room aliases", - "@editRoomAliases": { - "type": "String", - "placeholders": {} - }, - "editRoomAvatar": "Edit room avatar", - "@editRoomAvatar": { - "type": "String", - "placeholders": {} - }, - "emoteExists": "Emote already exists!", - "@emoteExists": { - "type": "String", - "placeholders": {} - }, - "emoteInvalid": "Invalid emote shortcode!", - "@emoteInvalid": { - "type": "String", - "placeholders": {} - }, - "emoteKeyboardNoRecents": "Recently-used emotes will appear here...", - "@emoteKeyboardNoRecents": { - "type": "String", - "placeholders": {} - }, - "globalChatId": "Global chat ID", - "accessAndVisibility": "Access and visibility", - "accessAndVisibilityDescription": "Who is allowed to join this chat and how the chat can be discovered.", - "calls": "Calls", - "customEmojisAndStickers": "Custom emojis and stickers", - "customEmojisAndStickersBody": "Add or share custom emojis or stickers which can be used in any chat.", - "emoteShortcode": "Emote shortcode", - "@emoteShortcode": { - "type": "String", - "placeholders": {} - }, - "emptyChat": "Empty chat", - "@emptyChat": { - "type": "String", - "placeholders": {} - }, - "enableEmotesGlobally": "Enable emote pack globally", - "@enableEmotesGlobally": { - "type": "String", - "placeholders": {} - }, - "enableEncryption": "Enable encryption", - "@enableEncryption": { - "type": "String", - "placeholders": {} - }, - "enableEncryptionWarning": "You won't be able to disable the encryption anymore. Are you sure?", - "@enableEncryptionWarning": { - "type": "String", - "placeholders": {} - }, - "encrypted": "Encrypted", - "@encrypted": { - "type": "String", - "placeholders": {} - }, - "encryption": "Encryption", - "@encryption": { - "type": "String", - "placeholders": {} - }, - "encryptionNotEnabled": "Encryption is not enabled", - "@encryptionNotEnabled": { - "type": "String", - "placeholders": {} - }, - "endedTheCall": "{senderName} ended the call", - "@endedTheCall": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "enterAnEmailAddress": "Enter an email address", - "@enterAnEmailAddress": { - "type": "String", - "placeholders": {} - }, - "errorObtainingLocation": "Error obtaining location: {error}", - "@errorObtainingLocation": { - "type": "String", - "placeholders": { - "error": { - "type": "String" - } - } - }, - "fontSize": "Font size", - "@fontSize": { - "type": "String", - "placeholders": {} - }, - "forward": "Forward", - "@forward": { - "type": "String", - "placeholders": {} - }, - "fromJoining": "From joining", - "@fromJoining": { - "type": "String", - "placeholders": {} - }, - "fromTheInvitation": "From the invitation", - "@fromTheInvitation": { - "type": "String", - "placeholders": {} - }, - "group": "Group", - "@group": { - "type": "String", - "placeholders": {} - }, - "chatDescription": "Chat description", - "chatDescriptionHasBeenChanged": "Chat description changed", - "groupIsPublic": "Group is public", - "@groupIsPublic": { - "type": "String", - "placeholders": {} - }, - "groups": "Groups", - "@groups": { - "type": "String", - "placeholders": {} - }, - "groupWith": "Group with {displayname}", - "@groupWith": { - "type": "String", - "placeholders": { - "displayname": { - "type": "String" - } - } - }, - "guestsAreForbidden": "Guests are forbidden", - "@guestsAreForbidden": { - "type": "String", - "placeholders": {} - }, - "guestsCanJoin": "Guests can join", - "@guestsCanJoin": { - "type": "String", - "placeholders": {} - }, - "hasWithdrawnTheInvitationFor": "{username} has withdrawn the invitation for {targetName}", - "@hasWithdrawnTheInvitationFor": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "help": "Help", - "@help": { - "type": "String", - "placeholders": {} - }, - "hideRedactedMessages": "Hide redacted messages", - "hideRedactedMessagesBody": "If someone redacts a message, this message won't be visible in the chat anymore.", - "hideInvalidOrUnknownMessageFormats": "Hide invalid or unknown message formats", - "block": "Block", - "blockedUsers": "Blocked users", - "blockListDescription": "You can block users who are disturbing you. You won't be able to receive any messages or room invites from the users on your personal block list.", - "blockUsername": "Ignore username", - "iHaveClickedOnLink": "I have clicked on the link", - "@iHaveClickedOnLink": { - "type": "String", - "placeholders": {} - }, - "incorrectPassphraseOrKey": "Incorrect passphrase or recovery key", - "@incorrectPassphraseOrKey": { - "type": "String", - "placeholders": {} - }, - "inviteContact": "Invite contact", - "@inviteContact": { - "type": "String", - "placeholders": {} - }, - "inviteContactToGroup": "Invite contact to {groupName}", - "@inviteContactToGroup": { - "type": "String", - "placeholders": { - "groupName": { - "type": "String" - } - } - }, - "noChatDescriptionYet": "No chat description created yet.", - "tryAgain": "Try again", - "invalidServerName": "Invalid server name", - "invited": "Invited", - "@invited": { - "type": "String", - "placeholders": {} - }, - "redactMessageDescription": "The message will be redacted for all participants in this conversation. This cannot be undone.", - "optionalRedactReason": "(Optional) Reason for redacting this message...", - "invitedUser": "📩 {username} invited {targetName}", - "@invitedUser": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "invitedUsersOnly": "Invited users only", - "@invitedUsersOnly": { - "type": "String", - "placeholders": {} - }, - "inviteText": "{username} invited you to FluffyChat.\n1. Visit fluffychat.im and install the app \n2. Sign up or sign in \n3. Open the invite link: \n {link}", - "@inviteText": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "link": { - "type": "String" - } - } - }, - "isTyping": "is typing", - "@isTyping": { - "type": "String", - "placeholders": {} - }, - "joinedTheChat": "👋 {username} joined the chat", - "@joinedTheChat": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "joinRoom": "Join room", - "@joinRoom": { - "type": "String", - "placeholders": {} - }, - "kicked": "👞 {username} kicked {targetName}", - "@kicked": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "kickedAndBanned": "🙅 {username} kicked and banned {targetName}", - "@kickedAndBanned": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "kickFromChat": "Kick from chat", - "@kickFromChat": { - "type": "String", - "placeholders": {} - }, - "lastActiveAgo": "Last active: {localizedTimeShort}", - "@lastActiveAgo": { - "type": "String", - "placeholders": { - "localizedTimeShort": { - "type": "String" - } - } - }, - "leave": "Leave", - "@leave": { - "type": "String", - "placeholders": {} - }, - "leftTheChat": "Left the chat", - "@leftTheChat": { - "type": "String", - "placeholders": {} - }, - "lightTheme": "Light", - "@lightTheme": { - "type": "String", - "placeholders": {} - }, - "loadCountMoreParticipants": "Load {count} more participants", - "@loadCountMoreParticipants": { - "type": "String", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "dehydrate": "Export session and wipe device", - "dehydrateWarning": "This action cannot be undone. Ensure you safely store the backup file.", - "hydrate": "Restore from backup file", - "loadingPleaseWait": "Loading… Please wait.", - "@loadingPleaseWait": { - "type": "String", - "placeholders": {} - }, - "loadMore": "Load more…", - "@loadMore": { - "type": "String", - "placeholders": {} - }, - "locationDisabledNotice": "Location services are disabled. Please enable them to be able to share your location.", - "@locationDisabledNotice": { - "type": "String", - "placeholders": {} - }, - "locationPermissionDeniedNotice": "Location permission denied. Please grant them to be able to share your location.", - "@locationPermissionDeniedNotice": { - "type": "String", - "placeholders": {} - }, - "login": "Login", - "@login": { - "type": "String", - "placeholders": {} - }, - "logInTo": "Log in to {homeserver}", - "@logInTo": { - "type": "String", - "placeholders": { - "homeserver": { - "type": "String" - } - } - }, - "logout": "Logout", - "@logout": { - "type": "String", - "placeholders": {} - }, - "mention": "Mention", - "@mention": { - "type": "String", - "placeholders": {} - }, - "messages": "Messages", - "@messages": { - "type": "String", - "placeholders": {} - }, - "messagesStyle": "Messages:", - "moderator": "Moderator", - "@moderator": { - "type": "String", - "placeholders": {} - }, - "muteChat": "Mute chat", - "@muteChat": { - "type": "String", - "placeholders": {} - }, - "newChat": "New chat", - "@newChat": { - "type": "String", - "placeholders": {} - }, - "newMessageInFluffyChat": "💬 New message in FluffyChat", - "@newMessageInFluffyChat": { - "type": "String", - "placeholders": {} - }, - "newVerificationRequest": "New verification request!", - "@newVerificationRequest": { - "type": "String", - "placeholders": {} - }, - "next": "Next", - "@next": { - "type": "String", - "placeholders": {} - }, - "no": "No", - "@no": { - "type": "String", - "placeholders": {} - }, - "noConnectionToTheServer": "No connection to the server", - "@noConnectionToTheServer": { - "type": "String", - "placeholders": {} - }, - "noEmotesFound": "No emotes found. 😕", - "@noEmotesFound": { - "type": "String", - "placeholders": {} - }, - "noEncryptionForPublicRooms": "You can only activate encryption as soon as the room is no longer publicly accessible.", - "@noEncryptionForPublicRooms": { - "type": "String", - "placeholders": {} - }, - "noGoogleServicesWarning": "Firebase Cloud Messaging doesn't appear to be available on your device. To still receive push notifications, we recommend installing ntfy. With ntfy or another Unified Push provider you can receive push notifications in a data secure way. You can download ntfy from the PlayStore or from F-Droid.", - "@noGoogleServicesWarning": { - "type": "String", - "placeholders": {} - }, - "noMatrixServer": "{server1} is no matrix server, use {server2} instead?", - "@noMatrixServer": { - "type": "String", - "placeholders": { - "server1": { - "type": "String" - }, - "server2": { - "type": "String" - } - } - }, - "shareInviteLink": "Share invite link", - "scanQrCode": "Scan QR code", - "noPasswordRecoveryDescription": "You have not added a way to recover your password yet.", - "@noPasswordRecoveryDescription": { - "type": "String", - "placeholders": {} - }, - "noPermission": "No permission", - "@noPermission": { - "type": "String", - "placeholders": {} - }, - "noRoomsFound": "No rooms found…", - "@noRoomsFound": { - "type": "String", - "placeholders": {} - }, - "notifications": "Notifications", - "@notifications": { - "type": "String", - "placeholders": {} - }, - "numUsersTyping": "{count} users are typing…", - "@numUsersTyping": { - "type": "String", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "obtainingLocation": "Obtaining location…", - "@obtainingLocation": { - "type": "String", - "placeholders": {} - }, - "ok": "Ok", - "@ok": { - "type": "String", - "placeholders": {} - }, - "onlineKeyBackupEnabled": "Online Key Backup is enabled", - "@onlineKeyBackupEnabled": { - "type": "String", - "placeholders": {} - }, - "oopsPushError": "Oops! Unfortunately, an error occurred when setting up the push notifications.", - "@oopsPushError": { - "type": "String", - "placeholders": {} - }, - "oopsSomethingWentWrong": "Oops, something went wrong…", - "@oopsSomethingWentWrong": { - "type": "String", - "placeholders": {} - }, - "openAppToReadMessages": "Open app to read messages", - "@openAppToReadMessages": { - "type": "String", - "placeholders": {} - }, - "openCamera": "Open camera", - "@openCamera": { - "type": "String", - "placeholders": {} - }, - "oneClientLoggedOut": "One of your clients has been logged out", - "addAccount": "Add account", - "editBundlesForAccount": "Edit bundles for this account", - "addToBundle": "Add to bundle", - "removeFromBundle": "Remove from this bundle", - "bundleName": "Bundle name", - "openInMaps": "Open in maps", - "@openInMaps": { - "type": "String", - "placeholders": {} - }, - "link": "Link", - "or": "Or", - "@or": { - "type": "String", - "placeholders": {} - }, - "participant": "Participant", - "@participant": { - "type": "String", - "placeholders": {} - }, - "passphraseOrKey": "passphrase or recovery key", - "@passphraseOrKey": { - "type": "String", - "placeholders": {} - }, - "password": "Password", - "@password": { - "type": "String", - "placeholders": {} - }, - "passwordForgotten": "Password forgotten", - "@passwordForgotten": { - "type": "String", - "placeholders": {} - }, - "passwordHasBeenChanged": "Password has been changed", - "@passwordHasBeenChanged": { - "type": "String", - "placeholders": {} - }, - "passwordRecoverySettings": "Password recovery settings", - "passwordRecovery": "Password recovery", - "@passwordRecovery": { - "type": "String", - "placeholders": {} - }, - "pin": "Pin", - "@pin": { - "type": "String", - "placeholders": {} - }, - "pleaseChooseAPasscode": "Please choose a pass code", - "@pleaseChooseAPasscode": { - "type": "String", - "placeholders": {} - }, - "pleaseClickOnLink": "Please click on the link in the email and then proceed.", - "@pleaseClickOnLink": { - "type": "String", - "placeholders": {} - }, - "pleaseEnterYourPassword": "Please enter your password", - "@pleaseEnterYourPassword": { - "type": "String", - "placeholders": {} - }, - "pleaseEnterYourPin": "Please enter your pin", - "@pleaseEnterYourPin": { - "type": "String", - "placeholders": {} - }, - "pleaseEnterYourUsername": "Please enter your username", - "@pleaseEnterYourUsername": { - "type": "String", - "placeholders": {} - }, - "pleaseFollowInstructionsOnWeb": "Please follow the instructions on the website and tap on next.", - "@pleaseFollowInstructionsOnWeb": { - "type": "String", - "placeholders": {} - }, - "privacy": "Privacy", - "@privacy": { - "type": "String", - "placeholders": {} - }, - "publicRooms": "Public Rooms", - "@publicRooms": { - "type": "String", - "placeholders": {} - }, - "reason": "Reason", - "@reason": { - "type": "String", - "placeholders": {} - }, - "redactedBy": "Redacted by {username}", - "@redactedBy": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "redactedByBecause": "Redacted by {username} because: \"{reason}\"", - "@redactedByBecause": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "reason": { - "type": "String" - } - } - }, - "redactedAnEvent": "{username} redacted an event", - "@redactedAnEvent": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "redactMessage": "Redact message", - "@redactMessage": { - "type": "String", - "placeholders": {} - }, - "reject": "Reject", - "@reject": { - "type": "String", - "placeholders": {} - }, - "rejectedTheInvitation": "{username} rejected the invitation", - "@rejectedTheInvitation": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "removeAllOtherDevices": "Remove all other devices", - "@removeAllOtherDevices": { - "type": "String", - "placeholders": {} - }, - "unbanFromChat": "Unban from chat", - "@unbanFromChat": { - "type": "String", - "placeholders": {} - }, - "removeYourAvatar": "Remove your avatar", - "@removeYourAvatar": { - "type": "String", - "placeholders": {} - }, - "replaceRoomWithNewerVersion": "Replace room with newer version", - "@replaceRoomWithNewerVersion": { - "type": "String", - "placeholders": {} - }, - "reply": "Reply", - "@reply": { - "type": "String", - "placeholders": {} - }, - "reportMessage": "Report message", - "@reportMessage": { - "type": "String", - "placeholders": {} - }, - "roomHasBeenUpgraded": "Room has been upgraded", - "@roomHasBeenUpgraded": { - "type": "String", - "placeholders": {} - }, - "sendingFilesDoNotExit": "Sending {count} files... Please do not exit!", - "@sendingFilesDoNotExit": { - "type": "String", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "roomVersion": "Room version", - "compressingVideo": "Compressing video...", - "@roomVersion": { - "type": "String", - "placeholders": {} - }, - "saveFile": "Save file", - "@saveFile": { - "type": "String", - "placeholders": {} - }, - "search": "Search", - "@search": { - "type": "String", - "placeholders": {} - }, - "security": "Security", - "@security": { - "type": "String", - "placeholders": {} - }, - "send": "Send", - "@send": { - "type": "String", - "placeholders": {} - }, - "sendAMessage": "Send a message", - "@sendAMessage": { - "type": "String", - "placeholders": {} - }, - "sendAsText": "Send as text", - "@sendAsText": { - "type": "String" - }, - "sendAudio": "Send audio", - "@sendAudio": { - "type": "String", - "placeholders": {} - }, - "sendFile": "Send file", - "@sendFile": { - "type": "String", - "placeholders": {} - }, - "sendImage": "Send image", - "@sendImage": { - "type": "String", - "placeholders": {} - }, - "sendImages": "Send {count} image", - "@sendImages": { - "type": "String", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "sendMessages": "Send messages", - "@sendMessages": { - "type": "String", - "placeholders": {} - }, - "sendVideo": "Send video", - "@sendVideo": { - "type": "String", - "placeholders": {} - }, - "sentAFile": "📁 {username} sent a file", - "@sentAFile": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "sentAnAudio": "🎤 {username} sent an audio", - "@sentAnAudio": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "sentAPicture": "🖼️ {username} sent a picture", - "@sentAPicture": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "sentASticker": "😊 {username} sent a sticker", - "@sentASticker": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "sentAVideo": "🎥 {username} sent a video", - "@sentAVideo": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "sentCallInformations": "{senderName} sent call information", - "@sentCallInformations": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "setAsCanonicalAlias": "Set as main alias", - "@setAsCanonicalAlias": { - "type": "String", - "placeholders": {} - }, - "setChatDescription": "Set chat description", - "setStatus": "Set status", - "@setStatus": { - "type": "String", - "placeholders": {} - }, - "settings": "Settings", - "@settings": { - "type": "String", - "placeholders": {} - }, - "share": "Share", - "@share": { - "type": "String", - "placeholders": {} - }, - "sharedTheLocation": "{username} shared their location", - "@sharedTheLocation": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "shareLocation": "Share location", - "@shareLocation": { - "type": "String", - "placeholders": {} - }, - "skip": "Skip", - "@skip": { - "type": "String", - "placeholders": {} - }, - "sourceCode": "Source code", - "@sourceCode": { - "type": "String", - "placeholders": {} - }, - "spaceIsPublic": "Space is public", - "@spaceIsPublic": { - "type": "String", - "placeholders": {} - }, - "spaceName": "Space name", - "@spaceName": { - "type": "String", - "placeholders": {} - }, - "startedACall": "{senderName} started a call", - "@startedACall": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "status": "Status", - "@status": { - "type": "String", - "placeholders": {} - }, - "statusExampleMessage": "How are you today?", - "@statusExampleMessage": { - "type": "String", - "placeholders": {} - }, - "submit": "Submit", - "@submit": { - "type": "String", - "placeholders": {} - }, - "synchronizingPleaseWait": "Synchronizing… Please wait.", - "@synchronizingPleaseWait": { - "type": "String", - "placeholders": {} - }, - "synchronizingPleaseWaitCounter": " Synchronizing… ({percentage}%)", - "@synchronizingPleaseWaitCounter": { - "type": "String", - "placeholders": { - "percentage": { - "type": "String" - } - } - }, - "systemTheme": "System", - "@systemTheme": { - "type": "String", - "placeholders": {} - }, - "theyDontMatch": "They Don't Match", - "@theyDontMatch": { - "type": "String", - "placeholders": {} - }, - "theyMatch": "They Match", - "@theyMatch": { - "type": "String", - "placeholders": {} - }, - "tooManyRequestsWarning": "Too many requests. Please try again later!", - "@tooManyRequestsWarning": { - "type": "String", - "placeholders": {} - }, - "tryToSendAgain": "Try to send again", - "@tryToSendAgain": { - "type": "String", - "placeholders": {} - }, - "unbannedUser": "{username} unbanned {targetName}", - "@unbannedUser": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "unblockDevice": "Unblock Device", - "@unblockDevice": { - "type": "String", - "placeholders": {} - }, - "unknownDevice": "Unknown device", - "@unknownDevice": { - "type": "String", - "placeholders": {} - }, - "unknownEncryptionAlgorithm": "Unknown encryption algorithm", - "@unknownEncryptionAlgorithm": { - "type": "String", - "placeholders": {} - }, - "unknownEvent": "Unknown event '{type}'", - "@unknownEvent": { - "type": "String", - "placeholders": { - "type": { - "type": "String" - } - } - }, - "unmuteChat": "Unmute chat", - "@unmuteChat": { - "type": "String", - "placeholders": {} - }, - "unpin": "Unpin", - "@unpin": { - "type": "String", - "placeholders": {} - }, - "userAndOthersAreTyping": "{username} and {count} others are typing…", - "@userAndOthersAreTyping": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "count": { - "type": "int" - } - } - }, - "userAndUserAreTyping": "{username} and {username2} are typing…", - "@userAndUserAreTyping": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "username2": { - "type": "String" - } - } - }, - "userIsTyping": "{username} is typing…", - "@userIsTyping": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "userLeftTheChat": "🚪 {username} left the chat", - "@userLeftTheChat": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "userSentUnknownEvent": "{username} sent a {type} event", - "@userSentUnknownEvent": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "type": { - "type": "String" - } - } - }, - "unverified": "Unverified", - "verified": "Verified", - "@verified": { - "type": "String", - "placeholders": {} - }, - "verifyStart": "Start Verification", - "@verifyStart": { - "type": "String", - "placeholders": {} - }, - "verifySuccess": "You successfully verified!", - "@verifySuccess": { - "type": "String", - "placeholders": {} - }, - "verifyTitle": "Verifying other account", - "@verifyTitle": { - "type": "String", - "placeholders": {} - }, - "visibilityOfTheChatHistory": "Visibility of the chat history", - "@visibilityOfTheChatHistory": { - "type": "String", - "placeholders": {} - }, - "visibleForAllParticipants": "Visible for all participants", - "@visibleForAllParticipants": { - "type": "String", - "placeholders": {} - }, - "visibleForEveryone": "Visible for everyone", - "@visibleForEveryone": { - "type": "String", - "placeholders": {} - }, - "voiceMessage": "Voice message", - "@voiceMessage": { - "type": "String", - "placeholders": {} - }, - "waitingPartnerAcceptRequest": "Waiting for partner to accept the request…", - "@waitingPartnerAcceptRequest": { - "type": "String", - "placeholders": {} - }, - "waitingPartnerEmoji": "Waiting for partner to accept the emoji…", - "@waitingPartnerEmoji": { - "type": "String", - "placeholders": {} - }, - "waitingPartnerNumbers": "Waiting for partner to accept the numbers…", - "@waitingPartnerNumbers": { - "type": "String", - "placeholders": {} - }, - "warning": "Warning!", - "@warning": { - "type": "String", - "placeholders": {} - }, - "weSentYouAnEmail": "We sent you an email", - "@weSentYouAnEmail": { - "type": "String", - "placeholders": {} - }, - "whoCanPerformWhichAction": "Who can perform which action", - "@whoCanPerformWhichAction": { - "type": "String", - "placeholders": {} - }, - "whoIsAllowedToJoinThisGroup": "Who is allowed to join this group", - "@whoIsAllowedToJoinThisGroup": { - "type": "String", - "placeholders": {} - }, - "whyDoYouWantToReportThis": "Why do you want to report this?", - "@whyDoYouWantToReportThis": { - "type": "String", - "placeholders": {} - }, - "withTheseAddressesRecoveryDescription": "With these addresses you can recover your password.", - "@withTheseAddressesRecoveryDescription": { - "type": "String", - "placeholders": {} - }, - "writeAMessage": "Write a message…", - "@writeAMessage": { - "type": "String", - "placeholders": {} - }, - "yes": "Yes", - "@yes": { - "type": "String", - "placeholders": {} - }, - "you": "You", - "@you": { - "type": "String", - "placeholders": {} - }, - "youAreNoLongerParticipatingInThisChat": "You are no longer participating in this chat", - "@youAreNoLongerParticipatingInThisChat": { - "type": "String", - "placeholders": {} - }, - "youHaveBeenBannedFromThisChat": "You have been banned from this chat", - "@youHaveBeenBannedFromThisChat": { - "type": "String", - "placeholders": {} - }, - "yourPublicKey": "Your public key", - "@yourPublicKey": { - "type": "String", - "placeholders": {} - }, - "messageInfo": "Message info", - "time": "Time", - "sender": "Sender", - "openGallery": "Open gallery", - "removeFromSpace": "Remove from space", - "markAsRead": "Mark as read", - "reportUser": "Report user", - "reactedWith": "{sender} reacted with {reaction}", - "@reactedWith": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - }, - "reaction": { - "type": "String" - } - } - }, - "pinMessage": "Pin to room", - "confirmEventUnpin": "Are you sure to permanently unpin the event?", - "emojis": "Emojis", - "unsupportedAndroidVersion": "Unsupported Android version", - "unsupportedAndroidVersionLong": "This feature requires a newer Android version. Please check for updates or Lineage OS support.", - "youRejectedTheInvitation": "You rejected the invitation", - "youJoinedTheChat": "You joined the chat", - "youAcceptedTheInvitation": "👍 You accepted the invitation", - "youBannedUser": "You banned {user}", - "@youBannedUser": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "youHaveWithdrawnTheInvitationFor": "You have withdrawn the invitation for {user}", - "@youHaveWithdrawnTheInvitationFor": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "youInvitedBy": "📩 You have been invited by {user}", - "@youInvitedBy": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "youInvitedUser": "📩 You invited {user}", - "@youInvitedUser": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "youKicked": "👞 You kicked {user}", - "@youKicked": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "youKickedAndBanned": "🙅 You kicked and banned {user}", - "@youKickedAndBanned": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "youUnbannedUser": "You unbanned {user}", - "@youUnbannedUser": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "hasKnocked": "🚪 {user} has knocked", - "@hasKnocked": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "usersMustKnock": "Users must knock", - "noOneCanJoin": "No one can join", - "knock": "Knock", - "users": "Users", - "storeInAndroidKeystore": "Store in Android KeyStore", - "storeInAppleKeyChain": "Store in Apple KeyChain", - "storeSecurlyOnThisDevice": "Store securely on this device", - "countFiles": "{count} files", - "@countFiles": { - "placeholders": { - "count": { - "type": "int" - } - } - }, - "user": "User", - "custom": "Custom", - "whyIsThisMessageEncrypted": "Why is this message unreadable?", - "noKeyForThisMessage": "This can happen if the message was sent before you have signed in to your account at this device.\n\nIt is also possible that the sender has blocked your device or something went wrong with the internet connection.\n\nAre you able to read the message on another session? Then you can transfer the message from it! Go to Settings > Devices and make sure that your devices have verified each other. When you open the room the next time and both sessions are in the foreground, the keys will be transmitted automatically.\n\nDo you not want to lose the keys when logging out or switching devices? Make sure that you have enabled the chat backup in the settings.", - "newSpace": "New space", - "newCanal": "New canal", - "newMural": "New mural", - "doNotShowAgain": "Do not show again", - "wasDirectChatDisplayName": "Empty chat (was {oldDisplayName})", - "@wasDirectChatDisplayName": { - "type": "String", - "placeholders": { - "oldDisplayName": { - "type": "String" - } - } - }, - "newSpaceDescription": "Spaces allows you to consolidate your chats and build private or public communities.", - "newCanalDescription": "A canal is a room where only admins can publish. Use it to broadcast official announcements.", - "newMuralDescription": "A mural is a shared bulletin board where everyone can post. Use it to leave notes for your community.", - "encryptThisChat": "Encrypt this chat", - "disableEncryptionWarning": "For security reasons you can not disable encryption in a chat, where it has been enabled before.", - "sorryThatsNotPossible": "Sorry... that is not possible", - "reopenChat": "Reopen chat", - "noBackupWarning": "Warning! Without enabling chat backup, you will lose access to your encrypted messages. It is highly recommended to enable the chat backup first before logging out.", - "noOtherDevicesFound": "No other devices found", - "fileIsTooBigForServer": "Unable to send! The server only supports attachments up to {max}.", - "@fileIsTooBigForServer": { - "type": "String", - "placeholders": { - "max": { - "type": "String" - } - } - }, - "fileHasBeenSavedAt": "File has been saved at {path}", - "@fileHasBeenSavedAt": { - "type": "String", - "placeholders": { - "path": { - "type": "String" - } - } - }, - "jumpToLastReadMessage": "Jump to last read message", - "readUpToHere": "Read up to here", - "jump": "Jump", - "openLinkInBrowser": "Open link in browser", - "reportErrorDescription": "😭 Oh no. Something went wrong. If you want, you can report this bug to the developers.", - "report": "report", - "setColorTheme": "Set color theme:", - "invite": "Invite", - "inviteGroupChat": "📨 Group chat invite", - "invalidInput": "Invalid input!", - "wrongPinEntered": "Wrong pin entered! Try again in {seconds} seconds...", - "@wrongPinEntered": { - "type": "String", - "placeholders": { - "seconds": { - "type": "int" - } - } - }, - "pleaseEnterANumber": "Please enter a number greater than 0", - "archiveRoomDescription": "The chat will be moved to the archive. Other users will be able to see that you have left the chat.", - "roomUpgradeDescription": "The chat will then be recreated with the new room version. All participants will be notified that they need to switch to the new chat. You can find out more about room versions at https://spec.matrix.org/latest/rooms/", - "removeDevicesDescription": "You will be logged out of this device and will no longer be able to receive messages.", - "banUserDescription": "The user will be banned from the chat and will not be able to enter the chat again until they are unbanned.", - "unbanUserDescription": "The user will be able to enter the chat again if they try.", - "kickUserDescription": "The user is kicked out of the chat but not banned. In public chats, the user can rejoin at any time.", - "makeAdminDescription": "Once you make this user admin, you may not be able to undo this as they will then have the same permissions as you.", - "pushNotificationsNotAvailable": "Push notifications not available", - "learnMore": "Learn more", - "yourGlobalUserIdIs": "Your global user-ID is: ", - "noUsersFoundWithQuery": "Unfortunately no user could be found with \"{query}\". Please check whether you made a typo.", - "@noUsersFoundWithQuery": { - "type": "String", - "placeholders": { - "query": { - "type": "String" - } - } - }, - "knocking": "Knocking", - "chatCanBeDiscoveredViaSearchOnServer": "Chat can be discovered via the search on {server}", - "@chatCanBeDiscoveredViaSearchOnServer": { - "type": "String", - "placeholders": { - "server": { - "type": "String" - } - } - }, - "searchChatsRooms": "Search for #chats, @users...", - "nothingFound": "Nothing found...", - "groupName": "Group name", - "createGroupAndInviteUsers": "Create a group and invite users", - "groupCanBeFoundViaSearch": "Group can be found via search", - "wrongRecoveryKey": "Sorry... this does not seem to be the correct recovery key.", - "commandHint_sendraw": "Send raw json", - "databaseMigrationTitle": "Database is optimized", - "databaseMigrationBody": "Please wait. This may take a moment.", - "leaveEmptyToClearStatus": "Leave empty to clear your status.", - "select": "Select", - "searchForUsers": "Search for @users...", - "pleaseEnterYourCurrentPassword": "Please enter your current password", - "newPassword": "New password", - "pleaseChooseAStrongPassword": "Please choose a strong password", - "passwordsDoNotMatch": "Passwords do not match", - "passwordIsWrong": "Your entered password is wrong", - "publicChatAddresses": "Public chat addresses", - "createNewAddress": "Create new address", - "joinSpace": "Join space", - "publicSpaces": "Public spaces", - "addChatOrSubSpace": "Add chat or sub space", - "thisDevice": "This device:", - "initAppError": "An error occured while init the app", - "searchIn": "Search in chat \"{chat}\"...", - "@searchIn": { - "type": "String", - "placeholders": { - "chat": { - "type": "String" - } - } - }, - "searchMore": "Search more...", - "gallery": "Gallery", - "files": "Files", - "sessionLostBody": "Your session is lost. Please report this error to the developers at {url}. The error message is: {error}", - "@sessionLostBody": { - "type": "String", - "placeholders": { - "url": { - "type": "String" - }, - "error": { - "type": "String" - } - } - }, - "restoreSessionBody": "The app now tries to restore your session from the backup. Please report this error to the developers at {url}. The error message is: {error}", - "@restoreSessionBody": { - "type": "String", - "placeholders": { - "url": { - "type": "String" - }, - "error": { - "type": "String" - } - } - }, - "sendReadReceipts": "Send read receipts", - "sendTypingNotificationsDescription": "Other participants in a chat can see when you are typing a new message.", - "sendReadReceiptsDescription": "Other participants in a chat can see when you have read a message.", - "formattedMessages": "Formatted messages", - "formattedMessagesDescription": "Display rich message content like bold text using markdown.", - "verifyOtherUser": "🔐 Verify other user", - "verifyOtherUserDescription": "If you verify another user, you can be sure that you know who you are really writing to. 💪\n\nWhen you start a verification, you and the other user will see a popup in the app. There you will then see a series of emojis or numbers that you have to compare with each other.\n\nThe best way to do this is to meet up or start a video call. 👭", - "verifyOtherDevice": "🔐 Verify other device", - "verifyOtherDeviceDescription": "When you verify another device, those devices can exchange keys, increasing your overall security. 💪 When you start a verification, a popup will appear in the app on both devices. There you will then see a series of emojis or numbers that you have to compare with each other. It's best to have both devices handy before you start the verification. 🤳", - "acceptedKeyVerification": "{sender} accepted key verification", - "@acceptedKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "canceledKeyVerification": "{sender} canceled key verification", - "@canceledKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "completedKeyVerification": "{sender} completed key verification", - "@completedKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "isReadyForKeyVerification": "{sender} is ready for key verification", - "@isReadyForKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "requestedKeyVerification": "{sender} requested key verification", - "@requestedKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "startedKeyVerification": "{sender} started key verification", - "@startedKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "incomingMessages": "Incoming messages", - "stickers": "Stickers", - "discover": "Discover", - "commandHint_ignore": "Ignore the given matrix ID", - "commandHint_unignore": "Unignore the given matrix ID", - "unreadChatsInApp": "{appname}: {unread} unread chats", - "@unreadChatsInApp": { - "type": "String", - "placeholders": { - "appname": { - "type": "String" - }, - "unread": { - "type": "String" - } - } - }, - "noDatabaseEncryption": "Database encryption is not supported on this platform", - "thereAreCountUsersBlocked": "Right now there are {count} users blocked.", - "@thereAreCountUsersBlocked": { - "type": "String", - "count": {} - }, - "goToSpace": "Go to space: {space}", - "@goToSpace": { - "type": "String", - "space": {} - }, - "markAsUnread": "Mark as unread", - "userLevel": "{level} - User", - "@userLevel": { - "type": "String", - "placeholders": { - "level": { - "type": "int" - } - } - }, - "moderatorLevel": "{level} - Moderator", - "@moderatorLevel": { - "type": "String", - "placeholders": { - "level": { - "type": "int" - } - } - }, - "adminLevel": "{level} - Admin", - "@adminLevel": { - "type": "String", - "placeholders": { - "level": { - "type": "int" - } - } - }, - "changeGeneralChatSettings": "Change general chat settings", - "inviteOtherUsers": "Invite other users to this chat", - "changeTheChatPermissions": "Change the chat permissions", - "changeTheVisibilityOfChatHistory": "Change the visibility of the chat history", - "changeTheCanonicalRoomAlias": "Change the main public chat address", - "sendRoomNotifications": "Send a @room notifications", - "changeTheDescriptionOfTheGroup": "Change the description of the chat", - "chatPermissionsDescription": "Define which power level is necessary for certain actions in this chat. The power levels 0, 50 and 100 are usually representing users, moderators and admins, but any gradation is possible.", - "updateInstalled": "🎉 Update {version} installed!", - "@updateInstalled": { - "type": "String", - "placeholders": { - "version": { - "type": "String" - } - } - }, - "changelog": "Changelog", - "sendCanceled": "Sending canceled", - "loginWithMatrixId": "Login with Matrix-ID", - "doesNotSeemToBeAValidHomeserver": "Doesn't seem to be a compatible homeserver. Wrong URL?", - "calculatingFileSize": "Calculating file size...", - "oneOfYourDevicesIsNotVerified": "One of your devices is not verified", - "noticeChatBackupDeviceVerification": "Note: When you connect all your devices to the chat backup, they are automatically verified.", - "continueText": "Continue", - "blur": "Blur:", - "opacity": "Opacity:", - "setWallpaper": "Set wallpaper", - "manageAccount": "Manage account", - "noContactInformationProvided": "Server does not provide any valid contact information", - "contactServerAdmin": "Contact server admin", - "contactServerSecurity": "Contact server security", - "supportPage": "Support page", - "serverInformation": "Server information:", - "name": "Name", - "version": "Version", - "website": "Website", - "compress": "Compress", - "boldText": "Bold text", - "italicText": "Italic text", - "strikeThrough": "Strikethrough", - "pleaseFillOut": "Please fill out", - "invalidUrl": "Invalid url", - "addLink": "Add link", - "unableToJoinChat": "Unable to join chat. Maybe the other party has already closed the conversation.", - "previous": "Previous", - "otherPartyNotLoggedIn": "The other party is currently not logged in and therefore cannot receive messages!", - "appWantsToUseForLogin": "Use '{server}' to log in", - "@appWantsToUseForLogin": { - "type": "String", - "placeholders": { - "server": { - "type": "String" - } - } - }, - "appWantsToUseForLoginDescription": "You hereby allow the app and website to share information about you.", - "open": "Open", - "waitingForServer": "Waiting for server...", - "newChatRequest": "📩 New chat request", - "contentNotificationSettings": "Content notification settings", - "generalNotificationSettings": "General notification settings", - "roomNotificationSettings": "Room notification settings", - "userSpecificNotificationSettings": "User specific notification settings", - "otherNotificationSettings": "Other notification settings", - "notificationRuleContainsUserName": "Contains User Name", - "notificationRuleContainsUserNameDescription": "Notifies the user when a message contains their username.", - "notificationRuleMaster": "Mute all notifications", - "notificationRuleMasterDescription": "Overrides all other rules and disables all notifications.", - "notificationRuleSuppressNotices": "Suppress Automated Messages", - "notificationRuleSuppressNoticesDescription": "Suppresses notifications from automated clients like bots.", - "notificationRuleInviteForMe": "Invite for Me", - "notificationRuleInviteForMeDescription": "Notifies the user when they are invited to a room.", - "notificationRuleMemberEvent": "Member Event", - "notificationRuleMemberEventDescription": "Suppresses notifications for membership events.", - "notificationRuleIsUserMention": "User Mention", - "notificationRuleIsUserMentionDescription": "Notifies the user when they are directly mentioned in a message.", - "notificationRuleContainsDisplayName": "Contains Display Name", - "notificationRuleContainsDisplayNameDescription": "Notifies the user when a message contains their display name.", - "notificationRuleIsRoomMention": "Room Mention", - "notificationRuleIsRoomMentionDescription": "Notifies the user when there is a room mention.", - "notificationRuleRoomnotif": "Room Notification", - "notificationRuleRoomnotifDescription": "Notifies the user when a message contains '@room'.", - "notificationRuleTombstone": "Tombstone", - "notificationRuleTombstoneDescription": "Notifies the user about room deactivation messages.", - "notificationRuleReaction": "Reaction", - "notificationRuleReactionDescription": "Suppresses notifications for reactions.", - "notificationRuleRoomServerAcl": "Room Server ACL", - "notificationRuleRoomServerAclDescription": "Suppresses notifications for room server access control lists (ACL).", - "notificationRuleSuppressEdits": "Suppress Edits", - "notificationRuleSuppressEditsDescription": "Suppresses notifications for edited messages.", - "notificationRuleCall": "Call", - "notificationRuleCallDescription": "Notifies the user about calls.", - "notificationRuleEncryptedRoomOneToOne": "Encrypted Room One-to-One", - "notificationRuleEncryptedRoomOneToOneDescription": "Notifies the user about messages in encrypted one-to-one rooms.", - "notificationRuleRoomOneToOne": "Room One-to-One", - "notificationRuleRoomOneToOneDescription": "Notifies the user about messages in one-to-one rooms.", - "notificationRuleMessage": "Message", - "notificationRuleMessageDescription": "Notifies the user about general messages.", - "notificationRuleEncrypted": "Encrypted", - "notificationRuleEncryptedDescription": "Notifies the user about messages in encrypted rooms.", - "notificationRuleJitsi": "Jitsi", - "notificationRuleJitsiDescription": "Notifies the user about Jitsi widget events.", - "notificationRuleServerAcl": "Suppress Server ACL Events", - "notificationRuleServerAclDescription": "Suppresses notifications for Server ACL events.", - "unknownPushRule": "Unknown push rule '{rule}'", - "@unknownPushRule": { - "type": "String", - "placeholders": { - "rule": { - "type": "String" - } - } - }, - "sentVoiceMessage": "🎙️ {duration} - Voice message from {sender}", - "@sentVoiceMessage": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - }, - "duration": { - "type": "String" - } - } - }, - "deletePushRuleCanNotBeUndone": "If you delete this notification setting, this can not be undone.", - "more": "More", - "shareKeysWith": "Share keys with...", - "shareKeysWithDescription": "Which devices should be trusted so that they can read along your messages in encrypted chats?", - "allDevices": "All devices", - "crossVerifiedDevicesIfEnabled": "Cross verified devices if enabled", - "crossVerifiedDevices": "Cross verified devices", - "verifiedDevicesOnly": "Verified devices only", - "takeAPhoto": "Take a photo", - "recordAVideo": "Record a video", - "optionalMessage": "(Optional) message...", - "notSupportedOnThisDevice": "Not supported on this device", - "enterNewChat": "Enter new chat", - "approve": "Approve", - "youHaveKnocked": "You have knocked", - "pleaseWaitUntilInvited": "Please wait now, until someone from the room invites you.", - "commandHint_logout": "Logout your current device", - "commandHint_logoutall": "Logout all active devices", - "displayNavigationRail": "Show navigation rail on mobile", - "customReaction": "Custom reaction", - "moreEvents": "More events", - "showMore": "Show more", - "showLess": "Show less", - "declineInvitation": "Decline invitation", - "noMessagesYet": "No messages yet", - "longPressToRecordVoiceMessage": "Long press to record voice message.", - "pause": "Pause", - "resume": "Resume", - "removeFromSpaceDescription": "The chat will be removed from the space but still appear in your chat list.", - "countChats": "{chats} chats", - "@countChats": { - "type": "String", - "placeholders": { - "chats": { - "type": "int" - } - } - }, - "spaceMemberOf": "Space member of {spaces}", - "@spaceMemberOf": { - "type": "String", - "placeholders": { - "spaces": { - "type": "String" - } - } - }, - "spaceMemberOfCanKnock": "Space member of {spaces} can knock", - "@spaceMemberOfCanKnock": { - "type": "String", - "placeholders": { - "spaces": { - "type": "String" - } - } - }, - "startPoll": "Start poll", - "endPoll": "End poll", - "answersVisible": "Answers visible", - "pollQuestion": "Poll question", - "answerOption": "Answer option", - "addAnswerOption": "Add answer option", - "allowMultipleAnswers": "Allow multiple answers", - "pollHasBeenEnded": "Poll has been ended", - "countVotes": "{count, plural, =1{One vote} other{{count} votes}}", - "@countVotes": { - "type": "int", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "answersWillBeVisibleWhenPollHasEnded": "Answers will be visible when poll has ended", - "replyInThread": "Reply in thread", - "countReplies": "{count, plural, =1{One reply} other{{count} replies}}", - "@countReplies": { - "type": "int", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "thread": "Thread", - "backToMainChat": "Back to main chat", - "saveChanges": "Save changes", - "createSticker": "Create sticker or emoji", - "useAsSticker": "Use as sticker", - "useAsEmoji": "Use as emoji", - "stickerPackNameAlreadyExists": "Sticker pack name already exists", - "newStickerPack": "New sticker pack", - "stickerPackName": "Sticker pack name", - "attribution": "Attribution", - "skipChatBackup": "Skip chat backup", - "skipChatBackupWarning": "Are you sure? Without enabling the chat backup you may lose access to your messages if you switch your device.", - "noMoreResultsFound": "No more results found", - "chatSearchedUntil": "Chat searched until {time}", - "@chatSearchedUntil": { - "type": "String", - "placeholders": { - "time": { - "type": "String" - } - } - }, - "federationBaseUrl": "Federation Base URL", - "clientWellKnownInformation": "Client-Well-Known Information:", - "baseUrl": "Base URL", - "identityServer": "Identity Server:", - "versionWithNumber": "Version: {version}", - "@versionWithNumber": { - "type": "String", - "placeholders": { - "version": { - "type": "String" - } - } - }, - "logs": "Logs", - "advancedConfigs": "Advanced Configs", - "advancedConfigurations": "Advanced configurations", - "signIn": "Sign in", - "createNewAccount": "Create new account", - "signUpGreeting": "FluffyChat is decentralized! Select a server where you want to create your account and let's go!", - "signInGreeting": "You already have an account in Matrix? Welcome back! Select your homeserver and sign in.", - "theProcessWasCanceled": "The process was canceled.", - "join": "Join", - "searchOrEnterHomeserverAddress": "Search or enter homeserver address", - "matrixId": "Matrix ID", - "setPowerLevel": "Set power level", - "makeModerator": "Make moderator", - "makeAdmin": "Make admin", - "removeModeratorRights": "Remove moderator rights", - "removeAdminRights": "Remove admin rights", - "powerLevel": "Power level", - "setPowerLevelDescription": "Power levels define what a member is allowed to do in this room and usually range between 0 and 100.", - "owner": "Owner", - "mute": "Mute", - "@mute": { - "description": "This should be a very short string because there is not much space in the button!" - }, - "createNewChat": "Create new chat", - "reset": "Reset", - "supportFluffyChat": "Support FluffyChat", - "support": "Support", - "setLowPriority": "Set low priority", - "unsetLowPriority": "Unset low priority", - "playSoundOnNotification": "Play sound on notification", - "addTag": "Add tag", - "removeTag": "Remove tag", - "tagName": "Tag name", - "createNewTag": "Create new tag", - "hideRoomsInSpaces": "Hide rooms that are in a space", - "possibleByYou": "This release was only possible thanks to your support. FluffyChat remains free, open-source, and entirely community-driven.", - "showThumbnailsInTimeline": "Show thumbnails of images and videos", - "appSubtitle": "Um App de comunicação segura", - "appDescription": "Communicate encrypted over the decentralized [matrix] network in an easy and accessible way for everyone.", - "interactiveVerification": "Interactive verification", - "interactiveVerificationDescription": "If you are next to each other or communicate via a secure channel then you can verify all devices at once by comparing a security number or emojis.", - "countUnverifiedDevices": "{count} unverified devices in the chat.", - "@countUnverifiedDevices": { - "type": "int", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "encryptedMessage": "Encrypted message", - "unencryptedMessage": "Unencrypted message", - "messageCanOnlyBeReadByUser": "Your message is end to end encrypted and can only be read by this user:", - "messageCanOnlyBeReadByUsers": "Your message is end to end encrypted and can only be read by these users:", - "publicKey": "Public key: {key}", - "@publicKey": { - "type": "String", - "placeholders": { - "key": { - "type": "String" - } - } - }, - "deviceIdentityKey": "Device identity key", - "restoreBootstrapEmptyDevicesDescription": "Please enter your passphrase or recovery key to verify this device and get access to your encrypted message backup.", - "@restoreBootstrapEmptyDevicesDescription": { - "type": "String", - "placeholders": {} - }, - "restoreBootstrapDevicesDescription": "Please pick one of your other devices, to verify this session:", - "@restoreBootstrapDevicesDescription": { - "type": "String", - "placeholders": {} - }, - "resetAccount": "Reset account", - "@resetAccount": { - "type": "String", - "placeholders": {} - }, - "restoreCryptoIdentity": "Restore Crypto Identity", - "@restoreCryptoIdentity": { - "type": "String", - "placeholders": {} - }, - "resetCryptoIdentity": "Reset Crypto Identity", - "@resetCryptoIdentity": { - "type": "String", - "placeholders": {} - }, - "setUpCryptoIdentity": "Set Up Crypto Identity", - "@setUpCryptoIdentity": { - "type": "String", - "placeholders": {} - }, - "waitingForKeys": "Waiting for keys... Please keep the other device active.", - "@waitingForKeys": { - "type": "String", - "placeholders": {} - }, - "noKeysTransmitted": "No keys transmitted. Please try again.", - "@noKeysTransmitted": { - "type": "String", - "placeholders": {} - }, - "unlock": "Unlock", - "@unlock": { - "type": "String", - "placeholders": {} - }, - "openFile": "Open file", - "@openFile": { - "type": "String", - "placeholders": {} - }, - "resetAccountWarning": "When you reset your account you will lose the access to your old messages forever. All your current devices need to be verified again. Please only perform this action when you have no other devices left to verify your session and you have lost your recovery key and passphrase!", - "@resetAccountWarning": { - "type": "String", - "placeholders": {} - }, - "newPassphraseDescription": "FluffyChat uses end to end encryption. To not lose your messages, please choose a strong passphrase to secure your crypto identity and your encrypted message backup.", - "@newPassphraseDescription": { - "type": "String", - "placeholders": {} - }, - "newPassphrase": "New passphrase", - "@newPassphrase": { - "type": "String", - "placeholders": {} - }, - "repeatPassphrase": "Repeat passphrase", - "@repeatPassphrase": { - "type": "String", - "placeholders": {} - }, - "passphrasesMatch": "Passphrases match", - "@passphrasesMatch": { - "type": "String", - "placeholders": {} - }, - "passphraseLengthRequirement": "At least 12 characters long.", - "@passphraseLengthRequirement": { - "type": "String", - "placeholders": {} - }, - "passphraseUpperAndLowerCaseRequirement": "Contains uppercase and lowercase characters.", - "@passphraseUpperAndLowerCaseRequirement": { - "type": "String", - "placeholders": {} - }, - "passphraseSpecialCharactersRequirement": "Contains special characters.", - "@passphraseSpecialCharactersRequirement": { - "type": "String", - "placeholders": {} - }, - "passphraseNumberRequirement": "Contains one numbers.", - "@passphraseNumberRequirement": { - "type": "String", - "placeholders": {} - }, - "storeRecoveryKeyDescription": "Please note down your recovery key to be able to restore your encrypted messages and your crypto identity on.", - "@storeRecoveryKeyDescription": { - "type": "String", - "placeholders": {} - }, - "saveAsFile": "Save as file", - "@saveAsFile": { - "type": "String", - "placeholders": {} - }, - "youAreReadyToStart": "You are ready to start!", - "noUserKeyFound": "No user key found", - "@noUserKeyFound": { - "type": "String", - "placeholders": {} - }, - "knownSince": "Known since: {date}", - "@knownSince": { - "type": "String", - "placeholders": { - "date": { - "type": "String" - } - } - }, - "unsignedDevice": "Unsigned device", - "@unsignedDevice": { - "type": "String", - "placeholders": {} - }, - "signedDevice": "Signed device", - "@signedDevice": { - "type": "String", - "placeholders": {} - }, - "noCurve25519KeyFound": "No curve25519 key found", - "@noCurve25519KeyFound": { - "type": "String", - "placeholders": {} - }, - "messageNotDecryptable": "Message not decryptable", - "today": "Today", - "sending": "Sending", - "generatingThumbnail": "Generating thumbnail", - "encrypting": "Encrypting", - "uploading": "Uploading", - "edited": "(edited)", - "couldNotBeSent": "Could not be sent", - "yesterday": "Yesterday", - "resetRecoveryKey": "Reset recovery key", - "pleaseEnter6Digits": "Please enter 6 digits to enable the app lock.", - "disableAppLock": "Disable app lock", - "disableAppLockAreYouSure": "Are you sure you want to disable the app lock?", - "enableBiometrics": "Enable biometric authentication", - "disableBiometrics": "Disable biometric authentication", - "biometricsDescription": "With biometric authentication you can unlock the app with your face or your fingerprint. The capabilities depend on your device.", - "useAppLock": "Use app lock", - "unlockWithBiometrics": "Unlock with biometric authentication", - "resetPin": "Reset pin", - "forwardCountMessages": "Forward {count, plural, =1{one message} other{{count} messages}}?", - "@forwardCountMessages": { - "placeholders": { - "count": { - "type": "int" - } - } - }, - "loadingMessages": "Loading messages...", - "buildDoesNotSupportFirebase": "This build does not support firebase cloud messaging.", - "unableToRegisterDeviceForFirebase": "Unable to register device for firebase cloud messaging.", - "unifiedPushDistributors": "Unified Push distributors:", - "doubleTapToReact": "Double-tap to react", - "doubleTapToReactDescription": "Double-tap a message to react instead of selecting text", - "doubleTapReaction": "Double-tap reaction", - "shareCrashReports": "Share crash reports", - "shareCrashReportsDescription": "Automatically share crash reports with the developers?", - "countActiveCallMembers": "{count} active call members", - "@countActiveCallMembers": { - "placeholders": { - "count": { - "type": "int" - } - } - }, - "enterCall": "Enter call", - "videoCallsBetaWarning": "Video calls are a beta feature. There might be bugs or unexpected behavior. We would be happy to hear about your feedback.", - "noDevicesFound": "No devices found", - "incomingCall": "Incoming call", - "videoCall": "Video call", - "voiceCall": "Voice call", - "missedCall": "Missed call", - "callBack": "Call back", - "hangUp": "Hang up", - "waitingForParticipant": "Waiting for participant...", - "decline": "Decline", - "startCall": "Start call", - "selectCamera": "Select camera", - "selectMicrophone": "Select microphone", - "selectSpeaker": "Select speaker", - "toggleMicrophone": "Toggle microphone", - "toggleCamera": "Toggle camera", - "startScreensharing": "Start screensharing", - "stopScreensharing": "Stop screensharing", - "raiseHand": "Raise hand", - "stopRaiseHand": "Stop raise hand", - "preferSpeaker": "Prefer speaker", - "unexpectedErrorOccurded": "Unfortunately, an unexpected error has occurred: {msg}", - "@unexpectedErrorOccurded": { - "placeholders": { - "msg": {"type": "String"} - } - }, - "incomingCallFrom": "Incoming call from {user}", - "@incomingCallFrom": { - "placeholders": { - "user": {"type": "String"} - } - }, - "serverRespondedWithError": "The server has replied with an error message: {error}", - "@serverRespondedWithError": { - "placeholders": { - "error": {"type": "String"} - } - }, - "channels": "Channels", - "@channels": { - "type": "String", - "placeholders": {} - }, - "spaces": "Spaces", - "@spaces": { - "type": "String", - "placeholders": {} - }, - "murals": "Murals", - "@murals": { - "type": "String", - "placeholders": {} - }, - "muralsComingSoon": "Murals coming soon", - "@muralsComingSoon": { - "type": "String", - "placeholders": {} - }, - "noChannelsFound": "No channels here", - "@noChannelsFound": { - "type": "String", - "placeholders": {} - }, - "noSpacesFound": "No spaces here", - "@noSpacesFound": { - "type": "String", - "placeholders": {} - }, - "noMuralsFound": "No murals here", - "@noMuralsFound": { - "type": "String", - "placeholders": {} - }, - "selectASpace": "Select a space", - "@selectASpace": { - "type": "String", - "placeholders": {} - }, - "newPost": "New post", - "@newPost": { - "type": "String", - "placeholders": {} - }, - "postPhoto": "Post photo", - "@postPhoto": { - "type": "String", - "placeholders": {} - }, - "postVideo": "Post video", - "@postVideo": { - "type": "String", - "placeholders": {} - }, - "noPostsYet": "No posts yet. Share the first photo or video!", - "@noPostsYet": { - "type": "String", - "placeholders": {} - }, - "noCommentsYet": "No comments yet. Be the first to comment!", - "@noCommentsYet": { - "type": "String", - "placeholders": {} - }, - "like": "Like", - "@like": { - "type": "String", - "placeholders": {} - }, - "unlike": "Unlike", - "@unlike": { - "type": "String", - "placeholders": {} - }, - "editCaption": "Edit caption", - "@editCaption": { - "type": "String", - "placeholders": {} - }, - "captionHint": "Caption", - "@captionHint": { - "type": "String", - "placeholders": {} + } } -} \ No newline at end of file + }, + "accept": "Accept", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} accepted the invitation", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Account", + "@account": { + "type": "String", + "placeholders": {} + }, + "accountsAndSettings": "Accounts and settings", + "@accountsAndSettings": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} activated end to end encryption", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "Add email", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "confirmMatrixId": "Please confirm your Matrix ID in order to delete your account.", + "supposedMxid": "This should be {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "addToSpace": "Add to space", + "admin": "Admin", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "alias", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "All", + "@all": { + "type": "String", + "placeholders": {} + }, + "commandHint_roomupgrade": "Upgrade this room to the given room version", + "commandHint_googly": "Send some googly eyes", + "commandHint_cuddle": "Send a cuddle", + "commandHint_hug": "Send a hug", + "googlyEyesContent": "{senderName} sends you googly eyes", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "cuddleContent": "{senderName} cuddles you", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "hugContent": "{senderName} hugs you", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "answeredTheCall": "{senderName} answered the call", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Anyone can join", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "App lock", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "appLockDescription": "Lock the app when not using with a pin code", + "archive": "Archive", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Are guest users allowed to join?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Are you sure?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "discardEdits": "You have unsaved changes. Discard your edits?", + "@discardEdits": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Are you sure you want to log out?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "To be able to sign the other person, please enter your secure store passphrase or recovery key.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Accept this verification request from {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "autoplayImages": "Automatically play animated stickers and emotes", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "badServerLoginTypesException": "The homeserver supports the login types:\n{serverVersions}\nBut this app supports only:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "sendTypingNotifications": "Send typing notifications", + "swipeRightToLeftToReply": "Swipe right to left to reply", + "sendOnEnter": "Send on enter", + "noMoreChatsFound": "No more chats found...", + "noChatsFoundHere": "No chats found here yet. Start a new chat with someone by using the button below. ⤵️", + "unread": "Unread", + "space": "Space", + "banFromChat": "Ban from chat", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Banned", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} banned {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Block Device", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "Blocked", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "Cancel", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "Can't open the URI {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changeDeviceName": "Change device name", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} changed the chat avatar", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatDescription": "{username} changed the chat description", + "changedTheChatName": "{username} changed the chat name", + "changedTheChatPermissions": "{username} changed the chat permissions", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} changed their displayname to: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} changed the guest access rules", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} changed the guest access rules to: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} changed the history visibility", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} changed the history visibility to: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} changed the join rules", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} changed the join rules to: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} changed their avatar", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} changed the room aliases", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} changed the invitation link", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Change password", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Change the homeserver", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Change your style", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Change the name of the group", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Change your avatar", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "The encryption has been corrupted", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Chat", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Chat backup", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Chat details", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Chats", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Choose a strong password", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Clear archive", + "close": "Close", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_markasdm": "Mark as direct message room for the giving Matrix ID", + "commandHint_markasgroup": "Mark as group", + "commandHint_ban": "Ban the given user from this room", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_clearcache": "Clear cache", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_create": "Create an empty group chat\nUse --no-encryption to disable encryption", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_discardsession": "Discard session", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_dm": "Start a direct chat\nUse --no-encryption to disable encryption", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_html": "Send HTML-formatted text", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Invite the given user to this room", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "Join the given room", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "Remove the given user from this room", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "Leave this room", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "Describe yourself", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_myroomavatar": "Set your picture for this room (by mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "Set your display name for this room", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "Set the given user's power level (default: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "Send unformatted text", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "Send reply as a reaction", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_send": "Send text", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_unban": "Unban the given user from this room", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandInvalid": "Command invalid", + "@commandInvalid": { + "type": "String" + }, + "commandMissing": "{command} is not a command.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "compareEmojiMatch": "Please compare the emojis", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Please compare the numbers", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Configure chat", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Contact has been invited to the group", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "The content has been reported to the server admins", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Copied to clipboard", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Copy", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Copy to clipboard", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Could not decrypt message: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "checkList": "Check list", + "countParticipants": "{count, plural, =1{1 participant} other{{count} participants}}", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "countInvited": "{count} invited", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Create", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} created the chat", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "createGroup": "Create group", + "createNewSpace": "New space", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "canal": "Canal", + "canalIsPublic": "Canal is public", + "canalName": "Canal name", + "canalOnlyAdminCanPost": "Only canal admins are allowed to post in this room", + "createCanalAndInviteUsers": "Create a canal and invite users", + "createMuralAndInviteUsers": "Create a mural and invite users", + "mural": "Mural", + "muralIsPublic": "Mural is public", + "muralName": "Mural name", + "currentlyActive": "Currently active", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Dark", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "This will deactivate your user account. This can not be undone! Are you sure?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Default permission level for new users", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "Delete", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Delete account", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Delete message", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Devices", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Direct Chats", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Displayname has been changed", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Download file", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "Edit", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Edit blocked servers", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "chatPermissions": "Chat permissions", + "editDisplayname": "Edit displayname", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Edit room aliases", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Edit room avatar", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Emote already exists!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Invalid emote shortcode!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteKeyboardNoRecents": "Recently-used emotes will appear here...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "globalChatId": "Global chat ID", + "accessAndVisibility": "Access and visibility", + "accessAndVisibilityDescription": "Who is allowed to join this chat and how the chat can be discovered.", + "calls": "Calls", + "customEmojisAndStickers": "Custom emojis and stickers", + "customEmojisAndStickersBody": "Add or share custom emojis or stickers which can be used in any chat.", + "emoteShortcode": "Emote shortcode", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Empty chat", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Enable emote pack globally", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Enable encryption", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "You won't be able to disable the encryption anymore. Are you sure?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Encrypted", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Encryption", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Encryption is not enabled", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} ended the call", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Enter an email address", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Error obtaining location: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "fontSize": "Font size", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "Forward", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "From joining", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "From the invitation", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Group", + "@group": { + "type": "String", + "placeholders": {} + }, + "chatDescription": "Chat description", + "chatDescriptionHasBeenChanged": "Chat description changed", + "groupIsPublic": "Group is public", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "Groups", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Group with {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Guests are forbidden", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Guests can join", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} has withdrawn the invitation for {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Help", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideRedactedMessages": "Hide redacted messages", + "hideRedactedMessagesBody": "If someone redacts a message, this message won't be visible in the chat anymore.", + "hideInvalidOrUnknownMessageFormats": "Hide invalid or unknown message formats", + "block": "Block", + "blockedUsers": "Blocked users", + "blockListDescription": "You can block users who are disturbing you. You won't be able to receive any messages or room invites from the users on your personal block list.", + "blockUsername": "Ignore username", + "iHaveClickedOnLink": "I have clicked on the link", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Incorrect passphrase or recovery key", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Invite contact", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Invite contact to {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "noChatDescriptionYet": "No chat description created yet.", + "tryAgain": "Try again", + "invalidServerName": "Invalid server name", + "invited": "Invited", + "@invited": { + "type": "String", + "placeholders": {} + }, + "redactMessageDescription": "The message will be redacted for all participants in this conversation. This cannot be undone.", + "optionalRedactReason": "(Optional) Reason for redacting this message...", + "invitedUser": "📩 {username} invited {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Invited users only", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} invited you to FluffyChat.\n1. Visit fluffychat.im and install the app \n2. Sign up or sign in \n3. Open the invite link: \n {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "is typing", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} joined the chat", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Join room", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username} kicked {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} kicked and banned {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Kick from chat", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Last active: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Leave", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Left the chat", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Light", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Load {count} more participants", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dehydrate": "Export session and wipe device", + "dehydrateWarning": "This action cannot be undone. Ensure you safely store the backup file.", + "hydrate": "Restore from backup file", + "loadingPleaseWait": "Loading… Please wait.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Load more…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "Location services are disabled. Please enable them to be able to share your location.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "Location permission denied. Please grant them to be able to share your location.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "login": "Login", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Log in to {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Logout", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Mention", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "Messages", + "@messages": { + "type": "String", + "placeholders": {} + }, + "messagesStyle": "Messages:", + "moderator": "Moderator", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Mute chat", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "New chat", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 New message in FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "New verification request!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "Next", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "No", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "No connection to the server", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "No emotes found. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "You can only activate encryption as soon as the room is no longer publicly accessible.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Firebase Cloud Messaging doesn't appear to be available on your device. To still receive push notifications, we recommend installing ntfy. With ntfy or another Unified Push provider you can receive push notifications in a data secure way. You can download ntfy from the PlayStore or from F-Droid.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} is no matrix server, use {server2} instead?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "shareInviteLink": "Share invite link", + "scanQrCode": "Scan QR code", + "noPasswordRecoveryDescription": "You have not added a way to recover your password yet.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "No permission", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "No rooms found…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Notifications", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} users are typing…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "obtainingLocation": "Obtaining location…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "ok": "Ok", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Online Key Backup is enabled", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Oops! Unfortunately, an error occurred when setting up the push notifications.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Oops, something went wrong…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Open app to read messages", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Open camera", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "oneClientLoggedOut": "One of your clients has been logged out", + "addAccount": "Add account", + "editBundlesForAccount": "Edit bundles for this account", + "addToBundle": "Add to bundle", + "removeFromBundle": "Remove from this bundle", + "bundleName": "Bundle name", + "openInMaps": "Open in maps", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "link": "Link", + "or": "Or", + "@or": { + "type": "String", + "placeholders": {} + }, + "participant": "Participant", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "passphrase or recovery key", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Password", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Password forgotten", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Password has been changed", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecoverySettings": "Password recovery settings", + "passwordRecovery": "Password recovery", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Pin", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Please choose a pass code", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Please click on the link in the email and then proceed.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Please enter your password", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Please enter your pin", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Please enter your username", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Please follow the instructions on the website and tap on next.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "Privacy", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Public Rooms", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "Reason", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactedBy": "Redacted by {username}", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactedByBecause": "Redacted by {username} because: \"{reason}\"", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "redactedAnEvent": "{username} redacted an event", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactMessage": "Redact message", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reject": "Reject", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} rejected the invitation", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "removeAllOtherDevices": "Remove all other devices", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Unban from chat", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Remove your avatar", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Replace room with newer version", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "Reply", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Report message", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Room has been upgraded", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "sendingFilesDoNotExit": "Sending {count} files... Please do not exit!", + "@sendingFilesDoNotExit": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "roomVersion": "Room version", + "compressingVideo": "Compressing video...", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Save file", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "search": "Search", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "Security", + "@security": { + "type": "String", + "placeholders": {} + }, + "send": "Send", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Send a message", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Send as text", + "@sendAsText": { + "type": "String" + }, + "sendAudio": "Send audio", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Send file", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Send image", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendImages": "Send {count} image", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "sendMessages": "Send messages", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Send video", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username} sent a file", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username} sent an audio", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username} sent a picture", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} sent a sticker", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} sent a video", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} sent call information", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setAsCanonicalAlias": "Set as main alias", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "setChatDescription": "Set chat description", + "setStatus": "Set status", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Settings", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Share", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} shared their location", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "shareLocation": "Share location", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "skip": "Skip", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Source code", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "Space is public", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Space name", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} started a call", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "status": "Status", + "@status": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "How are you today?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Submit", + "@submit": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Synchronizing… Please wait.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWaitCounter": " Synchronizing… ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "systemTheme": "System", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "They Don't Match", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "They Match", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Too many requests. Please try again later!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Try to send again", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} unbanned {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Unblock Device", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Unknown device", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Unknown encryption algorithm", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Unknown event '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Unmute chat", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Unpin", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} and {count} others are typing…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} and {username2} are typing…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} is typing…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪 {username} left the chat", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} sent a {type} event", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "unverified": "Unverified", + "verified": "Verified", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Start Verification", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "You successfully verified!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Verifying other account", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Visibility of the chat history", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Visible for all participants", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Visible for everyone", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Voice message", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Waiting for partner to accept the request…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Waiting for partner to accept the emoji…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Waiting for partner to accept the numbers…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Warning!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "We sent you an email", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Who can perform which action", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Who is allowed to join this group", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Why do you want to report this?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "With these addresses you can recover your password.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Write a message…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Yes", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "You", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "You are no longer participating in this chat", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "You have been banned from this chat", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Your public key", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "messageInfo": "Message info", + "time": "Time", + "sender": "Sender", + "openGallery": "Open gallery", + "removeFromSpace": "Remove from space", + "markAsRead": "Mark as read", + "reportUser": "Report user", + "reactedWith": "{sender} reacted with {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "pinMessage": "Pin to room", + "confirmEventUnpin": "Are you sure to permanently unpin the event?", + "emojis": "Emojis", + "unsupportedAndroidVersion": "Unsupported Android version", + "unsupportedAndroidVersionLong": "This feature requires a newer Android version. Please check for updates or Lineage OS support.", + "youRejectedTheInvitation": "You rejected the invitation", + "youJoinedTheChat": "You joined the chat", + "youAcceptedTheInvitation": "👍 You accepted the invitation", + "youBannedUser": "You banned {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youHaveWithdrawnTheInvitationFor": "You have withdrawn the invitation for {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 You have been invited by {user}", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 You invited {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKicked": "👞 You kicked {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKickedAndBanned": "🙅 You kicked and banned {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "You unbanned {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "hasKnocked": "🚪 {user} has knocked", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "usersMustKnock": "Users must knock", + "noOneCanJoin": "No one can join", + "knock": "Knock", + "users": "Users", + "storeInAndroidKeystore": "Store in Android KeyStore", + "storeInAppleKeyChain": "Store in Apple KeyChain", + "storeSecurlyOnThisDevice": "Store securely on this device", + "countFiles": "{count} files", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "user": "User", + "custom": "Custom", + "whyIsThisMessageEncrypted": "Why is this message unreadable?", + "noKeyForThisMessage": "This can happen if the message was sent before you have signed in to your account at this device.\n\nIt is also possible that the sender has blocked your device or something went wrong with the internet connection.\n\nAre you able to read the message on another session? Then you can transfer the message from it! Go to Settings > Devices and make sure that your devices have verified each other. When you open the room the next time and both sessions are in the foreground, the keys will be transmitted automatically.\n\nDo you not want to lose the keys when logging out or switching devices? Make sure that you have enabled the chat backup in the settings.", + "newSpace": "New space", + "newCanal": "New canal", + "newMural": "New mural", + "doNotShowAgain": "Do not show again", + "wasDirectChatDisplayName": "Empty chat (was {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "newSpaceDescription": "Spaces allows you to consolidate your chats and build private or public communities.", + "newCanalDescription": "A canal is a room where only admins can publish. Use it to broadcast official announcements.", + "newMuralDescription": "A mural is a shared bulletin board where everyone can post. Use it to leave notes for your community.", + "encryptThisChat": "Encrypt this chat", + "disableEncryptionWarning": "For security reasons you can not disable encryption in a chat, where it has been enabled before.", + "sorryThatsNotPossible": "Sorry... that is not possible", + "reopenChat": "Reopen chat", + "noBackupWarning": "Warning! Without enabling chat backup, you will lose access to your encrypted messages. It is highly recommended to enable the chat backup first before logging out.", + "noOtherDevicesFound": "No other devices found", + "fileIsTooBigForServer": "Unable to send! The server only supports attachments up to {max}.", + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "fileHasBeenSavedAt": "File has been saved at {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "jumpToLastReadMessage": "Jump to last read message", + "readUpToHere": "Read up to here", + "jump": "Jump", + "openLinkInBrowser": "Open link in browser", + "reportErrorDescription": "😭 Oh no. Something went wrong. If you want, you can report this bug to the developers.", + "report": "report", + "setColorTheme": "Set color theme:", + "invite": "Invite", + "inviteGroupChat": "📨 Group chat invite", + "invalidInput": "Invalid input!", + "wrongPinEntered": "Wrong pin entered! Try again in {seconds} seconds...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "pleaseEnterANumber": "Please enter a number greater than 0", + "archiveRoomDescription": "The chat will be moved to the archive. Other users will be able to see that you have left the chat.", + "roomUpgradeDescription": "The chat will then be recreated with the new room version. All participants will be notified that they need to switch to the new chat. You can find out more about room versions at https://spec.matrix.org/latest/rooms/", + "removeDevicesDescription": "You will be logged out of this device and will no longer be able to receive messages.", + "banUserDescription": "The user will be banned from the chat and will not be able to enter the chat again until they are unbanned.", + "unbanUserDescription": "The user will be able to enter the chat again if they try.", + "kickUserDescription": "The user is kicked out of the chat but not banned. In public chats, the user can rejoin at any time.", + "makeAdminDescription": "Once you make this user admin, you may not be able to undo this as they will then have the same permissions as you.", + "pushNotificationsNotAvailable": "Push notifications not available", + "learnMore": "Learn more", + "yourGlobalUserIdIs": "Your global user-ID is: ", + "noUsersFoundWithQuery": "Unfortunately no user could be found with \"{query}\". Please check whether you made a typo.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "knocking": "Knocking", + "chatCanBeDiscoveredViaSearchOnServer": "Chat can be discovered via the search on {server}", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "searchChatsRooms": "Search for #chats, @users...", + "nothingFound": "Nothing found...", + "groupName": "Group name", + "createGroupAndInviteUsers": "Create a group and invite users", + "groupCanBeFoundViaSearch": "Group can be found via search", + "wrongRecoveryKey": "Sorry... this does not seem to be the correct recovery key.", + "commandHint_sendraw": "Send raw json", + "databaseMigrationTitle": "Database is optimized", + "databaseMigrationBody": "Please wait. This may take a moment.", + "leaveEmptyToClearStatus": "Leave empty to clear your status.", + "select": "Select", + "searchForUsers": "Search for @users...", + "pleaseEnterYourCurrentPassword": "Please enter your current password", + "newPassword": "New password", + "pleaseChooseAStrongPassword": "Please choose a strong password", + "passwordsDoNotMatch": "Passwords do not match", + "passwordIsWrong": "Your entered password is wrong", + "publicChatAddresses": "Public chat addresses", + "createNewAddress": "Create new address", + "joinSpace": "Join space", + "publicSpaces": "Public spaces", + "addChatOrSubSpace": "Add chat or sub space", + "thisDevice": "This device:", + "initAppError": "An error occured while init the app", + "searchIn": "Search in chat \"{chat}\"...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "searchMore": "Search more...", + "gallery": "Gallery", + "files": "Files", + "sessionLostBody": "Your session is lost. Please report this error to the developers at {url}. The error message is: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "restoreSessionBody": "The app now tries to restore your session from the backup. Please report this error to the developers at {url}. The error message is: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "sendReadReceipts": "Send read receipts", + "sendTypingNotificationsDescription": "Other participants in a chat can see when you are typing a new message.", + "sendReadReceiptsDescription": "Other participants in a chat can see when you have read a message.", + "formattedMessages": "Formatted messages", + "formattedMessagesDescription": "Display rich message content like bold text using markdown.", + "verifyOtherUser": "🔐 Verify other user", + "verifyOtherUserDescription": "If you verify another user, you can be sure that you know who you are really writing to. 💪\n\nWhen you start a verification, you and the other user will see a popup in the app. There you will then see a series of emojis or numbers that you have to compare with each other.\n\nThe best way to do this is to meet up or start a video call. 👭", + "verifyOtherDevice": "🔐 Verify other device", + "verifyOtherDeviceDescription": "When you verify another device, those devices can exchange keys, increasing your overall security. 💪 When you start a verification, a popup will appear in the app on both devices. There you will then see a series of emojis or numbers that you have to compare with each other. It's best to have both devices handy before you start the verification. 🤳", + "acceptedKeyVerification": "{sender} accepted key verification", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "canceledKeyVerification": "{sender} canceled key verification", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "completedKeyVerification": "{sender} completed key verification", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "{sender} is ready for key verification", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "requestedKeyVerification": "{sender} requested key verification", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "{sender} started key verification", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "incomingMessages": "Incoming messages", + "stickers": "Stickers", + "discover": "Discover", + "commandHint_ignore": "Ignore the given matrix ID", + "commandHint_unignore": "Unignore the given matrix ID", + "unreadChatsInApp": "{appname}: {unread} unread chats", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "noDatabaseEncryption": "Database encryption is not supported on this platform", + "thereAreCountUsersBlocked": "Right now there are {count} users blocked.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "goToSpace": "Go to space: {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "markAsUnread": "Mark as unread", + "userLevel": "{level} - User", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "moderatorLevel": "{level} - Moderator", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "adminLevel": "{level} - Admin", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeGeneralChatSettings": "Change general chat settings", + "inviteOtherUsers": "Invite other users to this chat", + "changeTheChatPermissions": "Change the chat permissions", + "changeTheVisibilityOfChatHistory": "Change the visibility of the chat history", + "changeTheCanonicalRoomAlias": "Change the main public chat address", + "sendRoomNotifications": "Send a @room notifications", + "changeTheDescriptionOfTheGroup": "Change the description of the chat", + "chatPermissionsDescription": "Define which power level is necessary for certain actions in this chat. The power levels 0, 50 and 100 are usually representing users, moderators and admins, but any gradation is possible.", + "updateInstalled": "🎉 Update {version} installed!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "changelog": "Changelog", + "sendCanceled": "Sending canceled", + "loginWithMatrixId": "Login with Matrix-ID", + "doesNotSeemToBeAValidHomeserver": "Doesn't seem to be a compatible homeserver. Wrong URL?", + "calculatingFileSize": "Calculating file size...", + "oneOfYourDevicesIsNotVerified": "One of your devices is not verified", + "noticeChatBackupDeviceVerification": "Note: When you connect all your devices to the chat backup, they are automatically verified.", + "continueText": "Continue", + "blur": "Blur:", + "opacity": "Opacity:", + "setWallpaper": "Set wallpaper", + "manageAccount": "Manage account", + "noContactInformationProvided": "Server does not provide any valid contact information", + "contactServerAdmin": "Contact server admin", + "contactServerSecurity": "Contact server security", + "supportPage": "Support page", + "serverInformation": "Server information:", + "name": "Name", + "version": "Version", + "website": "Website", + "compress": "Compress", + "boldText": "Bold text", + "italicText": "Italic text", + "strikeThrough": "Strikethrough", + "pleaseFillOut": "Please fill out", + "invalidUrl": "Invalid url", + "addLink": "Add link", + "unableToJoinChat": "Unable to join chat. Maybe the other party has already closed the conversation.", + "previous": "Previous", + "otherPartyNotLoggedIn": "The other party is currently not logged in and therefore cannot receive messages!", + "appWantsToUseForLogin": "Use '{server}' to log in", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "appWantsToUseForLoginDescription": "You hereby allow the app and website to share information about you.", + "open": "Open", + "waitingForServer": "Waiting for server...", + "newChatRequest": "📩 New chat request", + "contentNotificationSettings": "Content notification settings", + "generalNotificationSettings": "General notification settings", + "roomNotificationSettings": "Room notification settings", + "userSpecificNotificationSettings": "User specific notification settings", + "otherNotificationSettings": "Other notification settings", + "notificationRuleContainsUserName": "Contains User Name", + "notificationRuleContainsUserNameDescription": "Notifies the user when a message contains their username.", + "notificationRuleMaster": "Mute all notifications", + "notificationRuleMasterDescription": "Overrides all other rules and disables all notifications.", + "notificationRuleSuppressNotices": "Suppress Automated Messages", + "notificationRuleSuppressNoticesDescription": "Suppresses notifications from automated clients like bots.", + "notificationRuleInviteForMe": "Invite for Me", + "notificationRuleInviteForMeDescription": "Notifies the user when they are invited to a room.", + "notificationRuleMemberEvent": "Member Event", + "notificationRuleMemberEventDescription": "Suppresses notifications for membership events.", + "notificationRuleIsUserMention": "User Mention", + "notificationRuleIsUserMentionDescription": "Notifies the user when they are directly mentioned in a message.", + "notificationRuleContainsDisplayName": "Contains Display Name", + "notificationRuleContainsDisplayNameDescription": "Notifies the user when a message contains their display name.", + "notificationRuleIsRoomMention": "Room Mention", + "notificationRuleIsRoomMentionDescription": "Notifies the user when there is a room mention.", + "notificationRuleRoomnotif": "Room Notification", + "notificationRuleRoomnotifDescription": "Notifies the user when a message contains '@room'.", + "notificationRuleTombstone": "Tombstone", + "notificationRuleTombstoneDescription": "Notifies the user about room deactivation messages.", + "notificationRuleReaction": "Reaction", + "notificationRuleReactionDescription": "Suppresses notifications for reactions.", + "notificationRuleRoomServerAcl": "Room Server ACL", + "notificationRuleRoomServerAclDescription": "Suppresses notifications for room server access control lists (ACL).", + "notificationRuleSuppressEdits": "Suppress Edits", + "notificationRuleSuppressEditsDescription": "Suppresses notifications for edited messages.", + "notificationRuleCall": "Call", + "notificationRuleCallDescription": "Notifies the user about calls.", + "notificationRuleEncryptedRoomOneToOne": "Encrypted Room One-to-One", + "notificationRuleEncryptedRoomOneToOneDescription": "Notifies the user about messages in encrypted one-to-one rooms.", + "notificationRuleRoomOneToOne": "Room One-to-One", + "notificationRuleRoomOneToOneDescription": "Notifies the user about messages in one-to-one rooms.", + "notificationRuleMessage": "Message", + "notificationRuleMessageDescription": "Notifies the user about general messages.", + "notificationRuleEncrypted": "Encrypted", + "notificationRuleEncryptedDescription": "Notifies the user about messages in encrypted rooms.", + "notificationRuleJitsi": "Jitsi", + "notificationRuleJitsiDescription": "Notifies the user about Jitsi widget events.", + "notificationRuleServerAcl": "Suppress Server ACL Events", + "notificationRuleServerAclDescription": "Suppresses notifications for Server ACL events.", + "unknownPushRule": "Unknown push rule '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "sentVoiceMessage": "🎙️ {duration} - Voice message from {sender}", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "deletePushRuleCanNotBeUndone": "If you delete this notification setting, this can not be undone.", + "more": "More", + "shareKeysWith": "Share keys with...", + "shareKeysWithDescription": "Which devices should be trusted so that they can read along your messages in encrypted chats?", + "allDevices": "All devices", + "crossVerifiedDevicesIfEnabled": "Cross verified devices if enabled", + "crossVerifiedDevices": "Cross verified devices", + "verifiedDevicesOnly": "Verified devices only", + "takeAPhoto": "Take a photo", + "recordAVideo": "Record a video", + "optionalMessage": "(Optional) message...", + "notSupportedOnThisDevice": "Not supported on this device", + "enterNewChat": "Enter new chat", + "approve": "Approve", + "youHaveKnocked": "You have knocked", + "pleaseWaitUntilInvited": "Please wait now, until someone from the room invites you.", + "commandHint_logout": "Logout your current device", + "commandHint_logoutall": "Logout all active devices", + "displayNavigationRail": "Show navigation rail on mobile", + "customReaction": "Custom reaction", + "moreEvents": "More events", + "showMore": "Show more", + "showLess": "Show less", + "declineInvitation": "Decline invitation", + "noMessagesYet": "No messages yet", + "longPressToRecordVoiceMessage": "Long press to record voice message.", + "pause": "Pause", + "resume": "Resume", + "removeFromSpaceDescription": "The chat will be removed from the space but still appear in your chat list.", + "countChats": "{chats} chats", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "spaceMemberOf": "Space member of {spaces}", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "Space member of {spaces} can knock", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "startPoll": "Start poll", + "endPoll": "End poll", + "answersVisible": "Answers visible", + "pollQuestion": "Poll question", + "answerOption": "Answer option", + "addAnswerOption": "Add answer option", + "allowMultipleAnswers": "Allow multiple answers", + "pollHasBeenEnded": "Poll has been ended", + "countVotes": "{count, plural, =1{One vote} other{{count} votes}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "answersWillBeVisibleWhenPollHasEnded": "Answers will be visible when poll has ended", + "replyInThread": "Reply in thread", + "countReplies": "{count, plural, =1{One reply} other{{count} replies}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "thread": "Thread", + "backToMainChat": "Back to main chat", + "saveChanges": "Save changes", + "createSticker": "Create sticker or emoji", + "useAsSticker": "Use as sticker", + "useAsEmoji": "Use as emoji", + "stickerPackNameAlreadyExists": "Sticker pack name already exists", + "newStickerPack": "New sticker pack", + "stickerPackName": "Sticker pack name", + "attribution": "Attribution", + "skipChatBackup": "Skip chat backup", + "skipChatBackupWarning": "Are you sure? Without enabling the chat backup you may lose access to your messages if you switch your device.", + "noMoreResultsFound": "No more results found", + "chatSearchedUntil": "Chat searched until {time}", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "federationBaseUrl": "Federation Base URL", + "clientWellKnownInformation": "Client-Well-Known Information:", + "baseUrl": "Base URL", + "identityServer": "Identity Server:", + "versionWithNumber": "Version: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "Logs", + "advancedConfigs": "Advanced Configs", + "advancedConfigurations": "Advanced configurations", + "signIn": "Sign in", + "createNewAccount": "Create new account", + "signUpGreeting": "FluffyChat is decentralized! Select a server where you want to create your account and let's go!", + "signInGreeting": "You already have an account in Matrix? Welcome back! Select your homeserver and sign in.", + "theProcessWasCanceled": "The process was canceled.", + "join": "Join", + "searchOrEnterHomeserverAddress": "Search or enter homeserver address", + "matrixId": "Matrix ID", + "setPowerLevel": "Set power level", + "makeModerator": "Make moderator", + "makeAdmin": "Make admin", + "removeModeratorRights": "Remove moderator rights", + "removeAdminRights": "Remove admin rights", + "powerLevel": "Power level", + "setPowerLevelDescription": "Power levels define what a member is allowed to do in this room and usually range between 0 and 100.", + "owner": "Owner", + "mute": "Mute", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "createNewChat": "Create new chat", + "reset": "Reset", + "supportFluffyChat": "Support FluffyChat", + "support": "Support", + "setLowPriority": "Set low priority", + "unsetLowPriority": "Unset low priority", + "playSoundOnNotification": "Play sound on notification", + "addTag": "Add tag", + "removeTag": "Remove tag", + "tagName": "Tag name", + "createNewTag": "Create new tag", + "hideRoomsInSpaces": "Hide rooms that are in a space", + "possibleByYou": "This release was only possible thanks to your support. FluffyChat remains free, open-source, and entirely community-driven.", + "showThumbnailsInTimeline": "Show thumbnails of images and videos", + "appSubtitle": "Um App de comunicação segura", + "appDescription": "Communicate encrypted over the decentralized [matrix] network in an easy and accessible way for everyone.", + "interactiveVerification": "Interactive verification", + "interactiveVerificationDescription": "If you are next to each other or communicate via a secure channel then you can verify all devices at once by comparing a security number or emojis.", + "countUnverifiedDevices": "{count} unverified devices in the chat.", + "@countUnverifiedDevices": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "encryptedMessage": "Encrypted message", + "unencryptedMessage": "Unencrypted message", + "messageCanOnlyBeReadByUser": "Your message is end to end encrypted and can only be read by this user:", + "messageCanOnlyBeReadByUsers": "Your message is end to end encrypted and can only be read by these users:", + "publicKey": "Public key: {key}", + "@publicKey": { + "type": "String", + "placeholders": { + "key": { + "type": "String" + } + } + }, + "deviceIdentityKey": "Device identity key", + "restoreBootstrapEmptyDevicesDescription": "Please enter your passphrase or recovery key to verify this device and get access to your encrypted message backup.", + "@restoreBootstrapEmptyDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "restoreBootstrapDevicesDescription": "Please pick one of your other devices, to verify this session:", + "@restoreBootstrapDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "resetAccount": "Reset account", + "@resetAccount": { + "type": "String", + "placeholders": {} + }, + "restoreCryptoIdentity": "Restore Crypto Identity", + "@restoreCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "resetCryptoIdentity": "Reset Crypto Identity", + "@resetCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "setUpCryptoIdentity": "Set Up Crypto Identity", + "@setUpCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "waitingForKeys": "Waiting for keys... Please keep the other device active.", + "@waitingForKeys": { + "type": "String", + "placeholders": {} + }, + "noKeysTransmitted": "No keys transmitted. Please try again.", + "@noKeysTransmitted": { + "type": "String", + "placeholders": {} + }, + "unlock": "Unlock", + "@unlock": { + "type": "String", + "placeholders": {} + }, + "openFile": "Open file", + "@openFile": { + "type": "String", + "placeholders": {} + }, + "resetAccountWarning": "When you reset your account you will lose the access to your old messages forever. All your current devices need to be verified again. Please only perform this action when you have no other devices left to verify your session and you have lost your recovery key and passphrase!", + "@resetAccountWarning": { + "type": "String", + "placeholders": {} + }, + "newPassphraseDescription": "FluffyChat uses end to end encryption. To not lose your messages, please choose a strong passphrase to secure your crypto identity and your encrypted message backup.", + "@newPassphraseDescription": { + "type": "String", + "placeholders": {} + }, + "newPassphrase": "New passphrase", + "@newPassphrase": { + "type": "String", + "placeholders": {} + }, + "repeatPassphrase": "Repeat passphrase", + "@repeatPassphrase": { + "type": "String", + "placeholders": {} + }, + "passphrasesMatch": "Passphrases match", + "@passphrasesMatch": { + "type": "String", + "placeholders": {} + }, + "passphraseLengthRequirement": "At least 12 characters long.", + "@passphraseLengthRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseUpperAndLowerCaseRequirement": "Contains uppercase and lowercase characters.", + "@passphraseUpperAndLowerCaseRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseSpecialCharactersRequirement": "Contains special characters.", + "@passphraseSpecialCharactersRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseNumberRequirement": "Contains one numbers.", + "@passphraseNumberRequirement": { + "type": "String", + "placeholders": {} + }, + "storeRecoveryKeyDescription": "Please note down your recovery key to be able to restore your encrypted messages and your crypto identity on.", + "@storeRecoveryKeyDescription": { + "type": "String", + "placeholders": {} + }, + "saveAsFile": "Save as file", + "@saveAsFile": { + "type": "String", + "placeholders": {} + }, + "youAreReadyToStart": "You are ready to start!", + "noUserKeyFound": "No user key found", + "@noUserKeyFound": { + "type": "String", + "placeholders": {} + }, + "knownSince": "Known since: {date}", + "@knownSince": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + } + } + }, + "unsignedDevice": "Unsigned device", + "@unsignedDevice": { + "type": "String", + "placeholders": {} + }, + "signedDevice": "Signed device", + "@signedDevice": { + "type": "String", + "placeholders": {} + }, + "noCurve25519KeyFound": "No curve25519 key found", + "@noCurve25519KeyFound": { + "type": "String", + "placeholders": {} + }, + "messageNotDecryptable": "Message not decryptable", + "today": "Today", + "sending": "Sending", + "generatingThumbnail": "Generating thumbnail", + "encrypting": "Encrypting", + "uploading": "Uploading", + "edited": "(edited)", + "couldNotBeSent": "Could not be sent", + "yesterday": "Yesterday", + "resetRecoveryKey": "Reset recovery key", + "pleaseEnter6Digits": "Please enter 6 digits to enable the app lock.", + "disableAppLock": "Disable app lock", + "disableAppLockAreYouSure": "Are you sure you want to disable the app lock?", + "enableBiometrics": "Enable biometric authentication", + "disableBiometrics": "Disable biometric authentication", + "biometricsDescription": "With biometric authentication you can unlock the app with your face or your fingerprint. The capabilities depend on your device.", + "useAppLock": "Use app lock", + "unlockWithBiometrics": "Unlock with biometric authentication", + "resetPin": "Reset pin", + "forwardCountMessages": "Forward {count, plural, =1{one message} other{{count} messages}}?", + "@forwardCountMessages": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingMessages": "Loading messages...", + "buildDoesNotSupportFirebase": "This build does not support firebase cloud messaging.", + "unableToRegisterDeviceForFirebase": "Unable to register device for firebase cloud messaging.", + "unifiedPushDistributors": "Unified Push distributors:", + "doubleTapToReact": "Double-tap to react", + "doubleTapToReactDescription": "Double-tap a message to react instead of selecting text", + "doubleTapReaction": "Double-tap reaction", + "shareCrashReports": "Share crash reports", + "shareCrashReportsDescription": "Automatically share crash reports with the developers?", + "countActiveCallMembers": "{count} active call members", + "@countActiveCallMembers": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "enterCall": "Enter call", + "videoCallsBetaWarning": "Video calls are a beta feature. There might be bugs or unexpected behavior. We would be happy to hear about your feedback.", + "noDevicesFound": "No devices found", + "incomingCall": "Incoming call", + "videoCall": "Video call", + "voiceCall": "Voice call", + "missedCall": "Missed call", + "callBack": "Call back", + "hangUp": "Hang up", + "waitingForParticipant": "Waiting for participant...", + "decline": "Decline", + "startCall": "Start call", + "selectCamera": "Select camera", + "selectMicrophone": "Select microphone", + "selectSpeaker": "Select speaker", + "toggleMicrophone": "Toggle microphone", + "toggleCamera": "Toggle camera", + "startScreensharing": "Start screensharing", + "stopScreensharing": "Stop screensharing", + "raiseHand": "Raise hand", + "stopRaiseHand": "Stop raise hand", + "preferSpeaker": "Prefer speaker", + "unexpectedErrorOccurded": "Unfortunately, an unexpected error has occurred: {msg}", + "@unexpectedErrorOccurded": { + "placeholders": { + "msg": { + "type": "String" + } + } + }, + "incomingCallFrom": "Incoming call from {user}", + "@incomingCallFrom": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "serverRespondedWithError": "The server has replied with an error message: {error}", + "@serverRespondedWithError": { + "placeholders": { + "error": { + "type": "String" + } + } + }, + "channels": "Channels", + "@channels": { + "type": "String", + "placeholders": {} + }, + "spaces": "Spaces", + "@spaces": { + "type": "String", + "placeholders": {} + }, + "murals": "Murals", + "@murals": { + "type": "String", + "placeholders": {} + }, + "muralsComingSoon": "Murals coming soon", + "@muralsComingSoon": { + "type": "String", + "placeholders": {} + }, + "noChannelsFound": "No channels here", + "@noChannelsFound": { + "type": "String", + "placeholders": {} + }, + "noSpacesFound": "No spaces here", + "@noSpacesFound": { + "type": "String", + "placeholders": {} + }, + "noMuralsFound": "No murals here", + "@noMuralsFound": { + "type": "String", + "placeholders": {} + }, + "selectASpace": "Select a space", + "@selectASpace": { + "type": "String", + "placeholders": {} + }, + "newPost": "New post", + "@newPost": { + "type": "String", + "placeholders": {} + }, + "postPhoto": "Post photo", + "@postPhoto": { + "type": "String", + "placeholders": {} + }, + "postVideo": "Post video", + "@postVideo": { + "type": "String", + "placeholders": {} + }, + "noPostsYet": "No posts yet. Share the first photo or video!", + "@noPostsYet": { + "type": "String", + "placeholders": {} + }, + "noCommentsYet": "No comments yet. Be the first to comment!", + "@noCommentsYet": { + "type": "String", + "placeholders": {} + }, + "like": "Like", + "@like": { + "type": "String", + "placeholders": {} + }, + "unlike": "Unlike", + "@unlike": { + "type": "String", + "placeholders": {} + }, + "editCaption": "Edit caption", + "@editCaption": { + "type": "String", + "placeholders": {} + }, + "captionHint": "Caption", + "@captionHint": { + "type": "String", + "placeholders": {} + }, + "areYouSureDeletePost": "Delete", + "@areYouSureDeletePost": { + "description": "Delete this post from the mural" + } +} diff --git a/lib/l10n/intl_pt.arb b/lib/l10n/intl_pt.arb index 466cc05..994fcc5 100644 --- a/lib/l10n/intl_pt.arb +++ b/lib/l10n/intl_pt.arb @@ -1,2046 +1,2047 @@ { - "@@last_modified": "2021-08-14 12:41:09.940318", - "copiedToClipboard": "Copiada para a área de transferência", - "@copiedToClipboard": { - "type": "String", - "placeholders": {} - }, - "login": "Iniciar sessão", - "@login": { - "type": "String", - "placeholders": {} - }, - "about": "Sobre", - "@about": { - "type": "String", - "placeholders": {} - }, - "admin": "Admin", - "@admin": { - "type": "String", - "placeholders": {} - }, - "areYouSure": "Tens a certeza?", - "@areYouSure": { - "type": "String", - "placeholders": {} - }, - "notifications": "Notificações", - "@notifications": { - "type": "String", - "placeholders": {} - }, - "account": "Conta", - "@account": { - "type": "String", - "placeholders": {} - }, - "cancel": "Cancelar", - "@cancel": { - "type": "String", - "placeholders": {} - }, - "delete": "Eliminar", - "@delete": { - "type": "String", - "placeholders": {} - }, - "dateAndTimeOfDay": "{date}, {timeOfDay}", - "@dateAndTimeOfDay": { - "type": "String", - "placeholders": { - "date": { - "type": "String" - }, - "timeOfDay": { - "type": "String" - } - } - }, - "help": "Ajuda", - "@help": { - "type": "String", - "placeholders": {} - }, - "messages": "Mensagens", - "@messages": { - "type": "String", - "placeholders": {} - }, - "reason": "Razão", - "@reason": { - "type": "String", - "placeholders": {} - }, - "privacy": "Privacidade", - "@privacy": { - "type": "String", - "placeholders": {} - }, - "openCamera": "Abrir câmara", - "@openCamera": { - "type": "String", - "placeholders": {} - }, - "settings": "Configurações", - "@settings": { - "type": "String", - "placeholders": {} - }, - "logout": "Terminar sessão", - "@logout": { - "type": "String", - "placeholders": {} - }, - "search": "Pesquisar", - "@search": { - "type": "String", - "placeholders": {} - }, - "users": "Utilizadores", - "close": "Fechar", - "@close": { - "type": "String", - "placeholders": {} - }, - "repeatPassword": "Repita a senha", - "notAnImage": "Não é um arquivo de imagem.", - "@showPassword": { - "type": "String", - "placeholders": {} - }, - "@hugContent": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "@darkTheme": { - "type": "String", - "placeholders": {} - }, - "@passphraseOrKey": { - "type": "String", - "placeholders": {} - }, - "@pleaseEnterYourPassword": { - "type": "String", - "placeholders": {} - }, - "@theyMatch": { - "type": "String", - "placeholders": {} - }, - "@obtainingLocation": { - "type": "String", - "placeholders": {} - }, - "@chats": { - "type": "String", - "placeholders": {} - }, - "@unknownDevice": { - "type": "String", - "placeholders": {} - }, - "@emoteShortcode": { - "type": "String", - "placeholders": {} - }, - "@completedKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "@noEncryptionForPublicRooms": { - "type": "String", - "placeholders": {} - }, - "@directChats": { - "type": "String", - "placeholders": {} - }, - "@inviteContactToGroup": { - "type": "String", - "placeholders": { - "groupName": { - "type": "String" - } - } - }, - "@configureChat": { - "type": "String", - "placeholders": {} - }, - "@reply": { - "type": "String", - "placeholders": {} - }, - "@currentlyActive": { - "type": "String", - "placeholders": {} - }, - "@removeYourAvatar": { - "type": "String", - "placeholders": {} - }, - "@device": { - "type": "String", - "placeholders": {} - }, - "@blockDevice": { - "type": "String", - "placeholders": {} - }, - "@commandHint_html": { - "type": "String", - "description": "Usage hint for the command /html" - }, - "@youAreNoLongerParticipatingInThisChat": { - "type": "String", - "placeholders": {} - }, - "@encryption": { - "type": "String", - "placeholders": {} - }, - "@kicked": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "@title": { - "description": "Title for the application", - "type": "String", - "placeholders": {} - }, - "@changeTheNameOfTheGroup": { - "type": "String", - "placeholders": {} - }, - "@synchronizingPleaseWaitCounter": { - "type": "String", - "placeholders": { - "percentage": { - "type": "String" - } - } - }, - "@changedTheChatAvatar": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@verifySuccess": { - "type": "String", - "placeholders": {} - }, - "@sendFile": { - "type": "String", - "placeholders": {} - }, - "@newVerificationRequest": { - "type": "String", - "placeholders": {} - }, - "@requestPermission": { - "type": "String", - "placeholders": {} - }, - "@sentAPicture": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@invited": { - "type": "String", - "placeholders": {} - }, - "@commandHint_create": { - "type": "String", - "description": "Usage hint for the command /create" - }, - "@warning": { - "type": "String", - "placeholders": {} - }, - "@password": { - "type": "String", - "placeholders": {} - }, - "@supposedMxid": { - "type": "String", - "placeholders": { - "mxid": { - "type": "String" - } - } - }, - "@goToSpace": { - "type": "String", - "space": {} - }, - "@editDisplayname": { - "type": "String", - "placeholders": {} - }, - "@roomVersion": { - "type": "String", - "placeholders": {} - }, - "@sentAFile": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@videoCall": { - "type": "String", - "placeholders": {} - }, - "@banFromChat": { - "type": "String", - "placeholders": {} - }, - "@noMatrixServer": { - "type": "String", - "placeholders": { - "server1": { - "type": "String" - }, - "server2": { - "type": "String" - } - } - }, - "@userAndOthersAreTyping": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "count": { - "type": "int" - } - } - }, - "@youInvitedBy": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "@userIsTyping": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@openAppToReadMessages": { - "type": "String", - "placeholders": {} - }, - "@sentAVideo": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@inviteContact": { - "type": "String", - "placeholders": {} - }, - "@askSSSSSign": { - "type": "String", - "placeholders": {} - }, - "@waitingPartnerAcceptRequest": { - "type": "String", - "placeholders": {} - }, - "@remove": { - "type": "String", - "placeholders": {} - }, - "@writeAMessage": { - "type": "String", - "placeholders": {} - }, - "@changeTheme": { - "type": "String", - "placeholders": {} - }, - "@id": { - "type": "String", - "placeholders": {} - }, - "@changedTheChatDescriptionTo": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "description": { - "type": "String" - } - } - }, - "@countParticipants": { - "type": "String", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@blocked": { - "type": "String", - "placeholders": {} - }, - "@youKickedAndBanned": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "@isReadyForKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "@userAndUserAreTyping": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "username2": { - "type": "String" - } - } - }, - "@pleaseClickOnLink": { - "type": "String", - "placeholders": {} - }, - "@saveFile": { - "type": "String", - "placeholders": {} - }, - "@countReplies": { - "type": "int", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@versionWithNumber": { - "type": "String", - "placeholders": { - "version": { - "type": "String" - } - } - }, - "@answeredTheCall": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "@couldNotDecryptMessage": { - "type": "String", - "placeholders": { - "error": { - "type": "String" - } - } - }, - "@invitedUsersOnly": { - "type": "String", - "placeholders": {} - }, - "@next": { - "type": "String", - "placeholders": {} - }, - "@pleaseFollowInstructionsOnWeb": { - "type": "String", - "placeholders": {} - }, - "@changedTheGuestAccessRules": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@editRoomAliases": { - "type": "String", - "placeholders": {} - }, - "@fileName": { - "type": "String", - "placeholders": {} - }, - "@unavailable": { - "type": "String", - "placeholders": {} - }, - "@publicRooms": { - "type": "String", - "placeholders": {} - }, - "@fromTheInvitation": { - "type": "String", - "placeholders": {} - }, - "@sendMessages": { - "type": "String", - "placeholders": {} - }, - "@countChats": { - "type": "String", - "placeholders": { - "chats": { - "type": "int" - } - } - }, - "@incorrectPassphraseOrKey": { - "type": "String", - "placeholders": {} - }, - "@create": { - "type": "String", - "placeholders": {} - }, - "@no": { - "type": "String", - "placeholders": {} - }, - "@alias": { - "type": "String", - "placeholders": {} - }, - "@unpin": { - "type": "String", - "placeholders": {} - }, - "@reportMessage": { - "type": "String", - "placeholders": {} - }, - "@spaceIsPublic": { - "type": "String", - "placeholders": {} - }, - "@userLevel": { - "type": "String", - "placeholders": { - "level": { - "type": "int" - } - } - }, - "@all": { - "type": "String", - "placeholders": {} - }, - "@removeAllOtherDevices": { - "type": "String", - "placeholders": {} - }, - "@unblockDevice": { - "type": "String", - "placeholders": {} - }, - "@countFiles": { - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@enableEncryptionWarning": { - "type": "String", - "placeholders": {} - }, - "@inviteText": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "link": { - "type": "String" - } - } - }, - "@shareLocation": { - "type": "String", - "placeholders": {} - }, - "@errorObtainingLocation": { - "type": "String", - "placeholders": { - "error": { - "type": "String" - } - } - }, - "@passwordRecovery": { - "type": "String", - "placeholders": {} - }, - "@replaceRoomWithNewerVersion": { - "type": "String", - "placeholders": {} - }, - "@voiceMessage": { - "type": "String", - "placeholders": {} - }, - "@badServerLoginTypesException": { - "type": "String", - "placeholders": { - "serverVersions": { - "type": "String" - }, - "supportedVersions": { - "type": "String" - } - } - }, - "@cantOpenUri": { - "type": "String", - "placeholders": { - "uri": { - "type": "String" - } - } - }, - "@hideRedactedEvents": { - "type": "String", - "placeholders": {} - }, - "@online": { - "type": "String", - "placeholders": {} - }, - "@lastActiveAgo": { - "type": "String", - "placeholders": { - "localizedTimeShort": { - "type": "String" - } - } - }, - "@changedTheGuestAccessRulesTo": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "rules": { - "type": "String" - } - } - }, - "@weSentYouAnEmail": { - "type": "String", - "placeholders": {} - }, - "@updateInstalled": { - "type": "String", - "placeholders": { - "version": { - "type": "String" - } - } - }, - "@needPantalaimonWarning": { - "type": "String", - "placeholders": {} - }, - "@edit": { - "type": "String", - "placeholders": {} - }, - "@loadMore": { - "type": "String", - "placeholders": {} - }, - "@noEmotesFound": { - "type": "String", - "placeholders": {} - }, - "@synchronizingPleaseWait": { - "type": "String", - "placeholders": {} - }, - "@passwordHasBeenChanged": { - "type": "String", - "placeholders": {} - }, - "@pushRules": { - "type": "String", - "placeholders": {} - }, - "@commandHint_clearcache": { - "type": "String", - "description": "Usage hint for the command /clearcache" - }, - "@loadingPleaseWait": { - "type": "String", - "placeholders": {} - }, - "@copy": { - "type": "String", - "placeholders": {} - }, - "@noUsersFoundWithQuery": { - "type": "String", - "placeholders": { - "query": { - "type": "String" - } - } - }, - "@none": { - "type": "String", - "placeholders": {} - }, - "@enableEncryption": { - "type": "String", - "placeholders": {} - }, - "@rejectedTheInvitation": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@userLeftTheChat": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@spaceName": { - "type": "String", - "placeholders": {} - }, - "@sentVoiceMessage": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - }, - "duration": { - "type": "String" - } - } - }, - "@or": { - "type": "String", - "placeholders": {} - }, - "@whoIsAllowedToJoinThisGroup": { - "type": "String", - "placeholders": {} - }, - "@emptyChat": { - "type": "String", - "placeholders": {} - }, - "@chatBackup": { - "type": "String", - "placeholders": {} - }, - "@redactedBy": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@submit": { - "type": "String", - "placeholders": {} - }, - "@unmuteChat": { - "type": "String", - "placeholders": {} - }, - "@createdTheChat": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@redactedAnEvent": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@autoplayImages": { - "type": "String", - "placeholder": {} - }, - "@compareEmojiMatch": { - "type": "String", - "placeholders": {} - }, - "@participant": { - "type": "String", - "placeholders": {} - }, - "@logInTo": { - "type": "String", - "placeholders": { - "homeserver": { - "type": "String" - } - } - }, - "@yes": { - "type": "String", - "placeholders": {} - }, - "@startedKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "@username": { - "type": "String", - "placeholders": {} - }, - "@changedTheRoomAliases": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@fileIsTooBigForServer": { - "type": "String", - "placeholders": { - "max": { - "type": "String" - } - } - }, - "@chatDetails": { - "type": "String", - "placeholders": {} - }, - "@changedTheHistoryVisibilityTo": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "rules": { - "type": "String" - } - } - }, - "@leftTheChat": { - "type": "String", - "placeholders": {} - }, - "@verified": { - "type": "String", - "placeholders": {} - }, - "@setStatus": { - "type": "String", - "placeholders": {} - }, - "@groupWith": { - "type": "String", - "placeholders": { - "displayname": { - "type": "String" - } - } - }, - "@adminLevel": { - "type": "String", - "placeholders": { - "level": { - "type": "int" - } - } - }, - "@newMessageInFluffyChat": { - "type": "String", - "placeholders": {} - }, - "@downloadFile": { - "type": "String", - "placeholders": {} - }, - "@deviceId": { - "type": "String", - "placeholders": {} - }, - "@register": { - "type": "String", - "placeholders": {} - }, - "@changedTheJoinRulesTo": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "joinRules": { - "type": "String" - } - } - }, - "@recording": { - "type": "String", - "placeholders": {} - }, - "@changedTheChatPermissions": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@moderator": { - "type": "String", - "placeholders": {} - }, - "@acceptedTheInvitation": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@waitingPartnerEmoji": { - "type": "String", - "placeholders": {} - }, - "@channelCorruptedDecryptError": { - "type": "String", - "placeholders": {} - }, - "@tryToSendAgain": { - "type": "String", - "placeholders": {} - }, - "@guestsCanJoin": { - "type": "String", - "placeholders": {} - }, - "@aboutHomeserver": { - "type": "String", - "placeholders": { - "homeserver": { - "type": "String" - } - } - }, - "@copyToClipboard": { - "type": "String", - "placeholders": {} - }, - "@locationPermissionDeniedNotice": { - "type": "String", - "placeholders": {} - }, - "@send": { - "type": "String", - "placeholders": {} - }, - "@hasWithdrawnTheInvitationFor": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "@visibleForAllParticipants": { - "type": "String", - "placeholders": {} - }, - "@noRoomsFound": { - "type": "String", - "placeholders": {} - }, - "@mute": { - "description": "This should be a very short string because there is not much space in the button!" - }, - "@banned": { - "type": "String", - "placeholders": {} - }, - "@sendAsText": { + "@@last_modified": "2021-08-14 12:41:09.940318", + "copiedToClipboard": "Copiada para a área de transferência", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "login": "Iniciar sessão", + "@login": { + "type": "String", + "placeholders": {} + }, + "about": "Sobre", + "@about": { + "type": "String", + "placeholders": {} + }, + "admin": "Admin", + "@admin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Tens a certeza?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "notifications": "Notificações", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "account": "Conta", + "@account": { + "type": "String", + "placeholders": {} + }, + "cancel": "Cancelar", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "delete": "Eliminar", + "@delete": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { "type": "String" - }, - "@changedTheChatNameTo": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "chatname": { - "type": "String" - } - } - }, - "@commandInvalid": { + }, + "timeOfDay": { "type": "String" - }, - "@setAsCanonicalAlias": { - "type": "String", - "placeholders": {} - }, - "@whyDoYouWantToReportThis": { - "type": "String", - "placeholders": {} - }, - "@locationDisabledNotice": { - "type": "String", - "placeholders": {} - }, - "@removedBy": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@changedTheRoomInvitationLink": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@newChat": { - "type": "String", - "placeholders": {} - }, - "@commandHint_plain": { - "type": "String", - "description": "Usage hint for the command /plain" - }, - "@emoteSettings": { - "type": "String", - "placeholders": {} - }, - "@guestsAreForbidden": { - "type": "String", - "placeholders": {} - }, - "@mention": { - "type": "String", - "placeholders": {} - }, - "@openInMaps": { - "type": "String", - "placeholders": {} - }, - "@emoteExists": { - "type": "String", - "placeholders": {} - }, - "@redactedByBecause": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "reason": { - "type": "String" - } - } - }, - "@isTyping": { - "type": "String", - "placeholders": {} - }, - "@youHaveWithdrawnTheInvitationFor": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "@chat": { - "type": "String", - "placeholders": {} - }, - "@group": { - "type": "String", - "placeholders": {} - }, - "@leave": { - "type": "String", - "placeholders": {} - }, - "@skip": { - "type": "String", - "placeholders": {} - }, - "@roomHasBeenUpgraded": { - "type": "String", - "placeholders": {} - }, - "@enableEmotesGlobally": { - "type": "String", - "placeholders": {} - }, - "@pleaseChooseAPasscode": { - "type": "String", - "placeholders": {} - }, - "@noPasswordRecoveryDescription": { - "type": "String", - "placeholders": {} - }, - "@changedTheProfileAvatar": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@allChats": { - "type": "String", - "placeholders": {} - }, - "@commandHint_send": { - "type": "String", - "description": "Usage hint for the command /send" - }, - "@onlineKeyBackupEnabled": { - "type": "String", - "placeholders": {} - }, - "@unbannedUser": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "@youInvitedUser": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "@kickedAndBanned": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "@noConnectionToTheServer": { - "type": "String", - "placeholders": {} - }, - "@fileHasBeenSavedAt": { - "type": "String", - "placeholders": { - "path": { - "type": "String" - } - } - }, - "@spaceMemberOfCanKnock": { - "type": "String", - "placeholders": { - "spaces": { - "type": "String" - } - } - }, - "@commandMissing": { - "type": "String", - "placeholders": { - "command": { - "type": "String" - } - }, - "description": "State that {command} is not a valid /command." - }, - "@redactMessage": { - "type": "String", - "placeholders": {} - }, - "@forward": { - "type": "String", - "placeholders": {} - }, - "@commandHint_discardsession": { - "type": "String", - "description": "Usage hint for the command /discardsession" - }, - "@chooseAStrongPassword": { - "type": "String", - "placeholders": {} - }, - "@yourPublicKey": { - "type": "String", - "placeholders": {} - }, - "@tooManyRequestsWarning": { - "type": "String", - "placeholders": {} - }, - "@invitedUser": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "@kickFromChat": { - "type": "String", - "placeholders": {} - }, - "@commandHint_myroomnick": { - "type": "String", - "description": "Usage hint for the command /myroomnick" - }, - "@offline": { - "type": "String", - "placeholders": {} - }, - "@noPermission": { - "type": "String", - "placeholders": {} - }, - "@activatedEndToEndEncryption": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@status": { - "type": "String", - "placeholders": {} - }, - "@compareNumbersMatch": { - "type": "String", - "placeholders": {} - }, - "@invitedBy": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "@groupIsPublic": { - "type": "String", - "placeholders": {} - }, - "@verifyStart": { - "type": "String", - "placeholders": {} - }, - "@joinRoom": { - "type": "String", - "placeholders": {} - }, - "@fluffychat": { - "type": "String", - "placeholders": {} - }, - "@sentCallInformations": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "@googlyEyesContent": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "@youBannedUser": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "@theyDontMatch": { - "type": "String", - "placeholders": {} - }, - "@youHaveBeenBannedFromThisChat": { - "type": "String", - "placeholders": {} - }, - "@displaynameHasBeenChanged": { - "type": "String", - "placeholders": {} - }, - "@sentAnAudio": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@editRoomAvatar": { - "type": "String", - "placeholders": {} - }, - "@encrypted": { - "type": "String", - "placeholders": {} - }, - "@chatSearchedUntil": { - "type": "String", - "placeholders": { - "time": { - "type": "String" - } - } - }, - "@sessionLostBody": { - "type": "String", - "placeholders": { - "url": { - "type": "String" - }, - "error": { - "type": "String" - } - } - }, - "@commandHint_leave": { - "type": "String", - "description": "Usage hint for the command /leave" - }, - "@thereAreCountUsersBlocked": { - "type": "String", - "count": {} - }, - "@commandHint_myroomavatar": { - "type": "String", - "description": "Usage hint for the command /myroomavatar" - }, - "@hasKnocked": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "@appLock": { - "type": "String", - "placeholders": {} - }, - "@commandHint_react": { - "type": "String", - "description": "Usage hint for the command /react" - }, - "@changedTheHistoryVisibility": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@commandHint_me": { - "type": "String", - "description": "Usage hint for the command /me" - }, - "@pleaseEnterYourUsername": { - "type": "String", - "placeholders": {} - }, - "@encryptionNotEnabled": { - "type": "String", - "placeholders": {} - }, - "@wrongPinEntered": { - "type": "String", - "placeholders": { - "seconds": { - "type": "int" - } - } - }, - "@lightTheme": { - "type": "String", - "placeholders": {} - }, - "@verifyTitle": { - "type": "String", - "placeholders": {} - }, - "@enterAnEmailAddress": { - "type": "String", - "placeholders": {} - }, - "@commandHint_kick": { - "type": "String", - "description": "Usage hint for the command /kick" - }, - "@createNewSpace": { - "type": "String", - "placeholders": {} - }, - "@commandHint_unban": { - "type": "String", - "description": "Usage hint for the command /unban" - }, - "@unknownEncryptionAlgorithm": { - "type": "String", - "placeholders": {} - }, - "@commandHint_ban": { - "type": "String", - "description": "Usage hint for the command /ban" - }, - "@wasDirectChatDisplayName": { - "type": "String", - "placeholders": { - "oldDisplayName": { - "type": "String" - } - } - }, - "@defaultPermissionLevel": { - "type": "String", - "placeholders": {} - }, - "@numUsersTyping": { - "type": "String", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@fontSize": { - "type": "String", - "placeholders": {} - }, - "@whoCanPerformWhichAction": { - "type": "String", - "placeholders": {} - }, - "@iHaveClickedOnLink": { - "type": "String", - "placeholders": {} - }, - "@you": { - "type": "String", - "placeholders": {} - }, - "@commandHint_op": { - "type": "String", - "description": "Usage hint for the command /op" - }, - "@commandHint_join": { - "type": "String", - "description": "Usage hint for the command /join" - }, - "@sourceCode": { - "type": "String", - "placeholders": {} - }, - "@commandHint_invite": { - "type": "String", - "description": "Usage hint for the command /invite" - }, - "@userSentUnknownEvent": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "type": { - "type": "String" - } - } - }, - "@unknownPushRule": { - "type": "String", - "placeholders": { - "rule": { - "type": "String" - } - } - }, - "@contactHasBeenInvitedToTheGroup": { - "type": "String", - "placeholders": {} - }, - "@youKicked": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "@areYouSureYouWantToLogout": { - "type": "String", - "placeholders": {} - }, - "@changedTheJoinRules": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@groups": { - "type": "String", - "placeholders": {} - }, - "@reactedWith": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - }, - "reaction": { - "type": "String" - } - } - }, - "@bannedUser": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "@oopsSomethingWentWrong": { - "type": "String", - "placeholders": {} - }, - "@loadCountMoreParticipants": { - "type": "String", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@cuddleContent": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "@askVerificationRequest": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@waitingPartnerNumbers": { - "type": "String", - "placeholders": {} - }, - "@addEmail": { - "type": "String", - "placeholders": {} - }, - "@emoteKeyboardNoRecents": { - "type": "String", - "placeholders": {} - }, - "@startedACall": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "@acceptedKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "@emoteInvalid": { - "type": "String", - "placeholders": {} - }, - "@systemTheme": { - "type": "String", - "placeholders": {} - }, - "@deleteMessage": { - "type": "String", - "placeholders": {} - }, - "@visibilityOfTheChatHistory": { - "type": "String", - "placeholders": {} - }, - "@changeTheHomeserver": { - "type": "String", - "placeholders": {} - }, - "@play": { - "type": "String", - "placeholders": { - "fileName": { - "type": "String" - } - } - }, - "@changeDeviceName": { - "type": "String", - "placeholders": {} - }, - "@chatCanBeDiscoveredViaSearchOnServer": { - "type": "String", - "placeholders": { - "server": { - "type": "String" - } - } - }, - "@passwordForgotten": { - "type": "String", - "placeholders": {} - }, - "@canceledKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "@statusExampleMessage": { - "type": "String", - "placeholders": {} - }, - "@security": { - "type": "String", - "placeholders": {} - }, - "@sendAudio": { - "type": "String", - "placeholders": {} - }, - "@sentASticker": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@commandHint_dm": { - "type": "String", - "description": "Usage hint for the command /dm" - }, - "@reject": { - "type": "String", - "placeholders": {} - }, - "@restoreSessionBody": { - "type": "String", - "placeholders": { - "url": { - "type": "String" - }, - "error": { - "type": "String" - } - } - }, - "@editBlockedServers": { - "type": "String", - "placeholders": {} - }, - "@oopsPushError": { - "type": "String", - "placeholders": {} - }, - "@youUnbannedUser": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "@deactivateAccountWarning": { - "type": "String", - "placeholders": {} - }, - "@archive": { - "type": "String", - "placeholders": {} - }, - "@joinedTheChat": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@visibleForEveryone": { - "type": "String", - "placeholders": {} - }, - "@changePassword": { - "type": "String", - "placeholders": {} - }, - "@devices": { - "type": "String", - "placeholders": {} - }, - "@accept": { - "type": "String", - "placeholders": {} - }, - "@unknownEvent": { - "type": "String", - "placeholders": { - "type": { - "type": "String" - } - } - }, - "@appWantsToUseForLogin": { - "type": "String", - "placeholders": { - "server": { - "type": "String" - } - } - }, - "@unreadChatsInApp": { - "type": "String", - "placeholders": { - "appname": { - "type": "String" - }, - "unread": { - "type": "String" - } - } - }, - "@pleaseEnterYourPin": { - "type": "String", - "placeholders": {} - }, - "@countVotes": { - "type": "int", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@share": { - "type": "String", - "placeholders": {} - }, - "@moderatorLevel": { - "type": "String", - "placeholders": { - "level": { - "type": "int" - } - } - }, - "@changeYourAvatar": { - "type": "String", - "placeholders": {} - }, - "@sendImage": { - "type": "String", - "placeholders": {} - }, - "@sendImages": { - "type": "String", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@contentHasBeenReported": { - "type": "String", - "placeholders": {} - }, - "@fromJoining": { - "type": "String", - "placeholders": {} - }, - "@verify": { - "type": "String", - "placeholders": {} - }, - "@sendVideo": { - "type": "String", - "placeholders": {} - }, - "@startedAPoll": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@sendAMessage": { - "type": "String", - "placeholders": {} - }, - "@pin": { - "type": "String", - "placeholders": {} - }, - "@deleteAccount": { - "type": "String", - "placeholders": {} - }, - "@muteChat": { - "type": "String", - "placeholders": {} - }, - "@countInvited": { - "type": "String", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@spaceMemberOf": { - "type": "String", - "placeholders": { - "spaces": { - "type": "String" - } - } - }, - "@anyoneCanJoin": { - "type": "String", - "placeholders": {} - }, - "@emotePacks": { - "type": "String", - "placeholders": {} - }, - "@requestedKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "@endedTheCall": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "@searchIn": { - "type": "String", - "placeholders": { - "chat": { - "type": "String" - } - } - }, - "@noGoogleServicesWarning": { - "type": "String", - "placeholders": {} - }, - "@changedTheDisplaynameTo": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "displayname": { - "type": "String" - } - } - }, - "@areGuestsAllowedToJoin": { - "type": "String", - "placeholders": {} - }, - "@pickImage": { - "type": "String", - "placeholders": {} - }, - "@withTheseAddressesRecoveryDescription": { - "type": "String", - "placeholders": {} - }, - "@ok": { - "type": "String", - "placeholders": {} - }, - "@sharedTheLocation": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@unbanFromChat": { - "type": "String", - "placeholders": {} - }, - "newPost": "Nova publicação", - "@newPost": { - "type": "String", - "placeholders": {} - }, - "postPhoto": "Postar foto", - "@postPhoto": { - "type": "String", - "placeholders": {} - }, - "postVideo": "Postar vídeo", - "@postVideo": { - "type": "String", - "placeholders": {} - }, - "noPostsYet": "Nenhuma publicação ainda. Compartilhe a primeira foto ou vídeo!", - "@noPostsYet": { - "type": "String", - "placeholders": {} - }, - "noCommentsYet": "Nenhum comentário ainda. Seja o primeiro a comentar!", - "@noCommentsYet": { - "type": "String", - "placeholders": {} - }, - "like": "Curtir", - "@like": { - "type": "String", - "placeholders": {} - }, - "unlike": "Descurtir", - "@unlike": { - "type": "String", - "placeholders": {} - }, - "editCaption": "Editar legenda", - "@editCaption": { - "type": "String", - "placeholders": {} - }, - "captionHint": "Legenda", - "@captionHint": { - "type": "String", - "placeholders": {} + } } -} \ No newline at end of file + }, + "help": "Ajuda", + "@help": { + "type": "String", + "placeholders": {} + }, + "messages": "Mensagens", + "@messages": { + "type": "String", + "placeholders": {} + }, + "reason": "Razão", + "@reason": { + "type": "String", + "placeholders": {} + }, + "privacy": "Privacidade", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Abrir câmara", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "settings": "Configurações", + "@settings": { + "type": "String", + "placeholders": {} + }, + "logout": "Terminar sessão", + "@logout": { + "type": "String", + "placeholders": {} + }, + "search": "Pesquisar", + "@search": { + "type": "String", + "placeholders": {} + }, + "users": "Utilizadores", + "close": "Fechar", + "@close": { + "type": "String", + "placeholders": {} + }, + "repeatPassword": "Repita a senha", + "notAnImage": "Não é um arquivo de imagem.", + "@showPassword": { + "type": "String", + "placeholders": {} + }, + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "@chats": { + "type": "String", + "placeholders": {} + }, + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "@directChats": { + "type": "String", + "placeholders": {} + }, + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "@reply": { + "type": "String", + "placeholders": {} + }, + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "@device": { + "type": "String", + "placeholders": {} + }, + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "@encryption": { + "type": "String", + "placeholders": {} + }, + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "@title": { + "description": "Title for the application", + "type": "String", + "placeholders": {} + }, + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "@requestPermission": { + "type": "String", + "placeholders": {} + }, + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@invited": { + "type": "String", + "placeholders": {} + }, + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "@warning": { + "type": "String", + "placeholders": {} + }, + "@password": { + "type": "String", + "placeholders": {} + }, + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "@goToSpace": { + "type": "String", + "space": {} + }, + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@videoCall": { + "type": "String", + "placeholders": {} + }, + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "@remove": { + "type": "String", + "placeholders": {} + }, + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "@id": { + "type": "String", + "placeholders": {} + }, + "@changedTheChatDescriptionTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "description": { + "type": "String" + } + } + }, + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@blocked": { + "type": "String", + "placeholders": {} + }, + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "@next": { + "type": "String", + "placeholders": {} + }, + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "@fileName": { + "type": "String", + "placeholders": {} + }, + "@unavailable": { + "type": "String", + "placeholders": {} + }, + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "@create": { + "type": "String", + "placeholders": {} + }, + "@no": { + "type": "String", + "placeholders": {} + }, + "@alias": { + "type": "String", + "placeholders": {} + }, + "@unpin": { + "type": "String", + "placeholders": {} + }, + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@all": { + "type": "String", + "placeholders": {} + }, + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "@hideRedactedEvents": { + "type": "String", + "placeholders": {} + }, + "@online": { + "type": "String", + "placeholders": {} + }, + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "@needPantalaimonWarning": { + "type": "String", + "placeholders": {} + }, + "@edit": { + "type": "String", + "placeholders": {} + }, + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "@pushRules": { + "type": "String", + "placeholders": {} + }, + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "@copy": { + "type": "String", + "placeholders": {} + }, + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "@none": { + "type": "String", + "placeholders": {} + }, + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "@or": { + "type": "String", + "placeholders": {} + }, + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@submit": { + "type": "String", + "placeholders": {} + }, + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "@participant": { + "type": "String", + "placeholders": {} + }, + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "@yes": { + "type": "String", + "placeholders": {} + }, + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@username": { + "type": "String", + "placeholders": {} + }, + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "@verified": { + "type": "String", + "placeholders": {} + }, + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "@deviceId": { + "type": "String", + "placeholders": {} + }, + "@register": { + "type": "String", + "placeholders": {} + }, + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "@recording": { + "type": "String", + "placeholders": {} + }, + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@moderator": { + "type": "String", + "placeholders": {} + }, + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "@send": { + "type": "String", + "placeholders": {} + }, + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "@banned": { + "type": "String", + "placeholders": {} + }, + "@sendAsText": { + "type": "String" + }, + "@changedTheChatNameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "chatname": { + "type": "String" + } + } + }, + "@commandInvalid": { + "type": "String" + }, + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "@removedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@newChat": { + "type": "String", + "placeholders": {} + }, + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "@emoteSettings": { + "type": "String", + "placeholders": {} + }, + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "@mention": { + "type": "String", + "placeholders": {} + }, + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@chat": { + "type": "String", + "placeholders": {} + }, + "@group": { + "type": "String", + "placeholders": {} + }, + "@leave": { + "type": "String", + "placeholders": {} + }, + "@skip": { + "type": "String", + "placeholders": {} + }, + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@allChats": { + "type": "String", + "placeholders": {} + }, + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "@forward": { + "type": "String", + "placeholders": {} + }, + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "@offline": { + "type": "String", + "placeholders": {} + }, + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@status": { + "type": "String", + "placeholders": {} + }, + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "@invitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "@fluffychat": { + "type": "String", + "placeholders": {} + }, + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@appLock": { + "type": "String", + "placeholders": {} + }, + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "@you": { + "type": "String", + "placeholders": {} + }, + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@groups": { + "type": "String", + "placeholders": {} + }, + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "@play": { + "type": "String", + "placeholders": { + "fileName": { + "type": "String" + } + } + }, + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "@security": { + "type": "String", + "placeholders": {} + }, + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "@reject": { + "type": "String", + "placeholders": {} + }, + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "@archive": { + "type": "String", + "placeholders": {} + }, + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "@devices": { + "type": "String", + "placeholders": {} + }, + "@accept": { + "type": "String", + "placeholders": {} + }, + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@share": { + "type": "String", + "placeholders": {} + }, + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "@verify": { + "type": "String", + "placeholders": {} + }, + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "@startedAPoll": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "@pin": { + "type": "String", + "placeholders": {} + }, + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "@emotePacks": { + "type": "String", + "placeholders": {} + }, + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "@pickImage": { + "type": "String", + "placeholders": {} + }, + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "@ok": { + "type": "String", + "placeholders": {} + }, + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "newPost": "Nova publicação", + "@newPost": { + "type": "String", + "placeholders": {} + }, + "postPhoto": "Postar foto", + "@postPhoto": { + "type": "String", + "placeholders": {} + }, + "postVideo": "Postar vídeo", + "@postVideo": { + "type": "String", + "placeholders": {} + }, + "noPostsYet": "Nenhuma publicação ainda. Compartilhe a primeira foto ou vídeo!", + "@noPostsYet": { + "type": "String", + "placeholders": {} + }, + "noCommentsYet": "Nenhum comentário ainda. Seja o primeiro a comentar!", + "@noCommentsYet": { + "type": "String", + "placeholders": {} + }, + "like": "Curtir", + "@like": { + "type": "String", + "placeholders": {} + }, + "unlike": "Descurtir", + "@unlike": { + "type": "String", + "placeholders": {} + }, + "editCaption": "Editar legenda", + "@editCaption": { + "type": "String", + "placeholders": {} + }, + "captionHint": "Legenda", + "@captionHint": { + "type": "String", + "placeholders": {} + }, + "areYouSureDeletePost": "Eliminar" +} diff --git a/lib/l10n/intl_pt_BR.arb b/lib/l10n/intl_pt_BR.arb index 618726b..4ecb16f 100644 --- a/lib/l10n/intl_pt_BR.arb +++ b/lib/l10n/intl_pt_BR.arb @@ -1,2569 +1,2570 @@ { - "@@last_modified": "2021-08-14 12:41:09.925971", - "about": "Sobre", - "@about": { - "type": "String", - "placeholders": {} - }, - "accept": "Aceitar", - "@accept": { - "type": "String", - "placeholders": {} - }, - "acceptedTheInvitation": "👍 {username} aceitou o convite", - "@acceptedTheInvitation": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "account": "Conta", - "@account": { - "type": "String", - "placeholders": {} - }, - "activatedEndToEndEncryption": "🔐 {username} ativou a criptografia de ponta-a-ponta", - "@activatedEndToEndEncryption": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "addEmail": "Adicionar e-mail", - "@addEmail": { - "type": "String", - "placeholders": {} - }, - "admin": "Admin", - "@admin": { - "type": "String", - "placeholders": {} - }, - "alias": "cognome", - "@alias": { - "type": "String", - "placeholders": {} - }, - "all": "Tudo", - "@all": { - "type": "String", - "placeholders": {} - }, - "answeredTheCall": "{senderName} atendeu à chamada", - "@answeredTheCall": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "anyoneCanJoin": "Qualquer pessoa pode entrar", - "@anyoneCanJoin": { - "type": "String", - "placeholders": {} - }, - "appLock": "Bloqueio do app", - "@appLock": { - "type": "String", - "placeholders": {} - }, - "archive": "Arquivo", - "@archive": { - "type": "String", - "placeholders": {} - }, - "areGuestsAllowedToJoin": "Visitantes podem entrar", - "@areGuestsAllowedToJoin": { - "type": "String", - "placeholders": {} - }, - "areYouSure": "Tem certeza?", - "@areYouSure": { - "type": "String", - "placeholders": {} - }, - "areYouSureYouWantToLogout": "Tem certeza que deseja se desconectar?", - "@areYouSureYouWantToLogout": { - "type": "String", - "placeholders": {} - }, - "askSSSSSign": "Para poder validar a outra pessoa, digite sua frase secreta ou chave de recuperação.", - "@askSSSSSign": { - "type": "String", - "placeholders": {} - }, - "askVerificationRequest": "Aceitar esta solicitação de verificação de {username}?", - "@askVerificationRequest": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "autoplayImages": "Reproduzir automaticamente figurinhas animadas e emojis", - "@autoplayImages": { - "type": "String", - "placeholder": {} - }, - "badServerLoginTypesException": "O servidor suporta os tipos de entrada/login:\n{serverVersions}\nMas este app suporta apenas:\n{supportedVersions}", - "@badServerLoginTypesException": { - "type": "String", - "placeholders": { - "serverVersions": { - "type": "String" - }, - "supportedVersions": { - "type": "String" - } - } - }, - "banFromChat": "Banir da conversa", - "@banFromChat": { - "type": "String", - "placeholders": {} - }, - "banned": "Banidos", - "@banned": { - "type": "String", - "placeholders": {} - }, - "bannedUser": "{username} baniu {targetName}", - "@bannedUser": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "blockDevice": "Bloquear dispositivo", - "@blockDevice": { - "type": "String", - "placeholders": {} - }, - "blocked": "Bloqueado", - "@blocked": { - "type": "String", - "placeholders": {} - }, - "cancel": "Cancelar", - "@cancel": { - "type": "String", - "placeholders": {} - }, - "cantOpenUri": "Não foi possível abrir a URI {uri}", - "@cantOpenUri": { - "type": "String", - "placeholders": { - "uri": { - "type": "String" - } - } - }, - "changeDeviceName": "Alterar o nome do dispositivo", - "@changeDeviceName": { - "type": "String", - "placeholders": {} - }, - "changedTheChatAvatar": "{username} alterou o avatar da conversa", - "@changedTheChatAvatar": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "changedTheChatPermissions": "{username} alterou as permissões na conversa", - "@changedTheChatPermissions": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "changedTheDisplaynameTo": "{username} mudou o seu nome de exibição para: '{displayname}'", - "@changedTheDisplaynameTo": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "displayname": { - "type": "String" - } - } - }, - "changedTheGuestAccessRules": "{username} alterou as regras de acesso dos visitantes", - "@changedTheGuestAccessRules": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "changedTheGuestAccessRulesTo": "{username} alterou as regras de acesso dos visitantes para: {rules}", - "@changedTheGuestAccessRulesTo": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "rules": { - "type": "String" - } - } - }, - "changedTheHistoryVisibility": "{username} alterou a visibilidade do histórico", - "@changedTheHistoryVisibility": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "changedTheHistoryVisibilityTo": "{username} alterou a visibilidade do histórico para: {rules}", - "@changedTheHistoryVisibilityTo": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "rules": { - "type": "String" - } - } - }, - "changedTheJoinRules": "{username} alterou as regras de entrada", - "@changedTheJoinRules": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "changedTheJoinRulesTo": "{username} alterou as regras de entrada para: {joinRules}", - "@changedTheJoinRulesTo": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "joinRules": { - "type": "String" - } - } - }, - "changedTheProfileAvatar": "{username} alterou seu avatar", - "@changedTheProfileAvatar": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "changedTheRoomAliases": "{username} alterou os apelidos da sala", - "@changedTheRoomAliases": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "changedTheRoomInvitationLink": "{username} alterou o link de convite", - "@changedTheRoomInvitationLink": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "changePassword": "Alterar a senha", - "@changePassword": { - "type": "String", - "placeholders": {} - }, - "changeTheHomeserver": "Alterar o servidor", - "@changeTheHomeserver": { - "type": "String", - "placeholders": {} - }, - "changeTheme": "Alterar o tema", - "@changeTheme": { - "type": "String", - "placeholders": {} - }, - "changeTheNameOfTheGroup": "Alterar o nome do grupo", - "@changeTheNameOfTheGroup": { - "type": "String", - "placeholders": {} - }, - "changeYourAvatar": "Alterar seu avatar", - "@changeYourAvatar": { - "type": "String", - "placeholders": {} - }, - "channelCorruptedDecryptError": "A criptografia foi corrompida", - "@channelCorruptedDecryptError": { - "type": "String", - "placeholders": {} - }, - "chat": "Conversar", - "@chat": { - "type": "String", - "placeholders": {} - }, - "chatBackup": "Backup de conversas", - "@chatBackup": { - "type": "String", - "placeholders": {} - }, - "chatDetails": "Detalhes da conversa", - "@chatDetails": { - "type": "String", - "placeholders": {} - }, - "chats": "Conversas", - "@chats": { - "type": "String", - "placeholders": {} - }, - "chooseAStrongPassword": "Escolha uma senha forte", - "@chooseAStrongPassword": { - "type": "String", - "placeholders": {} - }, - "clearArchive": "Limpar arquivo", - "close": "Fechar", - "@close": { - "type": "String", - "placeholders": {} - }, - "commandHint_ban": "Banir o usuário especificado desta sala", - "@commandHint_ban": { - "type": "String", - "description": "Usage hint for the command /ban" - }, - "commandHint_html": "Enviar mensagem formatada em HTML", - "@commandHint_html": { - "type": "String", - "description": "Usage hint for the command /html" - }, - "commandHint_invite": "Convidar o usuário especificado para esta sala", - "@commandHint_invite": { - "type": "String", - "description": "Usage hint for the command /invite" - }, - "commandHint_join": "Entrar na sala especificada", - "@commandHint_join": { - "type": "String", - "description": "Usage hint for the command /join" - }, - "commandHint_kick": "Remover o usuário especificado da sala", - "@commandHint_kick": { - "type": "String", - "description": "Usage hint for the command /kick" - }, - "commandHint_leave": "Sair desta sala", - "@commandHint_leave": { - "type": "String", - "description": "Usage hint for the command /leave" - }, - "commandHint_me": "Descrever você mesmo", - "@commandHint_me": { - "type": "String", - "description": "Usage hint for the command /me" - }, - "commandHint_myroomavatar": "Configurar sua imagem para esta sala (via mxc-uri)", - "@commandHint_myroomavatar": { - "type": "String", - "description": "Usage hint for the command /myroomavatar" - }, - "commandHint_myroomnick": "Configurar seu nome de exibição para esta sala", - "@commandHint_myroomnick": { - "type": "String", - "description": "Usage hint for the command /myroomnick" - }, - "commandHint_op": "Determinar o nível de poderes do usuário especificado (padrão: 50)", - "@commandHint_op": { - "type": "String", - "description": "Usage hint for the command /op" - }, - "commandHint_plain": "Enviar mensagem sem formatação", - "@commandHint_plain": { - "type": "String", - "description": "Usage hint for the command /plain" - }, - "commandHint_react": "Enviar uma resposta como reação", - "@commandHint_react": { - "type": "String", - "description": "Usage hint for the command /react" - }, - "commandHint_send": "Enviar mensagem", - "@commandHint_send": { - "type": "String", - "description": "Usage hint for the command /send" - }, - "commandHint_unban": "Desbanir o usuário especificado desta sala", - "@commandHint_unban": { - "type": "String", - "description": "Usage hint for the command /unban" - }, - "commandInvalid": "Comando inválido", - "@commandInvalid": { + "@@last_modified": "2021-08-14 12:41:09.925971", + "about": "Sobre", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Aceitar", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} aceitou o convite", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { "type": "String" - }, - "commandMissing": "{command} não é um comando.", - "@commandMissing": { - "type": "String", - "placeholders": { - "command": { - "type": "String" - } - }, - "description": "State that {command} is not a valid /command." - }, - "compareEmojiMatch": "Compare os emojis", - "@compareEmojiMatch": { - "type": "String", - "placeholders": {} - }, - "compareNumbersMatch": "Compare os números", - "@compareNumbersMatch": { - "type": "String", - "placeholders": {} - }, - "configureChat": "Configurar conversa", - "@configureChat": { - "type": "String", - "placeholders": {} - }, - "contactHasBeenInvitedToTheGroup": "O contato foi convidado ao grupo", - "@contactHasBeenInvitedToTheGroup": { - "type": "String", - "placeholders": {} - }, - "contentHasBeenReported": "O conteúdo foi denunciado para os administradores do servidor", - "@contentHasBeenReported": { - "type": "String", - "placeholders": {} - }, - "copiedToClipboard": "Copiado para a área de transferência", - "@copiedToClipboard": { - "type": "String", - "placeholders": {} - }, - "copy": "Copiar", - "@copy": { - "type": "String", - "placeholders": {} - }, - "copyToClipboard": "Copiar para a área de transferência", - "@copyToClipboard": { - "type": "String", - "placeholders": {} - }, - "couldNotDecryptMessage": "Não foi possível descriptografar a mensagem: {error}", - "@couldNotDecryptMessage": { - "type": "String", - "placeholders": { - "error": { - "type": "String" - } - } - }, - "countParticipants": "{count} participantes", - "@countParticipants": { - "type": "String", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "create": "Criar", - "@create": { - "type": "String", - "placeholders": {} - }, - "createdTheChat": "💬 {username} criou a conversa", - "@createdTheChat": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "createNewSpace": "Novo espaço", - "@createNewSpace": { - "type": "String", - "placeholders": {} - }, - "currentlyActive": "Ativo", - "@currentlyActive": { - "type": "String", - "placeholders": {} - }, - "darkTheme": "Escuro", - "@darkTheme": { - "type": "String", - "placeholders": {} - }, - "dateAndTimeOfDay": "{date} às {timeOfDay}", - "@dateAndTimeOfDay": { - "type": "String", - "placeholders": { - "date": { - "type": "String" - }, - "timeOfDay": { - "type": "String" - } - } - }, - "deactivateAccountWarning": "Isto desativará a sua conta. Isto é irreversível! Tem certeza?", - "@deactivateAccountWarning": { - "type": "String", - "placeholders": {} - }, - "defaultPermissionLevel": "Nível de permissão padrão para usuários novos", - "@defaultPermissionLevel": { - "type": "String", - "placeholders": {} - }, - "delete": "Apagar", - "@delete": { - "type": "String", - "placeholders": {} - }, - "deleteAccount": "Apagar conta", - "@deleteAccount": { - "type": "String", - "placeholders": {} - }, - "deleteMessage": "Apagar mensagem", - "@deleteMessage": { - "type": "String", - "placeholders": {} - }, - "devices": "Dispositivos", - "@devices": { - "type": "String", - "placeholders": {} - }, - "directChats": "Conversas diretas", - "@directChats": { - "type": "String", - "placeholders": {} - }, - "displaynameHasBeenChanged": "O nome de exibição foi alterado", - "@displaynameHasBeenChanged": { - "type": "String", - "placeholders": {} - }, - "downloadFile": "Baixar arquivo", - "@downloadFile": { - "type": "String", - "placeholders": {} - }, - "edit": "Editar", - "@edit": { - "type": "String", - "placeholders": {} - }, - "editBlockedServers": "Editar servidores bloqueados", - "@editBlockedServers": { - "type": "String", - "placeholders": {} - }, - "editDisplayname": "Editar nome de exibição", - "@editDisplayname": { - "type": "String", - "placeholders": {} - }, - "editRoomAliases": "Editar apelidos da sala", - "@editRoomAliases": { - "type": "String", - "placeholders": {} - }, - "editRoomAvatar": "Editar o avatar da sala", - "@editRoomAvatar": { - "type": "String", - "placeholders": {} - }, - "emoteExists": "Emoji já existe!", - "@emoteExists": { - "type": "String", - "placeholders": {} - }, - "emoteInvalid": "Código emoji inválido!", - "@emoteInvalid": { - "type": "String", - "placeholders": {} - }, - "emoteShortcode": "Código Emoji", - "@emoteShortcode": { - "type": "String", - "placeholders": {} - }, - "emptyChat": "Conversa vazia", - "@emptyChat": { - "type": "String", - "placeholders": {} - }, - "enableEmotesGlobally": "Habilitar globalmente o pacote de emoji", - "@enableEmotesGlobally": { - "type": "String", - "placeholders": {} - }, - "enableEncryption": "Ativar criptografia", - "@enableEncryption": { - "type": "String", - "placeholders": {} - }, - "enableEncryptionWarning": "Você não poderá desativar a criptografia posteriormente. Tem certeza?", - "@enableEncryptionWarning": { - "type": "String", - "placeholders": {} - }, - "encrypted": "Criptografado", - "@encrypted": { - "type": "String", - "placeholders": {} - }, - "encryption": "Criptografia", - "@encryption": { - "type": "String", - "placeholders": {} - }, - "encryptionNotEnabled": "A criptografia não está ativada", - "@encryptionNotEnabled": { - "type": "String", - "placeholders": {} - }, - "endedTheCall": "{senderName} finalizou a chamada", - "@endedTheCall": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "enterAnEmailAddress": "Digite um endereço de e-mail", - "@enterAnEmailAddress": { - "type": "String", - "placeholders": {} - }, - "errorObtainingLocation": "Erro ao obter localização: {error}", - "@errorObtainingLocation": { - "type": "String", - "placeholders": { - "error": { - "type": "String" - } - } - }, - "fontSize": "Tamanho da fonte", - "@fontSize": { - "type": "String", - "placeholders": {} - }, - "forward": "Encaminhar", - "@forward": { - "type": "String", - "placeholders": {} - }, - "fromJoining": "Desde que entrou", - "@fromJoining": { - "type": "String", - "placeholders": {} - }, - "fromTheInvitation": "Desde o convite", - "@fromTheInvitation": { - "type": "String", - "placeholders": {} - }, - "group": "Grupo", - "@group": { - "type": "String", - "placeholders": {} - }, - "groupIsPublic": "O grupo é público", - "@groupIsPublic": { - "type": "String", - "placeholders": {} - }, - "groups": "Grupos", - "@groups": { - "type": "String", - "placeholders": {} - }, - "groupWith": "Grupo com {displayname}", - "@groupWith": { - "type": "String", - "placeholders": { - "displayname": { - "type": "String" - } - } - }, - "guestsAreForbidden": "Visitantes são proibidos", - "@guestsAreForbidden": { - "type": "String", - "placeholders": {} - }, - "guestsCanJoin": "Visitantes podem entrar", - "@guestsCanJoin": { - "type": "String", - "placeholders": {} - }, - "hasWithdrawnTheInvitationFor": "{username} revogou o convite para {targetName}", - "@hasWithdrawnTheInvitationFor": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "help": "Ajuda", - "@help": { - "type": "String", - "placeholders": {} - }, - "hideUnknownEvents": "Ocultar eventos desconhecidos", - "@hideUnknownEvents": { - "type": "String", - "placeholders": {} - }, - "ignore": "Ignorar", - "@ignore": { - "type": "String", - "placeholders": {} - }, - "ignoredUsers": "Usuários ignorados", - "@ignoredUsers": { - "type": "String", - "placeholders": {} - }, - "iHaveClickedOnLink": "Eu cliquei no link", - "@iHaveClickedOnLink": { - "type": "String", - "placeholders": {} - }, - "incorrectPassphraseOrKey": "Frase secreta ou chave de recuperação incorreta", - "@incorrectPassphraseOrKey": { - "type": "String", - "placeholders": {} - }, - "inviteContact": "Convidar contato", - "@inviteContact": { - "type": "String", - "placeholders": {} - }, - "inviteContactToGroup": "Convidar contato para {groupName}", - "@inviteContactToGroup": { - "type": "String", - "placeholders": { - "groupName": { - "type": "String" - } - } - }, - "invited": "Convidado", - "@invited": { - "type": "String", - "placeholders": {} - }, - "invitedUser": "📩 {username} convidou {targetName}", - "@invitedUser": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "invitedUsersOnly": "Apenas usuários convidados", - "@invitedUsersOnly": { - "type": "String", - "placeholders": {} - }, - "inviteText": "{username} convidou você para o FluffyChat.\n1. Visite fluffychat.im e instale o aplicativo\n2. Entre ou crie uma conta\n3. Abra o link do convite:\n{link}", - "@inviteText": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "link": { - "type": "String" - } - } - }, - "isTyping": "está digitando…", - "@isTyping": { - "type": "String", - "placeholders": {} - }, - "joinedTheChat": "👋 {username} entrou na conversa", - "@joinedTheChat": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "joinRoom": "Entrar na sala", - "@joinRoom": { - "type": "String", - "placeholders": {} - }, - "kicked": "👞 {username} expulsou {targetName}", - "@kicked": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "kickedAndBanned": "🙅 {username} expulsou e baniu {targetName}", - "@kickedAndBanned": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "kickFromChat": "Expulsar da conversa", - "@kickFromChat": { - "type": "String", - "placeholders": {} - }, - "lastActiveAgo": "Última vez ativo: {localizedTimeShort}", - "@lastActiveAgo": { - "type": "String", - "placeholders": { - "localizedTimeShort": { - "type": "String" - } - } - }, - "leave": "Sair", - "@leave": { - "type": "String", - "placeholders": {} - }, - "leftTheChat": "Saiu da conversa", - "@leftTheChat": { - "type": "String", - "placeholders": {} - }, - "lightTheme": "Claro", - "@lightTheme": { - "type": "String", - "placeholders": {} - }, - "loadCountMoreParticipants": "Carregar mais {count} participantes", - "@loadCountMoreParticipants": { - "type": "String", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "loadingPleaseWait": "Carregando... Aguarde.", - "@loadingPleaseWait": { - "type": "String", - "placeholders": {} - }, - "loadMore": "Carregar mais…", - "@loadMore": { - "type": "String", - "placeholders": {} - }, - "locationDisabledNotice": "Os serviços de localização estão desativados. Ative-os para compartilhar sua localização.", - "@locationDisabledNotice": { - "type": "String", - "placeholders": {} - }, - "locationPermissionDeniedNotice": "Permissão de localização bloqueada. Conceda as permissões para poder compartilhar sua localização.", - "@locationPermissionDeniedNotice": { - "type": "String", - "placeholders": {} - }, - "login": "Conectar-se", - "@login": { - "type": "String", - "placeholders": {} - }, - "logInTo": "Conectar com {homeserver}", - "@logInTo": { - "type": "String", - "placeholders": { - "homeserver": { - "type": "String" - } - } - }, - "logout": "Desconectar-se", - "@logout": { - "type": "String", - "placeholders": {} - }, - "mention": "Mencionar", - "@mention": { - "type": "String", - "placeholders": {} - }, - "messages": "Mensagens", - "@messages": { - "type": "String", - "placeholders": {} - }, - "moderator": "Moderador", - "@moderator": { - "type": "String", - "placeholders": {} - }, - "muteChat": "Silenciar conversa", - "@muteChat": { - "type": "String", - "placeholders": {} - }, - "newChat": "Nova conversa", - "@newChat": { - "type": "String", - "placeholders": {} - }, - "newMessageInFluffyChat": "💬 Nova mensagem no FluffyChat", - "@newMessageInFluffyChat": { - "type": "String", - "placeholders": {} - }, - "newVerificationRequest": "Nova solicitação de verificação!", - "@newVerificationRequest": { - "type": "String", - "placeholders": {} - }, - "next": "Avançar", - "@next": { - "type": "String", - "placeholders": {} - }, - "no": "Não", - "@no": { - "type": "String", - "placeholders": {} - }, - "noConnectionToTheServer": "Sem conexão com o servidor", - "@noConnectionToTheServer": { - "type": "String", - "placeholders": {} - }, - "noEmotesFound": "Nenhum emoji encontrado. 😕", - "@noEmotesFound": { - "type": "String", - "placeholders": {} - }, - "noEncryptionForPublicRooms": "Você só poderá ativar a criptografia quando a sala não for mais publicamente acessível.", - "@noEncryptionForPublicRooms": { - "type": "String", - "placeholders": {} - }, - "noGoogleServicesWarning": "O Firebase Cloud Messaging não parece estar disponível no seu dispositivo. Para receber notificações push, recomendados que você instwl3 o ntfy. Com o ntfy outro provedor do UnifiedPush, você pode receber notificações push de um modo seguro em relação aos dados. Você pode baixar o ntfy da Play Store ou do F-Droid.", - "@noGoogleServicesWarning": { - "type": "String", - "placeholders": {} - }, - "noMatrixServer": "{server1} não é um servidor matrix, usar {server2}?", - "@noMatrixServer": { - "type": "String", - "placeholders": { - "server1": { - "type": "String" - }, - "server2": { - "type": "String" - } - } - }, - "noPasswordRecoveryDescription": "Você ainda não adicionou uma forma de recuperar sua senha.", - "@noPasswordRecoveryDescription": { - "type": "String", - "placeholders": {} - }, - "noPermission": "Sem permissão", - "@noPermission": { - "type": "String", - "placeholders": {} - }, - "noRoomsFound": "Nenhuma sala encontrada…", - "@noRoomsFound": { - "type": "String", - "placeholders": {} - }, - "notifications": "Notificações", - "@notifications": { - "type": "String", - "placeholders": {} - }, - "numUsersTyping": "{count} usuários estão digitando…", - "@numUsersTyping": { - "type": "String", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "obtainingLocation": "Obtendo localização…", - "@obtainingLocation": { - "type": "String", - "placeholders": {} - }, - "ok": "Ok", - "@ok": { - "type": "String", - "placeholders": {} - }, - "onlineKeyBackupEnabled": "O backup de chaves on-line está ativado", - "@onlineKeyBackupEnabled": { - "type": "String", - "placeholders": {} - }, - "oopsPushError": "Opa! Infelizmente, um erro ocorreu ao configurar as notificações push.", - "@oopsPushError": { - "type": "String", - "placeholders": {} - }, - "oopsSomethingWentWrong": "Opa, algo deu errado…", - "@oopsSomethingWentWrong": { - "type": "String", - "placeholders": {} - }, - "openAppToReadMessages": "Abra o app para ler as mensagens", - "@openAppToReadMessages": { - "type": "String", - "placeholders": {} - }, - "openCamera": "Abrir câmera", - "@openCamera": { - "type": "String", - "placeholders": {} - }, - "openInMaps": "Abrir no mapa", - "@openInMaps": { - "type": "String", - "placeholders": {} - }, - "or": "Ou", - "@or": { - "type": "String", - "placeholders": {} - }, - "participant": "Participante", - "@participant": { - "type": "String", - "placeholders": {} - }, - "passphraseOrKey": "frase secreta ou chave de recuperação", - "@passphraseOrKey": { - "type": "String", - "placeholders": {} - }, - "password": "Senha", - "@password": { - "type": "String", - "placeholders": {} - }, - "passwordForgotten": "Esqueci a senha", - "@passwordForgotten": { - "type": "String", - "placeholders": {} - }, - "passwordHasBeenChanged": "Senha foi alterada", - "@passwordHasBeenChanged": { - "type": "String", - "placeholders": {} - }, - "passwordRecovery": "Recuperação de senha", - "@passwordRecovery": { - "type": "String", - "placeholders": {} - }, - "pin": "Fixar", - "@pin": { - "type": "String", - "placeholders": {} - }, - "pleaseChooseAPasscode": "Escolha um código", - "@pleaseChooseAPasscode": { - "type": "String", - "placeholders": {} - }, - "pleaseClickOnLink": "Clique no link do e-mail para prosseguir.", - "@pleaseClickOnLink": { - "type": "String", - "placeholders": {} - }, - "pleaseEnterYourPassword": "Digite sua senha", - "@pleaseEnterYourPassword": { - "type": "String", - "placeholders": {} - }, - "pleaseEnterYourPin": "Digite seu PIN", - "@pleaseEnterYourPin": { - "type": "String", - "placeholders": {} - }, - "pleaseEnterYourUsername": "Digite seu nome de usuário", - "@pleaseEnterYourUsername": { - "type": "String", - "placeholders": {} - }, - "pleaseFollowInstructionsOnWeb": "Siga as instruções no site e toque em avançar.", - "@pleaseFollowInstructionsOnWeb": { - "type": "String", - "placeholders": {} - }, - "privacy": "Privacidade", - "@privacy": { - "type": "String", - "placeholders": {} - }, - "publicRooms": "Salas públicas", - "@publicRooms": { - "type": "String", - "placeholders": {} - }, - "reason": "Motivo", - "@reason": { - "type": "String", - "placeholders": {} - }, - "redactedAnEvent": "{username} apagou um evento", - "@redactedAnEvent": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "redactMessage": "Apagar mensagem", - "@redactMessage": { - "type": "String", - "placeholders": {} - }, - "reject": "Recusar", - "@reject": { - "type": "String", - "placeholders": {} - }, - "rejectedTheInvitation": "{username} recusou o convite", - "@rejectedTheInvitation": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "remove": "Remover", - "@remove": { - "type": "String", - "placeholders": {} - }, - "removeAllOtherDevices": "Remover todos os outros dispositivos", - "@removeAllOtherDevices": { - "type": "String", - "placeholders": {} - }, - "unbanFromChat": "Desbanir da conversa", - "@unbanFromChat": { - "type": "String", - "placeholders": {} - }, - "removeYourAvatar": "Remover seu avatar", - "@removeYourAvatar": { - "type": "String", - "placeholders": {} - }, - "replaceRoomWithNewerVersion": "Substituir sala por uma nova versão", - "@replaceRoomWithNewerVersion": { - "type": "String", - "placeholders": {} - }, - "reply": "Responder", - "@reply": { - "type": "String", - "placeholders": {} - }, - "reportMessage": "Denunciar mensagem", - "@reportMessage": { - "type": "String", - "placeholders": {} - }, - "roomHasBeenUpgraded": "A sala foi atualizada", - "@roomHasBeenUpgraded": { - "type": "String", - "placeholders": {} - }, - "roomVersion": "Versão da sala", - "@roomVersion": { - "type": "String", - "placeholders": {} - }, - "saveFile": "Salvar arquivo", - "@saveFile": { - "type": "String", - "placeholders": {} - }, - "search": "Pesquisar", - "@search": { - "type": "String", - "placeholders": {} - }, - "security": "Segurança", - "@security": { - "type": "String", - "placeholders": {} - }, - "send": "Enviar", - "@send": { - "type": "String", - "placeholders": {} - }, - "sendAMessage": "Enviar uma mensagem", - "@sendAMessage": { - "type": "String", - "placeholders": {} - }, - "sendAsText": "Enviar como texto", - "@sendAsText": { - "type": "String" - }, - "sendAudio": "Enviar áudio", - "@sendAudio": { - "type": "String", - "placeholders": {} - }, - "sendFile": "Enviar arquivo", - "@sendFile": { - "type": "String", - "placeholders": {} - }, - "sendImage": "Enviar imagem", - "@sendImage": { - "type": "String", - "placeholders": {} - }, - "sendMessages": "Enviar mensagens", - "@sendMessages": { - "type": "String", - "placeholders": {} - }, - "sendVideo": "Enviar vídeo", - "@sendVideo": { - "type": "String", - "placeholders": {} - }, - "sentAFile": "📁 {username} enviou um arquivo", - "@sentAFile": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "sentAnAudio": "🎤 {username} enviou um áudio", - "@sentAnAudio": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "sentAPicture": "🖼️ {username} enviou uma imagem", - "@sentAPicture": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "sentASticker": "😊 {username} enviou uma figurinha", - "@sentASticker": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "sentAVideo": "🎥 {username} enviou um vídeo", - "@sentAVideo": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "sentCallInformations": "{senderName} enviou informações de chamada", - "@sentCallInformations": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "setAsCanonicalAlias": "Configurar como apelido principal", - "@setAsCanonicalAlias": { - "type": "String", - "placeholders": {} - }, - "setStatus": "Alterar estado", - "@setStatus": { - "type": "String", - "placeholders": {} - }, - "settings": "Configurações", - "@settings": { - "type": "String", - "placeholders": {} - }, - "share": "Compartilhar", - "@share": { - "type": "String", - "placeholders": {} - }, - "sharedTheLocation": "{username} compartilhou sua localização", - "@sharedTheLocation": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "shareLocation": "Compartilhar localização", - "@shareLocation": { - "type": "String", - "placeholders": {} - }, - "skip": "Pular", - "@skip": { - "type": "String", - "placeholders": {} - }, - "sourceCode": "Código-fonte", - "@sourceCode": { - "type": "String", - "placeholders": {} - }, - "spaceIsPublic": "O espaço é público", - "@spaceIsPublic": { - "type": "String", - "placeholders": {} - }, - "spaceName": "Nome do espaço", - "@spaceName": { - "type": "String", - "placeholders": {} - }, - "startedACall": "{senderName} iniciou uma chamada", - "@startedACall": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "status": "Estado", - "@status": { - "type": "String", - "placeholders": {} - }, - "statusExampleMessage": "Como vai você?", - "@statusExampleMessage": { - "type": "String", - "placeholders": {} - }, - "submit": "Enviar", - "@submit": { - "type": "String", - "placeholders": {} - }, - "synchronizingPleaseWait": "Sincronizando… Aguarde.", - "@synchronizingPleaseWait": { - "type": "String", - "placeholders": {} - }, - "systemTheme": "Sistema", - "@systemTheme": { - "type": "String", - "placeholders": {} - }, - "theyDontMatch": "Não correspondem", - "@theyDontMatch": { - "type": "String", - "placeholders": {} - }, - "theyMatch": "Correspondem", - "@theyMatch": { - "type": "String", - "placeholders": {} - }, - "tooManyRequestsWarning": "Demasiadas requisições. Por favor, tente novamente mais tarde!", - "@tooManyRequestsWarning": { - "type": "String", - "placeholders": {} - }, - "tryToSendAgain": "Tentar enviar novamente", - "@tryToSendAgain": { - "type": "String", - "placeholders": {} - }, - "unbannedUser": "{username} desbaniu {targetName}", - "@unbannedUser": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "unblockDevice": "Desbloquear dispositivo", - "@unblockDevice": { - "type": "String", - "placeholders": {} - }, - "unknownDevice": "Dispositivo desconhecido", - "@unknownDevice": { - "type": "String", - "placeholders": {} - }, - "unknownEncryptionAlgorithm": "Algoritmo de criptografia desconhecido", - "@unknownEncryptionAlgorithm": { - "type": "String", - "placeholders": {} - }, - "unknownEvent": "Evento desconhecido '{type}'", - "@unknownEvent": { - "type": "String", - "placeholders": { - "type": { - "type": "String" - } - } - }, - "unmuteChat": "Dessilenciar", - "@unmuteChat": { - "type": "String", - "placeholders": {} - }, - "unpin": "Desafixar", - "@unpin": { - "type": "String", - "placeholders": {} - }, - "userAndOthersAreTyping": "{username} e mais {count} pessoas estão digitando…", - "@userAndOthersAreTyping": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "count": { - "type": "int" - } - } - }, - "userAndUserAreTyping": "{username} e {username2} estão digitando…", - "@userAndUserAreTyping": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "username2": { - "type": "String" - } - } - }, - "userIsTyping": "{username} está digitando…", - "@userIsTyping": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "userLeftTheChat": "🚪 {username} saiu da conversa", - "@userLeftTheChat": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "userSentUnknownEvent": "{username} enviou um evento de {type}", - "@userSentUnknownEvent": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "type": { - "type": "String" - } - } - }, - "verified": "Verificado", - "@verified": { - "type": "String", - "placeholders": {} - }, - "verifyStart": "Iniciar verificação", - "@verifyStart": { - "type": "String", - "placeholders": {} - }, - "verifySuccess": "Verificação efetivada!", - "@verifySuccess": { - "type": "String", - "placeholders": {} - }, - "verifyTitle": "Verificando outra conta", - "@verifyTitle": { - "type": "String", - "placeholders": {} - }, - "visibilityOfTheChatHistory": "Visibilidade do histórico da conversa", - "@visibilityOfTheChatHistory": { - "type": "String", - "placeholders": {} - }, - "visibleForAllParticipants": "Visível para todos os participantes", - "@visibleForAllParticipants": { - "type": "String", - "placeholders": {} - }, - "visibleForEveryone": "Visível para qualquer pessoa", - "@visibleForEveryone": { - "type": "String", - "placeholders": {} - }, - "voiceMessage": "Mensagem de voz", - "@voiceMessage": { - "type": "String", - "placeholders": {} - }, - "waitingPartnerAcceptRequest": "Esperando que a outra pessoa aceite a solicitação…", - "@waitingPartnerAcceptRequest": { - "type": "String", - "placeholders": {} - }, - "waitingPartnerEmoji": "Esperando que a outra pessoa aceite os emojis…", - "@waitingPartnerEmoji": { - "type": "String", - "placeholders": {} - }, - "waitingPartnerNumbers": "Aguardando a outra pessoa aceitar os números…", - "@waitingPartnerNumbers": { - "type": "String", - "placeholders": {} - }, - "warning": "Atenção!", - "@warning": { - "type": "String", - "placeholders": {} - }, - "weSentYouAnEmail": "Enviamos um e-mail para você", - "@weSentYouAnEmail": { - "type": "String", - "placeholders": {} - }, - "whoCanPerformWhichAction": "Quem pode desempenhar quais ações", - "@whoCanPerformWhichAction": { - "type": "String", - "placeholders": {} - }, - "whoIsAllowedToJoinThisGroup": "Quem pode entrar no grupo", - "@whoIsAllowedToJoinThisGroup": { - "type": "String", - "placeholders": {} - }, - "whyDoYouWantToReportThis": "Por que quer denunciar isto?", - "@whyDoYouWantToReportThis": { - "type": "String", - "placeholders": {} - }, - "withTheseAddressesRecoveryDescription": "Você pode recuperar a sua senha com estes endereços.", - "@withTheseAddressesRecoveryDescription": { - "type": "String", - "placeholders": {} - }, - "writeAMessage": "Digite sua mensagem…", - "@writeAMessage": { - "type": "String", - "placeholders": {} - }, - "yes": "Sim", - "@yes": { - "type": "String", - "placeholders": {} - }, - "you": "Você", - "@you": { - "type": "String", - "placeholders": {} - }, - "youAreNoLongerParticipatingInThisChat": "Você não está mais participando desta conversa", - "@youAreNoLongerParticipatingInThisChat": { - "type": "String", - "placeholders": {} - }, - "youHaveBeenBannedFromThisChat": "Você foi banido desta conversa", - "@youHaveBeenBannedFromThisChat": { - "type": "String", - "placeholders": {} - }, - "yourPublicKey": "Sua chave pública", - "@yourPublicKey": { - "type": "String", - "placeholders": {} - }, - "oneClientLoggedOut": "Um dos seus clientes foi desconectado", - "addAccount": "Adicionar conta", - "unverified": "Não verificado", - "editBundlesForAccount": "Editar coleções para esta conta", - "messageInfo": "Informações da mensagem", - "sender": "Remetente", - "removeFromSpace": "Remover do espaço", - "link": "Link", - "repeatPassword": "Repita a senha", - "addToSpace": "Adicionar ao espaço", - "sendOnEnter": "Enviar ao pressionar enter", - "commandHint_clearcache": "Limpar dados temporários", - "@commandHint_clearcache": { - "type": "String", - "description": "Usage hint for the command /clearcache" - }, - "commandHint_create": "Criar uma conversa em grupo vazia.\nUse --no-encryption para desativar a criptografia", - "@commandHint_create": { - "type": "String", - "description": "Usage hint for the command /create" - }, - "commandHint_discardsession": "Descartar sessão", - "@commandHint_discardsession": { - "type": "String", - "description": "Usage hint for the command /discardsession" - }, - "commandHint_dm": "Iniciar uma conversa direta\nUse --no-encryption para desativar a criptografia", - "@commandHint_dm": { - "type": "String", - "description": "Usage hint for the command /dm" - }, - "scanQrCode": "Ler código QR", - "addToBundle": "Adicionar à coleção", - "removeFromBundle": "Remover desta coleção", - "bundleName": "Nome da coleção", - "time": "Horário", - "openGallery": "Abrir galeria", - "markAsRead": "Marcar como lido", - "reportUser": "Denunciar usuário", - "emojis": "Emojis", - "reactedWith": "{sender} reagiu com {reaction}", - "@reactedWith": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - }, - "reaction": { - "type": "String" - } - } - }, - "confirmEventUnpin": "Tem certeza que quer desafixar o evento permanentemente?", - "pinMessage": "Fixar na sala", - "unsupportedAndroidVersion": "Versão Android sem suporte", - "unsupportedAndroidVersionLong": "Esta funcionalidade requer uma versão mais nova do Android. Verifique se há atualizações ou suporte ao LineageOS.", - "youRejectedTheInvitation": "Você rejeitou o convite", - "youBannedUser": "Você baniu {user}", - "@youBannedUser": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "youHaveWithdrawnTheInvitationFor": "Você revogou o convite para {user}", - "@youHaveWithdrawnTheInvitationFor": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "youInvitedBy": "📩 Você foi convidado por {user}", - "@youInvitedBy": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "youInvitedUser": "📩 Você convidou {user}", - "@youInvitedUser": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "youAcceptedTheInvitation": "👍 Você aceitou o convite", - "youJoinedTheChat": "Você entrou na conversa", - "youKicked": "👞 Você expulsou {user}", - "@youKicked": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "youKickedAndBanned": "🙅 Você expulsou e baniu {user}", - "@youKickedAndBanned": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "youUnbannedUser": "Você desbaniu {user}", - "@youUnbannedUser": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "cuddleContent": "{senderName} afagou você", - "@cuddleContent": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "users": "Usuários", - "confirmMatrixId": "Confirme seu ID Matrix para apagar sua conta.", - "supposedMxid": "Isto deveria ser {mxid}", - "@supposedMxid": { - "type": "String", - "placeholders": { - "mxid": { - "type": "String" - } - } - }, - "commandHint_cuddle": "Enviar um afago", - "commandHint_hug": "Enviar um abraço", - "commandHint_googly": "Enviar olhos arregalados", - "googlyEyesContent": "{senderName} enviou olhos arregalados", - "@googlyEyesContent": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "hugContent": "{senderName} abraçou você", - "@hugContent": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "commandHint_markasdm": "Marcar como sala de mensagens diretas para o ID Matrix fornecido", - "commandHint_markasgroup": "Marcar como grupo", - "hydrate": "Restaurar a partir de um arquivo de backup", - "storeInAndroidKeystore": "Guardar no cofre do Android (KeyStore)", - "storeInAppleKeyChain": "Guardar no chaveiro da Apple", - "storeSecurlyOnThisDevice": "Guardar de modo seguro neste dispositivo", - "user": "Usuário", - "custom": "Personalizado", - "newSpace": "Novo espaço", - "newCanal": "Novo canal", - "newMural": "Novo mural", - "countFiles": "{count} arquivos", - "@countFiles": { - "placeholders": { - "count": { - "type": "int" - } - } - }, - "doNotShowAgain": "Não mostrar novamente", - "dehydrate": "Exportar sessão e apagar dispositivo", - "dehydrateWarning": "Esta ação não pode ser desfeita. Certifique-se de que o arquivo de backup está guardado e seguro.", - "whyIsThisMessageEncrypted": "Por que não consigo ler esta mensagem?", - "noKeyForThisMessage": "Isto pode ocorrer caso a mensagem tenha sido enviada antes de você ter se conectado à sua conta com este dispositivo.\n\nTambém é possível que o remetente tenha bloqueado o seu dispositivo ou ocorreu algum problema com a conexão.\n\nVocê consegue ler as mensagens em outra sessão? Então, pode transferir as mensagens de lá! Vá em Configurações > Dispositivos e confira se os dispositivos verificaram um ao outro. Quando abrir a sala da próxima vez e ambas as sessões estiverem abertas, as chaves serão transmitidas automaticamente.\n\nNão gostaria de perder suas chaves ao desconectar ou trocar de dispositivos? Certifique-se que o backup de conversas esteja ativado nas configurações.", - "notAnImage": "Não é um arquivo de imagem.", - "importNow": "Importar agora", - "importEmojis": "Importar emojis", - "importFromZipFile": "Importar de arquivo .zip", - "sendTypingNotifications": "Enviar indicadores de digitação", - "exportEmotePack": "Exportar pacote de emojis como .zip", - "replace": "Substituir", - "jumpToLastReadMessage": "Pular para a última mensagem lida", - "reportErrorDescription": "😭 Ah, não. Algo deu errado. Se quiser, pode relatar isto aos desenvolvedores.", - "setColorTheme": "Aplicar paleta de cor:", - "banUserDescription": "O usuário será banido da conversa e não poderá participar novamente até que sejam desbanidos.", - "removeDevicesDescription": "Você será desconectado deste dispositivo e não poderá mais receber mensagens.", - "tryAgain": "Tentar novamente", - "unbanUserDescription": "O usuário poderá entrar novamente na conversa, caso tente.", - "messagesStyle": "Mensagens:", - "newSpaceDescription": "Os espaços permitem que você consolide suas conversas e construa comunidades públicas ou privadas.", - "newCanalDescription": "O canal é uma sala onde somente administradores podem publicar. Use-o para transmitir comunicados oficiais.", - "newMuralDescription": "O mural é um quadro de avisos onde todos podem publicar. Use-o para deixar recados para a sua comunidade.", - "chatDescription": "Descrição da conversa", - "encryptThisChat": "Criptografar esta conversa", - "reopenChat": "Reabrir conversa", - "pushNotificationsNotAvailable": "Notificações push não estão disponíveis", - "invalidServerName": "Nome do servidor inválido", - "chatPermissions": "Permissões da conversa", - "makeAdminDescription": "Assim que promover este usuário a administrador, não poderá desfazer isto e ele terá as mesmas permissões que você.", - "setChatDescription": "Configurar descrição da conversa", - "noOtherDevicesFound": "Nenhum outro dispositivo encontrado", - "redactedBy": "Apagado por {username}", - "@redactedBy": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "fileIsTooBigForServer": "Não foi possível enviar! O servidor suporta anexos somente até {max}.", - "readUpToHere": "Lido até aqui", - "optionalRedactReason": "(Opcional) Motivo para apagar esta mensagem.", - "archiveRoomDescription": "A conversa será movida para o arquivo. Outros usuários verão que você deixou a conversa.", - "redactedByBecause": "Apagado por {username}, pois: \"{reason}\"", - "@redactedByBecause": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "reason": { - "type": "String" - } - } - }, - "fileHasBeenSavedAt": "Arquivo salvo em {path}", - "@fileHasBeenSavedAt": { - "type": "String", - "placeholders": { - "path": { - "type": "String" - } - } - }, - "redactMessageDescription": "A mensagem será apagada para todos os participantes desta conversa. Isto não poderá ser desfeito.", - "invalidInput": "Entrada inválida!", - "report": "relatar", - "hasKnocked": "🚪 {user} bateu na porta", - "@hasKnocked": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "openLinkInBrowser": "Abrir link no navegador", - "disableEncryptionWarning": "Por razões de segurança, não é possível desativar a criptografada uma vez ativada.", - "wrongPinEntered": "PIN incorreto! Tente novamente em {seconds} segundos...", - "@wrongPinEntered": { - "type": "String", - "placeholders": { - "seconds": { - "type": "int" - } - } - }, - "inviteGroupChat": "📨 Convite para conversa em grupo", - "wasDirectChatDisplayName": "Conversa vazia (era {oldDisplayName})", - "@wasDirectChatDisplayName": { - "type": "String", - "placeholders": { - "oldDisplayName": { - "type": "String" - } - } - }, - "noChatDescriptionYet": "Nenhuma descrição para a conversa foi criada ainda.", - "learnMore": "Saiba mais", - "chatDescriptionHasBeenChanged": "Descrição da conversa alterada", - "roomUpgradeDescription": "A conversa será recriada com a nova versão de sala. Todos participantes será notificados e terão que migrar para a nova sala. Você pode encontrar mais informações sobre versões de sala em https://spec.matrix.org/latest/room/", - "pleaseEnterANumber": "Digite um número maior que 0", - "jump": "Pular", - "sorryThatsNotPossible": "Desculpe... isto não é possível", - "shareInviteLink": "Compartilhar link de convite", - "emoteKeyboardNoRecents": "Emojis recentes aparecem aqui...", - "@emoteKeyboardNoRecents": { - "type": "String", - "placeholders": {} - }, - "createGroup": "Criar grupo", - "canal": "Canal", - "canalIsPublic": "O canal é público", - "canalName": "Nome do canal", - "canalOnlyAdminCanPost": "Somente administradores do canal podem publicar nesta sala", - "createCanalAndInviteUsers": "Criar um canal e convidar pessoas", - "createMuralAndInviteUsers": "Criar um mural e convidar pessoas", - "mural": "Mural", - "muralIsPublic": "O mural é público", - "muralName": "Nome do mural", - "noBackupWarning": "Atenção! Se não ativar o backup de conversas, você perderá acesso a suas mensagens criptografadas. É altamente recomendável ativar o backup antes de sair.", - "kickUserDescription": "O usuário foi expulso da conversa, mas não banido. Em conversas públicas, o usuário pode entrar novamente a qualquer momento.", - "invite": "Convidar", - "blockListDescription": "Você pode bloquear usuários que estejam te perturbando. Você não receberá mensagens ou convites de usuários na sua lista pessoal de bloqueios.", - "createGroupAndInviteUsers": "Criar um grupo e convidar pessoas", - "thisDevice": "Este dispositivo:", - "publicSpaces": "Espaços públicos", - "blockedUsers": "Usuários bloqueados", - "passwordIsWrong": "A senha digitada está incorreta", - "pleaseEnterYourCurrentPassword": "Digite sua senha atual", - "groupCanBeFoundViaSearch": "Grupos podem ser encontrados por pesquisa", - "noUsersFoundWithQuery": "Infelizmente, não foi encontrado usuário com \"{query}\". Verifique se digitou corretamente.", - "@noUsersFoundWithQuery": { - "type": "String", - "placeholders": { - "query": { - "type": "String" - } - } - }, - "block": "Bloquear", - "nothingFound": "Nada foi encontrado...", - "yourGlobalUserIdIs": "Seu ID global de usuário é: ", - "newPassword": "Nova senha", - "passwordsDoNotMatch": "As senhas não correspondem", - "commandHint_sendraw": "Enviar JSON puro", - "wrongRecoveryKey": "Desculpe... esta não parece ser a chave de recuperação correta.", - "select": "Selecionar", - "pleaseChooseAStrongPassword": "Escolha uma senha forte", - "blockUsername": "Ignorar nome de usuário", - "addChatOrSubSpace": "Adicionar conversa ou subespaço", - "groupName": "Nome do grupo", - "leaveEmptyToClearStatus": "Deixe em branco para limpar seu estado.", - "joinSpace": "Entrar no espaço", - "searchForUsers": "Pesquisar por @usuários...", - "databaseMigrationTitle": "O banco de dados está otimizado", - "searchChatsRooms": "Pesquisar por #conversas, @usuários...", - "databaseMigrationBody": "Aguarde. Isto pode demorar um pouco.", - "formattedMessagesDescription": "Exibir conteúdo de mensagem rico, como texto em negrito usando markdown.", - "verifyOtherUser": "🔐 Verificar outro usuário", - "verifyOtherDevice": "🔐 Verificar outro dispositivo", - "acceptedKeyVerification": "{sender} aceitou a verificação de chaves", - "@acceptedKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "startedKeyVerification": "{sender} iniciou a verificação de chaves", - "@startedKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "initAppError": "Ocorreu um erro enquanto o app era iniciado", - "restoreSessionBody": "O app tentará agora restaurar sua sessão a partir do backup. Relate isto ao desenvolvedor em {url}. A mensagem de erro é: {error}", - "@restoreSessionBody": { - "type": "String", - "placeholders": { - "url": { - "type": "String" - }, - "error": { - "type": "String" - } - } - }, - "sendReadReceipts": "Enviar recibos de leitura", - "sendTypingNotificationsDescription": "Outros participantes nesta conversa podem ver quando você está digitando uma nova mensagem.", - "formattedMessages": "Mensagens formatadas", - "commandHint_ignore": "Ignorar o ID Matrix especificado", - "commandHint_unignore": "Parar de ignorar o ID Matrix especificado", - "sessionLostBody": "Sua sessão foi desconectada. Relate este ao desenvolvedor em {url}. A mensagem de erro é: {error}", - "@sessionLostBody": { - "type": "String", - "placeholders": { - "url": { - "type": "String" - }, - "error": { - "type": "String" - } - } - }, - "sendReadReceiptsDescription": "Outros participantes nesta conversa podem ver quando você tiver lido uma mensagem.", - "verifyOtherUserDescription": "Se você verificar outro usuário, você terá certeza que você conhece com quem está conversando. 💪\n\nAo iniciar uma verificação, você e o outro usuário receberão um pop-up no app. Então vocês receberão uma série de emojis ou números para comparar um com o outro.\n\nA melhor maneira de fazer este procedimento é se encontrar pessoalmente ou através de uma chamada de vídeo. 👭", - "requestedKeyVerification": "{sender} solicitou uma verificação de chaves", - "@requestedKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "verifyOtherDeviceDescription": "Ao verificar outro dispositivo, os dispositivos poderão trocar chaves, aumentando sua segurança. 💪 Ao iniciar a verificação, um pop-up aparecerá no app em ambos os aparelhos. Então você verá uma série de emojis ou números que você terá que comparar um com o outro. É melhor fazer esse procedimento com ambos os dispositivos em mãos antes de começar a verificação. 🤳", - "canceledKeyVerification": "{sender} cancelou a verificação de chaves", - "@canceledKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "isReadyForKeyVerification": "{sender} está pronto para a verificação de chaves", - "@isReadyForKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "completedKeyVerification": "{sender} concluiu a verificação de chaves", - "@completedKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "stickers": "Figurinhas", - "discover": "Explorar", - "incomingMessages": "Mensagens recebidas", - "unreadChatsInApp": "{appname}: {unread} conversas não lidas", - "@unreadChatsInApp": { - "type": "String", - "placeholders": { - "appname": { - "type": "String" - }, - "unread": { - "type": "String" - } - } - }, - "appLockDescription": "Bloquear o app com um código PIN quando não estiver usando", - "accessAndVisibilityDescription": "Quem pode entrar nesta conversa e como a conversa pode ser descoberta.", - "calls": "Chamadas", - "customEmojisAndStickers": "Emojis e stickers customizados", - "customEmojisAndStickersBody": "Adicionar ou compartilhar emojis ou stickers customizados que podem ser usados em qualquer conversa.", - "hideRedactedMessages": "Ocultar mensagens apagadas", - "hideRedactedMessagesBody": "Se alguém apagar uma mensagem, esta mensagem não será mais visível na conversa.", - "hideInvalidOrUnknownMessageFormats": "Ocultar formatos de mensagem inválidos ou desconhecidos", - "usersMustKnock": "Usuários devem bater na porta", - "noOneCanJoin": "Ninguém pode entrar", - "knocking": "Batendo na porta", - "chatCanBeDiscoveredViaSearchOnServer": "A conversa pode ser descoberta por pesquisa em {server}", - "@chatCanBeDiscoveredViaSearchOnServer": { - "type": "String", - "placeholders": { - "server": { - "type": "String" - } - } - }, - "publicChatAddresses": "Endereços de conversas públicas", - "thereAreCountUsersBlocked": "Nesse momento, há {count} usuários bloqueados.", - "@thereAreCountUsersBlocked": { - "type": "String", - "count": {} - }, - "globalChatId": "ID global de conversa", - "accessAndVisibility": "Acesso e visibilidade", - "passwordRecoverySettings": "Configurações de recuperação de senha", - "noDatabaseEncryption": "A criptografia do banco de dados não é suportada nesta plataforma", - "createNewAddress": "Criar um novo endereço", - "knock": "Bater na porta", - "searchIn": "Procurar na conversa {chat}...", - "@searchIn": { - "type": "String", - "placeholders": { - "chat": { - "type": "String" - } - } - }, - "searchMore": "Pesquisar mais...", - "gallery": "Galeria", - "files": "Arquivos", - "more": "Mais", - "deletePushRuleCanNotBeUndone": "Se você apagar esta configuração de notificação, isso não poderá ser desfeito.", - "shareKeysWith": "Compartilhar chaves com...", - "contentNotificationSettings": "Configurações de notificações de conteúdo", - "generalNotificationSettings": "Configurações de notificações gerais", - "notificationRuleContainsUserNameDescription": "Notifica o usuário quando a mensagem contém o seu nome de usuário.", - "notificationRuleMaster": "Silenciar todas as notificações", - "notificationRuleMasterDescription": "Sobrescreve todas as outras regras e desativa todas as notificações.", - "notificationRuleContainsDisplayName": "Contém o nome de exibição", - "notificationRuleRoomnotif": "Notificação de sala", - "notificationRuleIsRoomMentionDescription": "Notifica o usuário quando há uma menção de sala.", - "notificationRuleRoomnotifDescription": "Notifica o usuário quando uma mensagem contém '@room'.", - "notificationRuleTombstone": "Morte", - "notificationRuleReaction": "Reação", - "notificationRuleSuppressEditsDescription": "Omite notificações de mensagens editadas.", - "notificationRuleEncryptedRoomOneToOneDescription": "Notifica o usuário de mensagens em salas criptografas de 2 pessoas.", - "notificationRuleRoomOneToOne": "Sala de 2 pessoas", - "notificationRuleMessageDescription": "Notifica o usuário de mensagens gerais.", - "notificationRuleEncrypted": "Criptografado", - "unknownPushRule": "Regra de push desconhecida '{rule}'", - "@unknownPushRule": { - "type": "String", - "placeholders": { - "rule": { - "type": "String" - } - } - }, - "notificationRuleServerAclDescription": "Omite notificações de eventos de ACL de servidor.", - "unread": "Não lido", - "changeTheCanonicalRoomAlias": "Alterar o endereço público principal da conversa", - "doesNotSeemToBeAValidHomeserver": "Não parece ser um servidor compatível. URL errada?", - "website": "Site", - "compress": "Comprimir", - "invalidUrl": "URL inválida", - "appWantsToUseForLoginDescription": "Aqui, você permite que o app e o site compartilhem informações sobre você.", - "notificationRuleMemberEvent": "Evento de membro", - "crossVerifiedDevicesIfEnabled": "Dispositivos verificados por ambos se ativado", - "countInvited": "{count} convidados", - "@countInvited": { - "type": "String", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "checkList": "Lista de tarefas", - "synchronizingPleaseWaitCounter": " Sincronizando… ({percentage}%)", - "@synchronizingPleaseWaitCounter": { - "type": "String", - "placeholders": { - "percentage": { - "type": "String" - } - } - }, - "markAsUnread": "Marcar como não lido", - "updateInstalled": "🎉 Atualização da versão {version} instalada!", - "@updateInstalled": { - "type": "String", - "placeholders": { - "version": { - "type": "String" - } - } - }, - "changelog": "Registro de mudanças", - "sendCanceled": "Envio cancelado", - "unableToJoinChat": "Não foi possível entrar na conversa. Talvez a outra pessoa já fechou a conversa.", - "noticeChatBackupDeviceVerification": "Observação: Quando você conecta todos os seus dispositivos ao backup de conversas, eles são verificados automaticamente.", - "continueText": "Continuar", - "blur": "Borrar:", - "opacity": "Opacidade:", - "setWallpaper": "Configurar plano de fundo", - "noContactInformationProvided": "O servidor não fornece nenhuma informação válida de contato", - "contactServerAdmin": "Contatar o administrador do servidor", - "contactServerSecurity": "Contatar a segurança do servidor", - "supportPage": "Página de ajuda", - "italicText": "Texto em itálico", - "strikeThrough": "Risco", - "appWantsToUseForLogin": "Usar '{server}' para conectar", - "@appWantsToUseForLogin": { - "type": "String", - "placeholders": { - "server": { - "type": "String" - } - } - }, - "open": "Abrir", - "roomNotificationSettings": "Configurações de notificações de sala", - "userSpecificNotificationSettings": "Configurações de notificações específicas ao usuário", - "otherNotificationSettings": "Configurações de outras notificações", - "notificationRuleContainsUserName": "Contém o nome de usuário", - "notificationRuleSuppressNotices": "Omitir mensagens automáticas", - "notificationRuleInviteForMe": "Convite para mim", - "notificationRuleMemberEventDescription": "Omite todas as notificações de eventos de membro.", - "notificationRuleIsUserMention": "Menção de usuário", - "notificationRuleContainsDisplayNameDescription": "Notifica o usuário quando uma mensagem contém seu nome de exibição.", - "notificationRuleCall": "Chamada", - "sentVoiceMessage": "🎙️ {duration} - Mensagem de voz de {sender}", - "@sentVoiceMessage": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - }, - "duration": { - "type": "String" - } - } - }, - "crossVerifiedDevices": "Dispositivos verificados por ambos", - "takeAPhoto": "Tirar uma foto", - "youHaveKnocked": "Bateram na sua porta", - "changeGeneralChatSettings": "Alterar configurações gerais de conversa", - "inviteOtherUsers": "Convidar outros usuários para esta conversa", - "adminLevel": "{level} - Administrador", - "@adminLevel": { - "type": "String", - "placeholders": { - "level": { - "type": "int" - } - } - }, - "changeTheChatPermissions": "Alterar as permissões da conversa", - "changeTheVisibilityOfChatHistory": "Alterar a visibilidade do histórico de conversa", - "sendImages": "Enviar {count} imagens", - "@sendImages": { - "type": "String", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "goToSpace": "Ir ao espaço: {space}", - "@goToSpace": { - "type": "String", - "space": {} - }, - "loginWithMatrixId": "Conectar com ID Matrix", - "calculatingFileSize": "Calculando o tamanho do arquivo...", - "oneOfYourDevicesIsNotVerified": "Um dos seus dispositivos não está verificado", - "manageAccount": "Gerenciar conta", - "newChatRequest": "📩 Nova solicitação de conversa", - "userLevel": "{level} - Usuário", - "@userLevel": { - "type": "String", - "placeholders": { - "level": { - "type": "int" - } - } - }, - "enterNewChat": "Abrir a conversa nova", - "notificationRuleSuppressNoticesDescription": "Omite notificações de clientes automatizados, como bots.", - "notificationRuleInviteForMeDescription": "Notifica o usuário quando for convidado para uma sala.", - "approve": "Aprovar", - "notificationRuleEncryptedRoomOneToOne": "Sala criptografada de 2 pessoas", - "pleaseWaitUntilInvited": "Aguarde até que alguém da sala te convide.", - "waitingForServer": "Aguardando o servidor...", - "notificationRuleEncryptedDescription": "Notifica o usuário de mensagens em salas criptografadas.", - "sendRoomNotifications": "Enviar notificações de @room", - "notificationRuleRoomServerAclDescription": "Omite notificações de listas de controle de acesso de servidor de uma sala (ACL).", - "notificationRuleIsUserMentionDescription": "Notifica o usuário quando é mencionado diretamente em uma mensagem.", - "notificationRuleSuppressEdits": "Omitir edições", - "shareKeysWithDescription": "Quais dispositivos devem ser confiados para que possam ler suas mensagens em conversas criptografas?", - "allDevices": "Todos os dispositivos", - "aboutHomeserver": "Sobre {homeserver}", - "@aboutHomeserver": { - "type": "String", - "placeholders": { - "homeserver": { - "type": "String" - } - } - }, - "swipeRightToLeftToReply": "Deslizar da direita pra esquerda para responder", - "verifiedDevicesOnly": "Somente dispositivos verificados", - "boldText": "Texto em negrito", - "recordAVideo": "Gravar um vídeo", - "optionalMessage": "(Opcional) mensagem...", - "notSupportedOnThisDevice": "Não há suporte neste dispositivo", - "commandHint_roomupgrade": "Atualizar esta sala para a versão de sala especificada", - "noMoreChatsFound": "Mais nenhuma conversa foi encontrada...", - "noChatsFoundHere": "Nenhuma conversa encontrada aqui ainda. Inicie uma nova conversa com alguém usando o botão abaixo. ⤵️", - "space": "Espaço", - "moderatorLevel": "{level} - Moderador", - "@moderatorLevel": { - "type": "String", - "placeholders": { - "level": { - "type": "int" - } - } - }, - "changeTheDescriptionOfTheGroup": "Alterar a descrição da conversa", - "chatPermissionsDescription": "Configurar qual o nível de poder é necessário para certas ações nesta conversa. Os níveis de poder 0, 50, e 100 são normalmente para representar usuários, moderadores, e administradores, mas qualquer configuração é possível.", - "serverInformation": "Informações do servidor:", - "name": "Nome", - "version": "Versão", - "pleaseFillOut": "Preencha", - "addLink": "Adicionar link", - "notificationRuleRoomServerAcl": "ACL de servidores de sala", - "notificationRuleCallDescription": "Notifica o usuário de chamadas.", - "notificationRuleRoomOneToOneDescription": "Notifica o usuário de mensagens em salas de duas pessoas.", - "notificationRuleMessage": "Mensagem", - "notificationRuleJitsi": "Jitsi", - "notificationRuleJitsiDescription": "Notifica o usuário de eventos de widget do Jitsi.", - "notificationRuleServerAcl": "Omitir eventos de ACL de servidor", - "notificationRuleIsRoomMention": "Menção de sala", - "notificationRuleTombstoneDescription": "Notifica o usuário de mensagens de desativação de salas.", - "notificationRuleReactionDescription": "Omite notificações de reações.", - "commandHint_logout": "Desconecte-se do seu dispositivo atual", - "commandHint_logoutall": "Desconecte-se de todos os dispositivos ativos", - "displayNavigationRail": "Mostrar trilha de navegação em dispositivo móvel", - "previous": "Anterior", - "otherPartyNotLoggedIn": "A outra pessoa não tem nenhum dispositivo conectado no momento e portanto não consegue receber mensagens!", - "customReaction": "Reação personalizada", - "moreEvents": "Mais eventos", - "declineInvitation": "Rejeitar convite", - "noMessagesYet": "Nenhuma mensagem ainda", - "longPressToRecordVoiceMessage": "Segure para gravar uma mensagem de voz.", - "pause": "Pausar", - "resume": "Retomar", - "removeFromSpaceDescription": "A conversa será removida do espaço mas ainda aparecerá na sua lista de conversas.", - "countChats": "{chats} conversas", - "@countChats": { - "type": "String", - "placeholders": { - "chats": { - "type": "int" - } - } - }, - "spaceMemberOf": "Membro do espaço de {spaces}", - "@spaceMemberOf": { - "type": "String", - "placeholders": { - "spaces": { - "type": "String" - } - } - }, - "spaceMemberOfCanKnock": "Membro do espaço de {spaces} pode bater na porta", - "@spaceMemberOfCanKnock": { - "type": "String", - "placeholders": { - "spaces": { - "type": "String" - } - } - }, - "startPoll": "Abrir enquete", - "endPoll": "Fechar enquete", - "answersVisible": "Respostas visíveis", - "pollQuestion": "Questão da enquete", - "answerOption": "Opção de resposta", - "addAnswerOption": "Adicionar opção de resposta", - "allowMultipleAnswers": "Permitir várias respostas", - "pollHasBeenEnded": "A enquete terminou", - "countVotes": "{count, plural, =1{Um voto} other{{count} votos}}", - "@countVotes": { - "type": "int", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "answersWillBeVisibleWhenPollHasEnded": "As respostas ficarão visíveis quando a enquete terminar", - "replyInThread": "Responder no tópico", - "countReplies": "{count, plural, =1{Uma resposta} other{{count} respostas}}", - "@countReplies": { - "type": "int", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "thread": "Tópico", - "backToMainChat": "Voltar à conversa principal", - "saveChanges": "Salvar alterações", - "createSticker": "Criar figurinha ou emoji", - "useAsSticker": "Usar como figurinha", - "useAsEmoji": "Usar como emoji", - "stickerPackNameAlreadyExists": "O nome do pacote de figurinhas já existe", - "newStickerPack": "Novo pacote de figurinhas", - "stickerPackName": "Nome do pacote de figurinhas", - "attribution": "Créditos", - "skipChatBackup": "Pular backup de conversas", - "skipChatBackupWarning": "Tem certeza? Se não ativar o backup de conversas, você pode perder o acesso às suas mensagens se trocar de dispositivo.", - "changedTheChatDescription": "{username} alterou a descrição da conversa", - "changedTheChatName": "{username} alterou o nome da conversa", - "versionWithNumber": "Versão: {version}", - "@versionWithNumber": { - "type": "String", - "placeholders": { - "version": { - "type": "String" - } - } - }, - "@mute": { - "description": "This should be a very short string because there is not much space in the button!" - }, - "@chatSearchedUntil": { - "type": "String", - "placeholders": { - "time": { - "type": "String" - } - } - }, - "channels": "Canais", - "@channels": { - "type": "String", - "placeholders": {} - }, - "spaces": "Espaços", - "@spaces": { - "type": "String", - "placeholders": {} - }, - "murals": "Murais", - "@murals": { - "type": "String", - "placeholders": {} - }, - "muralsComingSoon": "Murais em breve", - "@muralsComingSoon": { - "type": "String", - "placeholders": {} - }, - "noChannelsFound": "Nenhum canal por aqui", - "@noChannelsFound": { - "type": "String", - "placeholders": {} - }, - "noSpacesFound": "Nenhum espaço por aqui", - "@noSpacesFound": { - "type": "String", - "placeholders": {} - }, - "noMuralsFound": "Nenhum mural por aqui", - "@noMuralsFound": { - "type": "String", - "placeholders": {} - }, - "selectASpace": "Selecione um espaço", - "@selectASpace": { - "type": "String", - "placeholders": {} - }, - "newPost": "Nova publicação", - "@newPost": { - "type": "String", - "placeholders": {} - }, - "postPhoto": "Postar foto", - "@postPhoto": { - "type": "String", - "placeholders": {} - }, - "postVideo": "Postar vídeo", - "@postVideo": { - "type": "String", - "placeholders": {} - }, - "noPostsYet": "Nenhuma publicação ainda. Compartilhe a primeira foto ou vídeo!", - "@noPostsYet": { - "type": "String", - "placeholders": {} - }, - "noCommentsYet": "Nenhum comentário ainda. Seja o primeiro a comentar!", - "@noCommentsYet": { - "type": "String", - "placeholders": {} - }, - "like": "Curtir", - "@like": { - "type": "String", - "placeholders": {} - }, - "unlike": "Descurtir", - "@unlike": { - "type": "String", - "placeholders": {} - }, - "editCaption": "Editar legenda", - "@editCaption": { - "type": "String", - "placeholders": {} - }, - "captionHint": "Legenda", - "@captionHint": { - "type": "String", - "placeholders": {} + } } -} \ No newline at end of file + }, + "account": "Conta", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} ativou a criptografia de ponta-a-ponta", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "Adicionar e-mail", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "admin": "Admin", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "cognome", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Tudo", + "@all": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} atendeu à chamada", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Qualquer pessoa pode entrar", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "Bloqueio do app", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "archive": "Arquivo", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Visitantes podem entrar", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Tem certeza?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Tem certeza que deseja se desconectar?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Para poder validar a outra pessoa, digite sua frase secreta ou chave de recuperação.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Aceitar esta solicitação de verificação de {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "autoplayImages": "Reproduzir automaticamente figurinhas animadas e emojis", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "badServerLoginTypesException": "O servidor suporta os tipos de entrada/login:\n{serverVersions}\nMas este app suporta apenas:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "banFromChat": "Banir da conversa", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Banidos", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} baniu {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Bloquear dispositivo", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "Bloqueado", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "Cancelar", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "Não foi possível abrir a URI {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changeDeviceName": "Alterar o nome do dispositivo", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} alterou o avatar da conversa", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} alterou as permissões na conversa", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} mudou o seu nome de exibição para: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} alterou as regras de acesso dos visitantes", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} alterou as regras de acesso dos visitantes para: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} alterou a visibilidade do histórico", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} alterou a visibilidade do histórico para: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} alterou as regras de entrada", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} alterou as regras de entrada para: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} alterou seu avatar", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} alterou os apelidos da sala", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} alterou o link de convite", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Alterar a senha", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Alterar o servidor", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Alterar o tema", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Alterar o nome do grupo", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Alterar seu avatar", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "A criptografia foi corrompida", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Conversar", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Backup de conversas", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Detalhes da conversa", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Conversas", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Escolha uma senha forte", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Limpar arquivo", + "close": "Fechar", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "Banir o usuário especificado desta sala", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_html": "Enviar mensagem formatada em HTML", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Convidar o usuário especificado para esta sala", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "Entrar na sala especificada", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "Remover o usuário especificado da sala", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "Sair desta sala", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "Descrever você mesmo", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_myroomavatar": "Configurar sua imagem para esta sala (via mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "Configurar seu nome de exibição para esta sala", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "Determinar o nível de poderes do usuário especificado (padrão: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "Enviar mensagem sem formatação", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "Enviar uma resposta como reação", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_send": "Enviar mensagem", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_unban": "Desbanir o usuário especificado desta sala", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandInvalid": "Comando inválido", + "@commandInvalid": { + "type": "String" + }, + "commandMissing": "{command} não é um comando.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "compareEmojiMatch": "Compare os emojis", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Compare os números", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Configurar conversa", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "O contato foi convidado ao grupo", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "O conteúdo foi denunciado para os administradores do servidor", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Copiado para a área de transferência", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Copiar", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Copiar para a área de transferência", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Não foi possível descriptografar a mensagem: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count} participantes", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Criar", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} criou a conversa", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "createNewSpace": "Novo espaço", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "Ativo", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Escuro", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date} às {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Isto desativará a sua conta. Isto é irreversível! Tem certeza?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Nível de permissão padrão para usuários novos", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "Apagar", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Apagar conta", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Apagar mensagem", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Dispositivos", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Conversas diretas", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "O nome de exibição foi alterado", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Baixar arquivo", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "Editar", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Editar servidores bloqueados", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Editar nome de exibição", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Editar apelidos da sala", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Editar o avatar da sala", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Emoji já existe!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Código emoji inválido!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Código Emoji", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Conversa vazia", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Habilitar globalmente o pacote de emoji", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Ativar criptografia", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Você não poderá desativar a criptografia posteriormente. Tem certeza?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Criptografado", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Criptografia", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "A criptografia não está ativada", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} finalizou a chamada", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Digite um endereço de e-mail", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Erro ao obter localização: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "fontSize": "Tamanho da fonte", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "Encaminhar", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Desde que entrou", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Desde o convite", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Grupo", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "O grupo é público", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "Grupos", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Grupo com {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Visitantes são proibidos", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Visitantes podem entrar", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} revogou o convite para {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Ajuda", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Ocultar eventos desconhecidos", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignore": "Ignorar", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Usuários ignorados", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Eu cliquei no link", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Frase secreta ou chave de recuperação incorreta", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Convidar contato", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Convidar contato para {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "Convidado", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username} convidou {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Apenas usuários convidados", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} convidou você para o FluffyChat.\n1. Visite fluffychat.im e instale o aplicativo\n2. Entre ou crie uma conta\n3. Abra o link do convite:\n{link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "está digitando…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} entrou na conversa", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Entrar na sala", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username} expulsou {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} expulsou e baniu {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Expulsar da conversa", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Última vez ativo: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Sair", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Saiu da conversa", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Claro", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Carregar mais {count} participantes", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "Carregando... Aguarde.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Carregar mais…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "Os serviços de localização estão desativados. Ative-os para compartilhar sua localização.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "Permissão de localização bloqueada. Conceda as permissões para poder compartilhar sua localização.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "login": "Conectar-se", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Conectar com {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Desconectar-se", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Mencionar", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "Mensagens", + "@messages": { + "type": "String", + "placeholders": {} + }, + "moderator": "Moderador", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Silenciar conversa", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Nova conversa", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Nova mensagem no FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Nova solicitação de verificação!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "Avançar", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "Não", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Sem conexão com o servidor", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Nenhum emoji encontrado. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Você só poderá ativar a criptografia quando a sala não for mais publicamente acessível.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "O Firebase Cloud Messaging não parece estar disponível no seu dispositivo. Para receber notificações push, recomendados que você instwl3 o ntfy. Com o ntfy outro provedor do UnifiedPush, você pode receber notificações push de um modo seguro em relação aos dados. Você pode baixar o ntfy da Play Store ou do F-Droid.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} não é um servidor matrix, usar {server2}?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "noPasswordRecoveryDescription": "Você ainda não adicionou uma forma de recuperar sua senha.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Sem permissão", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Nenhuma sala encontrada…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Notificações", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} usuários estão digitando…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "obtainingLocation": "Obtendo localização…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "ok": "Ok", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "O backup de chaves on-line está ativado", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Opa! Infelizmente, um erro ocorreu ao configurar as notificações push.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Opa, algo deu errado…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Abra o app para ler as mensagens", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Abrir câmera", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "openInMaps": "Abrir no mapa", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "or": "Ou", + "@or": { + "type": "String", + "placeholders": {} + }, + "participant": "Participante", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "frase secreta ou chave de recuperação", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Senha", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Esqueci a senha", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Senha foi alterada", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Recuperação de senha", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Fixar", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Escolha um código", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Clique no link do e-mail para prosseguir.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Digite sua senha", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Digite seu PIN", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Digite seu nome de usuário", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Siga as instruções no site e toque em avançar.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "Privacidade", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Salas públicas", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "Motivo", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} apagou um evento", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactMessage": "Apagar mensagem", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reject": "Recusar", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} recusou o convite", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Remover", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Remover todos os outros dispositivos", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Desbanir da conversa", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Remover seu avatar", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Substituir sala por uma nova versão", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "Responder", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Denunciar mensagem", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "A sala foi atualizada", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Versão da sala", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Salvar arquivo", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "search": "Pesquisar", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "Segurança", + "@security": { + "type": "String", + "placeholders": {} + }, + "send": "Enviar", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Enviar uma mensagem", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Enviar como texto", + "@sendAsText": { + "type": "String" + }, + "sendAudio": "Enviar áudio", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Enviar arquivo", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Enviar imagem", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Enviar mensagens", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Enviar vídeo", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username} enviou um arquivo", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username} enviou um áudio", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username} enviou uma imagem", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} enviou uma figurinha", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} enviou um vídeo", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} enviou informações de chamada", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setAsCanonicalAlias": "Configurar como apelido principal", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "setStatus": "Alterar estado", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Configurações", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Compartilhar", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} compartilhou sua localização", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "shareLocation": "Compartilhar localização", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "skip": "Pular", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Código-fonte", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "O espaço é público", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Nome do espaço", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} iniciou uma chamada", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "status": "Estado", + "@status": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Como vai você?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Enviar", + "@submit": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Sincronizando… Aguarde.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Sistema", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Não correspondem", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Correspondem", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Demasiadas requisições. Por favor, tente novamente mais tarde!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Tentar enviar novamente", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} desbaniu {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Desbloquear dispositivo", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Dispositivo desconhecido", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Algoritmo de criptografia desconhecido", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Evento desconhecido '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Dessilenciar", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Desafixar", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} e mais {count} pessoas estão digitando…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} e {username2} estão digitando…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} está digitando…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪 {username} saiu da conversa", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} enviou um evento de {type}", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verified": "Verificado", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Iniciar verificação", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Verificação efetivada!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Verificando outra conta", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Visibilidade do histórico da conversa", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Visível para todos os participantes", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Visível para qualquer pessoa", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Mensagem de voz", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Esperando que a outra pessoa aceite a solicitação…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Esperando que a outra pessoa aceite os emojis…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Aguardando a outra pessoa aceitar os números…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Atenção!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Enviamos um e-mail para você", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Quem pode desempenhar quais ações", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Quem pode entrar no grupo", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Por que quer denunciar isto?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Você pode recuperar a sua senha com estes endereços.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Digite sua mensagem…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Sim", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Você", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Você não está mais participando desta conversa", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Você foi banido desta conversa", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Sua chave pública", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "oneClientLoggedOut": "Um dos seus clientes foi desconectado", + "addAccount": "Adicionar conta", + "unverified": "Não verificado", + "editBundlesForAccount": "Editar coleções para esta conta", + "messageInfo": "Informações da mensagem", + "sender": "Remetente", + "removeFromSpace": "Remover do espaço", + "link": "Link", + "repeatPassword": "Repita a senha", + "addToSpace": "Adicionar ao espaço", + "sendOnEnter": "Enviar ao pressionar enter", + "commandHint_clearcache": "Limpar dados temporários", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_create": "Criar uma conversa em grupo vazia.\nUse --no-encryption para desativar a criptografia", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_discardsession": "Descartar sessão", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_dm": "Iniciar uma conversa direta\nUse --no-encryption para desativar a criptografia", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "scanQrCode": "Ler código QR", + "addToBundle": "Adicionar à coleção", + "removeFromBundle": "Remover desta coleção", + "bundleName": "Nome da coleção", + "time": "Horário", + "openGallery": "Abrir galeria", + "markAsRead": "Marcar como lido", + "reportUser": "Denunciar usuário", + "emojis": "Emojis", + "reactedWith": "{sender} reagiu com {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "confirmEventUnpin": "Tem certeza que quer desafixar o evento permanentemente?", + "pinMessage": "Fixar na sala", + "unsupportedAndroidVersion": "Versão Android sem suporte", + "unsupportedAndroidVersionLong": "Esta funcionalidade requer uma versão mais nova do Android. Verifique se há atualizações ou suporte ao LineageOS.", + "youRejectedTheInvitation": "Você rejeitou o convite", + "youBannedUser": "Você baniu {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youHaveWithdrawnTheInvitationFor": "Você revogou o convite para {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 Você foi convidado por {user}", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 Você convidou {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youAcceptedTheInvitation": "👍 Você aceitou o convite", + "youJoinedTheChat": "Você entrou na conversa", + "youKicked": "👞 Você expulsou {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKickedAndBanned": "🙅 Você expulsou e baniu {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "Você desbaniu {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "cuddleContent": "{senderName} afagou você", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "users": "Usuários", + "confirmMatrixId": "Confirme seu ID Matrix para apagar sua conta.", + "supposedMxid": "Isto deveria ser {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "commandHint_cuddle": "Enviar um afago", + "commandHint_hug": "Enviar um abraço", + "commandHint_googly": "Enviar olhos arregalados", + "googlyEyesContent": "{senderName} enviou olhos arregalados", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "hugContent": "{senderName} abraçou você", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_markasdm": "Marcar como sala de mensagens diretas para o ID Matrix fornecido", + "commandHint_markasgroup": "Marcar como grupo", + "hydrate": "Restaurar a partir de um arquivo de backup", + "storeInAndroidKeystore": "Guardar no cofre do Android (KeyStore)", + "storeInAppleKeyChain": "Guardar no chaveiro da Apple", + "storeSecurlyOnThisDevice": "Guardar de modo seguro neste dispositivo", + "user": "Usuário", + "custom": "Personalizado", + "newSpace": "Novo espaço", + "newCanal": "Novo canal", + "newMural": "Novo mural", + "countFiles": "{count} arquivos", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "doNotShowAgain": "Não mostrar novamente", + "dehydrate": "Exportar sessão e apagar dispositivo", + "dehydrateWarning": "Esta ação não pode ser desfeita. Certifique-se de que o arquivo de backup está guardado e seguro.", + "whyIsThisMessageEncrypted": "Por que não consigo ler esta mensagem?", + "noKeyForThisMessage": "Isto pode ocorrer caso a mensagem tenha sido enviada antes de você ter se conectado à sua conta com este dispositivo.\n\nTambém é possível que o remetente tenha bloqueado o seu dispositivo ou ocorreu algum problema com a conexão.\n\nVocê consegue ler as mensagens em outra sessão? Então, pode transferir as mensagens de lá! Vá em Configurações > Dispositivos e confira se os dispositivos verificaram um ao outro. Quando abrir a sala da próxima vez e ambas as sessões estiverem abertas, as chaves serão transmitidas automaticamente.\n\nNão gostaria de perder suas chaves ao desconectar ou trocar de dispositivos? Certifique-se que o backup de conversas esteja ativado nas configurações.", + "notAnImage": "Não é um arquivo de imagem.", + "importNow": "Importar agora", + "importEmojis": "Importar emojis", + "importFromZipFile": "Importar de arquivo .zip", + "sendTypingNotifications": "Enviar indicadores de digitação", + "exportEmotePack": "Exportar pacote de emojis como .zip", + "replace": "Substituir", + "jumpToLastReadMessage": "Pular para a última mensagem lida", + "reportErrorDescription": "😭 Ah, não. Algo deu errado. Se quiser, pode relatar isto aos desenvolvedores.", + "setColorTheme": "Aplicar paleta de cor:", + "banUserDescription": "O usuário será banido da conversa e não poderá participar novamente até que sejam desbanidos.", + "removeDevicesDescription": "Você será desconectado deste dispositivo e não poderá mais receber mensagens.", + "tryAgain": "Tentar novamente", + "unbanUserDescription": "O usuário poderá entrar novamente na conversa, caso tente.", + "messagesStyle": "Mensagens:", + "newSpaceDescription": "Os espaços permitem que você consolide suas conversas e construa comunidades públicas ou privadas.", + "newCanalDescription": "O canal é uma sala onde somente administradores podem publicar. Use-o para transmitir comunicados oficiais.", + "newMuralDescription": "O mural é um quadro de avisos onde todos podem publicar. Use-o para deixar recados para a sua comunidade.", + "chatDescription": "Descrição da conversa", + "encryptThisChat": "Criptografar esta conversa", + "reopenChat": "Reabrir conversa", + "pushNotificationsNotAvailable": "Notificações push não estão disponíveis", + "invalidServerName": "Nome do servidor inválido", + "chatPermissions": "Permissões da conversa", + "makeAdminDescription": "Assim que promover este usuário a administrador, não poderá desfazer isto e ele terá as mesmas permissões que você.", + "setChatDescription": "Configurar descrição da conversa", + "noOtherDevicesFound": "Nenhum outro dispositivo encontrado", + "redactedBy": "Apagado por {username}", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "fileIsTooBigForServer": "Não foi possível enviar! O servidor suporta anexos somente até {max}.", + "readUpToHere": "Lido até aqui", + "optionalRedactReason": "(Opcional) Motivo para apagar esta mensagem.", + "archiveRoomDescription": "A conversa será movida para o arquivo. Outros usuários verão que você deixou a conversa.", + "redactedByBecause": "Apagado por {username}, pois: \"{reason}\"", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "fileHasBeenSavedAt": "Arquivo salvo em {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "redactMessageDescription": "A mensagem será apagada para todos os participantes desta conversa. Isto não poderá ser desfeito.", + "invalidInput": "Entrada inválida!", + "report": "relatar", + "hasKnocked": "🚪 {user} bateu na porta", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "openLinkInBrowser": "Abrir link no navegador", + "disableEncryptionWarning": "Por razões de segurança, não é possível desativar a criptografada uma vez ativada.", + "wrongPinEntered": "PIN incorreto! Tente novamente em {seconds} segundos...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "inviteGroupChat": "📨 Convite para conversa em grupo", + "wasDirectChatDisplayName": "Conversa vazia (era {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "noChatDescriptionYet": "Nenhuma descrição para a conversa foi criada ainda.", + "learnMore": "Saiba mais", + "chatDescriptionHasBeenChanged": "Descrição da conversa alterada", + "roomUpgradeDescription": "A conversa será recriada com a nova versão de sala. Todos participantes será notificados e terão que migrar para a nova sala. Você pode encontrar mais informações sobre versões de sala em https://spec.matrix.org/latest/room/", + "pleaseEnterANumber": "Digite um número maior que 0", + "jump": "Pular", + "sorryThatsNotPossible": "Desculpe... isto não é possível", + "shareInviteLink": "Compartilhar link de convite", + "emoteKeyboardNoRecents": "Emojis recentes aparecem aqui...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "createGroup": "Criar grupo", + "canal": "Canal", + "canalIsPublic": "O canal é público", + "canalName": "Nome do canal", + "canalOnlyAdminCanPost": "Somente administradores do canal podem publicar nesta sala", + "createCanalAndInviteUsers": "Criar um canal e convidar pessoas", + "createMuralAndInviteUsers": "Criar um mural e convidar pessoas", + "mural": "Mural", + "muralIsPublic": "O mural é público", + "muralName": "Nome do mural", + "noBackupWarning": "Atenção! Se não ativar o backup de conversas, você perderá acesso a suas mensagens criptografadas. É altamente recomendável ativar o backup antes de sair.", + "kickUserDescription": "O usuário foi expulso da conversa, mas não banido. Em conversas públicas, o usuário pode entrar novamente a qualquer momento.", + "invite": "Convidar", + "blockListDescription": "Você pode bloquear usuários que estejam te perturbando. Você não receberá mensagens ou convites de usuários na sua lista pessoal de bloqueios.", + "createGroupAndInviteUsers": "Criar um grupo e convidar pessoas", + "thisDevice": "Este dispositivo:", + "publicSpaces": "Espaços públicos", + "blockedUsers": "Usuários bloqueados", + "passwordIsWrong": "A senha digitada está incorreta", + "pleaseEnterYourCurrentPassword": "Digite sua senha atual", + "groupCanBeFoundViaSearch": "Grupos podem ser encontrados por pesquisa", + "noUsersFoundWithQuery": "Infelizmente, não foi encontrado usuário com \"{query}\". Verifique se digitou corretamente.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "block": "Bloquear", + "nothingFound": "Nada foi encontrado...", + "yourGlobalUserIdIs": "Seu ID global de usuário é: ", + "newPassword": "Nova senha", + "passwordsDoNotMatch": "As senhas não correspondem", + "commandHint_sendraw": "Enviar JSON puro", + "wrongRecoveryKey": "Desculpe... esta não parece ser a chave de recuperação correta.", + "select": "Selecionar", + "pleaseChooseAStrongPassword": "Escolha uma senha forte", + "blockUsername": "Ignorar nome de usuário", + "addChatOrSubSpace": "Adicionar conversa ou subespaço", + "groupName": "Nome do grupo", + "leaveEmptyToClearStatus": "Deixe em branco para limpar seu estado.", + "joinSpace": "Entrar no espaço", + "searchForUsers": "Pesquisar por @usuários...", + "databaseMigrationTitle": "O banco de dados está otimizado", + "searchChatsRooms": "Pesquisar por #conversas, @usuários...", + "databaseMigrationBody": "Aguarde. Isto pode demorar um pouco.", + "formattedMessagesDescription": "Exibir conteúdo de mensagem rico, como texto em negrito usando markdown.", + "verifyOtherUser": "🔐 Verificar outro usuário", + "verifyOtherDevice": "🔐 Verificar outro dispositivo", + "acceptedKeyVerification": "{sender} aceitou a verificação de chaves", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "{sender} iniciou a verificação de chaves", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "initAppError": "Ocorreu um erro enquanto o app era iniciado", + "restoreSessionBody": "O app tentará agora restaurar sua sessão a partir do backup. Relate isto ao desenvolvedor em {url}. A mensagem de erro é: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "sendReadReceipts": "Enviar recibos de leitura", + "sendTypingNotificationsDescription": "Outros participantes nesta conversa podem ver quando você está digitando uma nova mensagem.", + "formattedMessages": "Mensagens formatadas", + "commandHint_ignore": "Ignorar o ID Matrix especificado", + "commandHint_unignore": "Parar de ignorar o ID Matrix especificado", + "sessionLostBody": "Sua sessão foi desconectada. Relate este ao desenvolvedor em {url}. A mensagem de erro é: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "sendReadReceiptsDescription": "Outros participantes nesta conversa podem ver quando você tiver lido uma mensagem.", + "verifyOtherUserDescription": "Se você verificar outro usuário, você terá certeza que você conhece com quem está conversando. 💪\n\nAo iniciar uma verificação, você e o outro usuário receberão um pop-up no app. Então vocês receberão uma série de emojis ou números para comparar um com o outro.\n\nA melhor maneira de fazer este procedimento é se encontrar pessoalmente ou através de uma chamada de vídeo. 👭", + "requestedKeyVerification": "{sender} solicitou uma verificação de chaves", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "verifyOtherDeviceDescription": "Ao verificar outro dispositivo, os dispositivos poderão trocar chaves, aumentando sua segurança. 💪 Ao iniciar a verificação, um pop-up aparecerá no app em ambos os aparelhos. Então você verá uma série de emojis ou números que você terá que comparar um com o outro. É melhor fazer esse procedimento com ambos os dispositivos em mãos antes de começar a verificação. 🤳", + "canceledKeyVerification": "{sender} cancelou a verificação de chaves", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "{sender} está pronto para a verificação de chaves", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "completedKeyVerification": "{sender} concluiu a verificação de chaves", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "stickers": "Figurinhas", + "discover": "Explorar", + "incomingMessages": "Mensagens recebidas", + "unreadChatsInApp": "{appname}: {unread} conversas não lidas", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "appLockDescription": "Bloquear o app com um código PIN quando não estiver usando", + "accessAndVisibilityDescription": "Quem pode entrar nesta conversa e como a conversa pode ser descoberta.", + "calls": "Chamadas", + "customEmojisAndStickers": "Emojis e stickers customizados", + "customEmojisAndStickersBody": "Adicionar ou compartilhar emojis ou stickers customizados que podem ser usados em qualquer conversa.", + "hideRedactedMessages": "Ocultar mensagens apagadas", + "hideRedactedMessagesBody": "Se alguém apagar uma mensagem, esta mensagem não será mais visível na conversa.", + "hideInvalidOrUnknownMessageFormats": "Ocultar formatos de mensagem inválidos ou desconhecidos", + "usersMustKnock": "Usuários devem bater na porta", + "noOneCanJoin": "Ninguém pode entrar", + "knocking": "Batendo na porta", + "chatCanBeDiscoveredViaSearchOnServer": "A conversa pode ser descoberta por pesquisa em {server}", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "publicChatAddresses": "Endereços de conversas públicas", + "thereAreCountUsersBlocked": "Nesse momento, há {count} usuários bloqueados.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "globalChatId": "ID global de conversa", + "accessAndVisibility": "Acesso e visibilidade", + "passwordRecoverySettings": "Configurações de recuperação de senha", + "noDatabaseEncryption": "A criptografia do banco de dados não é suportada nesta plataforma", + "createNewAddress": "Criar um novo endereço", + "knock": "Bater na porta", + "searchIn": "Procurar na conversa {chat}...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "searchMore": "Pesquisar mais...", + "gallery": "Galeria", + "files": "Arquivos", + "more": "Mais", + "deletePushRuleCanNotBeUndone": "Se você apagar esta configuração de notificação, isso não poderá ser desfeito.", + "shareKeysWith": "Compartilhar chaves com...", + "contentNotificationSettings": "Configurações de notificações de conteúdo", + "generalNotificationSettings": "Configurações de notificações gerais", + "notificationRuleContainsUserNameDescription": "Notifica o usuário quando a mensagem contém o seu nome de usuário.", + "notificationRuleMaster": "Silenciar todas as notificações", + "notificationRuleMasterDescription": "Sobrescreve todas as outras regras e desativa todas as notificações.", + "notificationRuleContainsDisplayName": "Contém o nome de exibição", + "notificationRuleRoomnotif": "Notificação de sala", + "notificationRuleIsRoomMentionDescription": "Notifica o usuário quando há uma menção de sala.", + "notificationRuleRoomnotifDescription": "Notifica o usuário quando uma mensagem contém '@room'.", + "notificationRuleTombstone": "Morte", + "notificationRuleReaction": "Reação", + "notificationRuleSuppressEditsDescription": "Omite notificações de mensagens editadas.", + "notificationRuleEncryptedRoomOneToOneDescription": "Notifica o usuário de mensagens em salas criptografas de 2 pessoas.", + "notificationRuleRoomOneToOne": "Sala de 2 pessoas", + "notificationRuleMessageDescription": "Notifica o usuário de mensagens gerais.", + "notificationRuleEncrypted": "Criptografado", + "unknownPushRule": "Regra de push desconhecida '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "notificationRuleServerAclDescription": "Omite notificações de eventos de ACL de servidor.", + "unread": "Não lido", + "changeTheCanonicalRoomAlias": "Alterar o endereço público principal da conversa", + "doesNotSeemToBeAValidHomeserver": "Não parece ser um servidor compatível. URL errada?", + "website": "Site", + "compress": "Comprimir", + "invalidUrl": "URL inválida", + "appWantsToUseForLoginDescription": "Aqui, você permite que o app e o site compartilhem informações sobre você.", + "notificationRuleMemberEvent": "Evento de membro", + "crossVerifiedDevicesIfEnabled": "Dispositivos verificados por ambos se ativado", + "countInvited": "{count} convidados", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "checkList": "Lista de tarefas", + "synchronizingPleaseWaitCounter": " Sincronizando… ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "markAsUnread": "Marcar como não lido", + "updateInstalled": "🎉 Atualização da versão {version} instalada!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "changelog": "Registro de mudanças", + "sendCanceled": "Envio cancelado", + "unableToJoinChat": "Não foi possível entrar na conversa. Talvez a outra pessoa já fechou a conversa.", + "noticeChatBackupDeviceVerification": "Observação: Quando você conecta todos os seus dispositivos ao backup de conversas, eles são verificados automaticamente.", + "continueText": "Continuar", + "blur": "Borrar:", + "opacity": "Opacidade:", + "setWallpaper": "Configurar plano de fundo", + "noContactInformationProvided": "O servidor não fornece nenhuma informação válida de contato", + "contactServerAdmin": "Contatar o administrador do servidor", + "contactServerSecurity": "Contatar a segurança do servidor", + "supportPage": "Página de ajuda", + "italicText": "Texto em itálico", + "strikeThrough": "Risco", + "appWantsToUseForLogin": "Usar '{server}' para conectar", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "open": "Abrir", + "roomNotificationSettings": "Configurações de notificações de sala", + "userSpecificNotificationSettings": "Configurações de notificações específicas ao usuário", + "otherNotificationSettings": "Configurações de outras notificações", + "notificationRuleContainsUserName": "Contém o nome de usuário", + "notificationRuleSuppressNotices": "Omitir mensagens automáticas", + "notificationRuleInviteForMe": "Convite para mim", + "notificationRuleMemberEventDescription": "Omite todas as notificações de eventos de membro.", + "notificationRuleIsUserMention": "Menção de usuário", + "notificationRuleContainsDisplayNameDescription": "Notifica o usuário quando uma mensagem contém seu nome de exibição.", + "notificationRuleCall": "Chamada", + "sentVoiceMessage": "🎙️ {duration} - Mensagem de voz de {sender}", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "crossVerifiedDevices": "Dispositivos verificados por ambos", + "takeAPhoto": "Tirar uma foto", + "youHaveKnocked": "Bateram na sua porta", + "changeGeneralChatSettings": "Alterar configurações gerais de conversa", + "inviteOtherUsers": "Convidar outros usuários para esta conversa", + "adminLevel": "{level} - Administrador", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeTheChatPermissions": "Alterar as permissões da conversa", + "changeTheVisibilityOfChatHistory": "Alterar a visibilidade do histórico de conversa", + "sendImages": "Enviar {count} imagens", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "goToSpace": "Ir ao espaço: {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "loginWithMatrixId": "Conectar com ID Matrix", + "calculatingFileSize": "Calculando o tamanho do arquivo...", + "oneOfYourDevicesIsNotVerified": "Um dos seus dispositivos não está verificado", + "manageAccount": "Gerenciar conta", + "newChatRequest": "📩 Nova solicitação de conversa", + "userLevel": "{level} - Usuário", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "enterNewChat": "Abrir a conversa nova", + "notificationRuleSuppressNoticesDescription": "Omite notificações de clientes automatizados, como bots.", + "notificationRuleInviteForMeDescription": "Notifica o usuário quando for convidado para uma sala.", + "approve": "Aprovar", + "notificationRuleEncryptedRoomOneToOne": "Sala criptografada de 2 pessoas", + "pleaseWaitUntilInvited": "Aguarde até que alguém da sala te convide.", + "waitingForServer": "Aguardando o servidor...", + "notificationRuleEncryptedDescription": "Notifica o usuário de mensagens em salas criptografadas.", + "sendRoomNotifications": "Enviar notificações de @room", + "notificationRuleRoomServerAclDescription": "Omite notificações de listas de controle de acesso de servidor de uma sala (ACL).", + "notificationRuleIsUserMentionDescription": "Notifica o usuário quando é mencionado diretamente em uma mensagem.", + "notificationRuleSuppressEdits": "Omitir edições", + "shareKeysWithDescription": "Quais dispositivos devem ser confiados para que possam ler suas mensagens em conversas criptografas?", + "allDevices": "Todos os dispositivos", + "aboutHomeserver": "Sobre {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "swipeRightToLeftToReply": "Deslizar da direita pra esquerda para responder", + "verifiedDevicesOnly": "Somente dispositivos verificados", + "boldText": "Texto em negrito", + "recordAVideo": "Gravar um vídeo", + "optionalMessage": "(Opcional) mensagem...", + "notSupportedOnThisDevice": "Não há suporte neste dispositivo", + "commandHint_roomupgrade": "Atualizar esta sala para a versão de sala especificada", + "noMoreChatsFound": "Mais nenhuma conversa foi encontrada...", + "noChatsFoundHere": "Nenhuma conversa encontrada aqui ainda. Inicie uma nova conversa com alguém usando o botão abaixo. ⤵️", + "space": "Espaço", + "moderatorLevel": "{level} - Moderador", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeTheDescriptionOfTheGroup": "Alterar a descrição da conversa", + "chatPermissionsDescription": "Configurar qual o nível de poder é necessário para certas ações nesta conversa. Os níveis de poder 0, 50, e 100 são normalmente para representar usuários, moderadores, e administradores, mas qualquer configuração é possível.", + "serverInformation": "Informações do servidor:", + "name": "Nome", + "version": "Versão", + "pleaseFillOut": "Preencha", + "addLink": "Adicionar link", + "notificationRuleRoomServerAcl": "ACL de servidores de sala", + "notificationRuleCallDescription": "Notifica o usuário de chamadas.", + "notificationRuleRoomOneToOneDescription": "Notifica o usuário de mensagens em salas de duas pessoas.", + "notificationRuleMessage": "Mensagem", + "notificationRuleJitsi": "Jitsi", + "notificationRuleJitsiDescription": "Notifica o usuário de eventos de widget do Jitsi.", + "notificationRuleServerAcl": "Omitir eventos de ACL de servidor", + "notificationRuleIsRoomMention": "Menção de sala", + "notificationRuleTombstoneDescription": "Notifica o usuário de mensagens de desativação de salas.", + "notificationRuleReactionDescription": "Omite notificações de reações.", + "commandHint_logout": "Desconecte-se do seu dispositivo atual", + "commandHint_logoutall": "Desconecte-se de todos os dispositivos ativos", + "displayNavigationRail": "Mostrar trilha de navegação em dispositivo móvel", + "previous": "Anterior", + "otherPartyNotLoggedIn": "A outra pessoa não tem nenhum dispositivo conectado no momento e portanto não consegue receber mensagens!", + "customReaction": "Reação personalizada", + "moreEvents": "Mais eventos", + "declineInvitation": "Rejeitar convite", + "noMessagesYet": "Nenhuma mensagem ainda", + "longPressToRecordVoiceMessage": "Segure para gravar uma mensagem de voz.", + "pause": "Pausar", + "resume": "Retomar", + "removeFromSpaceDescription": "A conversa será removida do espaço mas ainda aparecerá na sua lista de conversas.", + "countChats": "{chats} conversas", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "spaceMemberOf": "Membro do espaço de {spaces}", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "Membro do espaço de {spaces} pode bater na porta", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "startPoll": "Abrir enquete", + "endPoll": "Fechar enquete", + "answersVisible": "Respostas visíveis", + "pollQuestion": "Questão da enquete", + "answerOption": "Opção de resposta", + "addAnswerOption": "Adicionar opção de resposta", + "allowMultipleAnswers": "Permitir várias respostas", + "pollHasBeenEnded": "A enquete terminou", + "countVotes": "{count, plural, =1{Um voto} other{{count} votos}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "answersWillBeVisibleWhenPollHasEnded": "As respostas ficarão visíveis quando a enquete terminar", + "replyInThread": "Responder no tópico", + "countReplies": "{count, plural, =1{Uma resposta} other{{count} respostas}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "thread": "Tópico", + "backToMainChat": "Voltar à conversa principal", + "saveChanges": "Salvar alterações", + "createSticker": "Criar figurinha ou emoji", + "useAsSticker": "Usar como figurinha", + "useAsEmoji": "Usar como emoji", + "stickerPackNameAlreadyExists": "O nome do pacote de figurinhas já existe", + "newStickerPack": "Novo pacote de figurinhas", + "stickerPackName": "Nome do pacote de figurinhas", + "attribution": "Créditos", + "skipChatBackup": "Pular backup de conversas", + "skipChatBackupWarning": "Tem certeza? Se não ativar o backup de conversas, você pode perder o acesso às suas mensagens se trocar de dispositivo.", + "changedTheChatDescription": "{username} alterou a descrição da conversa", + "changedTheChatName": "{username} alterou o nome da conversa", + "versionWithNumber": "Versão: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "channels": "Canais", + "@channels": { + "type": "String", + "placeholders": {} + }, + "spaces": "Espaços", + "@spaces": { + "type": "String", + "placeholders": {} + }, + "murals": "Murais", + "@murals": { + "type": "String", + "placeholders": {} + }, + "muralsComingSoon": "Murais em breve", + "@muralsComingSoon": { + "type": "String", + "placeholders": {} + }, + "noChannelsFound": "Nenhum canal por aqui", + "@noChannelsFound": { + "type": "String", + "placeholders": {} + }, + "noSpacesFound": "Nenhum espaço por aqui", + "@noSpacesFound": { + "type": "String", + "placeholders": {} + }, + "noMuralsFound": "Nenhum mural por aqui", + "@noMuralsFound": { + "type": "String", + "placeholders": {} + }, + "selectASpace": "Selecione um espaço", + "@selectASpace": { + "type": "String", + "placeholders": {} + }, + "newPost": "Nova publicação", + "@newPost": { + "type": "String", + "placeholders": {} + }, + "postPhoto": "Postar foto", + "@postPhoto": { + "type": "String", + "placeholders": {} + }, + "postVideo": "Postar vídeo", + "@postVideo": { + "type": "String", + "placeholders": {} + }, + "noPostsYet": "Nenhuma publicação ainda. Compartilhe a primeira foto ou vídeo!", + "@noPostsYet": { + "type": "String", + "placeholders": {} + }, + "noCommentsYet": "Nenhum comentário ainda. Seja o primeiro a comentar!", + "@noCommentsYet": { + "type": "String", + "placeholders": {} + }, + "like": "Curtir", + "@like": { + "type": "String", + "placeholders": {} + }, + "unlike": "Descurtir", + "@unlike": { + "type": "String", + "placeholders": {} + }, + "editCaption": "Editar legenda", + "@editCaption": { + "type": "String", + "placeholders": {} + }, + "captionHint": "Legenda", + "@captionHint": { + "type": "String", + "placeholders": {} + }, + "areYouSureDeletePost": "Apagar" +} diff --git a/lib/l10n/intl_pt_PT.arb b/lib/l10n/intl_pt_PT.arb index 92add3c..02d7830 100644 --- a/lib/l10n/intl_pt_PT.arb +++ b/lib/l10n/intl_pt_PT.arb @@ -1,2249 +1,2250 @@ { - "repeatPassword": "Repete a palavra-passe", - "about": "Acerca de", - "@about": { - "type": "String", - "placeholders": {} - }, - "accept": "Aceitar", - "@accept": { - "type": "String", - "placeholders": {} - }, - "acceptedTheInvitation": "{username} aceitou o convite", - "@acceptedTheInvitation": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "account": "Conta", - "@account": { - "type": "String", - "placeholders": {} - }, - "activatedEndToEndEncryption": "{username} ativou encriptação ponta-a-ponta", - "@activatedEndToEndEncryption": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "addEmail": "Adicionar correio eletrónico", - "@addEmail": { - "type": "String", - "placeholders": {} - }, - "addToSpace": "Adicionar ao espaço", - "admin": "Admin", - "@admin": { - "type": "String", - "placeholders": {} - }, - "alias": "alcunha", - "@alias": { - "type": "String", - "placeholders": {} - }, - "all": "Todos(as)", - "@all": { - "type": "String", - "placeholders": {} - }, - "answeredTheCall": "{senderName} atendeu a chamada", - "@answeredTheCall": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "anyoneCanJoin": "Qualquer pessoa pode entrar", - "@anyoneCanJoin": { - "type": "String", - "placeholders": {} - }, - "archive": "Arquivo", - "@archive": { - "type": "String", - "placeholders": {} - }, - "areGuestsAllowedToJoin": "Os utilizadores convidados têm permissão para se juntarem?", - "@areGuestsAllowedToJoin": { - "type": "String", - "placeholders": {} - }, - "areYouSure": "Tens a certeza?", - "@areYouSure": { - "type": "String", - "placeholders": {} - }, - "areYouSureYouWantToLogout": "Tens a certeza que queres sair?", - "@areYouSureYouWantToLogout": { - "type": "String", - "placeholders": {} - }, - "askSSSSSign": "Para poderes assinar a outra pessoa, por favor, insere a tua senha de armazenamento seguro ou a chave de recuperação.", - "@askSSSSSign": { - "type": "String", - "placeholders": {} - }, - "askVerificationRequest": "Aceitar este pedido de verificação de {username}?", - "@askVerificationRequest": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "autoplayImages": "Automaticamente reproduzir autocolantes e emotes animados", - "@autoplayImages": { - "type": "String", - "placeholder": {} - }, - "sendOnEnter": "Enviar com Enter", - "badServerLoginTypesException": "O servidor suporta os tipos de início de sessão:\n{serverVersions}\nMas esta aplicação apenas suporta:\n{supportedVersions}", - "@badServerLoginTypesException": { - "type": "String", - "placeholders": { - "serverVersions": { - "type": "String" - }, - "supportedVersions": { - "type": "String" - } - } - }, - "banFromChat": "Banir da conversa", - "@banFromChat": { - "type": "String", - "placeholders": {} - }, - "banned": "Banido(a)", - "@banned": { - "type": "String", - "placeholders": {} - }, - "bannedUser": "{username} baniu {targetName}", - "@bannedUser": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "blockDevice": "Bloquear dispositivo", - "@blockDevice": { - "type": "String", - "placeholders": {} - }, - "blocked": "Bloqueado", - "@blocked": { - "type": "String", - "placeholders": {} - }, - "cancel": "Cancelar", - "@cancel": { - "type": "String", - "placeholders": {} - }, - "cantOpenUri": "Não é possível abrir o URI {uri}", - "@cantOpenUri": { - "type": "String", - "placeholders": { - "uri": { - "type": "String" - } - } - }, - "changeDeviceName": "Alterar nome do dispositivo", - "@changeDeviceName": { - "type": "String", - "placeholders": {} - }, - "changedTheChatPermissions": "{username} alterou as permissões da conversa", - "@changedTheChatPermissions": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "changedTheDisplaynameTo": "{username} alterou o seu nome para: '{displayname}'", - "@changedTheDisplaynameTo": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "displayname": { - "type": "String" - } - } - }, - "changedTheGuestAccessRulesTo": "{username} alterou as regras de acesso de visitantes para: {rules}", - "@changedTheGuestAccessRulesTo": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "rules": { - "type": "String" - } - } - }, - "changedTheJoinRules": "{username} alterou as regras de entrada", - "@changedTheJoinRules": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "changedTheJoinRulesTo": "{username} alterou as regras de entrada para: {joinRules}", - "@changedTheJoinRulesTo": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "joinRules": { - "type": "String" - } - } - }, - "changedTheProfileAvatar": "{username} alterou o seu avatar", - "@changedTheProfileAvatar": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "changedTheRoomAliases": "{username} alterou as alcunhas da sala", - "@changedTheRoomAliases": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "changedTheRoomInvitationLink": "{username} alterou a ligação de convite", - "@changedTheRoomInvitationLink": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "changePassword": "Alterar palavra-passe", - "@changePassword": { - "type": "String", - "placeholders": {} - }, - "changeTheHomeserver": "Alterar o servidor", - "@changeTheHomeserver": { - "type": "String", - "placeholders": {} - }, - "changeTheme": "Alterar o teu estilo", - "@changeTheme": { - "type": "String", - "placeholders": {} - }, - "changeTheNameOfTheGroup": "Alterar o nome do grupo", - "@changeTheNameOfTheGroup": { - "type": "String", - "placeholders": {} - }, - "changeYourAvatar": "Alterar o teu avatar", - "@changeYourAvatar": { - "type": "String", - "placeholders": {} - }, - "channelCorruptedDecryptError": "A encriptação foi corrompida", - "@channelCorruptedDecryptError": { - "type": "String", - "placeholders": {} - }, - "chat": "Conversa", - "@chat": { - "type": "String", - "placeholders": {} - }, - "chatBackup": "Cópia de segurança de conversas", - "@chatBackup": { - "type": "String", - "placeholders": {} - }, - "chatDetails": "Detalhes de conversa", - "@chatDetails": { - "type": "String", - "placeholders": {} - }, - "chats": "Conversas", - "@chats": { - "type": "String", - "placeholders": {} - }, - "chooseAStrongPassword": "Escolhe uma palavra-passe forte", - "@chooseAStrongPassword": { - "type": "String", - "placeholders": {} - }, - "clearArchive": "Limpar arquivo", - "close": "Fechar", - "@close": { - "type": "String", - "placeholders": {} - }, - "commandHint_ban": "Banir o utilizador dado desta sala", - "@commandHint_ban": { - "type": "String", - "description": "Usage hint for the command /ban" - }, - "commandHint_html": "Enviar texto formatado com HTML", - "@commandHint_html": { - "type": "String", - "description": "Usage hint for the command /html" - }, - "commandHint_invite": "Convidar o utilizador dado a esta sala", - "@commandHint_invite": { - "type": "String", - "description": "Usage hint for the command /invite" - }, - "commandHint_join": "Entrar na sala dada", - "@commandHint_join": { - "type": "String", - "description": "Usage hint for the command /join" - }, - "commandHint_kick": "Remover o utilizador dado desta sala", - "@commandHint_kick": { - "type": "String", - "description": "Usage hint for the command /kick" - }, - "commandHint_leave": "Sair desta sala", - "@commandHint_leave": { - "type": "String", - "description": "Usage hint for the command /leave" - }, - "commandHint_me": "Descreve-te", - "@commandHint_me": { - "type": "String", - "description": "Usage hint for the command /me" - }, - "commandHint_myroomavatar": "Definir a tua imagem para esta sala (por mxc-uri)", - "@commandHint_myroomavatar": { - "type": "String", - "description": "Usage hint for the command /myroomavatar" - }, - "commandHint_myroomnick": "Definir o teu nome para esta sala", - "@commandHint_myroomnick": { - "type": "String", - "description": "Usage hint for the command /myroomnick" - }, - "commandHint_op": "Definir o nível de poder do utilizador dado (por omissão: 50)", - "@commandHint_op": { - "type": "String", - "description": "Usage hint for the command /op" - }, - "commandHint_plain": "Enviar texto não formatado", - "@commandHint_plain": { - "type": "String", - "description": "Usage hint for the command /plain" - }, - "commandHint_react": "Enviar respostas como reações", - "@commandHint_react": { - "type": "String", - "description": "Usage hint for the command /react" - }, - "commandHint_send": "Enviar texto", - "@commandHint_send": { - "type": "String", - "description": "Usage hint for the command /send" - }, - "commandHint_unban": "Perdoar o utilizador dado", - "@commandHint_unban": { - "type": "String", - "description": "Usage hint for the command /unban" - }, - "commandInvalid": "Comando inválido", - "@commandInvalid": { + "repeatPassword": "Repete a palavra-passe", + "about": "Acerca de", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Aceitar", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "{username} aceitou o convite", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { "type": "String" - }, - "commandMissing": "{command} não é um comando.", - "@commandMissing": { - "type": "String", - "placeholders": { - "command": { - "type": "String" - } - }, - "description": "State that {command} is not a valid /command." - }, - "compareEmojiMatch": "Compara e certifica-te que os emojis que se seguem correspondem aos do outro dispositivo:", - "@compareEmojiMatch": { - "type": "String", - "placeholders": {} - }, - "compareNumbersMatch": "Compara e certifica-te que os números que se seguem correspondem aos do outro dispositivo:", - "@compareNumbersMatch": { - "type": "String", - "placeholders": {} - }, - "configureChat": "Configurar conversa", - "@configureChat": { - "type": "String", - "placeholders": {} - }, - "contactHasBeenInvitedToTheGroup": "O contacto foi convidado para o grupo", - "@contactHasBeenInvitedToTheGroup": { - "type": "String", - "placeholders": {} - }, - "contentHasBeenReported": "O conteúdo foi denunciado aos admins do servidor", - "@contentHasBeenReported": { - "type": "String", - "placeholders": {} - }, - "copiedToClipboard": "Copiado para a área de transferência", - "@copiedToClipboard": { - "type": "String", - "placeholders": {} - }, - "copy": "Copiar", - "@copy": { - "type": "String", - "placeholders": {} - }, - "copyToClipboard": "Copiar para a área de transferência", - "@copyToClipboard": { - "type": "String", - "placeholders": {} - }, - "couldNotDecryptMessage": "Não foi possível desencriptar mensagem: {error}", - "@couldNotDecryptMessage": { - "type": "String", - "placeholders": { - "error": { - "type": "String" - } - } - }, - "countParticipants": "{count} participantes", - "@countParticipants": { - "type": "String", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "create": "Criar", - "@create": { - "type": "String", - "placeholders": {} - }, - "createdTheChat": "{username} criou a conversa", - "@createdTheChat": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "createNewSpace": "Novo espaço", - "@createNewSpace": { - "type": "String", - "placeholders": {} - }, - "currentlyActive": "Ativo(a) agora", - "@currentlyActive": { - "type": "String", - "placeholders": {} - }, - "darkTheme": "Escuro", - "@darkTheme": { - "type": "String", - "placeholders": {} - }, - "dateAndTimeOfDay": "{date} às {timeOfDay}", - "@dateAndTimeOfDay": { - "type": "String", - "placeholders": { - "date": { - "type": "String" - }, - "timeOfDay": { - "type": "String" - } - } - }, - "deactivateAccountWarning": "Isto irá desativar a tua conta. Não é reversível! Tens a certeza?", - "@deactivateAccountWarning": { - "type": "String", - "placeholders": {} - }, - "defaultPermissionLevel": "Nível de permissão normal", - "@defaultPermissionLevel": { - "type": "String", - "placeholders": {} - }, - "delete": "Eliminar", - "@delete": { - "type": "String", - "placeholders": {} - }, - "deleteAccount": "Eliminar conta", - "@deleteAccount": { - "type": "String", - "placeholders": {} - }, - "deleteMessage": "Eliminar mensagem", - "@deleteMessage": { - "type": "String", - "placeholders": {} - }, - "devices": "Dispositivos", - "@devices": { - "type": "String", - "placeholders": {} - }, - "directChats": "Conversas diretas", - "@directChats": { - "type": "String", - "placeholders": {} - }, - "displaynameHasBeenChanged": "Nome de exibição alterado", - "@displaynameHasBeenChanged": { - "type": "String", - "placeholders": {} - }, - "downloadFile": "Descarregar ficheiro", - "@downloadFile": { - "type": "String", - "placeholders": {} - }, - "edit": "Editar", - "@edit": { - "type": "String", - "placeholders": {} - }, - "editBlockedServers": "Editar servidores bloqueados", - "@editBlockedServers": { - "type": "String", - "placeholders": {} - }, - "editDisplayname": "Editar nome de exibição", - "@editDisplayname": { - "type": "String", - "placeholders": {} - }, - "editRoomAliases": "Editar alcunhas da sala", - "@editRoomAliases": { - "type": "String", - "placeholders": {} - }, - "editRoomAvatar": "Editar avatar da sala", - "@editRoomAvatar": { - "type": "String", - "placeholders": {} - }, - "emoteExists": "Emote já existente!", - "@emoteExists": { - "type": "String", - "placeholders": {} - }, - "emoteInvalid": "Código de emote inválido!", - "@emoteInvalid": { - "type": "String", - "placeholders": {} - }, - "emoteShortcode": "Código do emote", - "@emoteShortcode": { - "type": "String", - "placeholders": {} - }, - "emptyChat": "Conversa vazia", - "@emptyChat": { - "type": "String", - "placeholders": {} - }, - "enableEmotesGlobally": "Ativar pacote de emotes globalmente", - "@enableEmotesGlobally": { - "type": "String", - "placeholders": {} - }, - "enableEncryption": "Ativar encriptação", - "@enableEncryption": { - "type": "String", - "placeholders": {} - }, - "enableEncryptionWarning": "Nunca mais poderás desativar a encriptação. Tens a certeza?", - "@enableEncryptionWarning": { - "type": "String", - "placeholders": {} - }, - "encrypted": "Encriptada", - "@encrypted": { - "type": "String", - "placeholders": {} - }, - "encryption": "Encriptação", - "@encryption": { - "type": "String", - "placeholders": {} - }, - "encryptionNotEnabled": "A encriptação não está ativada", - "@encryptionNotEnabled": { - "type": "String", - "placeholders": {} - }, - "endedTheCall": "{senderName} terminou a chamada", - "@endedTheCall": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "enterAnEmailAddress": "Insere um endereço de correio eletrónico", - "@enterAnEmailAddress": { - "type": "String", - "placeholders": {} - }, - "errorObtainingLocation": "Erro ao obter localização: {error}", - "@errorObtainingLocation": { - "type": "String", - "placeholders": { - "error": { - "type": "String" - } - } - }, - "fontSize": "Tamanho da letra", - "@fontSize": { - "type": "String", - "placeholders": {} - }, - "forward": "Reencaminhar", - "@forward": { - "type": "String", - "placeholders": {} - }, - "group": "Grupo", - "@group": { - "type": "String", - "placeholders": {} - }, - "groupIsPublic": "O grupo é público", - "@groupIsPublic": { - "type": "String", - "placeholders": {} - }, - "groups": "Grupos", - "@groups": { - "type": "String", - "placeholders": {} - }, - "groupWith": "Grupo com {displayname}", - "@groupWith": { - "type": "String", - "placeholders": { - "displayname": { - "type": "String" - } - } - }, - "guestsAreForbidden": "São proibidos visitantes", - "@guestsAreForbidden": { - "type": "String", - "placeholders": {} - }, - "guestsCanJoin": "Podem entrar visitantes", - "@guestsCanJoin": { - "type": "String", - "placeholders": {} - }, - "hasWithdrawnTheInvitationFor": "{username} revogou o convite para {targetName}", - "@hasWithdrawnTheInvitationFor": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "help": "Ajuda", - "@help": { - "type": "String", - "placeholders": {} - }, - "hideUnknownEvents": "Esconder eventos desconhecidos", - "@hideUnknownEvents": { - "type": "String", - "placeholders": {} - }, - "ignore": "Ignorar", - "@ignore": { - "type": "String", - "placeholders": {} - }, - "ignoredUsers": "Utilizadores ignorados", - "@ignoredUsers": { - "type": "String", - "placeholders": {} - }, - "iHaveClickedOnLink": "Eu cliquei na ligação", - "@iHaveClickedOnLink": { - "type": "String", - "placeholders": {} - }, - "incorrectPassphraseOrKey": "Senha ou chave de recuperação incorretos", - "@incorrectPassphraseOrKey": { - "type": "String", - "placeholders": {} - }, - "inviteContact": "Convidar contacto", - "@inviteContact": { - "type": "String", - "placeholders": {} - }, - "inviteContactToGroup": "Convidar contacto para {groupName}", - "@inviteContactToGroup": { - "type": "String", - "placeholders": { - "groupName": { - "type": "String" - } - } - }, - "invited": "Convidado(a)", - "@invited": { - "type": "String", - "placeholders": {} - }, - "invitedUser": "{username} convidou {targetName}", - "@invitedUser": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "invitedUsersOnly": "Utilizadores(as) convidados(as) apenas", - "@invitedUsersOnly": { - "type": "String", - "placeholders": {} - }, - "inviteText": "{username} convidou-te para o FluffyChat.\n1. Instala o FluffyChat: https://fluffychat.im\n2. Regista-te ou inicia sessão.\n3. Abre a ligação de convite: {link}", - "@inviteText": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "link": { - "type": "String" - } - } - }, - "isTyping": "está a escrever…", - "@isTyping": { - "type": "String", - "placeholders": {} - }, - "joinedTheChat": "{username} entrou na conversa", - "@joinedTheChat": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "joinRoom": "Entrar na sala", - "@joinRoom": { - "type": "String", - "placeholders": {} - }, - "kicked": "{username} expulsou {targetName}", - "@kicked": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "kickedAndBanned": "{username} expulsou e baniu {targetName}", - "@kickedAndBanned": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "kickFromChat": "Expulsar da conversa", - "@kickFromChat": { - "type": "String", - "placeholders": {} - }, - "lastActiveAgo": "Ativo(a) pela última vez: {localizedTimeShort}", - "@lastActiveAgo": { - "type": "String", - "placeholders": { - "localizedTimeShort": { - "type": "String" - } - } - }, - "leave": "Sair", - "@leave": { - "type": "String", - "placeholders": {} - }, - "leftTheChat": "Saiu da conversa", - "@leftTheChat": { - "type": "String", - "placeholders": {} - }, - "lightTheme": "Claro", - "@lightTheme": { - "type": "String", - "placeholders": {} - }, - "loadCountMoreParticipants": "Carregar mais {count} participantes", - "@loadCountMoreParticipants": { - "type": "String", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "loadingPleaseWait": "A carregar... Por favor aguarde.", - "@loadingPleaseWait": { - "type": "String", - "placeholders": {} - }, - "loadMore": "Carregar mais…", - "@loadMore": { - "type": "String", - "placeholders": {} - }, - "locationDisabledNotice": "Os serviços de localização estão desativados. Por favor, ativa-os para poder partilhar a sua localização.", - "@locationDisabledNotice": { - "type": "String", - "placeholders": {} - }, - "locationPermissionDeniedNotice": "Permissão de localização recusada. Por favor, concede permissão para poderes partilhar a tua posição.", - "@locationPermissionDeniedNotice": { - "type": "String", - "placeholders": {} - }, - "login": "Entrar", - "@login": { - "type": "String", - "placeholders": {} - }, - "logInTo": "Entrar em {homeserver}", - "@logInTo": { - "type": "String", - "placeholders": { - "homeserver": { - "type": "String" - } - } - }, - "logout": "Sair", - "@logout": { - "type": "String", - "placeholders": {} - }, - "mention": "Mencionar", - "@mention": { - "type": "String", - "placeholders": {} - }, - "messages": "Mensagens", - "@messages": { - "type": "String", - "placeholders": {} - }, - "moderator": "Moderador", - "@moderator": { - "type": "String", - "placeholders": {} - }, - "muteChat": "Silenciar conversa", - "@muteChat": { - "type": "String", - "placeholders": {} - }, - "newChat": "Nova conversa", - "@newChat": { - "type": "String", - "placeholders": {} - }, - "newMessageInFluffyChat": "Nova mensagem no FluffyChat", - "@newMessageInFluffyChat": { - "type": "String", - "placeholders": {} - }, - "newVerificationRequest": "Novo pedido de verificação!", - "@newVerificationRequest": { - "type": "String", - "placeholders": {} - }, - "next": "Próximo", - "@next": { - "type": "String", - "placeholders": {} - }, - "no": "Não", - "@no": { - "type": "String", - "placeholders": {} - }, - "noConnectionToTheServer": "Nenhuma ligação ao servidor", - "@noConnectionToTheServer": { - "type": "String", - "placeholders": {} - }, - "noEmotesFound": "Nenhuns emotes encontrados. 😕", - "@noEmotesFound": { - "type": "String", - "placeholders": {} - }, - "noEncryptionForPublicRooms": "Só podes ativar a encriptação quando a sala não for publicamente acessível.", - "@noEncryptionForPublicRooms": { - "type": "String", - "placeholders": {} - }, - "noGoogleServicesWarning": "Parece que não tens nenhuns serviços da Google no seu telemóvel. É uma boa decisão para a sua privacidade! Para receber notificações instantâneas no FluffyChat, recomendamos que uses https://microg.org/ ou https://unifiedpush.org/.", - "@noGoogleServicesWarning": { - "type": "String", - "placeholders": {} - }, - "noMatrixServer": "{server1} não é um servidor Matrix, usar {server2}?", - "@noMatrixServer": { - "type": "String", - "placeholders": { - "server1": { - "type": "String" - }, - "server2": { - "type": "String" - } - } - }, - "changedTheChatAvatar": "{username} alterou o avatar da conversa", - "@changedTheChatAvatar": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "changedTheHistoryVisibilityTo": "{username} alterou a visibilidade do histórico para: {rules}", - "@changedTheHistoryVisibilityTo": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "rules": { - "type": "String" - } - } - }, - "changedTheGuestAccessRules": "{username} alterou as regras de acesso de visitantes", - "@changedTheGuestAccessRules": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "changedTheHistoryVisibility": "{username} alterou a visibilidade do histórico", - "@changedTheHistoryVisibility": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "sendAMessage": "Enviar a mensagem", - "@sendAMessage": { - "type": "String", - "placeholders": {} - }, - "sendAudio": "Enviar áudio", - "@sendAudio": { - "type": "String", - "placeholders": {} - }, - "sendAsText": "Enviar como texto", - "@sendAsText": { - "type": "String" - }, - "send": "Enviar", - "@send": { - "type": "String", - "placeholders": {} - }, - "appLock": "Bloqueio da aplicação", - "@appLock": { - "type": "String", - "placeholders": {} - }, - "noPasswordRecoveryDescription": "Ainda não adicionaste uma forma de recuperar a tua palavra-passe.", - "@noPasswordRecoveryDescription": { - "type": "String", - "placeholders": {} - }, - "noPermission": "Sem permissão", - "@noPermission": { - "type": "String", - "placeholders": {} - }, - "noRoomsFound": "Não foram encontradas nenhumas salas…", - "@noRoomsFound": { - "type": "String", - "placeholders": {} - }, - "notifications": "Notificações", - "@notifications": { - "type": "String", - "placeholders": {} - }, - "numUsersTyping": "Estão {count} utilizadores(as) a escrever…", - "@numUsersTyping": { - "type": "String", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "obtainingLocation": "A obter localização…", - "@obtainingLocation": { - "type": "String", - "placeholders": {} - }, - "ok": "ok", - "@ok": { - "type": "String", - "placeholders": {} - }, - "onlineKeyBackupEnabled": "A cópia de segurança online de chaves está ativada", - "@onlineKeyBackupEnabled": { - "type": "String", - "placeholders": {} - }, - "oopsPushError": "Ups! Infelizmente, ocorreu um erro ao configurar as notificações instantâneas.", - "@oopsPushError": { - "type": "String", - "placeholders": {} - }, - "oopsSomethingWentWrong": "Ups, algo correu mal…", - "@oopsSomethingWentWrong": { - "type": "String", - "placeholders": {} - }, - "openAppToReadMessages": "Abrir aplicação para ler mensagens", - "@openAppToReadMessages": { - "type": "String", - "placeholders": {} - }, - "openCamera": "Abrir câmara", - "@openCamera": { - "type": "String", - "placeholders": {} - }, - "oneClientLoggedOut": "Um dos teus clientes terminou sessão", - "addAccount": "Adicionar conta", - "editBundlesForAccount": "Editar pacotes para esta conta", - "addToBundle": "Adicionar ao pacote", - "removeFromBundle": "Remover deste pacote", - "bundleName": "Nome do pacote", - "openInMaps": "Abrir nos mapas", - "@openInMaps": { - "type": "String", - "placeholders": {} - }, - "link": "Ligação", - "or": "Ou", - "@or": { - "type": "String", - "placeholders": {} - }, - "participant": "Participante", - "@participant": { - "type": "String", - "placeholders": {} - }, - "passphraseOrKey": "senha ou chave de recuperação", - "@passphraseOrKey": { - "type": "String", - "placeholders": {} - }, - "password": "Palavra-passe", - "@password": { - "type": "String", - "placeholders": {} - }, - "passwordForgotten": "Palavra-passe esquecida", - "@passwordForgotten": { - "type": "String", - "placeholders": {} - }, - "passwordHasBeenChanged": "A palavra-passe foi alterada", - "@passwordHasBeenChanged": { - "type": "String", - "placeholders": {} - }, - "passwordRecovery": "Recuperação de palavra-passe", - "@passwordRecovery": { - "type": "String", - "placeholders": {} - }, - "pin": "Afixar", - "@pin": { - "type": "String", - "placeholders": {} - }, - "pleaseChooseAPasscode": "Por favor, escolhe um código-passe", - "@pleaseChooseAPasscode": { - "type": "String", - "placeholders": {} - }, - "pleaseClickOnLink": "Por favor, clica na ligação no correio eletrónico e depois continua.", - "@pleaseClickOnLink": { - "type": "String", - "placeholders": {} - }, - "pleaseEnterYourPassword": "Por favor, insere a tua palavra-passe", - "@pleaseEnterYourPassword": { - "type": "String", - "placeholders": {} - }, - "pleaseEnterYourPin": "Por favor, insere o teu código", - "@pleaseEnterYourPin": { - "type": "String", - "placeholders": {} - }, - "pleaseEnterYourUsername": "Por favor, insere o teu nome de utilizador", - "@pleaseEnterYourUsername": { - "type": "String", - "placeholders": {} - }, - "pleaseFollowInstructionsOnWeb": "Por favor, segue as instruções no website e clica em \"Seguinte\".", - "@pleaseFollowInstructionsOnWeb": { - "type": "String", - "placeholders": {} - }, - "privacy": "Privacidade", - "@privacy": { - "type": "String", - "placeholders": {} - }, - "publicRooms": "Salas públicas", - "@publicRooms": { - "type": "String", - "placeholders": {} - }, - "reason": "Razão", - "@reason": { - "type": "String", - "placeholders": {} - }, - "redactedAnEvent": "{username} eliminou um evento", - "@redactedAnEvent": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "redactMessage": "Eliminar mensagem", - "@redactMessage": { - "type": "String", - "placeholders": {} - }, - "reject": "Rejeitar", - "@reject": { - "type": "String", - "placeholders": {} - }, - "rejectedTheInvitation": "{username} rejeitou o convite", - "@rejectedTheInvitation": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "remove": "Remover", - "@remove": { - "type": "String", - "placeholders": {} - }, - "removeAllOtherDevices": "Remover todos os outros dispositivos", - "@removeAllOtherDevices": { - "type": "String", - "placeholders": {} - }, - "unbanFromChat": "Perdoar nesta conversa", - "@unbanFromChat": { - "type": "String", - "placeholders": {} - }, - "removeYourAvatar": "Remover o teu avatar", - "@removeYourAvatar": { - "type": "String", - "placeholders": {} - }, - "replaceRoomWithNewerVersion": "Substituir sala com versão mais recente", - "@replaceRoomWithNewerVersion": { - "type": "String", - "placeholders": {} - }, - "reply": "Responder", - "@reply": { - "type": "String", - "placeholders": {} - }, - "reportMessage": "Reportar mensagem", - "@reportMessage": { - "type": "String", - "placeholders": {} - }, - "roomHasBeenUpgraded": "A sala foi atualizada", - "@roomHasBeenUpgraded": { - "type": "String", - "placeholders": {} - }, - "roomVersion": "Versão da sala", - "@roomVersion": { - "type": "String", - "placeholders": {} - }, - "saveFile": "Guardar ficheiro", - "@saveFile": { - "type": "String", - "placeholders": {} - }, - "search": "Procurar", - "@search": { - "type": "String", - "placeholders": {} - }, - "security": "Segurança", - "@security": { - "type": "String", - "placeholders": {} - }, - "sendFile": "Enviar ficheiro", - "@sendFile": { - "type": "String", - "placeholders": {} - }, - "sendImage": "Enviar imagem", - "@sendImage": { - "type": "String", - "placeholders": {} - }, - "sendMessages": "Enviar mensagens", - "@sendMessages": { - "type": "String", - "placeholders": {} - }, - "sendVideo": "Enviar vídeo", - "@sendVideo": { - "type": "String", - "placeholders": {} - }, - "sentAFile": "{username} enviar um ficheiro", - "@sentAFile": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "sentAnAudio": "{username} enviar um áudio", - "@sentAnAudio": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "sentAPicture": "{username} enviar uma imagem", - "@sentAPicture": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "sentASticker": "{username} enviou um autocolante", - "@sentASticker": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "sentAVideo": "{username} enviou um vídeo", - "@sentAVideo": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "commandHint_clearcache": "Limpar cache", - "@commandHint_clearcache": { - "type": "String", - "description": "Usage hint for the command /clearcache" - }, - "commandHint_create": "Criar uma conversa de grupo vazia\nUsa --no-encryption para desativar a encriptação", - "@commandHint_create": { - "type": "String", - "description": "Usage hint for the command /create" - }, - "commandHint_discardsession": "Descartar sessão", - "@commandHint_discardsession": { - "type": "String", - "description": "Usage hint for the command /discardsession" - }, - "commandHint_dm": "Iniciar uma conversa direta\nUsa --no-encryption para desativar a encriptação", - "@commandHint_dm": { - "type": "String", - "description": "Usage hint for the command /dm" - }, - "dehydrate": "Exportar sessão e limpar dispositivo", - "dehydrateWarning": "Esta ação não pode ser revertida. Assegura-te que guardas bem a cópia de segurança.", - "hydrate": "Restaurar a partir de cópia de segurança", - "hugContent": "{senderName} abraçou-o", - "@hugContent": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "knock": "Bater à porta", - "theyMatch": "Correspondem", - "@theyMatch": { - "type": "String", - "placeholders": {} - }, - "jumpToLastReadMessage": "Saltar para a última mensagem lida", - "commandHint_cuddle": "Mandar um carinho", - "unknownDevice": "Dispositivo desconhecido", - "@unknownDevice": { - "type": "String", - "placeholders": {} - }, - "@completedKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "reportErrorDescription": "😭 Oh não. Ocorreu um problema. Se quiser, pode comunicar este erro aos desenvolvedores.", - "@youAreNoLongerParticipatingInThisChat": { - "type": "String", - "placeholders": {} - }, - "globalChatId": "ID global do chat", - "synchronizingPleaseWaitCounter": " A sincronizar… ({percentage}%)", - "@synchronizingPleaseWaitCounter": { - "type": "String", - "placeholders": { - "percentage": { - "type": "String" - } - } - }, - "@verifySuccess": { - "type": "String", - "placeholders": {} - }, - "setColorTheme": "Definir tema de cor:", - "@warning": { - "type": "String", - "placeholders": {} - }, - "supposedMxid": "Isto deve ser {mxid}", - "@supposedMxid": { - "type": "String", - "placeholders": { - "mxid": { - "type": "String" - } - } - }, - "@goToSpace": { - "type": "String", - "space": {} - }, - "user": "Utilizador", - "youAcceptedTheInvitation": "👍 Aceitou o convite", - "userAndOthersAreTyping": "{username} e {count} outros estão a escrever…", - "@userAndOthersAreTyping": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "count": { - "type": "int" - } - } - }, - "youInvitedBy": "📩 Foi convidado por {user}", - "@youInvitedBy": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "userIsTyping": "{username} está a escrever…", - "@userIsTyping": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "@waitingPartnerAcceptRequest": { - "type": "String", - "placeholders": {} - }, - "@writeAMessage": { - "type": "String", - "placeholders": {} - }, - "appLockDescription": "Bloqueie a aplicação quando não a usa com um código pin", - "youKickedAndBanned": "🙅 Deu kick e baniu {user}", - "@youKickedAndBanned": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "@isReadyForKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "userAndUserAreTyping": "{username} e {username2} estão a escrever…", - "@userAndUserAreTyping": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "username2": { - "type": "String" - } - } - }, - "unread": "Não lido", - "@countReplies": { - "type": "int", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@versionWithNumber": { - "type": "String", - "placeholders": { - "version": { - "type": "String" - } - } - }, - "youRejectedTheInvitation": "Rejeitou o convite", - "newSpaceDescription": "Espaços permitem-lhe consolidar os seus chats e construir comunidades privadas ou públicas.", - "encryptThisChat": "Encriptar este chat", - "@fromTheInvitation": { - "type": "String", - "placeholders": {} - }, - "@countChats": { - "type": "String", - "placeholders": { - "chats": { - "type": "int" - } - } - }, - "reopenChat": "Reabrir chat", - "unpin": "Desfixar", - "@unpin": { - "type": "String", - "placeholders": {} - }, - "spaceIsPublic": "O espaço é público", - "@spaceIsPublic": { - "type": "String", - "placeholders": {} - }, - "@userLevel": { - "type": "String", - "placeholders": { - "level": { - "type": "int" - } - } - }, - "unblockDevice": "Desbloquear Dispositivo", - "@unblockDevice": { - "type": "String", - "placeholders": {} - }, - "countFiles": "{count} ficheiros", - "@countFiles": { - "placeholders": { - "count": { - "type": "int" - } - } - }, - "noKeyForThisMessage": "Isto pode acontecer se a mensagem foi enviada antes de ter iniciado sessão na sua conta neste dispositivo.\n\nTambém é possível que quem enviou tenha o seu dispositivo bloqueado ou ocorreu algo de errado com a conexão de internet.\n\nConsegue ler a mensagem em outra sessão? Então pode transferir a mensagem a partir do mesmo! Vá a Definições > Dispositivos e certifique-se que os seus dispositivos verificaram-se um ao outro. Quando abrir a sala da próxima vez e ambas as sessões estão em primeiro plano, as chaves serão transmitidas automaticamente.\n\nNão quer perder as chaves ao terminar sessão ou ao mudar dispositivos? Certifique-se que tem a cópia de segurança de chat ativa nas definições.", - "shareLocation": "Partilhar localização", - "@shareLocation": { - "type": "String", - "placeholders": {} - }, - "commandHint_markasgroup": "Marcar como grupo", - "storeInAppleKeyChain": "Armazenado na Apple KeyChain", - "chatPermissions": "Permissões de chat", - "@voiceMessage": { - "type": "String", - "placeholders": {} - }, - "storeInAndroidKeystore": "Armazenado em Android KeyStore", - "@weSentYouAnEmail": { - "type": "String", - "placeholders": {} - }, - "@updateInstalled": { - "type": "String", - "placeholders": { - "version": { - "type": "String" - } - } - }, - "synchronizingPleaseWait": "A sincronizar… Por favor aguarde.", - "@synchronizingPleaseWait": { - "type": "String", - "placeholders": {} - }, - "@noUsersFoundWithQuery": { - "type": "String", - "placeholders": { - "query": { - "type": "String" - } - } - }, - "usersMustKnock": "Utilizadores têm que bater à porta", - "whyIsThisMessageEncrypted": "Porque é que esta mensagem é ilegível?", - "setChatDescription": "Definir descrição do chat", - "userLeftTheChat": "🚪 {username} saiu do chat", - "@userLeftTheChat": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "spaceName": "Nome do espaço", - "@spaceName": { - "type": "String", - "placeholders": {} - }, - "importFromZipFile": "Importar a partir de um ficheiro .zip", - "@sentVoiceMessage": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - }, - "duration": { - "type": "String" - } - } - }, - "noOtherDevicesFound": "Nenhum outro dispositivo encontrado", - "@whoIsAllowedToJoinThisGroup": { - "type": "String", - "placeholders": {} - }, - "@redactedBy": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "submit": "Submeter", - "@submit": { - "type": "String", - "placeholders": {} - }, - "unmuteChat": "Ativar o som do chat", - "@unmuteChat": { - "type": "String", - "placeholders": {} - }, - "@yes": { - "type": "String", - "placeholders": {} - }, - "@startedKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "fileIsTooBigForServer": "Não foi possível enviar! O sevidor apenas suporta anexos até {max}.", - "@fileIsTooBigForServer": { - "type": "String", - "placeholders": { - "max": { - "type": "String" - } - } - }, - "verified": "Verificado", - "@verified": { - "type": "String", - "placeholders": {} - }, - "setStatus": "Definir estado", - "@setStatus": { - "type": "String", - "placeholders": {} - }, - "@adminLevel": { - "type": "String", - "placeholders": { - "level": { - "type": "int" - } - } - }, - "readUpToHere": "Lido até aqui", - "@waitingPartnerEmoji": { - "type": "String", - "placeholders": {} - }, - "tryToSendAgain": "Tenter enviar novamente", - "@tryToSendAgain": { - "type": "String", - "placeholders": {} - }, - "aboutHomeserver": "Sobre o {homeserver}", - "@aboutHomeserver": { - "type": "String", - "placeholders": { - "homeserver": { - "type": "String" - } - } - }, - "@visibleForAllParticipants": { - "type": "String", - "placeholders": {} - }, - "@mute": { - "description": "This should be a very short string because there is not much space in the button!" - }, - "archiveRoomDescription": "O chat será movido para o arquivo. Outros utilizadores poderão ver deixou o chat.", - "exportEmotePack": "Exportar pacote de Emotes como .zip", - "@setAsCanonicalAlias": { - "type": "String", - "placeholders": {} - }, - "@whyDoYouWantToReportThis": { - "type": "String", - "placeholders": {} - }, - "@withTheseAddressesRecoveryDescription": { - "type": "String", - "placeholders": {} - }, - "@redactedByBecause": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "reason": { - "type": "String" - } - } - }, - "youHaveWithdrawnTheInvitationFor": "Retirou o convite para o {user}", - "@youHaveWithdrawnTheInvitationFor": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "skip": "Ignorar", - "@skip": { - "type": "String", - "placeholders": {} - }, - "sharedTheLocation": "{username} partilhou a sua localização", - "@sharedTheLocation": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - } - } - }, - "unbannedUser": "{username} levantou o ban a {targetName}", - "@unbannedUser": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "targetName": { - "type": "String" - } - } - }, - "youInvitedUser": "📩 Convidou {user}", - "@youInvitedUser": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "fileHasBeenSavedAt": "O ficheiro foi guardado em {path}", - "@fileHasBeenSavedAt": { - "type": "String", - "placeholders": { - "path": { - "type": "String" - } - } - }, - "@spaceMemberOfCanKnock": { - "type": "String", - "placeholders": { - "spaces": { - "type": "String" - } - } - }, - "invalidInput": "Input inválido!", - "@yourPublicKey": { - "type": "String", - "placeholders": {} - }, - "tooManyRequestsWarning": "Demasiados pedidos. Por favor tente novamente mais tarde!", - "@tooManyRequestsWarning": { - "type": "String", - "placeholders": {} - }, - "swipeRightToLeftToReply": "Deslize da direita para a esquerda para responder", - "doNotShowAgain": "Não mostrar novamente", - "report": "reportar", - "status": "Estado", - "@status": { - "type": "String", - "placeholders": {} - }, - "changedTheChatDescription": "{username} mudou a descrição do chat", - "@verifyStart": { - "type": "String", - "placeholders": {} - }, - "unverified": "Não Verificado", - "@sentCallInformations": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "googlyEyesContent": "{senderName} enviou-lhe olhos esbugalhados", - "@googlyEyesContent": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "youBannedUser": "Baniu {user}", - "@youBannedUser": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "theyDontMatch": "Não Correspondem", - "@theyDontMatch": { - "type": "String", - "placeholders": {} - }, - "@youHaveBeenBannedFromThisChat": { - "type": "String", - "placeholders": {} - }, - "@chatSearchedUntil": { - "type": "String", - "placeholders": { - "time": { - "type": "String" - } - } - }, - "@sessionLostBody": { - "type": "String", - "placeholders": { - "url": { - "type": "String" - }, - "error": { - "type": "String" - } - } - }, - "@thereAreCountUsersBlocked": { - "type": "String", - "count": {} - }, - "hasKnocked": "🚪 {user} bateu à porta", - "@hasKnocked": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "openLinkInBrowser": "Abrir o link no browser", - "disableEncryptionWarning": "Por razões de segurança não pode desativar encriptação em um chat, onde já foi ativado previamente.", - "checkList": "Verificar lista", - "noOneCanJoin": "Ninguém pode juntar-se", - "wrongPinEntered": "Pin introduzido incorreto! Tente novamente daqui a {seconds} segundos...", - "@wrongPinEntered": { - "type": "String", - "placeholders": { - "seconds": { - "type": "int" - } - } - }, - "sendTypingNotifications": "Enviar notificações de digitação", - "accessAndVisibility": "Acesso e visibilidade", - "@verifyTitle": { - "type": "String", - "placeholders": {} - }, - "unknownEncryptionAlgorithm": "Algoritmo de encriptação desconhecido", - "@unknownEncryptionAlgorithm": { - "type": "String", - "placeholders": {} - }, - "importEmojis": "Importar Emojis", - "wasDirectChatDisplayName": "Esvaziar chat (era {oldDisplayName})", - "@wasDirectChatDisplayName": { - "type": "String", - "placeholders": { - "oldDisplayName": { - "type": "String" - } - } - }, - "@whoCanPerformWhichAction": { - "type": "String", - "placeholders": {} - }, - "confirmMatrixId": "Por favor confirme o seu Matrix ID para eliminar a sua conta.", - "@you": { - "type": "String", - "placeholders": {} - }, - "notAnImage": "Não é um ficheiro de imagem.", - "users": "Utilizadores", - "space": "Espaço", - "sourceCode": "Código fonte", - "@sourceCode": { - "type": "String", - "placeholders": {} - }, - "userSentUnknownEvent": "{username} enviou um evento do tipo {type}", - "@userSentUnknownEvent": { - "type": "String", - "placeholders": { - "username": { - "type": "String" - }, - "type": { - "type": "String" - } - } - }, - "@unknownPushRule": { - "type": "String", - "placeholders": { - "rule": { - "type": "String" - } - } - }, - "pleaseEnterANumber": "Por favor introduza um número maior que 0", - "youKicked": "👞 Deu kick a {user}", - "@youKicked": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "jump": "Saltar", - "@reactedWith": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - }, - "reaction": { - "type": "String" - } - } - }, - "sorryThatsNotPossible": "Desculpe... isso não é possível", - "noMoreChatsFound": "Mais nenhum chat encontrado...", - "commandHint_markasdm": "Marcar como sala de mensagem direta para o Matrix ID dado", - "cuddleContent": "{senderName} fez-lhe carinho", - "@cuddleContent": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "@waitingPartnerNumbers": { - "type": "String", - "placeholders": {} - }, - "emoteKeyboardNoRecents": "Emotes recentemente utilizados aparecerão aqui...", - "@emoteKeyboardNoRecents": { - "type": "String", - "placeholders": {} - }, - "startedACall": "{senderName} começou uma chamada", - "@startedACall": { - "type": "String", - "placeholders": { - "senderName": { - "type": "String" - } - } - }, - "@acceptedKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "systemTheme": "Sistema", - "@systemTheme": { - "type": "String", - "placeholders": {} - }, - "@visibilityOfTheChatHistory": { - "type": "String", - "placeholders": {} - }, - "settings": "Definições", - "@settings": { - "type": "String", - "placeholders": {} - }, - "youJoinedTheChat": "Juntou-se ao chat", - "@chatCanBeDiscoveredViaSearchOnServer": { - "type": "String", - "placeholders": { - "server": { - "type": "String" - } - } - }, - "@canceledKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "statusExampleMessage": "Como está hoje?", - "@statusExampleMessage": { - "type": "String", - "placeholders": {} - }, - "commandHint_roomupgrade": "Atualizar esta sala para a versão dada da sala", - "commandHint_hug": "Enviar um abraço", - "replace": "Subsituir", - "@restoreSessionBody": { - "type": "String", - "placeholders": { - "url": { - "type": "String" - }, - "error": { - "type": "String" - } - } - }, - "youUnbannedUser": "Levantou o ban a {user}", - "@youUnbannedUser": { - "placeholders": { - "user": { - "type": "String" - } - } - }, - "@visibleForEveryone": { - "type": "String", - "placeholders": {} - }, - "newSpace": "Novo espaço", - "unknownEvent": "Evento de '{type}' desconhecido", - "@unknownEvent": { - "type": "String", - "placeholders": { - "type": { - "type": "String" - } - } - }, - "@appWantsToUseForLogin": { - "type": "String", - "placeholders": { - "server": { - "type": "String" - } - } - }, - "@unreadChatsInApp": { - "type": "String", - "placeholders": { - "appname": { - "type": "String" - }, - "unread": { - "type": "String" - } - } - }, - "@countVotes": { - "type": "int", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "share": "Partilhar", - "@share": { - "type": "String", - "placeholders": {} - }, - "commandHint_googly": "Enviar alguns olhos esbugalhados", - "@moderatorLevel": { - "type": "String", - "placeholders": { - "level": { - "type": "int" - } - } - }, - "createGroup": "Criar grupo", - "@sendImages": { - "type": "String", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "custom": "Personalizado", - "noBackupWarning": "Aviso! Sem ativar cópia de segurança de chat, perderá acesso às suas mensagens encriptadas. É altamente recomendado que ative a cópia de segurança de chat primeiro antes de terminar sessão.", - "@fromJoining": { - "type": "String", - "placeholders": {} - }, - "importNow": "Importar agora", - "noChatsFoundHere": "Não foi encontrado nenhum chat aqui. Comece um chat novo com alguém ao usar o botão abaixo. ⤵️", - "changedTheChatName": "{username} mudou o nome do chat", - "invite": "Convidar", - "countInvited": "{count} convidados", - "@countInvited": { - "type": "String", - "placeholders": { - "count": { - "type": "int" - } - } - }, - "@spaceMemberOf": { - "type": "String", - "placeholders": { - "spaces": { - "type": "String" - } - } - }, - "@requestedKeyVerification": { - "type": "String", - "placeholders": { - "sender": { - "type": "String" - } - } - }, - "@searchIn": { - "type": "String", - "placeholders": { - "chat": { - "type": "String" - } - } - }, - "unsupportedAndroidVersionLong": "Esta funcionalidade requer uma versão de Android mais nova. Por favor verifique se há atualização ou suporter do Lineage OS.", - "inviteGroupChat": "📨 Convite para chat em grupo", - "storeSecurlyOnThisDevice": "Armazenado de forma segura neste dispositivo", - "discardEdits": "Tem mudanças não guardadas. Descartar as suas edições?", - "@discardEdits": { - "type": "String", - "placeholders": {} - }, - "newPost": "Nova publicação", - "@newPost": { - "type": "String", - "placeholders": {} - }, - "postPhoto": "Publicar foto", - "@postPhoto": { - "type": "String", - "placeholders": {} - }, - "postVideo": "Publicar vídeo", - "@postVideo": { - "type": "String", - "placeholders": {} - }, - "noPostsYet": "Ainda não há publicações. Partilhe a primeira foto ou vídeo!", - "@noPostsYet": { - "type": "String", - "placeholders": {} - }, - "noCommentsYet": "Ainda não há comentários. Seja o primeiro a comentar!", - "@noCommentsYet": { - "type": "String", - "placeholders": {} - }, - "like": "Gostar", - "@like": { - "type": "String", - "placeholders": {} - }, - "unlike": "Não gostar", - "@unlike": { - "type": "String", - "placeholders": {} - }, - "editCaption": "Editar legenda", - "@editCaption": { - "type": "String", - "placeholders": {} - }, - "captionHint": "Legenda", - "@captionHint": { - "type": "String", - "placeholders": {} + } } -} \ No newline at end of file + }, + "account": "Conta", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "{username} ativou encriptação ponta-a-ponta", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "Adicionar correio eletrónico", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "Adicionar ao espaço", + "admin": "Admin", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "alcunha", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Todos(as)", + "@all": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} atendeu a chamada", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Qualquer pessoa pode entrar", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "archive": "Arquivo", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Os utilizadores convidados têm permissão para se juntarem?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Tens a certeza?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Tens a certeza que queres sair?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Para poderes assinar a outra pessoa, por favor, insere a tua senha de armazenamento seguro ou a chave de recuperação.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Aceitar este pedido de verificação de {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "autoplayImages": "Automaticamente reproduzir autocolantes e emotes animados", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "sendOnEnter": "Enviar com Enter", + "badServerLoginTypesException": "O servidor suporta os tipos de início de sessão:\n{serverVersions}\nMas esta aplicação apenas suporta:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "banFromChat": "Banir da conversa", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Banido(a)", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} baniu {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Bloquear dispositivo", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "Bloqueado", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "Cancelar", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "Não é possível abrir o URI {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changeDeviceName": "Alterar nome do dispositivo", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatPermissions": "{username} alterou as permissões da conversa", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} alterou o seu nome para: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} alterou as regras de acesso de visitantes para: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} alterou as regras de entrada", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} alterou as regras de entrada para: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} alterou o seu avatar", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} alterou as alcunhas da sala", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} alterou a ligação de convite", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Alterar palavra-passe", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Alterar o servidor", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Alterar o teu estilo", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Alterar o nome do grupo", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Alterar o teu avatar", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "A encriptação foi corrompida", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Conversa", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Cópia de segurança de conversas", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Detalhes de conversa", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Conversas", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Escolhe uma palavra-passe forte", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Limpar arquivo", + "close": "Fechar", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "Banir o utilizador dado desta sala", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_html": "Enviar texto formatado com HTML", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Convidar o utilizador dado a esta sala", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "Entrar na sala dada", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "Remover o utilizador dado desta sala", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "Sair desta sala", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "Descreve-te", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_myroomavatar": "Definir a tua imagem para esta sala (por mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "Definir o teu nome para esta sala", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "Definir o nível de poder do utilizador dado (por omissão: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "Enviar texto não formatado", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "Enviar respostas como reações", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_send": "Enviar texto", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_unban": "Perdoar o utilizador dado", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandInvalid": "Comando inválido", + "@commandInvalid": { + "type": "String" + }, + "commandMissing": "{command} não é um comando.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "compareEmojiMatch": "Compara e certifica-te que os emojis que se seguem correspondem aos do outro dispositivo:", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Compara e certifica-te que os números que se seguem correspondem aos do outro dispositivo:", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Configurar conversa", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "O contacto foi convidado para o grupo", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "O conteúdo foi denunciado aos admins do servidor", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Copiado para a área de transferência", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Copiar", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Copiar para a área de transferência", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Não foi possível desencriptar mensagem: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count} participantes", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Criar", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "{username} criou a conversa", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "createNewSpace": "Novo espaço", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "Ativo(a) agora", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Escuro", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date} às {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Isto irá desativar a tua conta. Não é reversível! Tens a certeza?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Nível de permissão normal", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "Eliminar", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Eliminar conta", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Eliminar mensagem", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Dispositivos", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Conversas diretas", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Nome de exibição alterado", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Descarregar ficheiro", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "Editar", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Editar servidores bloqueados", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Editar nome de exibição", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Editar alcunhas da sala", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Editar avatar da sala", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Emote já existente!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Código de emote inválido!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Código do emote", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Conversa vazia", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Ativar pacote de emotes globalmente", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Ativar encriptação", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Nunca mais poderás desativar a encriptação. Tens a certeza?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Encriptada", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Encriptação", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "A encriptação não está ativada", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} terminou a chamada", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Insere um endereço de correio eletrónico", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Erro ao obter localização: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "fontSize": "Tamanho da letra", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "Reencaminhar", + "@forward": { + "type": "String", + "placeholders": {} + }, + "group": "Grupo", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "O grupo é público", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "Grupos", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Grupo com {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "São proibidos visitantes", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Podem entrar visitantes", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} revogou o convite para {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Ajuda", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Esconder eventos desconhecidos", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignore": "Ignorar", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Utilizadores ignorados", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Eu cliquei na ligação", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Senha ou chave de recuperação incorretos", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Convidar contacto", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Convidar contacto para {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "Convidado(a)", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "{username} convidou {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Utilizadores(as) convidados(as) apenas", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} convidou-te para o FluffyChat.\n1. Instala o FluffyChat: https://fluffychat.im\n2. Regista-te ou inicia sessão.\n3. Abre a ligação de convite: {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "está a escrever…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "{username} entrou na conversa", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Entrar na sala", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "{username} expulsou {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "{username} expulsou e baniu {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Expulsar da conversa", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Ativo(a) pela última vez: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Sair", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Saiu da conversa", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Claro", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Carregar mais {count} participantes", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "A carregar... Por favor aguarde.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Carregar mais…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "Os serviços de localização estão desativados. Por favor, ativa-os para poder partilhar a sua localização.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "Permissão de localização recusada. Por favor, concede permissão para poderes partilhar a tua posição.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "login": "Entrar", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Entrar em {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Sair", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Mencionar", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "Mensagens", + "@messages": { + "type": "String", + "placeholders": {} + }, + "moderator": "Moderador", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Silenciar conversa", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Nova conversa", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "Nova mensagem no FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Novo pedido de verificação!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "Próximo", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "Não", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Nenhuma ligação ao servidor", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Nenhuns emotes encontrados. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Só podes ativar a encriptação quando a sala não for publicamente acessível.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Parece que não tens nenhuns serviços da Google no seu telemóvel. É uma boa decisão para a sua privacidade! Para receber notificações instantâneas no FluffyChat, recomendamos que uses https://microg.org/ ou https://unifiedpush.org/.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} não é um servidor Matrix, usar {server2}?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "changedTheChatAvatar": "{username} alterou o avatar da conversa", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} alterou a visibilidade do histórico para: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} alterou as regras de acesso de visitantes", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} alterou a visibilidade do histórico", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sendAMessage": "Enviar a mensagem", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAudio": "Enviar áudio", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Enviar como texto", + "@sendAsText": { + "type": "String" + }, + "send": "Enviar", + "@send": { + "type": "String", + "placeholders": {} + }, + "appLock": "Bloqueio da aplicação", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "Ainda não adicionaste uma forma de recuperar a tua palavra-passe.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Sem permissão", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Não foram encontradas nenhumas salas…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Notificações", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "Estão {count} utilizadores(as) a escrever…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "obtainingLocation": "A obter localização…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "ok": "ok", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "A cópia de segurança online de chaves está ativada", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Ups! Infelizmente, ocorreu um erro ao configurar as notificações instantâneas.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Ups, algo correu mal…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Abrir aplicação para ler mensagens", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Abrir câmara", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "oneClientLoggedOut": "Um dos teus clientes terminou sessão", + "addAccount": "Adicionar conta", + "editBundlesForAccount": "Editar pacotes para esta conta", + "addToBundle": "Adicionar ao pacote", + "removeFromBundle": "Remover deste pacote", + "bundleName": "Nome do pacote", + "openInMaps": "Abrir nos mapas", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "link": "Ligação", + "or": "Ou", + "@or": { + "type": "String", + "placeholders": {} + }, + "participant": "Participante", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "senha ou chave de recuperação", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Palavra-passe", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Palavra-passe esquecida", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "A palavra-passe foi alterada", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Recuperação de palavra-passe", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Afixar", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Por favor, escolhe um código-passe", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Por favor, clica na ligação no correio eletrónico e depois continua.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Por favor, insere a tua palavra-passe", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Por favor, insere o teu código", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Por favor, insere o teu nome de utilizador", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Por favor, segue as instruções no website e clica em \"Seguinte\".", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "Privacidade", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Salas públicas", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "Razão", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} eliminou um evento", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactMessage": "Eliminar mensagem", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reject": "Rejeitar", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} rejeitou o convite", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Remover", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Remover todos os outros dispositivos", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Perdoar nesta conversa", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Remover o teu avatar", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Substituir sala com versão mais recente", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "Responder", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Reportar mensagem", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "A sala foi atualizada", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Versão da sala", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Guardar ficheiro", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "search": "Procurar", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "Segurança", + "@security": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Enviar ficheiro", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Enviar imagem", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Enviar mensagens", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Enviar vídeo", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "{username} enviar um ficheiro", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "{username} enviar um áudio", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "{username} enviar uma imagem", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "{username} enviou um autocolante", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "{username} enviou um vídeo", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "commandHint_clearcache": "Limpar cache", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_create": "Criar uma conversa de grupo vazia\nUsa --no-encryption para desativar a encriptação", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_discardsession": "Descartar sessão", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_dm": "Iniciar uma conversa direta\nUsa --no-encryption para desativar a encriptação", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "dehydrate": "Exportar sessão e limpar dispositivo", + "dehydrateWarning": "Esta ação não pode ser revertida. Assegura-te que guardas bem a cópia de segurança.", + "hydrate": "Restaurar a partir de cópia de segurança", + "hugContent": "{senderName} abraçou-o", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "knock": "Bater à porta", + "theyMatch": "Correspondem", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "jumpToLastReadMessage": "Saltar para a última mensagem lida", + "commandHint_cuddle": "Mandar um carinho", + "unknownDevice": "Dispositivo desconhecido", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "reportErrorDescription": "😭 Oh não. Ocorreu um problema. Se quiser, pode comunicar este erro aos desenvolvedores.", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "globalChatId": "ID global do chat", + "synchronizingPleaseWaitCounter": " A sincronizar… ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "setColorTheme": "Definir tema de cor:", + "@warning": { + "type": "String", + "placeholders": {} + }, + "supposedMxid": "Isto deve ser {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "@goToSpace": { + "type": "String", + "space": {} + }, + "user": "Utilizador", + "youAcceptedTheInvitation": "👍 Aceitou o convite", + "userAndOthersAreTyping": "{username} e {count} outros estão a escrever…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "youInvitedBy": "📩 Foi convidado por {user}", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "userIsTyping": "{username} está a escrever…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "appLockDescription": "Bloqueie a aplicação quando não a usa com um código pin", + "youKickedAndBanned": "🙅 Deu kick e baniu {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "userAndUserAreTyping": "{username} e {username2} estão a escrever…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "unread": "Não lido", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "youRejectedTheInvitation": "Rejeitou o convite", + "newSpaceDescription": "Espaços permitem-lhe consolidar os seus chats e construir comunidades privadas ou públicas.", + "encryptThisChat": "Encriptar este chat", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "reopenChat": "Reabrir chat", + "unpin": "Desfixar", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "O espaço é público", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "unblockDevice": "Desbloquear Dispositivo", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "countFiles": "{count} ficheiros", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "noKeyForThisMessage": "Isto pode acontecer se a mensagem foi enviada antes de ter iniciado sessão na sua conta neste dispositivo.\n\nTambém é possível que quem enviou tenha o seu dispositivo bloqueado ou ocorreu algo de errado com a conexão de internet.\n\nConsegue ler a mensagem em outra sessão? Então pode transferir a mensagem a partir do mesmo! Vá a Definições > Dispositivos e certifique-se que os seus dispositivos verificaram-se um ao outro. Quando abrir a sala da próxima vez e ambas as sessões estão em primeiro plano, as chaves serão transmitidas automaticamente.\n\nNão quer perder as chaves ao terminar sessão ou ao mudar dispositivos? Certifique-se que tem a cópia de segurança de chat ativa nas definições.", + "shareLocation": "Partilhar localização", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "commandHint_markasgroup": "Marcar como grupo", + "storeInAppleKeyChain": "Armazenado na Apple KeyChain", + "chatPermissions": "Permissões de chat", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "storeInAndroidKeystore": "Armazenado em Android KeyStore", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "synchronizingPleaseWait": "A sincronizar… Por favor aguarde.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "usersMustKnock": "Utilizadores têm que bater à porta", + "whyIsThisMessageEncrypted": "Porque é que esta mensagem é ilegível?", + "setChatDescription": "Definir descrição do chat", + "userLeftTheChat": "🚪 {username} saiu do chat", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "spaceName": "Nome do espaço", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "importFromZipFile": "Importar a partir de um ficheiro .zip", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "noOtherDevicesFound": "Nenhum outro dispositivo encontrado", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "submit": "Submeter", + "@submit": { + "type": "String", + "placeholders": {} + }, + "unmuteChat": "Ativar o som do chat", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "@yes": { + "type": "String", + "placeholders": {} + }, + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "fileIsTooBigForServer": "Não foi possível enviar! O sevidor apenas suporta anexos até {max}.", + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "verified": "Verificado", + "@verified": { + "type": "String", + "placeholders": {} + }, + "setStatus": "Definir estado", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "readUpToHere": "Lido até aqui", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Tenter enviar novamente", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "aboutHomeserver": "Sobre o {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "archiveRoomDescription": "O chat será movido para o arquivo. Outros utilizadores poderão ver deixou o chat.", + "exportEmotePack": "Exportar pacote de Emotes como .zip", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "youHaveWithdrawnTheInvitationFor": "Retirou o convite para o {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "skip": "Ignorar", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} partilhou a sua localização", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "unbannedUser": "{username} levantou o ban a {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 Convidou {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "fileHasBeenSavedAt": "O ficheiro foi guardado em {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "invalidInput": "Input inválido!", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Demasiados pedidos. Por favor tente novamente mais tarde!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "swipeRightToLeftToReply": "Deslize da direita para a esquerda para responder", + "doNotShowAgain": "Não mostrar novamente", + "report": "reportar", + "status": "Estado", + "@status": { + "type": "String", + "placeholders": {} + }, + "changedTheChatDescription": "{username} mudou a descrição do chat", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "unverified": "Não Verificado", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "googlyEyesContent": "{senderName} enviou-lhe olhos esbugalhados", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "youBannedUser": "Baniu {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "theyDontMatch": "Não Correspondem", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "hasKnocked": "🚪 {user} bateu à porta", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "openLinkInBrowser": "Abrir o link no browser", + "disableEncryptionWarning": "Por razões de segurança não pode desativar encriptação em um chat, onde já foi ativado previamente.", + "checkList": "Verificar lista", + "noOneCanJoin": "Ninguém pode juntar-se", + "wrongPinEntered": "Pin introduzido incorreto! Tente novamente daqui a {seconds} segundos...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "sendTypingNotifications": "Enviar notificações de digitação", + "accessAndVisibility": "Acesso e visibilidade", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Algoritmo de encriptação desconhecido", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "importEmojis": "Importar Emojis", + "wasDirectChatDisplayName": "Esvaziar chat (era {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "confirmMatrixId": "Por favor confirme o seu Matrix ID para eliminar a sua conta.", + "@you": { + "type": "String", + "placeholders": {} + }, + "notAnImage": "Não é um ficheiro de imagem.", + "users": "Utilizadores", + "space": "Espaço", + "sourceCode": "Código fonte", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "userSentUnknownEvent": "{username} enviou um evento do tipo {type}", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "pleaseEnterANumber": "Por favor introduza um número maior que 0", + "youKicked": "👞 Deu kick a {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "jump": "Saltar", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "sorryThatsNotPossible": "Desculpe... isso não é possível", + "noMoreChatsFound": "Mais nenhum chat encontrado...", + "commandHint_markasdm": "Marcar como sala de mensagem direta para o Matrix ID dado", + "cuddleContent": "{senderName} fez-lhe carinho", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "emoteKeyboardNoRecents": "Emotes recentemente utilizados aparecerão aqui...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} começou uma chamada", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "systemTheme": "Sistema", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "settings": "Definições", + "@settings": { + "type": "String", + "placeholders": {} + }, + "youJoinedTheChat": "Juntou-se ao chat", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "statusExampleMessage": "Como está hoje?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "commandHint_roomupgrade": "Atualizar esta sala para a versão dada da sala", + "commandHint_hug": "Enviar um abraço", + "replace": "Subsituir", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "youUnbannedUser": "Levantou o ban a {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "newSpace": "Novo espaço", + "unknownEvent": "Evento de '{type}' desconhecido", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "share": "Partilhar", + "@share": { + "type": "String", + "placeholders": {} + }, + "commandHint_googly": "Enviar alguns olhos esbugalhados", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "createGroup": "Criar grupo", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "custom": "Personalizado", + "noBackupWarning": "Aviso! Sem ativar cópia de segurança de chat, perderá acesso às suas mensagens encriptadas. É altamente recomendado que ative a cópia de segurança de chat primeiro antes de terminar sessão.", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "importNow": "Importar agora", + "noChatsFoundHere": "Não foi encontrado nenhum chat aqui. Comece um chat novo com alguém ao usar o botão abaixo. ⤵️", + "changedTheChatName": "{username} mudou o nome do chat", + "invite": "Convidar", + "countInvited": "{count} convidados", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "unsupportedAndroidVersionLong": "Esta funcionalidade requer uma versão de Android mais nova. Por favor verifique se há atualização ou suporter do Lineage OS.", + "inviteGroupChat": "📨 Convite para chat em grupo", + "storeSecurlyOnThisDevice": "Armazenado de forma segura neste dispositivo", + "discardEdits": "Tem mudanças não guardadas. Descartar as suas edições?", + "@discardEdits": { + "type": "String", + "placeholders": {} + }, + "newPost": "Nova publicação", + "@newPost": { + "type": "String", + "placeholders": {} + }, + "postPhoto": "Publicar foto", + "@postPhoto": { + "type": "String", + "placeholders": {} + }, + "postVideo": "Publicar vídeo", + "@postVideo": { + "type": "String", + "placeholders": {} + }, + "noPostsYet": "Ainda não há publicações. Partilhe a primeira foto ou vídeo!", + "@noPostsYet": { + "type": "String", + "placeholders": {} + }, + "noCommentsYet": "Ainda não há comentários. Seja o primeiro a comentar!", + "@noCommentsYet": { + "type": "String", + "placeholders": {} + }, + "like": "Gostar", + "@like": { + "type": "String", + "placeholders": {} + }, + "unlike": "Não gostar", + "@unlike": { + "type": "String", + "placeholders": {} + }, + "editCaption": "Editar legenda", + "@editCaption": { + "type": "String", + "placeholders": {} + }, + "captionHint": "Legenda", + "@captionHint": { + "type": "String", + "placeholders": {} + }, + "areYouSureDeletePost": "Eliminar" +} diff --git a/lib/pages/archive/archive.dart b/lib/pages/archive/archive.dart index 4f4da2d..1622e3c 100644 --- a/lib/pages/archive/archive.dart +++ b/lib/pages/archive/archive.dart @@ -31,13 +31,32 @@ class ArchiveController extends State { context: context, future: () async { Logs().v('Forget room ${archive.last.room.getLocalizedDisplayname()}'); - await archive[i].room.forget(); + await forgetRoom(archive[i].room); archive.removeAt(i); }, ); setState(() {}); } + /// Forgets [room] and treats a room that is already gone on the server as + /// success, so a leftover local copy can always be removed without errors. + Future forgetRoom(Room room) async { + try { + await room.forget(); + } on MatrixException catch (e, s) { + if (!{ + MatrixError.M_FORBIDDEN, + MatrixError.M_NOT_FOUND, + MatrixError.M_UNKNOWN, + }.contains(e.error)) { + Logs().w('Failed to forget room ${room.id}', e, s); + rethrow; + } + Logs().w('Room ${room.id} is already gone, cleaning up locally...', e, s); + room.client.rooms.remove(room); + } + } + Future forgetAllAction() async { final archive = this.archive; if (archive.isEmpty) return; @@ -62,7 +81,7 @@ class ArchiveController extends State { Logs().v( 'Forget room ${archive.last.room.getLocalizedDisplayname()}', ); - await archive.last.room.forget(); + await forgetRoom(archive.last.room); archive.removeLast(); } }, diff --git a/lib/pages/chat/chat.dart b/lib/pages/chat/chat.dart index 739b886..1ad454e 100644 --- a/lib/pages/chat/chat.dart +++ b/lib/pages/chat/chat.dart @@ -10,7 +10,6 @@ import 'package:collection/collection.dart'; import 'package:desktop_drop/desktop_drop.dart'; import 'package:emoji_picker_flutter/emoji_picker_flutter.dart'; import 'package:file_picker/file_picker.dart'; -import 'package:tatchat/config/app_config.dart'; import 'package:tatchat/config/setting_keys.dart'; import 'package:tatchat/config/themes.dart'; import 'package:tatchat/l10n/l10n.dart'; @@ -28,6 +27,7 @@ import 'package:tatchat/utils/matrix_live_kit_calls/matrix_live_kit_call.dart'; import 'package:tatchat/utils/matrix_sdk_extensions/event_extension.dart'; import 'package:tatchat/utils/matrix_sdk_extensions/filtered_timeline_extension.dart'; import 'package:tatchat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/room_extension.dart'; import 'package:tatchat/utils/other_party_can_receive.dart'; import 'package:tatchat/utils/platform_infos.dart'; import 'package:tatchat/utils/show_scaffold_dialog.dart'; @@ -85,7 +85,7 @@ class ChatPage extends StatelessWidget { ); } - if (room.tags.keys.contains(AppConfig.muralTag)) { + if (room.isMural) { return MuralChatPage(key: Key('mural_page_$roomId'), roomId: roomId); } diff --git a/lib/pages/chat/chat_event_list.dart b/lib/pages/chat/chat_event_list.dart index 51190d3..09cb4de 100644 --- a/lib/pages/chat/chat_event_list.dart +++ b/lib/pages/chat/chat_event_list.dart @@ -22,6 +22,7 @@ import 'package:scroll_to_index/scroll_to_index.dart'; import '../../config/app_config.dart'; import '../../utils/date_time_extension.dart'; +import '../../utils/matrix_sdk_extensions/room_extension.dart'; class ChatEventList extends StatelessWidget { final ChatController controller; @@ -237,6 +238,9 @@ class ChatEventList extends StatelessWidget { ), ) : null, + fullWidthCard: + controller.activeThreadId == null && + controller.room.isCanal, ), ], ), diff --git a/lib/pages/chat/chat_view.dart b/lib/pages/chat/chat_view.dart index 4c54dbf..9f81e5d 100644 --- a/lib/pages/chat/chat_view.dart +++ b/lib/pages/chat/chat_view.dart @@ -25,6 +25,7 @@ import 'package:tatchat/widgets/pulsating_widget.dart'; import 'package:material_ui/material_ui.dart'; import 'package:matrix/matrix.dart'; +import '../../utils/matrix_sdk_extensions/room_extension.dart'; import '../../utils/stream_extension.dart'; import 'chat_emoji_picker.dart'; import 'chat_input_row.dart'; @@ -403,7 +404,13 @@ class ChatView extends StatelessWidget { ) : controller.room.canSendDefaultMessages && controller.room.membership == - Membership.join + Membership.join && + (controller.room.isCanal && + controller.activeThreadId == + null + ? controller.room.ownPowerLevel >= + PowerLevel.admin + : true) ? Material( clipBehavior: Clip.hardEdge, color: diff --git a/lib/pages/chat/events/message.dart b/lib/pages/chat/events/message.dart index 8632019..7dca1c4 100644 --- a/lib/pages/chat/events/message.dart +++ b/lib/pages/chat/events/message.dart @@ -55,6 +55,12 @@ class Message extends StatelessWidget { final bool isCollapsed; final Set bigEmojis; + /// Renders the message as a full-width publication card (used in canal + /// rooms). Keeps every message feature (reply, reactions, edit, delete, + /// thread…), but drops the left/right bubble layout and stretches the + /// "bubble" over the whole available width. + final bool fullWidthCard; + const Message( this.event, { this.nextEvent, @@ -79,6 +85,7 @@ class Message extends StatelessWidget { this.onExpand, required this.enterThread, this.isCollapsed = false, + this.fullWidthCard = false, super.key, }); @@ -105,7 +112,12 @@ class Message extends StatelessWidget { final client = Matrix.of(context).client; final ownMessage = event.senderId == client.userID; - final alignment = ownMessage ? Alignment.topRight : Alignment.topLeft; + final card = fullWidthCard; + final alignment = card + ? Alignment.topLeft + : ownMessage + ? Alignment.topRight + : Alignment.topLeft; var color = theme.colorScheme.surfaceContainerHigh; final displayTime = @@ -128,6 +140,10 @@ class Message extends StatelessWidget { previousEvent!.senderId == event.senderId && previousEvent!.originServerTs.sameEnvironment(event.originServerTs); + // In card mode the sender name moves inside the card, so show it even for + // own messages (otherwise a publication feed would be anonymous). + final showSenderName = !nextEventSameSender && (card || !ownMessage); + final textColor = ownMessage ? theme.onBubbleColor : theme.colorScheme.onSurface; @@ -136,21 +152,27 @@ class Message extends StatelessWidget { ? theme.colorScheme.onTertiaryContainer : theme.colorScheme.tertiary; - final rowMainAxisAlignment = ownMessage + final rowMainAxisAlignment = card + ? MainAxisAlignment.start + : ownMessage ? MainAxisAlignment.end : MainAxisAlignment.start; final displayEvent = event.getDisplayEvent(timeline); const hardCorner = Radius.circular(3); const roundedCorner = Radius.circular(AppConfig.borderRadius); - final borderRadius = BorderRadius.only( - topLeft: !ownMessage ? hardCorner : roundedCorner, - topRight: ownMessage && nextEventSameSender ? hardCorner : roundedCorner, - bottomLeft: !ownMessage && previousEventSameSender - ? hardCorner - : roundedCorner, - bottomRight: ownMessage ? hardCorner : roundedCorner, - ); + final borderRadius = card + ? BorderRadius.all(roundedCorner) + : BorderRadius.only( + topLeft: !ownMessage ? hardCorner : roundedCorner, + topRight: ownMessage && nextEventSameSender + ? hardCorner + : roundedCorner, + bottomLeft: !ownMessage && previousEventSameSender + ? hardCorner + : roundedCorner, + bottomRight: ownMessage ? hardCorner : roundedCorner, + ); const avatarSize = Avatar.defaultSize; final noBubble = ({ @@ -229,9 +251,9 @@ class Message extends StatelessWidget { : SwipeDirection.startToEnd, onSwipe: (_) => onSwipe(), child: Container( - constraints: const BoxConstraints( - maxWidth: FluffyThemes.maxTimelineWidth, - ), + constraints: card + ? const BoxConstraints() + : const BoxConstraints(maxWidth: FluffyThemes.maxTimelineWidth), padding: EdgeInsets.only( left: 8.0, right: 8.0, @@ -242,7 +264,11 @@ class Message extends StatelessWidget { ), child: Column( mainAxisSize: .min, - crossAxisAlignment: ownMessage ? .end : .start, + crossAxisAlignment: card + ? CrossAxisAlignment.stretch + : ownMessage + ? .end + : .start, children: [ Stack( clipBehavior: Clip.none, @@ -275,7 +301,9 @@ class Message extends StatelessWidget { crossAxisAlignment: .start, mainAxisAlignment: rowMainAxisAlignment, children: [ - if (longPressSelect && !event.redacted) + if (card) + const SizedBox.shrink() + else if (longPressSelect && !event.redacted) SizedBox( height: avatarSize, width: avatarSize, @@ -318,70 +346,76 @@ class Message extends StatelessWidget { crossAxisAlignment: .start, mainAxisSize: .min, children: [ - Padding( - padding: EdgeInsets.only(left: 8.0), - child: Row( - mainAxisAlignment: ownMessage ? .end : .start, - children: [ - if (sender.powerLevel.role != - PowerLevelRole.user && - !nextEventSameSender && - !ownMessage && - !event.room.isDirectChat) - Padding( - padding: const EdgeInsets.only( - right: 2.0, + if (!card) + Padding( + padding: EdgeInsets.only(left: 8.0), + child: Row( + mainAxisAlignment: card + ? .start + : ownMessage + ? .end + : .start, + children: [ + if (sender.powerLevel.role != + PowerLevelRole.user && + !nextEventSameSender && + !ownMessage && + !event.room.isDirectChat) + Padding( + padding: const EdgeInsets.only( + right: 2.0, + ), + child: Icon( + sender.powerLevel.role == + PowerLevelRole.moderator + ? Icons.add_moderator_outlined + : Icons.admin_panel_settings, + size: 14, + color: theme + .colorScheme + .onPrimaryContainer, + ), ), - child: Icon( - sender.powerLevel.role == - PowerLevelRole.moderator - ? Icons.add_moderator_outlined - : Icons.admin_panel_settings, - size: 14, - color: theme - .colorScheme - .onPrimaryContainer, - ), - ), - if ((!nextEventSameSender) && !ownMessage) - FutureBuilder( - future: event.fetchSenderUser(), - builder: (context, snapshot) { - final displayname = - snapshot.data?.calcDisplayname() ?? - sender.calcDisplayname(); - return ConstrainedBox( - constraints: BoxConstraints( - maxWidth: 200, - ), - child: Text( - displayname, - style: TextStyle( - fontWeight: FontWeight.bold, - color: event.room.isDirectChat - ? Colors.transparent - : (theme.brightness == - Brightness.light - ? displayname - .colorScheme - .primary - : displayname - .colorScheme - .primaryContainer), - fontSize: 11, - shadows: event.room.isDirectChat - ? null - : wallpaperTextShadow, + if ((!nextEventSameSender) && !ownMessage) + FutureBuilder( + future: event.fetchSenderUser(), + builder: (context, snapshot) { + final displayname = + snapshot.data + ?.calcDisplayname() ?? + sender.calcDisplayname(); + return ConstrainedBox( + constraints: BoxConstraints( + maxWidth: 200, ), - maxLines: 1, - overflow: TextOverflow.ellipsis, - ), - ); - }, - ), - ], + child: Text( + displayname, + style: TextStyle( + fontWeight: FontWeight.bold, + color: event.room.isDirectChat + ? Colors.transparent + : (theme.brightness == + Brightness.light + ? displayname + .colorScheme + .primary + : displayname + .colorScheme + .primaryContainer), + fontSize: 11, + shadows: event.room.isDirectChat + ? null + : wallpaperTextShadow, + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ); + }, + ), + ], + ), ), - ), Container( alignment: alignment, @@ -438,6 +472,7 @@ class Message extends StatelessWidget { ), animateIn: animateIn, child: Container( + width: card ? double.infinity : null, decoration: BoxDecoration( color: noBubble ? Colors.transparent @@ -458,15 +493,108 @@ class Message extends StatelessWidget { AppConfig.borderRadius, ), ), - constraints: const BoxConstraints( - maxWidth: - FluffyThemes.columnWidth * 1.5, + constraints: BoxConstraints( + maxWidth: card + ? double.infinity + : FluffyThemes.columnWidth * 1.5, ), child: Column( mainAxisSize: .min, crossAxisAlignment: CrossAxisAlignment.start, children: [ + if (card && showSenderName) + Container( + padding: + const EdgeInsets.fromLTRB( + 16, + 12, + 16, + 0, + ), + child: Row( + children: [ + if (sender + .powerLevel + .role != + PowerLevelRole.user) + Padding( + padding: + const EdgeInsets.only( + right: 2.0, + ), + child: Icon( + sender + .powerLevel + .role == + PowerLevelRole + .moderator + ? Icons + .add_moderator_outlined + : Icons + .admin_panel_settings, + size: 14, + color: theme + .colorScheme + .onPrimaryContainer, + ), + ), + Expanded( + child: FutureBuilder( + future: event + .fetchSenderUser(), + builder: (context, snapshot) { + final displayname = + snapshot.data + ?.calcDisplayname() ?? + sender + .calcDisplayname(); + return Text( + displayname, + style: TextStyle( + fontWeight: + FontWeight + .bold, + color: + theme.brightness == + Brightness + .light + ? displayname + .colorScheme + .primary + : displayname + .colorScheme + .primaryContainer, + fontSize: 12, + ), + maxLines: 1, + overflow: + TextOverflow + .ellipsis, + ); + }, + ), + ), + if (displayTime && + event + .status + .isSent) ...[ + const SizedBox(width: 8), + Text( + event.originServerTs + .localizedTimeOfDay( + context, + ), + style: TextStyle( + color: + eventStateTextColor, + fontSize: 11, + ), + ), + ], + ], + ), + ), if (event.inReplyToEventId( includingFallback: false, ) != @@ -557,7 +685,9 @@ class Message extends StatelessWidget { child: !hasReactions ? const SizedBox.shrink() : Container( - alignment: ownMessage + alignment: card + ? Alignment.centerLeft + : ownMessage ? Alignment.centerRight : Alignment.centerLeft, padding: EdgeInsets.only( @@ -569,7 +699,11 @@ class Message extends StatelessWidget { ), ), Row( - mainAxisAlignment: ownMessage ? .end : .start, + mainAxisAlignment: card + ? .start + : ownMessage + ? .end + : .start, children: [ const SizedBox(width: 8), if (event.status.isSent && @@ -643,7 +777,9 @@ class Message extends StatelessWidget { ], ), Align( - alignment: ownMessage + alignment: card + ? Alignment.bottomLeft + : ownMessage ? Alignment.bottomRight : Alignment.bottomLeft, child: AnimatedSize( @@ -861,19 +997,24 @@ class Message extends StatelessWidget { child: threadChildren.isEmpty ? const SizedBox.shrink() : Padding( - padding: const EdgeInsets.only( - top: 2.0, - bottom: 8.0, - left: avatarSize + 8, - ), + padding: const EdgeInsets.only(top: 2.0, bottom: 8.0) + .add( + EdgeInsets.only( + left: card ? 8.0 : avatarSize + 8, + ), + ), child: ConstrainedBox( - constraints: const BoxConstraints( - maxWidth: FluffyThemes.columnWidth * 1.5, + constraints: BoxConstraints( + maxWidth: card + ? double.infinity + : FluffyThemes.columnWidth * 1.5, ), child: TextButton.icon( style: TextButton.styleFrom( shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(4), + borderRadius: BorderRadius.circular( + AppConfig.borderRadius, + ), ), foregroundColor: theme.colorScheme.onSecondaryContainer, diff --git a/lib/pages/chat_list/chat_list.dart b/lib/pages/chat_list/chat_list.dart index 48e38a5..8bd5305 100644 --- a/lib/pages/chat_list/chat_list.dart +++ b/lib/pages/chat_list/chat_list.dart @@ -14,6 +14,7 @@ import 'package:tatchat/pages/chat_list/tabs/home_tab.dart'; import 'package:tatchat/utils/error_reporter.dart'; import 'package:tatchat/utils/localized_exception_extension.dart'; import 'package:tatchat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/room_extension.dart'; import 'package:tatchat/utils/platform_infos.dart'; import 'package:tatchat/utils/show_scaffold_dialog.dart'; import 'package:tatchat/utils/show_update_snackbar.dart'; @@ -402,6 +403,7 @@ class ChatListController extends State } StreamSubscription? _onRoomTagUpdate; + StreamSubscription? _backfillSubscription; @override void initState() { @@ -411,6 +413,8 @@ class ChatListController extends State scrollController.addListener(_onScroll); _waitForFirstSync(); + _backfillSubscription = + _clientStream.stream.listen((_) => backfillRoomTypeMarkers()); if (PlatformInfos.isMobile) { _callEventSubscription = FlutterCallkitIncoming.onEvent.listen( _onCallEvent, @@ -474,6 +478,7 @@ class ChatListController extends State _intentFileStreamSubscription?.cancel(); _callEventSubscription?.cancel(); _onRoomTagUpdate?.cancel(); + _backfillSubscription?.cancel(); scrollController.removeListener(_onScroll); searchController.dispose(); searchFocusNode.dispose(); @@ -775,7 +780,10 @@ class ChatListController extends State if (confirmed == OkCancelResult.cancel) return; if (!mounted) return; - await showFutureLoadingDialog(context: context, future: room.leave); + await showFutureLoadingDialog( + context: context, + future: () => leaveRoom(room), + ); return; case ChatContextAction.addToSpace: @@ -901,6 +909,65 @@ class ChatListController extends State bool waitForFirstSync = false; + /// Leaves the room locally and removes it from the local database. + Future leaveRoom(Room room) async { + try { + await room.leave(); + } on MatrixException catch (e, s) { + // If the room was already left on the server (e.g. a stale local copy + // reappeared after a restart) the leave request fails, but the user + // intent (room not being listed anymore) is already fulfilled. Clean up + // locally instead of showing an error. + if (!{ + MatrixError.M_FORBIDDEN, + MatrixError.M_NOT_FOUND, + MatrixError.M_UNKNOWN, + }.contains(e.error)) { + Logs().w('Failed to leave room ${room.id}', e, s); + rethrow; + } + Logs().w('Room ${room.id} is already gone, cleaning up locally...', e, s); + } + final client = room.client; + // Make sure the room does not reappear from the local database after an + // app restart, even if the leave sync did not run in time. + await client.database.forgetRoom(room.id); + client.rooms.remove(room); + } + + /// Loads the shared [roomTypeStateEvent] marker from the synced room state + /// (from the local database for partially loaded rooms) and writes it for + /// existing canal/mural rooms that only have the per-account tag of the + /// creating account. This makes the category visible right after the sync, + /// without having to open the room first. Only admins can write the marker, + /// non-admin members simply read it. + Future backfillRoomTypeMarkers() async { + final client = Matrix.of(context).client; + if (client.rooms.isEmpty) return; + for (final room in client.rooms) { + if (room.membership != Membership.join) continue; + if (room.roomType != null) continue; + // Partial rooms do not keep unimportant state events (like our room type + // marker) in memory, so load them from the local database first. + await room.postLoad(); + final type = + room.roomType ?? + (room.tags.keys.contains(AppConfig.canalTag) + ? 'canal' + : room.tags.keys.contains(AppConfig.muralTag) + ? 'mural' + : null); + if (type == null || room.roomType == type) continue; + if (room.ownPowerLevel < PowerLevel.admin) continue; + try { + await room.setRoomType(type); + } catch (e, s) { + Logs().w('Failed to backfill room type $type for ${room.id}', e, s); + } + } + if (mounted) setState(() {}); + } + Future _waitForFirstSync() async { final router = GoRouter.of(context); final client = Matrix.of(context).client; @@ -921,6 +988,7 @@ class ChatListController extends State setState(() { waitForFirstSync = true; }); + backfillRoomTypeMarkers(); if (client.userDeviceKeys[client.userID!]?.deviceKeys.values.any( (device) => !device.verified && !device.blocked, diff --git a/lib/pages/chat_list/chat_list_body.dart b/lib/pages/chat_list/chat_list_body.dart index 65cc8f2..3752c20 100644 --- a/lib/pages/chat_list/chat_list_body.dart +++ b/lib/pages/chat_list/chat_list_body.dart @@ -4,12 +4,12 @@ // SPDX-License-Identifier: AGPL-3.0-or-later import 'package:cupertino_ui/cupertino_ui.dart'; -import 'package:tatchat/config/app_config.dart'; import 'package:tatchat/l10n/l10n.dart'; import 'package:tatchat/pages/chat_list/chat_list.dart'; import 'package:tatchat/pages/chat_list/chat_list_item.dart'; import 'package:tatchat/pages/chat_list/dummy_chat_list_item.dart'; import 'package:tatchat/pages/chat_list/search_title.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/room_extension.dart'; import 'package:tatchat/utils/stream_extension.dart'; import 'package:tatchat/widgets/adaptive_dialogs/public_room_dialog.dart'; import 'package:tatchat/widgets/avatar.dart'; @@ -59,8 +59,9 @@ class ChatListViewBody extends StatelessWidget { .where( (room) => !room.isSpace && - !room.tags.keys.contains(AppConfig.canalTag) && - !room.tags.keys.contains(AppConfig.muralTag) && + !room.isLeftOrBanned && + !room.isCanal && + !room.isMural && spaceDelegateCandidates[room.id] == null, ) .toList(); diff --git a/lib/pages/chat_list/chat_list_item.dart b/lib/pages/chat_list/chat_list_item.dart index 4be209b..6385895 100644 --- a/lib/pages/chat_list/chat_list_item.dart +++ b/lib/pages/chat_list/chat_list_item.dart @@ -29,6 +29,8 @@ class ChatListItem extends StatelessWidget { final void Function()? onForget; final void Function() onTap; final String? filter; + final Uri? displayAvatar; + final String? displayAvatarName; const ChatListItem( this.room, { @@ -38,6 +40,8 @@ class ChatListItem extends StatelessWidget { this.onForget, this.filter, this.space, + this.displayAvatar, + this.displayAvatarName, super.key, }); @@ -148,11 +152,11 @@ class ChatListItem extends StatelessWidget { AppConfig.spaceBorderRadius, ) : null, - mxContent: room.avatar, + mxContent: displayAvatar ?? room.avatar, size: space != null ? Avatar.defaultSize * 0.75 : Avatar.defaultSize, - name: displayname, + name: displayAvatarName ?? displayname, presenceUserId: directChatMatrixId, presenceBackgroundColor: backgroundColor, onTap: () => onLongPress?.call(context), diff --git a/lib/pages/chat_list/tabs/channels_tab.dart b/lib/pages/chat_list/tabs/channels_tab.dart index b5d6a9f..af3f772 100644 --- a/lib/pages/chat_list/tabs/channels_tab.dart +++ b/lib/pages/chat_list/tabs/channels_tab.dart @@ -5,7 +5,6 @@ import 'package:material_ui/material_ui.dart'; import 'package:matrix/matrix.dart'; -import 'package:tatchat/config/app_config.dart'; import 'package:tatchat/l10n/l10n.dart'; import 'package:tatchat/pages/chat_list/chat_list.dart'; import 'package:tatchat/pages/chat_list/chat_list_item.dart'; @@ -13,6 +12,7 @@ import 'package:tatchat/pages/chat_list/tabs/chat_tab_header.dart'; import 'package:tatchat/pages/chat_list/tabs/empty_tab_view.dart'; import 'package:tatchat/pages/chat_list/tabs/home_tab.dart'; import 'package:tatchat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/room_extension.dart'; import 'package:tatchat/utils/stream_extension.dart'; import 'package:tatchat/widgets/matrix.dart'; @@ -63,7 +63,8 @@ class _ChannelsTabState extends State { .rateLimit(const Duration(seconds: 1)), builder: (context, _) { final channels = client.rooms - .where((room) => room.tags.keys.contains(AppConfig.canalTag)) + .where((room) => !room.isLeftOrBanned) + .where((room) => room.isCanal) .where( (room) => searchText.isEmpty || @@ -105,4 +106,4 @@ class _ChannelsTabState extends State { ), ); } -} \ No newline at end of file +} diff --git a/lib/pages/chat_list/tabs/murals_tab.dart b/lib/pages/chat_list/tabs/murals_tab.dart index 2e09eff..327204b 100644 --- a/lib/pages/chat_list/tabs/murals_tab.dart +++ b/lib/pages/chat_list/tabs/murals_tab.dart @@ -5,7 +5,6 @@ import 'package:material_ui/material_ui.dart'; import 'package:matrix/matrix.dart'; -import 'package:tatchat/config/app_config.dart'; import 'package:tatchat/l10n/l10n.dart'; import 'package:tatchat/pages/chat_list/chat_list.dart'; import 'package:tatchat/pages/chat_list/chat_list_item.dart'; @@ -13,6 +12,7 @@ import 'package:tatchat/pages/chat_list/tabs/chat_tab_header.dart'; import 'package:tatchat/pages/chat_list/tabs/empty_tab_view.dart'; import 'package:tatchat/pages/chat_list/tabs/home_tab.dart'; import 'package:tatchat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/room_extension.dart'; import 'package:tatchat/utils/stream_extension.dart'; import 'package:tatchat/widgets/matrix.dart'; @@ -63,7 +63,8 @@ class _MuralsTabState extends State { .rateLimit(const Duration(seconds: 1)), builder: (context, _) { final murals = client.rooms - .where((room) => room.tags.keys.contains(AppConfig.muralTag)) + .where((room) => !room.isLeftOrBanned) + .where((room) => room.isMural) .where( (room) => searchText.isEmpty || @@ -90,11 +91,24 @@ class _MuralsTabState extends State { itemCount: murals.length, itemBuilder: (context, i) { final room = murals[i]; + final creatorId = room.creatorUserIds.isEmpty + ? null + : room.creatorUserIds.first; + final creatorState = creatorId == null + ? null + : room.getState(EventTypes.RoomMember, creatorId); return ChatListItem( room, key: Key('mural_list_item_${room.id}'), onTap: () => widget.controller.onChatTap(room), activeChat: widget.controller.activeChat == room.id, + displayAvatar: Uri.tryParse( + creatorState?.content.tryGet('avatar_url') ?? + '', + ), + displayAvatarName: creatorState?.content.tryGet( + 'displayname', + ), ); }, ), diff --git a/lib/pages/mural/mural_chat_page.dart b/lib/pages/mural/mural_chat_page.dart index 5ee880f..86e7645 100644 --- a/lib/pages/mural/mural_chat_page.dart +++ b/lib/pages/mural/mural_chat_page.dart @@ -3,20 +3,27 @@ // // SPDX-License-Identifier: AGPL-3.0-or-later +import 'package:emoji_picker_flutter/emoji_picker_flutter.dart'; +import 'package:flutter_linkify/flutter_linkify.dart'; import 'package:go_router/go_router.dart'; import 'package:image_picker/image_picker.dart'; +import 'package:linkify/linkify.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; import 'package:tatchat/l10n/l10n.dart'; import 'package:tatchat/pages/chat/send_file_dialog.dart'; +import 'package:tatchat/pages/chat/sticker_picker_dialog.dart'; import 'package:tatchat/pages/image_viewer/video_player.dart'; import 'package:tatchat/utils/adaptive_bottom_sheet.dart'; import 'package:tatchat/utils/matrix_sdk_extensions/matrix_locals.dart'; import 'package:tatchat/utils/stream_extension.dart'; +import 'package:tatchat/utils/url_launcher.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart'; import 'package:tatchat/widgets/adaptive_dialogs/show_text_input_dialog.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/user_dialog.dart'; import 'package:tatchat/widgets/avatar.dart'; import 'package:tatchat/widgets/matrix.dart'; import 'package:tatchat/widgets/mxc_image.dart'; -import 'package:material_ui/material_ui.dart'; -import 'package:matrix/matrix.dart'; const _muralMediaTypes = { MessageTypes.Image, @@ -68,7 +75,10 @@ class _MuralChatViewState extends State { ? const [] : timeline!.events .where( - (e) => !e.redacted && _muralMediaTypes.contains(e.messageType), + (e) => + !e.redacted && + e.relationshipType == null && + _muralMediaTypes.contains(e.messageType), ) .toList(); @@ -340,7 +350,6 @@ class _Header extends StatelessWidget { final creatorAvatar = Uri.tryParse( creatorState?.content.tryGet('avatar_url') ?? '', ); - final topic = room.topic.trim(); return Column( crossAxisAlignment: CrossAxisAlignment.stretch, @@ -406,51 +415,52 @@ class _Header extends StatelessWidget { left: 16 + avatarSize + 12, right: 8, bottom: -avatarSize / 2, - child: Row( - crossAxisAlignment: CrossAxisAlignment.end, - children: [ - Expanded( - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 8), - child: Text( - displayName, - maxLines: 2, - overflow: TextOverflow.ellipsis, - style: theme.textTheme.titleLarge?.copyWith( - fontWeight: FontWeight.bold, - color: Colors.white, - shadows: const [ - Shadow( - color: Colors.black54, - blurRadius: 6, - offset: Offset(0, 1), - ), - ], - ), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 8), + child: Text( + displayName, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: theme.textTheme.titleLarge?.copyWith( + fontWeight: FontWeight.bold, + color: Colors.white, + shadows: const [ + Shadow( + color: Colors.black54, + blurRadius: 6, + offset: Offset(0, 1), ), - ), + ], ), - DecoratedBox( - decoration: BoxDecoration( - color: Colors.black.withValues(alpha: 0.35), - shape: BoxShape.circle, - ), - child: IconButton( - tooltip: l10n.settings, - icon: const Icon(Icons.more_vert), - color: Colors.white, - onPressed: onEditInfo, - ), - ), - ], + ), ), ), ], ), Padding( - padding: const EdgeInsets.fromLTRB(16, 48, 16, 4), - child: _ExpandableDescription( - text: topic, + padding: const EdgeInsets.fromLTRB(16, 4, 8, 0), + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + DecoratedBox( + decoration: BoxDecoration( + color: theme.colorScheme.surfaceContainerHighest, + shape: BoxShape.circle, + ), + child: IconButton( + tooltip: l10n.settings, + icon: const Icon(Icons.more_vert), + onPressed: onEditInfo, + ), + ), + ], + ), + ), + Padding( + padding: const EdgeInsets.fromLTRB(16, 4, 16, 4), + child: _MuralDescription( + room: room, + text: room.topic, expanded: descriptionExpanded, onToggle: onToggleDescription, ), @@ -460,12 +470,14 @@ class _Header extends StatelessWidget { } } -class _ExpandableDescription extends StatelessWidget { +class _MuralDescription extends StatelessWidget { + final Room room; final String? text; final bool expanded; final VoidCallback onToggle; - const _ExpandableDescription({ + const _MuralDescription({ + required this.room, required this.text, required this.expanded, required this.onToggle, @@ -478,10 +490,54 @@ class _ExpandableDescription extends StatelessWidget { final text = this.text?.trim(); if (text == null || text.isEmpty) return const SizedBox.shrink(); final style = theme.textTheme.bodyMedium?.copyWith(height: 1.4); + final linkStyle = TextStyle( + color: theme.colorScheme.primary, + decorationColor: theme.colorScheme.primary, + decoration: TextDecoration.underline, + ); + const linkifiers = [UrlLinkifier(), EmailLinkifier(), UserTagLinkifier()]; + final elements = linkify(text, linkifiers: linkifiers); + + Future openLink(LinkableElement rawLink) async { + final url = rawLink.url; + if (rawLink is UserTagElement) { + final userTag = rawLink.userTag; + var mentionId = userTag.startsWith('@') + ? userTag.substring(1) + : userTag; + if (!mentionId.contains(':')) { + mentionId = '$mentionId:${room.client.homeserver?.host ?? ''}'; + } + final memberState = room.getState(EventTypes.RoomMember, mentionId); + final profile = Profile( + userId: mentionId, + displayName: + memberState?.content.tryGet('displayname') ?? userTag, + avatarUrl: Uri.tryParse( + memberState?.content.tryGet('avatar_url') ?? '', + ), + ); + await UserDialog.show(context: context, profile: profile); + return; + } + UrlLauncher(context, url).launchUrl(); + } + + Widget richText({bool measure = false}) => Text.rich( + buildTextSpan( + elements, + style: style, + linkStyle: linkStyle, + onOpen: openLink, + ), + maxLines: expanded ? null : 4, + overflow: expanded ? null : TextOverflow.ellipsis, + ); + return LayoutBuilder( builder: (context, constraints) { final painter = TextPainter( - text: TextSpan(text: text, style: style), + text: buildTextSpan(elements, style: style, linkStyle: linkStyle), maxLines: 4, textDirection: TextDirection.ltr, )..layout(maxWidth: constraints.maxWidth); @@ -489,12 +545,7 @@ class _ExpandableDescription extends StatelessWidget { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text( - text, - style: style, - maxLines: expanded ? null : 4, - overflow: expanded ? null : TextOverflow.ellipsis, - ), + richText(), if (exceeds) TextButton( onPressed: onToggle, @@ -671,6 +722,50 @@ class _PostViewerState extends State<_PostViewer> { await widget.room.sendTextEvent(result.trim(), editEventId: event.eventId); } + Future _deletePost() async { + final l10n = L10n.of(context); + final delete = await showOkCancelAlertDialog( + context: context, + title: l10n.areYouSure, + message: l10n.areYouSureDeletePost, + okLabel: l10n.delete, + cancelLabel: l10n.cancel, + ); + if (delete != OkCancelResult.ok || !mounted) return; + try { + await event.redactEvent(); + } catch (e) { + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text(L10n.of(context).oopsSomethingWentWrong)), + ); + return; + } + if (!mounted) return; + Navigator.of(context).pop(); + } + + Future _reportPost() async { + final l10n = L10n.of(context); + final reason = await showTextInputDialog( + context: context, + title: l10n.whyDoYouWantToReportThis, + okLabel: l10n.report, + cancelLabel: l10n.cancel, + hintText: l10n.reason, + ); + if (reason == null || reason.isEmpty || !mounted) return; + await widget.room.client.reportEvent( + widget.room.id, + event.eventId, + reason: reason, + ); + if (!mounted) return; + ScaffoldMessenger.of( + context, + ).showSnackBar(SnackBar(content: Text(l10n.contentHasBeenReported))); + } + Future _sendComment() async { final text = _commentController.text.trim(); if (text.isEmpty || _sending) return; @@ -683,6 +778,86 @@ class _PostViewerState extends State<_PostViewer> { } } + void _typeEmoji(Emoji? emoji) { + if (emoji == null) return; + final emojiText = emoji.emoji; + final value = _commentController.value; + if (value.selection.start != -1 && value.selection.isValid) { + final newText = value.text.replaceRange( + value.selection.start, + value.selection.end, + emojiText, + ); + _commentController.value = TextEditingValue( + text: newText, + selection: TextSelection.collapsed( + offset: value.selection.start + emojiText.characters.length, + ), + ); + } else { + _commentController.text += emojiText; + } + } + + Future _showEmojiPicker() async { + final theme = Theme.of(context); + await showModalBottomSheet( + context: context, + useSafeArea: true, + backgroundColor: theme.colorScheme.surface, + builder: (context) => SizedBox( + height: MediaQuery.sizeOf(context).height * 0.5, + child: EmojiPicker( + onEmojiSelected: (_, emoji) { + _typeEmoji(emoji); + }, + config: Config( + locale: Localizations.localeOf(context), + emojiViewConfig: EmojiViewConfig( + backgroundColor: theme.colorScheme.onInverseSurface, + ), + bottomActionBarConfig: const BottomActionBarConfig(enabled: false), + categoryViewConfig: CategoryViewConfig( + backspaceColor: theme.colorScheme.primary, + iconColor: theme.colorScheme.primary.withAlpha(128), + iconColorSelected: theme.colorScheme.primary, + indicatorColor: theme.colorScheme.primary, + backgroundColor: theme.colorScheme.surface, + ), + skinToneConfig: const SkinToneConfig(indicatorColor: Colors.grey), + ), + ), + ), + ); + } + + Future _sendSticker() async { + final theme = Theme.of(context); + await showModalBottomSheet( + context: context, + useSafeArea: true, + backgroundColor: theme.colorScheme.surface, + builder: (context) => SizedBox( + height: MediaQuery.sizeOf(context).height * 0.6, + child: StickerPickerDialog( + room: widget.room, + onSelected: (sticker) { + Navigator.of(context, rootNavigator: true).pop(); + widget.room.sendEvent( + { + 'body': sticker.body, + 'info': sticker.info ?? {}, + 'url': sticker.url.toString(), + }, + type: EventTypes.Sticker, + threadRootEventId: event.eventId, + ); + }, + ), + ), + ); + } + List _comments() { final comments = widget.timeline.events .where( @@ -696,6 +871,18 @@ class _PostViewerState extends State<_PostViewer> { return comments; } + void _openProfile(Event comment) { + final sender = comment.senderFromMemoryOrFallback; + UserDialog.show( + context: context, + profile: Profile( + userId: sender.id, + displayName: sender.calcDisplayname(), + avatarUrl: sender.avatarUrl, + ), + ); + } + @override Widget build(BuildContext context) { final theme = Theme.of(context); @@ -772,11 +959,13 @@ class _PostViewerState extends State<_PostViewer> { crossAxisAlignment: CrossAxisAlignment.end, children: [ IconButton( - tooltip: l10n.editCaption, - icon: const Icon(Icons.edit_outlined), - onPressed: _editCaption, + tooltip: liked ? l10n.unlike : l10n.like, + icon: Icon( + liked ? Icons.favorite : Icons.favorite_border, + color: liked ? Colors.redAccent : null, + ), + onPressed: _toggleLike, ), - const Spacer(), if (_likeCount > 0) Padding( padding: const EdgeInsets.only(bottom: 10), @@ -787,13 +976,46 @@ class _PostViewerState extends State<_PostViewer> { ), ), ), - IconButton( - tooltip: liked ? l10n.unlike : l10n.like, - icon: Icon( - liked ? Icons.favorite : Icons.favorite_border, - color: liked ? Colors.redAccent : null, - ), - onPressed: _toggleLike, + const Spacer(), + PopupMenuButton( + tooltip: l10n.more, + onSelected: (action) async { + switch (action) { + case 'edit': + await _editCaption(); + case 'delete': + await _deletePost(); + case 'report': + await _reportPost(); + } + }, + itemBuilder: (context) => [ + PopupMenuItem( + value: 'edit', + child: ListTile( + leading: const Icon(Icons.edit_outlined), + title: Text(l10n.editCaption), + contentPadding: EdgeInsets.zero, + ), + ), + PopupMenuItem( + value: 'delete', + child: ListTile( + leading: const Icon(Icons.delete_outline), + title: Text(l10n.delete), + contentPadding: EdgeInsets.zero, + ), + ), + PopupMenuItem( + value: 'report', + child: ListTile( + leading: const Icon(Icons.flag_outlined), + title: Text(l10n.report), + contentPadding: EdgeInsets.zero, + ), + ), + ], + icon: const Icon(Icons.more_vert), ), ], ), @@ -827,6 +1049,9 @@ class _PostViewerState extends State<_PostViewer> { itemCount: comments.length, itemBuilder: (context, i) { final comment = comments[i]; + final isSticker = + comment.messageType == MessageTypes.Sticker; + final sender = comment.senderFromMemoryOrFallback; return Padding( padding: const EdgeInsets.symmetric( horizontal: 16, @@ -835,14 +1060,14 @@ class _PostViewerState extends State<_PostViewer> { child: Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Avatar( - mxContent: comment - .senderFromMemoryOrFallback - .avatarUrl, - name: comment.senderFromMemoryOrFallback - .calcDisplayname(), - size: 32, - client: widget.room.client, + GestureDetector( + onTap: () => _openProfile(comment), + child: Avatar( + mxContent: sender.avatarUrl, + name: sender.calcDisplayname(), + size: 32, + client: widget.room.client, + ), ), const SizedBox(width: 8), Expanded( @@ -850,25 +1075,36 @@ class _PostViewerState extends State<_PostViewer> { crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text( - comment.senderFromMemoryOrFallback - .calcDisplayname(), - style: theme.textTheme.labelMedium - ?.copyWith( - fontWeight: FontWeight.bold, - ), + GestureDetector( + onTap: () => _openProfile(comment), + child: Text( + sender.calcDisplayname(), + style: theme.textTheme.labelMedium + ?.copyWith( + fontWeight: FontWeight.bold, + ), + ), ), const SizedBox(height: 2), - Text( - comment - .getDisplayEvent(widget.timeline) - .calcLocalizedBodyFallback( - MatrixLocals(l10n), - withSenderNamePrefix: false, - hideReply: true, - ), - style: theme.textTheme.bodyMedium, - ), + if (isSticker) + MxcImage( + key: ValueKey(comment.eventId), + event: comment, + fit: BoxFit.contain, + isThumbnail: false, + width: double.infinity, + ) + else + Text( + comment + .getDisplayEvent(widget.timeline) + .calcLocalizedBodyFallback( + MatrixLocals(l10n), + withSenderNamePrefix: false, + hideReply: true, + ), + style: theme.textTheme.bodyMedium, + ), ], ), ), @@ -879,9 +1115,19 @@ class _PostViewerState extends State<_PostViewer> { ), ), Padding( - padding: const EdgeInsets.fromLTRB(16, 4, 8, 8), + padding: const EdgeInsets.fromLTRB(8, 4, 8, 8), child: Row( children: [ + IconButton( + tooltip: l10n.emojis, + icon: const Icon(Icons.emoji_emotions_outlined), + onPressed: _showEmojiPicker, + ), + IconButton( + tooltip: l10n.stickers, + icon: const Icon(Icons.emoji_emotions), + onPressed: _sendSticker, + ), Expanded( child: TextField( controller: _commentController, diff --git a/lib/pages/new_group/new_group.dart b/lib/pages/new_group/new_group.dart index c0fa32f..44a5d27 100644 --- a/lib/pages/new_group/new_group.dart +++ b/lib/pages/new_group/new_group.dart @@ -11,6 +11,7 @@ import 'package:tatchat/l10n/l10n.dart'; import 'package:tatchat/pages/new_group/new_group_view.dart'; import 'package:tatchat/utils/file_selector.dart'; import 'package:tatchat/utils/matrix_live_kit_calls/matrix_live_kit_call_member.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/room_extension.dart'; import 'package:tatchat/widgets/matrix.dart'; import 'package:go_router/go_router.dart'; import 'package:material_ui/material_ui.dart'; @@ -141,8 +142,10 @@ class NewGroupController extends State { : sdk.CreateRoomPreset.privateChat, groupName: nameController.text.isNotEmpty ? nameController.text : null, powerLevelContentOverride: { - // Only admins (power level 100) are allowed to post in a canal. - 'events_default': 100, + // All members may send messages so they can react and comment in the + // publication threads. The app hides the publication composer for + // non-admins in the main canal feed instead. + 'events_default': 0, }, initialState: [ if (avatar != null) @@ -155,6 +158,7 @@ class NewGroupController extends State { final canal = client.getRoomById(roomId); if (canal != null) { await canal.addTag(AppConfig.canalTag); + await canal.setRoomType('canal'); } await _addToSpace(roomId); if (!mounted) return; @@ -190,6 +194,7 @@ class NewGroupController extends State { final mural = client.getRoomById(roomId); if (mural != null) { await mural.addTag(AppConfig.muralTag); + await mural.setRoomType('mural'); } await _addToSpace(roomId); if (!mounted) return; diff --git a/lib/utils/client_manager.dart b/lib/utils/client_manager.dart index 63d9d8e..ba024ed 100644 --- a/lib/utils/client_manager.dart +++ b/lib/utils/client_manager.dart @@ -11,6 +11,7 @@ import 'package:tatchat/utils/custom_http_client.dart'; import 'package:tatchat/utils/custom_image_resizer.dart'; import 'package:tatchat/utils/init_with_restore.dart'; import 'package:tatchat/utils/matrix_live_kit_calls/matrix_live_kit_call_member.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/room_extension.dart'; import 'package:tatchat/utils/platform_infos.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; @@ -130,6 +131,9 @@ abstract class ClientManager { 'im.ponies.room_emotes', // To display call state in chat list MatrixRtcCallMember.eventType, + // Make the canal/mural room type marker available in the chat list + // right after sync, even for rooms that are still partially loaded. + roomTypeStateEvent, }, customImageResizer: PlatformInfos.supportsCustomImageResizer ? customImageResizer diff --git a/lib/utils/matrix_sdk_extensions/room_extension.dart b/lib/utils/matrix_sdk_extensions/room_extension.dart new file mode 100644 index 0000000..6a7baa5 --- /dev/null +++ b/lib/utils/matrix_sdk_extensions/room_extension.dart @@ -0,0 +1,33 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:matrix/matrix.dart'; +import 'package:tatchat/config/app_config.dart'; + +/// State event type that marks the room category (canal/mural) on a room +/// level. Unlike the personal tags (per-account data), this marker is shared +/// by all room members which makes the categorization consistent across +/// different accounts. +const String roomTypeStateEvent = 'tatuchat.room_type'; + +extension RoomTypeExtension on Room { + String? get roomType => + getState(roomTypeStateEvent)?.content.tryGet('type'); + + bool get isCanal => + tags.keys.contains(AppConfig.canalTag) || roomType == 'canal'; + + bool get isMural => + tags.keys.contains(AppConfig.muralTag) || roomType == 'mural'; + + /// Whether the account left (or was banned from) this room. Such rooms must + /// not be shown in the chat list, even if a stale local copy with an old + /// "join" membership reappears after a restart. + bool get isLeftOrBanned => + {Membership.leave, Membership.ban}.contains(membership); + + Future setRoomType(String type) => + client.setRoomStateWithKey(id, roomTypeStateEvent, '', {'type': type}); +} diff --git a/lib/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart b/lib/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart index 04a80e0..b6f6a7b 100644 --- a/lib/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart +++ b/lib/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart @@ -27,6 +27,8 @@ Future showOkCancelAlertDialog({ constraints: const BoxConstraints(maxWidth: 256), child: Text(title), ), + titlePadding: const EdgeInsets.fromLTRB(20, 16, 20, 0), + contentPadding: const EdgeInsets.fromLTRB(20, 12, 20, 20), content: ConstrainedBox( constraints: const BoxConstraints(maxWidth: 256), child: message == null @@ -79,6 +81,8 @@ Future showOkAlertDialog({ constraints: const BoxConstraints(maxWidth: 256), child: Text(title), ), + titlePadding: const EdgeInsets.fromLTRB(20, 16, 20, 0), + contentPadding: const EdgeInsets.fromLTRB(20, 12, 20, 20), content: ConstrainedBox( constraints: const BoxConstraints(maxWidth: 256), child: message == null diff --git a/lib/widgets/adaptive_dialogs/show_text_input_dialog.dart b/lib/widgets/adaptive_dialogs/show_text_input_dialog.dart index 96c0d02..09f19dd 100644 --- a/lib/widgets/adaptive_dialogs/show_text_input_dialog.dart +++ b/lib/widgets/adaptive_dialogs/show_text_input_dialog.dart @@ -43,6 +43,8 @@ Future showTextInputDialog({ constraints: const BoxConstraints(maxWidth: 256), child: Text(title), ), + titlePadding: const EdgeInsets.fromLTRB(20, 16, 20, 0), + contentPadding: const EdgeInsets.fromLTRB(20, 12, 20, 20), content: ConstrainedBox( constraints: const BoxConstraints(maxWidth: 256), child: Column( diff --git a/pubspec.lock b/pubspec.lock index d03318f..e041cc7 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1157,7 +1157,7 @@ packages: source: hosted version: "1.9.1" linkify: - dependency: transitive + dependency: "direct main" description: name: linkify sha256: "4139ea77f4651ab9c315b577da2dd108d9aa0bd84b5d03d33323f1970c645832" diff --git a/pubspec.yaml b/pubspec.yaml index 4fa1282..04d0156 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -58,6 +58,7 @@ dependencies: just_audio_media_kit: ^2.1.0 latlong2: ^0.10.1 light_compressor_v2: ^1.9.1 + linkify: ^5.0.0 livekit_client: ^2.11.0 local_auth: ^3.0.2 lottie: ^3.5.1