From 0037b0b9cf79de8ab536289fe41433c1ebeb7106 Mon Sep 17 00:00:00 2001 From: Welton Moura Date: Fri, 11 Sep 2026 15:59:56 -0300 Subject: [PATCH] Initial commit --- .github/CODEOWNERS | 3 + .github/FUNDING.yml | 13 + .github/ISSUE_TEMPLATE/bug_report.yml | 74 + .github/ISSUE_TEMPLATE/config.yml | 5 + .github/ISSUE_TEMPLATE/feature_request.yml | 34 + .github/ISSUE_TEMPLATE/test_report.md | 44 + .github/actions/free_up_space/action.yaml | 50 + .github/dependabot.yml | 23 + .github/pull_request_template.md | 12 + .github/workflows/integrate.yaml | 229 + .github/workflows/main_deploy.yaml | 83 + .github/workflows/matrix_notify.yaml | 60 + .github/workflows/release.yaml | 216 + .github/workflows/stale.yaml | 21 + .gitignore | 208 + .mailmap | 20 + .metadata | 30 + .tool_versions.yaml | 2 + .vscode/settings.json | 7 + CHANGELOG.md | 4007 +++++++++++++++++ CONTEXT.md | 149 + CONTRIBUTING.md | 179 + Dockerfile | 26 + LICENSE | 661 +++ LICENSES/AGPL-3.0-or-later.txt | 235 + LICENSES/Apache-2.0.txt | 73 + LICENSES/CC-BY-4.0.txt | 156 + PRIVACY.md | 8 + README.md | 138 + REUSE.toml | 63 + SECURITY.md | 22 + analysis_options.yaml | 89 + android/.gitignore | 13 + android/Gemfile | 4 + android/app/build.gradle.kts | 98 + android/app/proguard-rules.pro | 1 + android/app/src/main/AndroidManifest.xml | 147 + .../chat/fluffy/fluffychat/FcmPushService.kt | 28 + .../chat/fluffy/fluffychat/MainActivity.kt | 31 + .../drawable-hdpi/ic_launcher_background.png | Bin 0 -> 598 bytes .../drawable-hdpi/ic_launcher_foreground.png | Bin 0 -> 7198 bytes .../drawable-hdpi/ic_launcher_monochrome.png | Bin 0 -> 7550 bytes .../res/drawable-hdpi/notifications_icon.png | Bin 0 -> 882 bytes .../app/src/main/res/drawable-hdpi/splash.png | Bin 0 -> 9166 bytes .../drawable-mdpi/ic_launcher_background.png | Bin 0 -> 396 bytes .../drawable-mdpi/ic_launcher_foreground.png | Bin 0 -> 4790 bytes .../drawable-mdpi/ic_launcher_monochrome.png | Bin 0 -> 4984 bytes .../res/drawable-mdpi/notifications_icon.png | Bin 0 -> 566 bytes .../app/src/main/res/drawable-mdpi/splash.png | Bin 0 -> 5267 bytes .../res/drawable-night-v21/background.png | Bin 0 -> 70 bytes .../drawable-night-v21/launch_background.xml | 9 + .../main/res/drawable-night/background.png | Bin 0 -> 70 bytes .../res/drawable-night/launch_background.xml | 9 + .../src/main/res/drawable-v21/background.png | Bin 0 -> 68 bytes .../res/drawable-v21/launch_background.xml | 9 + .../drawable-xhdpi/ic_launcher_background.png | Bin 0 -> 814 bytes .../drawable-xhdpi/ic_launcher_foreground.png | Bin 0 -> 9889 bytes .../drawable-xhdpi/ic_launcher_monochrome.png | Bin 0 -> 10431 bytes .../res/drawable-xhdpi/notifications_icon.png | Bin 0 -> 1194 bytes .../src/main/res/drawable-xhdpi/splash.png | Bin 0 -> 14346 bytes .../ic_launcher_background.png | Bin 0 -> 3506 bytes .../ic_launcher_foreground.png | Bin 0 -> 16079 bytes .../ic_launcher_monochrome.png | Bin 0 -> 16679 bytes .../drawable-xxhdpi/notifications_icon.png | Bin 0 -> 1860 bytes .../src/main/res/drawable-xxhdpi/splash.png | Bin 0 -> 25762 bytes .../ic_launcher_background.png | Bin 0 -> 1928 bytes .../ic_launcher_foreground.png | Bin 0 -> 20522 bytes .../ic_launcher_monochrome.png | Bin 0 -> 21547 bytes .../drawable-xxxhdpi/notifications_icon.png | Bin 0 -> 2536 bytes .../src/main/res/drawable-xxxhdpi/splash.png | Bin 0 -> 28508 bytes .../app/src/main/res/drawable/background.png | Bin 0 -> 68 bytes .../res/drawable/ic_launcher_foreground.xml | 29 + .../res/drawable/ic_launcher_monochrome.xml | 11 + .../main/res/drawable/launch_background.xml | 9 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 14 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3178 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1864 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3784 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6640 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 7685 bytes .../app/src/main/res/values-night/styles.xml | 19 + .../res/values/ic_launcher_background.xml | 4 + android/app/src/main/res/values/styles.xml | 8 + .../app/src/main/res/xml/app_restrictions.xml | 19 + .../src/main/res/xml/automotive_app_desc.xml | 3 + .../app/src/main/res/xml/locale_config.xml | 62 + android/build.gradle.kts | 21 + android/fastlane/Appfile | 2 + android/fastlane/Fastfile | 80 + android/fastlane/README.md | 56 + .../android/en-US/changelogs/default.txt | 2 + .../android/en-US/full_description.txt | 31 + .../metadata/android/en-US/images/logo.png | Bin 0 -> 88369 bytes .../en-US/images/phoneScreenshots/1.png | Bin 0 -> 444992 bytes .../en-US/images/phoneScreenshots/2.png | Bin 0 -> 974635 bytes .../en-US/images/phoneScreenshots/3.png | Bin 0 -> 253726 bytes .../en-US/images/phoneScreenshots/4.png | Bin 0 -> 436580 bytes .../en-US/images/phoneScreenshots/5.png | Bin 0 -> 974051 bytes .../en-US/images/phoneScreenshots/6.png | Bin 0 -> 171825 bytes .../android/en-US/short_description.txt | 1 + .../fastlane/metadata/android/en-US/title.txt | 1 + android/fastlane/report.xml | 23 + android/gradle.properties | 8 + .../gradle/wrapper/gradle-wrapper.properties | 6 + android/settings.gradle.kts | 28 + assets/logo/img/logo.png | Bin 0 -> 57631 bytes assets/logo/img/logo1.png | Bin 0 -> 280483 bytes assets/logo/img/logo_background.png | Bin 0 -> 20535 bytes assets/logo/img/logo_font.png | Bin 0 -> 321771 bytes assets/logo/img/logo_foreground.png | Bin 0 -> 57631 bytes assets/logo/img/logo_mono.png | Bin 0 -> 57631 bytes assets/logo/img/logo_standalone.png | Bin 0 -> 280483 bytes assets/logo/mini/logo_font_mini.png | Bin 0 -> 321771 bytes assets/logo/mini/logo_mini.png | Bin 0 -> 57631 bytes assets/logo/mini/logo_mono_mini.png | Bin 0 -> 57631 bytes assets/logo/vector/logo.svg | 1 + assets/logo/vector/logo_background.svg | 10 + assets/logo/vector/logo_foreground.svg | 1 + assets/logo/vector/logo_mono.svg | 20 + assets/logo/vector/logo_notification.svg | 20 + assets/logo/vector/logo_standalone.svg | 1 + assets/sas-emoji.json | 2178 +++++++++ assets/sounds/call_attention.mp3 | Bin 0 -> 50991 bytes assets/sounds/call_join.mp3 | Bin 0 -> 35108 bytes assets/sounds/call_leave.mp3 | Bin 0 -> 35108 bytes assets/sounds/call_ring.mp3 | Bin 0 -> 100310 bytes assets/sounds/call_wait.mp3 | Bin 0 -> 67709 bytes assets/sounds/notification.mp3 | Bin 0 -> 46811 bytes assets/vodozemac/0.8.1/.gitkeep | 0 .../0.8.1/vodozemac_bindings_dart.js | 2131 +++++++++ .../0.8.1/vodozemac_bindings_dart_bg.wasm | Bin 0 -> 829362 bytes config.sample.json | 32 + dart_dependency_validator.yaml | 9 + devtools_options.yaml | 8 + fastlane/README.md | 10 + fastlane/metadata | 1 + integration_test/.gitignore | 6 + .../data/environment_constants.dart | 19 + integration_test/data/integration_users.env | 5 + integration_test/flows/auth_flows.dart | 75 + integration_test/flows/basic_messaging.dart | 29 + integration_test/flows/chat_flows.dart | 42 + .../flows/login_and_chat_backup.dart | 64 + integration_test/flows/multi_account.dart | 37 + integration_test/mobile_test.dart | 25 + integration_test/synapse/data/homeserver.yaml | 2781 ++++++++++++ .../synapse/data/localhost.log.config | 27 + .../synapse/data/localhost.signing.key | 1 + integration_test/utils/tatu_chat_tester.dart | 128 + ios/.gitignore | 33 + .../Base.lproj/MainInterface.storyboard | 24 + .../FluffyChat Share.entitlements | 10 + ios/FluffyChat Share/Info.plist | 52 + .../ShareViewController.swift | 28 + ios/Flutter/AppFrameworkInfo.plist | 24 + ios/Flutter/Debug.xcconfig | 2 + ios/Flutter/Release.xcconfig | 2 + ios/Gemfile | 8 + ios/Localizable.xcstrings | 58 + ios/Notification Service Extension/Info.plist | 13 + ...otification Service Extension.entitlements | 10 + .../NotificationService.swift | 416 ++ ios/Podfile | 71 + ios/Runner.xcodeproj/project.pbxproj | 1163 +++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/swiftpm/Package.resolved | 14 + .../xcshareddata/xcschemes/Runner.xcscheme | 112 + .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/swiftpm/Package.resolved | 14 + ios/Runner/AppDelegate.swift | 18 + .../AppIcon.appiconset/Contents.json | 1 + .../Icon-App-1024x1024@1x.png | Bin 0 -> 45696 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 692 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 1501 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 2540 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1078 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 2249 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 3444 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 1501 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 3119 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 4781 bytes .../AppIcon.appiconset/Icon-App-50x50@1x.png | Bin 0 -> 1947 bytes .../AppIcon.appiconset/Icon-App-50x50@2x.png | Bin 0 -> 3911 bytes .../AppIcon.appiconset/Icon-App-57x57@1x.png | Bin 0 -> 2255 bytes .../AppIcon.appiconset/Icon-App-57x57@2x.png | Bin 0 -> 4590 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 4781 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 7182 bytes .../AppIcon.appiconset/Icon-App-72x72@1x.png | Bin 0 -> 3178 bytes .../AppIcon.appiconset/Icon-App-72x72@2x.png | Bin 0 -> 6640 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 3392 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 6841 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 6634 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + ios/Runner/Base.lproj/LaunchScreen.storyboard | 37 + ios/Runner/Base.lproj/Main.storyboard | 26 + ios/Runner/GoogleService-Info.plist | 34 + ios/Runner/Info.plist | 138 + ios/Runner/Runner-Bridging-Header.h | 1 + ios/Runner/Runner.entitlements | 16 + ios/Runner/ar.lproj/LaunchScreen.strings | 1 + ios/Runner/ar.lproj/Main.strings | 1 + ios/Runner/ca.lproj/LaunchScreen.strings | 1 + ios/Runner/ca.lproj/Main.strings | 1 + ios/Runner/cs.lproj/LaunchScreen.strings | 1 + ios/Runner/cs.lproj/Main.strings | 1 + ios/Runner/de.lproj/LaunchScreen.strings | 1 + ios/Runner/de.lproj/Main.strings | 1 + ios/Runner/eo.lproj/LaunchScreen.strings | 1 + ios/Runner/eo.lproj/Main.strings | 1 + ios/Runner/es.lproj/LaunchScreen.strings | 1 + ios/Runner/es.lproj/Main.strings | 1 + ios/Runner/et.lproj/LaunchScreen.strings | 1 + ios/Runner/et.lproj/Main.strings | 1 + ios/Runner/eu.lproj/LaunchScreen.strings | 1 + ios/Runner/eu.lproj/Main.strings | 1 + ios/Runner/fr.lproj/LaunchScreen.strings | 1 + ios/Runner/fr.lproj/Main.strings | 1 + ios/Runner/gl.lproj/LaunchScreen.strings | 1 + ios/Runner/gl.lproj/Main.strings | 1 + ios/Runner/hr-HR.lproj/LaunchScreen.strings | 1 + ios/Runner/hr-HR.lproj/Main.strings | 1 + ios/Runner/hu-HU.lproj/LaunchScreen.strings | 1 + ios/Runner/hu-HU.lproj/Main.strings | 1 + ios/Runner/hu.lproj/LaunchScreen.strings | 1 + ios/Runner/hu.lproj/Main.strings | 1 + ios/Runner/hy.lproj/LaunchScreen.strings | 1 + ios/Runner/hy.lproj/Main.strings | 1 + ios/Runner/it.lproj/LaunchScreen.strings | 1 + ios/Runner/it.lproj/Main.strings | 1 + ios/Runner/ja.lproj/LaunchScreen.strings | 1 + ios/Runner/ja.lproj/Main.strings | 1 + ios/Runner/nb-NO.lproj/LaunchScreen.strings | 1 + ios/Runner/nb-NO.lproj/Main.strings | 1 + ios/Runner/notification.caf | Bin 0 -> 178050 bytes ios/Runner/pl.lproj/LaunchScreen.strings | 1 + ios/Runner/pl.lproj/Main.strings | 1 + ios/Runner/pt.lproj/LaunchScreen.strings | 1 + ios/Runner/pt.lproj/Main.strings | 1 + ios/Runner/ru-RU.lproj/LaunchScreen.strings | 1 + ios/Runner/ru-RU.lproj/Main.strings | 1 + ios/Runner/sk-SK.lproj/LaunchScreen.strings | 1 + ios/Runner/sk-SK.lproj/Main.strings | 1 + ios/Runner/sv-SE.lproj/LaunchScreen.strings | 1 + ios/Runner/sv-SE.lproj/Main.strings | 1 + ios/Runner/tr.lproj/LaunchScreen.strings | 1 + ios/Runner/tr.lproj/Main.strings | 1 + ios/Runner/uk.lproj/LaunchScreen.strings | 1 + ios/Runner/uk.lproj/Main.strings | 1 + ios/Runner/vi-VN.lproj/LaunchScreen.strings | 1 + ios/Runner/vi-VN.lproj/Main.strings | 1 + ios/Runner/zh-Hans.lproj/LaunchScreen.strings | 1 + ios/Runner/zh-Hans.lproj/Main.strings | 1 + l10n.yaml | 12 + lib/config/app_config.dart | 68 + lib/config/isrg_x1.dart | 37 + lib/config/isrg_x2.dart | 20 + lib/config/routes.dart | 551 +++ lib/config/setting_keys.dart | 264 ++ lib/config/tatu_palette.dart | 212 + lib/config/themes.dart | 147 + lib/l10n/intl_ar.arb | 2673 +++++++++++ lib/l10n/intl_az.arb | 14 + lib/l10n/intl_be.arb | 2496 ++++++++++ lib/l10n/intl_bn.arb | 1865 ++++++++ lib/l10n/intl_bo.arb | 1974 ++++++++ lib/l10n/intl_ca.arb | 2504 ++++++++++ lib/l10n/intl_cs.arb | 2429 ++++++++++ lib/l10n/intl_da.arb | 1861 ++++++++ lib/l10n/intl_de.arb | 2828 ++++++++++++ lib/l10n/intl_el.arb | 1880 ++++++++ lib/l10n/intl_en.arb | 2849 ++++++++++++ lib/l10n/intl_eo.arb | 2122 +++++++++ lib/l10n/intl_es.arb | 2614 +++++++++++ lib/l10n/intl_et.arb | 2831 ++++++++++++ lib/l10n/intl_eu.arb | 2579 +++++++++++ lib/l10n/intl_fa.arb | 2503 ++++++++++ lib/l10n/intl_fi.arb | 2456 ++++++++++ lib/l10n/intl_fil.arb | 1997 ++++++++ lib/l10n/intl_fr.arb | 2829 ++++++++++++ lib/l10n/intl_ga.arb | 2834 ++++++++++++ lib/l10n/intl_gl.arb | 2788 ++++++++++++ lib/l10n/intl_he.arb | 2053 +++++++++ lib/l10n/intl_hi.arb | 1849 ++++++++ lib/l10n/intl_hr.arb | 2479 ++++++++++ lib/l10n/intl_hu.arb | 2431 ++++++++++ lib/l10n/intl_ia.arb | 1992 ++++++++ lib/l10n/intl_id.arb | 2806 ++++++++++++ lib/l10n/intl_ie.arb | 2013 +++++++++ lib/l10n/intl_it.arb | 2554 +++++++++++ lib/l10n/intl_ja.arb | 2130 +++++++++ lib/l10n/intl_ka.arb | 1962 ++++++++ lib/l10n/intl_kab.arb | 2353 ++++++++++ lib/l10n/intl_ko.arb | 2398 ++++++++++ lib/l10n/intl_la.arb | 138 + lib/l10n/intl_lt.arb | 1963 ++++++++ lib/l10n/intl_lv.arb | 2807 ++++++++++++ lib/l10n/intl_nb.arb | 2815 ++++++++++++ lib/l10n/intl_nl.arb | 2827 ++++++++++++ lib/l10n/intl_pl.arb | 2711 +++++++++++ lib/l10n/intl_pt.arb | 2001 ++++++++ lib/l10n/intl_pt_BR.arb | 2501 ++++++++++ lib/l10n/intl_pt_PT.arb | 2204 +++++++++ lib/l10n/intl_ro.arb | 2194 +++++++++ lib/l10n/intl_ru.arb | 2690 +++++++++++ lib/l10n/intl_sk.arb | 1221 +++++ lib/l10n/intl_sl.arb | 1926 ++++++++ lib/l10n/intl_sq.arb | 1974 ++++++++ lib/l10n/intl_sr.arb | 2107 +++++++++ lib/l10n/intl_sv.arb | 2707 +++++++++++ lib/l10n/intl_ta.arb | 2754 +++++++++++ lib/l10n/intl_te.arb | 1977 ++++++++ lib/l10n/intl_th.arb | 1875 ++++++++ lib/l10n/intl_tr.arb | 2361 ++++++++++ lib/l10n/intl_uk.arb | 2552 +++++++++++ lib/l10n/intl_uz.arb | 2468 ++++++++++ lib/l10n/intl_vi.arb | 1958 ++++++++ lib/l10n/intl_yue_Hant.arb | 1889 ++++++++ lib/l10n/intl_zh.arb | 2828 ++++++++++++ lib/l10n/intl_zh_Hant.arb | 2428 ++++++++++ lib/main.dart | 180 + lib/pages/archive/archive.dart | 75 + lib/pages/archive/archive_view.dart | 79 + lib/pages/bootstrap/bootstrap_page.dart | 96 + .../bootstrap/view_model/bootstrap_state.dart | 35 + .../view_model/bootstrap_view_model.dart | 302 ++ .../widgets/new_passphrase_view.dart | 129 + .../widgets/restore_bootstrap_view.dart | 198 + .../widgets/store_recovery_key_view.dart | 63 + lib/pages/call/call_page.dart | 537 +++ lib/pages/call/call_tile.dart | 140 + lib/pages/call/call_view_model.dart | 621 +++ lib/pages/call/start_time.dart | 43 + lib/pages/call/utils/get_call_tiles.dart | 109 + lib/pages/chat/chat.dart | 1665 +++++++ lib/pages/chat/chat_app_bar_list_tile.dart | 68 + lib/pages/chat/chat_app_bar_title.dart | 179 + lib/pages/chat/chat_emoji_picker.dart | 125 + lib/pages/chat/chat_event_list.dart | 253 ++ lib/pages/chat/chat_input_row.dart | 436 ++ lib/pages/chat/chat_view.dart | 494 ++ lib/pages/chat/command_hints.dart | 95 + lib/pages/chat/encryption_info.dart | 107 + lib/pages/chat/event_info_dialog.dart | 108 + lib/pages/chat/events/audio_player.dart | 538 +++ lib/pages/chat/events/cute_events.dart | 195 + .../events/file_send_status_indicator.dart | 35 + lib/pages/chat/events/html_message.dart | 743 +++ lib/pages/chat/events/image_bubble.dart | 175 + lib/pages/chat/events/map_bubble.dart | 105 + lib/pages/chat/events/message.dart | 1037 +++++ lib/pages/chat/events/message_content.dart | 321 ++ .../chat/events/message_download_content.dart | 124 + lib/pages/chat/events/message_reactions.dart | 208 + lib/pages/chat/events/poll.dart | 224 + lib/pages/chat/events/reply_content.dart | 110 + lib/pages/chat/events/state_message.dart | 123 + lib/pages/chat/events/video_player.dart | 163 + lib/pages/chat/image_edit_geometry.dart | 37 + lib/pages/chat/input_bar.dart | 475 ++ lib/pages/chat/pinned_events.dart | 104 + lib/pages/chat/recording_input_row.dart | 107 + lib/pages/chat/recording_view_model.dart | 222 + lib/pages/chat/reply_display.dart | 95 + lib/pages/chat/seen_by_row.dart | 94 + lib/pages/chat/send_file_dialog.dart | 1205 +++++ lib/pages/chat/send_location_dialog.dart | 136 + lib/pages/chat/start_poll_bottom_sheet.dart | 174 + lib/pages/chat/sticker_picker_dialog.dart | 187 + lib/pages/chat/trust_user_key_dialog.dart | 163 + lib/pages/chat/typing_indicators.dart | 103 + lib/pages/chat/utd_dialog.dart | 76 + lib/pages/chat/utils/web_file_to_x_file.dart | 23 + .../chat_access_settings_controller.dart | 359 ++ .../chat_access_settings_page.dart | 318 ++ lib/pages/chat_details/chat_details.dart | 173 + lib/pages/chat_details/chat_details_view.dart | 418 ++ .../chat_details/participant_list_item.dart | 114 + .../chat_encryption_settings.dart | 121 + .../chat_encryption_settings_view.dart | 246 + .../chat_list/active_call_indicator.dart | 49 + lib/pages/chat_list/chat_list.dart | 1098 +++++ lib/pages/chat_list/chat_list_body.dart | 338 ++ lib/pages/chat_list/chat_list_header.dart | 152 + lib/pages/chat_list/chat_list_item.dart | 412 ++ lib/pages/chat_list/chat_list_view.dart | 146 + .../chat_list/client_chooser_button.dart | 241 + lib/pages/chat_list/dummy_chat_list_item.dart | 77 + lib/pages/chat_list/navi_rail_item.dart | 103 + lib/pages/chat_list/navigation_rail.dart | 137 + lib/pages/chat_list/search_title.dart | 71 + lib/pages/chat_list/space_view.dart | 644 +++ lib/pages/chat_list/start_chat_fab.dart | 35 + lib/pages/chat_list/tabs/channels_tab.dart | 79 + lib/pages/chat_list/tabs/chat_tab_bar.dart | 115 + lib/pages/chat_list/tabs/empty_tab_view.dart | 56 + lib/pages/chat_list/tabs/home_tab.dart | 51 + lib/pages/chat_list/tabs/murals_tab.dart | 46 + lib/pages/chat_list/tabs/spaces_tab.dart | 89 + lib/pages/chat_list/unread_bubble.dart | 55 + lib/pages/chat_members/chat_members.dart | 120 + lib/pages/chat_members/chat_members_view.dart | 191 + .../chat_permissions_settings.dart | 78 + .../chat_permissions_settings_view.dart | 151 + .../permission_list_tile.dart | 130 + .../chat_search/chat_search_files_tab.dart | 112 + .../chat_search/chat_search_images_tab.dart | 129 + .../chat_search/chat_search_message_tab.dart | 147 + lib/pages/chat_search/chat_search_page.dart | 143 + lib/pages/chat_search/chat_search_view.dart | 122 + lib/pages/chat_search/search_footer.dart | 72 + .../device_settings/device_settings.dart | 179 + .../device_settings/device_settings_view.dart | 148 + .../user_device_list_item.dart | 154 + lib/pages/image_viewer/image_viewer.dart | 134 + lib/pages/image_viewer/image_viewer_view.dart | 162 + lib/pages/image_viewer/video_player.dart | 191 + .../intro/flows/restore_backup_flow.dart | 38 + lib/pages/intro/intro_page.dart | 199 + lib/pages/intro/intro_page_presenter.dart | 144 + .../invitation_selection.dart | 129 + .../invitation_selection_view.dart | 204 + .../key_verification_dialog.dart | 402 ++ lib/pages/login/login.dart | 278 ++ lib/pages/login/login_view.dart | 144 + lib/pages/new_group/new_group.dart | 197 + lib/pages/new_group/new_group_view.dart | 199 + .../new_private_chat/new_private_chat.dart | 134 + .../new_private_chat_view.dart | 290 ++ .../new_private_chat/qr_scanner_modal.dart | 80 + lib/pages/register/recaptcha_placeholder.dart | 27 + lib/pages/register/recaptcha_web.dart | 142 + lib/pages/register/registration.dart | 246 + lib/pages/register/registration_view.dart | 184 + lib/pages/settings/settings.dart | 221 + lib/pages/settings/settings_view.dart | 219 + lib/pages/settings_3pid/settings_3pid.dart | 104 + .../settings_3pid/settings_3pid_view.dart | 119 + lib/pages/settings_chat/settings_chat.dart | 22 + .../settings_chat/settings_chat_view.dart | 172 + .../import_archive_dialog.dart | 363 ++ .../settings_emotes/settings_emotes.dart | 422 ++ .../settings_emotes/settings_emotes_view.dart | 385 ++ .../settings_homeserver.dart | 57 + .../settings_homeserver_view.dart | 298 ++ .../settings_ignore_list.dart | 67 + .../settings_ignore_list_view.dart | 101 + .../push_rule_extensions.dart | 126 + .../settings_notifications.dart | 196 + .../settings_notifications_view.dart | 254 ++ .../settings_password/settings_password.dart | 98 + .../settings_password_view.dart | 93 + .../settings_security/settings_security.dart | 166 + .../settings_security_view.dart | 253 ++ lib/pages/settings_style/settings_style.dart | 141 + .../settings_style/settings_style_view.dart | 349 ++ lib/pages/sign_in/sign_in_page.dart | 247 + .../model/public_homeserver_data.dart | 84 + .../sign_in/view_model/sign_in_state.dart | 15 + .../view_model/sign_in_view_model.dart | 114 + lib/utils/account_bundles.dart | 105 + lib/utils/account_config.dart | 68 + lib/utils/adaptive_bottom_sheet.dart | 58 + lib/utils/background_push.dart | 464 ++ lib/utils/beautify_string_extension.dart | 31 + lib/utils/call_kit_params.dart | 89 + .../client_download_content_extension.dart | 109 + lib/utils/client_manager.dart | 188 + lib/utils/code_highlight_theme.dart | 45 + lib/utils/color_value.dart | 19 + lib/utils/custom_http_client.dart | 41 + lib/utils/custom_image_resizer.dart | 109 + lib/utils/custom_scroll_behaviour.dart | 15 + lib/utils/date_time_extension.dart | 191 + lib/utils/error_reporter.dart | 164 + lib/utils/event_checkbox_extension.dart | 31 + lib/utils/file_description.dart | 29 + lib/utils/file_selector.dart | 38 + lib/utils/init_with_restore.dart | 154 + lib/utils/localized_exception_extension.dart | 121 + lib/utils/markdown_context_builder.dart | 142 + .../call_keys_event_content.dart | 125 + .../matrix_live_kit_call.dart | 352 ++ .../matrix_live_kit_call_member.dart | 135 + .../device_extension.dart | 49 + .../event_extension.dart | 68 + .../filtered_timeline_extension.dart | 57 + .../builder.dart | 214 + .../cipher.dart | 88 + .../matrix_file_extension.dart | 70 + .../matrix_sdk_extensions/matrix_locals.dart | 382 ++ .../oidc_session_json_extension.dart | 29 + lib/utils/notification_avatar_extension.dart | 58 + .../notification_background_handler.dart | 214 + lib/utils/other_party_can_receive.dart | 26 + lib/utils/platform_infos.dart | 108 + lib/utils/position_from_build_context.dart | 25 + lib/utils/push_helper.dart | 547 +++ lib/utils/resize_video.dart | 65 + lib/utils/room_status_extension.dart | 62 + lib/utils/show_scaffold_dialog.dart | 38 + lib/utils/show_update_snackbar.dart | 73 + .../sign_in_flows/calc_redirect_url.dart | 30 + lib/utils/sign_in_flows/check_homeserver.dart | 104 + lib/utils/sign_in_flows/oidc_login.dart | 92 + lib/utils/sign_in_flows/sso_login.dart | 74 + lib/utils/size_string.dart | 26 + lib/utils/start_push_foreground_service.dart | 86 + lib/utils/stream_extension.dart | 53 + lib/utils/string_color.dart | 25 + lib/utils/sync_status_localization.dart | 31 + lib/utils/tatu_share.dart | 54 + lib/utils/uia_request_manager.dart | 110 + lib/utils/url_launcher.dart | 253 ++ lib/utils/verified_room_extension.dart | 15 + .../adaptive_dialog_action.dart | 164 + .../adaptive_dialogs/dialog_text_field.dart | 120 + .../adaptive_dialogs/public_room_dialog.dart | 308 ++ .../show_modal_action_popup.dart | 119 + .../show_ok_cancel_alert_dialog.dart | 106 + .../show_text_input_dialog.dart | 112 + lib/widgets/adaptive_dialogs/user_dialog.dart | 274 ++ lib/widgets/app_lock.dart | 146 + lib/widgets/avatar.dart | 170 + lib/widgets/blur_hash.dart | 91 + lib/widgets/chat_settings_popup_menu.dart | 145 + lib/widgets/config_viewer.dart | 146 + lib/widgets/future_loading_dialog.dart | 170 + lib/widgets/hover_builder.dart | 34 + lib/widgets/incoming_call_dialog.dart | 117 + lib/widgets/layouts/call_overlay.dart | 70 + lib/widgets/layouts/empty_page.dart | 37 + lib/widgets/layouts/login_scaffold.dart | 144 + lib/widgets/layouts/max_width_body.dart | 66 + lib/widgets/layouts/two_column_layout.dart | 43 + .../local_notifications_extension.dart | 141 + lib/widgets/lock_screen.dart | 198 + lib/widgets/log_view.dart | 97 + lib/widgets/matrix.dart | 435 ++ .../member_actions_popup_menu_button.dart | 377 ++ lib/widgets/mxc_image.dart | 266 ++ lib/widgets/mxc_image_viewer.dart | 64 + lib/widgets/permission_slider_dialog.dart | 66 + lib/widgets/presence_builder.dart | 60 + lib/widgets/pulsating_widget.dart | 69 + lib/widgets/qr_code_viewer.dart | 144 + lib/widgets/settings_switch_list_tile.dart | 44 + lib/widgets/share_scaffold_dialog.dart | 215 + lib/widgets/tatu_chat_app.dart | 102 + lib/widgets/theme_builder.dart | 103 + lib/widgets/typing_animation.dart | 71 + lib/widgets/unread_rooms_badge.dart | 48 + lib/widgets/view_model_builder.dart | 48 + licenses.yaml | 48 + linux/.gitignore | 1 + linux/CMakeLists.txt | 147 + linux/flutter/CMakeLists.txt | 88 + linux/main.cc | 6 + linux/my_application.cc | 137 + linux/my_application.h | 18 + macos/.gitignore | 7 + macos/Flutter/Flutter-Debug.xcconfig | 2 + macos/Flutter/Flutter-Release.xcconfig | 2 + macos/Podfile | 43 + macos/Runner.xcodeproj/project.pbxproj | 679 +++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 117 + .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + macos/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/1024-mac.png | Bin 0 -> 21100 bytes .../AppIcon.appiconset/128-mac.png | Bin 0 -> 2868 bytes .../AppIcon.appiconset/16-mac.png | Bin 0 -> 316 bytes .../AppIcon.appiconset/256-mac.png | Bin 0 -> 5382 bytes .../AppIcon.appiconset/32-mac.png | Bin 0 -> 878 bytes .../AppIcon.appiconset/512-mac.png | Bin 0 -> 10898 bytes .../AppIcon.appiconset/64-mac.png | Bin 0 -> 1462 bytes .../AppIcon.appiconset/Contents.json | 64 + .../AppIcon.appiconset/app_icon_1024.png | Bin 0 -> 45696 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 0 -> 5089 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 0 -> 582 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 0 -> 12054 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 0 -> 1216 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 0 -> 21545 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 0 -> 2499 bytes macos/Runner/Base.lproj/MainMenu.xib | 343 ++ macos/Runner/Configs/AppInfo.xcconfig | 14 + macos/Runner/Configs/Debug.xcconfig | 2 + macos/Runner/Configs/Release.xcconfig | 2 + macos/Runner/Configs/Warnings.xcconfig | 13 + macos/Runner/DebugProfile.entitlements | 26 + macos/Runner/Info.plist | 32 + macos/Runner/MainFlutterWindow.swift | 15 + macos/Runner/Release.entitlements | 22 + pubspec.lock | 2551 +++++++++++ pubspec.yaml | 148 + recommended_homeservers.json | 35 + scripts/add-firebase-messaging.sh | 17 + scripts/build-ios.sh | 84 + scripts/build-macos.sh | 39 + scripts/build-windows.ps1 | 12 + scripts/generate-locale-config.sh | 36 + scripts/generate_command_hints_glue.sh | 36 + scripts/prepare-android-release.sh | 19 + scripts/prepare-web.sh | 50 + scripts/prepare-windows.ps1 | 10 + scripts/prepare_integration_test.sh | 28 + scripts/release-ios-testflight.sh | 32 + scripts/update-license-headers.sh | 32 + snap/gui/tatuchat.desktop | 9 + snap/gui/tatuchat.png | Bin 0 -> 17397 bytes snap/snapcraft.yaml | 149 + test/archive_test.dart | 16 + test/command_hint_test.dart | 29 + test/homeserver_picker_test.dart | 23 + test/utils/test_client.dart | 48 + test/widget_test.dart | 26 + web/auth.html | 13 + web/favicon.png | Bin 0 -> 762 bytes web/icons/Icon-16.png | Bin 0 -> 762 bytes web/icons/Icon-192.png | Bin 0 -> 4318 bytes web/icons/Icon-32.png | Bin 0 -> 1677 bytes web/icons/Icon-48.png | Bin 0 -> 2203 bytes web/icons/Icon-512.png | Bin 0 -> 10837 bytes web/icons/Icon-maskable-192.png | Bin 0 -> 4318 bytes web/icons/Icon-maskable-512.png | Bin 0 -> 10837 bytes web/index.html | 63 + web/manifest.json | 35 + web/native_executor.dart | 3 + windows/.gitignore | 17 + windows/CMakeLists.txt | 101 + windows/flutter/CMakeLists.txt | 104 + windows/runner/CMakeLists.txt | 32 + windows/runner/Runner.rc | 121 + windows/runner/flutter_window.cpp | 61 + windows/runner/flutter_window.h | 33 + windows/runner/main.cpp | 43 + windows/runner/resource.h | 16 + windows/runner/resources/app_icon.ico | Bin 0 -> 1886 bytes windows/runner/runner.exe.manifest | 20 + windows/runner/utils.cpp | 64 + windows/runner/utils.h | 19 + windows/runner/win32_window.cpp | 245 + windows/runner/win32_window.h | 98 + 651 files changed, 199705 insertions(+) create mode 100644 .github/CODEOWNERS create mode 100644 .github/FUNDING.yml create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/ISSUE_TEMPLATE/test_report.md create mode 100644 .github/actions/free_up_space/action.yaml create mode 100644 .github/dependabot.yml create mode 100644 .github/pull_request_template.md create mode 100644 .github/workflows/integrate.yaml create mode 100644 .github/workflows/main_deploy.yaml create mode 100644 .github/workflows/matrix_notify.yaml create mode 100644 .github/workflows/release.yaml create mode 100644 .github/workflows/stale.yaml create mode 100644 .gitignore create mode 100644 .mailmap create mode 100644 .metadata create mode 100644 .tool_versions.yaml create mode 100644 .vscode/settings.json create mode 100644 CHANGELOG.md create mode 100644 CONTEXT.md create mode 100644 CONTRIBUTING.md create mode 100644 Dockerfile create mode 100644 LICENSE create mode 100644 LICENSES/AGPL-3.0-or-later.txt create mode 100644 LICENSES/Apache-2.0.txt create mode 100644 LICENSES/CC-BY-4.0.txt create mode 100644 PRIVACY.md create mode 100644 README.md create mode 100644 REUSE.toml create mode 100644 SECURITY.md create mode 100644 analysis_options.yaml create mode 100644 android/.gitignore create mode 100644 android/Gemfile create mode 100644 android/app/build.gradle.kts create mode 100644 android/app/proguard-rules.pro create mode 100644 android/app/src/main/AndroidManifest.xml create mode 100644 android/app/src/main/kotlin/chat/fluffy/fluffychat/FcmPushService.kt create mode 100644 android/app/src/main/kotlin/chat/fluffy/fluffychat/MainActivity.kt create mode 100644 android/app/src/main/res/drawable-hdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/drawable-hdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/drawable-hdpi/notifications_icon.png create mode 100644 android/app/src/main/res/drawable-hdpi/splash.png create mode 100644 android/app/src/main/res/drawable-mdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/drawable-mdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/drawable-mdpi/notifications_icon.png create mode 100644 android/app/src/main/res/drawable-mdpi/splash.png create mode 100644 android/app/src/main/res/drawable-night-v21/background.png create mode 100644 android/app/src/main/res/drawable-night-v21/launch_background.xml create mode 100644 android/app/src/main/res/drawable-night/background.png create mode 100644 android/app/src/main/res/drawable-night/launch_background.xml create mode 100644 android/app/src/main/res/drawable-v21/background.png create mode 100644 android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 android/app/src/main/res/drawable-xhdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/drawable-xhdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/drawable-xhdpi/notifications_icon.png create mode 100644 android/app/src/main/res/drawable-xhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-xxhdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/drawable-xxhdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/drawable-xxhdpi/notifications_icon.png create mode 100644 android/app/src/main/res/drawable-xxhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-xxxhdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/drawable-xxxhdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/drawable-xxxhdpi/notifications_icon.png create mode 100644 android/app/src/main/res/drawable-xxxhdpi/splash.png create mode 100644 android/app/src/main/res/drawable/background.png create mode 100644 android/app/src/main/res/drawable/ic_launcher_foreground.xml create mode 100644 android/app/src/main/res/drawable/ic_launcher_monochrome.xml create mode 100644 android/app/src/main/res/drawable/launch_background.xml create mode 100644 android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/values-night/styles.xml create mode 100644 android/app/src/main/res/values/ic_launcher_background.xml create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/main/res/xml/app_restrictions.xml create mode 100644 android/app/src/main/res/xml/automotive_app_desc.xml create mode 100644 android/app/src/main/res/xml/locale_config.xml create mode 100644 android/build.gradle.kts create mode 100644 android/fastlane/Appfile create mode 100644 android/fastlane/Fastfile create mode 100644 android/fastlane/README.md create mode 100644 android/fastlane/metadata/android/en-US/changelogs/default.txt create mode 100644 android/fastlane/metadata/android/en-US/full_description.txt create mode 100644 android/fastlane/metadata/android/en-US/images/logo.png create mode 100644 android/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png create mode 100644 android/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png create mode 100644 android/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png create mode 100644 android/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png create mode 100644 android/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png create mode 100644 android/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png create mode 100644 android/fastlane/metadata/android/en-US/short_description.txt create mode 100644 android/fastlane/metadata/android/en-US/title.txt create mode 100644 android/fastlane/report.xml create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100644 android/settings.gradle.kts create mode 100644 assets/logo/img/logo.png create mode 100644 assets/logo/img/logo1.png create mode 100644 assets/logo/img/logo_background.png create mode 100644 assets/logo/img/logo_font.png create mode 100644 assets/logo/img/logo_foreground.png create mode 100644 assets/logo/img/logo_mono.png create mode 100644 assets/logo/img/logo_standalone.png create mode 100644 assets/logo/mini/logo_font_mini.png create mode 100644 assets/logo/mini/logo_mini.png create mode 100644 assets/logo/mini/logo_mono_mini.png create mode 100644 assets/logo/vector/logo.svg create mode 100644 assets/logo/vector/logo_background.svg create mode 100644 assets/logo/vector/logo_foreground.svg create mode 100644 assets/logo/vector/logo_mono.svg create mode 100644 assets/logo/vector/logo_notification.svg create mode 100644 assets/logo/vector/logo_standalone.svg create mode 100644 assets/sas-emoji.json create mode 100644 assets/sounds/call_attention.mp3 create mode 100644 assets/sounds/call_join.mp3 create mode 100644 assets/sounds/call_leave.mp3 create mode 100644 assets/sounds/call_ring.mp3 create mode 100644 assets/sounds/call_wait.mp3 create mode 100644 assets/sounds/notification.mp3 create mode 100644 assets/vodozemac/0.8.1/.gitkeep create mode 100644 assets/vodozemac/0.8.1/vodozemac_bindings_dart.js create mode 100644 assets/vodozemac/0.8.1/vodozemac_bindings_dart_bg.wasm create mode 100644 config.sample.json create mode 100644 dart_dependency_validator.yaml create mode 100644 devtools_options.yaml create mode 100644 fastlane/README.md create mode 100644 fastlane/metadata create mode 100644 integration_test/.gitignore create mode 100644 integration_test/data/environment_constants.dart create mode 100644 integration_test/data/integration_users.env create mode 100644 integration_test/flows/auth_flows.dart create mode 100644 integration_test/flows/basic_messaging.dart create mode 100644 integration_test/flows/chat_flows.dart create mode 100644 integration_test/flows/login_and_chat_backup.dart create mode 100644 integration_test/flows/multi_account.dart create mode 100644 integration_test/mobile_test.dart create mode 100644 integration_test/synapse/data/homeserver.yaml create mode 100644 integration_test/synapse/data/localhost.log.config create mode 100644 integration_test/synapse/data/localhost.signing.key create mode 100644 integration_test/utils/tatu_chat_tester.dart create mode 100644 ios/.gitignore create mode 100644 ios/FluffyChat Share/Base.lproj/MainInterface.storyboard create mode 100644 ios/FluffyChat Share/FluffyChat Share.entitlements create mode 100644 ios/FluffyChat Share/Info.plist create mode 100644 ios/FluffyChat Share/ShareViewController.swift create mode 100644 ios/Flutter/AppFrameworkInfo.plist create mode 100644 ios/Flutter/Debug.xcconfig create mode 100644 ios/Flutter/Release.xcconfig create mode 100644 ios/Gemfile create mode 100644 ios/Localizable.xcstrings create mode 100644 ios/Notification Service Extension/Info.plist create mode 100644 ios/Notification Service Extension/Notification Service Extension.entitlements create mode 100644 ios/Notification Service Extension/NotificationService.swift create mode 100644 ios/Podfile create mode 100644 ios/Runner.xcodeproj/project.pbxproj create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved create mode 100644 ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved create mode 100644 ios/Runner/AppDelegate.swift create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 ios/Runner/Base.lproj/Main.storyboard create mode 100644 ios/Runner/GoogleService-Info.plist create mode 100644 ios/Runner/Info.plist create mode 100644 ios/Runner/Runner-Bridging-Header.h create mode 100644 ios/Runner/Runner.entitlements create mode 100644 ios/Runner/ar.lproj/LaunchScreen.strings create mode 100644 ios/Runner/ar.lproj/Main.strings create mode 100644 ios/Runner/ca.lproj/LaunchScreen.strings create mode 100644 ios/Runner/ca.lproj/Main.strings create mode 100644 ios/Runner/cs.lproj/LaunchScreen.strings create mode 100644 ios/Runner/cs.lproj/Main.strings create mode 100644 ios/Runner/de.lproj/LaunchScreen.strings create mode 100644 ios/Runner/de.lproj/Main.strings create mode 100644 ios/Runner/eo.lproj/LaunchScreen.strings create mode 100644 ios/Runner/eo.lproj/Main.strings create mode 100644 ios/Runner/es.lproj/LaunchScreen.strings create mode 100644 ios/Runner/es.lproj/Main.strings create mode 100644 ios/Runner/et.lproj/LaunchScreen.strings create mode 100644 ios/Runner/et.lproj/Main.strings create mode 100644 ios/Runner/eu.lproj/LaunchScreen.strings create mode 100644 ios/Runner/eu.lproj/Main.strings create mode 100644 ios/Runner/fr.lproj/LaunchScreen.strings create mode 100644 ios/Runner/fr.lproj/Main.strings create mode 100644 ios/Runner/gl.lproj/LaunchScreen.strings create mode 100644 ios/Runner/gl.lproj/Main.strings create mode 100644 ios/Runner/hr-HR.lproj/LaunchScreen.strings create mode 100644 ios/Runner/hr-HR.lproj/Main.strings create mode 100644 ios/Runner/hu-HU.lproj/LaunchScreen.strings create mode 100644 ios/Runner/hu-HU.lproj/Main.strings create mode 100644 ios/Runner/hu.lproj/LaunchScreen.strings create mode 100644 ios/Runner/hu.lproj/Main.strings create mode 100644 ios/Runner/hy.lproj/LaunchScreen.strings create mode 100644 ios/Runner/hy.lproj/Main.strings create mode 100644 ios/Runner/it.lproj/LaunchScreen.strings create mode 100644 ios/Runner/it.lproj/Main.strings create mode 100644 ios/Runner/ja.lproj/LaunchScreen.strings create mode 100644 ios/Runner/ja.lproj/Main.strings create mode 100644 ios/Runner/nb-NO.lproj/LaunchScreen.strings create mode 100644 ios/Runner/nb-NO.lproj/Main.strings create mode 100644 ios/Runner/notification.caf create mode 100644 ios/Runner/pl.lproj/LaunchScreen.strings create mode 100644 ios/Runner/pl.lproj/Main.strings create mode 100644 ios/Runner/pt.lproj/LaunchScreen.strings create mode 100644 ios/Runner/pt.lproj/Main.strings create mode 100644 ios/Runner/ru-RU.lproj/LaunchScreen.strings create mode 100644 ios/Runner/ru-RU.lproj/Main.strings create mode 100644 ios/Runner/sk-SK.lproj/LaunchScreen.strings create mode 100644 ios/Runner/sk-SK.lproj/Main.strings create mode 100644 ios/Runner/sv-SE.lproj/LaunchScreen.strings create mode 100644 ios/Runner/sv-SE.lproj/Main.strings create mode 100644 ios/Runner/tr.lproj/LaunchScreen.strings create mode 100644 ios/Runner/tr.lproj/Main.strings create mode 100644 ios/Runner/uk.lproj/LaunchScreen.strings create mode 100644 ios/Runner/uk.lproj/Main.strings create mode 100644 ios/Runner/vi-VN.lproj/LaunchScreen.strings create mode 100644 ios/Runner/vi-VN.lproj/Main.strings create mode 100644 ios/Runner/zh-Hans.lproj/LaunchScreen.strings create mode 100644 ios/Runner/zh-Hans.lproj/Main.strings create mode 100644 l10n.yaml create mode 100644 lib/config/app_config.dart create mode 100644 lib/config/isrg_x1.dart create mode 100644 lib/config/isrg_x2.dart create mode 100644 lib/config/routes.dart create mode 100644 lib/config/setting_keys.dart create mode 100644 lib/config/tatu_palette.dart create mode 100644 lib/config/themes.dart create mode 100644 lib/l10n/intl_ar.arb create mode 100644 lib/l10n/intl_az.arb create mode 100644 lib/l10n/intl_be.arb create mode 100644 lib/l10n/intl_bn.arb create mode 100644 lib/l10n/intl_bo.arb create mode 100644 lib/l10n/intl_ca.arb create mode 100644 lib/l10n/intl_cs.arb create mode 100644 lib/l10n/intl_da.arb create mode 100644 lib/l10n/intl_de.arb create mode 100644 lib/l10n/intl_el.arb create mode 100644 lib/l10n/intl_en.arb create mode 100644 lib/l10n/intl_eo.arb create mode 100644 lib/l10n/intl_es.arb create mode 100644 lib/l10n/intl_et.arb create mode 100644 lib/l10n/intl_eu.arb create mode 100644 lib/l10n/intl_fa.arb create mode 100644 lib/l10n/intl_fi.arb create mode 100644 lib/l10n/intl_fil.arb create mode 100644 lib/l10n/intl_fr.arb create mode 100644 lib/l10n/intl_ga.arb create mode 100644 lib/l10n/intl_gl.arb create mode 100644 lib/l10n/intl_he.arb create mode 100644 lib/l10n/intl_hi.arb create mode 100644 lib/l10n/intl_hr.arb create mode 100644 lib/l10n/intl_hu.arb create mode 100644 lib/l10n/intl_ia.arb create mode 100644 lib/l10n/intl_id.arb create mode 100644 lib/l10n/intl_ie.arb create mode 100644 lib/l10n/intl_it.arb create mode 100644 lib/l10n/intl_ja.arb create mode 100644 lib/l10n/intl_ka.arb create mode 100644 lib/l10n/intl_kab.arb create mode 100644 lib/l10n/intl_ko.arb create mode 100644 lib/l10n/intl_la.arb create mode 100644 lib/l10n/intl_lt.arb create mode 100644 lib/l10n/intl_lv.arb create mode 100644 lib/l10n/intl_nb.arb create mode 100644 lib/l10n/intl_nl.arb create mode 100644 lib/l10n/intl_pl.arb create mode 100644 lib/l10n/intl_pt.arb create mode 100644 lib/l10n/intl_pt_BR.arb create mode 100644 lib/l10n/intl_pt_PT.arb create mode 100644 lib/l10n/intl_ro.arb create mode 100644 lib/l10n/intl_ru.arb create mode 100644 lib/l10n/intl_sk.arb create mode 100644 lib/l10n/intl_sl.arb create mode 100644 lib/l10n/intl_sq.arb create mode 100644 lib/l10n/intl_sr.arb create mode 100644 lib/l10n/intl_sv.arb create mode 100644 lib/l10n/intl_ta.arb create mode 100644 lib/l10n/intl_te.arb create mode 100644 lib/l10n/intl_th.arb create mode 100644 lib/l10n/intl_tr.arb create mode 100644 lib/l10n/intl_uk.arb create mode 100644 lib/l10n/intl_uz.arb create mode 100644 lib/l10n/intl_vi.arb create mode 100644 lib/l10n/intl_yue_Hant.arb create mode 100644 lib/l10n/intl_zh.arb create mode 100644 lib/l10n/intl_zh_Hant.arb create mode 100644 lib/main.dart create mode 100644 lib/pages/archive/archive.dart create mode 100644 lib/pages/archive/archive_view.dart create mode 100644 lib/pages/bootstrap/bootstrap_page.dart create mode 100644 lib/pages/bootstrap/view_model/bootstrap_state.dart create mode 100644 lib/pages/bootstrap/view_model/bootstrap_view_model.dart create mode 100644 lib/pages/bootstrap/widgets/new_passphrase_view.dart create mode 100644 lib/pages/bootstrap/widgets/restore_bootstrap_view.dart create mode 100644 lib/pages/bootstrap/widgets/store_recovery_key_view.dart create mode 100644 lib/pages/call/call_page.dart create mode 100644 lib/pages/call/call_tile.dart create mode 100644 lib/pages/call/call_view_model.dart create mode 100644 lib/pages/call/start_time.dart create mode 100644 lib/pages/call/utils/get_call_tiles.dart create mode 100644 lib/pages/chat/chat.dart create mode 100644 lib/pages/chat/chat_app_bar_list_tile.dart create mode 100644 lib/pages/chat/chat_app_bar_title.dart create mode 100644 lib/pages/chat/chat_emoji_picker.dart create mode 100644 lib/pages/chat/chat_event_list.dart create mode 100644 lib/pages/chat/chat_input_row.dart create mode 100644 lib/pages/chat/chat_view.dart create mode 100644 lib/pages/chat/command_hints.dart create mode 100644 lib/pages/chat/encryption_info.dart create mode 100644 lib/pages/chat/event_info_dialog.dart create mode 100644 lib/pages/chat/events/audio_player.dart create mode 100644 lib/pages/chat/events/cute_events.dart create mode 100644 lib/pages/chat/events/file_send_status_indicator.dart create mode 100644 lib/pages/chat/events/html_message.dart create mode 100644 lib/pages/chat/events/image_bubble.dart create mode 100644 lib/pages/chat/events/map_bubble.dart create mode 100644 lib/pages/chat/events/message.dart create mode 100644 lib/pages/chat/events/message_content.dart create mode 100644 lib/pages/chat/events/message_download_content.dart create mode 100644 lib/pages/chat/events/message_reactions.dart create mode 100644 lib/pages/chat/events/poll.dart create mode 100644 lib/pages/chat/events/reply_content.dart create mode 100644 lib/pages/chat/events/state_message.dart create mode 100644 lib/pages/chat/events/video_player.dart create mode 100644 lib/pages/chat/image_edit_geometry.dart create mode 100644 lib/pages/chat/input_bar.dart create mode 100644 lib/pages/chat/pinned_events.dart create mode 100644 lib/pages/chat/recording_input_row.dart create mode 100644 lib/pages/chat/recording_view_model.dart create mode 100644 lib/pages/chat/reply_display.dart create mode 100644 lib/pages/chat/seen_by_row.dart create mode 100644 lib/pages/chat/send_file_dialog.dart create mode 100644 lib/pages/chat/send_location_dialog.dart create mode 100644 lib/pages/chat/start_poll_bottom_sheet.dart create mode 100644 lib/pages/chat/sticker_picker_dialog.dart create mode 100644 lib/pages/chat/trust_user_key_dialog.dart create mode 100644 lib/pages/chat/typing_indicators.dart create mode 100644 lib/pages/chat/utd_dialog.dart create mode 100644 lib/pages/chat/utils/web_file_to_x_file.dart create mode 100644 lib/pages/chat_access_settings/chat_access_settings_controller.dart create mode 100644 lib/pages/chat_access_settings/chat_access_settings_page.dart create mode 100644 lib/pages/chat_details/chat_details.dart create mode 100644 lib/pages/chat_details/chat_details_view.dart create mode 100644 lib/pages/chat_details/participant_list_item.dart create mode 100644 lib/pages/chat_encryption_settings/chat_encryption_settings.dart create mode 100644 lib/pages/chat_encryption_settings/chat_encryption_settings_view.dart create mode 100644 lib/pages/chat_list/active_call_indicator.dart create mode 100644 lib/pages/chat_list/chat_list.dart create mode 100644 lib/pages/chat_list/chat_list_body.dart create mode 100644 lib/pages/chat_list/chat_list_header.dart create mode 100644 lib/pages/chat_list/chat_list_item.dart create mode 100644 lib/pages/chat_list/chat_list_view.dart create mode 100644 lib/pages/chat_list/client_chooser_button.dart create mode 100644 lib/pages/chat_list/dummy_chat_list_item.dart create mode 100644 lib/pages/chat_list/navi_rail_item.dart create mode 100644 lib/pages/chat_list/navigation_rail.dart create mode 100644 lib/pages/chat_list/search_title.dart create mode 100644 lib/pages/chat_list/space_view.dart create mode 100644 lib/pages/chat_list/start_chat_fab.dart create mode 100644 lib/pages/chat_list/tabs/channels_tab.dart create mode 100644 lib/pages/chat_list/tabs/chat_tab_bar.dart create mode 100644 lib/pages/chat_list/tabs/empty_tab_view.dart create mode 100644 lib/pages/chat_list/tabs/home_tab.dart create mode 100644 lib/pages/chat_list/tabs/murals_tab.dart create mode 100644 lib/pages/chat_list/tabs/spaces_tab.dart create mode 100644 lib/pages/chat_list/unread_bubble.dart create mode 100644 lib/pages/chat_members/chat_members.dart create mode 100644 lib/pages/chat_members/chat_members_view.dart create mode 100644 lib/pages/chat_permissions_settings/chat_permissions_settings.dart create mode 100644 lib/pages/chat_permissions_settings/chat_permissions_settings_view.dart create mode 100644 lib/pages/chat_permissions_settings/permission_list_tile.dart create mode 100644 lib/pages/chat_search/chat_search_files_tab.dart create mode 100644 lib/pages/chat_search/chat_search_images_tab.dart create mode 100644 lib/pages/chat_search/chat_search_message_tab.dart create mode 100644 lib/pages/chat_search/chat_search_page.dart create mode 100644 lib/pages/chat_search/chat_search_view.dart create mode 100644 lib/pages/chat_search/search_footer.dart create mode 100644 lib/pages/device_settings/device_settings.dart create mode 100644 lib/pages/device_settings/device_settings_view.dart create mode 100644 lib/pages/device_settings/user_device_list_item.dart create mode 100644 lib/pages/image_viewer/image_viewer.dart create mode 100644 lib/pages/image_viewer/image_viewer_view.dart create mode 100644 lib/pages/image_viewer/video_player.dart create mode 100644 lib/pages/intro/flows/restore_backup_flow.dart create mode 100644 lib/pages/intro/intro_page.dart create mode 100644 lib/pages/intro/intro_page_presenter.dart create mode 100644 lib/pages/invitation_selection/invitation_selection.dart create mode 100644 lib/pages/invitation_selection/invitation_selection_view.dart create mode 100644 lib/pages/key_verification/key_verification_dialog.dart create mode 100644 lib/pages/login/login.dart create mode 100644 lib/pages/login/login_view.dart create mode 100644 lib/pages/new_group/new_group.dart create mode 100644 lib/pages/new_group/new_group_view.dart create mode 100644 lib/pages/new_private_chat/new_private_chat.dart create mode 100644 lib/pages/new_private_chat/new_private_chat_view.dart create mode 100644 lib/pages/new_private_chat/qr_scanner_modal.dart create mode 100644 lib/pages/register/recaptcha_placeholder.dart create mode 100644 lib/pages/register/recaptcha_web.dart create mode 100644 lib/pages/register/registration.dart create mode 100644 lib/pages/register/registration_view.dart create mode 100644 lib/pages/settings/settings.dart create mode 100644 lib/pages/settings/settings_view.dart create mode 100644 lib/pages/settings_3pid/settings_3pid.dart create mode 100644 lib/pages/settings_3pid/settings_3pid_view.dart create mode 100644 lib/pages/settings_chat/settings_chat.dart create mode 100644 lib/pages/settings_chat/settings_chat_view.dart create mode 100644 lib/pages/settings_emotes/import_archive_dialog.dart create mode 100644 lib/pages/settings_emotes/settings_emotes.dart create mode 100644 lib/pages/settings_emotes/settings_emotes_view.dart create mode 100644 lib/pages/settings_homeserver/settings_homeserver.dart create mode 100644 lib/pages/settings_homeserver/settings_homeserver_view.dart create mode 100644 lib/pages/settings_ignore_list/settings_ignore_list.dart create mode 100644 lib/pages/settings_ignore_list/settings_ignore_list_view.dart create mode 100644 lib/pages/settings_notifications/push_rule_extensions.dart create mode 100644 lib/pages/settings_notifications/settings_notifications.dart create mode 100644 lib/pages/settings_notifications/settings_notifications_view.dart create mode 100644 lib/pages/settings_password/settings_password.dart create mode 100644 lib/pages/settings_password/settings_password_view.dart create mode 100644 lib/pages/settings_security/settings_security.dart create mode 100644 lib/pages/settings_security/settings_security_view.dart create mode 100644 lib/pages/settings_style/settings_style.dart create mode 100644 lib/pages/settings_style/settings_style_view.dart create mode 100644 lib/pages/sign_in/sign_in_page.dart create mode 100644 lib/pages/sign_in/view_model/model/public_homeserver_data.dart create mode 100644 lib/pages/sign_in/view_model/sign_in_state.dart create mode 100644 lib/pages/sign_in/view_model/sign_in_view_model.dart create mode 100644 lib/utils/account_bundles.dart create mode 100644 lib/utils/account_config.dart create mode 100644 lib/utils/adaptive_bottom_sheet.dart create mode 100644 lib/utils/background_push.dart create mode 100644 lib/utils/beautify_string_extension.dart create mode 100644 lib/utils/call_kit_params.dart create mode 100644 lib/utils/client_download_content_extension.dart create mode 100644 lib/utils/client_manager.dart create mode 100644 lib/utils/code_highlight_theme.dart create mode 100644 lib/utils/color_value.dart create mode 100644 lib/utils/custom_http_client.dart create mode 100644 lib/utils/custom_image_resizer.dart create mode 100644 lib/utils/custom_scroll_behaviour.dart create mode 100644 lib/utils/date_time_extension.dart create mode 100644 lib/utils/error_reporter.dart create mode 100644 lib/utils/event_checkbox_extension.dart create mode 100644 lib/utils/file_description.dart create mode 100644 lib/utils/file_selector.dart create mode 100644 lib/utils/init_with_restore.dart create mode 100644 lib/utils/localized_exception_extension.dart create mode 100644 lib/utils/markdown_context_builder.dart create mode 100644 lib/utils/matrix_live_kit_calls/call_keys_event_content.dart create mode 100644 lib/utils/matrix_live_kit_calls/matrix_live_kit_call.dart create mode 100644 lib/utils/matrix_live_kit_calls/matrix_live_kit_call_member.dart create mode 100644 lib/utils/matrix_sdk_extensions/device_extension.dart create mode 100644 lib/utils/matrix_sdk_extensions/event_extension.dart create mode 100644 lib/utils/matrix_sdk_extensions/filtered_timeline_extension.dart create mode 100644 lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/builder.dart create mode 100644 lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/cipher.dart create mode 100644 lib/utils/matrix_sdk_extensions/matrix_file_extension.dart create mode 100644 lib/utils/matrix_sdk_extensions/matrix_locals.dart create mode 100644 lib/utils/matrix_sdk_extensions/oidc_session_json_extension.dart create mode 100644 lib/utils/notification_avatar_extension.dart create mode 100644 lib/utils/notification_background_handler.dart create mode 100644 lib/utils/other_party_can_receive.dart create mode 100644 lib/utils/platform_infos.dart create mode 100644 lib/utils/position_from_build_context.dart create mode 100644 lib/utils/push_helper.dart create mode 100644 lib/utils/resize_video.dart create mode 100644 lib/utils/room_status_extension.dart create mode 100644 lib/utils/show_scaffold_dialog.dart create mode 100644 lib/utils/show_update_snackbar.dart create mode 100644 lib/utils/sign_in_flows/calc_redirect_url.dart create mode 100644 lib/utils/sign_in_flows/check_homeserver.dart create mode 100644 lib/utils/sign_in_flows/oidc_login.dart create mode 100644 lib/utils/sign_in_flows/sso_login.dart create mode 100644 lib/utils/size_string.dart create mode 100644 lib/utils/start_push_foreground_service.dart create mode 100644 lib/utils/stream_extension.dart create mode 100644 lib/utils/string_color.dart create mode 100644 lib/utils/sync_status_localization.dart create mode 100644 lib/utils/tatu_share.dart create mode 100644 lib/utils/uia_request_manager.dart create mode 100644 lib/utils/url_launcher.dart create mode 100644 lib/utils/verified_room_extension.dart create mode 100644 lib/widgets/adaptive_dialogs/adaptive_dialog_action.dart create mode 100644 lib/widgets/adaptive_dialogs/dialog_text_field.dart create mode 100644 lib/widgets/adaptive_dialogs/public_room_dialog.dart create mode 100644 lib/widgets/adaptive_dialogs/show_modal_action_popup.dart create mode 100644 lib/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart create mode 100644 lib/widgets/adaptive_dialogs/show_text_input_dialog.dart create mode 100644 lib/widgets/adaptive_dialogs/user_dialog.dart create mode 100644 lib/widgets/app_lock.dart create mode 100644 lib/widgets/avatar.dart create mode 100644 lib/widgets/blur_hash.dart create mode 100644 lib/widgets/chat_settings_popup_menu.dart create mode 100644 lib/widgets/config_viewer.dart create mode 100644 lib/widgets/future_loading_dialog.dart create mode 100644 lib/widgets/hover_builder.dart create mode 100644 lib/widgets/incoming_call_dialog.dart create mode 100644 lib/widgets/layouts/call_overlay.dart create mode 100644 lib/widgets/layouts/empty_page.dart create mode 100644 lib/widgets/layouts/login_scaffold.dart create mode 100644 lib/widgets/layouts/max_width_body.dart create mode 100644 lib/widgets/layouts/two_column_layout.dart create mode 100644 lib/widgets/local_notifications_extension.dart create mode 100644 lib/widgets/lock_screen.dart create mode 100644 lib/widgets/log_view.dart create mode 100644 lib/widgets/matrix.dart create mode 100644 lib/widgets/member_actions_popup_menu_button.dart create mode 100644 lib/widgets/mxc_image.dart create mode 100644 lib/widgets/mxc_image_viewer.dart create mode 100644 lib/widgets/permission_slider_dialog.dart create mode 100644 lib/widgets/presence_builder.dart create mode 100644 lib/widgets/pulsating_widget.dart create mode 100644 lib/widgets/qr_code_viewer.dart create mode 100644 lib/widgets/settings_switch_list_tile.dart create mode 100644 lib/widgets/share_scaffold_dialog.dart create mode 100644 lib/widgets/tatu_chat_app.dart create mode 100644 lib/widgets/theme_builder.dart create mode 100644 lib/widgets/typing_animation.dart create mode 100644 lib/widgets/unread_rooms_badge.dart create mode 100644 lib/widgets/view_model_builder.dart create mode 100644 licenses.yaml create mode 100644 linux/.gitignore create mode 100644 linux/CMakeLists.txt create mode 100644 linux/flutter/CMakeLists.txt create mode 100644 linux/main.cc create mode 100644 linux/my_application.cc create mode 100644 linux/my_application.h create mode 100644 macos/.gitignore create mode 100644 macos/Flutter/Flutter-Debug.xcconfig create mode 100644 macos/Flutter/Flutter-Release.xcconfig create mode 100644 macos/Podfile create mode 100644 macos/Runner.xcodeproj/project.pbxproj create mode 100644 macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 macos/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 macos/Runner/AppDelegate.swift create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/1024-mac.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/128-mac.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/16-mac.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/256-mac.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/32-mac.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/512-mac.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/64-mac.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png create mode 100644 macos/Runner/Base.lproj/MainMenu.xib create mode 100644 macos/Runner/Configs/AppInfo.xcconfig create mode 100644 macos/Runner/Configs/Debug.xcconfig create mode 100644 macos/Runner/Configs/Release.xcconfig create mode 100644 macos/Runner/Configs/Warnings.xcconfig create mode 100644 macos/Runner/DebugProfile.entitlements create mode 100644 macos/Runner/Info.plist create mode 100644 macos/Runner/MainFlutterWindow.swift create mode 100644 macos/Runner/Release.entitlements create mode 100644 pubspec.lock create mode 100644 pubspec.yaml create mode 100644 recommended_homeservers.json create mode 100644 scripts/add-firebase-messaging.sh create mode 100644 scripts/build-ios.sh create mode 100644 scripts/build-macos.sh create mode 100644 scripts/build-windows.ps1 create mode 100644 scripts/generate-locale-config.sh create mode 100644 scripts/generate_command_hints_glue.sh create mode 100644 scripts/prepare-android-release.sh create mode 100644 scripts/prepare-web.sh create mode 100644 scripts/prepare-windows.ps1 create mode 100644 scripts/prepare_integration_test.sh create mode 100644 scripts/release-ios-testflight.sh create mode 100644 scripts/update-license-headers.sh create mode 100644 snap/gui/tatuchat.desktop create mode 100644 snap/gui/tatuchat.png create mode 100644 snap/snapcraft.yaml create mode 100644 test/archive_test.dart create mode 100644 test/command_hint_test.dart create mode 100644 test/homeserver_picker_test.dart create mode 100644 test/utils/test_client.dart create mode 100644 test/widget_test.dart create mode 100644 web/auth.html create mode 100644 web/favicon.png create mode 100644 web/icons/Icon-16.png create mode 100644 web/icons/Icon-192.png create mode 100644 web/icons/Icon-32.png create mode 100644 web/icons/Icon-48.png create mode 100644 web/icons/Icon-512.png create mode 100644 web/icons/Icon-maskable-192.png create mode 100644 web/icons/Icon-maskable-512.png create mode 100644 web/index.html create mode 100644 web/manifest.json create mode 100644 web/native_executor.dart create mode 100644 windows/.gitignore create mode 100644 windows/CMakeLists.txt create mode 100644 windows/flutter/CMakeLists.txt create mode 100644 windows/runner/CMakeLists.txt create mode 100644 windows/runner/Runner.rc create mode 100644 windows/runner/flutter_window.cpp create mode 100644 windows/runner/flutter_window.h create mode 100644 windows/runner/main.cpp create mode 100644 windows/runner/resource.h create mode 100644 windows/runner/resources/app_icon.ico create mode 100644 windows/runner/runner.exe.manifest create mode 100644 windows/runner/utils.cpp create mode 100644 windows/runner/utils.h create mode 100644 windows/runner/win32_window.cpp create mode 100644 windows/runner/win32_window.h diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..6ab0888 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,3 @@ +* @krille-chan +pubspec.* @dependabot +lib/l10n/*.arb @weblate \ No newline at end of file diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..402c3c7 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,13 @@ +# These are supported funding model platforms + +github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: krille +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: KrilleChritzelius +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..707b04e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,74 @@ +name: 🐛 Bug report +description: Create a report to help us improve +labels: bug +body: + - type: textarea + id: bug-description + attributes: + label: "Bug Description" + description: "A clear and concise description of what the bug is. Please add screenshots if you have as they usually help us a lot." + placeholder: "Describe the bug here..." + validations: + required: true + - type: textarea + id: reproduce-steps + attributes: + label: "Steps to Reproduce" + description: "Steps to reproduce the behavior:" + placeholder: "1. Go to '...'\n2. Click on '...'\n3. Scroll down to '...'\n4. See error" + validations: + required: true + - type: textarea + id: stacktrace + attributes: + label: "StackTrace or logs" + description: "A clear and concise description of what you expected to happen." + placeholder: "Describe what you expected to happen here..." + validations: + required: false + - type: input + id: app-version + attributes: + label: "App Version" + description: "Please provide the version of the app you are using." + placeholder: "e.g. 1.12.0" + validations: + required: true + - type: dropdown + id: platform + attributes: + label: "Platform" + description: "Select the platform where the bug occurs." + options: + - Android (PlayStore) + - Android (F-Droid) + - Android + - iOS + - iOS (iPad) + - Web (Chrome(ium)) + - Web (Firefox) + - Web (Safari) + - Linux (Snap) + - Linux (Flatpak) + - Linux + - macOS (iOS/iPadOS version) + - macOS (Self-compiled) + - Windows (Self-compiled) + - Other + validations: + required: true + - type: input + id: platform-info + attributes: + label: "Additional Platform Information" + description: "Please provide the following information:" + placeholder: "Device: [e.g. iPhone6, PC, Pixel 3]\nOS: [e.g. iOS, Android, Windows, Linux, macOS]\nBrowser (if applicable): [e.g. Chrome, Safari]" + validations: + required: true + - type: textarea + id: additional-context + attributes: + label: "Additional Context" + description: "Add any other context about the problem here." + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..750d36b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: 👬 TatuChat Community + url: https://matrix.to/#/#fluffy-space:matrix.org + about: Please ask and answer questions here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..4007c88 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,34 @@ +name: 💡 Feature Request +description: Suggest an idea for this project +labels: enhancement +body: + - type: textarea + id: feature-description + attributes: + label: "Feature Description" + description: "Provide a clear and concise description of the feature." + placeholder: "Describe the feature here..." + validations: + required: true + - type: textarea + id: rationale + attributes: + label: "Rationale" + description: "Explain why this feature should be added." + placeholder: "Describe the rationale for the feature here..." + validations: + required: true + - type: textarea + id: mockup + attributes: + label: "Mockup" + description: "If applicable, add any visual mock-ups of the feature." + validations: + required: false + - type: textarea + id: additional-context + attributes: + label: "Additional Context" + description: "Add any other context or screenshots about the feature request here." + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/test_report.md b/.github/ISSUE_TEMPLATE/test_report.md new file mode 100644 index 0000000..fb97739 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/test_report.md @@ -0,0 +1,44 @@ +--- +name: 📝 Test +about: A detailed protocol for testing all features +title: 'Test Report' +labels: test +--- + +1. App receives push notifications over Firebase Cloud Messaging when it is in background/terminated: + - [ ] Android + - [ ] iOS +2. App receives push notifications over Unified Push when it is in background/terminated: + - [ ] Android +3. Notifications for rooms, which are not in foreground, are working: + - [ ] Web + - [ ] Linux +4. QR Code scanner can still scan links to start a new chat: + - [ ] Android + - [ ] iOS +5. Recording and playing voice messages works: + - [ ] Android + - [ ] iOS + - [ ] Web (play only) +6. Sending and downloading files/images works: + - [ ] Android + - [ ] iOS + - [ ] Web + - [ ] Linux +7. Sharing texts/files/images from other apps to FluffyChat works: + - [ ] Android + - [ ] iOS +8. Login with single sign on works: + - [ ] Android + - [ ] iOS + - [ ] Web + - [ ] Linux +9. Test if the app lock works as intended and appears on opening/resuming the app: + - [ ] Android + - [ ] iOS +10. Drag&Drop to send a file into a chat still works: + - [ ] Web + - [ ] Linux +11. Deeplinks are still working? https://matrix.to/#/@krille:janian.de + - [ ] Android + - [ ] iOS \ No newline at end of file diff --git a/.github/actions/free_up_space/action.yaml b/.github/actions/free_up_space/action.yaml new file mode 100644 index 0000000..abe2c4b --- /dev/null +++ b/.github/actions/free_up_space/action.yaml @@ -0,0 +1,50 @@ +name: "Free up space" + +inputs: + target: + required: true + +runs: + using: "composite" + steps: + - name: Free up space + shell: bash + run: | + sudo rm -rf /usr/share/dotnet + sudo rm -rf /usr/local/share/boost + sudo rm -rf /usr/local/share/chromium + sudo rm -rf /usr/local/share/powershell + sudo rm -rf /usr/local/share/vcpkg + sudo rm -rf /usr/local/share/miniconda + sudo rm -rf /opt/ghc + sudo rm -rf /opt/hostedtoolcache/CodeQL + sudo rm -rf /opt/hostedtoolcache/go + sudo rm -rf /opt/hostedtoolcache/Python + sudo rm -rf /opt/hostedtoolcache/node + sudo rm -rf /opt/hostedtoolcache/R + sudo rm -rf /opt/hostedtoolcache/Java + sudo rm -rf /opt/hostedtoolcache/LLVM + sudo rm -rf /opt/hostedtoolcache/Swift + sudo rm -rf /opt/hostedtoolcache/Php + sudo rm -rf /opt/hostedtoolcache/Perl + sudo rm -rf /opt/hostedtoolcache/Scala + sudo rm -rf /opt/hostedtoolcache/Julia + sudo rm -rf /opt/hostedtoolcache/Mono + sudo rm -rf /opt/hostedtoolcache/PowerShell + sudo rm -rf /opt/hostedtoolcache/Crystal + sudo rm -rf /opt/hostedtoolcache/Elixir + sudo rm -rf /opt/hostedtoolcache/Erlang + sudo rm -rf /opt/hostedtoolcache/FSharp + sudo rm -rf /opt/hostedtoolcache/Haskell + sudo rm -rf /opt/hostedtoolcache/OCaml + sudo rm -rf /opt/hostedtoolcache/Sbt + sudo rm -rf /opt/hostedtoolcache/Solidity + sudo rm -rf /opt/hostedtoolcache/VisualStudio + sudo rm -rf /opt/hostedtoolcache/WinAppDriver + sudo rm -rf /opt/hostedtoolcache/Xamarin + sudo rm -rf /opt/hostedtoolcache/Yarn + sudo rm -rf /opt/hostedtoolcache/Zephyr + sudo rm -rf /opt/hostedtoolcache/zig + sudo rm -rf /opt/hostedtoolcache/zulu + sudo rm -rf /opt/hostedtoolcache/azcopy + echo "export CARGO_BUILD_JOBS=1" >> $GITHUB_ENV diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..37557f7 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,23 @@ +version: 2 +updates: + - package-ecosystem: "pub" + directory: "/" + schedule: + interval: "daily" + allow: + - dependency-name: "*" + commit-message: + prefix: "build: " + include: "scope" + assignees: + - "krille-chan" + open-pull-requests-limit: 5 + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + allow: + - dependency-name: "*" + commit-message: + prefix: "build: " + include: "scope" diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..26504d6 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,12 @@ +- [ ] I have read and understood the [contributing guidelines](https://github.com/krille-chan/fluffychat/blob/main/CONTRIBUTING.md). + +### Pull Request has been tested on: + +- [ ] Android +- [ ] iOS +- [ ] Browser (Chromium based) +- [ ] Browser (Firefox based) +- [ ] Browser (WebKit based) +- [ ] Desktop Linux +- [ ] Desktop Windows +- [ ] Desktop macOS \ No newline at end of file diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml new file mode 100644 index 0000000..7a3b243 --- /dev/null +++ b/.github/workflows/integrate.yaml @@ -0,0 +1,229 @@ +name: Pull Request Workflow + +on: + pull_request: + merge_group: + +jobs: + code_tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: webiny/action-conventional-commits@v1.4.2 + - name: Check licenses + uses: fsfe/reuse-action@v6 + - run: ./scripts/generate-locale-config.sh + - run: git diff --exit-code + - uses: subosito/flutter-action@v2 + with: + flutter-version-file: .tool_versions.yaml + cache: true + - uses: dtolnay/rust-toolchain@stable + - name: Check for empty translations + run: | + if grep -rn '": ""' lib/l10n/*.arb; then + echo "❌ Found empty translation strings." + exit 1 + fi + - run: flutter pub get + - name: Check if pubspec.lock is up to date + run: git diff --exit-code pubspec.lock + - name: Check formatting + run: dart format lib/ test/ --set-exit-if-changed + - name: Check license compliance + run: dart run license_checker check-licenses -c licenses.yaml --problematic + - name: Check for unused translations + run: | + dart pub global activate sweeper + dart pub global run sweeper check + - run: flutter analyze + - name: Search unused dependencies + run: | + dart pub global activate dependency_validator + dart pub global run dependency_validator + - run: dart run dart_code_linter:metrics analyze lib --reporter=github + - run: dart run dart_code_linter:metrics check-unused-code lib + - run: dart run dart_code_linter:metrics check-unused-files lib + - run: dart run dart_code_linter:metrics check-unused-l10n lib + - name: Check for commented-out Dart code with semicolons + run: | + if grep -R --include="*.dart" -nE '^[[:space:]]*//[^/<].*;[[:space:]]*$' lib/; then + echo "" + echo "❌ Found commented-out Dart code ending with semicolon." + exit 1 + fi + - name: Add Firebase Messaging + run: ./scripts/add-firebase-messaging.sh + - run: flutter analyze + - run: flutter test + + build_debug_apk: + needs: [ code_tests ] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: ./.github/actions/free_up_space + - uses: subosito/flutter-action@v2 + with: + flutter-version-file: .tool_versions.yaml + cache: true + - uses: dtolnay/rust-toolchain@stable + - name: Cache Gradle + uses: actions/cache@v6 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: gradle-${{ runner.os }}- + - run: ./scripts/add-firebase-messaging.sh + - run: flutter build apk --debug --target-platform android-x64 + - name: Upload Debug APK + uses: actions/upload-artifact@v7 + with: + name: debug-apk-x64 + path: build/app/outputs/flutter-apk/app-debug.apk + + build_debug_web: + needs: [ code_tests ] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: subosito/flutter-action@v2 + with: + flutter-version-file: .tool_versions.yaml + cache: true + - uses: dtolnay/rust-toolchain@stable + - run: rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu + - run: flutter pub get + - name: Prepare web + run: ./scripts/prepare-web.sh + - run: git diff --exit-code + - run: flutter build web + - name: Upload Web Build + uses: actions/upload-artifact@v7 + with: + name: Web Build + path: build/web + + build_debug_linux: + needs: [ code_tests ] + strategy: + matrix: + arch: [ x64, arm64 ] + runs-on: ${{ matrix.arch == 'arm64' && 'ubuntu-24.04-arm' || 'ubuntu-latest'}} + steps: + - uses: actions/checkout@v7 + - name: Install dependencies + run: sudo apt-get update && sudo apt-get install git wget curl clang cmake ninja-build pkg-config libgtk-3-dev libblkid-dev liblzma-dev libjsoncpp-dev cmake-data libsecret-1-dev libsecret-1-0 librhash0 libssl-dev libwebkit2gtk-4.1-dev libpulse-dev -y + - run: echo "FLUTTER_VERSION=$(yq '.environment.flutter' < .tool_versions.yaml)" >> $GITHUB_ENV + - name: Install Flutter + run: | + git clone --branch ${{ env.FLUTTER_VERSION }} https://github.com/flutter/flutter.git + ./flutter/bin/flutter doctor + - uses: dtolnay/rust-toolchain@stable + - run: ./flutter/bin/flutter pub get + - run: ./flutter/bin/flutter build linux --target-platform linux-${{ matrix.arch }} + + build_debug_ios: + needs: [ code_tests ] + runs-on: macos-15 + steps: + - uses: actions/checkout@v7 + - uses: subosito/flutter-action@v2 + with: + flutter-version-file: .tool_versions.yaml + cache: true + - name: Use specific XCode version + run: sudo xcode-select --switch /Applications/Xcode_26.3.app + - run: brew install sqlcipher + - uses: dtolnay/rust-toolchain@stable + - run: ./scripts/add-firebase-messaging.sh + - run: flutter pub get + - run: flutter build ios --no-codesign + + integration_test: + runs-on: ubuntu-latest + timeout-minutes: 60 + needs: [ code_tests ] + strategy: + matrix: + api-level: [34] + env: + ANDROID_USER_HOME: /home/runner/.android + ANDROID_EMULATOR_HOME: /home/runner/.android + ANDROID_AVD_HOME: /home/runner/.android/avd + AVD_CONFIG_PATH: "~/.android/avd/test.avd/config.ini" + steps: + - uses: actions/checkout@v7 + - uses: ./.github/actions/free_up_space + # https://github.blog/changelog/2023-02-23-hardware-accelerated-android-virtualization-on-actions-windows-and-linux-larger-hosted-runners/ + - name: Enable KVM group perms + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + - name: AVD cache + uses: actions/cache@v6 + id: avd-cache + with: + path: ~/.android/* + key: avd-${{ matrix.api-level }}-integration_docker + - name: create AVD and generate snapshot for caching + if: steps.avd-cache.outputs.cache-hit != 'true' + uses: reactivecircus/android-emulator-runner@d94c3fbe4fe6a29e4a5ba47c12fb47677c73656b + with: + api-level: ${{ matrix.api-level }} + target: google_apis + arch: x86_64 + cores: 4 + ndk: 28.2.13676358 + force-avd-creation: false + disk-size: 4096M + ram-size: 4096M + sdcard-path-or-size: 4096M + emulator-options: -no-window -wipe-data -accel on -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none + script: | + cat ${{ env.AVD_CONFIG_PATH }} + + sed -i.bak 's/hw.lcd.density = .*/hw.lcd.density=420/' ${{ env.AVD_CONFIG_PATH }} + sed -i.bak 's/hw.lcd.height = .*/hw.lcd.height=1920/' ${{ env.AVD_CONFIG_PATH }} + sed -i.bak 's/hw.lcd.width = .*/hw.lcd.width=1080/' ${{ env.AVD_CONFIG_PATH }} + + if ! grep -q "hw.lcd.density" ${{ env.AVD_CONFIG_PATH }} && echo "hw.lcd.density = 420" >> ${{ env.AVD_CONFIG_PATH }}; then :; fi + if ! grep -q "hw.lcd.height" ${{ env.AVD_CONFIG_PATH }} && echo "hw.lcd.height = 1920" >> ${{ env.AVD_CONFIG_PATH }}; then :; fi + if ! grep -q "hw.lcd.width" ${{ env.AVD_CONFIG_PATH }} && echo "hw.lcd.width = 1080" >> ${{ env.AVD_CONFIG_PATH }}; then :; fi + + echo "Emulator settings (${{ env.AVD_CONFIG_PATH }})" + cat ${{ env.AVD_CONFIG_PATH }} + echo "Generated AVD snapshot for caching." + - uses: subosito/flutter-action@v2 + with: + flutter-version-file: .tool_versions.yaml + cache: true + - uses: dtolnay/rust-toolchain@stable + - name: Cache Gradle + uses: actions/cache@v6 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: gradle-${{ runner.os }}- + - name: Prepare Homeserver + run: ./scripts/prepare_integration_test.sh + - name: Integration tests + id: integration_tests + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: ${{ matrix.api-level }} + target: google_apis + arch: x86_64 + cores: 16 + ndk: 28.2.13676358 + force-avd-creation: false + disk-size: 4096M + ram-size: 4096M + sdcard-path-or-size: 4096M + emulator-options: -no-snapshot-save -no-window -wipe-data -accel on -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none + script: flutter test integration_test/mobile_test.dart \ No newline at end of file diff --git a/.github/workflows/main_deploy.yaml b/.github/workflows/main_deploy.yaml new file mode 100644 index 0000000..c83106e --- /dev/null +++ b/.github/workflows/main_deploy.yaml @@ -0,0 +1,83 @@ +name: Main Deploy Workflow + +on: + push: + branches: + - main + workflow_dispatch: + +concurrency: + group: main_deploy + cancel-in-progress: true + +jobs: + deploy_web: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: subosito/flutter-action@v2 + with: + flutter-version-file: .tool_versions.yaml + - uses: dtolnay/rust-toolchain@stable + - run: rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu + - name: Prepare web + run: ./scripts/prepare-web.sh + - run: rm ./assets/vodozemac/.gitignore + - run: flutter pub get + - name: Build Release Web + run: flutter build web --dart-define=FLUTTER_WEB_CANVASKIT_URL=canvaskit/ --release --source-maps --base-href "/nightly/" + - run: mv build/web/ public + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v4 + with: + personal_token: ${{ secrets.PAGES_DEPLOY_TOKEN }} + publish_dir: ./public + publish_branch: gh-pages + destination_dir: nightly + + deploy_playstore_internal: + runs-on: ubuntu-latest + concurrency: + group: deploy_playstore + queue: max + steps: + - uses: actions/checkout@v7 + - uses: subosito/flutter-action@v2 + with: + flutter-version-file: .tool_versions.yaml + cache: true + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: '3.3' + - uses: ./.github/actions/free_up_space + - uses: dtolnay/rust-toolchain@stable + - name: Install Fastlane + run: gem install fastlane -NV + - name: Add Firebase Messaging + run: | + echo '${{secrets.GOOGLE_SERVICES_JSON}}' | base64 -d > android/app/google-services.json + ./scripts/add-firebase-messaging.sh + - run: flutter pub get + - name: Prepare Android Release Build + env: + FDROID_KEY: ${{ secrets.FDROID_KEY }} + FDROID_KEY_PASS: ${{ secrets.FDROID_KEY_PASS }} + PLAYSTORE_DEPLOY_KEY: ${{ secrets.PLAYSTORE_DEPLOY_KEY }} + run: ./scripts/prepare-android-release.sh + - name: Remove Android Auto metadata for Play Store + run: sed -i '/Android Auto/,/automotive_app_desc/d' android/app/src/main/AndroidManifest.xml + - name: Build Android Release + run: flutter build appbundle --target-platform android-arm,android-arm64 + - name: Set changelog + working-directory: android/fastlane/metadata/android/en-US/changelogs + run: git log --no-merges -1 --pretty=%B > default.txt + - name: Deploy Android Release + run: | + mkdir -p build/android + cp build/app/outputs/bundle/release/app-release.aab build/android/ + cd android + bundle install + bundle update fastlane + bundle exec fastlane deploy_internal_test + cd .. diff --git a/.github/workflows/matrix_notify.yaml b/.github/workflows/matrix_notify.yaml new file mode 100644 index 0000000..f1583f1 --- /dev/null +++ b/.github/workflows/matrix_notify.yaml @@ -0,0 +1,60 @@ +name: Matrix Notification + +on: + issues: + types: [opened] + pull_request_target: + types: [opened] + +jobs: + notify: + if: ${{ (github.event_name == 'issues' && github.event.issue.user.login != 'krille-chan') || (github.event_name == 'pull_request_target' && github.event.pull_request.user.login != 'krille-chan') }} + runs-on: ubuntu-latest + steps: + - name: Send notification to Matrix room + env: + HOMESERVER: ${{ secrets.MATRIX_HOMESERVER }} + ACCESS_TOKEN: ${{ secrets.MATRIX_ACCESS_TOKEN }} + ROOM_ID: ${{ secrets.MATRIX_ROOM_ID }} + EVENT_NAME: ${{ github.event_name }} + ISSUE_TITLE: ${{ github.event.issue.title }} + ISSUE_URL: ${{ github.event.issue.html_url }} + ISSUE_LABELS: ${{ join(github.event.issue.labels.*.name, ', ') }} + ISSUE_AUTHOR: ${{ github.event.issue.user.login }} + PR_TITLE: ${{ github.event.pull_request.title }} + PR_URL: ${{ github.event.pull_request.html_url }} + PR_LABELS: ${{ join(github.event.pull_request.labels.*.name, ', ') }} + PR_AUTHOR: ${{ github.event.pull_request.user.login }} + run: | + if [ "${EVENT_NAME}" = "issues" ]; then + EMOJI="📝" + PREFIX="New Issue" + TITLE="${ISSUE_TITLE}" + URL="${ISSUE_URL}" + LABELS="${ISSUE_LABELS}" + AUTHOR="${ISSUE_AUTHOR}" + else + EMOJI="🔀" + PREFIX="New Pull Request" + TITLE="${PR_TITLE}" + URL="${PR_URL}" + LABELS="${PR_LABELS}" + AUTHOR="${PR_AUTHOR}" + fi + + AUTHOR_URL="https://github.com/${AUTHOR}" + PLAIN="${EMOJI} ${PREFIX} by ${AUTHOR}: ${TITLE} - ${URL}" + HTML="

${EMOJI} ${PREFIX}

" + HTML="${HTML}${TITLE}
" + HTML="${HTML}👤 ${AUTHOR}" + if [ -n "${LABELS}" ]; then + HTML="${HTML}
🏷️ ${LABELS}" + fi + TXN_ID=$(date +%s%N) + + curl -s -o /dev/null -w "%{http_code}" -X PUT \ + "${HOMESERVER}/_matrix/client/v3/rooms/${ROOM_ID}/send/m.room.message/${TXN_ID}" \ + -H "Authorization: Bearer ${ACCESS_TOKEN}" \ + -H "Content-Type: application/json" \ + -d "$(jq -n --arg body "$PLAIN" --arg html "$HTML" \ + '{"msgtype":"m.notice","body":$body,"format":"org.matrix.custom.html","formatted_body":$html}')" \ No newline at end of file diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..bcc24c7 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,216 @@ +name: Release Workflow + +on: + release: + types: + - created + +concurrency: + group: release_workflow + cancel-in-progress: true + +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + +jobs: + build_web: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: subosito/flutter-action@v2 + with: + flutter-version-file: .tool_versions.yaml + cache: true + - uses: dtolnay/rust-toolchain@stable + - run: rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu + - run: flutter pub get + - name: Prepare web + run: ./scripts/prepare-web.sh + - run: rm ./assets/vodozemac/.gitignore + - name: Build Release Web + run: flutter build web --dart-define=FLUTTER_WEB_CANVASKIT_URL=canvaskit/ --release --source-maps --base-href "/web/" + - name: Create archive + run: tar -czf tatuchat-web.tar.gz build/web/ + - name: Upload Web Build + uses: actions/upload-artifact@v7 + with: + name: Web Build + path: tatuchat-web.tar.gz + - name: Upload to release + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.PAGES_DEPLOY_TOKEN }} + with: + upload_url: ${{ github.event.release.upload_url }} + asset_path: tatuchat-web.tar.gz + asset_name: tatuchat-web.tar.gz + asset_content_type: application/gzip + - name: Clone fluffychat website + run: | + git clone https://github.com/krille-chan/fluffychat-website.git + cat CHANGELOG.md >> fluffychat-website/src/changelog.md + cat PRIVACY.md >> fluffychat-website/src/privacy.md + - name: Build website + working-directory: fluffychat-website + run: | + npm ci + npm run build + mv out ../public + - name: Copy TatuChat web into it + run: | + mkdir public/web + mkdir public/nightly + cp -r build/web/* public/web/ + cp -r build/web/* public/nightly/ + echo "tatuchat.im" >> public/CNAME + - name: Deploy to GitHub Pages + if: startsWith(github.ref, 'refs/tags/v') + uses: peaceiris/actions-gh-pages@v4 + with: + personal_token: ${{ secrets.PAGES_DEPLOY_TOKEN }} + publish_dir: ./public + publish_branch: gh-pages + cname: tatuchat.im + + build_apk: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: subosito/flutter-action@v2 + with: + flutter-version-file: .tool_versions.yaml + cache: true + - name: Add Firebase Messaging + run: | + echo '${{secrets.GOOGLE_SERVICES_JSON}}' | base64 -d > android/app/google-services.json + ./scripts/add-firebase-messaging.sh + - uses: ./.github/actions/free_up_space + - uses: dtolnay/rust-toolchain@stable + - run: flutter pub get + - name: Prepare Android Release Build + env: + FDROID_KEY: ${{ secrets.FDROID_KEY }} + FDROID_KEY_PASS: ${{ secrets.FDROID_KEY_PASS }} + PLAYSTORE_DEPLOY_KEY: ${{ secrets.PLAYSTORE_DEPLOY_KEY }} + run: ./scripts/prepare-android-release.sh + - run: flutter build apk --release --target-platform android-arm,android-arm64 + - name: Upload to release + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.PAGES_DEPLOY_TOKEN }} + with: + upload_url: ${{ github.event.release.upload_url }} + asset_path: build/app/outputs/apk/release/app-release.apk + asset_name: tatuchat.apk + asset_content_type: application/vnd.android.package-archive + + build_linux: + strategy: + matrix: + arch: [ x64, arm64 ] + runs-on: ${{ matrix.arch == 'arm64' && 'ubuntu-24.04-arm' || 'ubuntu-latest'}} + steps: + - uses: actions/checkout@v7 + - name: Install dependencies + run: sudo apt-get update && sudo apt-get install curl clang cmake ninja-build pkg-config libgtk-3-dev libblkid-dev liblzma-dev libjsoncpp-dev cmake-data libsecret-1-dev libsecret-1-0 librhash0 libssl-dev libwebkit2gtk-4.1-dev -y + - run: echo "FLUTTER_VERSION=$(yq '.environment.flutter' < .tool_versions.yaml)" >> $GITHUB_ENV + - name: Install Flutter + run: | + git clone --branch ${{ env.FLUTTER_VERSION }} https://github.com/flutter/flutter.git + ./flutter/bin/flutter doctor + - uses: dtolnay/rust-toolchain@stable + - run: ./flutter/bin/flutter pub get + - run: ./flutter/bin/flutter build linux --target-platform linux-${{ matrix.arch }} + - name: Create archive + run: tar -czf tatuchat-linux-${{ matrix.arch }}.tar.gz -C build/linux/${{ matrix.arch }}/release/bundle/ . + - name: Upload to release + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.PAGES_DEPLOY_TOKEN }} + with: + upload_url: ${{ github.event.release.upload_url }} + asset_path: tatuchat-linux-${{ matrix.arch }}.tar.gz + asset_name: tatuchat-linux-${{ matrix.arch }}.tar.gz + asset_content_type: application/gzip + + deploy_playstore: + runs-on: ubuntu-latest + concurrency: + group: deploy_playstore + queue: max + steps: + - uses: actions/checkout@v7 + - uses: subosito/flutter-action@v2 + with: + flutter-version-file: .tool_versions.yaml + cache: true + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: '3.3' + - uses: ./.github/actions/free_up_space + - uses: dtolnay/rust-toolchain@stable + - name: Install Fastlane + working-directory: android + run: gem install fastlane -NV + - name: Add Firebase Messaging + run: | + echo '${{secrets.GOOGLE_SERVICES_JSON}}' | base64 -d > android/app/google-services.json + ./scripts/add-firebase-messaging.sh + - run: flutter pub get + - name: Prepare Android Release Build + env: + FDROID_KEY: ${{ secrets.FDROID_KEY }} + FDROID_KEY_PASS: ${{ secrets.FDROID_KEY_PASS }} + PLAYSTORE_DEPLOY_KEY: ${{ secrets.PLAYSTORE_DEPLOY_KEY }} + run: ./scripts/prepare-android-release.sh + # Because of https://ko-fi.com/post/Why-TatuChat-is-no-longer-available-on-Android-A-A4E426QCYI + - name: Remove Android Auto metadata for Play Store + run: sed -i '/Android Auto/,/automotive_app_desc/d' android/app/src/main/AndroidManifest.xml + - name: Build Android Release + run: flutter build appbundle --target-platform android-arm,android-arm64 + - name: Get Tag Name + id: tag_name + run: echo "::set-output name=tag::$(echo ${GITHUB_REF#refs/tags/})" + - name: Deploy Android Release + run: | + mkdir -p build/android + cp build/app/outputs/bundle/release/app-release.aab build/android/ + cd android + bundle install + bundle update fastlane + bundle exec fastlane deploy_internal_test + if [[ $GITHUB_REF_NAME == rc* ]]; then + bundle exec fastlane deploy_candidate + else + bundle exec fastlane deploy_release + fi + cd .. + + deploy_docker: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - name: Check out Git repository + uses: actions/checkout@v7 + - name: Log in to the Container registry + uses: docker/login-action@v4.6.0 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v6 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + - name: Build and push Docker image + uses: docker/build-push-action@v7 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml new file mode 100644 index 0000000..9dbbd3d --- /dev/null +++ b/.github/workflows/stale.yaml @@ -0,0 +1,21 @@ +name: 'Close stale issues and PRs' +on: + schedule: + - cron: '30 1 * * *' + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v11 + with: + stale-issue-message: 'This issue is stale because it has been open 365 days with no activity. Remove stale label or comment or this will be closed in 30 days.' + stale-pr-message: 'This PR is stale because it has been open 365 days with no activity. Remove stale label or comment or this will be closed in 30 days.' + close-issue-message: 'This issue was closed because it has been stalled for 30 days with no activity.' + close-pr-message: 'This PR was closed because it has been stalled for 30 days with no activity.' + days-before-issue-stale: 365 + days-before-pr-stale: 365 + days-before-issue-close: 30 + days-before-pr-close: 30 + exempt-all-assignees: true + operations-per-run: 1000 \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fc940ae --- /dev/null +++ b/.gitignore @@ -0,0 +1,208 @@ +# +++++++++ Flutter Defaults +++++++++ +# From https://github.com/flutter/flutter/blob/master/.gitignore + +# Miscellaneous +*.class +*.lock +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# As packages are no longer pinned, we use a lockfile for testing locally. +# When unpinning packages, Using lockfiles ensures that failures in PRs are +# actually due to those PRs, not due to a package being updated. +!/pubspec.lock + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# Visual Studio Code related +.classpath +.project +.settings/ +.vscode/* +.ccls-cache + +# This file, on the master branch, should never exist or be checked-in. +# +# On a *final* release branch, that is, what will ship to stable or beta, the +# file can be force added (git add --force) and checked-in in order to effectively +# "pin" the engine artifact version so the flutter tool does not need to use git +# to determine the engine artifacts. +# +# See https://github.com/flutter/flutter/blob/main/docs/tool/Engine-artifacts.md. +/bin/internal/engine.version + +# Flutter repo-specific +/bin/cache/ +/bin/internal/bootstrap.bat +/bin/internal/bootstrap.sh +/bin/internal/engine.realm +/bin/mingit/ +/dev/benchmarks/mega_gallery/ +/dev/bots/.recipe_deps +/dev/bots/android_tools/ +/dev/devicelab/ABresults*.json +/dev/docs/doc/ +/dev/docs/api_docs.zip +/dev/docs/flutter.docs.zip +/dev/docs/lib/ +/dev/docs/pubspec.yaml +/dev/integration_tests/**/xcuserdata +/dev/integration_tests/**/Pods +/packages/flutter/coverage/ +version +analysis_benchmark.json + +# packages file containing multi-root paths +.packages.generated + +# Flutter/Dart/Pub related +**/doc/api/ +.dart_tool/ +.flutter-plugins-dependencies +**/generated_plugin_registrant.dart +.packages +.pub-preload-cache/ +.pub-cache/ +.pub/ +build/ +flutter_*.png +linked_*.ds +unlinked.ds +unlinked_spec.ds + +# Android related +**/android/**/gradle-wrapper.jar +.gradle/ +**/android/captures/ +**/android/gradlew +**/android/gradlew.bat +**/android/**/GeneratedPluginRegistrant.java +**/android/key.properties +*.jks +local.properties +**/.cxx/ + +# iOS/XCode related +**/ios/**/*.mode1v3 +**/ios/**/*.mode2v3 +**/ios/**/*.moved-aside +**/ios/**/*.pbxuser +**/ios/**/*.perspectivev3 +**/ios/**/*sync/ +**/ios/**/.sconsign.dblite +**/ios/**/.tags* +**/ios/**/.vagrant/ +**/ios/**/DerivedData/ +**/ios/**/Icon? +**/ios/**/Pods/ +**/ios/**/.symlinks/ +**/ios/**/profile +**/ios/**/xcuserdata +**/ios/.generated/ +**/ios/Flutter/.last_build_id +**/ios/Flutter/App.framework +**/ios/Flutter/Flutter.framework +**/ios/Flutter/Flutter.podspec +**/ios/Flutter/Generated.xcconfig +**/ios/Flutter/ephemeral +**/ios/Flutter/app.flx +**/ios/Flutter/app.zip +**/ios/Flutter/flutter_assets/ +**/ios/Flutter/flutter_export_environment.sh +**/ios/ServiceDefinitions.json +**/ios/Runner/GeneratedPluginRegistrant.* + +# macOS +**/Flutter/ephemeral/ +**/Pods/ +**/macos/Flutter/GeneratedPluginRegistrant.swift +**/macos/Flutter/ephemeral +**/xcuserdata/ + +# Swift package manager (for code indexing) +**/.build/ + +# Windows +**/windows/flutter/ephemeral/ +**/windows/flutter/generated_plugin_registrant.cc +**/windows/flutter/generated_plugin_registrant.h +**/windows/flutter/generated_plugins.cmake + +# Linux +**/linux/flutter/ephemeral/ +**/linux/flutter/generated_plugin_registrant.cc +**/linux/flutter/generated_plugin_registrant.h +**/linux/flutter/generated_plugins.cmake + +# Coverage +coverage/ + +# Symbols +app.*.symbols + +# Exceptions to above rules. +!**/ios/**/default.mode1v3 +!**/ios/**/default.mode2v3 +!**/ios/**/default.pbxuser +!**/ios/**/default.perspectivev3 +!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages +!/dev/ci/**/Gemfile.lock +!.vscode/settings.json + +# Monorepo +.cipd +.gclient +.gclient_entries +.python-version +.gclient_previous_custom_vars +.gclient_previous_sync_commits + +# AI related +.agents/rules/personal-* +.agents/skills/personal-* +/.agent-shell/ + + +# +++++++++ Custom +++++++++ + +# Web +web/Imaging.js +web/Imaging.wasm +web/pkg/package.json +web/pkg/vodozemac_bindings_dart_bg.wasm +web/pkg/vodozemac_bindings_dart.js +web/native_executor.js* + +# Exclude generated translation dart files +lib/l10n/*.dart + +# Android keys +/key.jks +android/.kotlin +android/key.properties +android/key.jks +android/keys.json +android/Gemfile.lock +android/app/google-services.json + +# iOS +ios/Runner.ipa +ios/Runner/GoogleServices-Info.plist + +# livekit +web/e2ee.worker.dart.js +web/e2ee.worker.dart.js.deps +web/e2ee.worker.dart.js.map + +# Build artifacts zip for manual deploy +tatchat-web-build.zip diff --git a/.mailmap b/.mailmap new file mode 100644 index 0000000..b26a9d5 --- /dev/null +++ b/.mailmap @@ -0,0 +1,20 @@ +Aminda Suomalainen Mikaela Suomalainen +Aminda Suomalainen Mikaela Suomalainen +Aminda Suomalainen Mikaela Suomalainen +Anne Onyme 017 Anne017 +Brendan Abolivier Brendan Abolivier +Christian Pauly Christian +Christian Pauly Christian Pauly +Christian Pauly Christian Pauly +Christian Pauly Christian Pauly +Christian Pauly Christian Pauly +Christian Pauly Christian Pauly +Christian Pauly Christian Pauly +Christian Pauly Krille Fear +CuteTadpole <61086561+CuteTadpole@users.noreply.github.com> CuteTadpole +Drews Clausen Drews Clausen +Jelv Jelv +Kateřina Churanová Kateřina Churanová +Kateřina Churanová Katerina +NN708 NN708 +S1m S1m diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..ab6d41f --- /dev/null +++ b/.metadata @@ -0,0 +1,30 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: "fcf2c11572af6f390246c056bc905eca609533a0" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: fcf2c11572af6f390246c056bc905eca609533a0 + base_revision: fcf2c11572af6f390246c056bc905eca609533a0 + - platform: android + create_revision: fcf2c11572af6f390246c056bc905eca609533a0 + base_revision: fcf2c11572af6f390246c056bc905eca609533a0 + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/.tool_versions.yaml b/.tool_versions.yaml new file mode 100644 index 0000000..ae770b9 --- /dev/null +++ b/.tool_versions.yaml @@ -0,0 +1,2 @@ +environment: + flutter: 3.47.3 # Keep in sync with snap/snapcraft.yaml \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..79ce38d --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "[dart]": { + "editor.codeActionsOnSave": [ + "source.organizeImports" + ] + } +} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..c1ddc5c --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,4007 @@ + + +## v2.9.5 +Disable android auto for Play Store builds + +## v2.9.4 +Hotfix for F-Droid only set the compilesdk + +## v2.9.3 +Hotfix for iOS only where iOS notifications can lock the database. + +## v2.9.2 +Hotfix for iOS only where iOS notifications display error messages. + +## v2.9.1 +Revert cronet for http3. + +## v2.9.0 +FluffyChat 2.9.0 updates underlying libraries, fixed a lot of bugs and improves the UX. +It also adds double tap to react and better notifications for iOS. + +- build: (deps): bump dynamic_color from 1.8.1 to 1.9.0 (dependabot[bot]) +- build: (deps): bump emoji_picker_flutter from 4.4.0 to 4.5.2 (dependabot[bot]) +- build: (deps): bump emoji_picker_flutter from 4.5.2 to 4.5.3 (dependabot[bot]) +- build: (deps): bump flutter_foreground_task from 9.2.2 to 10.0.0 (dependabot[bot]) +- build: (deps): bump flutter_local_notifications from 22.1.0 to 22.2.0 (dependabot[bot]) +- build: (deps): bump flutter_local_notifications from 22.2.0 to 22.3.0 (dependabot[bot]) +- build: (deps): bump flutter_new_badger from 1.1.1 to 2.0.0 (dependabot[bot]) +- build: (deps): bump flutter_secure_storage from 10.3.1 to 11.0.0 (dependabot[bot]) +- build: (deps): bump flutter_vodozemac from 0.5.0 to 0.6.0 (dependabot[bot]) +- build: (deps): bump share_plus from 13.2.1 to 13.3.0 (dependabot[bot]) +- build: (deps): bump wakelock_plus from 1.6.1 to 1.7.0 (dependabot[bot]) +- build: remove webrtc workaround for iOS simulator (Christian Kußowski) +- build: update to flutter 3.44.9 (Christian Kußowski) +- build: update to matrix sdk 10.0.1 (Christian Kußowski) +- build: use flutter 3.44.7 (Christian Kußowski) +- chore: add troubleshoot information to settings notifications (Christian Kußowski) +- chore: adjust reply design (Christian Kußowski) +- chore: append app id to all pushers so we can be sure (Christian Kußowski) +- chore: clean up translations (Christian Kußowski) +- chore: design improvements (Christian Kußowski) +- chore: make progress notification configurable (Christian Kußowski) +- chore: make spaces view more minimalistic (Christian Kußowski) +- chore: push notification debug (Christian Kußowski) +- chore: remove fastlane metadata to not auto update in play store (Christian Kußowski) +- chore: typing animation for chat list (Christian Kußowski) +- chore: update branch (Christian Kußowski) +- chore: update sdk and make benchmarks configurable (Christian Kußowski) +- feat: add double-tap to react option in settings (AndusDEV) +- feat: Add image editor to send flow (Tobi) +- feat: display loading notification on android while loading messages in push helper (Christian Kußowski) +- feat: display notification icon on iOS if cached (Christian Kußowski) +- feat: display room avatar in iOS push notifications (Christian Kußowski) +- feat: display verified icon next to verified rooms and users (Christian Kußowski) +- feat: enable double tap to react by default on mobile (AndusDEV) +- feat: Notification content on iOS (Christian Kußowski) +- feat: use cronet with http3 on android (Christian Kußowski) +- feat: use foreground service when sending files (Christian Kußowski) +- fix(notifications): show reactions in UnifiedPush payloads (Paul) +- fix: center app unlock pin field (romb38) +- fix: copy image event with description does not copy description (Christian Kußowski) +- fix: ignore ClientException in pushhelper crash (Christian Kußowski) +- fix: Pass context with navigator to allow setupPush to display a UnifiedPush modal (romb38) +- fix: play sending video (Christian Kußowski) +- fix: remove extra spacing in sticker selection dialog (ludmila-lovelace) +- refactor: Improve sending read markers even on own events (Christian Kußowski) +- refactor: Reuse timeline from archive (Christian Kußowski) +- refactor: send typing stop before text event (Christian Kußowski) + +## v2.8.0 +Improved timeline design, implement biometrics for app lock and a lot of bug fixes and performance improvements. + +- feat: implement biometrics for app lock (Christian Kußowski) +- feat: Reset recovery key flow (Christian Kußowski) +- fix: forward only deep copy of contentshareitem (Christian Kußowski) +- fix: privacy and tos url (Christian Kußowski) +- build: (deps): bump actions/cache from 5 to 6 (dependabot[bot]) +- build: (deps): bump dart_code_linter from 4.1.2 to 4.1.5 (dependabot[bot]) +- build: (deps): bump dart_code_linter from 4.1.5 to 4.1.6 (dependabot[bot]) +- build: (deps): bump device_info_plus from 13.1.0 to 13.2.0 (dependabot[bot]) +- build: (deps): bump flutter_map from 8.3.0 to 8.3.1 (dependabot[bot]) +- build: (deps): bump flutter_webrtc from 1.5.1 to 1.5.2 (dependabot[bot]) +- build: (deps): bump image_picker from 1.2.2 to 1.2.3 (dependabot[bot]) +- build: (deps): bump just_audio from 0.10.5 to 0.10.6 (dependabot[bot]) +- build: (deps): bump latlong2 from 0.9.1 to 0.10.1 (dependabot[bot]) +- build: (deps): bump local_auth from 3.0.1 to 3.0.2 (dependabot[bot]) +- build: (deps): bump matrix from 8.0.0 to 8.1.0 (dependabot[bot]) +- build: (deps): bump package_info_plus from 10.1.0 to 10.2.0 (dependabot[bot]) +- build: (deps): bump qr_code_scanner_plus from 2.1.2 to 2.2.0 (dependabot[bot]) +- build: (deps): bump record from 6.2.1 to 7.1.1 (dependabot[bot]) +- build: (deps): bump share_plus from 13.1.0 to 13.2.0 (dependabot[bot]) +- build: (deps): bump video_player from 2.11.1 to 2.13.0 (dependabot[bot]) +- build: bump excon in /ios in the bundler group across 1 directory (dependabot[bot]) +- build: bump faraday in /ios in the bundler group across 1 directory (dependabot[bot]) +- build: matrix sdk 8.0.0 (Christian Kußowski) +- build: snapcraft with correct rust clib (krille-chan) +- build: update iOS auto generated build files and delete ephemeral (Christian Kußowski) +- build: use flutter 3.44.4 (Christian Kußowski) +- build: use FlutterFragmentActivity for local auth (Christian Kußowski) +- build: Use soft logout matrix branch (Christian Kußowski) +- chore(translations): Added translation using Weblate (Toki Pona) (jan Panana) +- chore(translations): Deleted translation using Weblate (Toki Pona) (Christian) +- chore(translations): Translated using Weblate (Basque) (xabirequejo) +- chore(translations): Translated using Weblate (Chinese (Simplified Han script)) (Hosted Weblate user 54392) +- chore(translations): Translated using Weblate (Chinese (Simplified Han script)) (Richard) +- chore(translations): Translated using Weblate (Dutch) (Jelv) +- chore(translations): Translated using Weblate (Estonian) (Priit Jõerüüt) +- chore(translations): Translated using Weblate (French) (Romb38) +- chore(translations): Translated using Weblate (Galician) (josé m.) +- chore(translations): Translated using Weblate (German) (Florian) +- chore(translations): Translated using Weblate (Irish) (Aindriú Mac Giolla Eoin) +- chore(translations): Translated using Weblate (Japanese) (yayoyuyu) +- chore(translations): Translated using Weblate (Latvian) (Edgars Andersons) +- chore(translations): Translated using Weblate (Latvian) (ℂ𝕠𝕠𝕠𝕝 (𝕘𝕚𝕥𝕙𝕦𝕓.𝕔𝕠𝕞/ℂ𝕠𝕠𝕠𝕝)) +- chore(translations): Translated using Weblate (Polish) (Igor W) +- chore(translations): Translated using Weblate (Russian) (Kristof Noskovich) +- chore(translations): Translated using Weblate (Spanish) (Kimby) +- chore(translations): Translated using Weblate (Toki Pona) (jan Panana) +- chore: add scrollcontroller to chat backup devices list (Christian Kußowski) +- chore: always display pushhelper errors but filter out TimeoutExceptions and network errors (Christian Kußowski) +- chore: applock follow up (Christian Kußowski) +- chore: ask user before forwarding (Christian Kußowski) +- chore: bring displaynames back to top of messages (Christian Kußowski) +- chore: clear more unused translations (Christian Kußowski) +- chore: display last active and status message together (Christian Kußowski) +- chore: display lastActive when there is no status message (Christian Kußowski) +- chore: give reactions dynamically width again (Christian Kußowski) +- chore: Skip forward dialog for file only items (Christian Kußowski) +- chore: switch to sdk main branch (Christian Kußowski) +- chore: trim event body and remove linebreaks for one line preview (Christian Kußowski) +- chore: update matrix sdk and use correct account management uri (Christian Kußowski) +- chore: use overlay instead of materialapp in lockscreen (Christian Kußowski) +- ci: add check for up to date build files in iOS (Christian Kußowski) +- refactor: dispose controllers to avoid memory leaks (Christian Kußowski) +- refactor: do not pass clients into app lock (Christian Kußowski) +- refactor: remove unused code in matrix service (Christian Kußowski) + +## v2.7.2 +- fix: empty translations and add ci job (Christian Kußowski) + +## v2.7.1 +- chore(translations): Translated using Weblate (Galician) (josé m.) +- chore(translations): Translated using Weblate (Russian) (alexander kozlev) +- chore(translations): Translated using Weblate (Tamil) (தமிழ்நேரம்) +- chore: Improve message bubble design (Christian Kußowski) +- chore: switch out fluffy.chat with fluffychat.im url (Christian Kußowski) +- fix: scrolling in tofu dialog (Christian Kußowski) +- fix: send videos crashed duo type error (Christian Kußowski) +- fix: sharing images sometimes break them (Christian Kußowski) + +## v2.7.0 +- feat: Add ISRG X2 Root Certificate (Th0rOnDoR) +- feat: better crypto setup with custom passphrase (Christian Kußowski) +- feat: collapsible long messages with show more/less (Bidyut Mukherjee) +- feat: Filter encrypted room notifications with client-side push rules (Nick Hainke) +- feat: Open file after download via button (Christian Kußowski) +- feat: Redesign chat encryption page (Christian Kußowski) +- feat: Redesign timeline with timestamp every message (Christian Kußowski) +- feat: Replace encryption button with unverified devices warning and permission dialog (Christian Kußowski) +- feat: Switch between display navrail mode with menu button (Christian Kußowski) +- fix: All notification get cleared on normal every empty push (Christian Kußowski) +- fix: Make VOIP calls at least start again (Christian Kußowski) +- fix: oidc login (Christian Kußowski) +- fix: Wrong routing when starting app with content sharing (Christian Kußowski) +- refactor: Do not manually cancel push notifications (Christian Kußowski) +- refactor: New logo (krille-chan) +- refactor: Use text scaling via mediaquery (Christian Kußowski) +- build(deps): bump jwt in /ios in the bundler group across 1 directory (dependabot[bot]) +- build: (deps): bump chewie, wakelock_plus, package_info_plus, share_plus, device_info_plus and file_picker (dependabot[bot]) +- chore: Adjust paddings (Christian Kußowski) +- chore: Animated FAB (Christian Kußowski) +- chore: Correct direct chat notifications on android (Christian Kußowski) +- chore: Display master key in settings (Christian Kußowski) +- chore: Display tofu state in encryption page (Christian Kußowski) +- chore: Do not check bootstrap after logout (Christian Kußowski) +- chore: Improve favicon and notifications icon (Christian Kußowski) +- chore: Make chat context menu split up (Christian Kußowski) +- chore: Minify logos for in app use (Christian Kußowski) +- chore: Modernize legacy icon (Christian Kußowski) +- chore: Nicer UX for utd messages (Christian Kußowski) +- chore: Remove custom popup menu theme (Christian Kußowski) +- chore: Remove status header and adjust paddings (Christian Kußowski) +- chore: Remove unused translations (Christian Kußowski) +- chore: remove webcrypto override (Mira Chacku Purakal) +- chore: Simplify chat back button (Christian Kußowski) +- chore: Simplify input row buttons (Christian Kußowski) +- docs: Prohibit LLM for contributions (Christian Kußowski) +- build: (deps): bump dart_code_linter from 4.0.4 to 4.0.5 (dependabot[bot]) +- build: (deps): bump dart_code_linter from 4.0.5 to 4.1.2 (dependabot[bot]) +- build: (deps): bump flutter_local_notifications from 21.0.0 to 22.0.0 (dependabot[bot]) +- build: (deps): bump flutter_local_notifications from 22.0.0 to 22.0.1 (dependabot[bot]) +- build: (deps): bump flutter_secure_storage from 10.3.0 to 10.3.1 (dependabot[bot]) +- build: (deps): bump flutter_webrtc from 1.4.1 to 1.5.0 (dependabot[bot]) +- build: (deps): bump flutter_web_auth_2 from 5.0.2 to 5.0.3 (dependabot[bot]) +- build: (deps): bump geolocator from 14.0.2 to 14.0.3 (dependabot[bot]) +- build: (deps): bump go_router from 17.2.3 to 17.3.0 (dependabot[bot]) +- build: (deps): bump matrix from 7.1.2 to 7.2.0 (dependabot[bot]) +- build: (deps): bump open_file from 3.5.11 to 4.0.0 (dependabot[bot]) +- build: (deps): bump particles_network from 1.9.4 to 1.9.5 (dependabot[bot]) +- build: (deps): bump path_provider from 2.1.5 to 2.1.6 (dependabot[bot]) +- build: (deps): bump qr_code_scanner_plus from 2.1.1 to 2.1.2 (dependabot[bot]) +- build: Add multi_json to fastlane (Christian Kußowski) +- build: Bump matrix to 7.2.2 (Christian Kußowski) +- build: Follow up use main branch of matrix sdk (Christian Kußowski) +- build: Increase deployment target for iOS (Christian Kußowski) +- build: Update android gradle (Christian Kußowski) +- build: Update matrix dart sdk to 7.2.4 (Christian Kußowski) +- build: Update to flutter 3.44 (Christian Kußowski) +- build: Update to flutter 3.44.1 and modernize gitignore (Christian Kußowski) + +Also thanks to all translators but duo to weblate problems the commit history is +a little bit messed up and I don't have a full changelog this time. + +## v2.6.0 +- feat: Option to hide thumbnails of images and videos (Christian Kußowski) +- feat(chat): make messagePreviewMaxLines configurable, with default 128 (Halil Kaskavalci) +- feat: Add Android summary notification (krille-chan) +- feat: Enable push notifications for multi account (krille-chan) +- feat: hide rooms in spaces add a setting to hide rooms that are in spaces from the main chat list (twoneis) +- feat: Implement room tags (Christian Kußowski) +- feat: Persist chat filters (Christian Kußowski) +- feat: Paste files in chat (ION606) +- fix: add prepare-web.sh support for both python and go yq versions (Vitalii) +- fix: Chat view crashes if events list empty (Christian Kußowski) +- fix: DMs in spaces are displayed as empty chats (Christian Kußowski) +- fix: Getting logged out on dialog dismissed (Christian Kußowski) +- fix: Open deep link on android (Christian Kußowski) +- fix: Send on enter broken on iOS (Christian Kußowski) +- fix: UX feedback for sending events (krille-chan) +- refactor: Bring back notification web sound but make configurable (Christian Kußowski) +- refactor: Enable lint use_build_context_synchronously (Christian Kußowski) +- refactor: Populate client name in push notification additional properties (krille-chan) +- refactor: Rename clientName to appDisplayName (krille-chan) +- refactor: Summarize notifications per account (Christian Kußowski) +- build: (deps): bump async from 2.13.0 to 2.13.1 (dependabot[bot]) +- build: (deps): bump badges from 3.1.2 to 3.2.0 (dependabot[bot]) +- build: (deps): bump chewie from 1.13.0 to 1.13.1 (dependabot[bot]) +- build: (deps): bump dart_code_linter from 3.2.1 to 4.0.1 (dependabot[bot]) +- build: (deps): bump dart_code_linter from 4.0.1 to 4.0.2 (dependabot[bot]) +- build: (deps): bump dart_code_linter from 4.0.2 to 4.0.3 (dependabot[bot]) +- build: (deps): bump desktop_drop from 0.7.0 to 0.7.1 (dependabot[bot]) +- build: (deps): bump file_picker from 10.3.10 to 11.0.2 (dependabot[bot]) +- build: (deps): bump flutter_foreground_task from 9.2.1 to 9.2.2 (dependabot[bot]) +- build: (deps): bump flutter_map from 8.2.2 to 8.3.0 (dependabot[bot]) +- build: (deps): bump flutter_webrtc from 1.3.1 to 1.4.1 (dependabot[bot]) +- build: (deps): bump flutter_web_auth_2 from 5.0.1 to 5.0.2 (dependabot[bot]) +- build: (deps): bump go_router from 17.1.0 to 17.2.0 (dependabot[bot]) +- build: (deps): bump go_router from 17.2.0 to 17.2.1 (dependabot[bot]) +- build: (deps): bump go_router from 17.2.1 to 17.2.2 (dependabot[bot]) +- build: (deps): bump go_router from 17.2.2 to 17.2.3 (dependabot[bot]) +- build: (deps): bump image_picker from 1.2.1 to 1.2.2 (dependabot[bot]) +- build: (deps): bump matrix from 6.2.0 to 7.0.0 (dependabot[bot]) +- build: (deps): bump matrix from 7.0.0 to 7.1.0 (dependabot[bot]) +- build: (deps): bump package_info_plus from 9.0.0 to 9.0.1 (dependabot[bot]) +- build: (deps): bump particles_network from 1.9.3 to 1.9.4 (dependabot[bot]) +- build: (deps): bump record from 6.1.2 to 6.2.0 (dependabot[bot]) +- build: (deps): bump shared_preferences from 2.5.4 to 2.5.5 (dependabot[bot]) +- build: (deps): bump share_plus from 12.0.1 to 12.0.2 (dependabot[bot]) +- build: (deps): bump wakelock_plus from 1.5.0 to 1.5.1 (dependabot[bot]) +- build: (deps): bump wakelock_plus from 1.5.1 to 1.5.2 (dependabot[bot]) +- build: (deps): bump webiny/action-conventional-commits (dependabot[bot]) +- build: (deps): bump webrtc_interface from 1.4.0 to 1.5.1 (dependabot[bot]) +- build: bump addressable in /ios in the bundler group across 1 directory (dependabot[bot]) +- build: Update to flutter 3.41.9 (krille-chan) +- chore(translations): Translated using Weblate (Basque) (xabirequejo) +- chore(translations): Translated using Weblate (Belarusian) (Alex Katon) +- chore(translations): Translated using Weblate (Catalan) (fadelkon) +- chore(translations): Translated using Weblate (Chinese (Simplified Han script)) (大王叫我来巡山) +- chore(translations): Translated using Weblate (Dutch) (Jelv) +- chore(translations): Translated using Weblate (Estonian) (Priit Jõerüüt) +- chore(translations): Translated using Weblate (Galician) (josé m.) +- chore(translations): Translated using Weblate (Indonesian) (Arif Budiman) +- chore(translations): Translated using Weblate (Irish) (Aindriú Mac Giolla Eoin) +- chore(translations): Translated using Weblate (Latvian) (ℂ𝕠𝕠𝕠𝕝 (𝕘𝕚𝕥𝕙𝕦𝕓.𝕔𝕠𝕞/ℂ𝕠𝕠𝕠𝕝)) +- chore(translations): Translated using Weblate (Norwegian Bokmål) (Frank Paul Silye) +- chore(translations): Translated using Weblate (Polish) (gedeade) +- chore(translations): Translated using Weblate (Russian) (Alex Katon) +- chore(translations): Translated using Weblate (Russian) (alexander kozlev) +- chore(translations): Translated using Weblate (Russian) (Entar) +- chore(translations): Translated using Weblate (Russian) (PuppyLo) +- chore(translations): Translated using Weblate (Spanish) (Kimby) +- chore(translations): Translated using Weblate (Swedish) (Lennart Ochel) +- chore(translations): Translated using Weblate (Ukrainian) (Vadym Nekhai) +- chore(translations): Translated using Weblate (Ukrainian) (Vitalii Knysh) +- chore(translations): Translated using Weblate (Ukrainian) (XblateX) +- chore: Add integration tests (Christian Kußowski) +- chore: Highlight unread chats at timestamp (Christian Kußowski) +- chore: Move support banner to changelog notification (krille-chan) +- chore: Perform a one shot sync in every push helper execution (krille-chan) +- chore: Remove multi account beta warning (krille-chan) +- chore: Small design adjustments (Christian Kußowski) +- chore: Allow localhost with scheme as homeserver (Christian Kußowski) +- chore: Remove workaround for popup menu crash bug (Christian Kußowski) +- chore: no longer send deprecated score when reporting an event + +## v2.5.1 +Update to latest version of fcm_shared_isolate to fix push on iOS. + +## v2.5.0 +FluffyChat 2.5.0 introduces a new homeserver picker for onboarding, better image compression performance and several smaller new features, design adjustments and bug fixes. + +- feat: Add mute notification action (Christian Kußowski) +- feat: Add presetHomeserver config to enforce a homeserver for web (Christian Kußowski) +- feat: Display particle animation on login page (Christian Kußowski) +- feat: Display read receipts for every event (Christian Kußowski) +- feat: Enable audio recording on web (Christian Kußowski) +- feat: Implement low priority for rooms (Christian Kußowski) +- feat: Implement matrix native oidc (Christian Kußowski) +- feat: Implement new sign in flow (Christian Kußowski) +- feat: OIDC Login on same page (Christian Kußowski) +- feat: Reenable native imaging for all platforms (Christian Kußowski) +- feat: Remember last successful logged in homeserver (Christian Kußowski) +- Add lld to install custom dependency for Linux in README (Stephen) +- build: Add llvm-18 to packages for snap (krille-chan) +- build: Add maestro based integration tests (Christian Kußowski) +- chore(translations): Added translation using Weblate (Albanian) (Besnik Bleta) +- chore(translations): Added translation using Weblate (Kabyle) (Amadɣas) +- chore(translations): Translated using Weblate (Basque) (xabirequejo) +- chore(translations): Translated using Weblate (Catalan) (fadelkon) +- chore(translations): Translated using Weblate (Chinese (Simplified Han script)) (大王叫我来巡山) +- chore(translations): Translated using Weblate (Croatian) (Milo Ivir) +- chore(translations): Translated using Weblate (Czech) (Matyáš Caras) +- chore(translations): Translated using Weblate (Danish) (Øjvind Fritjof Arnfred) +- chore(translations): Translated using Weblate (Dutch) (Jelv) +- chore(translations): Translated using Weblate (English) (Christian) +- chore(translations): Translated using Weblate (English) (SpikyBee) +- chore(translations): Translated using Weblate (Estonian) (Priit Jõerüüt) +- chore(translations): Translated using Weblate (Galician) (josé m.) +- chore(translations): Translated using Weblate (Georgian) (Dimitri Tabatadze) +- chore(translations): Translated using Weblate (Georgian) (Temuri Doghonadze) +- chore(translations): Translated using Weblate (German) (Christian) +- chore(translations): Translated using Weblate (German) (Ettore Atalan) +- chore(translations): Translated using Weblate (German) (nautilusx) +- chore(translations): Translated using Weblate (Hindi) (Vishal Singh) +- chore(translations): Translated using Weblate (Indonesian) (Arif Budiman) +- chore(translations): Translated using Weblate (Irish) (Aindriú Mac Giolla Eoin) +- chore(translations): Translated using Weblate (Japanese) (NPL) +- chore(translations): Translated using Weblate (Japanese) (Sayaka Halton) +- chore(translations): Translated using Weblate (Kabyle) (Amadɣas) +- chore(translations): Translated using Weblate (Kabyle) (ButterflyOfFire) +- chore(translations): Translated using Weblate (Kabyle) (Christian) +- chore(translations): Translated using Weblate (Latvian) (Edgars Andersons) +- chore(translations): Translated using Weblate (Norwegian Bokmål) (Frank Paul Silye) +- chore(translations): Translated using Weblate (Norwegian Bokmål) (sunniva) +- chore(translations): Translated using Weblate (Persian) (saok91) +- chore(translations): Translated using Weblate (Polish) (gredzikk) +- chore(translations): Translated using Weblate (Portuguese (Brazil)) (Logaritmica) +- chore(translations): Translated using Weblate (Russian) (-) +- chore(translations): Translated using Weblate (Russian) (Artem Pereverzev) +- chore(translations): Translated using Weblate (Russian) (mikinol) +- chore(translations): Translated using Weblate (Spanish) (Kimby) +- chore(translations): Translated using Weblate (Spanish) (SpikyBee) +- chore(translations): Translated using Weblate (Swedish) (Malva Jakobsson) +- chore(translations): Translated using Weblate (Swedish) (spinningpaprika) +- chore(translations): Translated using Weblate (Tamil) (தமிழ்நேரம்) +- chore(translations): Translated using Weblate (Ukrainian) (Andriy Kushnir) +- chore(translations): Translated using Weblate (Ukrainian) (Ihor Hordiichuk) +- chore(translations): Translated using Weblate (Uzbek) (BeMeritus) +- chore: Add config search textfield (Christian Kußowski) +- chore: Add matrix notify workflow (Christian Kußowski) +- chore: Add recommended homeservers (Christian Kußowski) +- chore: Add reset button for config viewer (Christian Kußowski) +- chore: Add support button everywhere (Christian Kußowski) +- chore: Added deeplinks to test protocol (Christian Kußowski) +- chore: Adjust avatar size and chat list item design (krille-chan) +- chore: Adjust chat input row design (Christian Kußowski) +- chore: Adjust design (Christian Kußowski) +- chore: Adjust design of navrail (Christian Kußowski) +- chore: Adjust design of space avatars and more (Christian Kußowski) +- chore: Adjust design of user viewer and popup buttons (Christian Kußowski) +- chore: Adjust join space child UX (Christian Kußowski) +- chore: Adjust paddings (krille-chan) +- chore: Adjust power level UX (Christian Kußowski) +- chore: Adjust search field design (Christian Kußowski) +- chore: Adjust status header design (Christian Kußowski) +- chore: Adjust styles and animations (Christian Kußowski) +- chore: Adjust support button design (Christian Kußowski) +- chore: Always show filter for messages (Christian Kußowski) +- chore: Avoid unnecessary lambdas (Christian Kußowski) +- chore: Better context menu for space children (Christian Kußowski) +- chore: bump ios version (ShootingStarDragons) +- chore: Check conventional commits in CI (krille-chan) +- chore: Check if pubspec.lock is up to date in CI (Christian Kußowski) +- chore: Check of unused localizations (Christian Kußowski) +- chore: Clean up pages build (Christian Kußowski) +- chore: Display spaces filter chip when spaces present even without children (Christian Kußowski) +- chore: Execute dart code linter in CI (Christian Kußowski) +- chore: Exempt assignees from stale (Christian Kußowski) +- chore: Fix oidc login on web (Christian Kußowski) +- chore: Give issues and PRs more time for stale (Christian Kußowski) +- chore: Hide homepage button if not preset (Christian Kußowski) +- chore: Hide status list by default (Christian Kußowski) +- chore: Implement pick SSO provider from dialog and add tchncs.de (Christian Kußowski) +- chore: Introduce tool versions file (Christian Kußowski) +- chore: Login with localhost (Christian Kußowski) +- chore: Make banner light red (Christian Kußowski) +- chore: Make key fingerprints in chat encryption page selectable (Christian Kußowski) +- chore: make sendTimelineEventTimeout configurable (Christian Kußowski) +- chore: Make unread bubble full round (Christian Kußowski) +- chore: Move file cache to subdirectory (Christian Kußowski) +- chore: Move show image viewer one step up (Christian Kußowski) +- chore: Move website back to fluffychat.im (Christian Kußowski) +- chore: Only show confirm dialog once (Christian Kußowski) +- chore: Put oidc behind a feature flag until fixed (Christian Kußowski) +- chore: Remove converser from recommended homeservers as it doesn't have open registration (Christian Kußowski) +- chore: Remove frei.chat from homeserver list (Christian Kußowski) +- chore: Remove web notification custom sound (Christian Kußowski) +- chore: Replace duplicate check for stale bot (Christian Kußowski) +- chore: Retry sign in tap in tests (Christian Kußowski) +- chore: Run matrix notification in pull request target (Christian Kußowski) +- chore: Sanitize hash param for oidc (Christian Kußowski) +- chore: Set erase flag true on account deactivation (krille-chan) +- chore: Set operations per run to 1000 (krille-chan) +- chore: Skip matrix notify for events from myself (Christian Kußowski) +- chore: Update locale config (Christian Kußowski) +- chore: Update matrix ID localization (Christian Kußowski) +- chore: Update recommended homeservers (Christian Kußowski) +- chore: Update redirect android scheme (Christian Kußowski) +- chore: Use fixed version of fcm shared isolate (Christian Kußowski) +- fix: Add app id to TileLayer user agent (Vespe-r) +- fix: Add missing @@locale (Krille-chan) +- fix: Audioplayer on web buggy (Christian Kußowski) +- fix: build failed on archlinux (ShootingStarDragons) +- fix: Do not cancel notification on reply (Christian Kußowski) +- fix: Do not display formatted body if body is just filename (Christian Kußowski) +- fix: Do not route to backup on soft logout (Christian Kußowski) +- fix: Edit space child button opens space details page and not space child details page (Christian Kußowski) +- fix: Fix formatting of messages with newlines (Philip Fritzsche) +- fix: get correct aspect ratio from VideoPlayerController (Matias) +- fix: Join room by alias even if not found (Christian Kußowski) +- fix: Open deep links (Christian Kußowski) +- fix: Receipt row not auto updating (Christian Kußowski) +- fix: Receipts disappear after reaction (Christian Kußowski) +- fix: Reply voice message displays a broken html body (Christian Kußowski) +- fix: Send reply to voice messages (Christian Kußowski) +- fix: Set mimetype for video player on web (Christian Kußowski) +- fix: Use correct own person for android notification replies (Christian Kußowski) +- fix: Wrong placeholder in kab (Christian Kußowski) +- refactor: Add Flutter lints (Christian Kußowski) +- refactor: Add more linter rules (Christian Kußowski) +- refactor: Add more stricter lints (Christian Kußowski) +- refactor: Avoid redundant async (Christian Kußowski) +- refactor: Avoid unnecessary bool comparison (Christian Kußowski) +- refactor: Better UX for create space children (Christian Kußowski) +- refactor: Disable custom image resizer for macOS and windows (Christian Kußowski) +- refactor: Do show message bubble even for big emotes (Christian Kußowski) +- refactor: Enable avoid-returning-widgets lint (Christian Kußowski) +- refactor: Enable more strict lints (Christian Kußowski) +- refactor: Enable rule avoid dynamic (Christian Kußowski) +- refactor: Make file events more fail safe for failed to send (Christian Kußowski) +- refactor: Remove animation dependency (Christian Kußowski) +- refactor: Remove unused localizations (Christian Kußowski) +- refactor: Remove unused translations (Christian Kußowski) +- refactor: Use getCryptoIdentityState to check backup state (krille-chan) +- refactor: Use more robust and performant way to detect single emoji messages (Christian Kußowski) +- refactor: Use native uri data from bytes instead of html (Christian Kußowski) + +## v2.4.0 +FluffyChat 2.4.0 adds a new improved GUI for managing stickers with tutorials how to +easily add your own sticker packs. +It also improves the search and image gallery in chats, especially encrypted chats. +Besides that this update comes with a lot of fixes and improvements under the hood. + +- feat: Create new sticker packs (krille-chan) +- feat: Edit displayname and attribution for sticker packs (krille-chan) +- feat: Improved search (Christian Kußowski) +- feat: Set usage of custom emojis and stickers (krille-chan) +- feat: Upload multiple stickers at once (krille-chan) +- build: (deps): bump actions/checkout from 5 to 6 (dependabot[bot]) +- build: (deps): bump animations from 2.1.0 to 2.1.1 (dependabot[bot]) +- build: (deps): bump device_info_plus from 12.2.0 to 12.3.0 (dependabot[bot]) +- build: (deps): bump emoji_picker_flutter from 4.3.0 to 4.4.0 (dependabot[bot]) +- build: (deps): bump file_picker from 10.3.6 to 10.3.7 (dependabot[bot]) +- build: (deps): bump file_picker from 10.3.7 to 10.3.8 (dependabot[bot]) +- build: (deps): bump file_selector from 1.0.4 to 1.1.0 (dependabot[bot]) +- build: (deps): bump flutter_foreground_task from 9.1.0 to 9.2.0 (dependabot[bot]) +- build: (deps): bump flutter_webrtc from 1.2.0 to 1.2.1 (dependabot[bot]) +- build: (deps): bump go_router from 17.0.0 to 17.0.1 (dependabot[bot]) +- build: (deps): bump image from 4.5.4 to 4.6.0 (dependabot[bot]) +- build: (deps): bump image from 4.6.0 to 4.7.1 (dependabot[bot]) +- build: (deps): bump image from 4.7.1 to 4.7.2 (dependabot[bot]) +- build: (deps): bump matrix from 4.0.0 to 4.0.1 (dependabot[bot]) +- build: (deps): bump shared_preferences from 2.5.3 to 2.5.4 (dependabot[bot]) +- build: (deps): bump translations_cleaner from 0.0.5 to 0.1.0 (dependabot[bot]) +- build: (deps): bump universal_html from 2.2.4 to 2.3.0 (dependabot[bot]) +- build: Reenable shrink resources and minify in gradle (Christian Kußowski) +- build: Upgrade to flutter 3.38.4 (Christian Kußowski) +- build: Use matrix sdk vom pub.dev again (Christian Kußowski) +- chore(translations): Translated using Weblate (Basque) (xabirequejo) +- chore(translations): Translated using Weblate (Belarusian) (Alex Katon) +- chore(translations): Translated using Weblate (Bengali) (Kom nake) +- chore(translations): Translated using Weblate (Chinese (Simplified Han script)) (Creeper) +- chore(translations): Translated using Weblate (Chinese (Simplified Han script)) (大王叫我来巡山) +- chore(translations): Translated using Weblate (Croatian) (Milo Ivir) +- chore(translations): Translated using Weblate (Czech) (arxari) +- chore(translations): Translated using Weblate (Dutch) (Jelv) +- chore(translations): Translated using Weblate (Estonian) (Priit Jõerüüt) +- chore(translations): Translated using Weblate (Finnish) (Ricky Tigg) +- chore(translations): Translated using Weblate (French) (hugues de keyzer) +- chore(translations): Translated using Weblate (Galician) (josé m.) +- chore(translations): Translated using Weblate (Georgian) (Nicholas Winterhalter) +- chore(translations): Translated using Weblate (Georgian) (Temuri Doghonadze) +- chore(translations): Translated using Weblate (German) (Bella) +- chore(translations): Translated using Weblate (German) (nautilusx) +- chore(translations): Translated using Weblate (Greek) (Rain4Cats) +- chore(translations): Translated using Weblate (Irish) (Aindriú Mac Giolla Eoin) +- chore(translations): Translated using Weblate (Italian) (Alessio Olivieri) +- chore(translations): Translated using Weblate (Italian) (Claudio Maradonna) +- chore(translations): Translated using Weblate (Latvian) (Edgars Andersons) +- chore(translations): Translated using Weblate (Norwegian Bokmål) (Frank Paul Silye) +- chore(translations): Translated using Weblate (Portuguese (Brazil)) (LucasMZ) +- chore(translations): Translated using Weblate (Russian) (BeMeritus) +- chore(translations): Translated using Weblate (Russian) (Christian) +- chore(translations): Translated using Weblate (Russian) (Дмитрий Михирев) +- chore(translations): Translated using Weblate (Serbian) (Luka) +- chore(translations): Translated using Weblate (Spanish) (Kimby) +- chore(translations): Translated using Weblate (Ukrainian) (Andriy Kushnir) +- chore(translations): Translated using Weblate (Ukrainian) (Ihor Hordiichuk) +- chore(translations): Translated using Weblate (Uzbek) (BeMeritus) +- chore(translations): Translated using Weblate (Uzbek) (Maftuna Vohidjonovna) +- chore: Allow all chars for emoji search (Christian Kußowski) +- chore: Allow export of readonly sticker packs (Christian Kußowski) +- chore: delete unrelated line (ShootingStarDragons) +- chore: Display attribution for sticker packs (krille-chan) +- chore: Escape title in check duplicates job (Christian Kußowski) +- chore: ignore for now deprecated regex (Christian Kußowski) +- chore: Improve room custom emote UX (krille-chan) +- chore: Improve sticker editor UX (krille-chan) +- chore: Improve text selection color for messages (Christian Kußowski) +- chore: Improve via calculation (Christian Kußowski) +- chore: Increase padding for code blocks (Christian Kußowski) +- chore: Link how do I get stickers FAQ entry (Christian Kußowski) +- chore: Localize emoji picker (Christian Kußowski) +- chore: Make attribution url field clickable (Christian Kußowski) +- chore: Make cross signing self sign mandatory for bootstrap (Christian Kußowski) +- chore: make locale for emoji suggestions configureable (krille-chan) +- chore: Make sticker previews in editor clickable (krille-chan) +- chore: Make stickers smaller than normal image messages (Christian Kußowski) +- chore: Override sqlcipher license (Christian Kußowski) +- chore: Remove horizontal scrolling for code blocks (Christian Kußowski) +- chore: remove the userId param (ShootingStarDragons) +- chore: Replace copy action with pin event action in UI (Christian Kußowski) +- chore: Request keys for last room messages after bootstrap (krille-chan) +- chore: Simplify adaptive bottom sheet code (Christian Kußowski) +- chore: Update privacy policy links (Christian Kußowski) +- chore: Update start poll design (Christian Kußowski) +- chore: Update user device keys before creating bootstrap (Christian Kußowski) +- chore: Use license_checker from pub again (Christian Kußowski) +- chore: Wait for secrets after bootstrap verification (Christian Kußowski) +- Fix regression after new linter rules (Andriy Kushnir) +- fix: Better wait for secrets after verification bootstrap (Christian Kußowski) +- fix: Broken ruzzian plurals (Christian Kußowski) +- fix: Do not auto load history in rooms with collapsed state only (Christian Kußowski) +- fix: Do not display empty file description body (Christian Kußowski) +- fix: Do not render html in unformatted messages (Christian Kußowski) +- fix: Do not request hero users for rooms with name (Christian Kußowski) +- fix: enable users without passwords to delete their accounts by using uia request in account deletion (ggurdin) +- fix: Hide no fcm warning after dismissed (Christian Kußowski) +- fix: jump cannot work properly when there are multi users (ShootingStarDragons) +- fix: Make keyboard moving bottom sheet up (Christian Kußowski) +- fix: No description for video and audio messages displayed (Christian Kußowski) +- fix: Render not permitted html tags as text instead of hiding (Christian Kußowski) +- fix: Scrolling in fragmented timeline (Christian Kußowski) +- fix: spoiler formatting in reply (denalena) +- fix: State problem when not changing emote name (krille-chan) +- fix: Unlock app with leading 0 in pin is not possible (Christian Kußowski) +- fix: when user has multi counts,notification not works well (ShootingStarDragons) +- refactor: Adjust state event design (Christian Kußowski) +- refactor: Always open Chat Backup as page right after login (Christian Kußowski) +- refactor: Display all sticker packs in same editor with filterchips (krille-chan) +- refactor: File selector just use default FileType and remove not working zip selector (Christian Kußowski) +- refactor: Improved design and UX for sticker editor (krille-chan) +- refactor: Remove native imaging and enable web worker (Christian Kußowski) +- refactor: Remove unused feature tor browser detector (Christian Kußowski) +- refactor: Remove unused html onfocus streams (Christian Kußowski) +- refactor: Remove unused msix (Christian Kußowski) +- refactor: Remove workaround for download files (Christian Kußowski) +- refactor: Update flutter lints (Christian Kußowski) +- refactor: Update to Dart 3.10 with . shorthands (Christian Kußowski) +- refactor: Use localized emojis for suggestion input (krille-chan) +- refactor: Use own highlight rendering with working scrollbar and text selection (Christian Kußowski) +- chore: Update links to matrix spaces to avoid confusion (Andriy Kushnir) + +## v2.3.0 + +FluffyChat v2.3.0 fixes a possible database corruption bug on Android, also fixes a +major performance leak and introduces polls and threads. + +- feat: Implement polls (Christian Kußowski) +- feat: Implement threads (krille-chan) +- fix: Database corruption because notification tab isolate starts too late (Christian Kußowski) +- fix: Import sticker packs (Christian Kußowski) +- refactor: Improved UIA support for OIDC and SSO (Christian Kußowski) +- refactor: Invite users when upgrading private room (Christian Kußowski) +- build: (deps): bump cross_file from 0.3.4+2 to 0.3.5 (dependabot[bot]) +- build: (deps): bump file_picker from 10.3.3 to 10.3.6 (dependabot[bot]) +- build: (deps): bump go_router from 16.3.0 to 17.0.0 (dependabot[bot]) +- build: (deps): bump http from 1.5.0 to 1.6.0 (dependabot[bot]) +- build: (deps): bump image_picker from 1.2.0 to 1.2.1 (dependabot[bot]) +- build: (deps): bump qr_code_scanner_plus from 2.0.13 to 2.0.14 (dependabot[bot]) +- build: (deps): bump video_player from 2.10.0 to 2.10.1 (dependabot[bot]) +- build: Switch back to stable web auth package (krille-chan) +- build: Use matrix sdk 4.0.0 (Christian Kußowski) +- build: Use secure storage from pub.dev again (krille-chan) +- chore: Remove Notification actions when using UnifiedPush (Christian Kußowski) +- chore(translations): Added translation using Weblate (Uzbek) (bahrom04) +- chore(translations): Translated using Weblate (Basque) (xabirequejo) +- chore(translations): Translated using Weblate (Belarusian) (Alex Katon) +- chore(translations): Translated using Weblate (Chinese (Simplified Han script)) (大王叫我来巡山) +- chore(translations): Translated using Weblate (Dutch) (Jelv) +- chore(translations): Translated using Weblate (Estonian) (Priit Jõerüüt) +- chore(translations): Translated using Weblate (Finnish) (Priit Jõerüüt) +- chore(translations): Translated using Weblate (Finnish) (Ricky Tigg) +- chore(translations): Translated using Weblate (French) (luneth) +- chore(translations): Translated using Weblate (Galician) (josé m.) +- chore(translations): Translated using Weblate (Irish) (Aindriú Mac Giolla Eoin) +- chore(translations): Translated using Weblate (Latvian) (Edgars Andersons) +- chore(translations): Translated using Weblate (Norwegian Bokmål) (Frank Paul Silye) +- chore(translations): Translated using Weblate (Uzbek) (bahrom04) +- chore(translations): Translated using Weblate (Uzbek) (BeMeritus) + +## v2.2.0 + +FluffyChat 2.2.0 introduces a new UX for spaces and adds support for restricted +join rules. + +The app also now has a new design for recording voice messages including a new +pause button. + +You also now see the progress when downloading files. + +On web the performance for image compressing has been drastically improved. Also +the config.json file loading has finally been fixed. Please be aware that the format +has changed as the available configs are now generated automatically. + +Did you know that you can set a lot of additional configs in the new config viewer +inside the app? This now supports much more options but please use with care! + +On Android FluffyChat now supports notification actions (reply and mark as read) and +also now supports Android Auto integration. Please do not cause an accident when using +the app while driving! + +On iOS the notifications are now localized. Stay tuned for more improvements on iOS +notifications in the next releases! + +Besides that this release brings a ton of bug fixes and performance improvements and +of course updated translations. Big thanks to all the volunteers who have helped on weblate! + +- feat: Add donation buttons except for PlayStore&AppStore version (Christian Kußowski) +- feat: Add iOS Notification Service Extension for localizable push notifications (Christian Kußowski) +- feat: Add notification actions (krille-chan) +- feat: Add support for restricted join rule (Christian Kußowski) +- feat: Display progress for downloading content (Christian Kußowski) +- feat: Display progress on redact events and clear archive dialogs (Christian Kußowski) +- feat: Enable native imaging for web (Christian Kußowski) +- feat: Forward notifications to Android Auto (Christian Kußowski) +- feat: Nicer record voice message UI with pause function (Christian Kußowski) +- feat: Notification actions on android (krille-chan) +- design: Improved spaces UX (Christian Kußowski) +- fix: Correctly pass through obscure text (Christian Kußowski) +- fix: Create a subdirectory in the tmp directory (Inex Code) +- fix: Cupertino text dialogs (Christian Kußowski) +- fix: Null pointer crash in chat list item (Christian Kußowski) +- chore(translations): Translated using Weblate (Arabic) (jamazi) +- chore(translations): Translated using Weblate (Basque) (xabirequejo) +- chore(translations): Translated using Weblate (Belarusian) (Alex Katon) +- chore(translations): Translated using Weblate (Chinese (Simplified Han script)) (大王叫我来巡山) +- chore(translations): Translated using Weblate (Croatian) (Milo Ivir) +- chore(translations): Translated using Weblate (Czech) (Flibble) +- chore(translations): Translated using Weblate (Dutch) (Jelv) +- chore(translations): Translated using Weblate (Esperanto) (Anonymous) +- chore(translations): Translated using Weblate (Estonian) (Priit Jõerüüt) +- chore(translations): Translated using Weblate (Finnish) (Aminda Suomalainen) +- chore(translations): Translated using Weblate (Galician) (josé m) +- chore(translations): Translated using Weblate (German) (Alex Katon) +- chore(translations): Translated using Weblate (German) (cheese1) +- chore(translations): Translated using Weblate (German) (Christian) +- chore(translations): Translated using Weblate (German) (Jana) +- chore(translations): Translated using Weblate (Greek) (Λευτέρης Τ) +- chore(translations): Translated using Weblate (Hebrew) (Anonymous) +- chore(translations): Translated using Weblate (Hungarian) (Balázs Meskó) +- chore(translations): Translated using Weblate (Indonesian) (Linerly) +- chore(translations): Translated using Weblate (Irish) (Aindriú Mac Giolla Eoin) +- chore(translations): Translated using Weblate (Japanese) (Allan Nordhøy) +- chore(translations): Translated using Weblate (Korean) (loyedison92) +- chore(translations): Translated using Weblate (Latvian) (Edgars Andersons) +- chore(translations): Translated using Weblate (Latvian) (ℂ𝕠𝕠𝕠𝕝 (𝕘𝕚𝕥𝕙𝕦𝕓.𝕔𝕠𝕞/ℂ𝕠𝕠𝕠𝕝)) +- chore(translations): Translated using Weblate (Lithuanian) (Anonymous) +- chore(translations): Translated using Weblate (Norwegian Bokmål) (Frank Paul Silye) +- chore(translations): Translated using Weblate (Norwegian Bokmål) (sunniva) +- chore(translations): Translated using Weblate (Polish) (Paweł Gronowski) +- chore(translations): Translated using Weblate (Portuguese (Brazil)) (LucasMZ) +- chore(translations): Translated using Weblate (Portuguese (Portugal)) (Anonymous) +- chore(translations): Translated using Weblate (Romanian) (Anonymous) +- chore(translations): Translated using Weblate (Russian) (Christian) +- chore(translations): Translated using Weblate (Russian) (Дмитрий Михирев) +- chore(translations): Translated using Weblate (Russian) (Жора Змейкин) +- chore(translations): Translated using Weblate (Serbian) (Anonymous) +- chore(translations): Translated using Weblate (Slovak) (Anonymous) +- chore(translations): Translated using Weblate (Spanish) (Kimby) +- chore(translations): Translated using Weblate (Spanish) (LucasMZ) +- chore(translations): Translated using Weblate (Turkish) (Christian) +- chore(translations): Translated using Weblate (Turkish) (Ufuk Karal) +- chore(translations): Translated using Weblate (Vietnamese) (desperadohp) +- chore: add a link to the platforms' different behaviors for the 24h format (kaanelloed) +- chore: Add ActionsPadding in column mode (Christian Kußowski) +- chore: Add close icon to snackbar in column mode (Christian Kußowski) +- chore: Adjust chat details button design (Christian Kußowski) +- chore: Adjust encryption page design (Christian Kußowski) +- chore: Adjust input bar button design (Christian Kußowski) +- chore: Adjust material dialog button design (krille-chan) +- chore: Adjust padding for status msg list (Christian Kußowski) +- chore: Adjust status header design (krille-chan) +- chore: Better display rooms without known messages (Christian Kußowski) +- chore: Better routing to space id (Christian Kußowski) +- chore: Correctly remove knockRestricted from possible join rules (Christian Kußowski) +- chore: Fix load config.json (Christian Kußowski) +- chore: Go back to pub.dev matrix dep (Christian Kußowski) +- chore: Hide restricted and knock restricted for unsupported room versions (Christian Kußowski) +- chore: Hide topic if empty and cannot be changed (Christian Kußowski) +- chore: Improve chat details icon color design (Christian Kußowski) +- chore: Improve ignore list UX (Christian Kußowski) +- chore: Leave invites and DM rooms when blocking a user (Christian Kußowski) +- chore: Make privacy url not configurable (Christian Kußowski) +- chore: Make progress indicators rounder (Christian Kußowski) +- chore: Mention rebases (Christian Kußowski) +- chore: Move emote settings button to chat popup menu (Christian Kußowski) +- chore: Move encryption button to input row (Christian Kußowski) +- chore: Revert "refactor: Make ChatListItem cache lasteventbody for better performance" (Christian Kußowski) +- chore: Translate iOS notifications into german (Christian Kußowski) +- chore: Try out refactored user device keys update method (Christian Kußowski) +- chore: Update matrix dart sdk (Christian Kußowski) +- chore: use time format based on system settings (kaanelloed) +- ci: Build only for arm64 (Christian Kußowski) +- refactor: Make ChatListItem cache lasteventbody for better performance (Christian Kußowski) +- refactor: Remove unused directories (Christian Kußowski) +- refactor: Rename models for matrix spec 1.16 (Christian Kußowski) +- refactor: Replace flutter typeahead with autocomplete to fix (Christian Kußowski) +- refactor: Use AppSettings enum based configuration everywhere and fix load from json on web (Christian Kußowski) +- build: Flutter upgrade 3.35.5 (Christian Kußowski) +- build: Matrix version 3.0.0 (Christian Kußowski) +- build: Remove dependency for telephony (Christian Kußowski) +- build: Remove openssl dependency (Christian Kußowski) +- build: Use correct fcm_shared_isolate version (Christian Kußowski) +- build: Use correct version of vodozemac for web build (Christian Kußowski) + +## v2.1.1 +Bugfix release to trigger flatpak arm64 release again. + +- build: (deps): bump actions/checkout from 4 to 5 (dependabot[bot]) +- build: (deps): bump app_links from 6.4.0 to 6.4.1 (dependabot[bot]) +- build: (deps): bump file_picker from 10.2.3 to 10.3.1 (dependabot[bot]) +- build: (deps): bump msix from 3.16.10 to 3.16.12 (dependabot[bot]) +- build: (deps): bump package_info_plus from 8.3.0 to 8.3.1 (dependabot[bot]) +- build: (deps): bump share_plus from 11.0.0 to 11.1.0 (dependabot[bot]) +- build: Also build linux on github runners (Christian Kußowski) +- build: Update macos podfile (Christian Kußowski) +- chore: Follow up subtitle font style (Christian Kußowski) +- chore: Slightly adjust font sizes and design (Christian Kußowski) +- chore(translations): Translated using Weblate (Chinese (Traditional Han script)) (miullu) +- chore(translations): Translated using Weblate (Norwegian Bokmål) (Frank Paul Silye) +- chore(translations): Translated using Weblate (Polish) (Piotr Orzechowski) +- feat: support xdp selector for linux (ShootingStarDragons) +- fix: Follow up fix rectangle avatars (Christian Kußowski) +- refactor: Remove broken push error reporter (Christian Kußowski) + +## v2.1.0 +FluffyChat 2.1.0 brings support for room version 12 and a lot of bugfixes, updated translations and performance improvements. Also chat state events are now collapsed by default. + +- feat: Collapse all state events by default (Christian Kußowski) +- feat(linux/notify): support avatar icon (ShootingStarDragons) +- build: (deps): bump archive from 3.6.1 to 4.0.7 (dependabot[bot]) +- build: (deps): bump chewie from 1.11.3 to 1.12.1 (dependabot[bot]) +- build: (deps): bump desktop_drop from 0.4.4 to 0.6.1 (dependabot[bot]) +- build: (deps): bump device_info_plus from 10.1.2 to 11.5.0 (dependabot[bot]) +- build: (deps): bump dynamic_color from 1.7.0 to 1.8.1 (dependabot[bot]) +- build: (deps): bump file_picker from 10.2.0 to 10.2.1 (dependabot[bot]) +- build: (deps): bump file_picker from 8.3.7 to 10.2.0 (dependabot[bot]) +- build: (deps): bump flutter_foreground_task from 6.5.0 to 9.1.0 (dependabot[bot]) +- build: (deps): bump flutter_local_notifications from 19.3.0 to 19.4.0 (dependabot[bot]) +- build: (deps): bump flutter_map from 6.2.1 to 8.1.1 (dependabot[bot]) +- build: (deps): bump flutter_map from 8.1.1 to 8.2.1 (dependabot[bot]) +- build: (deps): bump flutter_native_splash from 2.4.4 to 2.4.6 (dependabot[bot]) +- build: (deps): bump flutter_webrtc from 0.12.12+hotfix.1 to 1.0.0 (dependabot[bot]) +- build: (deps): bump geolocator from 13.0.4 to 14.0.2 (dependabot[bot]) +- build: (deps): bump go_router from 15.1.2 to 16.0.0 (dependabot[bot]) +- build: (deps): bump go_router from 16.0.0 to 16.1.0 (dependabot[bot]) +- build: (deps): bump just_audio from 0.9.46 to 0.10.4 (dependabot[bot]) +- build: (deps): bump matrix from 1.0.1 to 1.1.0 (dependabot[bot]) +- build: (deps): bump mime from 1.0.6 to 2.0.0 (dependabot[bot]) +- build: (deps): bump msix from 3.16.9 to 3.16.10 (dependabot[bot]) +- build: (deps): bump permission_handler from 11.4.0 to 12.0.1 (dependabot[bot]) +- build: (deps): bump pretty_qr_code from 3.4.0 to 3.5.0 (dependabot[bot]) +- build: (deps): bump share_plus from 10.1.4 to 11.0.0 (dependabot[bot]) +- build: (deps): bump sqflite_common_ffi from 2.3.5 to 2.3.6 (dependabot[bot]) +- build: (deps): bump sqlcipher_flutter_libs from 0.6.6 to 0.6.7 (dependabot[bot]) +- build: (deps): bump unifiedpush from 5.0.2 to 6.0.2 (dependabot[bot]) +- build: (deps): bump url_launcher from 6.3.1 to 6.3.2 (dependabot[bot]) +- build: Update Flutter 3.32.8 (Christian Kußowski) +- build: Upgrade emoji picker flutter (Christian Kußowski) +- build: Use gradle in kotlin (Christian Kußowski) +- build: Use macos-latest for debug ios job (Christian Kußowski) +- chore: Add CI workflow for thank you message after issue got completed (Christian Kußowski) +- chore: Add dependabot to code owners for pubspec (Christian Kußowski) +- chore: Add ISC as compatible license to aGPLv3 (Christian Kußowski) +- chore: Better error handling for push notifications (Christian Kußowski) +- chore: Bump Flutter version in pubspec.lock (Rafał Hirsch) +- chore: do format (ShootingStarDragons) +- chore: Fix snapcraft build (krille-chan) +- chore: Nicer own reaction color design (Christian Kußowski) +- chore: Remove double quotes from screenshot filenames (Christian Kußowski) +- chore: Remove lifecyclestate logs (Christian Kußowski) +- chore: Remove unused workflow (krille-chan) +- chore: Set height for screenshots in readme (krille-chan) +- chore: Set text message max length to 16384 but make it configurable (Christian Kußowski) +- chore: Update height for screenshots in readme (krille-chan) +- chore: Update screenshots in readme (krille-chan) +- fix: Add flexible to file messages to prevent long name overflow (Kelrap) +- fix: Avoid using MediaQuery.of() (imnotlxy) +- fix: Config viewer not updating state (Christian Kußowski) +- fix: Delete database correctly after corruption (krille-chan) +- fix: Design glitches in sticker dialog (Christian Kußowski) +- fix: limit characters and lines so redact message can't be too long (avashilling) +- fix: LoadingSnackBar consistently remains visible until the upload is complete (JaWeee) +- fix: notification clicked still cannot jump (ShootingStarDragons) +- fix: open chat from notification (ShootingStarDragons) +- fix: Open database crashes on start (krille-chan) +- fix: Open external account management when trying to delete devices (Christian Kußowski) +- fix: Use retry http client (Christian Kußowski) +- fix: Workaround for reversed width and height of compressed videos sent from Android (Christian Kußowski) +- refactor: Add support for Room version 12 via matrix dart sdk update +- refactor: Better UX for accepting declining invite (krille-chan) +- refactor: ignore bubble gradient when using system high contrast mode (Christian Kußowski) +- refactor: Make notification avatars rounded (krille-chan) +- refactor: Remove unused dependencies (krille-chan) +- chore(translations): Translated using Weblate (Basque) (xabirequejo) +- chore(translations): Translated using Weblate (Belarusian) (Alex Katon) +- chore(translations): Translated using Weblate (German) (Christian) +- chore(translations): Translated using Weblate (Norwegian Bokmål) (Frank Paul Silye) +- chore(translations): Translated using Weblate (Portuguese (Brazil)) (LucasMZ) +- chore(translations): Translated using Weblate (Spanish) (Fuan200) +- chore(translations): Translated using Weblate (Tamil) (தமிழ்நேரம்) +- chore(translations): Translated using Weblate (Ukrainian) (Ihor Hordiichuk) +- Translated using Weblate (Arabic) (LucasMZ) +- Translated using Weblate (Basque) (xabirequejo) +- Translated using Weblate (Chinese (Simplified Han script)) (大王叫我来巡山) +- Translated using Weblate (Chinese (Traditional Han script)) (miullu) +- Translated using Weblate (Czech) (LucasMZ) +- Translated using Weblate (Dutch) (Jelv) +- Translated using Weblate (English) (LucasMZ) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Galician) (josé m) +- Translated using Weblate (German) (nautilusx) +- Translated using Weblate (Hebrew) (LucasMZ) +- Translated using Weblate (Hungarian) (LucasMZ) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Irish) (Aindriú Mac Giolla Eoin) +- Translated using Weblate (Irish) (LucasMZ) +- Translated using Weblate (Italian) (Angelo Schirinzi) +- Translated using Weblate (Italian) (LucasMZ) +- Translated using Weblate (Latvian) (Edgars Andersons) +- Translated using Weblate (Latvian) (LucasMZ) +- Translated using Weblate (Norwegian Bokmål) (Christian) +- Translated using Weblate (Norwegian Bokmål) (Frank Paul Silye) +- Translated using Weblate (Persian) (Alireza Rashidi) +- Translated using Weblate (Polish) (Piotr Orzechowski) +- Translated using Weblate (Portuguese (Brazil)) (LucasMZ) +- Translated using Weblate (Portuguese) (Ana Elisa Ramos) +- Translated using Weblate (Portuguese) (LucasMZ) +- Translated using Weblate (Russian) (LucasMZ) +- Translated using Weblate (Tamil) (தமிழ்நேரம்) +- Translated using Weblate (Tamil) (LucasMZ) +- Translated using Weblate (Telugu) (LucasMZ) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) +- Translated using Weblate (Ukrainian) (LucasMZ) +- Translated using Weblate (Vietnamese) (LucasMZ) + +## v2.0.0 + +This version migrates to Vodozemac and Matrix Dart SDK 1.0.0. This is a breaking +change. The user should not notice the migration at all but downgrading from +v2.0.0 to a previous version is not possible without losing the session. + +- fix: Do not set read markers for sending events (Christian Kußowski) +- fix: fix compile error related to MxcImage (gilice) +- fix: Forward last version of events when forwarding (Christian Kußowski) +- fix: Ban button displayed for already banned users (Christian Kußowski) +- fix: Route back to room list after leaving a chat (Christian Kußowski) +- build: Switch to matrix sdk 1.0.0 (Christian Kußowski) +- build: Upgrade flutter to 3.32.2 (krille-chan) +- build: Update to flutter 3.32.4 (Christian Kußowski) +- chore: Add missing mounted check (Christian Kußowski) +- chore: highlight select mode actions (Christian Kußowski) +- refactor: sdk 1.0 (Christian Kußowski) +- refactor: New message context menu (Christian Kußowski) +- refactor: Nicer popupmenus (Christian Kußowski) +- Translated using Weblate (Spanish) (Kimby) + +## v1.27.0 +- feat: Add confirmation dialog before accepting invite (krille-chan) +- feat: Add feature flag for refresh tokens (Christian Kußowski) +- feat: add setting for whether to show space navigation rail on mobile (ggurdin) +- feat: Background audio player (Christian Kußowski) +- feat: Check markdown checkboxes in messages (krille-chan) +- feat: Create lists with checkboxes via + menu (krille-chan) +- feat: Limit height of text messages and expand if selected (krille-chan) +- feat: Move videoplayer into multi image viewer (Christian Kußowski) +- feat: Show all supported image-/video-files when sending images or videos (MoonlightWave-12) +- feat: Show WebM-videos when choosing video-files for sending (MoonlightWave-12) +- fix: Add missing mounted check to mxcImage (Christian Kußowski) +- fix: App crash on page navigation with open popup menu (Christian Kußowski) +- fix: App crashes on window resize in chat (krille-chan) +- fix: Change `PNGs` to `PNG` for consistency in file-selector (MoonlightWave-12) +- fix: Crash when going to settings in desktop mode (krille-chan) +- Fix: Fix jagged avatar edges Use anti-alias Clipping allowing for round Avatar circles (martin) +- fix: Join new room after room upgrade (krille-chan) +- fix: Keep state of text input dialogs (Christian Kußowski) +- fix: Localizations (krille-chan) +- fix: No crash on logging out in client chooser button (Christian Kußowski) +- fix: Show WebP-images with a file-extension written in lower-case (MoonlightWave-12) +- build: Update matrix dart sdk 0.40.2 (Christian Kußowski) +- build: Update record package (Christian Kußowski) +- build: Update shared preferences android (krille-chan) +- build: Upgrade to flutter 3.32.1 (Christian Kußowski) +- build: Use workaround for flutter secure storage on linux (krille-chan) +- chore: Crop shortcut file on android and cache it (krille-chan) +- chore: Display loading dialog when preparing voice message (Christian Kußowski) +- chore: Format lib/utils/file_selector.dart (MoonlightWave-12) +- chore: Let users decide for the title in error reporter (Christian Kußowski) +- chore: make space nav bar narrower on mobile and ensure space nav bar matches user's theme (ggurdin) +- chore: Nicer checkboxes (Christian Kußowski) +- chore: Preload server file config before upload files (Christian Kußowski) +- chore: Remove custom errorwidgetbuilder (Christian Kußowski) +- chore: Remove unused translations (Christian Kußowski) +- chore: Simplify voiceMessage getter (Christian Kußowski) +- chore: Update voice message localization (Christian Kußowski) +- refactor: Always use HtmlMessage (krille-chan) +- refactor: Reduce notification avatar size to 128 (krille-chan) +- Added translation using Weblate (Cantonese (Traditional Han script)) (Mike Evans) +- Added translation using Weblate (Danish) (Øjvind Fritjof Arnfred) +- Added translation using Weblate (Yue (yue_HK)) (Mike Evans) +- Translated using Weblate (Arabic) (abdelbasset jabrane) +- Translated using Weblate (Basque) (xabirequejo) +- Translated using Weblate (Cantonese (Traditional Han script)) (Mike Evans) +- Translated using Weblate (Catalan) (Marc Pina Artigas) +- Translated using Weblate (Chinese (Simplified Han script)) (大王叫我来巡山) +- Translated using Weblate (Chinese (Simplified Han script)) (Mike Evans) +- Translated using Weblate (Chinese (Traditional Han script)) (Mike Evans) +- Translated using Weblate (Chinese (Traditional Han script)) (miullu) +- Translated using Weblate (Danish) (Øjvind Fritjof Arnfred) +- Translated using Weblate (Dutch) (Jelv) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Finnish) (sevonj) +- Translated using Weblate (Galician) (josé m) +- Translated using Weblate (German) (Christian) +- Translated using Weblate (German) (Jana) +- Translated using Weblate (German) (JSchmerling) +- Translated using Weblate (Hebrew) (DavidEl-Natan) +- Translated using Weblate (Hungarian) (H Tamás) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Irish) (Aindriú Mac Giolla Eoin) +- Translated using Weblate (Italian) (Angelo Schirinzi) +- Translated using Weblate (Latvian) (ℂ𝕠𝕠𝕠𝕝 (𝕘𝕚𝕥𝕙𝕦𝕓.𝕔𝕠𝕞/ℂ𝕠𝕠𝕠𝕝)) +- Translated using Weblate (Latvian) (Edgars Andersons) +- Translated using Weblate (Polish) (Piotr Orzechowski) +- Translated using Weblate (Portuguese (Brazil)) (Pedro Alves) +- Translated using Weblate (Russian) (Yurt Page) +- Translated using Weblate (Ukrainian) (Bezruchenko Simon) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) + +## v1.26.1 + +Updates the Matrix Dart SDK to fix multiple issues where messages can be missing in the timeline. + +- feat: Reenable archive feature after various fixes landed in sdk (krille-chan) +- build: Update matrix dart sdk to 0.40.0 (Christian Kußowski) +- chore: Adjust new chat page design (krille-chan) +- chore: Display count of invited in members page (krille-chan) +- chore: Do not load timeline while sync processing (Krille) +- chore: Do not store event from push in database (Krille) +- chore: Only show joined members in members list by default (Krille) +- chore: Remove matrix notification workflow (Krille) +- fix(docs): escape tag (Sophie L) +- fix: Crash when opening settings in column mode from popup menu (krille-chan) +- refactor: Display thread messages like replies as a thread fallback (Krille) + +## v1.26.0 + +- feat: Add advanced configuration page (Krille) +- feat: clearly mark when a video is to be downloaded (Rafał Hirsch) +- feat: Filter for room members page and easier approve knocking users (Krille) +- feat: Navigate in image viewer with keyboard keys (krille-chan) +- feat: New video file picker button (Krille) +- feat: Send optional message with images or files (Krille) +- feat: support inline video playback on macOS (Rafał Hirsch) +- build: Flutter 3.29.3 (Krille) +- build: Update gorouter package (Krille) +- build: Update kotlin gradle plugin (Krille) +- build: Update matrix dart sdk (Krille) +- build: Update openssl to 0.5.0 (Krille) +- build: use singleInstance as launchmode (krille-chan) +- chore: Add matrix notifications for issues (Krille) +- chore: Better error handling for image rendering (krille-chan) +- chore: Better no compression supported UX (Krille) +- chore: Correct availability of desktop builds (Lenni) +- chore: disable echoCancel for audio messages (Krille) +- chore: divider when scrolled up (krille-chan) +- chore: Improve avatar designg (Krille) +- chore: Make push gateway configurable (Krille) +- chore: Nicer colors for reactions (krille-chan) +- chore: Nicer scaffold dialog for column mode (Krille) +- chore: Simpler changing config variables (Krille) +- chore: Update locale config for localizations (Krille) +- chore: Update pubspec.lock (Krille) +- chore: upgrade chewie and video_player packages (Rafał Hirsch) +- chore: Use Cupertino Activity Indicator in ChatEventList (krille-chan) +- chore: Use other join endpoint for room upgrades (Krille) +- fix(macos): update dependencies to make the build work (Rafał Hirsch) +- fix: Add missing \ html tag to render (Krille) +- fix: Consistent element padding between server picker and login view (xegim) +- fix: Index of numbered lists are off (Krille) +- fix: never use a transition on the shell route (Rafał Hirsch) +- fix: Null error in ClientChooserButton (krille-chan) +- fix: prevent users from creating spaces with empty names (ggurdin) +- fix: properly dispose VideoPlayerController (Rafał Hirsch) +- fix: Remove too sensitive dismiss gesture on chat list items (Krille) +- fix: Text scale factor in Linkify widgets (Krille) +- fix: update condition in account deletion function to allow deletion to go through (ggurdin) +- refactor: Easier shift enter logic for text input (Krille) +- refactor: Formatting (Krille) +- refactor: Implement avatar image viewer and adjust design (Krille) +- refactor: Improved UX for room upgrades (Krille) +- refactor: Migrate more config options to config viewer (Krille) +- refactor: Move public room bottom sheet into dialog (Krille) +- refactor: Remove custom font and emoji font workaround (krille-chan) +- refactor: Replace user bottom sheet with menu and small dialog (Krille) +- Added translation using Weblate (Telugu) (katakam chakri) +- Translated using Weblate (Basque) (xabirequejo) +- Translated using Weblate (Chinese (Simplified Han script)) (Poesty Li) +- Translated using Weblate (Chinese (Simplified Han script)) (大王叫我来巡山) +- Translated using Weblate (Chinese (Traditional Han script)) (Mare JP) +- Translated using Weblate (Chinese (Traditional Han script)) (miullu) +- Translated using Weblate (Dutch) (Jelv) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Filipino) (searinminecraft) +- Translated using Weblate (French) (Antonin Del Fabbro) +- Translated using Weblate (Galician) (josé m) +- Translated using Weblate (German) (nautilusx) +- Translated using Weblate (German) (Very Able) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Irish) (Aindriú Mac Giolla Eoin) +- Translated using Weblate (Italian) (Angelo Schirinzi) +- Translated using Weblate (Korean) (kdh8219) +- Translated using Weblate (Latvian) (Edgars Andersons) +- Translated using Weblate (Latvian) (ℂ𝕠𝕠𝕠𝕝 (𝕘𝕚𝕥𝕙𝕦𝕓.𝕔𝕠𝕞/ℂ𝕠𝕠𝕠𝕝)) +- Translated using Weblate (Polish) (Piotr Orzechowski) +- Translated using Weblate (Russian) (Yurt Page) +- Translated using Weblate (Spanish) (José Muñoz) +- Translated using Weblate (Spanish) (Kimby) +- Translated using Weblate (Telugu) (katakam chakri) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) + +## v1.25.0 + +- feat: Display all push rules and allow to enable disable them (Krille) +- feat: Inspect and delete push rules (Krille) +- feat: Pick share keys with (Krille) +- feat: Select share keys with property in security settings (Krille) +- feat: Use dynamic gradient for chat bubbles (Krille) +- fix: Image search rendering problem (krille-chan) +- build: Add locale config for android (krille-chan) +- build: Add missing permissions (Krille) +- build: Automerge weblate PRs (Krille) +- build: Fix ios debug build (krille-chan) +- build: Follow up auto merge weblate (Krille) +- build: remove weblate auto merge (Krille) +- build: Switch to flutter_shortcuts_new (Krille) +- build: Update dependencies for flutter (Krille) +- build: Update dependencies to remove more flutter android v1 references (Krille) +- build: Update fcm_shared_isolate (Krille) +- build: Update flutter web uild (Krille) +- build: Update flutter_olm to 2.0.0 (Krille) +- build: Update gradle version (Krille) +- build: Update native_imaging (Krille) +- build: Update PAT (Krille) +- build: Update to flutter 3.27.4 (Krille) +- build: Update weblate auto merge (Krille) +- build: Upgrade gradle (Krille) +- chore: Add explanation for PlayStore Safety Standards (Krille) +- chore: Add medium font (Krille) +- chore: Add start to ordered list (Krille) +- chore: Add tooltip to links in html (Krille) +- chore: Adjust button icon colors (Krille) +- chore: Adjust design of adaptive dialogs (krille-chan) +- chore: Adjust navrail design (Krille) +- chore: Adjust share scaffold dialog design (Krille) +- chore: Better connection status indicator (Krille) +- chore: Design adjustments (krille-chan) +- chore: Make login with matrix id more prominent again (krille-chan) +- chore: Message bubble color follow up (krille-chan) +- chore: Remove gradle workaround (Krille) +- chore: Slightly adjust welcome screen (Krille) +- chore: Use UbuntuMono (Krille) +- docs: Fix snap store icon (krille-chan) +- refactor: Display navigationrail in settings page (krille-chan) +- refactor: Follow up fix types in localization files (Krille) +- refactor: Improve sso login UX on web (krille-chan) +- refactor: Migrate to maintained badge package (Krille) +- refactor: Migrate uni_links to app_links (Krille) +- refactor: New html rendering (Krille) +- refactor: Remove broken callkeep implementation (Krille) +- refactor: Remove unused class (krille-chan) +- refactor: Switch to maintained qr code package (Krille) +- refactor: Switch to ubuntu font (krille-chan) +- refactor: Update arb file types (Krille) +- Translated using Weblate (Arabic) (Rex_sa) +- Translated using Weblate (Basque) (xabirequejo) +- Translated using Weblate (Catalan) (fadelkon) +- Translated using Weblate (Chinese (Simplified Han script)) (玖然) +- Translated using Weblate (Chinese (Simplified Han script)) (大王叫我来巡山) +- Translated using Weblate (Chinese (Traditional Han script)) (玖然) +- Translated using Weblate (Croatian) (Milo Ivir) +- Translated using Weblate (Dutch) (Jelv) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Galician) (josé m) +- Translated using Weblate (German) (Christian) +- Translated using Weblate (German) (Ettore Atalan) +- Translated using Weblate (German) (Jana) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Irish) (Aindriú Mac Giolla Eoin) +- Translated using Weblate (Italian) (Angelo Schirinzi) +- Translated using Weblate (Korean) (kdh8219) +- Translated using Weblate (Latvian) (Edgars Andersons) +- Translated using Weblate (Slovak) (Anonymous) +- Translated using Weblate (Spanish) (Alfredo Sola) +- Translated using Weblate (Ukrainian) (Bezruchenko Simon) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) + +## v1.24.0 + +- build: Add missing libssl library (krille-chan) +- build: Update dart_webrtc package (Krille) +- build: Update matrix sdk and dependencies (Krille) +- build: Update to flutter 3.27 (Krille) +- chore: Better bottom sheets on desktop (krille-chan) +- chore: Check file size before loading (krille-chan) +- chore: Display normal Slider when no waveform provided in audioplayer (krille-chan) +- chore: Do not display sender prefix for DM rooms in notification ticker (krille-chan) +- chore: Enable share multiple files to app (krille-chan) +- chore: Improve alias UX in chat settings (Krille) +- chore: Improve join abandoned invite exception (Krille) +- chore: Improve UserBottomSheet UX (Krille) +- chore: Make message bubble color dark also in dark mode (krille-chan) +- chore: Remove conversationTitle if room is dm room in android notifications (krille-chan) +- feat: QR Code viewer for mxid sharing (Krille) +- fix: Do not set public visibility for private groups (Krille) +- fix: Use MB and KB instead of MiB and KiB for file sizes (Krille) +- refactor: Adjust chat list item UX (Krille) +- refactor: Better custom image resizer (Krille) +- refactor: Clean up android manifest (Krille) +- refactor: Implement own adaptive dialogs and remove package (krille-chan) +- refactor: Improve UX of user role in UserBottomSheet (Krille) +- refactor: Improved share / forward dialog (krille-chan) +- Translated using Weblate (Arabic) (Rex_sa) +- Translated using Weblate (Basque) (xabirequejo) +- Translated using Weblate (Catalan) (fadelkon) +- Translated using Weblate (Chinese (Simplified Han script)) (大王叫我来巡山) +- Translated using Weblate (Czech) (Erin) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Galician) (josé m) +- Translated using Weblate (German) (Christian) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Irish) (Aindriú Mac Giolla Eoin) +- Translated using Weblate (Italian) (Angelo Schirinzi) +- Translated using Weblate (Latvian) (Edgars Andersons) +- Translated using Weblate (Polish) (Piotr Orzechowski) +- Translated using Weblate (Russian) (-) +- Translated using Weblate (Tamil) (Christian) +- Translated using Weblate (Tamil) (தமிழ்நேரம்) +- Translated using Weblate (Turkish) (goknarbahceli) +- Translated using Weblate (Ukrainian) (Bezruchenko Simon) +- Translated using Weblate (Vietnamese) (Tewuzij) + +## v1.23.0 + +- design: Highlight emoji only messages (Krille) +- design: New login design (Krille) +- docs: fix snapstore badge on website (Krille) +- feat: Add about server page (Krille) +- feat: Add default chat wallpaper (Krille) +- feat: Add markdown context actions for text input (krille-chan) +- feat: Better wallpapers with blur and opacity sliders and improved styles page (krille-chan) +- feat: Display warning banner on unverified devices (krille-chan) +- feat: New audio message design with displayed body (krille-chan) +- feat: Nicer room creation UI (krille-chan) +- feat: Open account manage url when using MAS (krille-chan) +- feat: Sending multiple files at once (krille-chan) +- feat: Swipe to archive rooms (Krille) +- fix: Bypass image compression in flutter_file_picker (q234rty) +- fix: dont use thumbnails for emoticons (Marek Vospěl) +- fix: Public rooms always publicly visible even when turned off on creation (krille-chan) +- fix: Wait for room invite before open in pushhelper (krille-chan) +- refactor: Better future loading dialog without flickering (krille-chan) +- refactor: Display two lines on new messages (krille-chan) +- refactor: Improve delete device UX flow (krille-chan) +- refactor: Load bytes from sending files later to not let app crash (krille-chan) +- refactor: Migrate to newer keyboard shortcuts package (Krille) +- refactor: Move to upstream geolocator (Krille) +- refactor: Performance boost for avatar widget (Krille) +- refactor: Remove duplicated navigator workaround (krille-chan) +- refactor: Remove keyboard shortcuts (Krille) +- refactor: Remove unnecessary builder widget (krille-chan) +- refactor: Reuse flutter local notifications object (krille-chan) +- refactor: Use adaptive dialog action (Krille) +- refactor: Use file selector on linux (krille-chan) +- refactor: Use non nullable localizations builder and lazy load on web (krille-chan) +- Revert "chore: Follow up new chat design" (Krille) +- Revert "feat: Add default chat wallpaper" (Krille) +- Revert "refactor: Performance boost for avatar widget" (krille-chan) +- Translated using Weblate (Arabic) (Rex_sa) +- Translated using Weblate (Basque) (xabirequejo) +- Translated using Weblate (Catalan) (fadelkon) +- Translated using Weblate (Chinese (Simplified Han script)) (大王叫我来巡山) +- Translated using Weblate (Czech) (Michal Bedáň) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Finnish) (Priit Jõerüüt) +- Translated using Weblate (Galician) (josé m) +- Translated using Weblate (German) (Christian) +- Translated using Weblate (German) (Ettore Atalan) +- Translated using Weblate (German) (Peter Wallerius) +- Translated using Weblate (Hungarian) (Zentropivity) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Irish) (Aindriú Mac Giolla Eoin) +- Translated using Weblate (Irish) (Christian) +- Translated using Weblate (Italian) (Angelo Schirinzi) +- Translated using Weblate (Korean) (Bruno Roh) +- Translated using Weblate (Korean) (kdh8219) +- Translated using Weblate (Latvian) (Edgars Andersons) +- Translated using Weblate (Latvian) (GGLVXD) +- Translated using Weblate (Russian) (Pavel Kozhukhov) +- Translated using Weblate (Russian) (v1s7) +- Translated using Weblate (Spanish) (Kimby) +- Translated using Weblate (Turkish) (Oğuz Ersen) +- Translated using Weblate (Ukrainian) (Bezruchenko Simon) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) + +## v1.22.0 + +FluffyChat v1.22.0 brings a new design for spaces, replaces the bottom navigation bar with filter +chips and makes it finally possible to play ogg audio messages on iOS. A lot of other fixes and +improvements have also been added to this release. + +FluffyChat also now uses the new authenticated media endpoints if the server supports Matrix v1.11 +or +mentions the msc with the key `org.matrix.msc3916.stable` in the `unstable_features`. + +- design: Add snackbar with link to changelog on new version (Krille) +- docs: Update privacy policy (krille-chan) +- feat: Support for matrix auth media endpoints +- feat: Convert opus to aac on iOS before playing (Krille) +- feat: New spaces and chat list design (krille-chan) +- feat: Record voice message with opus/ogg if supported (Krille) +- feat: Send voice messages from web (Krille) +- feat: Add about server page (Krille) +- feat: Add default chat wallpaper (Krille) +- feat: Add markdown context actions for text input (krille-chan) +- feat: Better wallpapers with blur and opacity sliders and improved styles page (krille-chan) +- feat: Display warning banner on unverified devices (krille-chan) +- feat: New audio message design with displayed body (krille-chan) +- feat: Nicer room creation UI (krille-chan) +- feat: Open account manage url when using MAS (krille-chan) +- feat: Sending multiple files at once (krille-chan) +- feat: Swipe to archive rooms (Krille) +- fix: Display only available join rules (Krille) +- fix: Path correct userId to ignore list (krille-chan) +- fix: Scroll to event missing the position (Krille) +- Fix web base url and privacy url configuration processing (dlyrsk) +- refactor: Clean up some widths (krille-chan) +- refactor: Design polishment and better user viewer (Krille) +- refactor: Migrate android gradle plugin (Krille) +- refactor: Only initialize FlutterLocalNotificationsPlugin once (krille-chan) +- refactor: Recording dialog (Krille) +- Refactor: Reduce .of(context) calls theme (Thomas Klein Langenhorst) +- refactor: Use cached network image for mxc image uris (Krille) +- Translated using Weblate (Arabic) (kdh8219) +- Translated using Weblate (Arabic) (Rex_sa) +- Translated using Weblate (Basque) (kdh8219) +- Translated using Weblate (Basque) (xabirequejo) +- Translated using Weblate (Chinese (Simplified)) (kdh8219) +- Translated using Weblate (Chinese (Simplified)) (大王叫我来巡山) +- Translated using Weblate (Chinese (Traditional)) (kdh8219) +- Translated using Weblate (Chinese (Traditional)) (Lukas) +- Translated using Weblate (Chinese (Traditional)) (Ricky From Hong Kong) +- Translated using Weblate (Chinese (Traditional)) (不知火 Shiranui) +- Translated using Weblate (Croatian) (Milo Ivir) +- Translated using Weblate (Czech) (Anonymous) +- Translated using Weblate (Czech) (Michal Bedáň) +- Translated using Weblate (Dutch) (Guacamolie) +- Translated using Weblate (Dutch) (Jelv) +- Translated using Weblate (Dutch) (Thomas Klein Langenhorst) +- Translated using Weblate (Esperanto) (Anonymous) +- Translated using Weblate (Estonian) (kdh8219) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Finnish) (Anonymous) +- Translated using Weblate (French) (Sovkipyk) +- Translated using Weblate (Galician) (josé m) +- Translated using Weblate (German) (Christian) +- Translated using Weblate (German) (Pixelcode) +- Translated using Weblate (German) (tct123) +- Translated using Weblate (Hebrew) (Anonymous) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Irish) (Anonymous) +- Translated using Weblate (Japanese) (Anonymous) +- Translated using Weblate (Korean) (kdh8219) +- Translated using Weblate (Lithuanian) (Anonymous) +- Translated using Weblate (Norwegian Bokmål) (Anonymous) +- Translated using Weblate (Persian) (Anonymous) +- Translated using Weblate (Portuguese (Portugal)) (Anonymous) +- Translated using Weblate (Romanian) (Anonymous) +- Translated using Weblate (Russian) (-) +- Translated using Weblate (Serbian) (Anonymous) +- Translated using Weblate (Slovenian) (Anonymous) +- Translated using Weblate (Spanish) (Anonymous) +- Translated using Weblate (Turkish) (kdh8219) +- Translated using Weblate (Turkish) (Oğuz Ersen) +- Translated using Weblate (Ukrainian) (Bezruchenko Simon) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) + +## v1.21.2 + +Updates the Matrix Dart SDK to fix some minor bugs. + +- Added translation using Weblate (Lojban) (Zig-Rust-Odin) +- build: Update matrix dart sdk (Krille) +- chore: Update last event after decryption (Krille) +- fix: Correctly localize time of date (Krille) +- refactor: Omit local types (Krille) +- Translated using Weblate (Arabic) (Rex_sa) +- Translated using Weblate (Basque) (xabirequejo) +- Translated using Weblate (Chinese (Simplified)) (大王叫我来巡山) +- Translated using Weblate (Croatian) (Milo Ivir) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Galician) (josé m) +- Translated using Weblate (Hungarian) (H Tamás) +- Translated using Weblate (Korean) (kdh8219) +- Translated using Weblate (Latvian) (Edgars Andersons) +- Translated using Weblate (Polish) (Eryk Michalak) +- Translated using Weblate (Portuguese (Brazil)) (lucasmz-dev) +- Translated using Weblate (Russian) (Nicholas Winterhalter) +- Translated using Weblate (Turkish) (Oğuz Ersen) + +## v1.21.1 + +- build: Update Matrix Dart SDK (Krille) +- build: Update to Flutter 3.22.2 (krille-chan) +- feat: add option to configure reply swipe direction (MrSpoony) +- fix: Add missing unlock button to lockscreen textfield (Krille) +- fix: Auto unlock lock screen (krille-chan) +- Translated using Weblate (Chinese (Simplified)) (大王叫我来巡山) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Estonian) (Rauno Ots) +- Translated using Weblate (Galician) (josé m) +- Translated using Weblate (Turkish) (Oğuz Ersen) +- Translated using Weblate (Vietnamese) (Karo) + +## v1.21.0 + +FluffyChat v1.21.0 introduces the new search feature which also includes a gallery and files list +for each chat. Several performance improvements have been added under the hood, leading to a much +nicer user experience. + +- feat: Enable download images on iOS, not only share images (krille-chan) +- feat: Search feature (krille-chan) +- build: Update record package (krille-chan) +- build: Use correct pubspec.yaml format for hosted dependency (krille-chan) +- build: Use matrix sdk main branch (krille-chan) +- chore: Change default timeout to 30 min (krille-chan) +- chore: Go back to pub.dev matrix sdk (Krille) +- chore: Hotfix create missing objectbox (Krille) +- chore: Increase default network request timeout (Krille) +- chore: Make bottomnavbar labels always visible (krille-chan) +- chore: Nicer message animation (krille-chan) +- chore: Only load last event sender if necessary (Krille) +- chore: Set a maxsize for textfields (Krille) +- chore: upgrade flutter to 3.22.0 (lauren n. liberda) +- chore: upgrade flutter to 3.22.1 (lauren n. liberda) +- ci: run `flutter gen-l10n` on code_tests (lauren n. liberda) +- design: Improve design of Voice Messages and add 1.25 as speed (Krille) +- fastlane: i18n ru (Yurt Page) +- fastlane: improve full_description.txt (Yurt Page) +- fix: Broken localization with empty strings in it (krille-chan) +- fix: FakeMatrixApi check (krille-chan) +- fix: mxc reactions not rendered correctly (krille-chan) +- fix: Stickers from gboard have black background (Krille) +- fix: voip code breaking from 0.28 (td) +- refactor: Delete database file on failed app start (krille-chan) +- refactor: Display better command hints (Krille) +- refactor: Improve performance of chat list (krille-chan) +- refactor: Precache theme and directchatmatrixid to improve performance in chat list item ( + krille-chan) +- refactor: Update to Matrix Dart SDK 0.29.9 (Krille) +- Translated using Weblate (Croatian) (Milo Ivir) +- Translated using Weblate (Czech) (Jozef Mlich) +- Translated using Weblate (Georgian) (Nicholas Winterhalter) +- Translated using Weblate (German) (Gian Klug) +- Translated using Weblate (Korean) (kdh8219) +- Translated using Weblate (Latvian) (Edgars Andersons) +- Translated using Weblate (Norwegian Bokmål) (sunniva) +- Translated using Weblate (Turkish) (Oğuz Ersen) + +## v1.20.0 + +Design improvements and new advanced UI to manage rooms. + +- build: Fix google services patch (Krille) +- build: Update matrix dart sdk (krille-chan) +- build: Update to Flutter 3.19.6 (krille-chan) +- chore: Let error reporter fill out bug report (krille-chan) +- chore: More nicer event source display (krille-chan) +- chore: Update user has knocked localization with emoji (krille-chan) +- design: Adjust chat settings design (krille-chan) +- design: Adjust settings design (krille-chan) +- design: Fix color of invite button (krille-chan) +- design: Follow up chat settings design (krille-chan) +- design: Follow up settings design (krille-chan) +- design: Improve user permission settings (krille-chan) +- design: New chat access settings (krille-chan) +- design: Redesign permissions settings with dropdownbuttons (krille-chan) +- design: Remake UX of selecting messages and chats (krille-chan) +- refactor: Download on android and iOS with file_picker (krille-chan) +- Translated using Weblate (Arabic) (Rex_sa) +- Translated using Weblate (Basque) (xabirequejo) +- Translated using Weblate (Chinese (Simplified)) (大王叫我来巡山) +- Translated using Weblate (Dutch) (Anonymous) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Filipino) (searinminecraft) +- Translated using Weblate (Finnish) (Anonymous) +- Translated using Weblate (Galician) (josé m) +- Translated using Weblate (German) (Christian) +- Translated using Weblate (Hungarian) (Máté Menyhárt) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Latvian) (Edgars Andersons) +- Translated using Weblate (Portuguese (Brazil)) (lucasmz) +- Translated using Weblate (Portuguese (Brazil)) (Rudah Ximenes Alvarenga) + +## v1.19.2 + +Bugfix release to mostly fix the new database encryption on Linux and update the translations. + +- build: (deps): bump peaceiris/actions-gh-pages from 3 to 4 (dependabot[bot]) +- build: Update all dependencies and remove vibrator package (krille-chan) +- build: Update emoji picker package (krille-chan) +- build: Update flutter_map package (krille-chan) +- docs: Fix typo in android app description (Krille) +- fix: Allow unencrypted database if gnome keyring not present or platform does not support it ( + krille-chan) +- fix: Background color of images with transparency (Krille) +- fix: Localizations from weblate confused by unknownEvent locale (Krille) +- fix: More logs when database fails to init and trycatch sendInitNotification (Krille) +- Added translation using Weblate (Filipino) (searinminecraft) +- Translated using Weblate (Arabic) (Rex_sa) +- Translated using Weblate (Basque) (xabirequejo) +- Translated using Weblate (Catalan) (fadelkon) +- Translated using Weblate (Chinese (Simplified)) (大王叫我来巡山) +- Translated using Weblate (Chinese (Traditional)) (D0735) +- Translated using Weblate (Chinese (Traditional)) (Kyanos Chiu) +- Translated using Weblate (Croatian) (v1s7) +- Translated using Weblate (English) (v1s7) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Filipino) (searinminecraft) +- Translated using Weblate (Galician) (josé m) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Interlingua) (kdh8219) +- Translated using Weblate (Italian) (Krystian) +- Translated using Weblate (Korean) (kdh8219) +- Translated using Weblate (Persian) (EndermanXD) +- Translated using Weblate (Polish) (Adam Strączek) +- Translated using Weblate (Polish) (Krystian) +- Translated using Weblate (Russian) (v1s7) +- Translated using Weblate (Swedish) (Joaquim Homrighausen) +- Translated using Weblate (Turkish) (v1s7) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) + +## v1.19.1 + +Minor bugfix release for login with SSO on web. + +- feat: Show/hide third column in chat view (krille-chan) +- design: Adjust some colors in inputbar (krille-chan) +- fix: Login with SSO on web (krille-chan) +- fix: Make chat permission settings null and type safe (krille-chan) +- chore: do not use static openssl (ShootingStarDragons) +- refactor: Move room headers into appbar bottom field (krille-chan) +- refactor: new flutter only typing animation (krille-chan) + +## v1.19.0 + +FluffyChat v1.19.0 features an improved design for message bubbles and a lot of fixes under the +hood. + +- build: Update matrix dart sdk (Krille) +- build: Update to flutter 3.19.5 (krille-chan) +- chore: Add missing command hints (krille-chan) +- chore: Add pagekey to custom page builder (Krille) +- chore: Adjust design of typing indicator (Krille) +- chore: Adjust ticker of notifications for Android (Krille) +- chore: Calc blurhash in other thread (Krille) +- chore: Mark muted unread rooms with bold text (krille-chan) +- chore: More minimal matrix pill (Krille) +- chore: Try out CupertinoPage instead of custom transition in router (krille-chan) +- ci: add a license compliance check (lauren n. liberda) +- design: Connect bubbles from same sender (krille-chan) +- design: Display images in correct ratio in timeline (krille-chan) +- design: Make appbar in material you design for mobile mode (krille-chan) +- design: New sticker picker next to emoji picker (krille-chan) +- design: Nicer QR Code design (krille-chan) +- design: Nicer reactions design with size animations (Krille) +- feat: Add insert content via gboard (krille-chan) +- feat: Reply with one button in desktop (krille-chan) +- fix: Do not sync in background mode (krille-chan) +- fix: FluffyChat should assume m.change_password capabilitiy is supported if not present per spec ( + krille-chan) +- fix: never use root navigator for bottom sheets (The one with the braid) +- fix: Remove pantalaimon message with normal error message (krille-chan) +- fix: Search in spaces view (krille-chan) +- fix: Set read marker on web (Krille) +- fix: Point to correct path for auth.html so completing sso login flow no longer 404s (Gavin Mogan) +- refactor: Better logic for removing outdated notifications (Krille) +- refactor: Enhance logic when to mark room as read (krille-chan) +- refactor: Remove old aliases workaround (Krille) +- refactor: Sticker widget code (Krille) +- refactor: Use dart blurhash (Krille) +- Translated using Weblate (Basque) (xabirequejo) +- Translated using Weblate (Interlingua) (Software In Interlingua) + +## v1.18.0 + +- feat: Add speed button for audioplayer (krille-chan) +- feat: enhanced send video functionality by adding toggle send original (Mubeen Rizvi) +- feat: add dialog to hide presence list with long-press (Marcus Hoffmann) +- feat: Add notification shortcuts to android (krille-chan) +- feat: make showing user presence info optional (Marcus Hoffmann) +- feat: Open chat on shortcut click on android (krille-chan) +- fix: BuildContext crash when joining room (krille-chan) +- fix: Export session (krille-chan) +- fix: Notifications open sometimes automatically on android (krille-chan) +- fix: Open room after join (krille-chan) +- fix: Open room by notification happened multiple times (krille-chan) +- fix: Open room links with event id (krille-chan) +- fix: properly initialize hideUnimportantStateEvents setting (Marcus Hoffmann) +- fix: Remove status msg not changeable from old cache (krille-chan) +- fix: use correct icons for chat pin/unpin (Marcus Hoffmann) +- fix: use correct icons for mark read/unread action (Marcus Hoffmann) +- build: Update Linux build files (krille-chan) +- build: Update to Flutter 3.19.1 (Krille) +- chore: Add more information to Person object in android notifications (krille-chan) +- chore: Thumbnail follow up for notifications (Krille) +- refactor: Better download UX with file picker for android and iOS (krille-chan) +- refactor: Use hashcode instead of string to id workaround for notifications (Krille) +- Added translation using Weblate (Belarusian) (kopatych) +- Added translation using Weblate (Interlingua) (Software In Interlingua) +- Translated using Weblate (Arabic) (Rex_sa) +- Translated using Weblate (Basque) (xabirequejo) +- Translated using Weblate (Chinese (Simplified)) (Poesty Li) +- Translated using Weblate (Chinese (Simplified)) (大王叫我来巡山) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Galician) (josé m) +- Translated using Weblate (German) (Benjamin Wagner) +- Translated using Weblate (Greek) (Benjamin Wagner) +- Translated using Weblate (Russian) (Benjamin Wagner) +- Translated using Weblate (Russian) (v1s7) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) +- Translated using Weblate (Ukrainian) (Сергій) + +## v1.17.3 + +- feat: New account data based wallpaper feature (Krille) +- build: Update dependencies (Krille) +- build: Update flutter to 3.16.9 (Krille) +- build: Update matrix dart sdk to 0.25.7 (Krille) +- build: Update minor versions (Krille) +- chore: Adjust status msg design (krille-chan) +- chore: Improved error handling for recovery key (Krille) +- chore: Make stickers smaller (Krille) +- chore: Wait for device keys before ask bootstrap (Krille) +- fix: Missing null check in public room bottom sheet (Krille) +- fix: onDragDone crashes when no files found (Krille) +- fix: Render tg-forward html tags (Krille) +- fix: Use HapticFeedback.selectionClick() for long press on message (Krille) +- fix: whitespaces sometimes encoded in html message (Krille) +- fix: Share invite links of public rooms (Krille) + +## v1.17.2 + +Another minor bugfix release which also implements private read receipts. + +- feat: Implement private read receipts (krille-chan) +- feat: Join room by alias by tpying alias in searchbar (krille-chan) +- fix: Add cancel button to key request dialog (Krille) +- fix: Encode component for links correctly (Krille) +- fix: Forward arbitrary message content (krille-chan) +- fix: Open publicroombottomsheet by alias (krille-chan) +- docs: Add noto animated emojis link (krille-chan) +- docs: New website (krille-chan) +- build: Do not load emojis at initial start on web (krille-chan) +- build: Update flutter to 3.16.8 (krille-chan) +- build: Update sdk to 0.25.6 (Krille) +- chore: Add more explaining text for key verification (krille-chan) +- chore: Resort settings and add more description text (krille-chan) +- refactor: Dialog BuildContext (krille-chan) +- refactor: Use popupmenudivider instead of workaround (krille-chan) +- Translated using Weblate (Arabic) (Rex_sa) +- Translated using Weblate (Basque) (xabirequejo) +- Translated using Weblate (Chinese (Simplified)) (Poesty Li) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Galician) (josé m) +- Translated using Weblate (German) (nautilusx) +- Translated using Weblate (Russian) (v1s7) +- Translated using Weblate (Swedish) (Flat) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) +- Translated using Weblate (Ukrainian) (Сергій) + +## v1.17.1 + +Minor bugfix release. + +- build: Update matrix sdk 0.25.5 (Krille) +- build: Update to flutter 3.16.7 (Krille) +- chore: Remove vibration on iOS for long press (Krille) +- design: Better paddings in tablet mode (krille-chan) +- docs: Fix typo in readme (Krille) +- Fix dependency. missing yq when invoking setup-web. also ensure updated config.json copied in ( + Isaac Johnson) +- fix: text nodes with multiple links crash the timeline (Krille) +- fix: URL too long when reporting bug (Krille) +- fix: Wait for user device keys before start verification (Krille) + +## v1.17.0 + +FluffyChat v1.17.0 refreshes the overall user experience, changes some design and fixes a lot of +bugs. It also replaces the stories feature with matrix presences, introduces a new kind of database +to store the messages locally and improves the performance and app stability. + +- change: Remove wallpaper feature (krille-chan) +- design: Adjust login page design (krille-chan) +- design: Adjust new chat page design (Krille) +- design: Adjust reply design (krille-chan) +- design: New design for login page (krille-chan) +- feat: Add registration buttons for servers with public registration url (krille-chan) +- feat: Animate in new events in timeline (krille-chan) +- feat: Block users who sent invites (krille-chan) +- feat: Display migration notification (Krille) +- feat: Hovermenu for messages for mouse (krille-chan) +- feat: New change password page with server capabilities check (krille-chan) +- feat: Search for public spaces (krille-chan) +- feat: Try out FluffyBox 2 database (Krille) +- fix: Add 3pid email for password reset (krille-chan) +- fix: Audiomessage break app (Krille) +- fix: Cannot change send on enter on desktop (krille-chan) +- fix: Darktheme contrast fixes with primary color (krille-chan) +- fix: Join public rooms (krille-chan) +- fix: Make user admin (krille-chan) +- fix: New json url for homeserver list (krille-chan) +- fix: Open notification for invite crashes app (krille-chan) +- fix: Remove web background (Krille) +- fix: Some links not clickable in messages (Krille) +- fix: Update manual endpoints (Krille) +- fix: Web SSO (Krille) +- refactor: More stable scroll to event (krille-chan) +- refactor: Reinvite other part instead of reopen dm (Krille) +- refactor: Remove todo list feature (krille-chan) +- refactor: Remove unnecessary setState in ChatPage for better performance (krille-chan) +- refactor: Remove unused code (krille-chan) +- refactor: Remove unused localization strings and add ci check (krille-chan) +- refactor: Replace stories feature with presence status msg (Krille) +- refactor: Spaces UX improvements (krille-chan) +- Translated using Weblate (Arabic) (Rex_sa) +- Translated using Weblate (Basque) (xabirequejo) +- Translated using Weblate (Chinese (Simplified)) (Eric) +- Translated using Weblate (Chinese (Simplified)) (Poesty Li) +- Translated using Weblate (Croatian) (Milo Ivir) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Galician) (josé m) +- Translated using Weblate (German) (Christian) +- Translated using Weblate (German) (nautilusx) +- Translated using Weblate (Hindi) (immodded) +- Translated using Weblate (Italian) (Claudio Maradonna) +- Translated using Weblate (Italian) (Timothy Redaelli) +- Translated using Weblate (Portuguese (Brazil)) (Hermógenes Oliveira) +- Translated using Weblate (Russian) (v1s7) +- Translated using Weblate (Spanish) (José Muñoz) +- Translated using Weblate (Turkish) (Oğuz Ersen) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) + +## v1.16.1 + +Test candidate for the new database. + +## v1.16.0 + +- build: Set olm to 1.3.2 to fix android build (krille-chan) +- build: Update dependencies (krille-chan) +- build: Update flutter_olm (Krille) +- build: Update matrix dart sdk to 0.23.0 (Krille) +- build: Update Matrix Dart SDK to 0.24.0 (Krille) +- build: Update openssl crypto (Krille) +- build: Update to flutter 3.16.2 (krille-chan) +- build: Workaround for broken flutter secure storage on linux (krille-chan) +- chore: Add error report for incorrect recovery key (Krille) +- chore: Always show notification popup on android (krille-chan) +- chore: Do not ship unused emoji font for android and iOS (krille-chan) +- chore: Fetch cached presence (Krille) +- chore: Update pubspec.lock (Krille) +- chore: upgrade flutter to 3.16.0 (lauren n. liberda) +- docs: Fix links to GitHub (Jérémie Roquet) +- feat: Display presences in the app (krille-chan) +- feat: Enable experimental suport for dehydrated devices (Krille) +- feat: Improved UX design for new chat page (krille-chan) +- feat: New UX design for create group chat (krille-chan) +- fix: Block users (krille-chan) +- fix: Blurhash crashes on height 0 (krille-chan) +- fix: Do not hide push if app romm in foreground but is in background (krille-chan) +- fix: Do not scroll up on enter chat (Krille) +- fix: emoji import from ZIP file (The one with the braid) +- fix: Encryption dialog crashes in column mode (krille-chan) +- fix: Error widget spamming with dialogs (Krille) +- fix: fcm patch (lauren n. liberda) +- fix: Glitch in event info dialog (krille-chan) +- fix: message bubble position on desktop devices (The one with the braid) +- fix: navigating back from full screen video (Aryan Arora) +- fix: Only load first pinned event (krille-chan) +- fix: Userbottomsheet crash on some edge cases (krille-chan) +- fix: whatever happens with android native libraries since flutter 3.16 (lauren n. liberda) +- refactor: Check if app is in foreground on pushhelper (krille-chan) +- refactor: Event list (krille-chan) +- refactor: Migrate for Flutter 3.16.0 (Krille) +- refactor: Remove copy dialog before opening links (krille-chan) +- Translated using Weblate (Arabic) (Rex_sa) +- Translated using Weblate (Basque) (xabirequejo) +- Translated using Weblate (Bengali) (Allan Nordhøy) +- Translated using Weblate (Bengali) (Anonymous) +- Translated using Weblate (Bengali) (Graeme Power) +- Translated using Weblate (Bengali) (Joaquim Homrighausen) +- Translated using Weblate (Bengali) (Raatty) +- Translated using Weblate (Bengali) (Sorunome) +- Translated using Weblate (Catalan) (Adolfo Jayme Barrientos) +- Translated using Weblate (Catalan) (Anonymous) +- Translated using Weblate (Catalan) (Auri B.P) +- Translated using Weblate (Catalan) (Joaquim Homrighausen) +- Translated using Weblate (Catalan) (Raatty) +- Translated using Weblate (Chinese (Simplified)) (Anonymous) +- Translated using Weblate (Chinese (Simplified)) (Eric) +- Translated using Weblate (Chinese (Traditional)) (Anonymous) +- Translated using Weblate (Chinese (Traditional)) (Joaquim Homrighausen) +- Translated using Weblate (Chinese (Traditional)) (Raatty) +- Translated using Weblate (Chinese (Traditional)) (SuperSonic) +- Translated using Weblate (Croatian) (Anonymous) +- Translated using Weblate (Czech) (Anonymous) +- Translated using Weblate (Czech) (Tomkoid) +- Translated using Weblate (Esperanto) (Anonymous) +- Translated using Weblate (Esperanto) (Joaquim Homrighausen) +- Translated using Weblate (Esperanto) (Raatty) +- Translated using Weblate (Esperanto) (Tirifto) +- Translated using Weblate (Finnish) (Anonymous) +- Translated using Weblate (French) (Anonymous) +- Translated using Weblate (French) (Mæve Rey) +- Translated using Weblate (Galician) (Anonymous) +- Translated using Weblate (Galician) (josé m) +- Translated using Weblate (German) (Bella) +- Translated using Weblate (German) (Christian) +- Translated using Weblate (Greek) (Anonymous) +- Translated using Weblate (Hebrew) (Anonymous) +- Translated using Weblate (Hebrew) (Joaquim Homrighausen) +- Translated using Weblate (Hebrew) (Raatty) +- Translated using Weblate (Hebrew) (Sorunome) +- Translated using Weblate (Hebrew) (y batvinik) +- Translated using Weblate (Hindi) (Anonymous) +- Translated using Weblate (Hungarian) (Anonymous) +- Translated using Weblate (Hungarian) (Joaquim Homrighausen) +- Translated using Weblate (Hungarian) (notramo) +- Translated using Weblate (Hungarian) (Raatty) +- Translated using Weblate (Indonesian) (Anonymous) +- Translated using Weblate (Irish) (Anonymous) +- Translated using Weblate (Irish) (Graeme Power) +- Translated using Weblate (Irish) (Joaquim Homrighausen) +- Translated using Weblate (Irish) (Raatty) +- Translated using Weblate (Italian) (Anonymous) +- Translated using Weblate (Italian) (J. Lavoie) +- Translated using Weblate (Italian) (Joaquim Homrighausen) +- Translated using Weblate (Italian) (Raatty) +- Translated using Weblate (Japanese) (Anonymous) +- Translated using Weblate (Japanese) (cPidx) +- Translated using Weblate (Korean) (Anonymous) +- Translated using Weblate (Korean) (Kim Tae Kyeong) +- Translated using Weblate (Korean) (Raatty) +- Translated using Weblate (Latvian) (Anonymous) +- Translated using Weblate (Lithuanian) (Anonymous) +- Translated using Weblate (Lithuanian) (Mind) +- Translated using Weblate (Norwegian Bokmål) (Allan Nordhøy) +- Translated using Weblate (Norwegian Bokmål) (Anonymous) +- Translated using Weblate (Norwegian Bokmål) (Joaquim Homrighausen) +- Translated using Weblate (Norwegian Bokmål) (Raatty) +- Translated using Weblate (Occidental) (Anonymous) +- Translated using Weblate (Occidental) (OIS) +- Translated using Weblate (Persian) (Anonymous) +- Translated using Weblate (Polish) (Anonymous) +- Translated using Weblate (Portuguese (Brazil)) (Anonymous) +- Translated using Weblate (Portuguese (Portugal)) (Anonymous) +- Translated using Weblate (Portuguese (Portugal)) (Joaquim Homrighausen) +- Translated using Weblate (Portuguese (Portugal)) (Raatty) +- Translated using Weblate (Portuguese (Portugal)) (Tmpod) +- Translated using Weblate (Portuguese) (Allan Nordhøy) +- Translated using Weblate (Portuguese) (Anonymous) +- Translated using Weblate (Portuguese) (Christian) +- Translated using Weblate (Portuguese) (Graeme Power) +- Translated using Weblate (Portuguese) (Joaquim Homrighausen) +- Translated using Weblate (Portuguese) (Raatty) +- Translated using Weblate (Portuguese) (Sorunome) +- Translated using Weblate (Romanian) (Anonymous) +- Translated using Weblate (Russian) (Anonymous) +- Translated using Weblate (Serbian) (Anonymous) +- Translated using Weblate (Serbian) (Joaquim Homrighausen) +- Translated using Weblate (Serbian) (Raatty) +- Translated using Weblate (Serbian) (Слободан Симић(Slobodan Simić)) +- Translated using Weblate (Slovak) (Allan Nordhøy) +- Translated using Weblate (Slovak) (Anonymous) +- Translated using Weblate (Slovak) (Graeme Power) +- Translated using Weblate (Slovak) (Joaquim Homrighausen) +- Translated using Weblate (Slovak) (Raatty) +- Translated using Weblate (Slovenian) (Anonymous) +- Translated using Weblate (Slovenian) (Joaquim Homrighausen) +- Translated using Weblate (Slovenian) (Raatty) +- Translated using Weblate (Spanish) (Anonymous) +- Translated using Weblate (Spanish) (Joaquim Homrighausen) +- Translated using Weblate (Spanish) (José Muñoz) +- Translated using Weblate (Spanish) (Mæve Rey) +- Translated using Weblate (Spanish) (programmerpony) +- Translated using Weblate (Spanish) (Raatty) +- Translated using Weblate (Swedish) (Anonymous) +- Translated using Weblate (Swedish) (Dennis) +- Translated using Weblate (Swedish) (Fredrik Lindqvist) +- Translated using Weblate (Swedish) (paintwithblue) +- Translated using Weblate (Tamil) (Anonymous) +- Translated using Weblate (Tamil) (Graeme Power) +- Translated using Weblate (Tamil) (Joaquim Homrighausen) +- Translated using Weblate (Tamil) (Raatty) +- Translated using Weblate (Tamil) (Sorunome) +- Translated using Weblate (Thai) (Anonymous) +- Translated using Weblate (Tibetan) (Anonymous) +- Translated using Weblate (Turkish) (Anonymous) +- Translated using Weblate (Turkish) (Yourredyknowwhoitisss) +- Translated using Weblate (Vietnamese) (Allan Nordhøy) +- Translated using Weblate (Vietnamese) (Anonymous) +- Translated using Weblate (Vietnamese) (Christian) +- Translated using Weblate (Vietnamese) (Graeme Power) +- Translated using Weblate (Vietnamese) (Joaquim Homrighausen) +- Translated using Weblate (Vietnamese) (Raatty) +- Translated using Weblate (Vietnamese) (Sorunome) + +## v1.15.1 + +- feat: Make all text in chat selectable on desktop (krille-chan) +- chore: Add border to images in timeline (krille-chan) +- chore: added android audio sharing intent (Aryan Arora) +- fix: Dockerfile: install jq in the builder image (David Douard) +- fix: Cannot pin messages of other users (Krille) +- fix: Emojipicker flickering because noRecent (krille-chan) +- fix: LoadProfileBottomSheet accessing disposed outerContext (Aryan Arora) +- fix: More stable scroll up to event (krille-chan) +- fix: Properly capitalize Linux window title (kramo) +- fix: Remove failed to sent events (krille-chan) +- fix: Routing glitch when using SSO on desktop (krille-chan) +- fix: SSO with no identity providers (krille-chan) +- refactor: Do not init client in background mode on Android (krille-chan) +- refactor: Store and fix missing persistence of some values (krille-chan) +- Translated using Weblate (Arabic) (Rex_sa) +- Translated using Weblate (Basque) (xabirequejo) +- Translated using Weblate (Chinese (Simplified)) (Eric) +- Translated using Weblate (Czech) (Vojtěch Fošnár) +- Translated using Weblate (Dutch) (Jelv) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Finnish) (Aminda Suomalainen) +- Translated using Weblate (German) (Haui) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) + +## v1.15.0 + +- feat: Add experimental todo list for rooms (krille-chan) +- feat: better scroll to last read message handling (krille-chan) +- build: Add appid suffix to android debug builds (krille-chan) +- build: Download canvaskit on build for flutter web (krille-chan) +- build: Update to Flutter 3.13.9 (krille-chan) +- chore: Add descriptions in the areYouSure dialogs for better UX (krille-chan) +- chore: Adjust bitrate for smaller voice messages (krille-chan) +- chore: Change way how to seek in audioplayer (Krille) +- chore: Limit image file and video picker until we have a background service (krille-chan) +- chore: Minor design fixes (Krille) +- design: Make incoming messages color more light (krille-chan) +- design: Make key verification an adaptive dialog (krille-chan) +- design: Make own chat bubble primary color for better contrast (krille-chan) +- fix: Create chat dialog crashes sometimes and power level textfield does not validate input ( + krille-chan) +- fix: Remove uncompatible dependencies connectivity_plus and wakelock (Krille) +- fix: Use correct localization for redactedBy (krille-chan) +- fix: noFCM warning dialog (krille-chan) +- fix: render tg-forward as blockquote style (krille-chan) +- fix: Archive does not update its state +- refactor: Change audio codec to opus where supported to have better compatibility with Element ( + Krille) +- refactor: Make file dialog adaptive and adjust design (krille-chan) +- refactor: Preload notification sound on web (Krille) +- refactor: Remove unused config (krille-chan) +- refactor: Remove unused config params (krille-chan) +- refactor: Update FutureLoadingDialog (krille-chan) +- refactor: use locally hosted canvaskit instead of calling google (root) +- Translated using Weblate (Arabic) (Rex_sa) +- Translated using Weblate (Basque) (xabirequejo) +- Translated using Weblate (Chinese (Simplified)) (Eric) +- Translated using Weblate (Croatian) (Milo Ivir) +- Translated using Weblate (German) (Christian) +- Translated using Weblate (German) (Ettore Atalan) +- Translated using Weblate (Hungarian) (H Tamás) +- Translated using Weblate (Polish) (Tomasz W) +- Translated using Weblate (Russian) (v1s7) +- Translated using Weblate (Slovak) (Jozef Gaal) +- Translated using Weblate (Thai) (Amy/Atius) + +## v1.14.5 + +- Hotfix iOS crashes on start +- Hotfix cannot reset applock + +## v1.14.4 + +Minor bugfix release. Please note that because of a Flutter update FluffyChat is no longer +compatible with iOS 11. + +- Translated using Weblate (Spanish) (José Muñoz) +- Translated using Weblate (Spanish) (Yotta Mxt) +- build: Add custom iOS notification sound (Krille) +- build: Set minimum iOS version to 12 +- design: Hide Navigationbar labels (krille-chan) +- design: New notification sound (krille-chan) +- fix: Flutter warnings because of applock animation (krille-chan) +- fix: UIA requests with navigator (krille-chan) +- fix: open story from push notification (Krille-chan) +- refactor: Only preload client for GUI start (krille-chan) + +## v1.14.3 + +- hotfix app lock still displayed even when account is logged out +- Update to Flutter 3.13.6 + +## v1.14.2 + +- hotfix for broken applock screen + +## v1.14.1 + +- fix: Routing bug when adding second account via password login + +## v1.14.0 + +Release with a lot of bugfixes and refactorings under the hood. FluffyChat now uses go_router +instead of vrouter, works with the newest Flutter SDK and supports "reason" field for redactions. +For Android there is a new "background-fetch mode" for Push Notifications which should make +notifications in background faster and more reliable and reduce battery-usage. + +- feat: Background fetch mode on Android (krille-chan) +- feat: Improved mouse support for selecting events (krille-chan) +- feat: Write and display reason for redacting a message (krille-chan) +- build: Add curl to build packages (krille-chan) +- build: Re-add handywindow linux code lines (Krille) +- build: Update Matrix dart sdk to 0.22.3 (Krille) +- build: Update targetSdkVersion to 33 (Android 13) (Krille) +- build: Update to Flutter 3.13.1 (Krille) +- change: Remove widgets feature (Krille) +- chore: Add tailwind.css to gitignore (Krille) +- chore: Display username in userbottomsheet (krille-chan) +- chore: Make appbar buttons correct size (krille-chan) +- chore: Update file picker (krille-chan) +- ci: Build snap on snapcraft again and only promote from ci (krille-chan) +- ci: Test if app builds for iOS (krille-chan) +- design: Add scale animation hover effects on navrail and story buttons (Krille) +- design: Big redesign of three column mode to advanced two column mode (krille-chan) +- design: Chat list design adjustments (Krille) +- design: Display last story as tiny message bubble in chat list (krille-chan) +- design: Improve invite chat UX (krille-chan) +- design: Move chatbackup in adaptive bottom sheet (krille-chan) +- design: New three column layout for wide screens (krille-chan) +- design: Nicer user bottom sheet (krille-chan) +- design: Redesign style page (Krille) +- docs: Update readme (Krille) +- feat/ChatListItem: small changes (gilice) +- fix: Bootstrap on first try fails sometimes (krille-chan) +- fix: Cancel search on back button tap on android (Krille) +- fix: Do not allow empty search server (krille-chan) +- fix: First story appears to be unencrypted sometimes (krille-chan) +- fix: Remove mpv and zenity to fix linux snap builds (krille-chan) +- fix: Unable to send files from snap version (krille-chan) +- refactor: Change group description to chat description (krille-chan) +- refactor: Make router static (Krille) +- refactor: Migrate from pathsegment routing (Krille) +- refactor: Migrate routes to go router (krille-chan) +- refactor: Remove bubble size slider (Krille) +- refactor: Replace vrouter with gorouter (Krille) +- refactor: Space routes to normal room routes (Krille) +- refactor: Update badge (krille-chan) +- refactor: Update html build files (krille-chan) +- Added translation using Weblate (Toki Pona) (Sollee) +- Deleted translation using Weblate (Toki Pona) (Christian) +- Translated using Weblate (Arabic) (Rex_sa) +- Translated using Weblate (Basque) (xabirequejo) +- Translated using Weblate (Chinese (Simplified)) (Eric) +- Translated using Weblate (Chinese (Simplified)) (Poesty Li) +- Translated using Weblate (Croatian) (Milo Ivir) +- Translated using Weblate (Czech) (Flibble) +- Translated using Weblate (Czech) (Matyáš Caras) +- Translated using Weblate (Dutch) (Jelv) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Galician) (josé m) +- Translated using Weblate (German) (Christian) +- Translated using Weblate (German) (nautilusx) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Japanese) (Christian) +- Translated using Weblate (Russian) (DarkCoder15) +- Translated using Weblate (Russian) (v1s7) +- Translated using Weblate (Turkish) (Oğuz Ersen) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) +- Translated using Weblate (Ukrainian) (Skrripy) + +## v1.13.0 + +- feat: option to not send typing notifications (Bnyro) +- feat: small performance tweaks for Message (gilice) +- feat: New onboarding screen with SSO as first class feature +- feat: Import/Export emoji packs from/to zip file +- fix: Set iOS badge (Krille) +- refactor: Switch the dev hosting platform from GitLab to GitHub +- design: New more compact chat bubble design and other design tweaks +- design: Login now shows SSO more prominent and deprecates in-app registration in favor of SSO + registration +- Translated using Weblate (Arabic) (Rex_sa) +- Translated using Weblate (Chinese (Simplified)) (Poesty Li) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (German) (nautilusx) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) + +## v1.12.0 + +- Added translation using Weblate (Toki Pona) (Mæve Rey) +- Translated using Weblate (Arabic) (Rex_sa) +- Translated using Weblate (Chinese (Simplified)) (Eric) +- Translated using Weblate (Croatian) (Milo Ivir) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Galician) (josé m) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Polish) (lauren n. liberda) +- Translated using Weblate (Romanian) (Riley) +- Translated using Weblate (Russian) (DarkCoder15) +- Translated using Weblate (Spanish) (José Muñoz) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) +- build: Remove dependency overwrite for ffi (Krille) +- build: Update dependencies (Krille) +- builds: Change minsdkversion of Android from 16 to 19 (Krille) +- builds: Do not allow failure for linux x86 (Krille) +- builds: Do not use verbose mode on building linux (Krille) +- builds: Linux with flutter 3.10 (Krille) +- builds: Remove workaround for building linux arm64 (Krille) +- builds: Update file_picker to 5.3.0 (Krille) +- builds: Update flutter table html (Krille) +- builds: Update flutter_html (Krille) +- builds: migrate to dart 3.0/flutter 3.10 (lauren n. liberda) +- chore: Add missing blockquote style (Krille) +- chore: Allow failure in build linux for now (Krille) +- chore: Ask for storage persistence (Krille) +- chore: Clean unused translations (Malin Errenst) +- chore: Enhance room pills (Krille) +- chore: Minor code clean up (Krille) +- chore: Update flutter webrtc (Krille) +- chore: Upgrade to Flutter 3.10.1 (Malin Errenst) +- chore: change release curl calls to use --fail-with-body (Tim Flink) +- chore: update macOS icons and add build script (TheOneWithTheBraid) +- design: Replace anime images with neutral cupertino icons (Krille) +- feat: Add toggle to mute notifications from chat groups (fbievan) +- feat: Allow ruby tags in html (Krille) +- feat: Display progress value for initial sync (Krille) +- feat: Implement new error reporting tool when critical features break like playing audio or video + messages or opening a chat (Krille) +- feat: clean up macOS build metadata (TheOneWithTheBraid) +- feat: set display information correctly (TheOneWithTheBraid) +- feat: update macOS build files (TheOneWithTheBraid) +- feat: update macOS build information for macOS Ventura (TheOneWithTheBraid) +- fix "Unhandled Exception: VRouter.of(context) was called with a context which does not contain a + VRouter." (Lauren N. Liberda) +- fix: Broken arb file (Krille) +- fix: Do not unnecessary request all members in public rooms (Krille) +- fix: Remove wrong rendered linebreak in html (Krille) +- fix: Scroll down button (Krille) +- fix: Scroll up and scroll down buttons in chat list (Krille) +- fix: Scrolldown button (Krille) +- fix: Too long file name cause a render overflow (Skying) +- fix: Try to reload timeline on IOException (Krille) +- fix: User pills (Krille) +- fix: broken CI artifact uploads (TheOneWithTheBraid) +- fix: custom emote placeholder (TheOneWithTheBraid) +- fix: path of libolm (TheOneWithTheBraid) +- fix: Quick account switching (JHansen) +- fix: read reciepts (JHansen) +- perf: Use valuenotifier to not rebuild chatlist (Krille) +- refactor: Reimplement flutter matrix html locally (Krille) +- refactor: Update Roboto and Noto Emoji (The one with the Braid) +- refactor: Use AnimatedSize for FAB (Krille) +- refactor: Use DateTime for weekday localization (Malin Errenst) + +## v1.11.2 + +- Translated using Weblate (Croatian) (Milo Ivir) +- Translated using Weblate (Dutch) (Jelv) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Galician) (josé m) +- Translated using Weblate (Polish) (Eryk Michalak) +- Translated using Weblate (Turkish) (Oğuz Ersen) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) +- feat: Permission dialog before open link in browser (Krille) +- fix: Chats do not load (Krille) + +## v1.11.1 - 2023-04-20 + +- fix: Download files on web and iOS with correct mimetype + +## v1.11.0 - 2023-04-14 + +- feat: Add visual read marker (Krille) +- feat: Jump to last read event (Krille) +- feat: Use fragmented timeline to jump to event (Krille) +- feat: change to flutterwebauth2 (ShootingStarDragons) +- fix: Join public room (Krille) +- fix: Set fcm priority to max on android (Krille) +- refactor: CI scripts and old workarounds for build scripts (Krille) +- refactor: Client in ChatPage (Krille) +- refactor: Not nullable room in ChatPage (Krille) +- refactor: Switch to file_picker package and get rid of some dependency overrides (Krille) +- refactor: Use correct Matrix instance (Krille) +- style: Make emptypage logo bigger (Krille) +- style: Minor adjustments for modal bottom sheets (Krille) +- style: Move chats to top (Krille) +- style: Use SliverList for chatlist (Krille) +- refactor: Container -> SizedBox.shrink() (noob_tea) +- Translated using Weblate (Chinese (Simplified)) (Eric) +- Translated using Weblate (Dutch) (Jelv) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (French) (Anne Onyme 017) +- Translated using Weblate (Galician) (josé m) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Persian) (Parsa) +- Translated using Weblate (Persian) (Siavash) +- Translated using Weblate (Polish) (Luna) +- Translated using Weblate (Swedish) (Kristoffer Grundström) +- Translated using Weblate (Turkish) (Oğuz Ersen) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) + +## v1.10.0 - 2023-02-25 + +- Added translation using Weblate (Thai) (Wphaoka) +- Added translation using Weblate (Tibetan) (Nathan Freitas) +- Default hardcoded message when l10n is not available (fabienli) +- Fix: The stable repo fingerprint (TODO the qr-code should be updated) (machiav3lli) +- Translated using Weblate (Basque) (xabirequejo) +- Translated using Weblate (Dutch) (Jelv) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (French) (Anne Onyme 017) +- Translated using Weblate (Galician) (josé m) +- Translated using Weblate (Galician) (josé m) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Japanese) (Suguru Hirahara) +- Translated using Weblate (Persian) (Farooq Karimi Zadeh) +- Translated using Weblate (Swedish) (Joaquim Homrighausen) +- Translated using Weblate (Turkish) (Oğuz Ersen) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) +- chore: Disable stable for web until script is fixed (Krille) +- chore: Display warning when logout without backup (Krille) +- chore: Downgrade flutter CI version (Krille) +- chore: Follow up audioplayer on linux (Krille) +- chore: Follow up chat encryption desgin (Krille) +- chore: Follow up fix audioplayer on android (Christian Pauly) +- chore: Follow up formatting (Christian Pauly) +- chore: Follow up formatting (Krille) +- chore: Follow up remove hero animation (Krille) +- chore: Follow up secrity settings design (Krille) +- chore: Follow up settings page (Krille) +- chore: Follow up settings page design (Christian Pauly) +- chore: Follow up style adjustments (Krille) +- chore: Lookup l10n in pushhelper if null (Krille) +- chore: Update matrix package to 0.17.0 (Krille) +- chore: Update to Flutter 3.7.1 (Krille) +- docs/qr-stable.svg: update the QR code (Aminda Suomalainen) +- feat: Enable audioplayer for web and linux (Christian Pauly) +- fix: Display error when user tries to send too large file (Christian Pauly) +- refactor: Do only instantiate AudioPlayer() object when in use (Christian Pauly) +- refactor: Remove syncstatus verbose logs (Christian Pauly) +- refactor: Store cached files in tmp directory so OS will clear file cache from time to time ( + Krille) +- style: Adjust key verification dialog (Christian Pauly) +- style: Bootstrap design adjustments (Christian Pauly) +- style: Encryption page adjustments (Christian Pauly) +- style: Enhance user device settings design (Krille) +- style: Enhanced chat details design (Krille) +- style: Give chat list list tiles rounded corners (Krille) +- style: Link underline color (Christian Pauly) +- style: Make adaptive bottom sheets scrollable by default (Krille) +- style: Make invite page more pretty (Krille) +- style: New settings design (Krille) +- style: Nicer chips in encryption settings and icons showing device status (Krille) +- style: Use emojis on web as well (Christian Pauly) +- style: Use robotomono to display device keys (Christian Pauly) +- utils/url_launcher: force opening http(s) links in external browser (Marcus Hoffmann) + +## v1.9.0 - 2023-01-29 + +- Translated using Weblate (Czech) (Michal Bedáň) +- Translated using Weblate (Czech) (grreby) +- Translated using Weblate (Dutch) (Jelv) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Galician) (josé m) +- Translated using Weblate (German) (Christian) +- Translated using Weblate (German) (Vri 🌈) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Korean) (Youngbin Han) +- Translated using Weblate (Polish) (Wiktor) +- Translated using Weblate (Turkish) (Oğuz Ersen) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) +- chore: Change invite link textfield label (Krille) +- chore: Remove unused dependency (Krille) +- chore: Remove unused translations (Krille) +- chore: Update Matrix SDK and refactor (Krille) +- chore: Update dependencies (Krille) +- chore: Update flutter_map (Krille) +- chore: add integration tests (TheOneWithTheBraid) +- chore: add integration tests for spaces (TheOneWithTheBraid) +- design: More clear chat background and rounded popup menu (Krille) +- design: Nicer navigationrail (Krille) +- design: Upgrade to Flutter 3.7 +- feat: Bring back disabling the header bar on Linux desktop (q234rty) +- feat: Nicer design for abandonded DM rooms (Christian Pauly) +- fix: Archive (Krille) +- fix: Shared preferences package for flutter 3.7 (Christian Pauly) +- fix: permission of web builds (TheOneWithTheBraid) +- fix: Notification Settings (Krille) +- refactor: Migrate to Flutter 3.7.0 (Christian Pauly) +- refactor: Same animations everywhere in app (Krille) +- refactor: Stories header with futurebuilder (Krille) +- refactor: disable some redundant tests (TheOneWithTheBraid) +- style: Animate in out search results (Krille) +- style: New modal bottom sheets (Krille) +- style: Redesign public room bottomsheets (Krille) + +## v1.8.0 2022-12-30 + +- Added translation using Weblate (Yue (yue_HK)) (Raatty) +- Translated using Weblate (Chinese (Simplified)) (Mike Evans) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (French) (Anne Onyme 017) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Turkish) (Oğuz Ersen) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) +- design: New encryption page (Krille Fear) +- feat: Add audio message support to linux (Krille Fear) +- feat: Use Android system accent color (Krille Fear) +- feat: include olm to Windows builds (TheOneWithTheBraid) +- feat: Store drafts (Krille) +- fix: Android push notification follow-up (TheOneWithTheBraid) +- fix: Content banner (Krille Fear) +- fix: Correct redacted by username (Krille Fear) +- fix: Do not setup push on every app resume (Krille Fear) +- fix: Encryption button is orange in public rooms (Krille Fear) +- fix: File event design (Krille Fear) +- fix: Hide google services warning after marked (Krille Fear) +- fix: Improve story page appearance (Reinhart Previano Koentjoro) +- fix: Libhandy windows (Krille Fear) +- fix: Monochromatic icon rendering for Android 13+ (Reinhart Previano Koentjoro) +- fix: homeserver error text not visible in app bar (TheOneWithTheBraid) +- fix: minor issues in room list (TheOneWithTheBraid) + +## v1.7.2 2022-12-19 + +Update dependencies and translations. + +## v1.7.1 2022-11-23 + +Minor bugfix release to retrigger build for FlatPak and Android. Fixes some style bugs and updates +some translations + +## v1.7.0 2022-11-17 + +FluffyChat 1.7.0 features a new way to work with spaces via a bottom navigation bar. A lot of work +has also been done under the hood to make the app faster and more stable. The main color has +slightly changed and the design got some finetuning. + +- chore: Add keys to roomlist and stories header (Christian Pauly) +- chore: Add unread badge to navigation rail and adjust design (Christian Pauly) +- chore: Adjust colors (Christian Pauly) +- chore: Better design chat list items (Christian Pauly) +- chore: Better load first client (Christian Pauly) +- design: Hide unimportant state events instead of folding (Christian Pauly) +- design: Improve login design (Krille Fear) +- design: Nicer display notification short texts (Christian Pauly) +- feat: background and terminated calls [android] (td) +- feat: New navigation design (Christian Pauly) +- fix: Hide password at login page (Krille Fear) +- fix: Import session on iOS (Christian Pauly) +- fix: incorrect setState inside setState in ChatListController (td) +- fix: Password not obscure for a second when submitting login textfield (Christian Pauly) +- fix: Popup menu without elevation (Christian Pauly) +- fix: Push error message (Christian Pauly) +- fix: Remove emoji picker workaround (Christian Pauly) +- fix: Set theme after start app (Christian Pauly) +- fix: Settings profile picture (Christian Pauly) +- fix: Share files (Christian Pauly) +- fix: UIA request handler (Christian Pauly) +- fix: Update emoji picker for web and desktop (Christian Pauly) +- improved (most) icons/image scaling, including avatar scaling (Mg138) +- Mention Element instead of Riot (Has been renamed about a year ago) (jooooscha) +- refactor: Chat list body code (Christian Pauly) +- refactor: Minor chatlist refactoring (Christian Pauly) +- refactor: No longer need selected of chat list tile (Christian Pauly) +- refactor: Remove unused dependencies (Krille Fear) +- Added translation using Weblate (Hindi) (Hemish) +- Added translation using Weblate (Occidental) (OIS) +- Translated using Weblate (Basque) (xabirequejo) +- Translated using Weblate (Chinese (Simplified)) (Eric) +- Translated using Weblate (Chinese (Simplified)) (Raatty) +- Translated using Weblate (Dutch) (Jelv) +- Translated using Weblate (English) (Raatty) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Estonian) (Raatty) +- Translated using Weblate (Finnish) (Aminda Suomalainen) +- Translated using Weblate (Finnish) (Raatty) +- Translated using Weblate (French) (Anne Onyme 017) +- Translated using Weblate (Galician) (Xosé M) +- Translated using Weblate (German) (Jana) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Lithuanian) (Anonimas) +- Translated using Weblate (Occidental) (OIS) +- Translated using Weblate (Persian) (Anastázius Darián) +- Translated using Weblate (Persian) (Anastázius Kaejatídarján) +- Translated using Weblate (Persian) (Seyedmahdi Moosavyan) +- Translated using Weblate (Russian) (Nikita Epifanov) +- Translated using Weblate (Turkish) (Oğuz Ersen) +- Translated using Weblate (Turkish) (Raatty) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) +- Translated using Weblate (Ukrainian) (Raatty) + +## v1.6.4 - 2022-09-08 + +- Translated using Weblate (Chinese (Simplified)) (Eric) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Galician) (Xosé M) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Slovak) (Marek Ľach) +- Translated using Weblate (Turkish) (Oğuz Ersen) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) +- chore: Adjust bubble color in dark mode (Christian Pauly) +- chore: Update matrix sdk (Christian Pauly) +- chore: Update to flutter 3.3.0 (Christian Pauly) +- feat: Automatic key requests and better key error dialog (Christian Pauly) +- fix: Styling and notification settings (Christian Pauly) +- fix: add missing command localizations (Christian Pauly) + +## v1.6.3 - 2022-08-25 + +- Translated using Weblate (Chinese (Simplified)) (Eric) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Finnish) (Aminda Suomalainen) +- Translated using Weblate (Russian) (Sergey Shavin) +- Translated using Weblate (Turkish) (Oğuz Ersen) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) +- chore: Migrate back to flutter hive collections (Christian Pauly) +- chore: Update provider package and remove dep override (Christian Pauly) +- fix: Do not display push events for unknown event types (Christian Pauly) +- refactor: App widget (Christian Pauly) + +## v1.6.0 - 2022-07-31 + +FluffyChat 1.6.0 features a lot of bug fixes and improvements. The code base has been +simplified and the drawer on the chat list page got a come-back. Some new features like +the space hierarchy and session dump have been implemented. + +- feat: Added monochrome entry for themed icon support in Android 13 (James Reilly) +- feat: Display timeline of messages in android notification (Christian Pauly) +- feat: Emoji related fixes (TheOneWithTheBraid) +- feat: Implement deleting pushers in app (Christian Pauly) +- feat: New material 3 design (Christian Pauly) +- feat: Redesign bootsstrap and offer secure storage support (Christian Pauly) +- feat: Send multiple images at once (Christian Pauly) +- feat: implement session dump (TheOneWithTheBraid) +- feat: implement space hierarchy (TheOneWithTheBraid) +- feat: introduce extended integration tests (TheOneWithTheBraid) +- feat: libhandy integration (TheOneWithTheBraid) +- fix: Clearing push triggered when only one room got seen (Christian Pauly) +- fix: Dont display loading dialog when adding reaction (Christian Pauly) +- fix: Follow up for spaces hierarchy (TheOneWithTheBraid) +- fix: Missing null checks in chat details view (Christian Pauly) +- fix: Non FCM Android builds crash on start (Christian Pauly) +- fix: Permission chooser dialog on iOS (Christian Pauly) +- fix: Set avatar on only single action available (Christian Pauly) +- fix: Sharing on iOS and iPad (Christian Pauly) +- fix: Unread bubble is invisible in dark mode (Christian Pauly) +- fix: appimage builds (TheOneWithTheBraid) +- fix: only use custom http client on android (Jayesh Nirve) +- fix: pass isrg cert to http client (Jayesh Nirve) +- refactor: Chat view (Christian Pauly) +- refactor: Encryption button (Christian Pauly) +- refactor: Remove duplicated imports (Christian Pauly) +- refactor: Remove legacy store (Christian Pauly) +- refactor: Remove presence status feature (Christian Pauly) +- refactor: Simplify MxcImage and replace CachedNetworkImage (Christian Pauly) +- refactor: Switch to Hive Collections DB (Christian Pauly) +- refactor: move start chat FAB to implementation file (TheOneWithTheBraid) +- Translated using Weblate (Catalan) (Alfonso Montero López) +- Translated using Weblate (Catalan) (Auri B.P) +- Translated using Weblate (Chinese (Simplified)) (Eric) +- Translated using Weblate (Croatian) (Milo Ivir) +- Translated using Weblate (Dutch) (Jelv) +- Translated using Weblate (English) (Raatty) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Finnish) (Aminda Suomalainen) +- Translated using Weblate (Galician) (Xosé M) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Persian) (Amir Hossein Maher) +- Translated using Weblate (Polish) (Przemysław Romanik) +- Translated using Weblate (Russian) (Nikita Epifanov) +- Translated using Weblate (Turkish) (Oğuz Ersen) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) +- chore: Add border to avatars (Christian Pauly) +- chore: Add fancy hero animations (Christian Pauly) +- chore: Adjust appbar design (Christian Pauly) +- chore: Adjust design (Christian Pauly) +- chore: Adjust search bar design (Christian Pauly) +- chore: Always display header elevation in chat (Christian Pauly) +- chore: Design follow up fixes (Christian Pauly) +- chore: Design follow up fixes (Christian Pauly) +- chore: Disable integration tests without runners (Krille Fear) +- chore: Enhance invitiation UX (Christian Pauly) +- chore: Make push helper more fail safe (Christian Pauly) +- chore: Make push helper more stable (Christian Pauly) +- chore: Minor design improvements (Christian Pauly) +- chore: Pinned events design (Christian Pauly) +- chore: Remove permission handler dependency and increase compileSdkVersion (Christian Pauly) +- chore: Switch to flutter 3.0.5 (Krille Fear) +- chore: Update SDK (Christian Pauly) +- chore: remove snapping sheet (TheOneWithTheBraid) + +## v1.5.0 - 2022-06-03 + +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) +- feat: Better sign up UX and allow signup without password (Christian Pauly) +- feat: Initial material you support (Christian Pauly) +- feat: include Synapse into integration test (TheOneWithTheBraid) +- fix: Broken dynamic color palette (Christian Pauly) +- fix: Build on iOS emulator (Christian Pauly) +- fix: Missing bottom padding in text only stories (Christian Pauly) +- fix: Send sticker without blocking the UI (Christian Pauly) +- fix: Sentry switch being broken (Sorunome) +- fix: add new Play patch (TheOneWithTheBraid) +- fix: handle matrix.to prefix when starting chat (TheOneWithTheBraid) +- fix: minor design bugs (TheOneWithTheBraid) +- fix: privacy in sign up (TheOneWithTheBraid) +- fix: properly set app title in embedder (TheOneWithTheBraid) +- fix: proprietory classes included into build (TheOneWithTheBraid) +- fix: remove proprietary classes from build (TheOneWithTheBraid) +- refactor: Sharing intent (Christian Pauly) +- refactor: Stories header (Christian Pauly) +- refactor: Update Matrix SDK (Christian Pauly) +- refactor: Upgrade to Flutter 3.0.0 (Christian Pauly) +- Translated using Weblate (Basque) (—X—) +- Translated using Weblate (Chinese (Simplified)) (Eric) +- Translated using Weblate (Croatian) (Milo Ivir) +- Translated using Weblate (Czech) (Milan Korecky) +- Translated using Weblate (Dutch) (Jelv) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Galician) (Xosé M) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Lithuanian) (Mind) +- Translated using Weblate (Portuguese (Brazil)) (Hermógenes Oliveira) +- Translated using Weblate (Portuguese (Brazil)) (mmagian) +- Translated using Weblate (Russian) (Nikita Epifanov) +- Translated using Weblate (Turkish) (Oğuz Ersen) + +## v1.4.0 - 2022-04-23 + +- design: Display icon for failed sent messages (Krille Fear) +- design: Display own stories at first place and combine with new stories button (Krille Fear) +- feat: Add "Show related DMs in spaces" settings (20kdc) +- feat: Better image sending experience (Krille Fear) +- feat: Display event timestamp if selected (Krille Fear) +- feat: Faster image resizing (Krille Fear) +- feat: Groups and Direct Chats virtual spaces option (20kdc) +- feat: New onboarding design (Krille Fear) +- feat: Onboarding with dynamic homeservers from joinmatrix.org (Krille Fear) +- feat: Play audio messages in stories (Krille Fear) +- feat: Use native imaging for much faster thumbnail calc on mobile (Krille Fear) +- feat: add Dockerfile for nginx/web builds (TheOneWithTheBraid) +- feat: allow to create widgets (TheOneWithTheBraid) +- feat: remove diacritics (henri2h) +- feat: irish language support (Graeme Power) +- feat: Enable screensharing on Mobile +- feat: support AppImage builds +- feat: Improve spaces design +- fix: Android theme is not auto updating when system theme changes (Krille Fear) +- fix: Chat view becomes gray for a second on sending reaction (Krille Fear) +- fix: Don't request new thumbnail resolution on every window resize (Samuel Mezger) +- fix: Dont display own failed-to-send events in stories (Krille Fear) +- fix: Hide markdown in chat list preview and local notifications (Krille Fear) +- fix: Hide pinned events if event is not accessable or loading (Krille Fear) +- fix: Image sending (Krille Fear) +- fix: Make audioplayer waveforms thinner and better clickable (Krille Fear) +- fix: Some story layout bugs (Krille Fear) +- fix: Widgets dialog crashes (Krille Fear) +- fix: login form supports switching fields via tab (Philip Molares) +- Added translation using Weblate (Lithuanian) (Mind) +- Translated using Weblate (Chinese (Simplified)) (Eric) +- Translated using Weblate (Croatian) (Milo Ivir) +- Translated using Weblate (Dutch) (Jelv) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Finnish) (Aminda Suomalainen) +- Translated using Weblate (French) (Anne Onyme 017) +- Translated using Weblate (Galician) (Xosé M) +- Translated using Weblate (German) (Krille) +- Translated using Weblate (German) (qwerty287) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Japanese) (Krille) +- Translated using Weblate (Lithuanian) (Mind) +- Translated using Weblate (Portuguese (Brazil)) (Hermógenes Oliveira) +- Translated using Weblate (Russian) (Arbo_Leet) +- Translated using Weblate (Russian) (Nikita Epifanov) +- Translated using Weblate (Russian) (alekseishaklov) +- Translated using Weblate (Swedish) (Joaquim Homrighausen) +- Translated using Weblate (Turkish) (Oğuz Ersen) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) +- Update TRANSLATORS_GUIDE.md to have improved punctuation, capitalization (Scott Anecito) +- chore: Add initial integration tests (Krille Fear) +- refactor: New push (Krille Fear) + +## v1.3.1 - 2022-03-20 + +- Allow app to be moved to external storage (Marcel) +- Translated using Weblate (Arabic) (Mads Louis) +- Translated using Weblate (Basque) (Sorunome) +- Translated using Weblate (Basque) (—X—) +- Translated using Weblate (Chinese (Simplified)) (Eric) +- Translated using Weblate (Czech) (Sorunome) +- Translated using Weblate (Dutch) (Jelv) +- Translated using Weblate (English) (Raatty) +- Translated using Weblate (French) (Anne Onyme 017) +- Translated using Weblate (Galician) (Xosé M) +- Translated using Weblate (German) (Maciej Krüger) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Irish) (Graeme Power) +- Translated using Weblate (Persian) (Anastázius Darián) +- Translated using Weblate (Russian) (Nikita Epifanov) +- Translated using Weblate (Swedish) (Joaquim Homrighausen) +- Translated using Weblate (Turkish) (Oğuz Ersen) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) +- Update proguard rules to a more modern setup (MTRNord) +- chore: Minor story viewer fixes (Krille Fear) +- chore: Remove story line count and make answering to stories online (Krille Fear) +- chore: Update dependencies (Dependency Update Bot) +- design: Make pinned events use less vertical space (Krille Fear) +- feat: Extended stories (Krille Fear) +- feat: Restrict map zoom to tile server capabilities (Marcel) +- feat: implement keyboard shortcuts (TheOneWithTheBraid) +- fix: Build on macOS (Krille Fear) +- fix: Emojipicker issues (Krille Fear) +- fix: Hide redacted stories (Krille Fear) +- fix: Mark story as read (Krille Fear) +- fix: Open room from notification click produces errors (Krille Fear) +- fix: SSO on Android 12 (Krille Fear) +- fix: Send read receipts on all taps (Krille Fear) +- fix: make fluffy usable at 720 px wide (Raatty) +- fix: Add forgotten sendOnEnter (Krille Fear) +- refactor: Switch to just audio for playing sounds (Krille Fear) + +## v1.3.0 - 2022-02-12 + +FluffyChat 1.3.0 makes it possible to report offensive users to server admins (not only messages). +It fixes +the video player, improves Linux desktop notifications, and the stories design. + +The button to create a new story is now in the app bar of the main page so that users who don't want +to use +this feature no longer have a whole list item pinned at the top of the chat list. + +FluffyChat 1.3.0 is the first release with full null safe dart code. While this is a huge change +under the +hood, it should improve the stability and performance of the app. It also builds now with Flutter +2.10. + +Thanks to all contributors and translators!! <3 + +- Translated using Weblate (Arabic) (abidin toumi) +- Translated using Weblate (Chinese (Simplified)) (Eric) +- Translated using Weblate (Croatian) (Milo Ivir) +- Translated using Weblate (Czech) (Milan Korecky) +- Translated using Weblate (Dutch) (Jelv) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (French) (Anne Onyme 017) +- Translated using Weblate (Galician) (Xosé M) +- Translated using Weblate (German) (Krille) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Russian) (Nikita Epifanov) +- Translated using Weblate (Swedish) (Joaquim Homrighausen) +- Translated using Weblate (Turkish) (Oğuz Ersen) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) +- chore: Add missing link (Krille Fear) +- chore: Hide FAB story buttons on focus (Krille Fear) +- chore: Set compileSdkVersion to 31 (Krille Fear) +- chore: Update SDK (Krille Fear) +- chore: Update dependencies (Dependency Update Bot) +- chore: Update privacy (Krille Fear) +- chore: Upgrade to Flutter 2.10 (Krille Fear) +- ci: Update olm download link (Krille Fear) +- design: Improve create story page design (Krille Fear) +- design: Improve story header design (Krille Fear) +- design: Use IconButton instead of listTile for first story (Krille Fear) +- feat: Add button to report offensive users to server admins (Krille Fear) +- feat: Open chat button from Linux notification (Krille Fear) +- feat: implement retreiving widgets (TheOneWithTheBraid) +- fix: Set image width and height (Krille Fear) +- fix: Videoplayer filenames (Krille Fear) +- fix: cast error in html messages (Jayesh Nirve) +- fix: linux snap notification avatar (Krille Fear) +- fix: suggestions menu and use empty map in html messages null return (Jayesh Nirve) +- refactor: Migrate to null safety (Krille Fear) + +## v1.2.0 - 2022-01-27 + +FluffyChat 1.2.0 brings a new stories feature, a lot of bug fixes and improved +voice messages. + +- change: Set client ID in invite action link (Krille Fear) +- design: Improved animations in chat view when changing account (The one with the Braid) +- design: Remove redundant voice message button (S1m) +- design: Use more adaptive elements (Krille Fear) +- feat: Add button to record a video on Android (S1m) +- feat: Add static + button to pick reaction (S1m) +- feat: Better in app video player (Krille Fear) +- feat: Enable compression and thumbnails for videos (Krille Fear) +- feat: Nicer file event design (Krille Fear) +- feat: Recording dialog with displaying amplitude (Krille Fear) +- feat: Remember homeserver on search page (Krille Fear) +- feat: Save files images and videos (Krille Fear) +- feat: Settings for stories (Krille Fear) +- feat: Share to story (Krille Fear) +- feat: Stories (Krille Fear) +- fix: Add missing routes (Krille Fear) +- fix: Better thumbnails (Krille Fear) +- fix: Do not setup UP if init from an UP action (S1m) +- fix: linux notifications (Raatty) +- fix: Play video without thumbnail if none (S1m) +- fix: Show message bubble on download only video attachments (Drews Clausen) +- fix: Show scrollDownButton only if selectedEvents is empty (S1m) +- fix: Snapcraft image (Krille Fear) +- fix: Snapcraft.yaml (Krille Fear) +- fix: Use system fonts except for desktop (Krille Fear) +- fix: Video playback on iOS (John Francis Sukamto) +- fix: Videoplayer (Krille Fear) +- followup: Improve stories (Krille Fear) +- Improve website SEO tagging (Marcel) +- Increase font size granularity (S1m) +- refactor: /command hints add tooltips, test for missing hints, script to generate glue code, hints + for dm, create, clearcache, discardsession (Steef Hegeman) +- refactor: Make more files null safe (Krille Fear) +- refactor: Make style settings null safe (Krille Fear) +- systemNavigationBarColor ← appBar.backgroundColor (Steef Hegeman) +- Translated using Weblate (Chinese (Simplified)) (Eric) +- Translated using Weblate (Chinese (Simplified)) (Lynn Nakanishi Lin(林中西)) +- Translated using Weblate (Chinese (Traditional)) (Lynn Nakanishi Lin(林中西)) +- Translated using Weblate (Croatian) (Milo Ivir) +- Translated using Weblate (Czech) (Milan Korecky) +- Translated using Weblate (Dutch) (Jelv) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Finnish) (Aminda Suomalainen) +- Translated using Weblate (French) (Anne Onyme 017) +- Translated using Weblate (Galician) (Xosé M) +- Translated using Weblate (German) (Krille) +- Translated using Weblate (German) (Jana) +- Translated using Weblate (German) (TeemoCell) +- Translated using Weblate (Hebrew) (MusiCode1) +- Translated using Weblate (Hebrew) (y batvinik) +- Translated using Weblate (Hungarian) (Balázs Meskó) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Korean) (Kim Tae Kyeong) +- Translated using Weblate (Polish) (KSP Atlas) +- Translated using Weblate (Russian) (Nikita Epifanov) +- Translated using Weblate (Slovenian) (John Jazbec) +- Translated using Weblate (Spanish) (Valentino) +- Translated using Weblate (Turkish) (Oğuz Ersen) +- Translated using Weblate (Ukrainian) (Ihor Hordiichuk) + +## v1.1.0 - 2021-12-08 + +- CI: Add candidate release pipeline (Krille Fear) +- Translated using Weblate (Dutch) (Jelv) +- Translated using Weblate (Estonian) (Priit Jõerüüt) +- Translated using Weblate (Finnish) (Mikaela Suomalainen) +- Translated using Weblate (Finnish) (Mikaela Suomalainen) +- Translated using Weblate (Indonesian) (Linerly) +- Translated using Weblate (Korean) (Kim Tae Kyeong) +- Translated using Weblate (Norwegian Bokmål) (Gigaa) +- Translated using Weblate (Norwegian Bokmål) (Raatty) +- change: Do not compress very small images (Krille Fear) +- chore: Update Matrix SDK (Krille Fear) +- design: Make not joined participants transparent in list (Krille Fear) +- docs: Fix screenshots on website (Krille Fear) +- fix: Update dependencies with flutter pub upgrade (Krille Fear) +- fix: Well known lookup at login (Krille Fear) +- refactor: Make most of the utils null safe (Krille Fear) +- refactor: Make send file dialog null safe (Krille Fear) +- refactor: Make user device list item null safe (Krille Fear) + +## v1.0.0 - 2021-11-29 + +- design: Chat backup dialog as a banner +- design: Encrypted by design, all users valid is normal not green +- design: Move video call button to menu +- design: Display edit marker in new bubbles +- design: Floating input bar +- design: Minor color changes +- design: Move device ID to menu +- design: Place share button under qr code +- design: Redesign and simplify bootstrap +- design: Remove cupertino icons +- feat: Display typing indicators with gif +- feat: Fancy chat list loading animation +- feat: New database backend with FluffyBox +- feat: Make the main color editable for users +- feat: Move styles one settings level up +- feat: Multiple mute, pin and mark unread +- feat: New chat design +- feat: New chat details design +- feat: New Public room bottom sheet +- feat: New settings design +- feat: Nicer images, stickers and videos +- feat: nicer loading bar +- feat: Open im.fluffychat uris +- feat: Redesign multiaccounts and spaces +- feat: Redesign start page +- feat: Send reactions to multiple events +- feat: Speed up app start +- feat: Use SalomonBottomBar +- feat: Drag&Drop to send multiple files on desktop and web +- fix: Adjust color +- fix: Automatic key requests +- fix: Bootstrap loop +- fix: Chat background +- fix: Chat list flickering +- fix: Contrast in dark mode +- fix: Crash when there is no prev message +- fix: Do display error image widget +- fix: Do not display bottombar in selectmode +- fix: Dont enable encryption with bots +- fix: Dont loose selected events +- fix: Dont rerun server checks +- fix: download path for saving files +- fix: Hide FAB in new chat page if textfield has focus +- fix: Let bottom space bar scroll +- fix: Load spaces on app start +- fix: Only mark unread if actually marked +- fix: Public room design +- fix: Remove avatar from room +- fix: Remove broken docker job +- fix: Report sync status error +- fix: Self sign while bootstrap +- fix: Sender name prefix in DM rooms +- fix: Set room avatar +- fix: Various multiaccount fixes +- fix: Wrong version in snap packages + +## v0.42.2 - 2021-11-04 + +Minor bugfix release which fixes signing up on matrix.org and make FluffyChats voice messages +playable in Element. + +- feat: Nicer registration form +- feat: Nicer audio message design and send duration +- fix: Signup on matrix.org +- fix: Mark voice messages with msc3245 +- fix: Play response voice messages +- fix: Crash on logout + +## v0.42.1 - 2021-10-26 + +Minor bugfix release. + +- feat: Ignore users directly from bottom sheet +- fix: Open an existing direct chat via invite link/QR scanning +- fix: Small fix for uia request +- fix: Enable E2EE by default in all start chat cases +- update: Translations - Thanks to all translators <3 +- design: Make homepicker page nicer + +## v0.42.0 - 2021-10-14 + +This release fixes several bugs and makes E2EE enabled by default. + +- feat: Enable E2EE by default for new rooms +- feat: Display all private rooms without encryption as red +- feat: New design for bootstrap +- feat: New design for emoji verification +- feat: Display own MXID in the settings +- feat: More finetuning for font sizes +- chore: Updated translations (Thanks to all translators!) +- fix: App crash on logout +- fix: Temporary disable sign-up for matrix.org (Currently gives "500: Internal Server Error" while + FluffyChat **should** send the same requests like Element) +- fix: Implement Roboto font to fix font issues on Linux Desktop and mobile +- fix: QR Code scanning + +## v0.41.3 - 2021-10-08 + +Minor bugfix release. + +- fix: Last space is not visible +- chore: Google services disabled by default for F-Droid + +## v0.41.1 - 2021-09-15 + +Minor bugfix release. + +- fix: Start up time waits for first sync +- fix: Registration -> matrix.org responses with 500 +- fix: Wellknown look up for multi accounts + +And some other minor bugs. + +## v0.41.0 - 2021-09-14 + +This release features a lot of bug fixes and the new multi account feature which also include +account bundles. + +- feat: Multiple accounts +- feat: New splash screen +- fix: Password reset +- fix: Dark text in cupertinodialogs +- fix: Voice messages on iOS +- fix: Emote settings +- chore: update flutter_matrix_html, Matrix Dart SDK and other libraries +- chore: Update to Flutter 2.5.1 +- chore: Updated translations + +## v0.40.1 - 2021-09-14 + +Minor bug fixes. + +## v0.40.0 - 2021-09-13 + +This release contains a security fix. Red more about it +here: https://matrix.org/blog/2021/09/13/vulnerability-disclosure-key-sharing + +- New in-app registration +- Design improvements +- Minor fixes + +## v0.39.0 - 2021-08-30 + +- Hotfix a bug which produces problems in downloading files and playing audios +- Hotfix a bug which breaks device management + +## v0.39.0 - 2021-08-28 + +This release fixes a bug which makes it impossible to send images in unencrypted rooms. It also +implements a complete new designed new chat page which now uses a QR code based workflow to start a +new chat. + +- feat: Dismiss keyboard on scroll in iOS +- feat: Implement QR code scanner +- feat: New design for new chat page +- feat: Use the stripped body for notifications and room previews +- feat: Send on enter configuration for mobile devices +- fix: Prefix of notification text +- fix: Display space as room if it contains unread events in timeline +- fix: missing null check +- fix: Open matrix.to urls +- fix: Padding and colors +- fix: Sharing invite link +- fix: Unread bubbles on iOS +- fix: Sending images in unencrypted rooms + +## v0.38.0 - 2021-08-22 + +This release adds more functionality for spaces, enhances the html viewer, adds a brand new video +player and brings some improvements for voice messages. Thanks to everyone involved! + +### All changes: + +- change: Nicer design for selecting items +- change: Placeholder at username login field should be just username +- chore: cleanup no longer used translation strings +- chore: switch image_picker back to upstream +- chore: update flutter_matrix_html +- chore: Update matrix sdk to 0.3.1 +- feat: Add option to not autoplay stickers and emotes +- feat: Add remove rooms to and from spaces +- feat: Add video player +- feat: Cupertino style record dialog +- feat: Display amplitude +- feat: Implement official emoji translations for emoji verification +- feat: Nicer displaying of verification requests in the timeline +- fix: Allow fallback to previous url if there is no homeserver on the mxid domain +- fix: Correctly size the unread bubble in the room list +- fix: Design of invite rooms +- fix: Disable autocorrect for the homeserver url field +- fix: Disable broken audioplayer for web +- fix: Display loading dialog on start DM +- fix: Dont add/remove DMs to space +- fix: Empty timelines crashing the room view +- fix: excessive CPU usage on Windows, as described + in https://github.com/flutter/flutter/issues/78517#issuecomment-846436695 +- fix: Joining room aliases not published into the room directory +- fix: Keep display alive while recording +- fix: Load space members to display DM rooms +- fix: Make translations use plural forms +- fix: Re-add login fixes with the new SDK +- fix: Reply with voice messages +- fix: Report content localizations +- fix: Requirements when to display report event button +- fix: too long file names +- fix: Try different directories on all kind of errors thrown for hive store +- fix: Use plural string in translation +- fix: use vrouter.toSegments +- fix: Wait for sync before enter a room a user has got invited +- fix: wallpaper on linux +- fix: Wrap login form into `AutofillGroup` + +## v0.37.0 - 2021-08-06 + +- Implement location sharing +- Updated translations +- Improved spaces support +- Minor bug fixes + +## v0.36.2 - 2021-08-03 + +Hotfix a routing problem on web and desktop + +## v0.36.1 - 2021-08-03 + +- Hotfix uploading to many OTKs +- Implement initial spaces UI + +## v0.36.0 - 2021-07-31 + +Minor design improvements and bug fixes. + +### All changes: + +* design: Make unread listtiles more visible +* design: Move pinned icon in title +* feat: Rate limit streams so that large accounts have a smoother UI +* feat: Display the room name in room pills +* feat: Increase the amount of suggestions for the input bar +* feat: Tapping on stickers shows the sticker body +* fix: Windows +* fix: Disable vrouter logs in release mode +* fix: No longer hide google services key file +* fix: Tests + +## v0.35.0 - 2021-07-24 + +This release introduces stickers and a lot of minor bug fixes and improvements. + +### All changes: + +### Feature + +* Add sticker picker [205d7e8] +* Also suggest username completions based on their slugs [3d980df] +* Nicer mentions [99bc819] +* Render stickers nicer [35523a5] +* Add download button to audio messages [bbb2f43] +* Android SSO in webview [befd8e1] + +### Fixes + +* Reset bootstrap on bad ssss [b78b654] +* Hide stickers button when there is not sticker pack [b71dd4b] +* Download files on iOS [a8201c4] +* Record voice messages on iOS [4c2e690] +* cropped sticker [a4ec2a0] +* busy loop due to CircularProgressIndicator [15856e1] +* Crash on timeline [a206f23] +* typo on webiste [00a693e] +* Make sure the aspect ratio of image bubbles stays the same [a4579a5] +* Linux failing on attempting to open hive [76e476e] +* Secure storage [0a52496] +* Make sure the textfield is unfocused before opening the camera [6821a42] +* Close safariviewcontroller on SSO [ba685b7] + +### Refactor + +* Rename store and allow storing custom values [b1c35e5] + +## v0.34.1 - 2021-07-14 + +Bugfix image picker on Android 11 + +## v0.34.0 - 2021-07-13 + +Mostly bugfixes and one new feature: Lottie file rendering. + +### All changes: + +* feat: Add rendering of lottie files +* fix: Check for jitsi server in well-known lookup also on login screen +* fix: show thumbnails in timeline on desktop +* feat: Add a proper file saver +* feat: Better detect the device type from the device name +* fix: Workaround for iOS not removing the app badge +* fix: Keyboard hides imagePicker buttons on iOS +* feat: Add rendering of lottie files +* fix: Don't allow backup of the android app + +## v0.33.3 - 2021-07-11 + +Another bugfixing release to solve some problems and republish the app on iOS. + +### Changes + +* Redesign SSO buttons +* Update dependencies +* Remove moor database (no migration from here possible) +* fix: Keyboard hides imagePicker buttons on iOS + +## v0.33.2 - 2021-06-29 + +* Fix Linux Flatpak persistent storing of data + +## v0.33.0 - 2021-06-26 + +Just a more minor bugfixing release with some design changes in the settings, updated missing +translations and for rebuilding the arm64 Linux Flatpak. + +### Features + +* redesigned settings +* Updated translations - thanks to all translators +* display progress bar in first sync +* changed Linux window default size +* update some dependencies + +### Fixes + +* Favicon on web +* Database not storing files correctly +* Linux builds for arm64 +* a lot of minor bugs + +## v0.32.2 - 2021-06-20 + +* fix: Broken hive keys + +## v0.32.1 - 2021-06-17 + +* fix: Hive breaks if room IDs contain emojis (yes there are users with hacked synapses out there + who needs this) +* feat: Also migrate inbound group sessions + +## v0.32.0 - 2021-06-16 + +FluffyChat 0.32.0 targets improved stability and a new onboarding flow where single sign on is now +the more prominent way to get new users into the app. This release also introduces a complete +rewritten database under the hood based on the key value store Hive instead of sqlite. This should +improve the overall stability and the performance of the web version. + +### Feat + +* Long-press reactions to see who sent this +* New login UI +* Shift+Enter makes a new line on web and desktop +* Updated translations - Thanks to all translators +* Brand new database backend +* Updated dependencies +* Minor design tweaks + +### Fixes + +* Single sign on on iOS and web +* Database corruptions +* Minor fixes + +## v0.31.3 - 2021-05-28 + +### Fixes + +* Build Linux +* Multiline keyboard on web and desktop + +## v0.31.2 - 2021-05-28 + +### Fixes + +* Setting up push was broken + +## v0.31.0 - 2021-05-26 + +### Chore + +* Format iOS stuff [584c873] +* LibOlm has been updated to 3.2.3 + +### Feature + +* Cute animation for hiding the + button in inputbar [37c40a2] +* Improved chat bubble design and splash animations [0b3734f] +* Zoom page transition on Android and Fuchsia [e6c20dd] + +### Fixes + +* "Pick an image" button in emote settings doesn't do anything [e6be684] +* Formatting and style [2540a6c] +* Emoji picker [e1bd4e1] +* Systemuioverlaystyle [c0d446b] +* Status bar and system navigation bar theme [d986986] +* Open URIs [6d7c52c] +* Status bar color [f347edd] +* add missing purpose string [3830b4b] +* Workaround for iOS not clearing notifications with fcm_shared_isolate [88a7e8d] +* Minor glitch in bootstrap [107a3aa] +* Send read markers [08dd2d7] + +### Docs + +* Update code style [3e7269d] + +### Refactor + +* Structure files in more directories [ebc598a] +* Rename UI to Views [e44de26] +* rename UI to View and MVC login page [cc113bb] +* Rename views to pages [a93165e] +* Move widgets to lib [56a2455] +* Move translations to assets [0526e66] +* Update SDK [4f13473] +* Use default systemUiOverlayStyle [8292ee7] + +## v0.30.2 - 2021-05-13 + +### Feature + +* Implement registration with email [19616f3] + +### Fixes + +* Android input after sending message [4488520] + +### Changes + +* Switch to tchncs.de as default homeserver + +### Refactor + +* UIA registering [48bf116] + +## v0.30.1 - 2021-05-07 + +### Chore + +* Update translations + +### Fixes + +* Record audio on iOS [cd1e9ae] + +## v0.30.0 - 2021-05-01 + +In this release we have mostly focused on bugfixing and stability. We have switched to the new +Flutter 2 framework and have done a lot of refactoring under the hood. The annoying freezing bug +should now be fixed. Voice messages now have a new backend which should improve the sound quality +and stability. There is now a more professional UI for editing aliases of a room. Users can now see +a list of all aliases, add new aliases, delete them and mark one alias as the canonical (or main) +alias. Some minor design changes and design fixes should improve the overall UX of the app +exspecially on tablets. + +Version 0.30.0 will be the first version with arm64 support. You can download binaries from the CI +and we will try to publish it on Flathub. Together with the new Linux Desktop Notifications feature, +this might be interesting for the Librem 5 or the PinePhone. Sadly I don't own one of these very +interesting devices. If you have one, I would very like to see some screenshots of it! :-) + +### Chore + +* Update UP and automatically re-register UP on startup [aa3348e] + +### Feature + +* Desktop notifications on Linux Desktop [25e76f0] +* Much better alias managing [642db67] +* Archive with clean up [f366ab6] + +### Fixes + +* Lock screen [f8ba7bd] +* Freeze bug [15c3178] +* UserBottomSheet [dbb0464] +* Message bubble wrong height [2b9bd9c] +* Low height layout [0d6b43d] +* Behaviour of homeserver textfield [2c8a8a4] +* Build Linux [d867a56] +* EmojiPicker background [0a5270b] +* e2ee files [ccd7964] +* Remove the goddamn package from hell circular checkbox!!! Shame on you! SHAME! [81c6906] +* Missing null check [586c248] +* Chat UI doesnt load [4f20ea4] + +### Refactor + +* Remove unused variable [b9f5c94] +* Remove flutter_sound [334d4c0] +* Switch to record package [2cf4f47] +* Sort dependencies [f2295f7] +* Widget file structure and MVC user bottom sheet [bd53745] +* Dialogs as views [69deae3] +* MVC Settings page [bc5e973] +* MVC Settings Notifications [c291b08] +* MVC multiple emote settings [a64ada5] +* MVC settings ignore list [f23fdcc] +* MVC emote settings [1f9f3f4] +* Null safe dependencies [ca82a46] +* MVC settings style [c6083b6] +* MVC settings 3pid [6bfe7b2] +* MVC search [b008d56] +* Folder structure and MVC chat ui [fb61824] +* Move some views to widgets [1fe5b78] +* MVC device settings view [15731b9] +* New private chat view [453d4f3] +* MVC chat permission settings [001e0ee] +* MVC chat list view [7658425] +* MVC chat encryption settings [576e840] +* MVC chat details [28ed394] +* Enable more lints [6a56ec4] +* MVC new group view [3f889e2] +* MVC invitation selection [c12e815] + +## v0.29.1 - 2021-04-13 + +### Chore + +* Bump version [215f3c8] + +### Fixes + +* Save file [3f854d6] +* Routing broken in chat details [f1166b2] +* Tests [e75a5a0] +* Minor sentry crashes [9aa7d52] +* nogooglewarning [7619941] + +### Refactor + +* MVC archive [c2cbad7] +* MVC sign up password view [fa0162a] +* MVC sign up view [db19b37] +* Controllers [f5f02c6] + +## v0.29.0 - 2021-04-09 + +### Chore + +* Clean up repo [ef7ccef] +* Bump version [81a4c26] +* Nicer FAB icon [3eeb9a9] +* Archive button in main menu [da3dc80] +* turn renderHtml and hideUnknownEvents on [29f8e05] +* Remove unused dependencies [c505c50] + +### Feature + +* Experimental support for room upgrades [a3af5a9] + +### Fixes + +* Room upgrade again [1d40705] +* Better padding [c79562f] +* Room upgrade [dac26dd] +* iOS [3a6b329] +* React if not allowed [0146767] +* iPad dividerwidth [a154db0] +* Playstore release job [47c9180] +* Remove blur [ebf73bf] +* Support for email registration [7e5eae5] +* Typo [6250fd0] +* #323 [56e5c81] +* Typo [b38b0e4] +* Buggy routing [62bf380] +* barrierDismissible: true, [de9e373] +* UserBottomSheet SafeArea [0e172c7] +* Add normal mode again to OnePageCard [c057d31] +* ScrollController in chatlist [93477d3] +* SafeArea on iPad [8911e64] +* Missing null check [7cb0dc4] +* Overflow in chat app bar [5bf5483] +* Select room version [2f5a73f] + +### Docs + +* Add code style [035ad96] + +### Refactor + +* Move app_config to /configs [8b9f4a4] +* homeserver picker view [8e828d8] +* widgets dir [c9ab69a] + +## v0.28.1 - 2021-03-28 + +### Chore + +* Update version [518634a] + +### Feature + +* Implement new search view design [e42dd4b] + +### Fixes + +* Share on iOS [ea31991] +* Permission to send video call [4de6d16] +* Unread badge color [49d5f86] +* Push on iOS [cb6217c] +* Add Podfile to gitignore [dd4b4c5] +* Own user in people list [ce047b7] +* Start chat [92ff960] +* Set status missing [17a3311] + +### Refactor + +* push stuff [b6eaf5b] + +## v0.28.0 - 2021-03-16 + +### Chore + +* Bump version [f8ee682] +* Change push gateway url [078aefa] +* Update file picker cross dependency [91c6912] +* Update snapcraft.yaml but still not working [1072379] +* Update changelog [a05f2f0] +* Change call icon [7403ac7] +* Update famedlySdk [ec64cf6] + +### Feature + +* Cache and resend status message [c8a7031] +* New experimental design [94aa9a3] +* Better verification design [9bcd6b2] +* Verify and block devices in devices list [8ebacfe] + +### Fixes + +* substring in reply key respects unicode runes [5695342] +* Resend status message [05cd699] +* Remove test push [a838d90] +* Email validation [c8e487c] +* CI [2e60322] +* CI [7275837] +* CI [1a8dc50] +* CI [c012081] +* CI [380732d] +* CI [06c31c0] +* CI [4d1a171] +* CI [597ceab] +* snapcraft CI [fee0eb9] +* Bootstrap in columnview [bcd2a03] +* Remove unnecessary snapcraft dependencies [3a816d1] +* Snapcraft and it builds now :-) [eb0eca4] +* flutter_matrix_html crash and flutter_maths stuffs [3caac92] +* Minor bugs [9fbfca6] +* add mail [53fc634] +* 3pid [887f3b1] +* Bootstrap hint [8651b37] +* Bootstrap hint [1331b10] +* Own presence at top of the list [ac6fcd1] +* Analyzer [e1ddfc8] +* Trim username on registration [61a8eb5] +* Password success banner if not succeeded [5150563] +* Status color [42d9bf5] +* Routes [6faa60e] +* Dialog using wrong Navigator [9458ab3] +* sso on web [aa396ac] +* Missing localizations in dialogs [9b1d7ec] +* Tap on notification to open room in (hopefully) all cases [57560ff] +* Allow screenshots again [6258b6a] +* Missing tooltips in IconButtons [57a021f] +* empty horizontal stories list [b1f6209] +* Line color [3d59d9a] +* Dont show random users in top bar [54e268b] +* Localize ok cancel alert dialogs [9f9b833] +* Use single-isolate push [949771d] + +### Docs + +* Update readme and contributing [449e46d] +* Update Turkish translation for website [4a664eb] + +### Refactor + +* Update SDK and enable login with email and phone [864b665] +* Migrate to flutter 2 [bb97b1b] +* Switch to TextButton [55803d1] + +## v0.27.0 - 2021-02-17 + +### Chore + +* Switch to experimental new hedwig [30a1fb0] +* update sdk & remove selfSign [26f7cb3] +* Update sdk [cde8a30] +* Update unified push [e73f5d5] +* Change push gateway port [8f36140] + +### Feature + +* localize bootstrap [395e62e] +* Add more bootstrap features [e4db84a] +* Add some tooltipps [b9eb8d1] +* Get jitsi instance from wellknown [bd24387] +* Make font size configurable [ea1bb89] +* Allow manual verification of other peoples devices [ad3c89b] +* Simplified bootstrap [d9984da] +* new design [33dd1d2] +* Implement reporting of events [d553685] +* Implement experimental new design [10cf8da] +* Deprecated authwebview and use platform browser [d7aae3a] +* Implement autofillhints [41a2457] + +### Fixes + +* Website [080a909] +* docs _site dir [875d652] +* Bootstrap dialog [c72da0a] +* Bootstrap wipe [774f674] +* MetaRow fontsize [a13e673] +* Stories displayname cropping [6f06c6a] +* Update read receipt display [de6e495] +* Bottom padding of chat list [aa5ce56] +* Hard to read titles in chat details [df90136] +* Website urls [295c113] +* applock enter non digits [5726c4f] +* Update contact list [d870ec3] +* Better error in discover [0c1864c] +* Minor fixes [c058d39] +* Share view [2bd00e6] +* Endless bootstrap loading [65d5f9a] +* More minor fixes [4c10ef5] +* Default offline state [72604c6] +* Remove old code [14f633b] +* Inputborder [6960618] +* Unlock the mutex [5789a86] +* Wrong fab action [5429697] +* SecureStorage sometimes reading wrong / bad values [d94f0d7] +* Wrong urls [29076db] +* Start chat with yourself from status [f3b3584] +* BottomNavigationbar colors [08f24d7] +* Emote settings and discovery fallback [8f8b8d8] +* reportEvent uses positive int [408c810] +* Autofillhints on readonly [baafebb] +* Bring back proper emote settings [6b01a83] +* Build ios [f5b1ae8] +* iOS bundle id [6a70830] +* iOS push [2bf184a] +* iOS push [c01bdf7] + +### Docs + +* Fix qr-codes [c7f0a74] +* grammar fixes [c4d569b] + +### Refactor + +* Theme colors [fe13778] +* border radius [ddd10d1] + +## v0.26.1 - 2021-01-26 + +### Chore + +* Update SDK [e9df6bf] +* Bump version [d79b356] +* Update dependencies [6159f99] + +### Feature + +* Add unified push as push provider [124a5ee] + +### Fixes + +* Link color [16d6623] + +## v0.26.0 - 2021-01-25 + +### Chore + +* Redesign textfields [aef8090] +* Simplify bootstrap [2df4a78] +* Update audio player icons [3f14d5e] +* Redesign homepicker page [e402a02] +* Remove unused dependency [2089e62] +* Update SDK [a05215f] +* Update readme [19f1df7] +* Change startpage design [4b8ad1b] +* Log warning if firebase token problem [90867e6] +* Update dependencies [a56f939] +* Redesign homeserver picker page [3c71351] +* Increase max size of message bubbles [8477385] +* Use correct paths on new server [2f00007] + +### Feature + +* emoji working on desktop [c3feb65] +* Implement sso [d1d470d] +* Implement app lock [77ee2ef] +* Dismiss keyboard on view scroll. [70f96bf] +* Display version number in app [e1e60c4] + +### Fixes + +* Dark mode fixes [36746c8] +* Dark theme [0bd0e58] +* clean up iOS dir [6ae59a8] +* Homeserver readonly if conifg wants it [c81158a] +* Search mxid for private chat [b6dca5b] +* Remove unnecessary padding [5f54057] +* Foreground push again [1d6c9cf] +* Foreground push [ea1cefa] +* embedding all fonts to fix the font error [55c6379] +* Minor desktop fixes [c224993] +* fonts in a standard path [bfa5601] +* Make tapping on pills join if remote directory is private [8ffb3db] +* key verification dialog button order [c5adfc2] +* Allow joining of unpublished aliases again [ed570a6] +* Make tap on pills and matrix.to links work again [48ad322] +* Load settings on startup [6906832] +* Persistent settings [03b00b7] +* Voice message recording dialog [d273b2a] +* UserBottomSheet [38e8e1b] +* Dialogs [5f0ce49] +* no exception if token is just null [db349a5] +* Load config.json only on web [a04c3ab] +* App lock [8d6642c] +* cross file picker [d47f855] +* Send file [fde2f8b] +* APL [913f3cf] +* app lock [6d12168] +* mxid validation [25da65f] +* Startpage textfield padding [81e706a] +* Provider in user bottom sheet [48d6fbd] +* Readme [dda0925] + +### Docs + +* Make howtofork.md less misunderstandable [96de54a] +* Add howtofork.md [f091469] +* Mention emoji font [bb53714] +* Add famedly contact link [7f2d61e] +* Update fdroid button [ea7e20b] + +### Refactor + +* Theme and iOS stuff [189f65a] +* Upgrade to latest flutter_sound_lite [2f7dece] + +## v0.25.1 - 2021-01-17 + +### Chore + +* Bump version [c881424] + +### Fixes + +* Change size [83e2385] + +### Refactor + +* remove deprecated approute [be08de5] + +## v0.25.0 - 2021-01-16 + +### Chore + +* Minor design improvements [d4dbe83] +* Minor design tweaks [06581e2] +* Bump version [7f51f7f] +* redesign start first chat [e13a732] +* Better authwebview [d76df0a] + +### Fixes + +* Share files [d018a4b] +* Typing update [9b5a3ca] +* Status [d27dbe0] +* Set status [7063b34] +* Column width [a35c4d0] +* Dont send only whitespaces [c0958c6] +* BuildContext in key verification dialog [c4866c7] +* Ignore list [0458064] +* Archive route [5e62267] +* Remove popup menu item [5945bcc] +* chat padding [079c35e] +* Remove logs [8910772] +* Video calls [672eca6] +* loading history [a5e9553] +* Missing divider [cf07eed] +* loading dialog configs [de2796e] +* Display current theme mode [41483dd] +* Better authwebview [5a1085a] +* authwebview [2f7749a] +* Minor apl bugs [05b9551] + +### Docs + +* Update fdroid logo [31d16a0] + +### Refactor + +* Use APL [cbcfa15] +* Use Provider [880f9cc] +* Use adaptive_theme [5d52c26] + +## v0.24.3 - 2021-01-15 + +### Chore + +* Bump version [46c8386] +* Update SDK [ba0726c] +* Update fdroid domain [f130681] +* Update dependencies [611e5e3] + +### Feature + +* Add Turkish translations for website [817c7dd] +* Handle matrix: URIs as per MSC2312 [1da643f] + +### Fixes + +* Format [84b2ac9] +* Push gateway url [ed2fbf7] + +## v0.24.2 - 2021-01-08 + +### Chore + +* Update linux version [ef9369c] +* Update SDK [4a006c9] + +### Feature + +* Regulate when thumbnails are animated as per MSC2705 [f5e11c2] + +### Fixes + +* Don't allow an empty ssss passphrase in key verification [3a0ce79] +* reactions [92684da] +* Reply fallback sometimes being stripped incorrectly [e9ec699] +* Don't show loading dialog on request history [e4b6e10] +* Properly handle url encoding in matrix.to URLs [baccd0a] + +### Refactor + +* Switch to loading dialog [e84bc25] + +## v0.24.1 - 2020-12-24 + +### Chore + +* Update linux build [a91407f] +* Add website to main repo [4df33a1] +* Update dependencies [0d9f418] +* Change main docs [56d97f6] +* Update SDK and logviewer [45b9c4f] +* Context icon improvements [6381cea] +* Update SDK [e802593] + +### Feature + +* Better invite search bar [3c4a29b] +* Open alias in discover page [f0d1f5a] +* Implement logger [714c7b4] + +### Fixes + +* auto-dep update [d9e8c5f] +* Read receipts and filtered events [0ae36f0] +* Don't re-render the lock icon nearly as often [00a56a7] +* Format [e0bc337] +* Analyzer [5d8bfa3] +* logger [64c5ea9] +* Have a space after mentions, making it consistent with @-completion [b18e81a] +* Display right key in key request dialog [f8e8e96] +* Respect hidden events when calculating read receipt message [702895f] +* Store emoji picker history and make sure you can't send the same emoji twice [0066a33] +* Logger [0abebdd] +* Allow key verification to scroll vertically [accd9b4] +* Make filter input field auto-lose focus when entering room view [bdb695e] +* Update file picker [6df75d1] + +## v0.24.0 - 2020-12-18 + +### Chore + +* Update dependencies [550cb4a] +* Update SDK [775a33b] +* Update dependencies [644433c] +* Switch to upstream noti settings [5cc4265] +* Go back to upstream open noti settings [6effebe] +* Update dependencies [5af4eab] + +### Feature + +* Add languages to iOS [68a5efb] +* Bring back config.json [b6a0d37] +* Implement emojipicker for reactions [20b3157] +* Add config hideTypingUsernames [19c0440] +* Implement hideAllStateEvents [721c0b2] +* Enhanced configuration [1e7bac3] +* Implement experimental bootstrapping [f6945f7] +* add ability to mark a room as unread [fe2b391] +* Try out new firebase [41a471e] +* Implement discover groups page [e728ccc] +* Add chat permissions settings [bf4b439] +* Multiline dialog text field [8d05a83] +* Implement rich notification settings [87a73dd] + +### Fixes + +* Update typing [3d70b1e] +* Build in dev [f892a9f] +* Fix that damn regex [8961bff] +* CI [ebb114d] +* CI [0adeb09] +* Format [9e5fb70] +* CI scripts [46b886f] +* join public room [30883e5] +* CI [7f44982] +* open_noti_settings [f4c1202] +* Missing localization [cb191e2] +* Analyzer bug [be428dd] +* Set chat avatar on web [621fcb7] +* CI [da5bc56] + +### Refactor + +* Update sdk [32acc21] + +## v0.23.1 - 2020-11-25 + +### Fixes + +* Release CI [14d8c80] + +## v0.23.0 - 2020-11-25 + +### Chore + +* Update adaptive dialogs [0061660] +* Prettier redacted events [d1e291e] +* Minor design changes in user viewer [b4fb283] +* Minor design changes in chatlist item [6977112] +* Implement playstore CD [4c5760c] +* Only load google services if needed [bae779a] + +### Feature + +* Next version [1af048e] +* Annoy user with dialog to add a recovery method [d9ec9f6] +* Implement password recovery [4b2fef5] +* Collapse room create states [fc0c038] +* Minor design improvements [0b8cc24] +* Improved encryption UI [2516848] + +### Fixes + +* Broken dialog [97bb692] +* set email dialog [72e325a] +* Minor fixes [11e2dd5] +* redacted icon color [d60709b] +* Unban [f056e65] +* Minor design issues [d9590dd] +* Buttons in chatlist [7d08817] +* Sendername prefix [a6b60ad] +* Sendername prefix [8aaff6f] +* Minor key request design fix [0ed29b6] +* removal of appbundle from the release artifacts [b1c248f] +* Copying an event did not obey edits [0cb262c] +* Suggest correct rooms [59ec9de] + +### Refactor + +* Make verification in dialogs [1f9e953] +* matrix to link prefix [1aa9c08] + +## v0.22.1 - 2020-11-21 + +### Fixes + +* Input bar not working, making app unusable [10773b4] + +## v0.22.0 - 2020-11-21 + +### Chore + +* fix CI [00ed0d6] +* fix CI [bb4bb9f] +* Fix CI variables [d3822b0] +* update flutter_matrix_html [ed27bee] +* update flutter_matrix_html [af36533] +* Update dependencies [57256fb] +* Update dependencies [40825e1] +* Switch to adaptive dialogs [9ea7afc] +* Switch from bottoast to flushbar [e219593] +* Clean up CI [7e84675] +* Remove unused dependency [d12de2d] + +### Feature + +* Add svg support and better image handling [f70bbc3] +* add config.json [4b7fb6b] +* persistent upload of release artifacts [1b2481b] +* Option to hide redacted and unknown events [36315a4] +* Better encryption / verification [1ff986e] + +### Fixes + +* iOS [26731ab] +* resolve some sentry issues [61f35e8] +* resolve some sentry issues [2c3693e] +* iOS build [9fee409] +* Automatic update deps job [255c05d] +* Don't re-render message widgets on insertion of new messages, making e.g. audio playing not + stop [25b2997] +* Add missing safearea [caab868] +* no pushers enpdoint [b3942ad] +* Sentry and small null fix [5dc22be] + +### Refactor + +* CI [34d7fdd] +* SDK update [7e23280] + +## v0.21.1 - 2020-10-28 + +### Chore + +* update version code [d1dfa9c] + +## v0.21.0 - 2020-10-28 + +### Chore + +* Change compileSdkVersion again [f93f9c2] +* Update packages [b471bd0] +* Update SDK [86a385d] +* New version [40d00b0] +* Update flutter_matrix_html [4981cf4] +* Update sdk [8773770] +* Only load google services if needed [051ec8f] +* release [844b4a8] + +### Fixes + +* CompileSDKVersion [bcf75fc] +* Target sdk [c3e23b6] +* File picker issue [aa191c1] +* Sentry [b903ea9] +* user bottom sheet design [7876164] +* Android Download [8a542bf] +* Avatar Border Radius [a8b617e] +* loading spinner stuck on broken images [e917879] +* send file dialog - prevent multiple file sending [941b211] +* Multiple related store things [36405f8] +* Logo background color [42a927e] + +## v0.20.0 - 2020-10-23 + +### Chore + +* update dependencies [427cdc0] +* upate matrix link text [0892ca9] +* Change default linux window size [719323a] +* Update changelog [ef22778] +* Update matrix_link_text [fc2a0c0] +* update flutter_secure_store [61c6aec] +* Minor snap fix [daf9969] +* Add privacy informations to app [e569be7] +* Make app ready for flutter 1 22 [e5b23fa] + +### Feature + +* Implement mouse select chat list items [6d41136] +* Implement linux desktop notifications [75cd6f1] +* Implement change device name [bfd3888] +* Publish as snap [46590d7] +* Enhance emote experience [cafd639] +* Implement new status feature [090795f] +* More beautiful status [d9c2d4f] +* Enhance roomlist context menu [493b700] +* Implement basic windows linux support [7fad316] +* Enable macOS build [a845209] + +### Fixes + +* return text field to the previous state after editing message [08e61c0] +* Web server picker [4cb19be] +* Some single-emoji names crashing [b29ebce] +* Snapcraft [c1eebc1] +* Minor design fix [a713a2f] +* Minor design fixes [e9aa285] +* Change device displayname [c5c7ee7] +* LocalStorage location on desktop [81e32c5] +* fixed mxid input method, removed code redundancy [060156c] +* overgo issues with flutter_secure_store [6d0f344] +* resize images in a separate isolate [56967a9] +* Build Linux CI [a941356] +* Build Linux CI [2a6b5d8] +* send images as images, not files [751dcb7] +* Show device name in account information correctly [468c258] +* Minor fixes [aee854e] +* Make theme loading work properly [f6ab1e0] +* CI [6b7d21d] +* User Status crash [0413b0c] +* small desktop fixes [540ff68] +* Desktop url launcher [4dfd0db] +* Snap [ec7dd2b] +* Snap [4648466] +* CI [4345df3] +* Linux database [772ff33] +* TextField [7ec349b] +* Inputbar focus [5e673c6] +* Desktop file picker [662e2f1] +* Desktop images [5409fe8] +* Try with select 1 [6e924cb] +* More debug logs [9b572f5] +* Minor design bugs [6ffbf16] +* Minor user status bugs [f84ac1d] +* Improve loading dialogs [41ceb84] +* Invite left members [fe649e5] +* tapping on aliases not always working [c0390ca] +* determine 12h/24h time based on settings, not locale [ca19e9f] +* fix up translations to use keys and fix arb files [74b15dd] + +## v0.19.0 - 2020-09-21 + +### Chore + +* Version update & olm-CI [0f805a2] +* Update SDK & Changelog [1825543] +* Add new language [c6d67ad] +* master --> main [1de3c54] +* switch to cached_network_image [bbca0c2] +* update dependencies [2a62cf8] +* Add more debugging logs to debug key decrypt issues [20d3ea9] +* Update SDK, re-enable transactions on mobile [1f4c2a1] +* update languages [40e9544] +* Updat changelog [d1e898c] +* update sdk [954eedb] + +### Feature + +* Implement send reactions [6bf25b7] +* Improve design [c8a63c6] +* Display emotes/emojis bigger [9cccd07] +* Add scroll-to-event [8547422] +* Implement ignore list [b2fa88c] +* Add license page [dcf4c4c] +* Implement rich push notifications on android [f4e4b90] +* Implement sentry [705ced8] +* Send image / video / file dialog [80114df] +* Blurhashes and better thumbnails [2321829] +* open links better [04cbf0c] +* Implement web audio player [0f6b46d] +* New notification sound [8a5be21] + +### Fixes + +* Last bits for the release [1db9bdd] +* Small stuff [9d3f272] +* Search bar [eca25de] +* font size being too large accidentally in some places [43dd222] +* Scroll down button not showing [8cd8f90] +* Don't double-confirm sending audio messages [168b8b0] +* Hotfix ignore list [94f8f34] +* Push on conduit [e5cd144] +* Images with an info block but no size crashing [5f58789] +* Allow requesting past messages if all events in the current timeline are filtered [0f9ff4a] +* annoying notification sound [739a70c] +* Status design [f7930fe] +* Send read receipt only on focus [98316f1] +* Desktop notifications [b05bfa6] + +This CHANGELOG.md was generated with [**Changelog for Dart +**](https://pub.dartlang.org/packages/changelog) diff --git a/CONTEXT.md b/CONTEXT.md new file mode 100644 index 0000000..919bd2e --- /dev/null +++ b/CONTEXT.md @@ -0,0 +1,149 @@ +# Contexto do Projeto - TatuChat (tatuchat) + +## Visão Geral + +**TatuChat** é um cliente de mensagens instantâneas open-source e sem fins lucrativos baseado no protocolo [Matrix](https://matrix.org). É um aplicativo multiplataforma que oferece mensagens cifradas ponta-a-ponta, chamadas de vídeo, mensagens de voz, compartilhamento de localização, e muito mais. + +| Propriedade | Valor | +|-------------|-------| +| **Nome** | TatuChat | +| **Linguagem** | Dart | +| **Framework** | Flutter 3.47.3 (SDK Dart >=3.11.1 <4.0.0) | +| **Versão** | 2.9.5+3566 | +| **Licença** | AGPL-3.0-or-later | +| **Autor principal** | Christian Kussowski (krille-chan) | +| **Protocolo** | Matrix (cliente federado e descentralizado) | +| **Criptografia** | Olm/Megolm via Vodozemac (WASM) | +| **Chamadas** | Matrix RTC via LiveKit | +| **Plataformas** | Android, iOS, Linux, Windows, macOS, Web (PWA) | + +## Estrutura do Projeto + +``` +tatuchat/ +├── lib/ # Código-fonte principal (Dart) +│ ├── main.dart # Ponto de entrada da aplicação +│ ├── config/ # Configurações da app +│ ├── pages/ # 30 páginas/telas da app +│ ├── widgets/ # 28 widgets reutilizáveis +│ ├── utils/ # 43 arquivos de utilitários +│ └── l10n/ # 59 arquivos de localização (.arb) +├── android/ # Plataforma Android (Gradle Kotlin DSL) +├── ios/ # Plataforma iOS +├── macos/ # Plataforma macOS +├── linux/ # Plataforma Linux +├── windows/ # Plataforma Windows +├── web/ # Plataforma Web (PWA) +├── assets/ # Recursos estáticos +├── scripts/ # 12 scripts de build/deploy +├── test/ # Testes unitários/widget +├── integration_test/ # Testes de integração +├── fastlane/ # Metadata para app stores +├── snap/ # Pacote Snapcraft (Linux) +├── .github/ # CI/CD (GitHub Actions) +└── LICENSES/ # Licenças de dependências (REUSE) +``` + +## Arquitetura + +- **Navegação:** GoRouter com rotas declarativas e ShellRoutes para layouts de duas colunas (desktop) +- **Estado:** Provider (via widget `Matrix` que é um InheritedWidget) +- **Layout Responsivo:** Modo coluna única (mobile) vs. duas colunas (desktop), detectado por `FluffyThemes.isColumnMode()` +- **Internacionalização:** 59 idiomas via ARB (Flutter L10N), com Weblate para tradução colaborativa +- **Segurança:** App lock com PIN/biometria, E2EE com Vodozemac, certificados CA embutidos (ISRG X1/X2) + +## Dependências Principais + +### Core / Matrix +| Dependência | Função | +|-------------|--------| +| `matrix` (git: famedly/matrix-dart-sdk) | SDK do protocolo Matrix (fork customizado) | +| `flutter_vodozemac` | Criptografia Olm/Megolm via WASM | +| `livekit_client` | Videochamadas Matrix RTC | +| `flutter_secure_storage` | Armazenamento seguro | + +### UI / Navegação +| Dependência | Função | +|-------------|--------| +| `material_ui` | Material Design 3 / Material You | +| `go_router` | Sistema de rotas declarativo | +| `dynamic_color` | Cores dinâmicas do Android | +| `emoji_picker_flutter` | Seletor de emojis | +| `flutter_map` + `latlong2` | Mapas e localização | +| `lottie` | Animações | +| `chewie` + `video_player` | Reprodução de vídeo | +| `just_audio` | Reprodução de áudio | + +### Plataforma / Device +| Dependência | Função | +|-------------|--------| +| `flutter_local_notifications` | Notificações locais | +| `flutter_callkit_incoming` | UI de chamadas entrantes | +| `flutter_foreground_task` | Serviço foreground para push | +| `unifiedpush` | Notificações push via UnifiedPush | +| `local_auth` | Autenticação biométrica | +| `geolocator` | Geolocalização | + +### Mídia / Arquivos +| Dependência | Função | +|-------------|--------| +| `image_picker` + `crop_image` | Seleção e corte de imagens | +| `record` | Gravação de áudio | +| `light_compressor_v2` | Compressão de vídeo | +| `blurhash_dart` | BlurHash para placeholders | + +## Build & Deploy + +| Método | Plataforma | +|--------|------------| +| **Docker** | Web (build multi-stage com Nginx) | +| **Snapcraft** | Linux (core24, grade stable) | +| **Fastlane** | App Stores (Android, iOS) | +| **GitHub Actions** | CI/CD (5 workflows: integrate, release, deploy, notify, stale) | + +## Comandos Úteis + +```bash +# Instalar dependências +flutter pub get + +# Executar em modo desenvolvimento +flutter run + +# Build de release +flutter build apk # Android +flutter build ios # iOS +flutter build linux # Linux +flutter build windows # Windows +flutter build web # Web + +# Testes +flutter test # Testes unitários/widget +flutter test integration_test/ # Testes de integração + +# Análise de código +flutter analyze +dart format --set-exit-if-changed . +``` + +## Funcionalidades Principais + +- Mensagens cifradas ponta-a-ponta (E2EE) via Olm/Megolm +- Chamadas de vídeo com Matrix RTC (via LiveKit) +- Mensagens de voz +- Compartilhamento de localização +- Grupos públicos e privados, spaces, emotes customizados +- Notificações push +- Material You (Material 3) design +- Backup de mensagens cifrado +- Verificação por emoji e cross-signing +- App lock com PIN/biometria + +## Notas para Desenvolvedores + +1. **SDK Matrix customizado:** O projeto usa um fork do `matrix-dart-sdk` no branch `krille/refactor-device-keys-list-storing` +2. **Certificados CA:** O projeto inclui certificados ISRG X1 e X2 embutidos para suporte a Let's Encrypt +3. **Vodozemac:** Biblioteca de criptografia compilada para WASM, localizada em `assets/vodozemac/` +4. **Configuração Web/MDM:** Exemplo em `config.sample.json` para configuração via MDM ou web +5. **Testes de integração:** Requer Docker com Synapse (servidor Matrix) para testes completos +6. **Homeservers recomendados:** Lista em `recommended_homeservers.json` (matrix.org, mozilla.org, tchncs.de) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..6aa782f --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,179 @@ + + +# Contributing to TatuChat +Contributions are always welcome. Yet we might lack manpower to review all of them in time. + +To improve the process please make sure that you read the following guidelines carefully: + +## Contributing Guidelines + +1. Always create a Pull Request for any changes. +2. Usage of LLMs to generate code or documentation is strictly prohibited. +3. Whenever possible please make sure that your Pull Request only contains **one** commit. Cases where multiple commits make sense are very rare. +4. Do not add merge commits. Use rebases. +5. Every Pull Request should change only one thing. For bigger changes it is often better to split them up in multiple Pull Requests. +6. [Sign your commits](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits). +7. Format the commit message as [Conventional Commits](https://www.conventionalcommits.org). +8. For bigger or complex changes (more than a couple of code lines) write an issue or refer to an existing issue and ask for approval from the maintainers (@krille-chan) **before** starting to implement it. This way you reduce the risk that your Pull Request get's declined. +9. Prefer simple and easy to maintain solutions over complexity and fancy ones. + +# Code Style + +TatuChat tries to be as minimal as possible even in the code style. We try to keep the code clean, simple and easy to read. The source code of the app is under `/lib` with the main entry point `/lib/main.dart`. + + + + + + +**Table of Contents** + +- [Directory Structure:](#directory-structure) +- [Separation of Controllers and Views](#separation-of-controllers-and-views) +- [Formatting](#formatting) +- [Code Analyzis](#code-analyzis) + + + + + + +### Directory Structure: + + +- /lib + - /config + - app_config.dart + - ...Constants, styles and other configurations + - /utils + - handy_function.dart + - ...Helper functions and extensions + - /pages + - /chat + - chat.dart + - chat_view.dart + - /chat_list + - chat_list.dart + - chat_list_view.dart + - ...The pages of the app separated in Controllers and Views + - /widgets + - /layouts + - ...Custom widgets created for this project + - main.dart + + +Most of the business model is in the Matrix Dart SDK. We try to not keep a model inside of the source code but extend it under `/utils`. + +### Separation of Controllers and Views + +We split views and controller logic with stateful widgets as controller where the build method just builds a stateless widget which receives the state as the only parameter. A common controller would look like this: + +```dart +// /lib/controller/enter_name_controller.dart +import 'package:flutter/material.dart'; + +class EnterName extends StatefulWidget { + @override + EnterNameController createState() => EnterNameController(); +} + +class EnterNameController extends State { + final TextEditingController textEditingController = TextEditingController(); + String name = 'Unknown'; + + /// Changes the name with the content in the textfield. If the textfield is + /// empty, this breaks up and displays a SnackBar. + void setNameAction() { + if (textEditingController.text.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('You have not entered your name'), + ), + ); + return; + } + setState(() => name = textEditingController.text); + } + + @override + Widget build(BuildContext context) => EnterNameView(this); +} +``` + +So we have a controller for a `EnterName` view which as a `TextEditingController`, a state `name` and an action `void setNameAction()`. Actions must always be methods of a type, that we dont need to pass parameters in the corresponding view class and must have dartdoc comments. + +The view class could look like this: + +```dart +// /lib/views/enter_name_view.dart +import 'package:flutter/material.dart'; + +class EnterNameView extends StatelessWidget { + final EnterNameController controller; + + const EnterNameView(this.controller, {Key key}) : super(key: key); + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text('Your name: ${controller.name}'), + ), + body: Center( + child: TextField( + controller: controller.textEditingController, + ), + ), + floatingActionButton: FloatingActionButton( + onPressed: controller.setNameAction, + child: Icon(Icons.save), + ), + ); + } +} +``` + +Views should just contain code which describes the view. All other parameters or logic should be in the controller. The job of the view class is just to take the current state and build the widget tree and pipe the callbacks back. If there is any calulation necessary which is not solveable as a simple if-else or switch statement, it should be done in an external helper function unter `/lib/utils/`. + +All file names must be lower_snake_case. All views must have a `View` suffix and all controller must have a `Controller` suffix. Widgets may have a controller too but they should pass the callbacks back to the view where possible. Calling one line methods directly in the view is only recommended if there is no need to pass a parameter. + +To perform an action on state initialization we use the initState method: +```dart +@override + void initState() { + // TODO: implement initState + super.initState(); + } +``` + +And the dispose method to perform an action on disposing: +```dart +@override + void dispose() { + // TODO: implement dispose + super.dispose(); + } +``` + +To run code after the widget was created first we use the WidgetBindings in the initState: +```dart +@override + void initState() { + WidgetsBinding.instance.addPostFrameCallback((_) { + // Do something when build is finished + }); + super.initState(); + } +``` + +### Formatting + +We do not allow code with wrong formatting. Please run `flutter format lib` if your IDE doesn't do this automatically. + +### Code Analyzis + +We do not allow codes with dart errors or warnings. We use the [flutter_lints](https://pub.dev/packages/flutter_lints) package for static code analysis with additional rules under `analysis_options.yaml`. diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ba24430 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +# SPDX-FileCopyrightText: 2019-Present Christian Kußowski +# SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +FROM ghcr.io/cirruslabs/flutter as builder +RUN sudo apt update && sudo apt install curl wget jq build-essential -y + +WORKDIR /tmp +RUN wget https://github.com/mikefarah/yq/releases/download/v4.40.5/yq_linux_amd64.tar.gz +RUN tar -xzvf ./yq_linux_amd64.tar.gz +RUN mv yq_linux_amd64 /usr/bin/yq + +COPY . /app +WORKDIR /app +RUN curl https://sh.rustup.rs -sSf | bash -s -- -y +ENV PATH="/root/.cargo/bin:${PATH}" +RUN rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu +RUN ./scripts/prepare-web.sh +COPY config.* /app/ +RUN flutter pub get +RUN flutter build web --dart-define=FLUTTER_WEB_CANVASKIT_URL=canvaskit/ --release --source-maps + +FROM docker.io/nginx:alpine +RUN rm -rf /usr/share/nginx/html +COPY --from=builder /app/build/web /usr/share/nginx/html diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..7a60dc9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 2020 Christian Pauly + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/LICENSES/AGPL-3.0-or-later.txt b/LICENSES/AGPL-3.0-or-later.txt new file mode 100644 index 0000000..0c97efd --- /dev/null +++ b/LICENSES/AGPL-3.0-or-later.txt @@ -0,0 +1,235 @@ +GNU AFFERO GENERAL PUBLIC LICENSE +Version 3, 19 November 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. + + Preamble + +The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software. + +The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. + +When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. + +Developers that use our General Public Licenses protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License which gives you legal permission to copy, distribute and/or modify the software. + +A secondary benefit of defending all users' freedom is that improvements made in alternate versions of the program, if they receive widespread use, become available for other developers to incorporate. Many developers of free software are heartened and encouraged by the resulting cooperation. However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public. + +The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version. + +An older license, called the Affero General Public License and published by Affero, was designed to accomplish similar goals. This is a different license, not a version of the Affero GPL, but Affero has released a new version of the Affero GPL which permits relicensing under this license. + +The precise terms and conditions for copying, distribution and modification follow. + + TERMS AND CONDITIONS + +0. Definitions. + +"This License" refers to version 3 of the GNU Affero General Public License. + +"Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. + +"The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. + +To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. + +A "covered work" means either the unmodified Program or a work based on the Program. + +To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. + +To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. + +An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. + +1. Source Code. +The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. + +A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. + +The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. + +The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those +subprograms and other parts of the work. + +The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. + +The Corresponding Source for a work in source code form is that same work. + +2. Basic Permissions. +All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. + +You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. + +Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. + +3. Protecting Users' Legal Rights From Anti-Circumvention Law. +No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. + +When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. + +4. Conveying Verbatim Copies. +You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. + +5. Conveying Modified Source Versions. +You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". + + c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. + +A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. + +6. Conveying Non-Source Forms. +You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: + + a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. + + d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. + +A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. + +A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. + +"Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. + +If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). + +The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. + +Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. + +7. Additional Terms. +"Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. + +Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or authors of the material; or + + e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. + +All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. + +If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. + +8. Termination. + +You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). + +However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. + +Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. + +Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. + +9. Acceptance Not Required for Having Copies. + +You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. + +10. Automatic Licensing of Downstream Recipients. + +Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. + +An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. + +11. Patents. + +A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". + +A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. + +In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. + +If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. + +A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. + +12. No Surrender of Others' Freedom. + +If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. + +13. Remote Network Interaction; Use with the GNU General Public License. + +Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph. + +Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License. + +14. Revised Versions of this License. + +The Free Software Foundation may publish revised and/or new versions of the GNU Affero General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU Affero General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU Affero General Public License, you may choose any version ever published by the Free Software Foundation. + +If the Program specifies that a proxy can decide which future versions of the GNU Affero General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. + +Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. + +15. Disclaimer of Warranty. + +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +16. Limitation of Liability. + +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +17. Interpretation of Sections 15 and 16. + +If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. + +END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + +If your software can interact with users remotely through a computer network, you should also make sure that it provides a way for users to get its source. For example, if your program is a web application, its interface could display a "Source" link that leads users to an archive of the code. There are many ways you could offer source, and different solutions will be better for different programs; see section 13 for the specific requirements. + +You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see . diff --git a/LICENSES/Apache-2.0.txt b/LICENSES/Apache-2.0.txt new file mode 100644 index 0000000..137069b --- /dev/null +++ b/LICENSES/Apache-2.0.txt @@ -0,0 +1,73 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + +To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/LICENSES/CC-BY-4.0.txt b/LICENSES/CC-BY-4.0.txt new file mode 100644 index 0000000..13ca539 --- /dev/null +++ b/LICENSES/CC-BY-4.0.txt @@ -0,0 +1,156 @@ +Creative Commons Attribution 4.0 International + + Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. + +Considerations for licensors: Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. More considerations for licensors. + +Considerations for the public: By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor’s permission is not necessary for any reason–for example, because of any applicable exception or limitation to copyright–then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. Although not required by our licenses, you are encouraged to respect those requests where reasonable. More considerations for the public. + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. + +Section 1 – Definitions. + + a. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. + + d. Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License. + + g. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights under this Public License. + + i. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning. + +Section 2 – Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: + + A. reproduce and Share the Licensed Material, in whole or in part; and + + B. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. + + 3. Term. The term of this Public License is specified in Section 6(a). + + 4. Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material. + + 5. Downstream recipients. + + A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. + + B. No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. + + 6. No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). + +b. Other rights. + + 1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this Public License. + + 3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties. + +Section 3 – License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified form), You must: + + A. retain the following if it is supplied by the Licensor with the Licensed Material: + + i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of warranties; + + v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable; + + B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and + + C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. + + 3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's License You apply must not prevent recipients of the Adapted Material from complying with this Public License. + +Section 4 – Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database; + + b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. +For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. + +Section 5 – Disclaimer of Warranties and Limitation of Liability. + + a. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You. + + b. To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You. + + c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. + +Section 6 – Term and Termination. + + a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or + + 2. upon express reinstatement by the Licensor. + + c. For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. + + d. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. + + e. Sections 1, 5, 6, 7, and 8 survive termination of this Public License. + +Section 7 – Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. + +Section 8 – Interpretation. + + a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. + + c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. + + d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. + +Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/PRIVACY.md b/PRIVACY.md new file mode 100644 index 0000000..0c4b7cc --- /dev/null +++ b/PRIVACY.md @@ -0,0 +1,8 @@ + + +Has been moved to https://fluffychat.im/privacy \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..b9c1c1f --- /dev/null +++ b/README.md @@ -0,0 +1,138 @@ + + +[TatuChat](https://fluffy.chat) is an open source, nonprofit and cute [[matrix](https://matrix.org)] client written in [Flutter](https://flutter.dev). The goal of the app is to create an easy to use instant messenger which is open source and accessible for everyone. + +### Links: + +- 🌐 [[Weblate] Translate TatuChat into your language](https://hosted.weblate.org/projects/fluffychat/) +- 🌍 [[m] Join the community](https://matrix.to/#/#fluffy-space:matrix.org) +- 📰 [[Mastodon] Get updates on social media](https://troet.cafe/@krille) +- 💝 [[Liberapay] Support TatuChat development](https://de.liberapay.com/KrilleChritzelius) + +Buy Me a Coffee at ko-fi.com + +### Screenshots: + + + + +# Features + +- 📩 Send all kinds of messages, images and files +- 🤙 Video calls with Matrix RTC +- 🎙️ Voice messages +- 📍 Location sharing +- 🔔 Push notifications +- 💬 Unlimited private and public group chats +- 📣 Public channels with thousands of participants +- 🛠️ Feature rich group moderation including all matrix features +- 🔍 Discover and join public groups +- 🎨 Material You design +- 😄 Custom emotes and stickers +- 🌌 Spaces +- 🔐 End to end encryption +- 🔒 Encrypted chat backup +- 😀 Emoji verification & cross signing +... and much more. + + +# Installation + +Please visit the website for installation instructions: + +- https://fluffy.chat + +# Configuration and Mobile Device Management (MDM) + +TatuChat supports configuration via MDM on Android&iOS (since v2.10.0) and via a config.json file on web. You can see the populated configuration for MDM on Android in this file under `/android/app/src/main/res/xml/app_restrictions.xml`. +An example configuration can be found in the `config.sample.json` file. + +# How to build + +1. To build TatuChat you need [Flutter](https://flutter.dev) and [Rust](https://www.rust-lang.org/tools/install) + +2. Clone the repo: +``` +git clone https://github.com/krille-chan/fluffychat.git +cd fluffychat +``` +3. Choose your target platform below and enable support for it. +3.1 If you want, enable Googles Firebase Cloud Messaging: + +`./scripts/add-firebase-messaging.sh` + +4. Debug with: `flutter run` + +### Android + +* Build with: `flutter build apk` + +### iOS / iPadOS + +* Have a Mac with Xcode installed, and set up for Xcode-managed app signing +* If you want automatic app installation to connected devices, make sure you have Apple Configurator installed, with the Automation Tools (`cfgutil`) enabled +* Set a few environment variables + * FLUFFYCHAT_NEW_TEAM: the Apple Developer team that your certificates should live under + * FLUFFYCHAT_NEW_GROUP: the group you want App IDs and such to live under (ie: com.example.fluffychat) + * FLUFFYCHAT_INSTALL_IPA: set to `1` if you want the IPA to be deployed to connected devices after building, otherwise unset +* Run `./scripts/build-ios.sh` + +### Web + +* Build with: +```bash +./scripts/prepare-web.sh # To install Vodozemac +flutter build web --release +``` + +* Optionally configure by serving a `config.json` at the same path as fluffychat. + An example can be found at `config.sample.json`. All values there are optional. + **Please only the values, you really need**. If you e.g. only want + to change the default homeserver, then only modify the `defaultHomeserver` key. + +### Desktop (Linux, Windows, macOS) + +* Enable Desktop support in Flutter: https://flutter.dev/desktop + +#### Install custom dependencies (Linux) + +```bash +sudo apt install libjsoncpp1 libsecret-1-dev libsecret-1-0 librhash0 libwebkit2gtk-4.0-dev lld +``` + +* Build with one of these: +```bash +flutter build linux --release +flutter build windows --release +flutter build macos --release +``` + +## How to run integration tests + +You need to have docker installed locally! Run the preparation script before every test run: + +```sh +./scripts/prepare_integration_test.sh +``` + +Then run all tests with: + +```sh +flutter test integration_test/mobile_test.dart +``` + + +# Special thanks + +* Fabiyamada is a graphics designer and has made the tatuchat logo and the banner. Big thanks for her great designs. + +* Also thanks to all translators and testers! With your help, tatuchat is now available in more than 12 languages. + +* The Matrix Foundation for making and maintaining the [emoji translations](https://github.com/matrix-org/matrix-spec/blob/main/data-definitions/sas-emoji.json) used for emoji verification, licensed Apache 2.0 + +* Special thanks to MTRNord, Sorunome and Advocatux. \ No newline at end of file diff --git a/REUSE.toml b/REUSE.toml new file mode 100644 index 0000000..b57e009 --- /dev/null +++ b/REUSE.toml @@ -0,0 +1,63 @@ +# SPDX-FileCopyrightText: 2019-Present Christian Kußowski +# SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +version = 1 + +[[annotations]] +path = [ + ".mailmap", + ".tool_versions.yaml", + "pubspec.lock", + "*.json", + ".vscode/**", + "lib/l10n/**", + "assets/vodozemac/**", + ".github/**", + ".gitignore", + ".metadata", + "android/**", + "ios/**", + "linux/**", + "macos/**", + "integration_test/.gitignore", + "integration_test/data/**", + "integration_test/synapse/**", + "snap/**", + "windows/**", + "web/**" +] +precedence = "aggregate" +SPDX-FileCopyrightText = "2019-Present Christian Kußowski" +SPDX-License-Identifier = "AGPL-3.0-or-later" + +[[annotations]] +path = [ + "assets/sounds/**" +] +SPDX-FileCopyrightText = "Pixabay" +SPDX-License-Identifier = "CC-BY-4.0" + +[[annotations]] +path = [ + "assets/sas-emoji.json" +] +SPDX-FileCopyrightText = "Matrix Foundation" +SPDX-License-Identifier = "Apache-2.0" + +# App Logo +[[annotations]] +path = [ + "assets/logo/**", + "android/app/src/main/res/mipmap**/**", + "ios/Runner/Assets.xcassets/AppIcon.appiconset/**", + "macos/Runner/Assets.xcassets/AppIcon.appiconset/**", + "web/icons/**", + "web/splash/**", + "snap/gui/*.png", + "windows/runner/resources/app_icon.ico" +] +precedence = "aggregate" +SPDX-FileCopyrightText = "2017-Present Fabiyamada" +SPDX-License-Identifier = "CC-BY-4.0" \ No newline at end of file diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..69c3413 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,22 @@ + + +# Security Policy + +If you believe you have discovered a security vulnerability in this project, **do not open a public issue**. + +To report a security issue responsibly, please go to the Security tab or visit: + +https://github.com/krille-chan/fluffychat/security/advisories/new + +The following information can help us address the issue: + +- Clear steps to reproduce the vulnerability +- The software version you are using +- The affected platforms + +We appreciate your report and will respond as quickly as possible. Please note that this project is maintained by volunteers and is provided without guarantees. diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..60a152d --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,89 @@ +# SPDX-FileCopyrightText: 2019-Present Christian Kußowski +# SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +include: package:flutter_lints/flutter.yaml + +linter: + rules: + - directives_ordering + - avoid_print + - constant_identifier_names + - prefer_final_locals + - prefer_final_in_for_each + - sort_pub_dependencies + - require_trailing_commas + - omit_local_variable_types + - cancel_subscriptions + - always_declare_return_types + - avoid_void_async + - no_adjacent_strings_in_list + - test_types_in_equals + - throw_in_finally + - unnecessary_statements + - avoid_bool_literals_in_conditional_expressions + - prefer_single_quotes + - prefer_const_declarations + - unnecessary_lambdas + - combinators_ordering + - noop_primitive_operations + - unnecessary_null_checks + - unnecessary_null_in_if_null_operators + - unnecessary_to_list_in_spreads + - use_is_even_rather_than_modulo + - use_super_parameters + # Flutter specific: + - use_colored_box + +plugins: + dart_code_linter: latest + +analyzer: + errors: + todo: ignore + exclude: + - lib/l10n/*.dart + - build/** + - android/** + - ios/** + - web/** + - windows/** + - macos/** + - linux/** + +dart_code_linter: + rules: + # Dart specific: + - avoid-dynamic + - avoid-redundant-async + - avoid-unnecessary-type-assertions + - avoid-unnecessary-type-casts + - avoid-unrelated-type-assertions + - no-equal-then-else + - prefer-first + - prefer-last + - prefer-immediate-return + - prefer-enums-by-name + - avoid-unnecessary-conditionals + # TODO: + # - member-ordering + # - avoid-global-state + # - prefer-match-file-name + # - avoid-banned-imports: + # entries: + # - paths: ['some/folder/.*\.dart', 'another/folder/.*\.dart'] + # deny: ['package:flutter/material.dart'] + # message: 'Do not import Flutter Material Design library, we should not depend on it!' + # - no-magic-number: + # allowed: [-1, 0, 1,2,4,6,8,12,16,32,40,56,64] + # allow-only-once: true + # Flutter specific: + - prefer-media-query-direct-access + - avoid-wrapping-in-padding + - prefer-correct-edge-insets-constructor + - avoid-returning-widgets + # TODO: + # - prefer-single-widget-per-file: + # ignore-private-widgets: true + # - prefer-extracting-callbacks diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..6f56801 --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,13 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/android/Gemfile b/android/Gemfile new file mode 100644 index 0000000..7a06eb1 --- /dev/null +++ b/android/Gemfile @@ -0,0 +1,4 @@ +source "https://rubygems.org" + +gem "fastlane" +gem "multi_json" \ No newline at end of file diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts new file mode 100644 index 0000000..b047ec1 --- /dev/null +++ b/android/app/build.gradle.kts @@ -0,0 +1,98 @@ +import java.util.Properties +import java.io.FileInputStream + +plugins { + id("com.android.application") + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id("dev.flutter.flutter-gradle-plugin") +} + +if (file("google-services.json").exists()) { + apply(plugin = "com.google.gms.google-services") +} + +dependencies { + coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4") // For flutter_local_notifications // Workaround for: https://github.com/MaikuB/flutter_local_notifications/issues/2286 + implementation("androidx.core:core-ktx:1.17.0") // For Android Auto +} + + +// Workaround for https://pub.dev/packages/unifiedpush#the-build-fails-because-of-duplicate-classes +configurations.all { + // Use the latest version published: https://central.sonatype.com/artifact/com.google.crypto.tink/tink-android + val tink = "com.google.crypto.tink:tink-android:1.23.0" + // You can also use the library declaration catalog + // val tink = libs.google.tink + resolutionStrategy { + force(tink) + dependencySubstitution { + substitute(module("com.google.crypto.tink:tink")).using(module(tink)) + } + } +} + + +android { + namespace = "chat.fluffy.tatuchat" + // Workaround for https://github.com/juliansteenbakker/flutter_secure_storage/issues/1224 + compileSdk = 37 //flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + isCoreLibraryDesugaringEnabled = true + } + + signingConfigs { + create("release") { + keyAlias = "dummyAlias" + keyPassword = "dummyPassword" + storeFile = file("dummy.keystore") + storePassword = "dummyStorePassword" + } + } + + val keystoreProperties = Properties() + val keystorePropertiesFile = rootProject.file("key.properties") + if (keystorePropertiesFile.exists()) { + keystoreProperties.load(FileInputStream(keystorePropertiesFile)) + signingConfigs.getByName("release").apply { + keyAlias = keystoreProperties["keyAlias"] as String + keyPassword = keystoreProperties["keyPassword"] as String + storeFile = keystoreProperties["storeFile"]?.let { file(it) } + storePassword = keystoreProperties["storePassword"] as String + } + } + + defaultConfig { + applicationId = "chat.fluffy.tatuchat" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + ndk { // Workaround for https://github.com/flutter/flutter/issues/162153#issuecomment-2612443642 + abiFilters += listOf("armeabi-v7a", "arm64-v8a", "x86_64", "x86") + } + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("release") + isMinifyEnabled = true + isShrinkResources = true + proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro") + } + } +} + +kotlin { + compilerOptions { + jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11 + } +} + + +flutter { + source = "../.." +} diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro new file mode 100644 index 0000000..f283f5d --- /dev/null +++ b/android/app/proguard-rules.pro @@ -0,0 +1 @@ +-keep class com.hiennv.flutter_callkit_incoming.** { *; } \ No newline at end of file diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..54ffc12 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/kotlin/chat/fluffy/fluffychat/FcmPushService.kt b/android/app/src/main/kotlin/chat/fluffy/fluffychat/FcmPushService.kt new file mode 100644 index 0000000..0db8bdc --- /dev/null +++ b/android/app/src/main/kotlin/chat/fluffy/fluffychat/FcmPushService.kt @@ -0,0 +1,28 @@ +/*package chat.fluffy.fluffychat + +import com.famedly.fcm_shared_isolate.FcmSharedIsolateService + +import io.flutter.embedding.engine.FlutterEngine +import io.flutter.embedding.engine.dart.DartExecutor.DartEntrypoint +import android.content.Context + +class FcmPushService : FcmSharedIsolateService() { + override fun getEngine(): FlutterEngine { + return provideEngine(getApplicationContext()) + } + + companion object { + fun provideEngine(context: Context): FlutterEngine { + var engine = MainActivity.engine + if (engine == null) { + engine = MainActivity.provideEngine(context) + engine.getLocalizationPlugin().sendLocalesToFlutter( + context.getResources().getConfiguration()) + engine.getDartExecutor().executeDartEntrypoint( + DartEntrypoint.createDefault()) + } + return engine + } + } +} +*/ \ No newline at end of file diff --git a/android/app/src/main/kotlin/chat/fluffy/fluffychat/MainActivity.kt b/android/app/src/main/kotlin/chat/fluffy/fluffychat/MainActivity.kt new file mode 100644 index 0000000..c65f987 --- /dev/null +++ b/android/app/src/main/kotlin/chat/fluffy/fluffychat/MainActivity.kt @@ -0,0 +1,31 @@ +package chat.fluffy.fluffychat + +import io.flutter.embedding.android.FlutterFragmentActivity +import io.flutter.embedding.engine.FlutterEngine + +import android.content.Context + +class MainActivity : FlutterFragmentActivity() { + + override fun attachBaseContext(base: Context) { + super.attachBaseContext(base) + } + + + override fun provideFlutterEngine(context: Context): FlutterEngine? { + return provideEngine(this) + } + + override fun configureFlutterEngine(flutterEngine: FlutterEngine) { + // do nothing, because the engine was been configured in provideEngine + } + + companion object { + var engine: FlutterEngine? = null + fun provideEngine(context: Context): FlutterEngine { + val eng = engine ?: FlutterEngine(context, emptyArray(), true, false) + engine = eng + return eng + } + } +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..c39b3f6466232f56facf1f3f0ba682c7b9a905b2 GIT binary patch literal 598 zcmeAS@N?(olHy`uVBq!ia0vp^i$Iuz4M-mPBqq(kz$EMG;uumf=k48%6Q3CHFgQw_ z2=&y6dFt4D&~TS>MRNAOhNGXp)$TJcxH<1}@rl~%-|`HLJ3`*{@GE^^s}QuHLq$W0 zv&*ANY0?IFLCzZ!U6`&NpTOj*a&UuF(^p>3J~@v9HaDOwlEQ?3kEZ-EkocirG9VKy zn3WGE>Of3^tFu+&+!v{MP*Q@kO;m_STSX$w!(hz>xHQ!kbA7{BZ<%-pTG9Wj!nn7%M@S>3=Jpt-$pdcpo41tq{8cT!hx-du-UJ2s9nY209_wnDZMrG~^PM4sI@iT5$Z1=ZELI9uOtKV7cPc zWNaWbr*R_OC%{m;W)2DiWRuPvfNOyWzY+BO0QAnhrOKd?1-jxe7bswmybcOhSU5wS z01DXq*=ooJL!1bVu)`5Te?l67o`D82&^HiAy7MC(Q@7~^PgvPZLuFukVeoYIb6Mw< G&;$TroXD;K literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..3a514ed796503f0b24c6c6f8a3dc7321fabd069b GIT binary patch literal 7198 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 literal 0 HcmV?d00001 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 new file mode 100644 index 0000000000000000000000000000000000000000..8d9cc1c255a36bde7f053d5d99f247b416527d9e GIT binary patch literal 396 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz1|<8_!p|}=Fa~?NIEGZrd3)y|?;!&Lmq7Vt z;j=t;zC3*80B7yXy<8LAcFRpZFzts1h1 zVM$=l=GQ#lHw_atf!ykd9?tGStE4G?6557t35Mr3NC=BPmJ?g7dMu*T(90bt3pDDI zVDh0PwRK{`V#*sNmMR}RYI)472W-VNj%=XrHAf^Gk8p&Ce~VWQ!@_M;H@f~{r|TU>Hv#s-Q1 zmq8AhlL%6lV7L#g670s048}lxK;vO{0v#y{^2cKyi2H&1f&Kx7%b98L Y!O2~BJY>pbU??+qy85}Sb4q9e08J&BJ^%m! literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..1116df6e13416fc099f7928765a352fbbbe71624 GIT binary patch literal 4790 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 T#n#-weH4+lhQ4~4DgyO?c!p>z literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-mdpi/ic_launcher_monochrome.png b/android/app/src/main/res/drawable-mdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..4fcb9e7fea42bd8a91de28fddf572559d9743525 GIT binary patch literal 4984 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 W&0OuASz0Qyi3u+Rb=ZBXS*`=RR12C>PI zcVwXlzIXxjcvlvhfO6a5f;0S)FyW`+naf$df=W0KKV5Ef*=vJRcw&-MCU?cey;_a$ zp@~nysYEVexMd7WPy;3K*u=eb?d!VN-M?VsAH=<)qY{?ZPI>{=a0c$XTsmDg|9_)N zi-aA$onFHc$cIsvv-%C!Am2AAg!xqO7U`+`*$308E~R*EkOwo~nW6Ml{sbp|{S8Uj z4~?l~GSYyrxkZ@HN%$gVBK=nAS=Qp~r4`2G5>D6MN+-3**V$H>%i&)f{8p07Qg^E! z?W%Xs05_r7*Vs`EXoIJ4Ny6kGf>x-Nu=zS9ejX28>#aK_tqAE}$N&HU07*qoM6N<$ Eg2aLpumAu6 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-mdpi/splash.png b/android/app/src/main/res/drawable-mdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..f4c0bdb922597c27f2e8d2eaccadf53aa8a8caff GIT binary patch literal 5267 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 + + + + + + + + \ No newline at end of file diff --git a/android/app/src/main/res/drawable-night/background.png b/android/app/src/main/res/drawable-night/background.png new file mode 100644 index 0000000000000000000000000000000000000000..1b5df34e7b11f0f86b98ee1597aa936078ce13fb GIT binary patch literal 70 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k92}1TpU9x7?Tqd5`OSAFiJ481h8%G Q0!lD=y85}Sb4q9e0En~=M*si- literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-night/launch_background.xml b/android/app/src/main/res/drawable-night/launch_background.xml new file mode 100644 index 0000000..3fe6b2e --- /dev/null +++ b/android/app/src/main/res/drawable-night/launch_background.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/android/app/src/main/res/drawable-v21/background.png b/android/app/src/main/res/drawable-v21/background.png new file mode 100644 index 0000000000000000000000000000000000000000..e29b3b59f99290135b0cf3745bc9993ce935b27c GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}blZci7-kP61+pZqKgT>LDI5tB{+ Q0fiYnUHx3vIVCg!0BB+iu>b%7 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..3fe6b2e --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000000000000000000000000000000000000..6546be8faecac1cc23bcc29d6e4002be7f78ca4d GIT binary patch literal 814 zcmeAS@N?(olHy`uVBq!ia0vp^H$a$!4M=t>=)PrOVEXFm;uumf=k48tyoU`0m>q3z zWY6;0`ObM|lHh?ED;4H9r2kTR|GV-XqtNf~{0-)}_cHNl3Gp~VkhOc0W2&0V3l9Sh zPXi83ONA7dmI;D_P+6dwC>M^%Z>M(UE`fQpVJ-Rs*m6f2Xff|Zl^0v&$Xqzxg4(eEl<3R4ut>XCkgBfI> z&Tl7>EpUAxLp#$zuDh^q8nY45e-KxLbOHSbUkrG%VC!6B)g9=Yvj6sG$ z(3TF6B*;rZNgx9H0Ax#(BLtn0=W%j#0R<)mMNVy+kQxsPwkN-VzHIe|1rjhs-#0s+ z5Z6yp8Hk{!0Yed@xaJR|)3jPekSnmb5h&ER8XV_94LuzK zw@T%BKq2jC;tX;iFt9R!2~Go&R3M28m~K>n!MuYD6upR`2L|mOVC*51#h-)V^a)IS Z{1qa+dJO6dd4TzV!PC{xWt~$(697Ze2=o8| literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..7093798ec49b3eddd1f36e2dc30e06a3d2f94b96 GIT binary patch literal 9889 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xhdpi/ic_launcher_monochrome.png b/android/app/src/main/res/drawable-xhdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..0dd0c27b209e1aeda4f0f2bc06d50da223c46a43 GIT binary patch literal 10431 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 IM6N<$g3$^&BLDyZ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xhdpi/splash.png b/android/app/src/main/res/drawable-xhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..dafa3b70704e58630f8eeceae91ad69bbb54ebe0 GIT binary patch literal 14346 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 DE3n96 literal 0 HcmV?d00001 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 new file mode 100644 index 0000000000000000000000000000000000000000..6031e62825cffc5f60eca8a73779e61d6cd49b5e GIT binary patch literal 3506 zcmZ`+dr(tX8ovPqmPf%_6%dJFTV^dwcuW>3kEr0LwiKM!4kALLJTg-RWW$&s5YjrE zhQ&px6`ECHMkw926=dm#@JtvG>?FdZZUfzr2e1Yx5>Sc>5RyG7NSd3Q{_zbn3HRLZ zeBbYtsuL+>Pd7g|1VKEHzmxO>SpKhz8~*)&#hNxyy__XPs`cbJ4};KXzWlS0>xt!j-5K?6(kZY^#td! zZ&J93u&&ZuSE1@GkdOM1=-Q;bj7CdovY*b?mc|wvBwf3B1r@Ja>LxjlZ9Ya-c#(%I zB(*7;P3}nJK{Qt`&dpFKIwfHIh&HhUp;QA!qEuF-cyNAK8(s&aIDGA!%q74@*Jg3 z-e1u9U{qovu{4ug9c*_pGBJ>@5e75I^*nm8&*HBmixQUxFGpfYoueZ*wVCVxp@&>p$M!3;NH zSVoa#B`>#PzA4n^I_q=6Im|_8Y6zaElNYE8D=SYv+do4ay=}hjueaWR{%%Nr*hUNH zl!W1L106i_xyWFC6f(Hm0m<&-=enl5V8i}lX@nd{t=PG%(Dh#vEM_?L42pq#v zCm%5}iT&1TO5*xgJxS=T1N^P)rues`Y!67rb9d+m)AQJ8>wT${4AM?q!=Up@yWrvHoUOAL^h+HWjCHu@_v z42KP}rYLmdk6g~-STSOcu&00+OMwnoE{_)m)DzqG98`td-bHfRYpB&8vZH7`T$Xl> zQiFhfsUIAS6rDJ{5Bda1a4De86D#abH~rPlF~6mEfVx?RBThb9Jveg# z0u?FVc-OK=C{9|^_%&kzaiC{->{cx5B5OW9q@{dk5u`9Y0n+#~acD&SarkpP)M?1g zN?(%n(y*%AAwdX$gFcM5KnFuKGsh@9CPj~OWlp(1Q)Nd!!0f95Pp0+;iI)HCDT)>x zRcA1&(44E$R_LvjD?qXG(BneKKOL6Epmj4<`#5^Rx1~LseRKL6470VJtHfsU@03Ig zL>Ku`1R-I~qy>}IRrGNMrt-tjzQ7z4@HC>$9-b@0_o*M?0s6k#;emeuzd;7UX;X7bYn~^QbqVEG41K%XWqBIN{1mKO zU#kDDT;mVPY$v188 zD;6qVEWXg)nX!W>d}dibie&4M|vsq2Bz6qkJMwk5a;-W%4&x4`x)e;%Z2_^t zq~2B#@VA|{s0kNLEab|As zwDHWjIIJyhNd2aP5XNID_{%4!*n4jtdMQ?YT-W8C`n3*gJgocuKv3HF_}gL+OJqBL hx7<3*Pnz6+rrc@#Lni$m_$`JUKbDfzdX)O<{{h~|^RWN` literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..69072f1633d682a97eee5959c1c6e754fdca8b23 GIT binary patch literal 16079 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_launcher_monochrome.png b/android/app/src/main/res/drawable-xxhdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..ad85e0b39fcc3712dec161d0879a14940d7ef79b GIT binary patch literal 16679 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 S^(nXb!je)R4m~cdi~IvC)(!Rm literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..f03ed0d73fa6692cd0b6eb2458cdf613d3a618cc GIT binary patch literal 20522 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_monochrome.png b/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..8e0ffc82df22781e4906f6ed7476e804d4409c62 GIT binary patch literal 21547 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 Olfl!~&t;ucLK6VtF*ip5 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xxxhdpi/notifications_icon.png b/android/app/src/main/res/drawable-xxxhdpi/notifications_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..87a29b65a5847169f523cf47a9a7c1b90ab58de2 GIT binary patch literal 2536 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable/background.png b/android/app/src/main/res/drawable/background.png new file mode 100644 index 0000000000000000000000000000000000000000..e29b3b59f99290135b0cf3745bc9993ce935b27c GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}blZci7-kP61+pZqKgT>LDI5tB{+ Q0fiYnUHx3vIVCg!0BB+iu>b%7 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable/ic_launcher_foreground.xml b/android/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000..11845a7 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,29 @@ + + + + + + + + + + diff --git a/android/app/src/main/res/drawable/ic_launcher_monochrome.xml b/android/app/src/main/res/drawable/ic_launcher_monochrome.xml new file mode 100644 index 0000000..f0b10e7 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_launcher_monochrome.xml @@ -0,0 +1,11 @@ + + + diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..3fe6b2e --- /dev/null +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..854fef6 --- /dev/null +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d17b8e5134234349046ea0b64e610db06b08a675 GIT binary patch literal 3178 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

_(56rNbT*SUxxB z;pR5_{K6v`bMyK&68Hu0O#Db!CoqS7z}paVW`Gz9PW4h`Xct-8dYm59hz2WOtrRSG z1t&zB6agjZ62Dr6%I=AE&glD{8VH!*t$i3T;(kW&jQs?Wc6)6-l$^n*EUM4i5)ZKz zCR3Osx{e}jqoVX+(`d_bA4~JFel<4iIo^x^-moEW*bsT{4-R62DYM-|#TeOC($BvP zUB#>6yuB}?Vd?u(ax9KG8-azo=|pO@zmt9(xnY?b8k>IOqo!ojDkkA4ud;c>!^)RV z_O%TlL1$2aPJfF60Pcw04wEe1gsDQQPx=^A&}x)aV0J0Tg?@u7u>vYE7Z^2i0X_n- zGP{SPX^S4g1-m9!J}%+(H4hE5*0F%x9a>MwXa$xyv#zTjHE);lp!}dj`x4Y_k)Bhp znUh=Bpm|OcvwBcQBO%5i8KBQJAVrT;=FebYGyAlVenlm7I71z|WdSK(UVzpzm|`q* z?en$qeCK=tUSp+UJn)uvSB}7;f@lHZq@rwFI@2eolY{W>;l`wrj-X9=ThF`ce^K*| z71ST3+W%Qy3DpH?vf!23`kHz5%0T&G7i{=_=$E!^<`$ejTSZ;1X4RW+_Qbh7ESlH3 zbeGBAPJd248j{HCL+k6qQ|UjuWeRArz-h5!YviJMYTAc}Y4Y)L-;tQ^0 zD`VrgxEzXMusT6D(@_e7>riN>GvVAOCl0!9Y-~G6iAn{GhS7QYBpQl=Js}zjvuP+OfyD- zz&I&VK?&`t+D-Q>EfQZ3c_FWVrblNWpWre*2k=`x6b$WyLL}rLM(S;4?(tfyTekhPK*MM{P@`Rvi<4e5kCYVChvqpkc`Tl%+ne-)Ky{jq(#f!8w7lQScea=| z-sADz{Xfs~G^8m;qWB%+ChG6oK*tKl4I^6#AsWT+$2DF0{Iap5E1Xqw2Pd#6^7t)@ z4dEDmR5pqdNZLN#izeh`(*;qqkG{h^f?i?WeeT8v2(A!LG84&b%e z?Z;T7{#KrR!7o?4ugc@0zVr|_bcI9(v4-;C)?0aUgP@5zh6J`nLH8gR<3I($GIXNc z9H$|`*Xoj8VM*5N289WQ*V+a0^Bl0g1rgwBHd#sWijC%=Dj{F)3wXxVeG%bbm(O%od4~q1wI{t?D>aT-4Iav@Pa+^P(EA7E7mZ&@}>8#yK`skSnWsU zEHdIOwx9g<{)gVrW@INc{z9H{C0Nq*SP5jQF1txoIrebq&a$Qj4cA`lVET8Nm#cl* z`!ehWqjRk2@rPdT z%L?g!__iP6=JJzk(HURS4PNP$v3N%mk4Zb#4ThQ_6_(`kpGc-LvS5a#9T|nwUaxKV z5%AU~du_#3=J|m~`8L4utTU5$fneOoh?)J~^PI`0T2|2@~a_qo{n)~Oy0v87+X zEL43*UG;wu@*OX7tY{lG9Dds3h73`o8AJD>x}z+Px3G;cF8Jxr7Ey~bNx%SJzu*9} zvLu+GJMdtsmURkIs8SnO4Rc1+aWwE9;8Fr4fI2ZqS{GCiA>85Lv}~i&3sCmL9L23e zn{jG?^0%{RfU6K$qklprX4OOK9e=UGUsIu8Q$ebES7 zgi5mN$o78*Zs@croMWO5?W{u*c&T=+%M13=X<}RaQDN1nV7_)lkZ*LjQr^|}(Bp!R zGq?=Ax`V(MU#~^QXTJ;Nnz2{$y4NrwmLEf@D;G42jS;DU zaJhr$uV%HyRR_EZJWF4CSbcr=ram87u0P-6{hhe9{0qUw;O*A`11Gu^(=9g*Effvv zAcCI6{y;h>Qx9F2r)6@Om8}Mrik)|V1J3sR+?&vt3R`m*roy6hLPnTTx%qzh?gNm! zLO4H95ZerAO+#`1{Evh*k-zQzTzyd*r~ zMsvr!H>b@Es@%9Ucd4*U{V$V|0AYQ{1g1OE(1dnsTNOkxPb#4~|!3cc*VQ9=jgb z?vGe!Y~P(`{rX0osStVWiX3cG)m$nA8Ty!}P{Rq7UINOPD>Mn)g6J4rrpoQ+AaeUp zeT`Fg!nCQL_3Uq@KQf|{s4jj`*F4g-p&MZ)nnQ5o^0;S-^#AClSsJ}97src!dhc-ZZ=aJvz3KGK@($&Huk?9O*nV8B zTKDR#``P8!@OA#D%Wss{)`JA#FbbvNop|xMVn0(gHr$Ao$$SYQ2CrKCk$6rqu2N4zD9(a55TAju zrgpe|nm1;#B;#Z(k%;oX$h4!q1jO5-xvT+RaBH27GXNh1Qh_c!!3*5xmYZp9wXkH% zQ3=CuejtPVq0M%!d&+Q)U}w%DJl5zi(&uw?VC=q(T4c$0`nWlzUnk!ISp?=B)t5x3 zY%@(pF_|d>j~kon3M02m;9pO`sL|qSGQDp&+x`!A4Dr?olEffB&yFz?3Xek@@8REl zc%QQ^d-SomHgqytsrW|6hnXn);ux_?bsF8tXU;{qNDeQ96?nr>9MrlT%vHK;dP4Y` zN(GX)yUO$8 zNEITyh+dDpbD|M^pR>?+>s-R}p57-Uv@2wA-+3Xk1gJQJtHlPwKxLl$LRyDTWUErh z1Gcahv}9`IGtu6B<{IQDda_?D8sqqzYmwfap=s$ZEb(VMi|6ssM<7{{t6^rhA_)_YS#jv>C8e^5!FmSaB;2k_&tMANl3+Y_+lvi z@VF}ojO6cp;}tXC4+RzJW5NzqX@Hj`TZW+B07sM@&f^%t1dI?ge0U{u-qUNEYjao4 zVuewQ5Mm1&mXRjXP{XQJ3}Lq5Hm|%472PpSQB^h_T+-2^RvesX>1LZLUlE$@QA4!s z6clpyX13N|Ud!3Cd|)$w2i3dA{BP{f{n5*KUBb& zlQHV(`4Q#w@XuX;6oZ30lEoJIYgyAk9OZB6E5EB|yXoN4OIhX-{i(ff8b7Rp&D@@thb@xLaTD~IMjtHtz!a_2mXzSq{B z!!^H)wI`|16E4rUt4auRnZg*ubxjjWKd;&e6ysgekDZ;}_s9IJxwi#yzS@|7j)Wfi zXaKt;oPnV@VWKD^BZIBk>iwb1eznuZk09|k?%CivJb?r-x-=Ho(Uk8wv@Itq-zwo% zirhS859g^vC9)@@9#Gf~X+!%4g4KTevb!^u3^^Vf?5Z5H&0bVcSNWA8g4NAQUrjTC zBi34`HHd#VX5WT?f6oV86WVMmY$bH3jP30Mo1q3zYv#4log{UG8*$cFGbRml#B{~j z274VfF>C1s9pQ?ZG+KeT@vvx<7XPY>7TFLUwu@z}syXe z{d6neaEwug@f_tvMH`H8&8q7wr~)_sKlJuqa#=T_-tQXN($!>0?O+&Z3dk zIf#faon0QsBFNcXtiucs-tJPuNqzd0!%-V&9bA5m?QekP2Al1ujc)tJYwpD4FoKWk zbJs`j-ac0!?jHNKN{)}Q-WfVR8=^>b)u$}0-LIE?KCfH$>?qK1h|&ux8UC`kN=+vd zqiipM8=4j8QLaHA*RH-wTqrPr0fJFKvT*cTmI9r0U?b)2xaHry&Pj>D4y!ud)H{=*G?`PdGBeSV_jNkunSiyj&J- zwTetnuJsG-b!L|B>VuCWv*-F%*r9AeZ74zY!r$~%#9YS{#or?3N@P!{Y*;f*=5M?Z z7ll*Fk^tu&u}ZZefztmRn6EZrq;Z5THwrS3+)GhQnA^>Dtby~tkx1pVZGqdeXx|Z) zWMpRq!!Q{Wi|mwjV>YlTfwuR+Kr~7n>utYRTjo{k&cd++d7+pPtv7kTx%Fq*Szh@t z?{>S!oo^*4G7H7?e>z>WcQJuSPCILO#wxPdG%ZE8I+CP#V}YGc%iugB6!ii?vcD0a zD!Quj&@YL+B;>J>HLx_kIJ(L3MV|&!te}c;J_@T?`m@<1wCKwyfohQ96^yO41aGY> z^CmM64AhP7GWown&rKxWsq8bG|EAEaNMS&vbmG6gu5}8H7K9PLKi4%qENe=s*s@#8 z(rWX^>!ZMRd>!uWB$1_c{pVu$I;!{n=bl=67UpDR@o!GQLhB)PyTG4cNHq#`EVo?U zFOQ|IKb--z9WzrtS7ietv+3G?>DzshWc5*CSfJ2iHe7Nh^>&GDiTqg#O>;M1nK?V zQ=9jhJG_URKLvlGzr8*M25^BhfzI=vnf^^8d6a#jv36N(?&y#-#um?Y97V4U;FqP} zC?hWoS;=a%)Z##9FczUM;~%Y|MprW)j+(S!9qiAPRRR!1w*8^$0RJ!K7SAe`ddT!gj6$|{HJ(BA=ag{?ioTKwKC2}LC(kCy{6 zMWuKif46B$SZ~*nTrN=a4j>}f+_%?gU7fqy^Xdvxqxs+?+r5%87Q}KD@I7*=nG@9g zDY)ZvoXyYYiNsr&3iHLXctNtzHA}}jkWZANGDb6d$BqGFo;&VNgk4fW*`P(@On9H+ zL1(OK^^d?GvFAWZ{7Vv|tH{mAU%n2~XI3$e9Nw=rU3p8*>?8tygYc*%H|GZ#xA(Bo zRlf%C<(e%l(~xsiLh3Nn(%JCX;HRh^PfpjYKgRoR<=%$+-ploYT05<@o1phd|4%_z zCY#@#mW?{>X)g7uo)ZpQjK6y(n$94YPQ0SVaDS(59kP8}tH z^brj(Iq+W1s90P_|!LP>fobA8I6yaec&ARNk-W8dGK%1}w3y-mXU zXLbeJhlSYY*MhHzHPrro-j4jRk=9mKQ7x;A7hRu9RmM=G@Czarq@t~+ErkME9GbYM zu7RJ9ButB;#1t&eF&V%HSIVi4YtMj&MkY~sD~?YgRU5&ZTpYq(fCU^t<6pHvAuwmB z3;t$w)F;r<*i%nP+E4bEL_6kC?HW#AJAktkOVG;+slvvg?eEn|KqG1n@z42Of#YD> zcr91!OA6?x(~Z=f#;i45<1AR;%}rBzwSdT^Z`K^-v@O`9SdP3@6y{59gBo8pv?=Ca z6a9#QqpEAzu7})O%)tKQ@T|JCdGtScl^R70k&?P`4_}`XU+talls;knh@P${j8}1w z0gpOg|4}m!I5>**@gA=ZFm3ytCD()n_7scZyduwbIZLu}k4aqdd)#Ey`=6bG86J

>s6$N}ZM0T-s132hgt<&c4OFOFG&nS7YJJCgbiMy< z+w<5ES9Tc~66f=G4!!G20c<3U8FQ*-c$b(_T{-RIvq`kg^ zIs8^VM^Df6#gDsS=;gOAGhP>VZ(oM?@52)P+Z-XY{rm6jwBA$id+BC~oeF_(}BJt+2noe{ZwPLe0RtNb;zrReeT& z4B_{8#&BbBLabIDq5VE{J~Sin?`C)xE+*UOOug}&GD1PcG!4JFPk1>Jev<}C8tETfPCj0f$>mDV z2ZWCuzkU@|S#NvnEA+nZ0wKcT;eDRvgk-IWXe44(p3XhpoaA@nbLwaDq~m#-AdC~brg>LO#_pm-4bycLX#tN)7>j@3;CkP$bZ6U`>06aT0lb@Dr=GgV_plv1!O|_|y=crgxL2zZ;ue<$)~)Go)pWS;aBPP2utz zWFe?WBuUDVvR#ah|4~?{O95&M#pMgfeV`jdK1--BWcLAzgfH8eqa>wYWK84c@^1eQ zmGk?(kWV6rv8b6i(+!?nn~|9|2%@zH<^U0z=Pe}SWbk@K;*90>59;;eRh8E`TdgMp z_|x~P$;n5xQ#3=GE)+J=f@tF?>uNn;Yq_*F!^Tia+1&)_&1&NDE*50fx}q4&@uUPD zADQ#J-NSEh)!=q;Q-2J`Q}V#zObJ|W_Y9FoS$t8-7ox14iyTEuJ$m*U@kSNg9VmuJ z=^f)WRMuQo#t(HRIPA}e;2cEYm^5hLKux8QbRV_2##w%X+M{AP=H_WI}>A2q$B*ui6!TtTQ(C)QeihHE7J-;5ko1m9`kqk?*_ZWR*XyM znI4a!C^?qyzD&HW^PQDB`Rx!ZqZr#Q;}QXeiB<;8RACuO#%BR6xJDQ+3#>{HG{rNl z6UQzg;JtUtw{-0Q&ti&B3zc6)6p8P&X(WK-f!k1vXU%^Bo$tBl08$9AF5 z>~{YakG&-dyr8fXrPmgF0{m2NYCf1oWdp4RJ4`3h3>yqfkzqI4Mv` zQ*6wR_^Vw0gtX56Q_bMHD(j=ws)_L@h4#oI(F%v<<6Dp*c|L#Hj^p1<| zy7U0J1wAza#&O1~{~sjyS{V;^z~lwfYP(+$Z!~qR7)V&w8lmcwA?!atoh(M~A=X^U zwvi2HId^|gnbfl|Ugs>aNJrFPPOZdU0oHd%Y`yg$SZpU`+t>P-{I}tBz^YKoD~GMl zTh5!)>M;ttKn>YSBXySP`*J_upgxDc_f4Yu{tMRz zJUVEEWN5K_P67(1cW8VS89|I(vFxYgkeJwK3M;dD&sm}k9bnldWV7J(NbRD63Jw8Nl=_zH$Yd;_>@BxXdo_DJ^E{m`eV@(B?fVown?tpZ#VARYZm}PNu5m zXB;67IA6p#2l70nH)5#{!YN&m97EI7rMXTW_q|bXzx=^HaZmfa@PCK@!@sG@i9PF` zlAsP3mVh8=P$OoUyW=NcG3bOd;?FQ@lh(Hb!hd6xiEIUGomDdHh|3H}m^|k$)6f>; zXgf+Lx~Uka6zp77wiHzoOcyiiRCe_G&3?=ub^)5WCmWkcP>V%>SkFk&iVoO}y00>7MP?PJ3RJNE#cS>9(zt7*(P)EJi^I`mNY2qZ zT{9=Kv`8n05*Ru=0ONOJ8Ee#2vCf4}Pm^_+bZ9m6?_bpY3bsa2bgdp<$zvqLWukpRwJ_d!0*sj$US#ajz z7-`tib7poh6-KaR3DhwRqJW)z$bcXKd@SYfZ%_deg4x=)&(GxIqS$SnybQd^ub1O3 z{^-#%w1(>PBE;@%=xDZ4GkVRw_s+{VQoq+OJd84+2Wb>&+9wCt)M+mZd$WNzOL8|ip(Ub3wY=~FDbIP@?;SF5AopQiHS4~^j z@he+=KPkLT;td`J8wxa-uOr(Z0yN`o%aLJK6dC#6+@lZQA4|67D{PhZyu0{)i>P*>J4^|8!|*~o9mU? zcG4uQs+J>R!ui3$`MsLjeCL(f|7s}y`DsY$SNF!%(*>hwg;I&obT^UGn~fQWGK5>E za@5)zgFsCypcua3Tm45ynUT66n@s#^v}KZJtf0b@uS~h|-Q7#C7r>`Yxc|HTDkP5W zkkvwyja7^akHdgxPU~=ngWz5_*a;v4opf?%8{N2|63qUY{l&ebyoRlMIJ}K!1h*>V znaqfxW3Jt(>J^hm6^1d2?mXDgoK^@rh07lz3^GR`2^7}|Btsz=LCRy0{*i$Bi);1T zk2IT#Jgp!wg=-4<^43YgMVd6PMo@wFoD-{l2S0Ux!MTm3UUkAZ=GF&Kj|g1cBtch0 zWP&`UhLma%v^Vf23q?5^Lu;6I^7f8q%yX9>INHm(t#-~@P*ORYeo#XK=TsF^1#(c^ zeqA*RDXAsYQB%RKAC^U8o}11u z&9-)H=Sw^LGUU*2IpBA)-VwO#9R&0s=T7m)loO6m0|PoS69yI<=E&he7dT`z;mDSy z(&#~0cuW=qBVKyWhPdb67T!v-am}%Rjf{V3X##X4OfjN6%}f~x3V|wWT$~q1BGx)d z&Iv>ma1T@_vg)c7s%~F&IgkY(JKVK?>J{S31+ld#Ovy6fbP*9W^>iFLbR9P6@3)iy zqcqfd{F*;l^C5PJ@RAZ;+hwg&7Bf02w8EXgMlzhG!qBt3q%MY}3^B7Qa|wQr651Yb zAsp(Bn&!mDFQfC)*A^D0htV-@+ZqSpmV#m5OrOp;I*??{SU#}-(iF|QLEj3DTH6Z0telmKP{Fsf?^S4B0)O8SZ<)f88v zFu;IC_B|D+MI%3ckfoaWpZs=*uVZHRc+7PNwia4u4Gzvm_9duow9c+glp}zD$B~Zl z%lXEhEvM$5Lc$k*mQe`$IhINfZK?j}0A%vH;?PDtJ4Hk2)sO`IP;RLdM7`7QOROZ; zfr3ZQ1Uco+t$Ia>UAoWQ@b(J+e4+oo@hUwk5WDpsqchuPchMicjDXVEEPV!*uP$4(fVq&0iyy*oVe5K|BotDzx81L1S$gZT-UC=iU0} zKJMoqma9@0zraF}^sG~(zQHTWCXXtfa<7zU^bHOs^!F*)Q)E!nj;qh{&@un}9Zx&g z8i#^HDWl7&ayiB8jBrF2)jEC-;f@m3tSZzPa=v81Gj+k4fV=M>=Yz9rLHDx%%LQ=Q z8)Mh~jHCB1W;7tk#4oRmr>r)fWe7Z2AiVXy$7_C98(I0oEuUfOgAez`1uX+*$W+kAG5V&T(ibtKAhG%5dY zfeDDFRH|i7HM$bILq%x-D=}*qLpOSY6=e-3ND1*mMp!}B z?5wh?YlY!ZX+3;V)tsL{ZotHi=I(CsWu|X3s-_X5dlctiiDfOB=UA?`^0s0Nk{Yc3 z@gMwb*2e971||Ak_B~-f`+Ul*#q;G;_2VT6Tjh*-#|t;;*R$=FP$4Gc`yR|G#f0X5 z?|TD#C@l*jv>dHu2id5^Ny?Cf|^H{xkHOdrS)&OW=5Ih8g_WyezH=&kyzRR4Onqm zjGWD-f= zJ7H3=C&qp&1tuQzRgRW;1*cdcS?q7$i=)#I59>`|rhMV{QkqP5T`~6*^sET?`k(V6 za~2B);ZJl0`uY2FByxSwQCk-$$h~VL$0fB?Rc*-qTro~6%uysK?#o}kzE6q*S0uL) z6;*a9(c2NG;us^p>1UpD#DMB5BoOiJv(F#CiT-^@C-@)o(SJMS&HeQ2gLfB)# zrn<$Y2j#sl8iJ2cK(V#r5^(tZ6?t&D&O!zQd+7^gHq_8Z+WWn871h(?ah-?T=Jjc^ zxzA@fNQFhS1{aY9MyFz0lkTxuHhS_-ulw_>zA||&RQC}ngKl}a7W2^5)ckcO;YxXD7hwnF&Z}r61=l(rj7=H&eET$UHIk2`ZN&Z??vH*ok zEqM6FR(|~$3401oM=`qz>=NM7k1qBh@6Cm_6mUyS&zq1*O%+g(Azi+@K< z;Xp`?7zkWU1~F2LlOM<7f;y8v{7iDj#%l$$Es=rYuOJF_pMVt8K`e>f=;tlB5H?JH{wCul0 zmpTsIUVwbUe?A?}T|eERk1iurYSj>$jK}6&_(`FB)w5h~3bT`1Y7;L2$3fB;rA!3M z1)U4X!ts@&mEhskFbM{CJpZjR?*nyoY+aupg_(2dz7&R6WeNYH&k;LB%i0x7%c)L+ zh$&bM(>ZR9T_C8XB8O8gm8L*TVX(YeuL|G}!yz{O>&P+El!n~=uz!uo#s;~B0)r(@ z{S^P1o_}cn>HK-XE||~1EGFN+!jZ;?xlMeboV3BVf%WUFHwx2(ecKv>7)nSmC9 zQBXUi)6`YkCuvFQ%+Wc z!~t738DexMiod>4H<*wVB$|B$?zfVHCVsG)_&$Jh+7HEfK(~9^vM*b4$4Y{tQ{yX# zJU^cX`2e^~swQuM=MWWa75azZ(3C6k0C{nIc8FkMIIT&zT9o(s>w$7z^;^iZ$@vp; zTX{IRNl|t1N;Imh?pCtO;~!mOAPf^*25S>`iYo1mO(_@8j}{eg8MZdzieR zGqtZv-~$DsoTawoQxf9Nxk#jMvao7Nv#7Pek=uTL!+je3-Z#3w-_C0LMI0;8RL}7O z&aPbvPdXySLQXkcL=8DqGC8Op`$!T*8GP%~b67^`;nr{tAPO>YNJ?QV9`_Xa1MhXJ z#R+yq z{h%vds;uLL=jFv8&OQGKo$J2bT7(+7p$@=7E}90&=epRDz$n#zF*hf~iX`;~>z8)n zcY?t=EwjpHTQe3j01g<&Y~8voKG4(Buh2jawxue>#-r&E292FT-|B5wOqeb)3=cQur^0K zL*YGHhDeo+P%F&P?Yt~$oFamNuq`q^fY~&@Hl}`#2i;gQ6mQd8Fnq91Un(xA0Wo-v z{+(nN|LyO1L3E^yYEE+hEq*!0jy$Ytvay=gH?BAliuEi?g;*AHa|KpN*($^*Oxp9F zZoi2DeKQOOavJ;j>*r)7K9*NnM zv~%!zd&A%H|MbnXZ5O9nkibxG|DwYgV9=^nkaFbpi-zF~8@vO|u?nzp9*&yq4!UYl znp#GOGIX#8$Ad$1MY__N!O61aH397}0@iB+{`o+7rmw7i^?_@mutgvTlqpqJ(zD;m z6MnuD$-lz?J$_AI`w;!#1O3Us%~>)>XxDjLhvVH{sakwr*Uh?`L&E9K?M^<1x|MJ@0EXjDHeVHg&o7LzcF~>2FJ>>GU^I%Kd9*WR;Y! zFO@c)UteN&m)~&(3|ZGPZD0x}7mRqnz>xPML_k?!6qby~LKtj6k@nz>jXV)S5NRW6 z$Q)yaoGovL0u7hWKg@nn9VgvE!HA1EH>b`T>#$LdE zU4yp~N)QDQT8eDeb@2XNw5n*4w07NV&Y))Ol&*|>wDDuon}*vgZaHM;_F1!b>O5Da zfTeTI+V;VPay(E{(~Sr;4S0tnmKw^mxP$;dyFCOg1rHB8nUo5wgpUu!0Ki z*MSl-3jl^8v(|!da3R8L3JA-VK0kV2KKO_^pd~6 zpoAhLKCL_XzxnNh2ZSe=) zRztY~LB3a9s@+nv?KS+E=RfUs;-HH8Bb@5~Fv{I*VR)dX`m#)sY9=V6 z_`7SJnrH0MYzgDz@TibTa=Dm*$YUWKKzilBzxLk1^8 zN~up@RH^K$(5lst5O#l*bNGUyw{lV?qWML%avBRGs?1J{38!XFu2XkT`N>2SDMqzL zgELSb46*vtd^=~!SNc~afd#PwhML4dh%oZkd&t|#M#J86QRt=3?;($NM#?huW%DSB zv;lxu>eQB9t+#VFLglzK97iufc~Ll(?oUOLR2hN9JuGH6D9-`? znv^Vi^wGBhIH*q~kpHz6))6LPoIwqkpM?=EC)OvXjFDxekUa^51ae(bm<@b)Umnsx z?x!yy@BO)vL3>ntb>)W2cm`+BqGwAHcDL>V${HTQW_lJbGn(5CgaBFD z$;#`K1!~+gY6h*C*CW(61Gbs0@xBwhdb6!anJz_D5eCRp>JD zC$({MA{H=$OdY-+LkpTY%)Ep=nARafSwp|0IehKDCwduo^Dkf_T-@f>*|)4>$fpgg z;JEM_xENRr53x%Bp`YjM>M5hkC9Owk8VbQ+S}_w;c+3C(lr?nmwUTPebZT(4Fp5Sgt z8|j;&P!*LCS&mYNSC{31mt<6x&a{MCmP8jb`!}8-O>V>&E*oS5BSU|nN|_y2#=Gz1 zDPfw1_60~oK>~vFSzEGgm(~VnxLxeUn6*l-eOXkmsG2oaK`Me#(*UH&X+~3rXIqCA z(!%5~MYoo*ah6=N_iFp!`xK=}TBQ;i&?j`$!o*7>T5^yiu<07XfaIi=^LBcgB`6r9 z58Plz*dU4}S*x|=i1Jr%6rFcHB48=VrG?=a!9=G#CdaKYzH(Hc^o~X}yFu|L2UJxx{<&G8&A(FeJL7t;%zwfES0y4R zfs!}UG;*)}J!6dC>%*Vjx8iF4x4SetMJ&B3l;N6wrW{tPe2eCPh{ z!d_#(z0r7fBoH*W4M0sCLJMa>Bn|vO$flDbfQ`hNuErb&~fM zYI@IjyC1co_>KEx7v~l_{Gry8xPb>>2a=L~q%TKYrhAZKbgv zF73{3;xE>Znl^M1H@`~f=vCXYsw(XrWW$2YV2$q0)U zF!Kxtvg=23FVQi+xf-6&d4>q`V|se5{(P^$a{o;IJTEogS2E7L-0`|FBZe%iZARw{ zG9dn@=Ln8*sPJa6j?K{1Txj+!8h9mih?S%Jw!8TRWsucm))?+PK2>Ka&C%? z5#C##lvJi#VRckizs{m66q|3ucpe{bJhBK5fvt55vWAb)6B2ge**OhSMS40o z${K0UgvCt~0qtne+xJ?V&W?Vg#bDJc_n5n&Py8{Ll9oMA#Vxkx!Lzakl6UqFdALyWx|03rh!cI+Cm@IlSL?dE#*id+=hNtHF^nzah#zkWymKTLfE zSCmoPE-`cs-7)kaHGoKW4qYlB-2&1f-QC>{(nw2#Gz_gEAPoY7bl04D&-a~m-nI5G zc-DIMzV9my)M}fO7?tHLlZ{VqMcdxI8S4G=v6}DA_>$A2j?B|eVB{4J{Ac0s$Y+hB zfZz9FnS#HG77fD2IWGx8Dv-eX2^}VSJHW(?a+&;IIcI-+O z95(<_^A>4NCiRkG;0zXa6IpLrffCPVO6TKVSei@t+R7oH-RFj@W$Y zyrsm>3koSsVQ64Vz}=|Q8b8m@Zmk*`&4r9ERXT3)iz>_MUYi(MS@`XR+ zQdjKxW0q^_)wNZH?d@lj>4mA0AHO?3c&etp&N}pEI^%o!4FFVxsg~6GTd!o!_t1B( z@+WKqP`@PQSugQ;&tPM}&Iga@G@p!gy{z zfx-za@W7jT?ej3OT7Y>}i{qq5;IqxQjzbqg#EhcPWteh1mZcxM=qcyaA+*ZyP_O}C zq(AfRgZp;F&oL-;Ts#8g&rFRHFMIFEu*@+jc^ATSv|ge_IVGTDI1t}|s(fbITMF%T}* zWx$aBJ@R1OfRRy$pzSPD8E=Oq;KSu;c;gN8i+Z zSD;M}i@F|azz_s_M7Z%8F8-;ly^P{ec9U0#Ol^<}5f$v*wMO(Ws2QIHpr%*KEATIb z*ZsJ@Jq+|%y%7qHOfi9RcR;&+RdJcG1dixII4!Pj}?ipWvLm zqfCPwOlZE*yD_6iPw{eJE2tMe>zEO@_GtTavrJs@sc<``RKI0xWR^lL3X773O1>q! zxa~)s1uaS&fcS?@(O~j3X(>|#ato|#LVNE@EqnPb*t^@~SMewwEhG4A!LKe(EoLHs z+&^Uni^W%QAKwd5bM!FFhu@-r`6}6xl<-#M{w_94sQjqI&@VnhvsKehVZLNt$B4WZ zU&I4AHMZ?|`VO9Ws&Gjk$(t2@hhGuAc}h3wMy#pNyQgoejU@}8j{43sU7Z&>TkIV+ zm6!*XFS2R$HHG7SRSWB?IWQKa?67GmU7N&w!;xM`=ws&R+R1;+Eu=R`=?NQah)q(o zru?FkcYdR+B_k2D7sZZDPl(APWo@~x#oVv0y_=`M2(CyXIYhmoox*(r6;RTR=bpgRe|(TR1bXf*Rfr3h}b6@^+$b zyzBu-3_oR+#C78CL4AZn;`fPYfmq*GsYc=10Ak$PJ>-{BJ*XbJ&ItHgD`=C|Y3=pv z@^a&e)#PR3-QC*8v(Y+yGxV5?21RZ4Yqh;hU{QO9bw~fTQ7@UcWdjtH1V#AW@_-Eq zf3wEhAij*LO{0!+OlNOKDro$Z+3p*}UdCUk4+LKH!55w$Odj%QHvKOCS8PIXow`H~ zKB8K&IS9qR1EBXvC?FWti9y~ozbAvaY&|ONjy<2T#tF7A{ymDju#uUyxeihQK zGacWYtg|C-h@8;-`3qwnZtWgC9^89*nI9_V<$rY2C!uH!Dz^^+2;m%nO^#tW$YIAe znaENm(~eJp>sd-wQII`1GGSfIV|JY~HL$mNT2z{TD2O$q25;kTxv-osLPPQ?O1^8; z`QX>7=LgBa=~4QCeuBU|{}No9Pfl~52q5tue*-?8MUdzK|Iy40+?;S~eqo;TT%*v_#=1k}!|?K2hlqW^rCXB~H2%x9sIbEHGa4 zW6aK!iu|`3(mIA_Z}v4uMMBX>@~ln}3Pe97jYU|`+@dTarL*e26C$j{Nodt!7HZ)? zl$;vG&&%1gW}G4~m_AyU76Y|6K>TW4Y76GoF;I?LjmqyO&4Q*FCf|c}GYqh0Uon^5 zX_sJUO&{cArE9eq=wOB8CLhS$6cI7xk8VT+f@DQX7U55^O$SfcjjoLjDobi0h><{_s#kWIgylkYG71QscM#u2f8K zRwupRKg2gu?oJz)nAcj zgVedtbyQ^(N;kdpGu`TGqpV`z#sV!q;B+n)kw5ihz~X(--1VQOhtH>VL_gK(sTK<6 z$7vPIlx4?LshZ{EFRPxjfUpvoVWU!V33ua+r9{25p4q4p7SQ@TvKdEIr&aI zx^j?|m<-odZ2L`tr%gp_ZoW}ob?%;aRe^#zkqzU2bFbjcGhS;u7Im9t&I#q0wMM^C zmOXa=oSBKbLv{A;EtUS|EppK1zG2>@6wYh=taOWEq2T15*BZp45R3$YsT4!Fz#A*Y zh+Nnrr=-uRxWxS~@!}DwgtxAhkUPdo=XZlxq6i6vFxNd}Z|x{=n?~8hR>|dV$m0p&2$Em<$ z1!Pp;VJ_!oS->Hb9K0O=UwTOVhsIkcT%>*41 zCfGo82T7Li`{3!0Xe=cxBxUdxqLrX&uD5|ho8tMKwW|gQYs`XU&HE)gBr*-V4yIbI z%`7Lc&a~&3d{Y9r6Y#hlo=^@R94AhLfJP*wO<6;c1Cl^5AN=gvZE;<`>rBbDbZ!S2Xytv|yzFDJ9 zua-OC0N^7MW-94g+)az5K%Wj_0GqLY~9gER3@xxMinQBn%-9m zLb1p^23;GA9LaPmxVL~3`~f{vs)_5{{x?T8?xAFKb-3C#!XiyDJlEf~`xZ+II`(Si z{mej6vO`A3{jRdDT=m&XsZ|h#lnuHzG$ag$HTE5-BbZGfLG&1PNqA(04{1tB1Js09 zd?Nb>bOuS69uQ#EJJICo4Z3Ps_-|fp(@+;XlKuW*a(Ok*U*Av&lHcBT2(5bU(Q3Bb zLNkqzxOiQrUAlVqcyTw;qdw*6)Xk{&SJ>%uFLhrZ5Ux-N?(dIwKw~)75|Rgd6~Up9 zd%~(b`FAlSxC7u1JcQ8Ak}ve=ewaTzLVrXcWTbxpsRgh!XFuzqQQ_?li%#DEB#|i3oepgb)q)TTAhat5Z#$E*PD%^NZ zPdU9A-y&??vv=+$B8w(=HiAuh}}t_v>@_m&PM1zS515jcYLvO?}K&8Cy{5_5>p zshsgq{4FQ0us*}UT$`+t`XaWS`O{RE@3wng65&`!NJ&^euM=$KP+vInX*$qtWW8ST;Bc_b{7VG5C zm}z{!yYbNv#zymtq)_GvMB`Ox^QOb6$>@}fV}H|)TN-?fhu+-9NTa3Zjni*ypE^1^ z%zV2nxjnt^=QZV}DSs zdeBVdsJ&8)Bh=4%uN)*u#f9YPERQ1gaJ9#}?Vy&UKp?55K*n|p9>1sZbYT7BH>KV7 zm+<`C&HeGze~DZ__dt*sB+>8Qury|bE9CJ^s*rotc3n&~s?Xcl99KWJCMRbY-#xpJ z$~yP*it{xmIEa?>J<8eRF{;7ea(ES5#1SWDEjTsbSo4+9Aza?>muy()U?invc)~t- z==t>7N_FILg`EFy>F#TFBX3XwxYdGaW88?CK~AWn!m9z|6|`{Q8t0;llBdo(xf}(c zbe16US2X-d;dnM(oRP9Z(dHl7D!#u@El5tyQThu{e6nIor4TL_d-;0mqnZuvOyTdZ z|2Xxy^tnm)bFHk6;+isC21M5`nI12`DGT$-D*~MWl*VtpddM|`Y+SCGL>`FpeUK7N z&!5(Z8Ow=6_$nqSqDIvgy#tMLUV0jFjx(JWrO(I_aUi4>h-}d>013HIUZVAdl3S(p zegw4QM?bM0aqX^hv{S;Sdo!$LnajER`@}w}hRdlaJ94aa7FW4GIK|xar|(^v){Wkv zhKapx8QWs0ThxV?TCR6vgOe1<11GvaSI1S%$K>q+lR+CZo2cBvDN43t(iq)mWm&Y0bQ<|DPh~;O)e#6C1(oG_D9smPgsmv z_QQsmO5PVzGtr-A(#r|_iW)yq8|f2>l{CL)I%yxdq)1N*jBE}_Vn1WT?# z-me>{9qa47LW*l`2o(#bN=awc5vL9vI(|IqG!jIou?kkJF|Qrx?=@=h?@0c$aZpUepU2j)Ym zSrGphZJF|@xs=Y2ywx(VLdnqU1hgwTBWwE&gJXnsmA@R%v73+Fm|sM#NMQ@D^5gpE zH8g)QOSww|mdG?RglEah%O$8!b2bHe(Ke!5!m56vJURE{wcovvt*-H1`D)XIRyENZ zPz^AF1LLM1Y}_QW`zs&<93KI}7fJ($nLV>HiM1ql=J(;ibHngnXsEFVq0EFJa_&o#||)L4IUsy5`xOJd2VV= zK_DRcoC0aDI!+}L#$ouhS2VvpT3r4boQ2q8nAv*X%3l6;xj%qm6Y$F zh>7Yr@;vr(lo9=*uXCI67?lyTgM|M>8c)Crt>+pt3*&$x6_fA~Z*Urt1fa8bUsJ08 zIY49M_V@ZaLgYLd(D&u&;mH9ry7LoZ=bn#OKLLK3LUs%VC`I;1iy*tzUH-;B?M)Xg zA|HsmV6-tPGeegAz3r6w9FdOHyYdcZxwaf&&|9IbdM8|$PHT%xh>5E3vtb#^cOs4c zeX)QG548oM0_9po^i3Pr{}Q;3|BXjN3Ven?5Fq}K=bDEG(`RIbU?}q7ACY7iWWV-5 zuxi3H>LZfM&MpdZweFsyDbK=MPrzTlb9lB_@xs9++0MAVYJ)I>*f7yBM_FU-SBTsH zKK^+v^52?&{v(GI8GE$1Rk2b1OJnLZfVJoDQBiX6-hNs?(kt8TvOxu`j0W_OU}IJR zMS)y|-2EO7i8Is&ts7;q#y@s20uq_$7GE!E6fh`@@x9YmM|8zU*l%t>g?RN|$$LH{ zbB_d6tWs)75zNM>vAQcDJHJk1{pW&KAV+Xvrx=6YE-fzOzTD7*-y zAHMvte{&?>_x*k^D`RrV!Ik^#d%9n>JcvN+;MEP&ThWqc283Wo(x*`d9UIlIH%NBR9)j`?)w}+6XCx2kJ~)du=8TM|sD49w6gvy}`?Oo+p~V zjkiw&^nS4f5_ib^`zrs*_}1slv~~1$_ZYu7+~>?i-(lhyxW0ZpZ9qqhc<;6%-|rt_ zOb!ThFTJuf()sy1W2jfu`K-WygBT-HbC_h~Ey9-$iRrAW{1_^LO{psQt34xk5V_-h z<3HNzSK2?DIz9xwt%NegPb*hKRF196$N1wJS%PncuUk`I>p~vk!Wf_wU9^?bbh#QT zi;oCC!cJ|W#g+wgonIHVeU$*jLFN&U8F3U4J4eMu`s{4l`~igazH5KhsQJUsERIJ$ z4%(_+Y-L%@0;md6%AiD~PV_Ej{ivb_Q8FS|B|1RJ`Iphc+WOZGfjO9FQ{yPuxhpY~CKL>yWyPRrMq_nf%6n!@u9Do? zMn$tXsfr^Tgp#1w#Xg5e4QUKA3g*VNWNq_`9H2cHTT`^-|?Hk!Hcmu>!SFN_-b;Q zZs+S3b$iZ2Usq3s-Dw{OgP%Xm@V@UR2%`XM@9!F+tq1@zffJ0Dj1^K&;#!rAEK46g z7&oqcI_wmegf~m7cnLXQ9)oMz2H2H#^lbTbS_Fk#{aXzPwZB({T^9JXekZ&6=tTSd zfN^H}*bR*4dga62>jAJwdE+6T}d{<{x>A_*mmma`myzqJ%$h;TrdwQOM z{TF;PTK5J~KS_JXb`pMlQq?sA;qmPem2gr7o~41Vx3^3RnV%Hv7A(rig9^@%h}ng> z@^%{eXCM@tYyr=QIW*)Zimj)KbKyOqcGAp|a4On#QqT#1D(SXZ0fw{5Q z5rKcd^r=&b_?^{~Q+p2f2Y5~XyUCf_-eUL+%S)Ic<6E3Z^oy?O5kJ$|4gm%R~+ zRh${T|Fhfsh)8kmNve2)4|sob`VhZ=#fQFi?q@gUB}2Ul|BOAoD>GS=os$m=1e7}%V3I8v{8LRi3W_0%WvLBQ_GT$Ls< zF1cJQCrHgH)Y}XFE9+N-JQ%V9<;T>sI?EpS>~In>!dceP@X6~K#L#)EQMiy!VoFcE zsK}TyAi@Cx4rqfz=W;5HF8ECzIo5Cd&gLS;I>l^Sml4(=Ngud)=T<+x-y`uf54{%F z!0P_H5Bd3*H=?JioWE+?*S8N58?*0CoXyhGFN$yL|1KidY;|=?bI|*`tj_4*$CROl zt{xu2x+w#mLMB>~*k%HxI1fOjPILbbOBYY&YATp{^bb<4nD3o1hfn&yoT~1O;tSqE zu+o&22&-BK?Bcaj45%LhX0{j(k?Q~o?d*uoK?fm(A^d30VtQs8$o%P38-<(tnPk~1 zjbm$Z)!Q&2)kl9*B7zUOTmkjvwz#ai$RZVPD{0}z_@UFxcsxoyAfM)mhO z!UGVIfKX4bogi53jOTxj%Ju5Dsn1hGLrA%@B-_{CEJpfuhFN=(5{&$QWdm|uFQm<7L% z)72>T^XFmMzJ?MqWYw=Sle11+I#OFzPAjM8{1@Bg$9N0PpKB3+?P&F_EGmCtUSR3Z zjvsbzbnrAdbkgPymg0&;%jMil(J#caFe+$k@g)(VV-1+4aYm2a|2~?~{E0WMC~7D6G&3UrKbsSQ`+>ycY& zNjrWa(Y!9Z&fIMVGeTF2fL){8#U-Cx8_w^&*7w>2kKiDm8S}*j+NoHy3`%t64hi4Wby=OW z!}myGeQ*AID%tr-jg0i?!6GD(>FX6X!;VDT`qOD<`9berp)a)me38DB&zqTu^`#Nn z@hSDj{(*^YupXkZ;cRvpUDLO#mrZ*i&x&dvyrX}VKP@`UUmsNWL%xW+?^UkSyntJs zss(V3Ux+o#WW$aVoX+-j)Wg~ zi+#Ttud(QAvo|jH+mnbe|BHRUy8+*)ImM0gBqnoA2SMuIrwg2sRLF{Lz>Qa+iWTn3 zb_$QgW1d=bc>*$jHe(H8zS|wH!>2Y{M;i>;3kv+@f~8fv!ePn=U)7O~+BJe28zj1u z(@oMhEzj5X4!0|Vr!WuwJGIS?v)`ic-e@c$qdfGpOJHUbgP0VsEUSpVT48sVl-Rf3 zwSl}fs&FUb*e9^-VvlFoF1%W8FxV37s@W;xCjj$kiE$|A7fY9mP5O0qM~?W&v&zO~ zIM{&Z^Q`1W0AK_wjZgK9g~E<<1{SN7ru}PG&aSp{H`)<$rS{?QD2Ti{p>p;UPPkIv zBrJ|_nO+si02m{HoFC_y5icB9}Qk`Ufw3%nm?Ke_D2zMq7UZu;}Q?0uA9^&BfH%7XeW&3TWuIVKrsl2R30 zq6e56wf~Sf+kD3GdkUrJ6_prP4o{EqusMg^=VB$ZwsTAjsV0EX?yllMBnrxL33r;C z*r9VoOr+S-&U7fYEZ~@!rb;1E-$X?MdcNFgpw@Q&&aUOiE&MLcx>P98BYF`{!uxM0 z2r&AQf21?#TqwLiU^M~<9`mY43L5`5LT1JrK1Z*0fc=H^E@9IV3Ywz(G;NT!NQs-m z4%TEQkZ}?%xwHkl35EX-55$BZk({-SKXm;n{k>k;GF<`0CzP_>7(d1mV#ja#(L~U# z1bcuvrx2FvqI^J8uBK1DdL3(nA=w(bZh!)n24tURLNMZvcUZ+!)$I`q_Vk{$5{)f0 z$Pg~~$!?Z8h5b;l3wJmy*yWRA}??mGKJ<7Ov=cEPzaOJb);I;v;! z{mJvyqu!tkZpy~D27zDp6*L7zvV};T#7J3ni29YP+nImVWvZt78yEl$Oo>;-Vgtfy zDY~WDLaThJ-$c+eU-)*JBVCD!;$B(_SpuQPb7=f6v3ezqH6m8@Mme75$5Kz8&b( zMw#U&lD(wv9cYyu+|=uE!@jBbLhE0wkH-v=dUxJm8|WB*TLj{n(U|mc-6T389o(Q> zoFgH{`OfE2LyrmOJ*C*gWM?RDBnQ8`m~(|O7tR~738vm+CNpOe-d)A=+?l*A!Se%e zHQ*5VTpwH`D^by5NksyFrGrSzf-Q$W9+a3i8|#=DgBXA0a_#p$q`k$Y3%nw%xn{+C zDz`N10-y-e$`>br(DK8M^OiQ+T_M|MHZPDK1t zYwu67V<`GQV9UsRSWd<_19T}>oO)!f@@`H!2| zfR|1~np`RUeHh~j(bvm%8s#C|VOw3kdIk1;*j20cy^n@#YrTDxw}O?l9#vSFjC61r zr-!-aol+Ev1+$eE#XC}tNz5-hSXO$Qd8Kv+olS!xDqGaLHV55`<0&#qFrWYqKH?3?ek0Aoe==P7o|(v4SO0gF>}7- zpXTZPo;AcuB2(^eR;Xicp_EI{AvNjLWV~qr?{?C^(4=Ej(3k6{IA+*-`J`g< zuZrhwH2{i4-MjGo8QJ4U+HA4kXUOz?m6@ljd`2Xg#j{X06Garr@yG|hX3R*-4VY<0 z_7sb}dOjIP^O=ux0`ACo4`jOa(d;)E_lCUmhJ4nu;M?QBRbRYnzbC#xy7WNL+NW8a z{9B5PN0!Iu{W(Q!CiOPD;JhSG?G)FTE~OwY2}{*^;vSWaE(!+kiIQFKfdBN*eL9nN zcJ~<>KZK0h5Mb6@b@W)SdQzOS^SP;mUx!tN?>450`8WTdOrGB&KjL~9ONt-N{)&c< zt;nUo(Y{JSNBwkd|LQ7DF_G@#Y)f|fgjPpsAa)O%6z%dnY}qy}Zg%l?z2lkDXbT58 z7C}O$iif4iZe;kWpaHU(XOW}$S{tEDlMMOPSQNI(9ujTZcu}3u} zB_>=w+|nz^cH5i(dZi7c?;hZnrpH0)-bdW76NWGTqn;%9_x<>oxW2OIVq-JwaREGK zEJI`W_h_sCu(_BD#Xpa01m57h9BaG~zFg7GVI=&yOeDRuhN)(m46Y;%t+}!9IM)te3%pVGu!Rp90-A`Sg z6iEjzv-imzq_njG8b>Gwy?w%B!CYEb+!SE( zCj;Fo_W1sXT^H*ZbEPNln3Tv{`t#H0Wh@hMc+5MELbjk9yl(i5Z`2OII-A=|9sP6G z@K2O-=9vPCox{wT_aC@FzZ|0}4fq9wace`H+zKdCO;!*?%EiZE-53`=&4l&RJXPLw zrauezhq}*r6t^^TdSxz72=% zDziRlr-7@w*|StfS{w&`daRq*i*&;mE%Fw;LEs7Oawa+Dh1YrF-ecCy%KH-(3OnEt zc7>f73h`A>>0+FURLH`3)||JhUOadLD?FPoSF(bW!_xhiAg!;F)47b6`aTV9p>_hB zQr&sIg>L+u_O^)P>O-0!6_euvZX0e7uF!FFN8jtz>-JkV19IE^=Wzdv_2b~zjB;S~ zAl^L~G;Ow{$`8d^R&HcSmM(;d@7ogpkJL$n-}$L=gXJw--AHM~z0G|Je|7k5E3C|g zG02mIlfon#zqRK8#ZznOSBK1kQGLkrmB#n)jVXM0`h)k{`|gV?wMPu?lPqmszkWm806nXBt&-f^m_NqCssVw4r}=F}6a zPM~lNB=7bqjw)s~sTPC;rNo?HMIFu&uKvsUD1utP@GMsrW=qbwh*s%C*&MRY0zaUC|;>x8)k!4tx4Uau=3Hlb?6K`64^fr25=%tJ-4+RM_syh|T0- zk1x?ox&E2*&sxnn!%ojdL@;+->HG0VUbEm7in(a7AWY%%r{i_(peUB2yK87sGE z&w@M&4M{<%VuVKEeq?iKrbi`+O$$3Ne{lS(aq_qRe@?G{4>8i_Delu_j`oN@L8~lJ z>ymVDZd(@}y6f}3y&i+S(rLXOT+zdN3Ye#zN(@1i6@4sL$2mM zy0>qFKD-GCK|OPVH)^~M$bWA4yb%BL|Fi%Y=6{r9TFDBtNo1fa^*fn;52WPenYyJ! zTlU?K`kZ9%SBulP=Sme-_xW2Oe%DXJ>1pichb#Cjq#O5}sB{5$gbjkPs8-L9_eeF! zUx{ECE#bQs0k@HvEc&=2uMT?(LyvZ-@im=N>26!;>-mDl9ufJR1?oF^OWaQA@bxOl zjUnq%7mu2lpL|?sU+NgK0X-8mgXCvgN#1UBy!2g=E_%6uRt$0`Ii$P+8@U_;ew-Bz zNdgdJ-odhzeYxVyBnq_>Vo2JGSi%?O=quf$WfK)6Q{+PzGZ0A(Al$;ns7MtRLEp9l?t=K+j6b6MjKBd*OA=LHPR z!_54=7dNu4WvVGt^;UHlnMx~`ktgu75qKcJfs{;%j9wXVF?+hB@&6&!gD`ZGlCb9uh zP7YyTF7EjChX>sjSYiHZo6?qllcioMar{Ru_1ddS_MYll*$lf3DorT<%b&MEN-9cO zV*PgCQrR+1SlNrba?2mvOGFdQpp)`(<7v=Bl6y>f3yOCO0AG{@=~7swkcdU3J#etB z9Q)lI>~+ZC7i}c{eYIDhv9)El9v=#LJW3ajVw1yP_^V@TV*kNqmaXE=DpzIs*P3VK z`7IPqU*u2E8~A<&SmQp$Ht@YkJu4(VMky5%@n59Grqs;pN@3(A(nPJ6+IpBNxbHF9 zV;JMj%Dz7Yc}ZL=t}wI~(`bB^&>S18Z_Y2TTHV#7(e_Q#3y%)DZnM^D=X_&GbyPW` zqpAm*iysSSlW9GhFF3(~kcZ==uHd5d1DP z(;)*NOILotTfkf}7nD}i^#PbKOR098?MJAa;j032b=JLTh-bv7ONT^of)d!X%Z@3% zrh6+Xl`^`*4zjX`K_XF`gG)&8_41e9|Gg4U{!%ZBA|v(UJw2-VA#J=}lJ4@i``7Ef z%St)!cYn|by5-r1ua2mZ#=*Zp$-6w?i^45E z-|-5J3YmtVTfM#tyJm*J*SXD1i&^f?_~z^H|K7iAS!9F=7{x1K0Pd$>>P2O_zlGJ6cUAPULD8%Z2J@YW#;qEMM{mD%G%z&dYsVyh17?2OhEIS zkM~-l3lYq+rvcUokN;cycdg+7p(T z$UdRvTECFP!0fTwWM{xjx^oY)Nn9UPjF#UtV%`L|^izZqqR^s#7Y+G$*2W@N$dY|1 z0%Re%!?K9P+8UggC#%oxGT+?MDjDr$0eQOy@B<8 zvC;rPls~sH2&igf@uwMF`Y|tvR#;{d0!?(ruhlTIW5FpSl+!Q8rqK9az&Qy$<-et_XkYAWcEm9z-(2-{d)=UwJn8_^2Q0Ayl_E) zkhhpTTJ=n}`SU~RQh>y?kS6x|kYw#U3W~&P*um?pk72D``PXS88;J;_`m_&>R3+fC z;M)3OULQk-uRt|xI^nCt*N+CeEW#b|pytO!u!4@e79@X~PzDjPnR`tJotk_0?e@FQ z`)57)pR|47M7pAM*7u4BoUHt%(S*4@m_2S_En^P9(=h5sdkx0Y5cY+Tfr1GJ_y~5To}eny(mf*FxjH zs@EAS%JQFHRvEYtrNw{kZ2ZGhx&YV~3X{l;N$^APd@clCkjO8B+<08Pf4#GwFoNSk zMtZPh3Mh`1HE!hv2c6nqOY_LDIK6A6Cc(K`wgRyj;WwmqN$VG)EvXbdo`pWs5}>|; zXkspa@gnz~ldxo?#vM$Kc14MMESino5N=Q)A|D-DNJM07Zkeg~>3XKa`z1|VWid1J zci>sjX)jztqwg*+U0d~JLsocn{&T=ZbKib!=02w&SFB?udL?$7teGwrf^P z_$KJ@)}74R=a6LP56b9lku$&sh|C6nW@8MvmMZ#>odh(g|#uA)BG>EIu)R=E49*`b8W*E@%AFz z#s$Q0UlWWF_xi%=`V4B%9Ygui$in}jI1Otx(V--2|ev%nLErOl4GK>dFtF zTcR5&UTYTr80BoECaYlq0VXPmlK#+IR|t!WTk#c|#wlc?b^cJQJDY3%!1b-W+uWd{ zKYXXu0xxPb+*|=#-mt@ny1}OH8 zc|?x&rdX!fLt0;#LZ?_a`-RR38;LN*Mc;+5@M6zr{NjRTr^!^TK%0z(JL*{2)-DIV zjv1QmaGF{2riCc3ny}5D@|{lg#~5v_wAY<-uR?(w<9J#_6iLwS^r1%pD~BE~R$X*s zPJa zggJW(Ns}NCMDg?zr$xdVZpuPG(2FN~65Ax;9XQaCnPH8^s*U?B`pl=DmOV$B!egz9 zgJf0At6ZZt;h#JZ;-=7W;)gA=HjE$0ScrX^t z7%GEcSVO%C;Cv*@H4OYpVFxR9Ij)HYLKm;8&6}<2Sv7OtRjrybM#jg5c(dAv{s5Ey z`3%3CF=_hXlto8d8pGGfs~7A>JE5ERJFtIz8P!@*G0PR^EhhVM@V*8|0{-NN8C*J^ z)%lOtYB)49u_KUABTnj6bAmT}IxCKY=#byMxjZ;lf(7X|*jAWCO)eN08|04v0Xc+i z*To%HFn$*_PXuO^Zt6nUy}^YoRl?|^p7+T=|2~$zBfDYq@_6?@r_cX+9W@Ak41aOj z;@aE@>$&|GnNEY=48K9Hh$duvWx+^J;im zR(?$2eVX>>!#`O*3D&UgPaCMAcIIpt4D}m7UwA#dG`j#jw7_qd+R%8#U(9rBH=YMAe+3{6e+Ffi&te?+>x=%6J znZkE}#_o6foyXK)*B+6T5>1-%WxM$JO~h&hM!RwC&lI}&`N*ubh}}QoOq=wURI_@Q z-wkK-+}$szw9zdZHzn8w(SO+8{y6-xYoybn+BV|ys7E6dzL^XfmkK8w`o=Fw-c#&* z78>TeaqwIbl${%J>c90c663ph;%o%Hrt-Zydsyq)=uO;|=(^M>pnBOWJ;B>F+3kDS zcu{#7gLA^Nyn?FPLtjEP2q31UKaCaH8Jk0gnKc~1^}2{J_LYef z$UkvBx}m4#QxfS&+yOvih^bXBnwi#JKc_NY!46f1u@yNz2xNf^1?T+Q?2=mZ7W9}L z-izpLOskOkJdkQ4wzq%?{K-?Z5fkbeWxJjE)$KjL@a|npymZ``7H)GEUGAn&qExGV z^pq1aoB5;RWJVb+ivk zB;hkR!j^O?XN%ji6abZ+$$VXL(03FKu|4oJU40#=U?CwUytB14I%pmj1uFN2ruV<# zqEwJf4i)jOFo=Jf1(nKh$QDoH_LE{}@Ag1ALNH2(l;VE`zqh3zg^fmBZ?n9^9_ryQ zal#CyL7xY9W;9WhAH@ijjX=%5E^4PMe}9+d`t1uiolu|%ONje#bV!CTs9AtYqX z3`-lT3JYdkXYsT~uL!*cP)DpHO3>R{h3FgU@@}69;E{j&UI_lxrCuwA!H*;(C7%o7 zc>b4gcvZtf;gbz~jQ~8EK=FE>y)4O2IyOlvIZF!PN}!Z4pZ^q9;SdlJwL8jY&MXuO zL@6aPAPYM{kN8H!f!t#5^otw>EhN}81v`JkxK2@*?&ML)e*f7Zcu0pTJAvg}-k+Ro zJKugaY-B>wnS}t{WOCNjcDoD0-|gcER~XC(qfX4lgIN$;SQgd z!{lQ~y=LLt^<4O@rCf7mY5kQI_WCn+=VrF4R+TIg{Hm4Uz-3r*<1x!dBVb_T50GK8xbQG)M%4P067ADyGbgtABPF0lm_U`)l&f4#e_WHvw~t3TRX?9) zfrMQs;3waWZyIKfinb-*KUot@zJb7Rh!D)o(NwAjLug=dy`#%?Ng9nG8^$tGGz*he zk-Y&~tjgjl-Utav=l5`guRR%7J6Q~rfu=2zSPfeS#9)$!59M3Yk!a=?F-DU!b5L|GO1DAR|E*sBS5 z&M}QLFj<@-n;~pbL0~*abP}-9yG<<=?D9%?Z0Rb)8CSz*TTW`~L&jgg!w-tDvoE$3 zH>^Z*31y{Ti37iSk$H6`7;uCOqMM7f0o4rHlfjjPw&_H{f5Fk>o|(z!aIxrvyMFt#R?d7{TYJW{~F#T)BhaEUhY#=AVj~B z@FjBiiCVUts0E5hR>dVOmN77u23Zxct5~)X&05L7&f(3S5)v05rbt~5MUlDC6B8Gf z6|i>)y07A`wpp~+eg5n+5PPX2=%KQYx-$-GUchkZ8k?IVtZ^KTZ76Vacg3DJrF~Cd zm78&ZYU1|*HtF#mZwP#*HVanT$q5=wZh6 zW5+0R-_YGpPA`4h29J=|u5X{zIF9eLj0gmlF&LasHGGwiXPHA??$qj^ndbbPVv4PVXFBfcgN!}4q<=K?V;$i-L-MsGGpr0l!oRZJ4Rmiop8{gL< z3LJ;`HM~8wnqAJ$dLjW<-i;qvcq+1XxljfW=;4Xcbanz1yN;0A;*UNV8V>l4WMDkA_f=NLAlrDa;v&;>6cI{nU#9UswE!J4w4DqoWAx2}~m9vXsoPZ1X z3z~++V;p_J6XE4y*e0if-Fo0DVdg4VpWj1B{W?RrGM%;2kSF14_*J^rvJ)@BV0GKi zIu=vo2hpk7KdQDG^dlyp(m9+^zUbh0BoR#U#lnwp}Y@!FY)qfkQjD^q`V2_8+foL$q1_6D@vSl7y}=4%mhd0Yex7(FBmt zc2^`tpU22xHD=kIgFnu}KomWFYilQLtn)@RfP@DF7AFx%#gpGJHG7;}NG49eF*GS< zj{P%Un-PYLX&6J1OXIMQ%9=xmfw4=6*r@H4t%0kLYaRuZ^67kT?pH)bot9A^g;r3v2I?(97#h?euOI4v%H9Ne1*rMAvDmpZ% ze`^>O==NbpX8OgqRcnJMH&*Q&hQO=U zaZ3*=oH^`FC}GD0LBwjBEE^3peIt`%ezt90@)Wo>eq&UU7p5`; z#*Gkn-@YfWJW9yqF(x$kG0qJ+xBPA?B5gNr-nG|k0?+v}Q$XD0bl}rtF2<3ahz&bW zo3Nd3H(aR*rdW1Ztn`zxX{Lm}`rB68to-sST{@Sj3P&@igtM}w0*`CH%C9eof|*YN z7?ZW^8{ASv9Q6%W@qf7bs;D-jXw3itg1c*Qr?|UYaf&+yio3hJ7Pq3s-Mu)p!HT;T zC@#fia%Jw^HEW&sykwt$pHDL+w=H!##!uxKxr`GiBWYAJ8SI^V8Qp?*Bgeej|JRLi zc5+V+*!Mzx>y7bQnBv-N9oz^k3dM|~gm}OONvo(a%|JsuRH= z-`bm9;b6~Llb!;L+{Sm`RHIET&~d@}GB(SnI)bl6$?T%Bu$qQ7CUJXGY+%EtEI?69 zj$4~y@lV9bT^8?WCKi18IZ~#V|4hG%%v{`Y-RN9iY!I1jiRvMSc(H;JT41%0h0Rn3 z>QG>;xwhk!045-1Yt3+Z(O?;M+D-!}x|Q6k!((d6BIS`5Vd`DbAXYv-g4`uO7A)rF z=9$YsPixLtAY1hjCe0sd^U^!xJSxA0vhyv(q*k)V6Hps<(VQnoaop{rzp@05C=;(o z)R_5M4gtII)$Ixw?+F^jFFK`(1qvY7Xreg?^uxn{HOl6P6M{@h9;MDJWg zbmv*@iCm^^nU`7lHkr0hAE^fe#Hg|R8`8IXrq3o+T+>?B;Hi88AepA2zvJ z0M_q0JL-yTtG4aVDR-a@7 zhxZ{JmKbi)ugyVjO)m!mOYf9j)6Xn2nfsg;^e}XRHmC6ohmu0(qq=tLHr(3cH8d8O zWzoQXjaIBDS))H;Q5vSMnbC|V67^Che3c{h>bP%y>(weFVE&$p$WrNN|4;HW81WUH z$+QK9u0?Iwb7?2hMmQMljQJ|jo^RHWGq5+DczgQ*W0@pFz%LwUM8I9q!8b&gRTD+J zkBHT!RI&W>0j=_JoC?<@%>-5%MO2ziPFwg(qb84S@#`e@Wr6Z#ZZuY3;zUORobocx zQ*6a#^f7@G*^@Q5jxd_8|JqQ)&sm1ylI(7NyVk3RW}Y zW#>L9SS_}~L_~ED16chpgAhLVms@!n(MA6~c{vkSxp-CjZl9jR!%6=WN#J8#zcn{8 zSN<1Z!?S$ zB^{$vY={`Etnn$`J@yeA3=B`mNoKrT!gKAYyWxLsDkzMpWRE+A}KQ{12A zDeb=nWnI-yI{o*6?X`jaEi2f|zzxDx%%KEqQ*Sa*&l}OxSsmBm?x3A7!Xh}i!>=$P zS;g{CR0rKfC*&n=$Y~w+C7||>lDy>~xWnh+#lgY3H{kBm1M*{BX=@gs50DDsRf7 zVx=gapH8X$rm&-MvOx1&V4-S4a+r86{R@=u)WJ@W#3_@&3n3J4bGQMTXz;PdY5ywk zH1D<5b!am*W_`S#vNkj_h62Im^NgYC@vk$Xm80GiK99S!{cj`ejSgea7#CcHAEP(b z|L$868cj|3|3FN-XkNG1buoXWSbc;HDhnWQvf7+N$*yNzOOK zcGAS2qN9>jmw8cQ)v&FKj687bO1@*`AgW#iZZk}U>_6?tzuwJ*IuvxEG*MV>1LPI(^mSIpv)k28a4*GovBIru1pDk=ziv!mhSjyI^ zVShubVu8+oMk=&1H2HF$c~KOJq6B4v03*qZai8{amA2*Mggb_Y$P5(~xT=PI%jXdZ z?0Hz!pM-%_!#Sma6NaIoo2}&v0LU1RV?PF_4m27a$zH@|W{ozQgpDsu`QHNuz_^z5 z2WU&Fe=!IIF|@I%{7~aW{KOaN>8ux_7EWa>>g*Giw7eB=d>|i=tE$zVUc(7C*!6{ zDDVz%A}VIhDYT0y_QWBheHCZ&8mqmrZC>h@;mSSeSy24pWqVA_oHrXv677B+eGI-& zxw%0ReLdA=V`JyPBflW!y2w^8Z}}H_lQ})xXrV(yS0=591*FZhi`qsxDumy)UK ziVz2!1E>x}@v?HveNuiRPV1 zh0+?4>2_FfiqfU{!LrAkn$|!L;yfI03{ZrI_GfMM;zr!@otwVWQAD|)#4r^8S}yc#l0>IC~?@1$UOeiC3k?45$%0AgcKZAS2IS z`ABDQG~?B>Z%8FmPrL1)bm$zc6;Oj-tR9mL{Mn=i(o|=lf8t`?a3*}RI5z^)Z*F9b zJ4?Nq&7ycOp|~7^Cb!ZB;kf`i^!Her$krgmqo*&sM6%KfrpJ4qEm?m*7^%iS^Hu( zhg2!|*z%O3hsn8z?z%N;%LoHgRf{BJfvF0fu>j5wQEJ^0Yb-FEnV03_Dg421OG9FF z7UF->S707U$ThbZpa1BXUmmF7lVQiuBgeqLZ1&cEVv{yk%qeUCvOH1Zks(pt69)Yi zbjHss1o|2LYgA?X`}R!s~4lp8zSV%lAsjfZD#Jw{4K#*zI|vycjJ%^{4O8JgknFQcl4zks6I zkX^U-6Ss<#FiLz?tc-Ksud#GFi>f&_mC+S!*gU29n_>oW`5Fu$m}3EC#+0WuOnE7R zT`d1oQ4=!&){quvp;@Jbc=Sg^I%O)M_a$Q@aq&dWzk<#j5l1)gar7G;J;gVN12VbaQ4gID2n7{scp*IH2 zd%kbT*;q!|UgbA^Ntb_rQMH+%X60GCj1 zSV#ikKV>PRohg2V>82}%?xC=#Ke46ySD9dz((0}XM;=PY(08^cN3n?elE7p~I3V?4 zQIR~z@d2fWKYTAv?H&oDmOB|HlLJ_CDCPr)7Xh9 zK`CA#FkF@~JQ+6vVk#B0NXsEx_0;}p;+(6A zC!xuOs2eC@&iGC(E|G2s?aIC1VLa{yU5Zpy{_r&LKmERjZo-~iRorTzbAl4Ch=SXc zDJzRHOMfw){v(-a2`TTNzyZ%MEA5=y&pJBh>1`7z%y9i?$*O;3uz=uUGH)z64hGEQ zX1bsOcbUg+oB z8{GCf%=Si_RWwRGil)e4Q=_lOL32PYB>hn+e!3NdesK00(~Krl`9UUIcW=|eNDdXN zjJiaUTFWxPN1=J6sI>S)D5T<|Pd!F}mg{@Q%PnE5v(?>;7M;RJKLFd~X$%Z7U4uMa z5(X}su6W$I4e3&os9JegFlEKi1@xxI8DYj)rbhJp*M3E(ZZ z-YNa@(-u;YjFWOo0G8YP+SFGo=|6Urne-L0SJ!6)FXhDZt4kpYO63s()xw*> zmI`{1!Z#%~;tOhZ27kj1Ok_Wb_;-!|GO0x?#U{Y$h5a;@6y``;a~w_m^BEm`L8UIz5u%QMcK zij+z`tJDl_^xcJtKP7c?O>ElbEp6`kR<9$N_FV~F-7T&Eu^R{YTT1+WJ89aNLcXJ$ zh#A2(zg|hxFJT($sLJ|T&QSXh^mb5K5u;%STBLI#Ivnt{uh$75HB(FgWz;#SF;OB# zAAO*57AD&Zvz~V!x4{xs1E|Xy#!CxB5Yu%Y03}y>7Xj}{mAOzy!BJjGGrI4i`bV<_ z4srP%c*$6M(M@OsK+24X6dWP(-HP#ZQNH)t?Kx!Y{QdQ=T`Ahh|7kn#Oj3Un_}0q| zcM9!`36+CHoMao^Ttc)0U6}q-up;^gGXF$S=a#MhfIGX43ODfr{5v3|tDG1^W zcJ^M9aHoXDO7bGF<W z+n_zXOy&1->Tvv{uU4W}S*r93yB{Q6sjC$iC3@PPy zwvwe+A=*n#l|rFv6I9~fI{%Q>zlc7*L3>xzFdmQ6F4R;|+BT4Bh1ETDw{}HrNFnX~ zg_XTj`_AD%2XQ%suu~-ldSJyYgtFp4y52?5(`2O~AcqAYH^PJb_!8@2CWQuj7tKld9G-So1aPT1coor!HFshYnT z%S6voTU;aJO8`U@a-T91+2WMaqy?oj+maZeQu|E87!J5=j_vD?skp3zt8J{K^-s(| z3F~)p%ha2upu+QuOr($Q93PmNp|%!l;q0a!{RYEYz54b%(of3en&iFrq6D9mpb!81 zcd@(8{fSij{+p+~!3v?_EUA69uX@_-)qnr_`4;~Un~j7)L7hJd7$RS83PBT!-@(|X z7(lg{iY05np)?CtE|>k%T1vlQC@|(v?FSxSFiWae?V+R*f1<#b#hjM^KU zzVPcC`el$;kk@3$+Uc?=-E-)bsm3=5-l!kS7tTmgCCAxRA$* zXTlrXgwE-*+Za(Y#3-SlkB-W~XO7bOE>;}DX<;fbVoBbfD5&kOvnt6SAM5oZP*J=G`L$ zE;&tozqF0_*92=J;O7%tA8@^O!-o66$v$LJ8zoP3?FzmngRoDYi7%h)(W_*u}bsfGx#A3tS&0bt$UrOlp#h zK3UeR1k~RN%p%UYn>J~D;({CE323v3U?}rl96cH6_p(TQeKHqm8-G9zy8$D-`8IZj z8~MSaQC>;x7%kOP3x#TpOS@>j*{F{%=#J^6R)wEp>FTM(E8AEj>M# zBdK?}LHD}f1-K#(e=jD49u$v(9j6M06%p=q<@e{TF5C>n8v8`RW7>(8~dxM zN%Vtp?SP&f9W39y=kkh(S>R^F2Od4v@yys4mNCJw7M_3J%IfL+8YN#V)QEr$4!8Fx zY#-Q=NB5A+XcvFCw8>bdR9A(I_wb^I*U zSY0q8rbCon@SoTmeFfV>!ZuSA>fT=|AhHxJ1$<6_(dT=DzLf2m#B+B&?v%(8|yMQ!v-=*V0eBC9qVibspK^2c$p3bLC|W0En~j&i1eUhPj79#j#c*94LAhM@u%&a0MAIy$o?O?I#q{HT-vMP86E*>Vdl( zu!0cflDJ45-;4#KaTF3wX8!e^NxXV92m&o}A|`U*mqf@MU3jpum(otiF8np4e*-me z`&;!FwRva=a36Jze1H88~^o!l*KzY(B#LEzgYfT1eYpdG{e z;w`|_tNrnE2d<6Y;_bTdU989ZEpOIFSuf)|i-kJ7Eo?lU!SB)31jW$bgoq!J4FT>M zl7UoNt6@QvONfhOh7;q-nS;~{&>l(}wCDldI2%$8gi_)UAN@wcM|mBPb9U%I6xgqp zJN)N)y}bJf2sV2Drm?-HljHX&PH5M*+{$}Ev(XB?y*x14fxC`#6TQTsbZy0O+JUuK>Je@^+Wi~4TB@G*}$xux@ zwk=TuoKAx{S+##xYtZ9;l`8gN@*chQ{;&S=$U3P*Vf*MI9QsoEY;E20IieLkpGK99 zLr|OP?jSkn=)hKU_Z1fhfSrS9`1c$ zc_ioG65a$2pdqsvDS0Y=e2v3JXfaKh*7-1q7Kto4D-aoI{F(m*lP&aNk(V)E#yoyd zZ+c=v5BRPXiA%&OuT!0~R|0kIV!UG>!qQt?v*cuyxAIqxPhq~EhYmy~s*tdY7V3V6 zAlgU65RJ)I{(9>hzdx3*1Mf^EtrK8igvLm3W{IShJW+prW}KN z=n06j@fnD+Ta1E}bwW9(8Wfw`xeivEJ~!s1Sruhs?~zse{@m=aBn6Hga+S+WloEqW z&0DKnbdnE=BczK#=)@P75}|A^*!mP%B&uQC-hJB>Qv^T%poGtHCzx>*a%Ahg?0yPL z+IsAr{_a_xj3kZUAR275N2C#ROplYi8{^7{6@Yjw-d=E&F53+FKG-^c&$dFJeV3^T znw_uB?3D4;{_7o3h$_;N0_gr-pZragAkorQfdS9B^b8IC0v#H40%joELN38ZUbL3&k!%&W4p3dF))@HeeeLvO@J^?1XWZwnP;jVR zg#|StK>7K*`+F$0BrGOc)`)*7e}@IbD4`Uij9Nv08#mlPoQOjifLu(-M9`%|xS7em zS>bnC4+pRLMF!z1dGCFEW%fPve_6o7Dc|v>#^tk_bfEz8uAEMr6`!>RbJ; z7No1%d%PTy`w7X&T6Fezom_NBEEAqT=59KZ)qJ~EeaE#xHCS7NhR%dS|Er0r=z1)l z!!Ze%u7xXj=$>Ble+dW`Ha9nqK{iDbJQPw<=8w}~Uju4*>>Zr0CMuE!)<7TI(C*K- z4w|=~v%)Po)>hRbL#SXU5$wT^TlxBwNjV+=c+A+hAgVrcBE8^%zwE_@CH4dTDr+tO zb=vL3d;ynCMHd%85HFjejP76T+9PP*yAd9q`v7}Zqf5DbJzKF#^A{&=y-{n}%-2sB zor;V8I~Rs%lzmhleRptOlFb&lv4KAb^>SmIn8uq(zj6B%l(dxdWOTK9S0YKO^F`io z`VCyXKNVgQyq~H*o}V~9%Dr!Mt#%#o1wDQuUH41Epa}Re>5aViJr?=o3shk~*k&n7 zbpsn$>WSGD>d!4vz-RAZ9X-cor{986qd%6v*8X_fytQZFR$3!#?{HDlgk8G7xWVy^ z=*2JUKXE*Pbx1GA{f~4a#1AR42|OxAAebg-09t(7=XT8#)q3wqj4x*n zpfg5JMnOQKNi?$bpaJYJa^{+-qzRgEs2U1-A6>Q0GSegDEIpH~Gkr)XdPZDiTAJJ6E?SDi_zHvdPDHuG z!@Qv9tQC7`^hoKr+oZZehIQj)M(9FSc^yfQ+rDJVM3#6}sdROg)~SZ?_hhO_Jj+;4 z%Tp&+29uus8oh=pJPoG5T?raJ0Bt?r?nBdU_UUKlnWqMb2M)7Jh*`?*nha`poDi$#-;g)n$_%F=5x=7Tg*EsFG``^w zsfxbdYWCcdl9EEZua^syp`NR*x>^0S1A(+o?F*U_o@n*mkvPa?Oq zwO3At?j5o}+*PxGcb)JSEF(P-_J06FC#%o|dabYb1qAa%YS=+O2Fe!LyGp*%60{n2Si91ZEIX=gyjzYoWpi!bJ zk=rTp4MPX`<2>9$;^}kSZ2#+s)%?dpzE0+b-jqu4>QL z?nu3&yl%? zaU5{za?MAs>V12JqXn{8XM};B|kK^C9SjlejU$J zjX46OR@L*78XsNnY9HB%qTr}TODYtTlOJp*h_Y9q?|I(_8wl|&udeJt7rE~&6^?5( zDoyLc9aENeaYIepBl8zF8C<3JHdsU)8pf6{wa;>S#C{hDbNv@V%4O*>ukC>s4N1li zn}b_rr>O0(veblTIyivq6-+f)YV_1BQV_ zdLJ7bHx>B;Pw_J-+l(~4$i`s$_%YO}pr@2Y4tF7|2qohTd&i8s4n!3i2@%LC9|21I z0VcFA<051GTlR(HUb9F7V-+}cD1;p>vVIZ#_K0I46^#1AJ*qpl@~CIIn59eza&|6gDtJSH4 zlgr_v!+C#DVXha(_erR9j%Z8NFP4SL)9GxdM-u7RcLwzzMWs?e5}51XJ<%)!Q+t2A zARq_>c%$_ws-O}vbrX8Qa6axp`X+!sT>7@4Xb5gGNO&dFeY-q3iujBrqx zb2qkv_gV_br0V9~xaj-?YJ!}#Tx|6PiHRH?NdfL7&0q5g)i#9-UJ8S5gFX}%Hn)3) zHU0FtdSKM6%ZjgH`GitBbGp?R2EqMChoFi%xSFNKoJz{ckt)=d8%;?xvBqI|4K@~I ztHxmq9c!}iDEqw;2QaWUz(fG-nC>+BIVAUrOybw>jAf`SoXenbpC3g?G zoJeDL9}i6T8k3RgM?aFU-0w3ml;?%-%Y_4Dak9etZNWuez0?qdbq}i3iS2*ef8L-_ z{U5+0(EE87F4zh7y$=J^`zy=6%Fp(xGr`IW?V=S-)1K{$`(6pIStT$Vv9R)~;1tU77DJi~ z)b&htSPKS9R7H2vR7L-+U6AjU{^?B;EjC{GK-}0Jkh^k>RQ*V_*xDj7m&O0ceiNUp z%Fyn}siWC;uCgrDF?Qy6;U;Ku`8Jg)k0d9@&H-s`?S*1PUdx+n6>SB|ku+uVAlj=< zjvPl9rC=Vk>B8T?&tf%{N;Lvf8a|r!F!Xo(pAz9(Q)RdJZ#1HPx*J0&@_Jfv(A-iT z>Dulme(}S*e7I^miSxi@$vp@L0A!#{ zFnEOxx0WaG7rxE6@tf49n(?MAKn+(6T7wNst5?f_Inhec=B z_j8!`JI}21Q_RxRN)k)s4}}XaP?Zl!;J2WO%>*+0HL6%tR-SBEOw@7Q2_{NV(ijfH zhP5}*)Rb4*x7W&OM&xf6S`jw%S>wi6w8#EF(oTUCT~_(qDS;xMx1wKRL$6QvZ~iRqhX<@T|rq+*pZ7rxLa@2j0~TzD0BL1b60<8 zaF8`)3U9hlM5g$=EWFT~pM0ea$3} z%cR$YU7>?Z%))Rv8cO@n3FJ*8Gd{qrBRHYEvpDn@YaJvUsh;%WCe@RZRMx`~gc1rTK>V!fZ z`qq!lV$Uf0Kpz2w{N^ucRpZHmQodA2*?r737h)G865l1n2pit9_kJT15ERY@4UMEM z(_3+?_c^BYk%;kaZ~ZsW;IL}YN+AMRZnYcizfb`7AOro^?z%FK>1oM74!_y~#`v6~ z2yu;v_>9c~#>pq)9^V#wA9CP4@tkjYum7}LsYa$NGK4E{ODR7r=%-l`&7V1FnFAiT z8zCd7?!&|;>_(x5d9w)KCy(@>J@u>F;>HJ&Cd=SSOe`i zz?9XD?VDRWl=WGsn=~X&jrOcQGwTqg%ZxR|_VF9o6qWH<2)Sr}6Z(V5{2w^N|m4bzCuFu!K z-#tEqaf)5yV6N44K;1N zwRzT$s*r}!+YuvVrco3&$FS(P&jvoDLk7>7G%NGeeFDN3+9dvJn8JVUBgqJU|H39B z)izE(g!j>FjxbbThfke}VWLK9%8GiTeSB?=}=!GNbm{K?_lD^^C9AI~K1$OKb`!MXrj33mMQ*bc(095DS|@OaoKe% zt#7UGS6eG#?Gl0|0>tY+bAwpKCm_uo&+6y)+)4sxb)N~)18jw6I@2QS2=t|ISG6{N zRQ$d7`Gpxj@uMSMdEI9;2I31&T*bObnOLV*y-XSXJ0H*fFpL#PMPDkbGGr`-1YCzOxV1cVltK;?Oj zbOC+Fmc_j3!B=MlZLo*uay29T)V#{B|Yww8Y=hIAmEJ zUkMQ`;*>cNh7A1x*`IvRj9eA)oC;M9dPI49x~T{8CV!=^C76|jMUo7OH7?N@#=Yhd zOK+v=HSq_%cAh5@p%Y1N_4Zr_q;|1$}iuca~8Rodnr>6NF;{v~DSQch+e4wFg!YEcTA&=QXchH!?HgKuC7 z%o(B^MI+NNZ4$uqM2j^x`7xB+5b~*!c;CRtMs%#=zRBn6q^}xZ04+wqOY@YQr<=J( zl(KjkANmuOdP*S0VD)}K?)1p2Dr2|@_L0?e|I~CZ$=Q=R8StMu5fOtTl{PRqJ+&y6 zLW_wdU_4oZenK~z?%yCZrH|}<0nvD#77(WkP*AdfgXq!xq%{${Q zwJ_&Ya0^a4-!fx?_qo(k9K}_$0O^^};aYHRIJ-6tbEoF=otv+^ zxjM{FihoDy8x#t|6op5RK6geRNwu4_t`|{`I96*STog^YT47t4Fg(hof(Ln+x+6kH z4vi?bF?HdDH6Dx;*(A*|eHY0as89(<$h;U2(BsYpO)8M@U+ISLr=rJ$DdIJ$XyRq> zI0rA&m=;aM3UE8inK-YnqDwNTksxj-5VFapQ=*R&iaJy!S*(}AKebXX{b2DUWEt~= zI~vOAryOThG4KiYgZtKDIH_O-M1HV5Eg=;Ln6eYz7t57UBf4*>N}9ua#t$W)SQ!urcn7)S@8Hx{IuvZS>T12*v{yAc=6m%>q8*yh)ujLYxUx; z|E(iW?MO=oB`svI*1!w86hKLfJ0u8V_;1UIQKSeQ^<6SA5eScTG}Q?uZ6buX=;X<^ zeDhf(ihM??90rt)FOIPNPi>HLt~0J)#jU9Dr+3qTBM7;7L#s*T0DrCrub7lkai*Dm zJEQp8!OUtpRH^&2!RA*|YQx7HL4{MR38y2SzFs*yG+;XJ17}(E0Yjrd|8_`EC$e7T9AAYi8 zy%T%Gae6L#8y!JttSQob%LKhaD7TY(d!g{7E;;**{x>au8%A+E>2fMe1}o%Nmu0qr z5KM_PQ@=u9YgWN24$*BW36i=f%b4>M`L9lcJ)FiLOT7pUc$G6-;<3$5QNQkPptVK< z`-~zOHm{%nsuSDuIHsngb&n)KW~Xhtu~)J;NI?!bBpbKey7WV(`75n#W;tlW)9#x zN_~E{em1Z>KUdM+>>un%CoN>p{$(Al+?-|5y)jee@qx8#)k8Mmc@-Ze1Nf+*3LtoU)!n{bD9O^l6=s8{*l`yWie`mWD z=G}ATNrX-P(k zIwSNmi}hj#s4jhp$L#g}7$#XtwS#}pAO8uQ2<{Tw)1m6tNOd}I?LPaD0j+u;Bw&3P z<9ide^BomLLu>=lsywKkHs@7AEm{l`E#{am>%@?He{RW`r7{pl-oyz|aV(G#ZhU)= z&_P4eQxSp=vqQbM=(jZ$R(t>5-NDD-a9E-HG>q~gJyazfn>~|fZw5Q+Rz^D{)&FLLF9lj~M9-2K$841d!7FhYnRq0s&Oun}ojI2FKQsl!W*{^!#R=vuW-6(U;kcpxc9XC1_hM=WpVPc{p~p)1 zKGc}C>xfNZm_GIh0*vCRQI;{w_H+0)L_?GH?*@!aFe2l&NSYU2W&m!~6R`iJiSg$`dbMH2|NZPN~16rb{m+(SM9I@_T41Sw=zUj`{7 zmRv1+(WZ7*zZQq}Yb<=Ca-h1pZlt_vYb*YBY?sG!k$Uz(EUHlkkgwbkUO$OpipfWn z5f&dTye1?RKV|`2KsAl2@u5z!t-XSU;4tQ>7~4W86xkaL(g;mTmZg@IXyV5apA=hf+V@#D)*x+~uj1$1I&O6SBG^k^ zZOvOiku4E^G7yN+P!A+XwJyk;4uGh#l+0iYw)2vGFY~5{MMaJaalFpF72j3#8X0Os< z^-|0L6UNitfd;V7#>7nUvLh|!dqAv9^O zlT94PA2s1vS4YAaR=w{0TYch0!M4$h0%BmtC&@@kcOEaM^*#P=p~?o+vxTwkEu;ag zFrH!*ix@-!Qg%UvC-Gu}3-&kG*nfqi-mZeVH>a1;U5=d|CkR`@0g848#MaBJ1s{mD z{crdR-EKC=yzMN!wd_DYQt)WA@qrh+A_kM>FDJJxDPL<+7&o%HRTWqE>^j*SrN+N0 zSqbt{nJr@V6Me_l=s$-MHvg`A2{R@Lv*?=yZ9YOBB{FnY|5Mk6>p^v*GU$;v=?jJ9aJCC^7HbzPppmh3SRqUWfUgZ7dl>|_AB z=$G-2xmxNQHo^H|`6vu*y)SuaErK5wb5>g@wQj**Q;g0?brCnmTw1OoM}@Ad%=-*? zL#-QioAh~3&(HU24*2>X^Jcwso5mk@r~1vTSoUV47hDxUA;sep$RmsAyxq^;{;y~4 zKTq%|M4z&tkrYB&dk&#X%cB|zoUZVjt?R36hhBki$=!%Tr)P=S-$_Dr>{vba)R?5g zgB=1cR)}D_g3(~Cw;>zP>w+D>9tpOnU|nF8@V$YH&sj8E`IR)k&}@H@g^&3Vgh@*_ z1NAVqO&DHG-v!~s8XvAOaqyPzb}8%_UeCCNcex;Mt{J6Vwwo=fdHm|0qs_l z6!^OfEn6qc&US^laV)hqrR&yF<@d&~0k@p>5B>z(mpZI7O4^ZYOAhZdN!A?{nfI?M z@F&heCL#zl^XDC^J_VXOw2H@C!rtl85$F>&hLbk$)De{Pf|IVh-=h7aKPZc)D^MNy zu~UYN|3y8dh3Kns401M+2>+l}6~+T|)^e3Dfv}98T9d!CoK)2oT(tG^E z|BCR+K%1rkP6?;!v{n;FgdNrY+hxXE*r>~rm5wFO2XTcyMSML+{Tu)4RX0DTKAMMc z#V(jbS{ORq-pTncNH1@1ruAz6GQ7IMu=@j17r#h%d7xU84Z?@3S^j9&W^mP0XBxS) z9F9xl`e@CZXsv|r5$A#MjWb-!4ucIVHGL*+XL&8>^5_*V(DNO?y`9O`5a^sjcrp_K zD7zBe+YG~ij^_}(OvWe6@-hcBXp`B_RkJne`X>E67AcQPm>1aG8^nEO=qW)S^W1W- zDN)t{*a~A$c|DmYyoU1Rf`zLe9hv7~HSRsf1f#=%f4xKTdme z2mW?@FN{-aV^KGn{<4r7~?7dr-u)%Q0s8Mg7V!CR$r*z;nMQ;0_# z1YWguU)wanNHw$q3Pak|`|7lEaE3=xwn=}qf1lA{NOCc)k>SVLx!M;YB-P!UiI7E( zaZyjS-%F)jBoW`i1|9YOfTaV*H?#c3gN3s7Tg1?=8}Hj@xtEKeOGHA8j(}&npqH_C zf)e!@wb&JNiLVDOwK9r>gM%=97>+LPzQf0lL>Im9!6t7IYi^Z+EYPZL84?>Cv6GX^ z!w59SCP}ns`fd@#IOuV_rXaduWbG=xE>kn@V>q53Pe*;eF0%bNWkGy05Jf(I_J_VV zLFq3UaIfGjHPn^6*&687K%ma zLSee}_Kxt*WIFLPwxB;XZR5lElhC8Zx>l`)2!y$uS6^M z3%9vo{`INtVFWJy6cU&G+|Rn;8xeUbt8^J7ZoACa(fY5wCoz{EBYM6&t%oPq{aa8e zILXZkbjAT`=D!P*jPLNHgBvkKa#^Eiz`xb!GQ_WSxtR?yA9QxD66bJg7{;f_+<6a< zt}OZjuCZ}&`EW?u9neI9Llu|meOp~W6@ZpSEmy{#3ndpyPA=fHc!Z{@ztg_D?b|qf)ISSl`&3F zFTvVVzPYL>biI8L`dj{uC$g&&%b1!oL5s=RH7onYOD=VviMmO2oy(-pM*36v@iwvc-wP!ymE8cck z;!*jxyFHV)Ux<}1vUBimL-YL%)_XjD#%0QplJ)Lyn--Qk@Ea8Dp2oY-&M+nYtPmBa zCo`KxqLk`)!h9uy=TzVk0(`&>^|$*m$=rq`?W6&!?2jPqBlS<$Lrl6)Il~K;Ketop zVWz@7J;=f9yE7$u@V|?pJShbGAjfV#vzA^cnkG@mf9oDz;e!tSkLc_FL)Bk~wbe#l zyD;t&thfYsio08I2vDTBQ=quJySuk&OOfJk#oeJe1&S0XRtU~s_p_h(``&#V>tB8) zE0@eU#~3HTCtMbQoo^pbZz3|Lqx<`d+HnX=N*)ePFr9upzj8Te+`T?5nEsHL&Uo)1 z)=c%8r-5AsCWQONBRKKOlvHQX$jbIS_3sHf{wdVOI?ZI9rsUKJYo^;Yyaj7I`(LW{ zVX1eKUfE-HjAgo~(Bb!G1+E2&y8+mTs8N!H9d}%5WW3+4oKbkb#DND^#9m=iiUK!1ew3r}(z)Eyiz zoLCz0V=UcLS-O&`q9u^+fx|~&$FUFpStIa@gs-N5+5NQ2x}!M~mc*n%?GBr!G?567 zv;UB_Rn{&?fmlv>dUkesIYRB;lXHD0n7q2WwYPIC-bKLtwe*jaBFz%2tigW3-P~iq z)tI8AlNyMJ^Jo?|(bMc?sC{c_=zzWzMIm#)|G(m8$&yM^bPzezmCEYPGhOQ4+wY}H z<{EftH|Paw&jWSDjD+Zcs)x-mRvezhcuJa0!wlb@hrC=fh{;m7 z(c@`0xHPiw`Qn~!Dk_FDur1ohM*okO3!{O(;i16YJ}kFIP%S}z#L@L5=))`}zos(& zVI=%HB`dO^lrvkp6o2e8E74dj?$}XF9rG3Z9mBkEDofMn$E_y#vEX5Ccr=wq>I84kdH20pJ9Y!5Fd4;P+0 zoWu{)4uFz67T!m#9w*H8U9EJ3dEI&cBbpU*?hXhqT*jilJRLVH#*v>3^g-^OBb}VI z$yq3?u(;{v%gWSsvC=dch-&=Y-#j$#T`f8Hk3D0c(AWH|!juFva^M(V zlYsx3$Bzd2Qwoh4v`|g3segws_(Fh&zLCL-pympm+$$W6588u}rX_9p=u ztYui*H26Nbl^-d7kellF#(MkI?cW(@MWUKfp*)WJe6Hfldp*;IChi@k8RhEON9&pq zGT92{0u?j8D}_N;L(DBHa)gPN3T_VTcRRAO@5v)@H@aM-CGYoM^Q)M1lGtAM*Xu}< zS*K?-v;YtmgM3kAuq`x?kmdhq0iscHw`_TGug><)M;pRSU;glpe~4f0vIe9xU`}N} zXZVqq7lGcp-%O`x=Q{yn2g)o>@16_Jmfm}juuCwFc^gV)$~5%$PAuPMoEP;-K??f} zqEo6w7oRu!ZVqQgR&L@;OQ=x;VlY9{cM`{X^VTxx86ejJ)p%LjDPm9Mu%u`CT6n1- zjJ>h{-%Jztf25LDBUC^3vhu>=n1grp?cfAM?9|GYSD0Vvb%T znQUv72;{N*Ph%~D2WQZXwPgFv$qzOYw>tBTZu8)dm7YJrB)P%Us8_05gz`q_f{bC| zO1pU0^5}4cC+AZQ2_OW{JN^NwvXF4l#k4}>BaOe3MrGPb4t^obJcDhu=yJ9mRQP`4 zu1sg&Hv?Yy&^1u&Bu#Y{FNVqm7z&?jDT4xxYP_aDHzs`GD=AtLLWR~cga*OI3?gXI zCs$^yu@HdrpjZS^JVMLa{afGqO*>5d(VsduBwt#)SIPT(U;j!zoSUwr24PKQykZ+% z7n{7VMtpjZEV$@>YUS-xI~0HZdcBDsOZ78!l83Y?ev$e@t7B8-f~T~~EBAEcN80B& z?ndj0>r&pLUa?)<<)IS6z>lffsuc@cjT#jt0yFVJ^-{{Q({6E9KSZME$!t0L6~8Es zF@M9D4ue5xrRdNhq-ZVW+#J)GVfgyQ>7x0|Z}Vryj3L3mVz4umUC2WsY$=#IXaj+u zcybvlS-L}|#jgdWwi?1fP6CuD;fg&H$8*Qt3SHRNe`an6ao#^8IfMZr7f zCMZHC5%a2{gxxL9sM0}+;f+i9_b?f@arV+#ys}wer8D#9>aiB@_M2Zbqu#f|!omZ7 z(pvUcQ0+$s9F2E&R*Y}AN*WWYne{o%+uf`TlqxLOs?bQm9><%U4;_psX%H--R2j^p zpYMp7J?l{a)EQbCN-`~fR;MKA9}HmvY6iAkeM939o-4fzB-`PhC9g_VUpG@yw`$a9 z>nT<|y#(KNf*!L^(zLtxwuz#{aoZ~NU%g+Vw_jvl^vb%Ye6FZpQB5z3pY^uWh=mQ= z)>@KaZ&>Wti4?g^F7Amn^xF%rujLWk0x%|Hq$Sh{`h!{aauX%WE_;?& zrJ`^-{|gVu@}!sxX2ql$#0xdwg!bO8bM1yjt6!(Jl&6w~4!rx##y)0-I2^_wy8I~Q z#hDdT-`D=dDYhXfX|K8&?boPV{{SxFWDQ5WqP=ILofT;~D7dzlAV{mbDEF<> zHysN*njj0Q8ed%_Ep?Yi!#Jj#9`YrAmT_^E0BPrUBF8s<|Fe*@tJI4bdV$Y1zm4K< z3a01bh+@Ti{7Q=uZa6&4!LcKGzaOmre6>mS|DS=raQ-*&u!2i;MZOaZ_-p#$<X^Cx{U(uw1P zMg48cF+2gSEUg-(^9MuLge$^&i__IKU|A0*0MciCwP-Vw3=+2Rx)_9r`-y&|@kEKo zfSA_t?k4J|OFf1?I;O6k&<+s{O;0f;?hzCelJytfklxmL(w=+5{q-D?d_KuMG)*Py zLB2lUG&BN)59dM4-|}>gEeqlg?x2Hx=tS}OUhRPS)b@}~EpmsG|HUn@E@ z(kTy`_x2r!_9|!YcfUEOiU4y$S}xXz`P5@FTDCf;b;3-RS&>q*5#;PABE3>06>PfDCl0eQCICVf9^X-E}arPo~`S0?Xy%T!h)A7 z!Khp|e{RSHy=D4*X@IPaA&-ug2`eQ->Yz&q7O5<2OfWAb>3~f}_#hlc^|n1QxgAkg zT`1rstx;Z0OPBp*bZ2#I)24yHzm55MA|9WZ{yNi~?;W9h=FfNNQl3=V0sUbvEJwD1 zXG4+6@Y2<=KmJoh3=i-y1TB}q;`C<~#6pg+Q+Sb7xZXBOR`{Ph-2ELV!GYKw6I2c~ z-+K-IIreVll?YnDcXni7UywkbBj@fa`g+Zo$m~p|vDT6Zma*=)Yf>~gaC8RF)(}h| zEtjsQjOKw(-Lz$a2+#=GIrJz>_3&LSaa|df{&9-2m4~tpfEPauObeN?lAc3l^@um5 zm)e?JwV35_goHv*N$ZN~r4cS4Qn#@yz zrh#K;>w>w(z#U}!g)z*jg`t?xO2ks6>dQESC5Ivt6B@W3&`*qc5TDblo#0`}bl&P$ zE5wlt!hHT+B33N07V&mm%LW)XFdq@(4J=RjcevBbUD@2w@Bu#=%LKx7lrXtsJ#CSyI6QP{i{%C#`qb*<)`N$Eqh{`bmZS#lr}hShq{ zL*mmsdH-N3{;#R?>JCC`;4Jg0@d)^9zSDOYYv|$vl_0G#*)!PR_>CIIAj_fQd1%Wh zNYYW4L$)G4y6BZZl%=7Ohm(pNglQbRON4sK$X(FH94Rg?da@(ws0MIks-_8M_eq8~ zM(rTKyW8^UMI>%yAJLE2$(yqxTNN(qY5R+#ya!Umloc*yV)ER9awg^Azp79td)5Q4NS+b~D%m$WX2<8K$o1`YXjgR3- z9~N+YDC!bAIKHN%k_?;%miy{f5p8A#f7GQ_SO$gz$CiIwgOSQURL!Xx5G>GyP>fEL z5Ept?zdN=xT{am8fuz|j(pP&3>)|Hg>iFNG8@>tBnViUX>ac)j02r|}3?8!5>q=_(!>4ONjABCvY(9=_1 z@6c3E7qxioG@I2~p_u^g5s`_PMDg2OScyWL7j^tPTM94LX!)2h+>MMmr)rB2=wxGX4z%bz2)|J`P3u$w|s zg-bbiC7<(Gp68JAC|=qY^ke0j$J{XU-fjEV*Y#OHm^eCpC4uSn-}Wo)=jPUDvP|ak zFDFFP26;9^AL<8V6D|RKeb9hK{b0^0^Nq=;YkU^^LTyDCM7FS^@5Cj1fgz_5IiofR zNy@+Qdu@wRZ|KyQeq$~X&-jl(0&7)K6EO%~lcHjpjdWyabU!Wp(f2f8ow?vbNbn+w zLO&VpE3IhmCIOU?5KgvHuSPdDXE!p9}9VUg~>Y8$CVPtcoWr0fm0>0!b$C z715sR5IF}Ww$fbc!uER?H%%5i3OoWoRO7}&&s)ROsa<}!=gv!ySCkz0FlY0mh)Ts; z5Ru?ma*TJ=xoz74wpI@ikb}2>zYH+R9pY6$ekq4!k# z#zdsiBRP@c@58Ped2wJiPj@px5shzZkjk}UcD_#F8QODl9#pT8M?g0KPrEgDi4#Tq zQeF#zPX4GzOLB^mvZz+ndGITN#KW{dBsYODu%+;5#TUIzS1;;tx~plOI-$GT5F}$I zQfPq@zFm#?BZQD;k!7fQR5HW_8W57**5s7QQ$BOQv!K9q-rM{xmOp*F7*-S??;fL>fu7=+Hw6-c zuJCiJ1b3f&cM5k;8Y{G1{&oY0b8|{wj=lCDO>isxZP?O>ss4VdK=^`SB(0F$S)Ip7<^2E$@+wzxRJu5$aH1x0;D=zX_hu#3<8ZCgNe( zdsv*4M2>H(FuY~8@Q~Q9kUC0R#ss09GsyFo=lyLwMyR|dppx+Yah-iwosXT`=OZ?3 zsIpL2FDF60M$)w0<*U)wTyShZ3+gEJKhK>Py7q3%A90?_irS|kCrcz7KM`E%9m z(}C%$xZ{f3uLO9?V0R3E+#M$a@znv9 z(@7>rSw${<#TDTU9%lOsct_jRc`E_Etjj~f;~FxW#-pLzrAMUui)PEyGwxlujk4{(nebSz z8p{NdA28^fLcx z+mG~{)PB_aIueLw^L5s=0oo_e4u`0pa{@`f$6W(d_RjEIC2X5<0&eeRi%bhjSf#&V z!6aTzbRzpbDXYFf7vms~=b-teKY^3j3JqPE{fyv_GFBSDBphegw}o!6*E1kFD)GBG z;+Z0VU+5A%yt<0nL_vq#WIW*4$cO=exSbrh%ZCUVCT=Kd6m@QLT0C=Pz&gO_K;q?2 z)}|4oMDdugiMDZ3#70UZX7KMD+VD_BZe9~IJnoMxS=<%Pcya~Ja^+m10j`JVdzo75 zkXwe%xKMKro}X&B_S3Ws88Bt+o}Q1H;SqsM@OSTdi#Hb4Hvi`dy!Hdsn1W%!zS{p- zXU|0{Hcmdkyz9cOov&N7lN|1fzD<;KB-@4Ts$7YS@ix#iC)}>MQj_)}O)e3qj z)%pD}e(mX<1_gYZQAnXzl`xAVRN#4=4+-M$t|RL%6J~VxW%$Vh7ryuOl%WxP$t&

RTfWnj?_R=|3P#)(X!oS!OIu{Cvo@g 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 z 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 #Jc$Q)ZLrf;P)7 zG+U4R>Z;K|_~YHo5ZdbJEyupJGv=7&x7{r!yVejOmO^Ac=KbsLdZRbL7`P_)`po;1 zT!~5 zb8~&}-B4dYr==f5ucBjPqn=Rk=8)h~mee;>hEU7trKQ-9Y^yDml~IwLT`h*)s_RbZ z?(3fBU2i>){@Zcfbanf)17UZapxwxIm%Vsv3^!NTy7P2XMBmit-Bm%{r;0986n`2z zPS86v-@bmayu(`rvq!EyQkWvs^(HM4wfg|ipj8XPZhzsU0qQvn~ zg`4tqDP~hwA}2!thyYTLix9Q`W`B1#mi0WcRGFOsLLR{yx_3 z<>)`KwSNy(%JGIia*k&R(ixb0(R+D=Z`PPt)i{$C_rMY<8W%0Ai3uk>go~9TINCf% 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 z zjS)?btLF$eK3lM1%W0|Q{Pf33Dq@(BoXG$EOWXe}S|MiC1U(d!-&YUoAW=NHk0r>3 zy|&GPD8YE>6;xH+8G`&nyM9&`UwHeEuQX$sj3oU$an--5d{kKuL};ehF=~Ogg`R86 z$NswGD?92_JSC3VHlH6HzMcihnSTV`ZP?-Q!s{);t zytIWTU(>d2##t*xkaa3gx{q=&VZJWEA{yG`V2BVyp%7YJwAUh(5P}JW@UMF9M%Y)- zo4sdm9erPLC+dFo_KA;VLfl!~m1GgeekXDRr}v4$Pjnn`#sy1n;$AvsS|!cqc8D4=k9=K1 z#R|K{+qk$Fg5@hKH!eDpZ{-7bGEd`Wbl!ql1ee0 z>3>JMQfnkmqsV$|{Xd@YhFnGR+%2w9-7REdH{v!bBw0iUdCM`Y$^?*!Ck0;Z z1cMmjcn~BUw=|LSV2aS!kNpesyxsgnHET==K|K)-@K+U} z;)?i;mwP;h>^ zzbTAV=pZn&!i0@r(iK&tMRd)<j4aS`b>W$$t`5*fB+ zn?uCyyW*RWrEp6cJyQz57BI$3tw~KO&fzLgi9!jIWA{}CHlqAcp|7{}$|*u63l>%V z2*NU$D@xOi1ypP4n9Z(ZfqFZkrVCOl>FTN+R4AuDCm;Z{^=|F6Et@aA{_Sj61*DOhEp znVT2t_Z_RA-p}8CL%#?;(XQBS3|cvKq`kkA+;ed851!esB(IV^%z1mad0WMtR;s#6gaKsMF&cE8*;X`Ktt$LdFf` z804;6|B=XaGaRq^%d$dt#_q4Nlu3o}$IYRJC#r#}!D{)gQS7fKeHxkpfL?lxqsoZs zBd#r<)Y&}Gm*2BkbW4d?tV>Sbn{V#i6Y2Ssb0}e@%PJ7%sqD`iJnWUu8oE&N?sZW1 z48EcgCidYg~jh{nQAN_uE+T$|zw;eP2q;Th88HPoJ z%5js}fs~}s5`Ccy#%DtDm*g1D%=y9b39>_{KS9Eut%0AWSqW$BeNE38P8WY@#itNH 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

ZS}`IH_UR)| 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

Lr2 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

  • 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

    Wcd(AbV_j|@tFf1&aIvz`7 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�}hRtT!GE^6J%bS^||6}UC-}|wzPb2)-o@T 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 literal 0 HcmV?d00001 diff --git a/android/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png b/android/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png new file mode 100644 index 0000000000000000000000000000000000000000..5b30b0ca01c0e13692bc442b95a0a1a269e453f3 GIT binary patch literal 253726 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⩔R<_E8 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 QBky@d^M*#=#d}Zx5AJ6nBme*a literal 0 HcmV?d00001 diff --git a/android/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png b/android/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png new file mode 100644 index 0000000000000000000000000000000000000000..7d03630bc0610b6b9d542ff98116c0cc271bfb41 GIT binary patch literal 436580 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%0DoaSMR7gswuR0;{O#KIzb0{)r=;*; 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

    ayqbUSv_cz>jyrs}>@ti2e> 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 HF5mqRLfic&+vkOC?o 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

    Q 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

    =*D@g}bT_yk;#Hk=N*$+A{XBvs}G{_OfT z%mN=bG1{)C(8K!_kcnnBkQB3lmxVtgIDZmAyRNEjdvsr-M4~DALj(r7p3&4_osPdz zf9WG0sWdM3Ar~F4WamMdU(06;4>Cy-^O|4G+JojhgTby%(hBdYfSLW*@TU;;OEiY- zgWo<~`I%@*D@OyFG6Fq{zTtT&wM+m20n91Ai8#uRm6a9G?E!NU%0ddF$s!zi(RXFU zLT9Re=3cLF1Z>kL@q<_C6Kpdl@IbiH`dU->0tfnIm+!))y2=%swo#Px{C9<UqYf)^xadPtp))^Q`MmX}(xS)ev zW3f$V_l*P1&IIPqM%e1Q-3q@xskGUgz2rie7T+*J2rCU2CGLI}M{F!6@y=YE*~evQ z`LFJC9&UVP>T%)TOFb3Mw#Otv)MQB|JthbWsapjJS%&U{9DSU6-z~g->PyQR25i+e z$%Qx0g>LS#L#MLQgZd6a?-IsQ&!lOS2mSf-Yk7#)<`dcgX$Pe&==3wsj)0ni1%YLw zy}2QNqr1sQPTD@{NiD~RmtRS4@HNg^ypBYfgpFJ$J5FS6U7eg6A_Vuk26af3>sO2Q zDg_l!-gcWEzpUINvWt`cJ~VVb#Qutd-u(_;J^VkxSe)elFig>;|Jv1;eZM6r`v6UI z=1Qxk=5{ElI<6;CRdY;y?D#1b{J1LMAkm)N18WAvp0N z70i09_3+H;--v80bnXoPsZG{!N%;gf^7y~4PH@gFmCyRR$}AhNQ`li@9dha_ggAM4 zw<}us%115nNypHnGbB?I{K&vT{sjgOu*}SPK1C~akM;ITNHX9C=bn$Kst%^4=@~Q3 ze@W0Y5oN0etdF5wk6US06P4=v_2`STY1q<}@qf_0lNeTe`C98_Ox+G-{?zN2S@tv# z=rQgB%LrtMh3M+FEKDr>Icxr20;*Zno!U!`XF6Yq%b@zz7OO*#-h`y8kk$DqszD_&B(kQr7rc$_3KAA zfC&nw+`&raj^BvW;4Owj-xv1w@&45GVOi5G>;w8Hs4_}@;xT0M8uz@@b+vv+I<(cV z-Sw2y?EicpYU09WiBoEP7P<`1NM(Z-OB}@+ZT;uPB0?H#ejBD1!x1+q0tYH(%l;~j z338@G=f;-h@xc`jCHsv2`jpI;*g!a7kZKW9LzUOeF%4@ClXqtAG0K4pbOBndC6VB{ z1OS}!?@Iag*I%N3tr{hOz|NT+@ippEdN{c8qYkt)Jhhp4zyM>>NKcC|-?KaSxBuaX zKB7hXx~NK9WQ<`V%!qInrc)YV@&@yidmu1%W+e0FkI|$P3N`qu7p46au3#i$Lp%!M zzy+BoBQwwPaK!^E0gSRlOgk)Nvl21fl6N|vOMav{{t1V1PmeUAN$qtJx>^^1MfrfQ zE_bfWA0=`!n&}C!-BDbVN2GBG8F>4ztf|lJ&FvqSfPi=qsa}gE>pjaJwchLDWo!f3 zwJ1|eW#J-X^}@OqdW1tCdk2kj!b$~z37V6i_SLb)-lwe1@kn^KByC6djipMMpwr<& zDJ`ze>!Gbet5=kU@{0(Lb%B)ooZ{XxdXdLV$S9kXC*t0r5zqHsOBz-UvG9-s%QobA zne9iyknNbXz*q$tFvepja_!d=e=CkJ6^7>CTH%liC1+=+sK+6<|E4>e+ zEN@_jwG(|ENGb08d}1L6s2^H}?cYZy(HK*|Cdt6|R}ZhybFPelGXiIdTHY`38D#um zo@0f$fDE9Pr9=Zn0Mx1=3=0e`k2syYiF|Aag8^D>9=*3=&MmfMKTyh-iS&5m^eiB9 z)e@{zJbBn5(G*gJ|c_*D&~l_!CBei-I)U($|Z zi&{gbDOLxiJhn&zOQsKiMm!Tm|GCgj&JW+IY|j4UofemxHei*YJ|D>xdoT~H08FP$ z7FsGlb6%=x^Se^dIm7J^Rt0wK%F~yBv#H)jJT6Qr*vE1B z{Xop@DNpJQBdq!w=d~oX>tOLka;)K19(!lcR}{~WjI#ObmEw_mLIh5zYeZ5;0_K-K z2_jjL$-gR|x=QAq^I5bU<@dAyAe?Fn=EKU5qrIvI&j%<&FrRxFJ|TfG zNrqfZ3Ln{=ZRL;HNPpn1Nm}qy+4W0W7YWH!{WajXGemay%ov+EepG*8dIbFAPOCSF z$p@*V%JiYE|1f}%IU##_8lT`;cv@xRXDlE&u-9xiW?K=7jHuJ)*lBsPF4Ru<7g(;e z6InUCO_veXKoJO{SK^kYms9UlAFODinX;Wz?aEiM zLGPOvkrAI**zK|0NtX3C@+#OTneHkfI2^=frX(zs=G)1XmD^b;DH-w~hoFGgopnD} zS=(5DIq2gvbnhHWa81$@oD0jQ=LUKiwqeCY9L%=e6p$>1a@sJgATT`bo(e!X6dpz$ zoG33hc|Bjl(61NQw*IN)qMl3b66PdKDhvZV5Hfnbn)bw0YFc)5AqL{{+UTSMv7YlY zW~!JEDYMP-V})f*-~kI(GQ2BoY?IH`D$t=@Oisi|+RL8pyYPN_aP)h*^wnCuuIqZT zecN|@*Y5PXw=L$t^4UsEmwUCD*uCv;6sd*Wvy9@zhtqeydkqae<0yxp6ClPWBw5Fe z{m7@&xs|!)S?4-$&v76LB@i8fKV;rtyl1SA8s$nxO!r7yP6G~WIEd_7`>Vm*!K`FU25TG> zMtLT?+jox5%>l|$Fax>3y!pI)=HFI|{mybkY+s!3IzXMYd1_@*eKsK|qF`z8UAu`& z6beAHqd52EcQ#>S3&|Q9EjakBc{uO(e9;`^RH$ zE}g`O?9LiGHTAs~*5fbMWfE{j;P1Caak?IVIXYDq8wTV%pfC-tFLKYe z7rgp5YA%mW?L(V6qJeu&0*0JBsipHysF~RH?*eztUxOjyGxpAIy~T4K`Onn;@1fNR z>XO1^v%x!89~rWY-vupNU$$#DB#ha@W~Z@`AuIHqqIT6IN$`N8 zN?7l0xqoc?pBEr*8}p!bT$e+2|1c!mfH2bKGuEjB zYc9>sIfWve5<(!$DqB0t_LXHAV;}y--xG{r_6^I<07sI834K)XL}O1aLiWT*!mi+M zWF>|yF4V0(Rz6e!cIB^z1vsyz3i28DI4CoSuF!JhIsmk27wqJQV> z0EOV^Hu{egR<@y8SAc(KF?&^u6?+XbXF?qZISDzKZpS7gCa+-I@CG-(F6LTk7_&Ii z<(}5sCqBus=F&3MNx5;iiuBs58l#6GPHo`n7>40T;paSTjvJ1Zy40LMw-NeI2%Qc$ zwX-Jx1zCqI1O9|CqOAGyZuP7HAf!|m8#QdN7TPxe!+hb}I zDhNboSg8UvUfQ;0cH;$J2gzT4_&<^Fz`t!>v+&Dq={*ju`sg{H*uTCTIYR$kefnu& z!`xFm`4DK0NW194hyR`sDi2Qxh>ab#K3*_8HeRYM=&VYQnw9ZL+qJ4G}7l4^$7 z%jaaq;_nCqx%*UQ2hm}1;=cn*Ld9Su%#hJ#;`^}DX&&~MM0%-(`lnPw^GuV{C^k3` z*ah`hxBrD{uwlL$&&MFeL?rDhhMqKm+u8A|8s z6&Zyt2-|Yc^#+yrN;k>5I-6IiNSr8@j$;h3W7P79F9Vy1gTz3e-0odQlFz8MNhX}& zykK<lTQp68Z$C88SIVh_N^6@U|^FN zE)f2$qspdpsCW%?y#*8Ax2U)$$_bDsuFkU;DM3_i7wNu9-w>nx7pbPDG}N{IaLM2A z_V?kE*#!v}a*xtfo+#Xk(PVUSDMP7H4XV0c=W3W`5A-xV2JzHtmw_J zhfTbW|MubbD42&_P-M+@*@z=)_DW*p;*ja)435|AB#WCk3mtyb?=^e#h2QAvt%6!L zZmz@Eq+1n%{w564iK#t=XvJRO#rP?V07Ve5-qCI}-YPHzQ|B1R*Wa0wmL}1S!;vLN zE%$ybky|}`$|}ian*+a?tH$mZvCB|*pNPG3f3&q4Ud(PB_mPh6L`o7D2=KWs&I<6{ zj9!7A5p9%MwMP&l<2Xcznr*{lM*&0AI;!$pb8ROzgYsDQtYTI3P)tO{ayyveq4un|^*Q$omfdGN;)%lmC(BG9n&r9n%6u8m1MvE?l3f3K++c)6xMEBg0kfbc zJBT2^C^FD!V*IvExo)`gnRhMB-u(s?%UmN^r8&0j$0&f#CrzCW4x_AfX(M~;@(O!G zq9wSnNJ9}>BV_!ZGLA)d(ptxFmJ#Y%(v5!)cHF@4dEbV?NDu-?T6tF* z>uv#3j9Osl*A_f&Yx}p1!}-y)F@vDuECH|D4s9RDn{yo$%VW40CDe3A2G6>y^Lk8Z zl6`J2kmS^HUZK_>w8s zeZxy$3x*eGzJ3{%7y z#cT`9&9V`uOSWml;63MBLt+4QGK4xi3N zhdAug*0Qo2`eC6qXT0kt}NlcVRkhCkP0O z96AGzVCN#Hyqfoc|%*{$wceR*+9GVuV@ zO^>GygW;~Sxi}1`1BZvx=a&PxR=t4{ajdIX`t(2#$oWt4e3ni~({1C%!s=6%?*E;? zIELEiGY8~xbboDcwDY^r06y+eE1$BA%zpAqG)I#|IddWxErRgEE5kDr91MA;ggZ{0 zd<^&>WG~Rvt@izdc;jj832fE1j;&U%rOe{@9m-awJ8*uvrpl&PN*#{No-P@vB?`IG zmRHy;{w{7#=)I`VMG5DMMs zS};CAns7gTW}q&cVwzzp8R1ClJ z92MJ6Hr#M>4{U~+GALgWwxU)r9ziH}**?Dso?TD%d)#Uwi8sP7R5^h=BZlN0K@w*_ z3IrSlNXgTReO*oh#k} zLUCj!3cy$o|L)fJuKYAL{>I%zm&pFhP08TikY&mNcWNq%z3$N{@|~h6&)bW3m$}%6 zGh_M%8#^p<%^9XF61c)}M(CR`UefbD#>+?U8m050j{W6;5Sk{hVWRPZA=#sa0&1pE zUMO)JMl}YLQYp;(t=stxL=vw!OB()&BBXLhzI-p&ct-919@$t$_I@@|sm>jW!>B!$ zn-mdKYCo~_*8ypcT)CtnMVCGqf+*Of82E%^oH5=o4 z-Kw7exlH7k93?gcUZ+MAAq3OD?Jk!h`+^dD#!12t8)REAqFn)qT>+RIkomp@H+A|bb#s9BZ*Zp+3ndwwU(xNp zE!ru6uHiX()a@teYqSa>saA9B@;D)=R^+--e?b`)v(2Dvh-kE(W!r_HAwu2pGAorS zq+lHy!AYygq`d8NKT1}idPrV>s~pqMBLkay(8~~{z$9>M5>6}%9)-YaU9|#!Dw(28 zjk}a@?4u7+9AuDUdI}`sgzT4#RM*oFBYs8*l~YkDZ0`TZ^IU#1=6E6qsgx7=}0NMwT)ZOP3WDGLmp0 zy!%|jEdQKgVC<5+nHVX|er8_8B^{%BqW|Gxvi1A-Rk4*{b#U`1pes4gz@E1L#l6Re ztAEqYAE08>rxcH2aQ|vZcO4-A)!0|7lP~XlzXpKqQJqZqM`O@D28#m$%8i}xF5;0c zhJ_M2Q{=Kx%(uo-|AwxK5+-@jf`XZn-0qq0&mGPMxj`Eg~(A+v@^ztd>gQz1=GeFcDqjL1(v?@ zdT3YjwRX?0${D->>QtLw!uA?n1^JioywUU`COWRNLw86S8Fea0$csLtz<^VsJWgvD zUAQwo4WiQ^Y57PO`oWB3{yALv3d{i?Wou;`Jy&{*yK-MdDS6q+3@w{UQ?~Q;ePPA1 zK|=(Kd5qumXOXUP2eQz-qg5K6yk~7vZYJ9Oqo6yCp8ePLbH*dMYk+;;j7LFh-mG!P zTwQzCYqoR;O$iPsUQgU;Tq4J3w&5yl;GodcbaU(6U!_Xq7Eq;5W-aRzL+UBcs<*Xu z*=dy6DL`o|zxj}QxqJRt_FT2O8{FH*^u&BfH+I9f*Vc)>EbQ5xN-NRyop%TXmq zg0fT)UR?(QoG^OCpTpqlyEck<>dH_pu2`Fv}a&5o- zt(#`3XwW{;i}8n!+lm(|2u zuT|J3EUDCNm{$AcQ!NYu)+LwGBZM-?9CS8 z92G+#{TpnI4!{xgEipj}8oK(0s0It<7Nn&Yje`Li@%D(57my(}nyU2qdsi~Hp;?Kw zPSl04PV6kA&aaJ#g0AUXT9y2^BZIWV24NtE`)#9xfzIItw*>nF;r#DK8b`)d_-*;|b8BGUQ1)Ok{=f9yQxo9K_?j(-l79~sc1kC+) z1c@eW!#6Yp%*f6oHP8K;$1wUu!9dQt{nZ*=AUh2N4|m1JqgO{}MBC~~k`$MwmDtap$p&~+{d8Z{kTSw6jpDY6=` z;nUD>g`d=CQTu&KGL&I|dw=`th4GIf>C7K13*ztS3^!DJ-&^H&E5t}B{l&}S7uwd% z9oHvRDnu^ABy+{csPde2Y${$2lG@(6v5o}A+gq4_+ik4KuVM|Dd7jAh_lXRVFUs?S zuKJ!rBCh^oS4TSxx9&Zk$c%e%I=Ywlnw-w=2Emj)&-Zt2e|zpaR1yhN_24B}*WOj!j@oUB)h(RwAMM$qDxnlSND- zxXUH(N-doAE1np8*56Sj6X`&*`(f|y5n@&UN{W)(?b^^L{Fa89`h~Ud&6tm44y$pJ z*_Q-9+@{&H@}lp>AdoxWk7CN}MzhuZ2u7rQq{hMutf)a&OS|27np_%)fC|7@%&S&e z>4^FTteY=J9PtC;n1Z`BR5Ig7O4TCyd;slJJv%*Z1Lp5kO(U{OvKVS5K5zv`0=t~q z6dpg!V7j?X#Eyi^_e?kiyM3vbNtoUPQlzD%ZV?7QNqV1PRC5d+h~m4RQG%c3$|s~k z*+NSVSXP>;Y_#rXckJ(rP0mSO77K&rhSL>HyK|`kX z($c8A@`xq+M)6(z^k-mOiu zSm907lCfSJ0oy^?#E-dK7yqOB&(13UM2HIbAGH(|6a;4{c_LL)ap&=Aq zQi{7woD>)du-|VKEW#qtsb(=^KjW=`hmRyV#)PR^oQ$MRQ?lK~I$aeXG7)z)L}q15V> z58v{U3a~LQd7BAKe+~0sDpmqay%(;#z6x8=)rf8un!U@Z9KXU4FGw5SJBr#nlB!$R z*VNLQ%wZ_Hw#Ggji^Lg>Q1(wh5=WVyrufr3zIPP1SK{)AZ?_%CBD7oMj(Y{a_#$tVP%s;d@?#pVSJVf5>1~K2biydhX(DVYLJ$`VTF8_A@cZ z*cBlSVZYM_?TRdQeh#jP9nrD@1alRwDNJg}>tU_%sc~&!=V>`vCUy{$l?E$7v$gSQ zh7wUSe^C+sTa^~1`~1b5l?n=QAo&YneE%cdGRRubt@it>bD80>abW&-4Ux*7Tic$q zXxq2uUxI<|`iSbb5J9;5jtha0zxhfg&b|~CjR}0DDUpyTU!11n1{LTQETa9XLb;4I z*@*s;Qz<6#=U}QE-$~2qOcreXcbA(ly)47%^!G@R*hhH<$BU7T7xMDs!$8OS?>Q?* zhtUP<=2p?KQ=*Y04emIAV%MfLqWs%`D9vaTxATVa6KF!bd-KVe=p+G1qYl!F>ur<)_Ht)f!twG+jYE zAZyI~UF~;d{fu?Fil8JEeyk2;z471I_5!30J3UeuZ=Z$U@El&F6Szew>Rq76mISRl zsI6Jxdq!kQr{6zn`MQ^P<7-w4gYiR&cH<`D@R9rQ0en)P#k*wSxyRs@ux|{ZQHmhz zk~=LNb4#&FV*?iGL%u6#W-t>d#GX%$@fQ|Jld;q6kz1*k*7nS3y0|}rNm7ksFj1~9;<(5VNA9kD2WjWE zZCm<93Vf{M6GdfPG3_eUiW=dx2RqDuGbXp2qryu8%wfcGI!cleB5H*|-WV35vp zKA*pBI|)GEl6Zcx8E|HMZ^P5gf%^S}9%GhJ9K`2ahl->QVjbKG?4#L|2j5lpTUD@a zq+{=lf6s6TDELd3C>6ymhC+pCjZ_OS<8&{e?DpKt`vIh^xwUnjwtFpH zUAu4^R`V*qOyKRbz>A6iP22U9gC&(c-kmM2>li?Pw-L0yNUf8sZht8_aNBFtYK1gu z%Y2?Y4q^<_^vy4ZD?36-<(j><=}p(PR*Y&zAIbHm{p~%}k8GVhM+O(vG-8{N@3`Ii z!v@ZcGLdoz*^&GqhRKwO7SX|hT;}hLhXqDXc7(%J;RvuOjlLWR>WI!avdx-HMYp<1 zH96%;UV;BXN!942_%nyilPdM;FXNB^DP@HGWa81v{W@|`4kXSj!4O5#G&ig=NaF(& z1DLPUYvSokZR3fk7cQb6VF<;+SLTgJGFha^O0~rwJO&_id+mc^@VvId`#6O3eMMaY z(tZ8=e^f4DmR+VePs<_ieBFV{9iB$yk;8jkmV{tzJfRc_Gak(?%^XW%$TV}`k0^6; zc!q(D80y&w6G`1wsdCGy$)hOg6~?ij@1oapvsjpeIW4)#zRc)eoPK-PiEMCu zCrT1C6sIOlsUqk7%KJ4t@zUP=6|cZo;*tzo^mKE8nE*OTe0Wyd2Buk=-N1AhwaqUB z$+-*A43N~+v0CPEc2JOR-+bamL>xt-;weQOb=IgH2}Y9AmYh?b${08zv&+p;0g-M5 zP=*2O;}*F22(~?>RzHCs)IO6?IYtr%g*U@D5o{_e=V(z5p53Ed_}CBrnW{Lihqv^i zkDN96Fh^{biD}f(g#{KSrTZc;NM%Q_50u@DO8L_dpaB1W7Cn{5#TwpcL6iQu*uEK6%;oSFu`v& z(vKWyc#;`jF_}c`@w$EV!I_I ziTCim>B0bfC!`5fQJ~B>pAolbL?v(d`JNqxs+Vy*lFGbqI9w@lhIHFuW})0j|Eo<+ zP75DjQ0ch!)VnpIY6z6rK_8O zeN2|5a4vI3s%%7}3Jr&5NVa!Jqvsv(>dCHwY%3p(knT!KOs+p9mEoCd!6^IbX~CFJ zy}?5`88Cg5wvHaLOx>}%AnZHr-w|!sCxXvV_tPa2tM3K1_A?x_DsaOvvM7w3{@@~N z)?4NqA!#AdO|zZD_vO{^&arK*Q<%+2?NfqM(=C7WL`zO!RoG15aWs2_If3I-@baIx_aZ5+x--_;*gGuK1-#vrpzga;+w~+bHjw%Kc zg%5%VHdqS(ZZ&z$uS1mPqyGSfCE&4KV+ILxX!z09I3J&s9qEK0Glctz42=k!HtBKP zDdL~TBRhk~A*^LB>q>6nO-*M6x3GJz-*%&K@fnK)RP@)9(RI`S5wRxqo)lt6rDFZC z@pLm-(rK4V^8;h-im~C$(uL?aue_ik8Zh8_z+u-Zw5tB|*#@!l>!j&__9iVDP%~gwCT`}i3u2PP> z(fw9L&kiTy>T6#6_qSZeAi)(uk}CXo3;Vb0}rU6S?qQnTqWSC%GGx{nzCZ^UG@hcGtv6?()`iCSzDWy-RuUmENfC;Iy_lZ%-)}={Zo+bR%XV-p`+kYJ=6O%DB5_mR}EDxA}^jItR z|9X!Y^Mu?Mw9|sS6OHEe^1|*>+Lp8LFd|4C>%=GR!gkRT_z|TCbE?)Pi^Vl``RUm` z-UAZzyS$l;vnL?)JV?q}$24ZP1NO}eF;T%kYRPkQehKr+Wzw|HWzfJxr_(IW(4cqq z|AbV1qFD7Rc4btxZVcrc1fN`8c`4r$5a+%GIOB*rsc}Atj_mzU_yDPSo4cWZ*IgsN zl@fIQBei9kpTOb=4;Mo*#>d$LI9L+DpKfXr97Zd^63 zC>{MB#Z-dvjr5hlg%onqGf@Ykli)AMr1^FNP;=>Gp#<^aETu6Fx1D#yF^p2INQ#mg zeZi_XbdQp}#iMMpE#sxJ#QAas2n9;LQWAT|#z6HiS;j3`AW%8>!r`$xKIGW14`Z0? zqb#i{XTId2xnBM1PP~3X2xfc`P&d+zUKNKAk6;wF+6Tq#NAOhG1`f3y;*St`#{EKD z#L#?|7z|WNbwojIHxCz1*>L*j6~Iu1}7oX4^Y5x&mJHyZ~ zCAPC}djE^M3{?}HZPX;SsB%QT;;gwzTjsxz##5W)TV*Gdr`Gz7 znTDv@^aaTh^0I=(RO!b8_qu>&T(eAUCIs`qjm{rcvpbDOEJnJBIq5XkIR@ghtHa%* zvj!o~5n;jd^bs*7!UiG@b$M%_Co-0d5nGF15)G!SPoNE_0n@PKV3jbZ<^GOnLd67% zgNeun0fVAHWvI_W-0#|QNIfgXpA&eQF*|BH=^L6*D*?Romlhf$(93yM@yi$J+h>SVIUo97Zs!0b&G&Zv-0zsB5#)y9oIH)X5OBZ(?S}M#~L-*faCnmTh-?;tWMvVicNDg14 zblyS;`t|bLa+W|^@Uu9Q*bxsb`vY(o=jZ9Ac@^#l&(Bdh1WSwXl1|ex%|-$y$rH#e ze66i>C9Z#x)2?V>r5I-QnV?Zx^9y>61orr5qPIk_^djZ7Kb=B|zbY{CxYc$Rg>;y)X&K6OeZgcLp3ypKe zGm~8-rLerNXdP7n>Zc z9>ioSNpLe4!{1IuVnSWMiXNu0J5oLgckd8fl@2wZfAzHN9=7XR0;mNE!&355eu_}HVtbYjD#|aX>QTsYgyR_IG5Fxc;euW(-j9)u zW8+a_3YcA@ZykQ9ww9wDl!`xZNUp%PTk7KY<`!W~8k}?(evMMfGM7h6q6Rvc`!>Kz zBD(fVflxZMs&$3Bq3WmCtut+Mx3JN(ir{H5LqwJIZ=49i{!jJK zSW^2OUtp9^A(bE9_p{QI4hd-ef~oE(3l)Xww@~8-v7Z{$r7>fR+7#^&)K68jj$JFu zT=C+#&AVwmX;i7uj}UwIQ9{&F%r*59xlOo{3-pKTz}>65r(;H3-+KkZAqR=b3_=rl z32nN4`8XtQx`UXTVUb^~CzHM+E&^owY&Pg4aA^m^ad$Q<80Q^6zT3`17njeI6Z0@s zf9BSo#M?N+(K=6<^0XE1O(p^4{89YP-~a8dO`Ld`WBY%1yp5%R8*iL<(51XHuxy~y zU%ZRa72Aj16+MhHc)teM+!T8PE(b&M12fx)Z_etog-t&q zWm)&FSVsU|6T9GdUU9T-;KLnnGL2t(IW=`TxNx)M$opuEV)}KqMu&@--PXC}ksx-ooEEl1ZQWsa1q#K1hIUrW`0pGbRH>n)zB> zVb+S171J1$V@hBfea7A5aSPUbB3eXhkaA#o>Tde1R>fb6;8mk!J^{+vGHU5fkrcZxs@W;RnODBexO;7W&+f{&+OnoMsuKa1ZRQSoi^d`lATty>D zz(DA01oD&4k&;Z?#a$wn6$auTGC-di5ob45Tm=!cyWxOPFy=2rB3d0OR)6*r^k>zv zudvN<#2?$QAd$)uqtCR3x-X4Na+5jwHN?#C6{OM)^J6p;wqQ9;UEbJHvqYIpwDr** zMOhfV@0!6U^=+GXbbhh?#$^89Cn|)7!bGgP+?h}z#BaFn)(pp8>VbNc1nt6oM{JxF z*qn03mc`lfKRd&eGDewbtV+xN{@P;&!nUOZh#`UT%&Dyv2_G(`o^L$5{SD$;*3 z2n1~cVaRV-_OoA7A!e=bW){i3T#UX4y%+s>yye5!nJ`luso#{nGc&R{U2)dCeGIMk zCl`z(A9zp;IC2l|`sbp^d!+W1l5zM1%BB=>SxMCtc5K?QPcq7bLjf@)iE+&g#eRd2 z+}G#%{)NknL_^eoPMTwcNRxu?xQ6l2mE9*yZIFxNZIF#v;Atc=uX6IO#2kwGG-d!` zC&M(yoMaI2Gqgm7DM*9MOR;!6GTvTgU_y(lm}v3WIZ)I`U*QfA_D$x58!YbA)rt23 z9tkuk!s$Yrp~i!b8_H!vfj%{RUILVPg119Dh96_mA>KvNiPNi#)JgUsZbH$5bFf=p zLMIa$nZ^ukYm62*@NmIvG8Rw$_e8zXJHB?CnM?j}KYdGt2gDlj&r7&r?Y2U9d7ULr zRZJRbIE&`|_+v8j;F!!&U{iJot<+?($j=EthPC;4u^qLF+%}L<<$lyxz;kR((^9af zzUH(k3HM>>Eo+=TCm_JmkF7AAc8>x^Yw)T^sR z)crnflM@9RV?s0FS3mtpRb{tn8!h6UyLKgU4d`~G;+vsRcBhNo_*}BmsmNK*#D?Jc z_{vswf5(H_Y2omS+5FV}SxqQ;k=AV`kj$3=A_NZ>W|-tJm`yIuq3vG?H4GbLMu;&a zajR0k8Z=;e%4O8t=OQ{$KLllXmQT_p+DQHsR?ED_D!Bb=6}jO}REq#j%9$X*`Rw`C z=$s^0(LM!o&f{=xYRdx#YF+Q+UNhEH@Ih>cIC$f2DujPX)#?39LS=mj`qR&XCF{$- z5j=yi!TFI!HHwR%RJve|LjI0>{s_Q^LnXt5ocSTMKN1-p)cdiMv)u3+$NUm5B(hx| zJKGKKQh6MQN_Cg(=M@qXk^&8LnD7c=f2kfR)}o?)Y{dzBrYn_w668EX-6V>44ON3KK{JH$R3qbxwjhG|TBmULVh8A|rgJM=< zUx{PNC}gX9ZCzdlT+aDZett{cNqeIaq<|Ts3}D4FR70u04gNCKer#-LlUsTm-MfrR zOS4I}lJlXA#!TWW>E$6Z<8oDZMOS9>0SF5yLt0}Y+LQR+{N7pN9M~`EWQ{1-X6cfM zQ-4q*sK$LJSUqHg%H5e!QiT*gFo`**cW(-+)}Q`;3Leey)1Ni}d%`_2fs^jc|3(z? zjAsR=fx&G7AKlS6R&rqrUq`f}S%;myOHuZN0N5F>han6>Ly_F!?8NzY4)4S6vD~+p$`L|ctY#`=@#gG<6>)ozuDXR zk61_fPlkP`p3So?c7-xHDl28|s*mP^oH^u?d*{DT8NN9gXU>0E^Z;8nKQ8Me*OC=b zmFi(Elzt}@;->TOBR!uPpt1KW0Ogv=VQJe|nWMYJ7Hna@=sRm;eCN*~2?z>9O^%X_7ny*GX zl7QWdA+6?>9SKFh)GA>nELGggB)xKdD!^HmO!dM9l)+83-cr0o08HBcbLWGsdU&Or zONwHR?7FXMV(DR+24{mYO>R5Q_v60Rb~>zJf*;q$NQ9zb0rMZwE4c=OdbJu zuf-D3gWl30AiE^mk^i!4-j`R3uF+6)S5=y1JEAKj>Z`SHr}hU-FS0Vy@^jD6e>nna zTMrMc|5Da|zcw)x<^|AEis$js-H|#`X(ZM5%tq%lkvjbIx@JvVy1sk@0QhU;*wTA@J_(?DLO(=RlcC_P9iY=|! z6sKIA@!Mb-@Eu3?PEFr}EcKAnjE#i5`MyESUy$tho2|600aF676nIpaepUi`DH&{{ z?+SdL`Xg%zl3P3M)LbSpf)OcHS8zgP4Gwa*cr7ZK6x5~J1kJ1oJl`1qk}Myy8#-~m zuA=u|*noSY1J^X^>mH{lEUHC{E28N%v%s?XJJ<-m)^g) zUz%~Xi3RZ{W3p|=8#&H}S6xjvFq9{P1|AZ39{L|H`){^_=8r~iF8d!Y22UTtrt`!u zA9heq94w5MO#p=tx)Ks+vqyS9Py7h~OmYI>)^6_kHilO{Nt|{}g#Wu1ULXitUN=M7 zg1=w0DP(WLY!EJJJ&AFb8{`R`TneY0dE3Kw3fzm`n}u8SvqhX#R%5}!ZDh5)5)^4< zxqMr8A@Nym>zhm2?h*E3N=iVSR{HAo-*>}qZRKZ`*d#UkdK8Wl7%PVF1c3`OBS*Hf zMQ&)LY@}L(=^S`wwK0+6ccFxff8PTXq<9BSM*~xI_?}*Qu1liDTe(BoQM&cJ>Ni$!ZO8tpE9Tg zzk<0WsN-~8tYf}eL3yWZ_UFtwzcLOKkMJ$&wyW~60uAOd;0D)4K!n>JzQi{%Fq{#(Jiu6 zYisRBq*@XP66Ca+UA*yBoLd#DnF_bzFIO2LXBLvgiG15N=l|IA+y6PBo%M|-Q4~FuYrG!S*E3;rQpJ8nzP>W<}nvp?A9n7OfSB8@jHjHOK4HOI& zV$IPZqcW^neH{e9#FeQ0_9$A8;u3fDezPGh#Yh$@GEXMX$K)wMod?aPEY|KGy*F#Ox!~|fr>e-; zl=PB(RJF9j6-UGJ9C;dkFuea2@rJab`klRJkHY_s!pr}mm&(r+;=6wfEUAfd_+?lZ zcCt7_uUE%9L318wqX7boQ=KWB<6V{k5Wh(?>m4Nh># zmBcs9$+4d#^C|sVWeNFo*b_LEkNl3-qp4(>{>)((t53?gu4o5g64_3xqQQ0T=5$8@MmP+zY3L?SETXk^=Mq#rO1cB9t} z9T1ajhGK{5!b7F$~a7xw}#BIE+(VRl@p zdy_oct{NI~=za3S28gvuzptb&Ke`UO)1=`2m9Mk$KDpOYSYlLY*vU(p8|)I1@R!)f zv5V_4Qi__A>Cudhbre4PI`|F3J%;l0l`JCwFpsy$*AGu+c|FB=@y~^adx@^J{7X5J zHVN$^8;`iutDEm@-o+&gErt9M)?AR7ZIxqD9+0c`HaLq4^3zXlMLglwxuL?3`Xz&G>K6)y5M#N_yVL*&k0ay5Pnz|up=6zZn?J$YMWP0k zIb|jr5f~8uj!9l4DK99;IDo!kC}uSoFtV4i@;RRcGW(cvv-0m6kcn}B8AHCIX)usR zQUQ@h-+3pHLNzXvy7m~DvgOZn z&CdKP6EhH^XTPTOP}Ebi#OMRHx2l@jAa3DZf;659pR~GsWjWFL^UcDkAY##afm|)& z+mx~WHJKL>dedMB85uaUn!AHaOMP0vI+?*bbr&)qnR{}sLF{0vjnxtIQNlg{{-FhV z75}VTl!T}xDq#*&bCd>Ig0Fs9ZiBnr!TjD z2unw%=CQv6F}KqYa%OYJ!b%2Y`)VM!8m&veTUFLYh2|PH zkV&V*u0s9^phVCW{lQXC!UgvkBA3u&mVGU|c^3<`v&DC18^~Y^@%-K6AMR&4f1Xw8 z^Bx@HRiZCr6@eR=w6wy=gfTMP>Xgj76*vmR5;?wLxy>by5jP(s1AXZ<#{c^4U0%kt z45m$sUtC`%CY?lD($&Z5s~MEJ<|osUjuGzffS;n{NwbJQu$dRhVZ)s#XDfKgYS0`E zicolh-c{ipnY0_`*6)9xvx7Z*HO-~h_z_5zUINkCTrgQFfUmt~HUQ7a<8m=$`_&r_ ztT;#yaqAG{B=g^l*b7aL+Fp+P{QcpjFH;H5R@<~4@$_SK&O!En|_9F=d_Dk{wrPyr5J%@`)aJ|pK7yp(R0lhN(8%B^ST*4Nd zCjeQfmYFv6uPl~)Qt-QD3-m>sq?Wjd zF_4qTi-?H)yFW|ZaoGlD3zDalC@bS6k15a@pOoW7{swn%v_)`j7nSMa-Qc1t@+Q!s zdyRkG7(@2aAMN1y!d?79AMVv1A%du=w%>xSE&S_{1I;|=IwzD9sf-bdm?w1j@9wGn z>AVM%3vsL~m|jCsUjNW)_$sCtY557V|GGT{Nz`(h_Yl-e}iJs zGcznwOg=<>No?n!2Q9jMUs94&=@NgY!^x!pm*9br3P2SCUjSIm`!z805_m?a;$#W- z?5}fNa=<+s(%Y`>A?%-?zg_Qd$UHB_ZV1&3pEE?T!qa9~AAS@n@RHRuSCk9Q&~egp zFqPtudWCM7EbD;^rhF`%isq+L6s*64%`_53EbOEdiUniYy6f`zWo;TFP0gun$K+G) zA>LLCQ@%|+H(S2foX{x5jnkG)S((DCIPyY@i;gR&Ua7jc-uEl*cOM_wKQ?iy#tPoE z03#1kU#-y=q_^a>kBm%u%8(N?30p`NtlAANUbxewRFH0_x+YCytH;yWr`5mG46Ga; zwU`K#?})y8tqTn7GJbSIhxNq&waE8vG5qiUIXrKnFVEJMSR@wQ+e1}wH-w`*3UL7_ zQoslJ-JLX8Y+ERww>{N8B-$s|-QLhC=VayKQp3x8ca20# zRejBo9Lt>GG5_xaCh>XJ$ETsXp%0ABlRk;Csld{a25hA=Ep;5O6H%<(a;b)^RURR` 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

    ?_n(^R9YrIbdW9@(td`0xqA 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 z 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%0DT6g;()B=La0Dx+F!xzfeDen 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�ZU{I0KndXDOGMt8t zsJDiW1^fh6L$M?rF87DDG5;RoW?9$ZWTE?%IG2ARWRof2;kv=HvQ{~CzH^X{0PbNW zm{^;l+;AxHge7)<=YX{sOncZAS5dgiRB@<1i_k&YAURk95YH9KJ>BPDoiQZAyb?n2 z?axnb^?SmhgpuGh{-Fcw-RTiy(BTT1S*dRB^abtQ=BRtl!&m3qlj2Qp@LdW3!wo4Em#y4j0y=w3{WB{Sm+QH zD;5NW#srhzjda?d{n1~Y{@Zizxo7V^dv@=iJ>Pi)`?qGS9oJ8Hi3h)88fPim57}(? z0!pCkn7=_D8Q^DlQt%4GgcoOn*f4A&sly&~)JBr)U3YEWt~Z9g;>U`fX8nnSsV{#q z#hThDbWNX@<&=k*KJM?bt{;WG0MJ$tiT7axpWxZ~Buv#smyiKnl?UY*8j?d}yN)@u z%-qXN>3yx5)Tza7)lAQ8J%hCf)v)ZZc`}g)EElfcMd}l#{Xn6{zvc_{TYZ-WYr|QlTwUuqc zVl;Nbh7~7zRbNi@8ea@wVKQz^iD#4V3_Q^H$Hea>WO%{k1nth4OLll=0vTNIhrg_S z)TNIPD_!I3&OZYSq|U#mQ-$YLRu=m2(Uv@WZlJIGAj5NDkfb*5|Gjnm=fU#dL~E1O zGg&H)lQ~DD(bSmnGTFH-SY8msQD%(sW{jtliv*~~ZbSNxgeD?VSdO!xUzyxtmUlf(WQZ$1`wm9f#Zek~PfA9; zz|*Qc)aLOful3bLLu$>dzN>qd0GFc#l(|R^=O_nw%S~JgjtWKK;g0R&=c*Z}G4y=- zVv9lKf+*qGg#SHBZ$~o7b9AOdEpmg5A@HjwS4=qqmr+R1fSyPkrHL0{;tsv@be@lY zaebxZ^+yEd4Oj0AeJ+wHgGc6a7>*X?lzTv$;%Rd8 z>a8QKH6d^ecpm=dJJG3WV$&)?;bqUs6}k18*r*B|B&34^w?X9mW|iKSI|yp(Eda^x z{mH}Dj_r0^F2B=yjT}Uwq3xliS1@-e=5G}aNEE~JjQD(EBZja>x^%UP+k;EYL7*8p zaB?THrmZolP$#M&12$}S0Uuq%=HSFyzf?cz?D5UmIm5S+T5{}NqeCUxOp}9HH#{2O z*Wp7+iM7ro%T+iW^ESISJ-10_YU#RxA}&yN1nW{yYQ~3+Quh-2b2a zuLdl;o&rEewLCe(rz8mN(@x2@w$Vr(5qRJ#S}Ql5g#~T*zyIP_oG>2;S| z8^E6ucdN8ljm*8RuvudR#Y$GUB`z*$GKD8L&NvD4u|Q4(Sk~9I`#x*Z6N;iG63L^_ zb(@6w7$6^^AV3h}>wCO4NT&TnbMAe3Sx>=%P%gkDYqrp{68c=gHcb;5Jm;aBGyX}^ zziVJRActXE2tr_ehenD=IsgP3?Oj#ro@eJRI+yb0LwXTm_tR= zc0l0802rBO>2RYfTzUfqCmWyJf@LvkNDSRp@ekwTI+vC4*adKP|Iu8&WCm&bx>JJP R63Wm`ZshVgb-{^;{s6#689o32 literal 0 HcmV?d00001 diff --git a/android/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png b/android/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png new file mode 100644 index 0000000000000000000000000000000000000000..8385b548a2794df4139ce69db5408e0951831852 GIT binary patch literal 171825 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 z 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 dkNChcu{|V;|_; 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 STl~nkyQ-ysx#*(JU;htfo6{)( literal 0 HcmV?d00001 diff --git a/android/fastlane/metadata/android/en-US/short_description.txt b/android/fastlane/metadata/android/en-US/short_description.txt new file mode 100644 index 0000000..354298f --- /dev/null +++ b/android/fastlane/metadata/android/en-US/short_description.txt @@ -0,0 +1 @@ +The open-source, non-profit European alternative to big tech’s messaging and video-call monopoly. End-to-end encrypted, decentralized, and easy to use for everyone. \ No newline at end of file diff --git a/android/fastlane/metadata/android/en-US/title.txt b/android/fastlane/metadata/android/en-US/title.txt new file mode 100644 index 0000000..bc59021 --- /dev/null +++ b/android/fastlane/metadata/android/en-US/title.txt @@ -0,0 +1 @@ +TatuChat Matrix Messenger \ No newline at end of file diff --git a/android/fastlane/report.xml b/android/fastlane/report.xml new file mode 100644 index 0000000..96f7a8a --- /dev/null +++ b/android/fastlane/report.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..d68b5ab --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,8 @@ +org.gradle.jvmargs=-Xmx4608m +android.useAndroidX=true +android.enableJetifier=true +kotlin.jvm.target.validation.mode=IGNORE +# This builtInKotlin flag was added automatically by Flutter migrator +android.builtInKotlin=false +# This newDsl flag was added automatically by Flutter migrator +android.newDsl=false diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..ff5fe51 --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Mon Mar 17 08:36:03 CET 2025 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-all.zip \ No newline at end of file diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts new file mode 100644 index 0000000..e784141 --- /dev/null +++ b/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false + if (file("app/google-services.json").exists()) { + id("com.google.gms.google-services") version "4.3.8" apply false + } +} + +include(":app") diff --git a/assets/logo/img/logo.png b/assets/logo/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..51bad21696fe240cf038fc9a94a3d3999b6e7d1e GIT binary patch literal 57631 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

    Nq9UmR@zbn4b3Z+ZH0}+71lBN`4Kyey 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 gT7?wMy5Ltnk-kzK_916DkZ5C8xG literal 0 HcmV?d00001 diff --git a/assets/logo/img/logo1.png b/assets/logo/img/logo1.png new file mode 100644 index 0000000000000000000000000000000000000000..71f55bde2e129477f92d758f5ff34d9f52d1d1a0 GIT binary patch literal 280483 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

    Y{}(PRX18Xh!C3)Ind$@OH;znrM%` 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νk8Cl-B;0@R{YfVeMF?HU?3cIQ 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

    s4bZsKFENapV^#;&#$dWa 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 mtU^N*HgYrF{;NvgFRRMbhb4T`~^h_j>`e)GpSV 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 qIdc#OHeA*|_Pa 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 literal 0 HcmV?d00001 diff --git a/assets/logo/img/logo_background.png b/assets/logo/img/logo_background.png new file mode 100644 index 0000000000000000000000000000000000000000..1d9a40c28353d52ea6b182daa8a0b6af01303b04 GIT binary patch literal 20535 zcmeHPe@sW#7_o>&^e-YRXnFi#zxI z;w|PM@#_mq3JE#%){N_w)6BoqtBT4>2zg~bA;AVh{xO?^zY$WKNl0G>A=&Q`l3M*< z`_s8*M^bgs+8RP0%CP>$)g8#+Xf`HpC@xu%*q4yxTR8X4(s_C2DM|72!t%PV{+|n9 ziqD)Kf9Uv+)yX@zr`?;DzBj%9^B4L%hlU2Gn1`Cb;CI7I<3b|wnb#fpl_rf#$>@95 zzSUswrN7M=G4dO1$g!ojgR^X@al%Mi>*+h~o33k`mTimoHBSvm1zOI-hiy5?y2ty2 zMtZ3G+2etvi14#86}K_A|EXn`0&E#u3|QNatq-^uFRZ*mvC`Dg}Bi zXs~`2Tj_IZC*$XZ+Q?$|prR*~85gKMXkWMEFLvehIC?V+B_zG;2nCikOy9;Mh4z~x zGw7RpK;k0U4eI{=i|mIQ%w<<8Vk&z=v7~Q&(Y_qHi{a)JYRctp$1YMeW8E;2FSTW_ zwy)A%&(5>QQ=HQ-ou?1V=1Ma*`vTVlr?c=t>?+Y~!%P&A3MB310;+JZWoLKVW&4F; z-7qj#5@4>VHR}FNQ3DLjmesVOPy`&uIFS*qCr9_O?r;N!?(rlUr<3go*WB1ZZyKB^ z-(mv$OVh@jt%6uwVl4req?xGswtHmRT4#Cm>HO){c#VaAIw?F5F7QZA_8yV zs}bv!QLUWHA^;1*crlfUwu!1%_vb~QZGwl2;ALcR#mHW18*T6aLxBb7X-LF>{i=J_ z*e59ae{g*!4TJ!v;9YwmN$JxCuCHSnWdZ&ea2*2#(YCf4JHowV+;ZjeSs$6bW9!+}3tM_JeLwh~zcJIgvjXEp0_74)oCh{t zV@5uVgN#QV2OcE@PyAy6ydcU@9gXYH^jaxc>$ka+@j(6D`(e2=PfSb36NBwIeDW{+ zj8ousYPax;g%eV0{DWxp5Fus;w}46R16IuPWZF=xH56yHq&yGb7)5&>{%fElpXThI zqPge-Ogrw|yw#_Z!avSU4C=qKZt#dQc|+w~A6&a5G5D(M#Guw%6CZ+2hwGOCgea0j zMb1i%JCahUl*&ZcwiKyWRH53UFT;7Px9KC%xDdmC6mq?wf!NK6wxQ05kMK9)dS0|} z-MuH^AHmnG?!Q3S34#8=s*=7hkw(g~3MEAq3geuK_94L-9+pbv%^YiIRE<3HZ{@hMQI_GzyicBTy8$fg z1Yz04EVmm2Rl*1oHXrzH{EUu!Tv5*|q*iQTUVtRC$REv2h8l%}x` zdvaB;WtX)s9P%Ym!l@oXSKO&DE$@SfK$m zl#o9!_`Nd8EDU}?om(w~Ao1#-BUr*H@sb1z_FCoiJOc9XH+X zet(P%Cb@S!?vIFsdwTs>w2*-n8=?g|`Zcz@hCfggE7gn>&!+{B3vQJW9>_;VnO;S{ zIFb!}`+WmEb`%ZLM8{#tS$%GJnju1Qmhk1^>nz?b7o&k-AR#NgcPF(s0PW%rXR0>61?iKDW>r~pc#G9Z*X00V#T;JT-^Q37Cl01T|&!9pJdyz zU?(`Bsorx3%@YnX$ae2IVt<6baXsClwB|uNue;et-^SCDDMlW(l=fw5mG8cM>{Bc7 OE?%)}`N3rs+x`Q^+y4sy literal 0 HcmV?d00001 diff --git a/assets/logo/img/logo_font.png b/assets/logo/img/logo_font.png new file mode 100644 index 0000000000000000000000000000000000000000..16ac73be95d88c671ff4d1719b61480642b74f40 GIT binary patch literal 321771 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

    ?yU7Kz;)e{y<7KL(_- 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

    Wqo^*_lgEpi&$j-k<{_J;<=%Xv(<|D;ZgGrO$ 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 literal 0 HcmV?d00001 diff --git a/assets/logo/img/logo_foreground.png b/assets/logo/img/logo_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..51bad21696fe240cf038fc9a94a3d3999b6e7d1e GIT binary patch literal 57631 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

    Nq9UmR@zbn4b3Z+ZH0}+71lBN`4Kyey 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 gT7?wMy5Ltnk-kzK_916DkZ5C8xG literal 0 HcmV?d00001 diff --git a/assets/logo/img/logo_mono.png b/assets/logo/img/logo_mono.png new file mode 100644 index 0000000000000000000000000000000000000000..51bad21696fe240cf038fc9a94a3d3999b6e7d1e GIT binary patch literal 57631 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

    Nq9UmR@zbn4b3Z+ZH0}+71lBN`4Kyey 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 gT7?wMy5Ltnk-kzK_916DkZ5C8xG literal 0 HcmV?d00001 diff --git a/assets/logo/img/logo_standalone.png b/assets/logo/img/logo_standalone.png new file mode 100644 index 0000000000000000000000000000000000000000..71f55bde2e129477f92d758f5ff34d9f52d1d1a0 GIT binary patch literal 280483 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

    Y{}(PRX18Xh!C3)Ind$@OH;znrM%` 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νk8Cl-B;0@R{YfVeMF?HU?3cIQ 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

    s4bZsKFENapV^#;&#$dWa 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 mtU^N*HgYrF{;NvgFRRMbhb4T`~^h_j>`e)GpSV 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 qIdc#OHeA*|_Pa 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 literal 0 HcmV?d00001 diff --git a/assets/logo/mini/logo_font_mini.png b/assets/logo/mini/logo_font_mini.png new file mode 100644 index 0000000000000000000000000000000000000000..16ac73be95d88c671ff4d1719b61480642b74f40 GIT binary patch literal 321771 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

    ?yU7Kz;)e{y<7KL(_- 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

    Wqo^*_lgEpi&$j-k<{_J;<=%Xv(<|D;ZgGrO$ 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 literal 0 HcmV?d00001 diff --git a/assets/logo/mini/logo_mini.png b/assets/logo/mini/logo_mini.png new file mode 100644 index 0000000000000000000000000000000000000000..51bad21696fe240cf038fc9a94a3d3999b6e7d1e GIT binary patch literal 57631 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

    Nq9UmR@zbn4b3Z+ZH0}+71lBN`4Kyey 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 gT7?wMy5Ltnk-kzK_916DkZ5C8xG literal 0 HcmV?d00001 diff --git a/assets/logo/mini/logo_mono_mini.png b/assets/logo/mini/logo_mono_mini.png new file mode 100644 index 0000000000000000000000000000000000000000..51bad21696fe240cf038fc9a94a3d3999b6e7d1e GIT binary patch literal 57631 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

    Nq9UmR@zbn4b3Z+ZH0}+71lBN`4Kyey z2uxyv5fWg>)VX&*J&f6nx=V6LAA{`4D8$jY9w^|)TV+T<&2wkO-TLKU@2@&Vs z{q!()QgAaqVk{6z22f@}h7#!}A)K3;)5F;AuOi)4hI_fQ+XhvHNRzuP4Uz6d+Bkoz zo*qZ{uM<_3xR(M5z$iN~*eg43wkRU8*CZ;>+)s~TyT8e*LU1o4B~S*IZ0rU`)%|c! zIUuMr_tPWw{x96L7m^GHWCCg#3rQv04Frq^%kMx_S1Eub$pzSf1pz?fX8b(j%>DEzwx9cpWPE6w z0tr!jjWPobM8L7#o%$c? zb+>DOBYu!quJ%asRaNmq)xCIu2zcE-KRX(LoR} zUsWZLT|iVuBQjB4eW*qPOsVW{Fqp<_*u!G!s4{lNN(do+8019?Zs?PI*)B0;Mzj_83|wXtU3T{S-P}KV^x5v{ zaCopko||(zA?_Xahhv=mMTq@_!|o!^;iMN=+l#|)f4T4W4<8=>Y=5|j^Kd`+^VXC1 zaB>;AYsJbv=<@U8vPpPM-YoYwEoKfHUrn`k$)KsVBaaJ`*5{Z)j& z2~VFs&inmO`SQ%mvzN}m@9tk7FZ+wPwiaOh&#SLbEt5~4AAa=H`&#_sAKybXvS!Sb zK?k61i6U8%YbqF(0WW{b{fle=%lXIOym|Gt+lb>-JM8_v{sH&?ujAS8@Bgyj{QAF6 ztp8cwyg?x##{?9YtegTfnaj&oXpYOkPrpDHD_4_pS7TIjs2s*c1Sv^rP z5UzKO+4b9d)m8n?o7eArkKN(H@+Y0$ zJpIX|pM2aBv3ALo)vMd#KTU6Ih0H35j8mH1SbWtGO;x37NV`|O?^(|X#trrgyi%q{?y*+rze zsKlvXy1)GI*YEGnz5AT=`I17l)h2*tYcVTPVoT@glo@9%r8h|l15ov2#Avg6uB6|k zuCS!uIxC>kyP3U>5uItkmHCv*Sdiqvu0LT^U2ccY+uoL#cI3?-xA z51o9R7AxmcY#p;pt~5*A5{)&N70H$6eU{c)n8Nq^@TSb{A}dDtRLX+L1&|v|6cRws z1t1!FMz}lWE^~|C7(Qi-J-H5UOQW4?Dnvb2h9%u0xa+;UADojQq%ts^Vg=rp#_ zRAg7@7Tp_Ct34WIy1hg#?l~KB5Kr>)dOY~R1UgEv@LXz zr8+7_&#Dfk2%Drj28qfQBPzkl>dm_!7g=s>eK?>0@xw2+G<_mK%w-7xqQwMF761!? zv=CmJVSskOI8Tvy-YSje|213VlLb|U3QAi?JipFRKv4I>^m$9Owdqa=Sva4*B zinM6b&CNLvpPwNMp!GJk2q)x<5{=4$ilnjT2Ix@`sH7PzN^cp^YLt##Xc}SwRCck1 zrfh>kxVb(z$#4T5fUMrqnh-538bFK<=tpnw((0c6PSK^Q7^GhDQNhB*iky(HS2UQ5 zA)ujCS=(#GhTRSBr&fnE39sqQzjA5rgXyp1`1b7XH+r3ww2hnC`dgTbP2R-r*QB+$!^d^kUU zx4v?%g2|Oc0!Rq11f@Vtcd6W?u>igLV~;VafPj)9ePEN{BucrFb^iAJw<$3xKtqCr36X`Eld$N^W36hE0KLda|8L%*at}c> z0irRW0SzGux0F$6pcHx>T{N?LByHOYOqfw4$3SAJ8~>SlnDY#T0!U~lB+50~ck(}N zj3j_$jDa3UBm~gcM(@>bq}Mt>|Myohb0U350fj3KYoSp-RYJxe$vcA`Ns=Qye@4ul zmSUKd*g6TAsiwp$r4e){2~g*00=ti}PsPLDwFmaz1!(vHJ0y?NYO;ECTyo0(;9^hB z8Qbbv1PqRd$jI)g#sXO%&|R4s84;cyzgw7_n|s)kO8_?7Mw=u-v4{|1;Q=oQHd)tY zH~^U}>JvEgJin4OKR`_m6XsP^s$*ql%wWK4VO&N$42k~LB0wO+0Si%L2Z6H?k$`y@ zeh6f%WyffzXEJC7N&=APdD+9On3qP~KQ+t&#AVbMfB*SizQooSu9OKNs4A9nrdKB9 zD=ZK;!Gco)ioo5UjNHw=mk%uR4V1`Kf`Eh)0vuDm6Y8T%ko{%$R;4Ee* z6OgI^5-3%+`8J$Q1TR4VHnxkRaS}jc`T>;d2a{ve17a~#l!wV_bsb}GQf0o4K{jf@9)G4+&SF*0P5Im>UA4&W<_YggJ~64GS`JhJYG9wdyyqZUYVkQ1(iqAUqr( zoB~uDdX-gNPATtC`L`>vmn^^_f{1`D0m$5nFQtOS!5Am7&R*y?!k>!V-TY^*E3Ivp zLmMM!2aU>f7R(u#!Dx#1sTQig@!Bztxp@%#fB3~L0cZ$)oX3|+X#HabO-_?DU}ri% z!+^v3`-1Vz79cLC?mxdf-Ti7+4)6cFK{^!EN7LjWe6^DWfN*;{*4@IOWnwV1umrLI za4_tgZd^=srJ9rDg?8L1h$+cQ;FyGiW6)hh0CBPJZgKNGenNquCN29+GQiE*!Pl?c zyny!LX31zu?W%QK90Ha5L#EZQ<_L(uvv?coi_cH_5`Ykkk!B%dn5l*APvGu_L@q~t%p!MyQHEMKx6Ko@3W}rj>tzxj{Ul8Wl4DM79gjh#bivH+;c*t14 zDM3}1#CT`1I8)IROR0Jv+mUE*??>Vtd-Vc=gaDE*ns?P)PUZb6|F9Dl>u6f|QmfUS z4|9XIT_h54^Yf=;-6OERxdnp7?aLyq5eje;^9W@o{%h@}(-#;m8~yBi-=1VBsxPE47C%E$-iioS~4 zHMYf4zd_I~X`X}u1whK6$(qXCOzttsOjM==B@#;cA#ssycdCG*ql-SY=3ocIm;eV$ z7I9Ys-kwQjsmENKwiG#R8%%?-V8k1UrGFVg7H>!0pFaOTzoH9RAQFTCG;~Ncee8fy z;edrPWoEB|U3felXU4+;2QUG)#0!wf${ZY?7r_onCKzP|UW-i^j7$j4ee{;sf=>n) z+4hKDR$?7AiC~|pO|=s})+ub$nJE$shLho}NQSKijHm!BE~m2z?(*f<02t#ahoD?$ z=Fk|7w=iMmPsX}KraDraDGX5n0s}`D0p{#d%s_y;87*&1Eh84b^s7)}YwC@K*YP%21a0fd)`sbI{rX)J(DfK-RBME1D8 z!1XSA&(BZ)0EmIom`YFunge$#kpN2TT#%Cc6UvzpEU1dnPj|ZQ*V(@6>)lX<7~i)R z6O%JdFvOtM?~h}UZyfja*`y)*wvCM$EQ=HkGdBuSP%H?#$rsqLrGSxQMHP~I(`zK) z?cMkLUvUu*Gu9JWsw7721A8iRH}eYM#4~34)|1fRY2W^!oQRB=W_7I*4IXeJW338nF3}g|wIhElI-g*(^$r&5L z8c|DK$@iP|arix7;$*5oB|xjxwuAu6J4O(pf+D~x0f;J|j5E{8P>`y`BEmaD0+%@^NB-@WxOsO8m|E#Mdt4j71ax$NVo;>?7h4y0fa zP61G=tW+EClmKIo3h3=llWo)bo;xMQ7XCz>8Fyn3_5TS4I^(->) zI1pPYXT&sT;h=DsR{gx$L5ZJtWj=8Nz)3>1%mkSrbX;JApfZP>k#JE#=j<9_0shJX z3mn=!d)xBu;LkcYF0C@z<8Wc%-~NHjB(&J0xz8^L%nO5but2ivRw|PcjoSNfBIhl#c}3NsfMZ;ce^pOCt}?x38M$yp&+op!6K?tEVN%OMiCJX4#ei8 zQ3S0B4+Bz=2_-;KLG%?$Is4enk8Xcr4#Z6fa~z1IyNpQy#u*~QX{-{=DJ*4}Xezt} z5DrwfE#0R!Uza+J^sZEXekT=($|NNUG6gD@S!qB@R0(zG3BqY7=6gR6_opEDa2HS@ zY{)Wkf>r_~5uSLkrd?+u1Y`#)R{kRsKvqH!4iRA9-m=r^tZ~167R%tkQdA>Qd!)jG z;tT>?<#mAp;Sk>fHxALcR>9)#`Kt90hn}7}9*eDcS27>6X8>RbpE8WrRZ*EUl|zpv z)ve8n2%do4ZISjk_P%Qo>%WAvO%@a@j7>^9wuYkotSj^5PlpyNngkmbQ8=%_9L`^} z)7xm#)4N%)gR_ZP^GAwzroK9z^2^GU0T}%|Q~-tfM&@>j#vI%}z@CV8CqU~NIbJO9 z5(gkN`MnuCNZ7ecKc2>&Ejk8|SAx#YV0r=JeKZFO(t)7EZpAUFE^x%8F8lCj5&)I# zluke%wSru#%2Rv?@^m`A0-$TusTmhwP=biS90SJ~2f$L*zReS`?h)WD#HM-bE>))Q z%CvY5&I)IrIA`Bgz$${|YX%@8!6pjX1gTPC!4A1?&}~ck{i*M&C1(fUt-PD(@dE4F z84ti{%8v(`st1i|GR26KNkGaWS(vnHrIooo|I3#*mC5q|pFtdOu#(qxH5g$xi4J{%X({Ktf2$RgMLYqy zdprZIL;w~*35-mP1gIpYCD|J+oK2K^xiiKX(4VD%luck-+nQ#YW|y;xJs9`DhIVC~ zow5~26qEqWNGi#18T8zt3n!Mnk{u$TdVg~W1VsmofXag8J8}Q_cd5Q5C5cUp<6A+L ziU5PA)XRH+?`IKy-E!}s+ceXd57B6|0JAvu#j`d&Wih%r;hoq4f=0vM`jgFQCo1#F ztsmDF8vwBm)qLiwTSCx9)Dgq|JLvlW;78rS+>I z5275IY#{dV&1IPS7UAJC@a@%ppN$8PSTAEy0#cP?8-xC*+zC(mDxw{0nKWlI-nG8)#k)~}gT?j$ z)6IW=!P_9VsQnMz8L5&VAJt$)DrmeI_#NUqlBc^<@@}L9fSXqO8POk?6DJc8a|4Ha(_9TK%*2uH4J2P16aLl3|H$jr0q00MwU$+;mI zv5ONQt3UFgeF0*h5`bf18`bvEPkqK=soFpn$CR~~eMo;T_O~}h6Le8kkD~dyKizBd zhjtc)uWBj0i!X$pfOU5(#w3{%BNG5Mr&xmWem)IG=0JGQH#HkAchts-IuzQenNiyd zLjL&0a;xY|=>$zB2E<`k)%x@X1_m)~Zh{mR0W{G**YPYFQFC~vpeRv10(pOzeWHkI zh5*8$$Y2}uVJ3}Vz3*=3W=ld;bw;0sGfo1qDL6Kj^>W*!db8w`;}skPHzTt%rP8nRrFGVQ`v=wA_axFvfFp_)l%4wIfR$6&4Rt_ zJncKDE3Ues8syGpD;acgjktd6{=z|wxMQ|6%HLboqz-Io>&l^uVbtx9mE@UeezMc?|M&N`NAljC*qm?X25etf&`Uy)$#`!@7bNu@gfs5C;_M*F_=7 zGl4+c-_+~f#X1HVzhDPnCG1|}fvwhsQDTk&g5sSh8D}s=V)yV!=Kbz2!2)`MjHsg6 zqlBQbxOQhI!lWWnKoSm3&8-wc^-lZ35p=Ir11gBJz$F^|OE7oGQBm?d6>NC_Yr zdkMC(0%f{-xtn{TOw2b_T-$GiA1)JVzLg@2V~zm^0W-!i8W)7TDQOarr5bEiH_L#= zEAM$*DuK$i=@SdtUE(Gn6L9O1<1rVxvQu%Slz0p(9}GN8?6{yQ4UccFLG?{xw|>=f zHxH*toilzjty#7yv0&?{$Aa$<(DqFK76pt8Z9M;|wjCjJ#)l|0#x5F4KM){#j+3AN z#p8n69o$VNjNh(QQ2?(f9*6tWU4{s-ZL_5`08~56bbsg;*Y3=GNC6aNvdIikqKpnS zZ{wv!cf~-9W|$l?uX<8#fil=QgZwskXGGLl`H1d=uHzM$YV0mDo8we`Gfx>Ypn#JXs%&%MS7WOG>v6Rj& zE#n*^0VHBX?BEm!Xn1bH?eibXMWZ1O@@^b2)N(m0Xbdq@h(Z7krV@`tKJ->!mB7yD z{F?!dIRXIvJg(cB@o*~u!XhBr8%C?^m)ODM8>{jqMfR5x0kx(3jz;>HjV*0HrsIb{ zLr_2pTIS1#b36cj&dQ^PAT}@`w*-e|CO8(5lmHQ4;9i+5_fR*l2=|(aLOd4r&|AH) zDkfn-(xI{tMgUmlBrq0A9np&LtG4buOLKs;)6p#m`l1)k4qC~yIFI8&6MkmT+vm5p zKgAul0`Eq4sLEg$FIwUIhzl`rjB!?|L9f=)%K@YnJfhz3?!II;uz~_aZIsWtW1%6` z_RkSlZr#h=f^bTJHda)N2MCWKf&ws(9%+yd1lqFazV@fs#J2JvpZ~&uuyFOEM0O0- z>8ThN4i*l@d5jEph|U$b2*<*~3VQ#D>@coHAelo^$zxG(rfHi4R*8%Pv=KgaFaY-g z8i%-U>rTxSSgZ_Lq*mf{11O69`Ak|Qe?E58RL*Q+j9<4OeRAs#MA2F&bNRcxg2+@~ zV~a43h~zxUKEVnv>u2q;kgdO%X6y#>81yvl-!oZE7+xu0N(yK)016_opfU8zYq#z% z0NHNBYU7w^?vHK&evk_zHt}or-OYdkNKr)R7DD?qMP;S{QabO*mgEj%H08!F z5pK1;cBrUA!U3?G+uIjQu~eBr?xvwV0DzgLvyWlgimo~q2^8#ho(-BLwqjJB5bfZQ z_!y)q9uehzewG3Q10n)OEW%miP%zsyJ2M_Zch&?HNx_IT#%PLNrsAczm{GBIZo56d zxp`J&T&U0)BkcybJKqVTIm#9b0ON8>l6VYyk)V5b$;6#D>6XP`Nr}5`R%6y3JkY#$uLqtF&-VPlPhxa3F%m=8bu$2X7N%qPm`J5&|4gXarEQYj$QL7DvyJ z)1kp(ikW$<$G}{vcZ}DiVKgNUiE{UEBknz45APSo5n+zKt?zDuj=rn{^K-V*yWt8z zi{6Q4!y}V-r~mgm4UOC|z%Eq8$JZ`} z>P;Xv!VrRB#lN@ktChQjQy9w(O2V zCL-P>hQ+5nPMXOcs$z}Urwe7B_*hs+>@Omr1KpX*j$ zz$sZ0cmx~hoYy0-6c3DtcczMM02jYiP7tr>MdzG|t zYUdm^_;KzYpw&)C`|sq(7mW|;a=rDDhgQFGRP5jw!6xYu=GQCtXRs{!vUE&~(B{G~ z6##&gVh1Z2X9%xJLFLd@Cd3vs7a!Wq^9OE!n$Y-;iq-!Hlx*W`~+&xtJ11i27x`>8Jie7n|A2w;XB`Vw-yBdTm5gR1HHFvhS4SL`bc3uG%ZIwI+Z8+DE7!+G&S(v)PEd6W$sricl&f) z(>YmC?XD8{O{UnTQlBN~iMKMP(l5h)_!Ak88O|1dY-~pabo&(rzJ08OV>%B^J3r5P z?_{2SgE98`{UCHKND8jjx;vfvn_z>v6J)L~mVid8C zAAk810O+-40)jOrn!x-(VB>V3Z$%+)-L6dTJy+scKN3D1`f+n}Jg|#L2-L^!lDTJ#cT6q~q#k$0S-@@rIp zZ`52SB1Pj|gkw0ORAPtH<|;J~$JV_zjx)dG)vr{N>VxfLR>kA<=5bBG*RU#Tx#PB5 zVU-{yHG^NLbq_BAKzOQhxm0osN;p__R$UMfki|JvawkQqRJpNv(3)+`>x;E2W~LN{ zdUEArEjz8<3mk|^h=P0o;~eT6oHMQ#?K^J#F$E5GzJrUR^|1sSH2nPfz%uB^c zVh(62OGR*va<_n0V4n+Dw8wZt3DGfs1EXvot1sfgI=tSFN`J(=VJQw zjHqC%{-6Ra|rQkZPJI)JS45;St!3-JWMgIENnVdyJdC_d=>O-;U zZOu6HSThAwW(t+CaC0I8!pX!u6CK@LM!jW$%pn5+3(=V9mYBRFfdP01`4V-jdxAOf;S0w&F13t-M|K_f0+oBTdvsurnMWKwDK|*BOY6a4?tz(9TL`ikg91 zYh|`y-`|O|l)e@Y2&ja>SYwL|gVV5e$+ly+`wYclXLcKy_HTM-vj94it-|WPpcXo!pO-TX!~= z*D1w$61OpPoE@}nPQnaY?!AVRI7@Zmjd4-p*X$sjE8(P)7%?uy!1*`h{=s|y9bkSu zq+L`Mn12L*oz6_$KEsI6mRt-#8`F4SXC~(nqWXwVs`i9pm4T0fThH~d0K%Ph&{C@u z#hN2icmZA54~34}NE>2<4%QC2XF^05_&cS)S@2%yMQ7#+2aG1Ro?&Y#WB?yusWW2{ zFAn`!hY=%FoTsulzp6vfM#l(qi1j>Cqj3zh)+m(}(D>3f(-0x~+seJtrsM9kz>V6m z;-Z#A8wZ%PLy_?Q$-MjHXPYM7w)3JL`_umiuF;u^2%2z?FH{gz-issTYKKXydJf#& zjim+nMt-Eg(dc?%u~=(5rAJD23o6xcaio9N4%@68rq5#WG#lgil{8`*MR zIcLNpV1B{{9v= zW-V*6n&wjV9bXoV2rQEo5leqD!Dte2BOEWl+`c9y@ZbFT_3PLF^OU(e;Qqw}|MC03 z`ORmq`F;RcJmAKk^=JF-S6_ea$Q-cf)#|I*z_=Lo-}gn{|HEe;E;0uwiV}>=DD>;^ zVZ1j!;NJ+li5Gjd?J2hcs4)@CsQZ&RqVg+n;lOZ!660$ZK(WTA`Dih_<^GT@wMbmX z_g?}a2jC?|?uJkEE}mELH-P^dOu&R`GEG+h!rd9`HW372_#aVH+{^(zwgfd2^hAoN zq2LvGuGA-E)Z9eb2oD{WX%#C z_<`iK6`&$+mZzoOBgenSSJDa_h_yeU>tY7w7%1QEHrvxA*cF8TMEmCO1GE|h9g0jR z#>da+ON`OJdVdJfzJYEYayD}09pZ*@*tVO=`NbZdD%{FcU6w*HY-HZf1hO_>jgfJ3 zG6xgM;}`749Yc*V0b{@kWBBFCNyN^0bolc5Tcd^)`4HzVrN*E+bmj)`zI{4h?wK(| zEyERX+ylmy2E{n4UwJqIp@EC?FZM^$;K*E^9VHD>!&InEi;%+4FZYTj(TV*x?37<2{vg0Mf2Y?s)EYYHJv3%!?Gr<(Mm5}_eB&Bz zT2_C9C>lix6o)lpEx zI2PxC4$82POJ8O4R}HNAw-O(_so&0a1ssWt-JAer8wyVc7?I)0z^F)M2=j{rE=_?U zzn5SVY}hTHg4BJ<1#hhmGW`zNo=tZmdG>lj9v1JVwPOVcfTtKSj;k8=l0tn;cB{oq zb525ISJ}AEaG^_%AqdCns!?yinlve`5}<%?7u*yh$CU|)SYHq#9fs9?x3i^t>5J;7!8KZ?R|GwQ*W?!LPEy~ z5dmo;(u;Hn2m(qC0--mNjz3UBmCy-AkRrWopx4nTV8MZf|W-dOmj@VdzF?(`nO@qgL05 z?LM`ASvi+47rW>r>z&>?alMxx%1L@pZIlXo9D8&KBcDX7Ij7>ZES`Vol~hNs?7q|U zahmrkc+VLxs^Bm4gWY3<>hZ#F$32>{XL<8~1^*gYLR@Q8rdNAJQ(eXuKn$3Sw?26< zd{^W}U%F3y(Qk}V@(M0N%8&mQGQs`nRR_K@-0ptse-LyW?1XRo@4Iz#PF`}x>y?*d zhNPWq^z>}YeYHhmY2<14h3UR&=d@I!rf#0C%$0s?p7^I12l%+i;t#*_m51dGNT9UX zKr8a+Rb~FW(W^mYR|bMOAmZeHd>&$Ac6=K1mJs&f?;N%G!_vz`!+S=RE0?|jUFpRp z0@qbr1j^Kt(QJzI0-PME%)a}BppyIlCck4rg;k|<7`^p2(Ar^5x`F=wXiU9fnB!(8 zzn6@(mi}SPVa7L)g{V9VH-md!=Nd%r*q9l>bb{AIdNdK&v@Wu%y|qSL0vDlaXj zBt4`~CvF2T^u;}F${W&yb)Hc`Q$8$s2r7$?R6s__WE5m$t)n{V@Fr8b}nEj!IA6%55!SQvbnY4&?me00J5Ge?GG3g?7D&Y9y?ok zgZ2f}SYpcDV((;XP;cWqs9lgp-yCi%D|0c~2oKhPezGU6GYv%tgjP8R8_`Y$VaEDE z#(M0NFVY!RwoSXr#J`m4#cb)irD2ITEv&}qkdWf9>LK|Q$tn&a*@bdj$i&`dKdVlc_!YV z$P*6eV@#WfK;}jmy{Lu(OnnrS5y=@Qbr2&k@V|jva6)+aM3KND=-wz_Iy$w7pFa{R zY`bvWv~d-@D`jeaUYS3^f=~UdU`lBc@z=MPC;G-~!YohG*F!gVLxC7OOW)2K#u}-I z^UEvux(n&3#)rn+d;o5i3oGPeFL(N`z3vNmLG+?lrrZ01lHIdBN&ah;bG zViY)g**~5ZSsS7Wj}g@)v+4aZG;4TAL~g_Bmw(H-{#M>$+z_1S$&+ZV2Rg_nCRsTK zYJaHmISl2A^|dQddzGmMSudf|9P8v}KYtLFmr%zJClu|Fb~_Z?lxYCpSH50-SBH6( zpMsty|0YvS06y(|vF+Iw+%<1n#uLqV@&yEr0N1hIG9!^ZI&C1X`%@G27R-DcY*B>j zHYhD~eRD&UHRGUtIZ78RkW#36y3?^_+7L`!)qVP&>)GB|Wa7${%hj{^zkKk(v;dh0 zC?w9zucx(I{3lwwHY6cl9v5WN5~7mm!y`Mk=S<7THqs{?2lg+U!RL^3iKCt24m+sSSA%;Yy@5VR3(5_)3`$)bM;^iV8ok$

    U7{dN(kv$bETSjo5hDLBlJ2R>Ac1a%sZlA=8p}Y_uI?wu1E|V8YF_ z468f^u^};uc#hH>MJ}SJMP_h}4^QUMKE!kv>PIzCpD12!GjiUvfmHUkjco{wR(7x> z-DtPLZ?NoNLFs7o(2MDwH^1GvPMOG|uAb1+Hy@L;edeLsY{{9O9vUvI-(6~dbtJ&e zy(%fjgMG_%|AXtaX;E0y8C)uO<+F0zOBc_O&>ip0^giyU=5b7& zxXS5Od}a{7KsEb|xx1ma9sHbX28i(y<&->$gy=cmqdPzsZ+UcWRSdrK55-IJq8M1I zjLaw;t=m6|{oI>CuJ2dOS}-yp(TzR%5#vMIi#d_y%$m+>lE94YAl4trahWqP*w7=1 zTA_GAf)gtQmZzP(9uO`}kCPOn-9m^xo@9GBLEz`aZ^RCg=I4E$Cy8w{V_2O#lY7gI zCnQw%m^Z$IO$09HYDv0bG}m=U8)ZBJW!kvUcQTThAy@fd4BbtJs<`vTPl%sR#0s(( z#YZFTrB$Vs2H|m~y;g5$+mmBQuP+~}YT_|Re|!F;V^PMBw=QR zoBIx4b_>nmO!YE9)dtrI>jI(&?ei`VpWavC`{3v0HEoqvdcXD4C&Gusyi`FxLcQ2J zM~M47ruyp#WKO@gS8bpw;ls{WNURJy=!f;*#qHkRK3dy zD(6xMQ-)jw`@;kGSZqEybtP)g^|ziC^ZX=gh{B(8lMF8b5Pou<10YIcPW-8|fSPw*Y(?{1P=R zU@k?a2=&uDWkSLMoP3mAdk?3arbXZ0q|By9zdc)NSjClFVcR}iSXoO03knza2F41; zb0m9ta078_R$a)j;2@uvi5-Xd2nrxaMNhOxcFDGry@#A&lDf_o5wk8oG%kX>B~RhZ z$?cjcE6=ZFh#6>Xy!}rIAo-(S;{)r?H>|{z3o>3>p7>Z4*o`ZMR>lhn3|sEBH>5Hd z4&zEF4;JG*CnW1=vsI0bDX)a&?*I)<_s@34I(Z5}Q?kzPo3G8R7&v%U76Nzi;)4`% zYHDSE^=*7YK-vrvEh8j(-6!nQfh8##f6o87`vFd+$-1S#n6F1v>keLey~4*Iqowrk z1_eDzromgrBpH)bdj7Mo_*|c5q9knt&&ON>&z78lOEqR#d@CU={0mOfI20e?>GHP+Ty{=;`^}J@bj;+wuYZP@*@tOEgtb{=-6&OBaZ&C zvgfzdIr@x;oTRE04M^YSpFOxwQtmeJ?(*$I1!w*@ zu5gT6G8h!u9QSwjA54Bpi>ny!^H964*t-dG_AOLrJ#ErDcA(b{!<|%2*{mR>2S>y2 z7NW%%0Zd>(Ll|Dxw8K`cpfAhLX^ml}yGYvSDct*wK5Dro#&wpG!uQn z$3V>!c85PnTW4q90GUO*1A`Gi0}*q=*#U1#k~N~PtM!#~wd5_T#m;Z%8RCNpNvK*k z!@z5adP}F-P&&bnhKp@}+@GLeZ_bG6Oy@QzAT3o(!)nwKe5W^PvAd_lIF{1xULDOF z&kIpF-J8pO=HbPEYjyv?T-PSMUo?QF#58I7&W%o52bYph<)~t7f3LE?TNGn*rz+eV zJe5!NH*w3U1yXQwV7o~+1K8N>X9n*>U6=$hE47$^!U+%&g|>7H3yLW78aKjkEUG#d z%WD(KYGLtq@bD}8z}~b0^~e~&;=nbf<+_$K-WIA%iwkWP)d0VSiUiKJh$K=mmf7LC zV{dmQEynzSi3;5Ilkxr9dQug%kW$})HZy7H7!x`BN(wtY+6?XVSO>JUm7)LSEn;nV zB}Oj!2*jtaFJ5;L)PTu(^I_`0~{xZ zVkSj7FP=bdtV%9+vT=qlR`^{**Bk81ml-cT&< zadVX+;Hq8#5YjZmmX2)dFW-xKQAy|yIyV0IklM3FQi6d81H8(zC%f^6-&x4ULr-4L zZQI50H=Ydn6vvHixzG0_C$f_)aig(-ZOudw%WvVpR7To#PJWhWgUMzU{=rR8jd|@? zPbFMnh&4$+Zr(F*0y7e8>*Gxz{xAqx9(i}64V}+cVrg^p(cO;}Ik$os78kC+bhMl5 zrxr=mD#HiZG%C*uhIu4TpY{zd9e5SA-A4^~M}!m5pTG8|SE2}Jz5Fs^6g8@=%2@_buCPxa@2<;u-S0~U4iei+ZM;{kHC>rK)=26OY4 z!J`9GstlXvu1N8NA*!sMacBr)aDnzUh%Ms{`_k_jut*{r1*K((NOYIIVBbZ>kirLa z_6e^J31iV14wi2Aa8@BvV0^{IG~S#L5X@NTmCw|R>zC)>ra?6LpubU2^Lp1PC{VcY zqxm$M%GCkJNZ%cLHfDq`gUTR@`|s{WTdB0VY+1&!Sb>AhuZMs257!) z;Qi3g0pqMP>FD-&N7-thJU@W)u?ii076JxtvN8MjNuIq*j1jh&osn1M_DdxyA71Xx zOA=C%-+weAurE(S^ncfc$i2l{TK|FHBDR~wITn_(+B9MB*>0IxkRu}0YBGUKAVKOZ zy3bFJpzfZ+T}-F}2@wf$4uFBc|GrmuG?)c&Q80kvi4?!C6;3y{HD1jG@9|QkF77@v zvdG^El~|&GSY{j%?nu;mf{+s@EIw`IoAFO_LH9}?R>%4PK_G)<7#&>P)+o7(2JI>D zW0#Oa`^-9^n%4F&*^l1P;}wX{%B@HTJ(!{DOo#le*suJE6yN7S3s|%1{KD+cT%>0l zZ(5063PM_2(*!BW&$1Jlh6rlC8A?Z9U(a-$Gg*<#HU~edaWY}de|6yeCQk0IIhGM| z-u=3*=(eQ12`8W54BiA zQ;ACiwt2@tCxj$-aZ9pa6-{LF)=9ZcR4;wLyhV>sTW%F)>}L4Bwtx zj;S25RW^!`0P0sAT93vRFvO*#M^`$3;12Wt_>1B6*EWnxz0Z74)2xHop>nP@)1x?aFMsC=Nej9-28fp zUj;zyJ3^L4IivzQAQgw)iWUz3ry47wz~Yv&>7w>^qP*QTd$Q{@kO{e(2&C=5{ce%8 zugBjAk1fo@0^f|zUBs_8dRPS&!b?m88x`6AW2tYQDfnzHu|ut2`uee2*)iqdQF7q5 z&JKREc4s)iXZQ}6CedF|On*OgAitxl@=1S-t>VMzCz0CQCYL5d(|w}cU~$VIg6a&a zv?2`o;l_>?>7jZ*{ViPV>&T;wj*|=}#!glDHnQf(r^1aFw+r|B0ew>T6SaZcf5)x<=!XfXHhZ>4t84nIJo`|rEvRb3xXHciP{3yES? zbq-XJQ?MJPVWtrN_6kDLuxdl|L8o{kUe&h?MzKykmO z?uGa8I{d!-G+cw6d98xG5`glCf}#A2?{`kRJi0UnBkyd^`bq)hEt563a^yGbB*ugc|*EK==7+v zX*bxI?=XKv6qr*j>4m60oFeKRHs|-G9jkFHW)ykaGk$vLguZ_!YYFH*<`dslnqXIX>aP&1r7r&;1+BTA4*AQwHl z`g8us^9{VlpXV!6czWhj%)v+RM|!nR-a91IIy7g=4t}~u03n?&>r#;=9$*JQc~y56 zCTN_=#tPC-)!*f$J4}VaJ7$YtoK?{9wzmkt zD2e6zd@Zh(5YWkr9F{sH?_2}wM$318fbq5v&7E&%AY!+J{(B9?e;=e!A21M=LGc`c zCxp>kaq217)V7(q%5E%e7N$W=-Y#Vq!=x+ItIFYKe-nG=?wVoyT*zz& z!k4_s2Q{0lj3{gP)M3-Cgt#{TVw-O?`3k`RfvD9Ufob^-P1L-7wLNZ`q}nn0LZ7CP z_TPl=)GN-WsFQ9NDe7rel z^hEwkhua}LkYpNMlF@-qS-XL0>;9m9a`LJ#!wK1Q>?tN_V~ZjHKth0r)aquQml0#z zAUd>vgbUSNa{>q@E6})Y(T*BM%S^~|O|n@}4&fSC9I6fWsbO!vaWD1`E_u9d0u3P* z9{^TOt=Mrty8iu`$;{+r5Lcw88oW=%6%$neiQ*s7dP}5m)SDYX*0NpVddL)ByzhaJ z0D#`R0SvY*SMSLFVValr#V|xj3LQaFnCc!8XXqz7Tokwd_+(;_OHY99oQz#mQ3tPb zo@lEpl7r*{RN;?&!3`|40*O(0@O|@#5qCT~J(_%5>AZY-fErK%b`eQTH1w+uHh;;1 z2>{@~;=(I?X@i4h$`E&O5d+|OqCI_-DOHL9MQKew* z3Ejlx)a@s`>r&Fj;Ss$`6${ms7&302nT#|lumB8q|H@HXenXk7VBPe7ei!R%B@}n% zmh`egpDJnGRTO#>eB)`l`upugmtQv$;<{8 ztm-zjXr&8z@@GAg7JZ8=h64AJdJ6pV+Ww?r8}Ywewn1x_Yk+R5f*s6nSMxs*?UPh( z+9_IEecfDS&90v+%$8FziGJ;&f<#9Vr6C3J=RW7msA*~g7777 znh+H#SzLp=y`;xx>wX-b?j2`NY3ell_@)wVvaPXh9=Z6yGK~|$^27Lzaf?j9f;!z9 zi?9kCBfbydbhcG;F&`5ooS3SkST+-XxMr7J)yfpT$gebv<3&%9X>u?20Hyz)0RnOcCWRl*r`T`Owx>!1rROpeRfF23?)+0M}}@uQvf( zwAs;R+sPUjl+=5-arngirOco`Z#;W_2VreFU)VH*lYdCs7Q{R*S7QT~%rpVQg@oz$ zc(r4;Ez`e|Av8ME89B7MIZdFQtL?pOJil;h`>eAHS|^~RUB^efY5fY_OwX^SGu^&@ zJ5(+AhAQhtp$Cto1DEH(HR7{9_X30NVH3|C8lluF8(FI$)*~1%OnM{pg@v>wD$M`p1yy9aSMPSe17oy za6|k1giyqLD^!=nKWjB0)j#elf`rs>dE0jI49y5U@kWJV59jKTkJ;s)>!HW9=jSRt zwoln9+c};;_l{5>5-WJv|IZ`%>~a^AG%6nUrqoz_NWKx_$gs+%)SHUCGGE zAnkJizS2&hHs?_liCL1@HQy^w+`!QR3@(&^(ti1&Y$&WSNUDGW^r7h)hF$Vq4GkAd z@_>v^(Y)nPy@SQtiP?q2R}w^D&mL7qkXl_v__4u6UiXD#u)>@v4fup3x$S{znX>h( zvdYE~Mg8a4=lf=5zeh!{Hs{NJ$?VDJhvFXUq26!IKNto4-}AqCz`vE6n(u#XBCfiS gT7?wMy5Ltnk-kzK_916DkZ5C8xG literal 0 HcmV?d00001 diff --git a/assets/logo/vector/logo.svg b/assets/logo/vector/logo.svg new file mode 100644 index 0000000..9a39d32 --- /dev/null +++ b/assets/logo/vector/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/logo/vector/logo_background.svg b/assets/logo/vector/logo_background.svg new file mode 100644 index 0000000..343063d --- /dev/null +++ b/assets/logo/vector/logo_background.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/assets/logo/vector/logo_foreground.svg b/assets/logo/vector/logo_foreground.svg new file mode 100644 index 0000000..4119a1c --- /dev/null +++ b/assets/logo/vector/logo_foreground.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/logo/vector/logo_mono.svg b/assets/logo/vector/logo_mono.svg new file mode 100644 index 0000000..d0d28f6 --- /dev/null +++ b/assets/logo/vector/logo_mono.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/logo/vector/logo_notification.svg b/assets/logo/vector/logo_notification.svg new file mode 100644 index 0000000..257d3b7 --- /dev/null +++ b/assets/logo/vector/logo_notification.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/logo/vector/logo_standalone.svg b/assets/logo/vector/logo_standalone.svg new file mode 100644 index 0000000..5f0e625 --- /dev/null +++ b/assets/logo/vector/logo_standalone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/sas-emoji.json b/assets/sas-emoji.json new file mode 100644 index 0000000..f0eb702 --- /dev/null +++ b/assets/sas-emoji.json @@ -0,0 +1,2178 @@ +[ + { + "number": 0, + "emoji": "🐶", + "description": "Dog", + "unicode": "U+1F436", + "translated_descriptions": { + "ar": "كَلب", + "bg": "Куче", + "ca": "Gos", + "cs": "Pes", + "de": "Hund", + "eo": "Hundo", + "es": "Perro", + "et": "Koer", + "fi": "Koira", + "fr": "Chien", + "hr": "pas", + "hu": "Kutya", + "it": "Cane", + "ja": "犬", + "nb_NO": "Hund", + "nl": "Hond", + "pt_BR": "Cachorro", + "ru": "Собака", + "si": "බල්ලා", + "sk": "Hlava psa", + "sr": "пас", + "sv": "Hund", + "szl": null, + "tzm": "Aydi", + "uk": "Пес", + "zh_Hans": "狗" + } + }, + { + "number": 1, + "emoji": "🐱", + "description": "Cat", + "unicode": "U+1F431", + "translated_descriptions": { + "ar": "هِرَّة", + "bg": "Котка", + "ca": "Gat", + "cs": "Kočka", + "de": "Katze", + "eo": "Kato", + "es": "Gato", + "et": "Kass", + "fi": "Kissa", + "fr": "Chat", + "hr": "mačka", + "hu": "Macska", + "it": "Gatto", + "ja": "猫", + "nb_NO": "Katt", + "nl": "Kat", + "pt_BR": "Gato", + "ru": "Кошка", + "si": "පූසා", + "sk": "Hlava mačky", + "sr": "мачка", + "sv": "Katt", + "szl": null, + "tzm": "Amuc", + "uk": "Кіт", + "zh_Hans": "猫" + } + }, + { + "number": 2, + "emoji": "🦁", + "description": "Lion", + "unicode": "U+1F981", + "translated_descriptions": { + "ar": "أَسَد", + "bg": "Лъв", + "ca": "Lleó", + "cs": "Lev", + "de": "Löwe", + "eo": "Leono", + "es": "León", + "et": "Lõvi", + "fi": "Leijona", + "fr": "Lion", + "hr": "lav", + "hu": "Oroszlán", + "it": "Leone", + "ja": "ライオン", + "nb_NO": "Løve", + "nl": "Leeuw", + "pt_BR": "Leão", + "ru": "Лев", + "si": "සිංහයා", + "sk": "Hlava leva", + "sr": "лав", + "sv": "Lejon", + "szl": null, + "tzm": "Izem", + "uk": "Лев", + "zh_Hans": "狮子" + } + }, + { + "number": 3, + "emoji": "🐎", + "description": "Horse", + "unicode": "U+1F40E", + "translated_descriptions": { + "ar": "حِصَان", + "bg": "Кон", + "ca": "Cavall", + "cs": "Kůň", + "de": "Pferd", + "eo": "Ĉevalo", + "es": "Caballo", + "et": "Hobune", + "fi": "Hevonen", + "fr": "Cheval", + "hr": "konj", + "hu": "Ló", + "it": "Cavallo", + "ja": "馬", + "nb_NO": "Hest", + "nl": "Paard", + "pt_BR": "Cavalo", + "ru": "Лошадь", + "si": "අශ්වයා", + "sk": "Kôň", + "sr": "коњ", + "sv": "Häst", + "szl": null, + "tzm": "Ayyis", + "uk": "Кінь", + "zh_Hans": "马" + } + }, + { + "number": 4, + "emoji": "🦄", + "description": "Unicorn", + "unicode": "U+1F984", + "translated_descriptions": { + "ar": "حِصَانٌ بِقَرن", + "bg": "Еднорог", + "ca": "Unicorn", + "cs": "Jednorožec", + "de": "Einhorn", + "eo": "Unukorno", + "es": "Unicornio", + "et": "Ükssarvik", + "fi": "Yksisarvinen", + "fr": "Licorne", + "hr": "jednorog", + "hu": "Egyszarvú", + "it": "Unicorno", + "ja": "ユニコーン", + "nb_NO": "Enhjørning", + "nl": "Eenhoorn", + "pt_BR": "Unicórnio", + "ru": "Единорог", + "si": null, + "sk": "Hlava jednorožca", + "sr": "једнорог", + "sv": "Enhörning", + "szl": null, + "tzm": null, + "uk": "Єдиноріг", + "zh_Hans": "独角兽" + } + }, + { + "number": 5, + "emoji": "🐷", + "description": "Pig", + "unicode": "U+1F437", + "translated_descriptions": { + "ar": "خِنزِير", + "bg": "Прасе", + "ca": "Porc", + "cs": "Prase", + "de": "Schwein", + "eo": "Porko", + "es": "Cerdo", + "et": "Siga", + "fi": "Sika", + "fr": "Cochon", + "hr": "svinja", + "hu": "Malac", + "it": "Maiale", + "ja": "ブタ", + "nb_NO": "Gris", + "nl": "Varken", + "pt_BR": "Porco", + "ru": "Свинья", + "si": null, + "sk": "Hlava prasaťa", + "sr": "прасе", + "sv": "Gris", + "szl": null, + "tzm": "Ilef", + "uk": "Свиня", + "zh_Hans": "猪" + } + }, + { + "number": 6, + "emoji": "🐘", + "description": "Elephant", + "unicode": "U+1F418", + "translated_descriptions": { + "ar": "فِيل", + "bg": "Слон", + "ca": "Elefant", + "cs": "Slon", + "de": "Elefant", + "eo": "Elefanto", + "es": "Elefante", + "et": "Elevant", + "fi": "Norsu", + "fr": "Éléphant", + "hr": "slon", + "hu": "Elefánt", + "it": "Elefante", + "ja": "ゾウ", + "nb_NO": "Elefant", + "nl": "Olifant", + "pt_BR": "Elefante", + "ru": "Слон", + "si": null, + "sk": "Slon", + "sr": "слон", + "sv": "Elefant", + "szl": null, + "tzm": "Ilu", + "uk": "Слон", + "zh_Hans": "大象" + } + }, + { + "number": 7, + "emoji": "🐰", + "description": "Rabbit", + "unicode": "U+1F430", + "translated_descriptions": { + "ar": "أَرنَب", + "bg": "Заек", + "ca": "Conill", + "cs": "Králík", + "de": "Hase", + "eo": "Kuniklo", + "es": "Conejo", + "et": "Jänes", + "fi": "Kani", + "fr": "Lapin", + "hr": "zec", + "hu": "Nyúl", + "it": "Coniglio", + "ja": "うさぎ", + "nb_NO": "Kanin", + "nl": "Konijn", + "pt_BR": "Coelho", + "ru": "Кролик", + "si": null, + "sk": "Hlava zajaca", + "sr": "зец", + "sv": "Kanin", + "szl": null, + "tzm": "Agnin", + "uk": "Кріль", + "zh_Hans": "兔子" + } + }, + { + "number": 8, + "emoji": "🐼", + "description": "Panda", + "unicode": "U+1F43C", + "translated_descriptions": { + "ar": "باندَا", + "bg": "Панда", + "ca": "Panda", + "cs": "Panda", + "de": "Panda", + "eo": "Pando", + "es": "Panda", + "et": "Panda", + "fi": "Panda", + "fr": "Panda", + "hr": "panda", + "hu": "Panda", + "it": "Panda", + "ja": "パンダ", + "nb_NO": "Panda", + "nl": "Panda", + "pt_BR": "Panda", + "ru": "Панда", + "si": null, + "sk": "Hlava pandy", + "sr": "панда", + "sv": "Panda", + "szl": null, + "tzm": null, + "uk": "Панда", + "zh_Hans": "熊猫" + } + }, + { + "number": 9, + "emoji": "🐓", + "description": "Rooster", + "unicode": "U+1F413", + "translated_descriptions": { + "ar": "دِيك", + "bg": "Петел", + "ca": "Gall", + "cs": "Kohout", + "de": "Hahn", + "eo": "Virkoko", + "es": "Gallo", + "et": "Kukk", + "fi": "Kukko", + "fr": "Coq", + "hr": "kokot", + "hu": "Kakas", + "it": "Gallo", + "ja": "ニワトリ", + "nb_NO": "Hane", + "nl": "Haan", + "pt_BR": "Galo", + "ru": "Петух", + "si": null, + "sk": "Kohút", + "sr": "петао", + "sv": "Tupp", + "szl": null, + "tzm": "Ayaẓiḍ", + "uk": "Когут", + "zh_Hans": "公鸡" + } + }, + { + "number": 10, + "emoji": "🐧", + "description": "Penguin", + "unicode": "U+1F427", + "translated_descriptions": { + "ar": "بِطريق", + "bg": "Пингвин", + "ca": "Pingüí", + "cs": "Tučňák", + "de": "Pinguin", + "eo": "Pingveno", + "es": "Pingüino", + "et": "Pingviin", + "fi": "Pingviini", + "fr": "Manchot", + "hr": "pingvin", + "hu": "Pingvin", + "it": "Pinguino", + "ja": "ペンギン", + "nb_NO": "Pingvin", + "nl": "Pinguïn", + "pt_BR": "Pinguim", + "ru": "Пингвин", + "si": null, + "sk": "Tučniak", + "sr": "пингвин", + "sv": "Pingvin", + "szl": null, + "tzm": null, + "uk": "Пінгвін", + "zh_Hans": "企鹅" + } + }, + { + "number": 11, + "emoji": "🐢", + "description": "Turtle", + "unicode": "U+1F422", + "translated_descriptions": { + "ar": "سُلحفاة", + "bg": "Костенурка", + "ca": "Tortuga", + "cs": "Želva", + "de": "Schildkröte", + "eo": "Testudo", + "es": "Tortuga", + "et": "Kilpkonn", + "fi": "Kilpikonna", + "fr": "Tortue", + "hr": "kornjača", + "hu": "Teknős", + "it": "Tartaruga", + "ja": "亀", + "nb_NO": "Skilpadde", + "nl": "Schildpad", + "pt_BR": "Tartaruga", + "ru": "Черепаха", + "si": null, + "sk": "Korytnačka", + "sr": "корњача", + "sv": "Sköldpadda", + "szl": null, + "tzm": "Ifker", + "uk": "Черепаха", + "zh_Hans": "乌龟" + } + }, + { + "number": 12, + "emoji": "🐟", + "description": "Fish", + "unicode": "U+1F41F", + "translated_descriptions": { + "ar": "سَمَكَة", + "bg": "Риба", + "ca": "Peix", + "cs": "Ryba", + "de": "Fisch", + "eo": "Fiŝo", + "es": "Pez", + "et": "Kala", + "fi": "Kala", + "fr": "Poisson", + "hr": "riba", + "hu": "Hal", + "it": "Pesce", + "ja": "魚", + "nb_NO": "Fisk", + "nl": "Vis", + "pt_BR": "Peixe", + "ru": "Рыба", + "si": null, + "sk": "Ryba", + "sr": "риба", + "sv": "Fisk", + "szl": null, + "tzm": "Aselm", + "uk": "Риба", + "zh_Hans": "鱼" + } + }, + { + "number": 13, + "emoji": "🐙", + "description": "Octopus", + "unicode": "U+1F419", + "translated_descriptions": { + "ar": "أُخطُبُوط", + "bg": "Октопод", + "ca": "Pop", + "cs": "Chobotnice", + "de": "Oktopus", + "eo": "Polpo", + "es": "Pulpo", + "et": "Kaheksajalg", + "fi": "Tursas", + "fr": "Poulpe", + "hr": "hobotnica", + "hu": "Polip", + "it": "Polpo", + "ja": "たこ", + "nb_NO": "Blekksprut", + "nl": "Octopus", + "pt_BR": "Polvo", + "ru": "Осьминог", + "si": null, + "sk": "Chobotnica", + "sr": "октопод", + "sv": "Bläckfisk", + "szl": null, + "tzm": null, + "uk": "Восьминіг", + "zh_Hans": "章鱼" + } + }, + { + "number": 14, + "emoji": "🦋", + "description": "Butterfly", + "unicode": "U+1F98B", + "translated_descriptions": { + "ar": "فَرَاشَة", + "bg": "Пеперуда", + "ca": "Papallona", + "cs": "Motýl", + "de": "Schmetterling", + "eo": "Papilio", + "es": "Mariposa", + "et": "Liblikas", + "fi": "Perhonen", + "fr": "Papillon", + "hr": "leptir", + "hu": "Pillangó", + "it": "Farfalla", + "ja": "ちょうちょ", + "nb_NO": "Sommerfugl", + "nl": "Vlinder", + "pt_BR": "Borboleta", + "ru": "Бабочка", + "si": null, + "sk": "Motýľ", + "sr": "лептир", + "sv": "Fjäril", + "szl": null, + "tzm": null, + "uk": "Метелик", + "zh_Hans": "蝴蝶" + } + }, + { + "number": 15, + "emoji": "🌷", + "description": "Flower", + "unicode": "U+1F337", + "translated_descriptions": { + "ar": "زَهرَة", + "bg": "Цвете", + "ca": "Flor", + "cs": "Květina", + "de": "Blume", + "eo": "Floro", + "es": "Flor", + "et": "Lill", + "fi": "Kukka", + "fr": "Fleur", + "hr": "svijet", + "hu": "Virág", + "it": "Fiore", + "ja": "花", + "nb_NO": "Blomst", + "nl": "Bloem", + "pt_BR": "Flor", + "ru": "Цветок", + "si": null, + "sk": "Tulipán", + "sr": "цвет", + "sv": "Blomma", + "szl": null, + "tzm": null, + "uk": "Квітка", + "zh_Hans": "花" + } + }, + { + "number": 16, + "emoji": "🌳", + "description": "Tree", + "unicode": "U+1F333", + "translated_descriptions": { + "ar": "شَجَرَة", + "bg": "Дърво", + "ca": "Arbre", + "cs": "Strom", + "de": "Baum", + "eo": "Arbo", + "es": "Árbol", + "et": "Puu", + "fi": "Puu", + "fr": "Arbre", + "hr": "drvo", + "hu": "Fa", + "it": "Albero", + "ja": "木", + "nb_NO": "Tre", + "nl": "Boom", + "pt_BR": "Árvore", + "ru": "Дерево", + "si": null, + "sk": "Listnatý strom", + "sr": "дрво", + "sv": "Träd", + "szl": null, + "tzm": "Aseklu", + "uk": "Дерево", + "zh_Hans": "树" + } + }, + { + "number": 17, + "emoji": "🌵", + "description": "Cactus", + "unicode": "U+1F335", + "translated_descriptions": { + "ar": "صبار", + "bg": "Кактус", + "ca": "Cactus", + "cs": "Kaktus", + "de": "Kaktus", + "eo": "Kakto", + "es": "Cactus", + "et": "Kaktus", + "fi": "Kaktus", + "fr": "Cactus", + "hr": "kaktus", + "hu": "Kaktusz", + "it": "Cactus", + "ja": "サボテン", + "nb_NO": "Kaktus", + "nl": "Cactus", + "pt_BR": "Cacto", + "ru": "Кактус", + "si": null, + "sk": "Kaktus", + "sr": "кактус", + "sv": "Kaktus", + "szl": null, + "tzm": null, + "uk": "Кактус", + "zh_Hans": "仙人掌" + } + }, + { + "number": 18, + "emoji": "🍄", + "description": "Mushroom", + "unicode": "U+1F344", + "translated_descriptions": { + "ar": "فُطر", + "bg": "Гъба", + "ca": "Bolet", + "cs": "Houba", + "de": "Pilz", + "eo": "Fungo", + "es": "Seta", + "et": "Seen", + "fi": "Sieni", + "fr": "Champignon", + "hr": "gljiva", + "hu": "Gomba", + "it": "Fungo", + "ja": "きのこ", + "nb_NO": "Sopp", + "nl": "Paddenstoel", + "pt_BR": "Cogumelo", + "ru": "Гриб", + "si": null, + "sk": "Huba", + "sr": "печурка", + "sv": "Svamp", + "szl": null, + "tzm": "Agursel", + "uk": "Гриб", + "zh_Hans": "蘑菇" + } + }, + { + "number": 19, + "emoji": "🌏", + "description": "Globe", + "unicode": "U+1F30F", + "translated_descriptions": { + "ar": "كُرَةٌ أرضِيَّة", + "bg": "Глобус", + "ca": "Globus terraqüi", + "cs": "Zeměkoule", + "de": "Globus", + "eo": "Globo", + "es": "Globo", + "et": "Maakera", + "fi": "Maapallo", + "fr": "Globe", + "hr": "Globus", + "hu": "Földgömb", + "it": "Globo", + "ja": "地球", + "nb_NO": "Globus", + "nl": "Wereldbol", + "pt_BR": "Globo", + "ru": "Глобус", + "si": null, + "sk": "Zemeguľa", + "sr": "глобус", + "sv": "Jordklot", + "szl": null, + "tzm": null, + "uk": "Глобус", + "zh_Hans": "地球" + } + }, + { + "number": 20, + "emoji": "🌙", + "description": "Moon", + "unicode": "U+1F319", + "translated_descriptions": { + "ar": "قَمَر", + "bg": "Луна", + "ca": "Lluna", + "cs": "Měsíc", + "de": "Mond", + "eo": "Luno", + "es": "Luna", + "et": "Kuu", + "fi": "Kuu", + "fr": "Lune", + "hr": "mjesec", + "hu": "Hold", + "it": "Luna", + "ja": "月", + "nb_NO": "Måne", + "nl": "Maan", + "pt_BR": "Lua", + "ru": "Луна", + "si": null, + "sk": "Polmesiac", + "sr": "месец", + "sv": "Måne", + "szl": null, + "tzm": "Ayyur", + "uk": "Місяць", + "zh_Hans": "月亮" + } + }, + { + "number": 21, + "emoji": "☁️", + "description": "Cloud", + "unicode": "U+2601U+FE0F", + "translated_descriptions": { + "ar": "سَحابَة", + "bg": "Облак", + "ca": "Núvol", + "cs": "Mrak", + "de": "Wolke", + "eo": "Nubo", + "es": "Nube", + "et": "Pilv", + "fi": "Pilvi", + "fr": "Nuage", + "hr": "oblak", + "hu": "Felhő", + "it": "Nuvola", + "ja": "雲", + "nb_NO": "Sky", + "nl": "Wolk", + "pt_BR": "Nuvem", + "ru": "Облако", + "si": null, + "sk": "Oblak", + "sr": "облак", + "sv": "Moln", + "szl": null, + "tzm": null, + "uk": "Хмара", + "zh_Hans": "云" + } + }, + { + "number": 22, + "emoji": "🔥", + "description": "Fire", + "unicode": "U+1F525", + "translated_descriptions": { + "ar": "نار", + "bg": "Огън", + "ca": "Foc", + "cs": "Oheň", + "de": "Feuer", + "eo": "Fajro", + "es": "Fuego", + "et": "Tuli", + "fi": "Tuli", + "fr": "Feu", + "hr": "vatra", + "hu": "Tűz", + "it": "Fuoco", + "ja": "炎", + "nb_NO": "Flamme", + "nl": "Vuur", + "pt_BR": "Fogo", + "ru": "Огонь", + "si": null, + "sk": "Oheň", + "sr": "ватра", + "sv": "Eld", + "szl": null, + "tzm": "Timessi", + "uk": "Вогонь", + "zh_Hans": "火" + } + }, + { + "number": 23, + "emoji": "🍌", + "description": "Banana", + "unicode": "U+1F34C", + "translated_descriptions": { + "ar": "مَوزَة", + "bg": "Банан", + "ca": "Plàtan", + "cs": "Banán", + "de": "Banane", + "eo": "Banano", + "es": "Plátano", + "et": "Banaan", + "fi": "Banaani", + "fr": "Banane", + "hr": "banana", + "hu": "Banán", + "it": "Banana", + "ja": "バナナ", + "nb_NO": "Banan", + "nl": "Banaan", + "pt_BR": "Banana", + "ru": "Банан", + "si": null, + "sk": "Banán", + "sr": "банана", + "sv": "Banan", + "szl": null, + "tzm": "Tabanant", + "uk": "Банан", + "zh_Hans": "香蕉" + } + }, + { + "number": 24, + "emoji": "🍎", + "description": "Apple", + "unicode": "U+1F34E", + "translated_descriptions": { + "ar": "تُفَّاحَة", + "bg": "Ябълка", + "ca": "Poma", + "cs": "Jablko", + "de": "Apfel", + "eo": "Pomo", + "es": "Manzana", + "et": "Õun", + "fi": "Omena", + "fr": "Pomme", + "hr": "jabuka", + "hu": "Alma", + "it": "Mela", + "ja": "リンゴ", + "nb_NO": "Eple", + "nl": "Appel", + "pt_BR": "Maçã", + "ru": "Яблоко", + "si": null, + "sk": "Červené jablko", + "sr": "јабука", + "sv": "Äpple", + "szl": null, + "tzm": "Tadeffuyt", + "uk": "Яблуко", + "zh_Hans": "苹果" + } + }, + { + "number": 25, + "emoji": "🍓", + "description": "Strawberry", + "unicode": "U+1F353", + "translated_descriptions": { + "ar": "فَراوِلَة", + "bg": "Ягода", + "ca": "Maduixa", + "cs": "Jahoda", + "de": "Erdbeere", + "eo": "Frago", + "es": "Fresa", + "et": "Maasikas", + "fi": "Mansikka", + "fr": "Fraise", + "hr": "jagoda", + "hu": "Eper", + "it": "Fragola", + "ja": "いちご", + "nb_NO": "Jordbær", + "nl": "Aardbei", + "pt_BR": "Morango", + "ru": "Клубника", + "si": null, + "sk": "Jahoda", + "sr": "јагода", + "sv": "Jordgubbe", + "szl": null, + "tzm": null, + "uk": "Полуниця", + "zh_Hans": "草莓" + } + }, + { + "number": 26, + "emoji": "🌽", + "description": "Corn", + "unicode": "U+1F33D", + "translated_descriptions": { + "ar": "ذُرَة", + "bg": "Царевица", + "ca": "Blat de moro", + "cs": "Kukuřice", + "de": "Mais", + "eo": "Maizo", + "es": "Maíz", + "et": "Mais", + "fi": "Maissi", + "fr": "Maïs", + "hr": "kukuruza", + "hu": "Kukorica", + "it": "Mais", + "ja": "とうもろこし", + "nb_NO": "Mais", + "nl": "Maïs", + "pt_BR": "Milho", + "ru": "Кукуруза", + "si": null, + "sk": "Kukuričný klas", + "sr": "кукуруз", + "sv": "Majs", + "szl": null, + "tzm": null, + "uk": "Кукурудза", + "zh_Hans": "玉米" + } + }, + { + "number": 27, + "emoji": "🍕", + "description": "Pizza", + "unicode": "U+1F355", + "translated_descriptions": { + "ar": "بِيتزا", + "bg": "Пица", + "ca": "Pizza", + "cs": "Pizza", + "de": "Pizza", + "eo": "Pico", + "es": "Pizza", + "et": "Pitsa", + "fi": "Pizza", + "fr": "Pizza", + "hr": "pizza", + "hu": "Pizza", + "it": "Pizza", + "ja": "ピザ", + "nb_NO": "Pizza", + "nl": "Pizza", + "pt_BR": "Pizza", + "ru": "Пицца", + "si": null, + "sk": "Pizza", + "sr": "пица", + "sv": "Pizza", + "szl": null, + "tzm": null, + "uk": "Піца", + "zh_Hans": "披萨" + } + }, + { + "number": 28, + "emoji": "🎂", + "description": "Cake", + "unicode": "U+1F382", + "translated_descriptions": { + "ar": "كَعكَة", + "bg": "Торта", + "ca": "Pastís", + "cs": "Dort", + "de": "Kuchen", + "eo": "Torto", + "es": "Tarta", + "et": "Kook", + "fi": "Kakku", + "fr": "Gâteau", + "hr": "torta", + "hu": "Süti", + "it": "Torta", + "ja": "ケーキ", + "nb_NO": "Kake", + "nl": "Taart", + "pt_BR": "Bolo", + "ru": "Торт", + "si": null, + "sk": "Narodeninová torta", + "sr": "торта", + "sv": "Tårta", + "szl": null, + "tzm": null, + "uk": "Пиріг", + "zh_Hans": "蛋糕" + } + }, + { + "number": 29, + "emoji": "❤️", + "description": "Heart", + "unicode": "U+2764U+FE0F", + "translated_descriptions": { + "ar": "قَلب", + "bg": "Сърце", + "ca": "Cor", + "cs": "Srdce", + "de": "Herz", + "eo": "Koro", + "es": "Corazón", + "et": "Süda", + "fi": "Sydän", + "fr": "Cœur", + "hr": "srca", + "hu": "Szív", + "it": "Cuore", + "ja": "ハート", + "nb_NO": "Hjerte", + "nl": "Hart", + "pt_BR": "Coração", + "ru": "Сердце", + "si": null, + "sk": "červené srdce", + "sr": "срце", + "sv": "Hjärta", + "szl": null, + "tzm": "Ul", + "uk": "Серце", + "zh_Hans": "心" + } + }, + { + "number": 30, + "emoji": "😀", + "description": "Smiley", + "unicode": "U+1F600", + "translated_descriptions": { + "ar": "اِبتِسَامَة", + "bg": "Усмивка", + "ca": "Somrient", + "cs": "Smajlík", + "de": "Lächeln", + "eo": "Rideto", + "es": "Emoticono", + "et": "Smaili", + "fi": "Hymynaama", + "fr": "Sourire", + "hr": "smajlića", + "hu": "Mosoly", + "it": "Faccina sorridente", + "ja": "スマイル", + "nb_NO": "Smilefjes", + "nl": "Smiley", + "pt_BR": "Sorriso", + "ru": "Улыбка", + "si": null, + "sk": "Škeriaca sa tvár", + "sr": "смајли", + "sv": "Smiley", + "szl": null, + "tzm": null, + "uk": "Посмішка", + "zh_Hans": "笑脸" + } + }, + { + "number": 31, + "emoji": "🤖", + "description": "Robot", + "unicode": "U+1F916", + "translated_descriptions": { + "ar": "رُوبُوت", + "bg": "Робот", + "ca": "Robot", + "cs": "Robot", + "de": "Roboter", + "eo": "Roboto", + "es": "Robot", + "et": "Robot", + "fi": "Robotti", + "fr": "Robot", + "hr": "robot", + "hu": "Robot", + "it": "Robot", + "ja": "ロボと", + "nb_NO": "Robot", + "nl": "Robot", + "pt_BR": "Robô", + "ru": "Робот", + "si": null, + "sk": "Robot", + "sr": "робот", + "sv": "Robot", + "szl": null, + "tzm": "Aṛubu", + "uk": "Робот", + "zh_Hans": "机器人" + } + }, + { + "number": 32, + "emoji": "🎩", + "description": "Hat", + "unicode": "U+1F3A9", + "translated_descriptions": { + "ar": "قُبَّعَة", + "bg": "Шапка", + "ca": "Barret", + "cs": "Klobouk", + "de": "Hut", + "eo": "Ĉapelo", + "es": "Sombrero", + "et": "Kübar", + "fi": "Hattu", + "fr": "Chapeau", + "hr": "kapa", + "hu": "Kalap", + "it": "Cappello", + "ja": "帽子", + "nb_NO": "Hatt", + "nl": "Hoed", + "pt_BR": "Chapéu", + "ru": "Шляпа", + "si": null, + "sk": "Cilinder", + "sr": "шешир", + "sv": "Hatt", + "szl": null, + "tzm": "Taraza", + "uk": "Капелюх", + "zh_Hans": "帽子" + } + }, + { + "number": 33, + "emoji": "👓", + "description": "Glasses", + "unicode": "U+1F453", + "translated_descriptions": { + "ar": "نَظَّارَة", + "bg": "Очила", + "ca": "Ulleres", + "cs": "Brýle", + "de": "Brille", + "eo": "Okulvitroj", + "es": "Gafas", + "et": "Prillid", + "fi": "Silmälasit", + "fr": "Lunettes", + "hr": "naočale", + "hu": "Szemüveg", + "it": "Occhiali", + "ja": "めがね", + "nb_NO": "Briller", + "nl": "Bril", + "pt_BR": "Óculos", + "ru": "Очки", + "si": null, + "sk": "Okuliare", + "sr": "наочаре", + "sv": "Glasögon", + "szl": null, + "tzm": null, + "uk": "Окуляри", + "zh_Hans": "眼镜" + } + }, + { + "number": 34, + "emoji": "🔧", + "description": "Spanner", + "unicode": "U+1F527", + "translated_descriptions": { + "ar": "مِفتَاحُ رَبط", + "bg": "Гаечен ключ", + "ca": "Clau anglesa", + "cs": "Klíč", + "de": "Schraubenschlüssel", + "eo": "Ŝraŭbŝlosilo", + "es": "Llave inglesa", + "et": "Mutrivõti", + "fi": "Kiintoavain", + "fr": "Clé à molette", + "hr": "ključ", + "hu": "Csavarkulcs", + "it": "Chiave inglese", + "ja": "スパナ", + "nb_NO": "Fastnøkkel", + "nl": "Moersleutel", + "pt_BR": "Chave inglesa", + "ru": "Ключ", + "si": null, + "sk": "Francúzsky kľúč", + "sr": "кључ", + "sv": "Skruvnyckel", + "szl": null, + "tzm": null, + "uk": "Гайковий ключ", + "zh_Hans": "扳手" + } + }, + { + "number": 35, + "emoji": "🎅", + "description": "Santa", + "unicode": "U+1F385", + "translated_descriptions": { + "ar": "سانتا", + "bg": "Дядо Коледа", + "ca": "Pare Noél", + "cs": "Mikuláš", + "de": "Weihnachtsmann", + "eo": "Kristnaska viro", + "es": "Papá Noel", + "et": "Jõuluvana", + "fi": "Joulupukki", + "fr": "Père Noël", + "hr": "deda Mraz", + "hu": "Télapó", + "it": "Babbo Natale", + "ja": "サンタ", + "nb_NO": "Julenisse", + "nl": "Kerstman", + "pt_BR": "Papai-noel", + "ru": "Санта", + "si": null, + "sk": "Santa Claus", + "sr": "деда Мраз", + "sv": "Tomte", + "szl": null, + "tzm": null, + "uk": "Санта Клаус", + "zh_Hans": "圣诞老人" + } + }, + { + "number": 36, + "emoji": "👍", + "description": "Thumbs Up", + "unicode": "U+1F44D", + "translated_descriptions": { + "ar": "رَفعُ إِبهَام", + "bg": "Палец нагоре", + "ca": "Polzes amunt", + "cs": "Palec nahoru", + "de": "Daumen Hoch", + "eo": "Dikfingro supren", + "es": "Pulgar arriba", + "et": "Pöidlad püsti", + "fi": "Peukalo ylös", + "fr": "Pouce en l’air", + "hr": "palac gore", + "hu": "Hüvelykujj fel", + "it": "Pollice alzato", + "ja": "いいね", + "nb_NO": "Tommel Opp", + "nl": "Duim omhoog", + "pt_BR": "Joinha", + "ru": "Большой палец вверх", + "si": null, + "sk": "Palec nahor", + "sr": "палчић горе", + "sv": "Tummen upp", + "szl": null, + "tzm": null, + "uk": "Великий палець вгору", + "zh_Hans": "赞" + } + }, + { + "number": 37, + "emoji": "☂️", + "description": "Umbrella", + "unicode": "U+2602U+FE0F", + "translated_descriptions": { + "ar": "مِظَلَّة", + "bg": "Чадър", + "ca": "Paraigües", + "cs": "Deštník", + "de": "Regenschirm", + "eo": "Ombrelo", + "es": "Paraguas", + "et": "Vihmavari", + "fi": "Sateenvarjo", + "fr": "Parapluie", + "hr": "kišobran", + "hu": "Esernyő", + "it": "Ombrello", + "ja": "傘", + "nb_NO": "Paraply", + "nl": "Paraplu", + "pt_BR": "Guarda-chuva", + "ru": "Зонт", + "si": null, + "sk": "Dáždnik", + "sr": "кишобран", + "sv": "Paraply", + "szl": null, + "tzm": null, + "uk": "Парасолька", + "zh_Hans": "伞" + } + }, + { + "number": 38, + "emoji": "⌛", + "description": "Hourglass", + "unicode": "U+231B", + "translated_descriptions": { + "ar": "سَاعَةٌ رَملِيَّة", + "bg": "Пясъчен часовник", + "ca": "Rellotge de sorra", + "cs": "Přesýpací hodiny", + "de": "Sanduhr", + "eo": "Sablohorloĝo", + "es": "Reloj de arena", + "et": "Liivakell", + "fi": "Tiimalasi", + "fr": "Sablier", + "hr": "pješčani sat", + "hu": "Homokóra", + "it": "Clessidra", + "ja": "砂時計", + "nb_NO": "Timeglass", + "nl": "Zandloper", + "pt_BR": "Ampulheta", + "ru": "Песочные часы", + "si": null, + "sk": "Presýpacie hodiny", + "sr": "пешчаник", + "sv": "Timglas", + "szl": null, + "tzm": null, + "uk": "Пісковий годинник", + "zh_Hans": "沙漏" + } + }, + { + "number": 39, + "emoji": "⏰", + "description": "Clock", + "unicode": "U+23F0", + "translated_descriptions": { + "ar": "سَاعَة", + "bg": "Часовник", + "ca": "Rellotge", + "cs": "Hodiny", + "de": "Uhr", + "eo": "Horloĝo", + "es": "Reloj", + "et": "Kell", + "fi": "Pöytäkello", + "fr": "Réveil", + "hr": "sat", + "hu": "Óra", + "it": "Orologio", + "ja": "時計", + "nb_NO": "Klokke", + "nl": "Wekker", + "pt_BR": "Relógio", + "ru": "Часы", + "si": null, + "sk": "Budík", + "sr": "сат", + "sv": "Klocka", + "szl": null, + "tzm": null, + "uk": "Годинник", + "zh_Hans": "时钟" + } + }, + { + "number": 40, + "emoji": "🎁", + "description": "Gift", + "unicode": "U+1F381", + "translated_descriptions": { + "ar": "هَدِيَّة", + "bg": "Подарък", + "ca": "Regal", + "cs": "Dárek", + "de": "Geschenk", + "eo": "Donaco", + "es": "Regalo", + "et": "Kingitus", + "fi": "Lahja", + "fr": "Cadeau", + "hr": "poklon", + "hu": "Ajándék", + "it": "Regalo", + "ja": "ギフト", + "nb_NO": "Gave", + "nl": "Geschenk", + "pt_BR": "Presente", + "ru": "Подарок", + "si": null, + "sk": "Zabalený darček", + "sr": "поклон", + "sv": "Present", + "szl": null, + "tzm": null, + "uk": "Подарунок", + "zh_Hans": "礼物" + } + }, + { + "number": 41, + "emoji": "💡", + "description": "Light Bulb", + "unicode": "U+1F4A1", + "translated_descriptions": { + "ar": "مِصبَاح", + "bg": "Лампа", + "ca": "Bombeta", + "cs": "Žárovka", + "de": "Glühbirne", + "eo": "Lampo", + "es": "Bombilla", + "et": "Lambipirn", + "fi": "Hehkulamppu", + "fr": "Ampoule", + "hr": "žarulja", + "hu": "Égő", + "it": "Lampadina", + "ja": "電球", + "nb_NO": "Lyspære", + "nl": "Gloeilamp", + "pt_BR": "Lâmpada", + "ru": "Лампочка", + "si": null, + "sk": "Žiarovka", + "sr": "сијалица", + "sv": "Lampa", + "szl": null, + "tzm": null, + "uk": "Лампочка", + "zh_Hans": "灯泡" + } + }, + { + "number": 42, + "emoji": "📕", + "description": "Book", + "unicode": "U+1F4D5", + "translated_descriptions": { + "ar": "كِتَاب", + "bg": "Книга", + "ca": "Llibre", + "cs": "Kniha", + "de": "Buch", + "eo": "Libro", + "es": "Libro", + "et": "Raamat", + "fi": "Kirja", + "fr": "Livre", + "hr": "knjiga", + "hu": "Könyv", + "it": "Libro", + "ja": "本", + "nb_NO": "Bok", + "nl": "Boek", + "pt_BR": "Livro", + "ru": "Книга", + "si": null, + "sk": "Zatvorená kniha", + "sr": "књига", + "sv": "Bok", + "szl": null, + "tzm": "Adlis", + "uk": "Книга", + "zh_Hans": "书" + } + }, + { + "number": 43, + "emoji": "✏️", + "description": "Pencil", + "unicode": "U+270FU+FE0F", + "translated_descriptions": { + "ar": "قَلَمُ رَصاص", + "bg": "Молив", + "ca": "Llapis", + "cs": "Tužka", + "de": "Bleistift", + "eo": "Krajono", + "es": "Lápiz", + "et": "Pliiats", + "fi": "Lyijykynä", + "fr": "Crayon", + "hr": "olovka", + "hu": "Ceruza", + "it": "Matita", + "ja": "鉛筆", + "nb_NO": "Blyant", + "nl": "Potlood", + "pt_BR": "Lápis", + "ru": "Карандаш", + "si": null, + "sk": "Ceruzka", + "sr": "оловка", + "sv": "Penna", + "szl": null, + "tzm": null, + "uk": "Олівець", + "zh_Hans": "铅笔" + } + }, + { + "number": 44, + "emoji": "📎", + "description": "Paperclip", + "unicode": "U+1F4CE", + "translated_descriptions": { + "ar": "مِشبَكُ وَرَق", + "bg": "Кламер", + "ca": "Clip", + "cs": "Sponka", + "de": "Büroklammer", + "eo": "Paperkuntenilo", + "es": "Clip", + "et": "Kirjaklamber", + "fi": "Paperiliitin", + "fr": "Trombone", + "hr": "spajalica", + "hu": "Gémkapocs", + "it": "Graffetta", + "ja": "クリップ", + "nb_NO": "BInders", + "nl": "Papierklemmetje", + "pt_BR": "Clipe de papel", + "ru": "Скрепка", + "si": null, + "sk": "Sponka na papier", + "sr": "спајалица", + "sv": "Gem", + "szl": null, + "tzm": null, + "uk": "Спиначка", + "zh_Hans": "回形针" + } + }, + { + "number": 45, + "emoji": "✂️", + "description": "Scissors", + "unicode": "U+2702U+FE0F", + "translated_descriptions": { + "ar": "مِقَصّ", + "bg": "Ножици", + "ca": "Tisores", + "cs": "Nůžky", + "de": "Schere", + "eo": "Tondilo", + "es": "Tijeras", + "et": "Käärid", + "fi": "Sakset", + "fr": "Ciseaux", + "hr": "škare", + "hu": "Olló", + "it": "Forbici", + "ja": "はさみ", + "nb_NO": "Saks", + "nl": "Schaar", + "pt_BR": "Tesoura", + "ru": "Ножницы", + "si": null, + "sk": "Nožnice", + "sr": "маказе", + "sv": "Sax", + "szl": null, + "tzm": null, + "uk": "Ножиці", + "zh_Hans": "剪刀" + } + }, + { + "number": 46, + "emoji": "🔒", + "description": "Lock", + "unicode": "U+1F512", + "translated_descriptions": { + "ar": "قُفل", + "bg": "Катинар", + "ca": "Cadenat", + "cs": "Zámek", + "de": "Schloss", + "eo": "Seruro", + "es": "Candado", + "et": "Lukk", + "fi": "Lukko", + "fr": "Cadenas", + "hr": "zaključati", + "hu": "Lakat", + "it": "Lucchetto", + "ja": "錠前", + "nb_NO": "Lås", + "nl": "Slot", + "pt_BR": "Cadeado", + "ru": "Замок", + "si": null, + "sk": "Zatvorená zámka", + "sr": "катанац", + "sv": "Lås", + "szl": null, + "tzm": null, + "uk": "Замок", + "zh_Hans": "锁" + } + }, + { + "number": 47, + "emoji": "🔑", + "description": "Key", + "unicode": "U+1F511", + "translated_descriptions": { + "ar": "مِفتَاح", + "bg": "Ключ", + "ca": "Clau", + "cs": "Klíč", + "de": "Schlüssel", + "eo": "Ŝlosilo", + "es": "Llave", + "et": "Võti", + "fi": "Avain", + "fr": "Clé", + "hr": "ključ", + "hu": "Kulcs", + "it": "Chiave", + "ja": "鍵", + "nb_NO": "Nøkkel", + "nl": "Sleutel", + "pt_BR": "Chave", + "ru": "Ключ", + "si": null, + "sk": "Kľúč", + "sr": "кључ", + "sv": "Nyckel", + "szl": null, + "tzm": "Tasarut", + "uk": "Ключ", + "zh_Hans": "钥匙" + } + }, + { + "number": 48, + "emoji": "🔨", + "description": "Hammer", + "unicode": "U+1F528", + "translated_descriptions": { + "ar": "مِطرَقَة", + "bg": "Чук", + "ca": "Martell", + "cs": "Kladivo", + "de": "Hammer", + "eo": "Martelo", + "es": "Martillo", + "et": "Haamer", + "fi": "Vasara", + "fr": "Marteau", + "hr": "čekić", + "hu": "Kalapács", + "it": "Martello", + "ja": "金槌", + "nb_NO": "Hammer", + "nl": "Hamer", + "pt_BR": "Martelo", + "ru": "Молоток", + "si": null, + "sk": "Kladivo", + "sr": "чекић", + "sv": "Hammare", + "szl": null, + "tzm": null, + "uk": "Молоток", + "zh_Hans": "锤子" + } + }, + { + "number": 49, + "emoji": "☎️", + "description": "Telephone", + "unicode": "U+260EU+FE0F", + "translated_descriptions": { + "ar": "تِلِفُون", + "bg": "Телефон", + "ca": "Telèfon", + "cs": "Telefon", + "de": "Telefon", + "eo": "Telefono", + "es": "Telefono", + "et": "Telefon", + "fi": "Puhelin", + "fr": "Téléphone", + "hr": "telefon", + "hu": "Telefon", + "it": "Telefono", + "ja": "電話機", + "nb_NO": "Telefon", + "nl": "Telefoon", + "pt_BR": "Telefone", + "ru": "Телефон", + "si": null, + "sk": "Telefón", + "sr": "телефон", + "sv": "Telefon", + "szl": null, + "tzm": "Atilifun", + "uk": "Телефон", + "zh_Hans": "电话" + } + }, + { + "number": 50, + "emoji": "🏁", + "description": "Flag", + "unicode": "U+1F3C1", + "translated_descriptions": { + "ar": "عَلَم", + "bg": "Флаг", + "ca": "Bandera", + "cs": "Vlajka", + "de": "Flagge", + "eo": "Flago", + "es": "Bandera", + "et": "Lipp", + "fi": "Lippu", + "fr": "Drapeau", + "hr": "zastava", + "hu": "Zászló", + "it": "Bandiera", + "ja": "旗", + "nb_NO": "Flagg", + "nl": "Vlag", + "pt_BR": "Bandeira", + "ru": "Флаг", + "si": null, + "sk": "Kockovaná zástava", + "sr": "застава", + "sv": "Flagga", + "szl": null, + "tzm": "Acenyal", + "uk": "Прапор", + "zh_Hans": "旗帜" + } + }, + { + "number": 51, + "emoji": "🚂", + "description": "Train", + "unicode": "U+1F682", + "translated_descriptions": { + "ar": "قِطَار", + "bg": "Влак", + "ca": "Tren", + "cs": "Vlak", + "de": "Zug", + "eo": "Vagonaro", + "es": "Tren", + "et": "Rong", + "fi": "Juna", + "fr": "Train", + "hr": "vlak", + "hu": "Vonat", + "it": "Treno", + "ja": "電車", + "nb_NO": "Tog", + "nl": "Trein", + "pt_BR": "Trem", + "ru": "Поезд", + "si": null, + "sk": "Rušeň", + "sr": "воз", + "sv": "Tåg", + "szl": null, + "tzm": null, + "uk": "Потяг", + "zh_Hans": "火车" + } + }, + { + "number": 52, + "emoji": "🚲", + "description": "Bicycle", + "unicode": "U+1F6B2", + "translated_descriptions": { + "ar": "دَرّاجَة", + "bg": "Колело", + "ca": "Bicicleta", + "cs": "Kolo", + "de": "Fahrrad", + "eo": "Biciklo", + "es": "Bicicleta", + "et": "Jalgratas", + "fi": "Polkupyörä", + "fr": "Vélo", + "hr": "bicikl", + "hu": "Kerékpár", + "it": "Bicicletta", + "ja": "自転車", + "nb_NO": "Sykkel", + "nl": "Fiets", + "pt_BR": "Bicicleta", + "ru": "Велосипед", + "si": null, + "sk": "Bicykel", + "sr": "бицикл", + "sv": "Cykel", + "szl": null, + "tzm": null, + "uk": "Велосипед", + "zh_Hans": "自行车" + } + }, + { + "number": 53, + "emoji": "✈️", + "description": "Aeroplane", + "unicode": "U+2708U+FE0F", + "translated_descriptions": { + "ar": "طَائِرة", + "bg": "Самолет", + "ca": "Avió", + "cs": "Letadlo", + "de": "Flugzeug", + "eo": "Aviadilo", + "es": "Avión", + "et": "Lennuk", + "fi": "Lentokone", + "fr": "Avion", + "hr": "avion", + "hu": "Repülő", + "it": "Aeroplano", + "ja": "飛行機", + "nb_NO": "Fly", + "nl": "Vliegtuig", + "pt_BR": "Avião", + "ru": "Самолет", + "si": null, + "sk": "Lietadlo", + "sr": "авион", + "sv": "Flygplan", + "szl": null, + "tzm": null, + "uk": "Літак", + "zh_Hans": "飞机" + } + }, + { + "number": 54, + "emoji": "🚀", + "description": "Rocket", + "unicode": "U+1F680", + "translated_descriptions": { + "ar": "صَارُوخ", + "bg": "Ракета", + "ca": "Coet", + "cs": "Raketa", + "de": "Rakete", + "eo": "Raketo", + "es": "Cohete", + "et": "Rakett", + "fi": "Raketti", + "fr": "Fusée", + "hr": "raketa", + "hu": "Rakáta", + "it": "Razzo", + "ja": "ロケット", + "nb_NO": "Rakett", + "nl": "Raket", + "pt_BR": "Foguete", + "ru": "Ракета", + "si": null, + "sk": "Raketa", + "sr": "ракета", + "sv": "Raket", + "szl": null, + "tzm": null, + "uk": "Ракета", + "zh_Hans": "火箭" + } + }, + { + "number": 55, + "emoji": "🏆", + "description": "Trophy", + "unicode": "U+1F3C6", + "translated_descriptions": { + "ar": "كَأسُ النَّصر", + "bg": "Трофей", + "ca": "Trofeu", + "cs": "Pohár", + "de": "Pokal", + "eo": "Trofeo", + "es": "Trofeo", + "et": "Auhind", + "fi": "Palkinto", + "fr": "Trophée", + "hr": "trofej", + "hu": "Trófea", + "it": "Trofeo", + "ja": "トロフィー", + "nb_NO": "Pokal", + "nl": "Trofee", + "pt_BR": "Troféu", + "ru": "Кубок", + "si": null, + "sk": "Trofej", + "sr": "пехар", + "sv": "Trofé", + "szl": null, + "tzm": null, + "uk": "Приз", + "zh_Hans": "奖杯" + } + }, + { + "number": 56, + "emoji": "⚽", + "description": "Ball", + "unicode": "U+26BD", + "translated_descriptions": { + "ar": "كُرَة", + "bg": "Топка", + "ca": "Pilota", + "cs": "Míč", + "de": "Ball", + "eo": "Pilko", + "es": "Bola", + "et": "Pall", + "fi": "Pallo", + "fr": "Ballon", + "hr": "lopta", + "hu": "Labda", + "it": "Palla", + "ja": "ボール", + "nb_NO": "Ball", + "nl": "Bal", + "pt_BR": "Bola", + "ru": "Мяч", + "si": null, + "sk": "Futbal", + "sr": "лопта", + "sv": "Boll", + "szl": null, + "tzm": "Tcama", + "uk": "М'яч", + "zh_Hans": "球" + } + }, + { + "number": 57, + "emoji": "🎸", + "description": "Guitar", + "unicode": "U+1F3B8", + "translated_descriptions": { + "ar": "غيتار", + "bg": "Китара", + "ca": "Guitarra", + "cs": "Kytara", + "de": "Gitarre", + "eo": "Gitaro", + "es": "Guitarra", + "et": "Kitarr", + "fi": "Kitara", + "fr": "Guitare", + "hr": "gitara", + "hu": "Gitár", + "it": "Chitarra", + "ja": "ギター", + "nb_NO": "Gitar", + "nl": "Gitaar", + "pt_BR": "Guitarra", + "ru": "Гитара", + "si": null, + "sk": "Gitara", + "sr": "гитара", + "sv": "Gitarr", + "szl": null, + "tzm": "Agiṭaṛ", + "uk": "Гітара", + "zh_Hans": "吉他" + } + }, + { + "number": 58, + "emoji": "🎺", + "description": "Trumpet", + "unicode": "U+1F3BA", + "translated_descriptions": { + "ar": "بُوق", + "bg": "Тромпет", + "ca": "Trompeta", + "cs": "Trumpeta", + "de": "Trompete", + "eo": "Trumpeto", + "es": "Trompeta", + "et": "Trompet", + "fi": "Trumpetti", + "fr": "Trompette", + "hr": "truba", + "hu": "Trombita", + "it": "Trombetta", + "ja": "トランペット", + "nb_NO": "Trompet", + "nl": "Trompet", + "pt_BR": "Trombeta", + "ru": "Труба", + "si": null, + "sk": "Trúbka", + "sr": "труба", + "sv": "Trumpet", + "szl": null, + "tzm": null, + "uk": "Труба", + "zh_Hans": "喇叭" + } + }, + { + "number": 59, + "emoji": "🔔", + "description": "Bell", + "unicode": "U+1F514", + "translated_descriptions": { + "ar": "جَرَس", + "bg": "Звънец", + "ca": "Campana", + "cs": "Zvonek", + "de": "Glocke", + "eo": "Sonorilo", + "es": "Campana", + "et": "Kelluke", + "fi": "Soittokello", + "fr": "Cloche", + "hr": "zvono", + "hu": "Harang", + "it": "Campana", + "ja": "ベル", + "nb_NO": "Bjelle", + "nl": "Bel", + "pt_BR": "Sino", + "ru": "Колокол", + "si": null, + "sk": "Zvon", + "sr": "звоно", + "sv": "Bjällra", + "szl": null, + "tzm": null, + "uk": "Дзвін", + "zh_Hans": "铃铛" + } + }, + { + "number": 60, + "emoji": "⚓", + "description": "Anchor", + "unicode": "U+2693", + "translated_descriptions": { + "ar": "مِرسَاة", + "bg": "Котва", + "ca": "Àncora", + "cs": "Kotva", + "de": "Anker", + "eo": "Ankro", + "es": "Ancla", + "et": "Ankur", + "fi": "Ankkuri", + "fr": "Ancre", + "hr": "sidro", + "hu": "Horgony", + "it": "Ancora", + "ja": "いかり", + "nb_NO": "Anker", + "nl": "Anker", + "pt_BR": "Âncora", + "ru": "Якорь", + "si": null, + "sk": "Kotva", + "sr": "сидро", + "sv": "Ankare", + "szl": null, + "tzm": null, + "uk": "Якір", + "zh_Hans": "锚" + } + }, + { + "number": 61, + "emoji": "🎧", + "description": "Headphones", + "unicode": "U+1F3A7", + "translated_descriptions": { + "ar": "سَمّاعَة رَأس", + "bg": "Слушалки", + "ca": "Auriculars", + "cs": "Sluchátka", + "de": "Kopfhörer", + "eo": "Kapaŭdilo", + "es": "Cascos", + "et": "Kõrvaklapid", + "fi": "Kuulokkeet", + "fr": "Casque audio", + "hr": "slušalice", + "hu": "Fejhallgató", + "it": "Cuffie", + "ja": "ヘッドホン", + "nb_NO": "Hodetelefoner", + "nl": "Koptelefoon", + "pt_BR": "Fones de ouvido", + "ru": "Наушники", + "si": null, + "sk": "Slúchadlá", + "sr": "слушалице", + "sv": "Hörlurar", + "szl": null, + "tzm": null, + "uk": "Навушники", + "zh_Hans": "耳机" + } + }, + { + "number": 62, + "emoji": "📁", + "description": "Folder", + "unicode": "U+1F4C1", + "translated_descriptions": { + "ar": "مُجَلَّد", + "bg": "Папка", + "ca": "Carpeta", + "cs": "Složka", + "de": "Ordner", + "eo": "Dosierujo", + "es": "Carpeta", + "et": "Kaust", + "fi": "Kansio", + "fr": "Dossier", + "hr": "mapu", + "hu": "Mappa", + "it": "Cartella", + "ja": "フォルダ", + "nb_NO": "Mappe", + "nl": "Map", + "pt_BR": "Pasta", + "ru": "Папка", + "si": null, + "sk": "Fascikel", + "sr": "фасцикла", + "sv": "Mapp", + "szl": null, + "tzm": "Asdaw", + "uk": "Тека", + "zh_Hans": "文件夹" + } + }, + { + "number": 63, + "emoji": "📌", + "description": "Pin", + "unicode": "U+1F4CC", + "translated_descriptions": { + "ar": "دَبُّوس", + "bg": "Кабърче", + "ca": "Xinxeta", + "cs": "Špendlík", + "de": "Stecknadel", + "eo": "Pinglo", + "es": "Alfiler", + "et": "Nööpnõel", + "fi": "Nuppineula", + "fr": "Punaise", + "hr": "pribadača", + "hu": "Rajszeg", + "it": "Puntina", + "ja": "ピン", + "nb_NO": "Tegnestift", + "nl": "Duimspijker", + "pt_BR": "Alfinete", + "ru": "Булавка", + "si": null, + "sk": "Špendlík", + "sr": "чиода", + "sv": "Häftstift", + "szl": null, + "tzm": null, + "uk": "Кнопка", + "zh_Hans": "图钉" + } + } +] \ No newline at end of file diff --git a/assets/sounds/call_attention.mp3 b/assets/sounds/call_attention.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..92390f0ee39ac52a5e006ba6744123021548d266 GIT binary patch literal 50991 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 IfA`P-1E0Lz%>V!Z literal 0 HcmV?d00001 diff --git a/assets/sounds/call_join.mp3 b/assets/sounds/call_join.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..2b3f6f2eaf434f8d225a3695db9e6001ce168ee6 GIT binary patch literal 35108 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�qD=3 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 literal 0 HcmV?d00001 diff --git a/assets/sounds/call_ring.mp3 b/assets/sounds/call_ring.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..91e0fb8cc244ee1b5d636fe66e7007660bd06fdf GIT binary patch literal 100310 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

    5!1IFovL)k@OZO)JWdoO(Yh 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 Ws#1F^2WzAKh6V-zQ0)Kl>;C}g6Xjk2 literal 0 HcmV?d00001 diff --git a/assets/sounds/call_wait.mp3 b/assets/sounds/call_wait.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..8e226536f18b0ba19f6a0485aa3e50e45321180e GIT binary patch literal 67709 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 E3;&sKUjP6A literal 0 HcmV?d00001 diff --git a/assets/sounds/notification.mp3 b/assets/sounds/notification.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..fe4859efcc0f215243f960677b9de894d07ab9d7 GIT binary patch literal 46811 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 { throw Error('TextEncoder not available') } } ); + + const encodeString = function (arg, view) { + const buf = cachedTextEncoder.encode(arg); + view.set(buf); + return { + read: arg.length, + written: buf.length + }; + }; + + function passStringToWasm0(arg, malloc, realloc) { + + if (realloc === undefined) { + const buf = cachedTextEncoder.encode(arg); + const ptr = malloc(buf.length, 1) >>> 0; + getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf); + WASM_VECTOR_LEN = buf.length; + return ptr; + } + + let len = arg.length; + let ptr = malloc(len, 1) >>> 0; + + const mem = getUint8ArrayMemory0(); + + let offset = 0; + + for (; offset < len; offset++) { + const code = arg.charCodeAt(offset); + if (code > 0x7F) break; + mem[ptr + offset] = code; + } + + if (offset !== len) { + if (offset !== 0) { + arg = arg.slice(offset); + } + ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0; + const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len); + const ret = encodeString(arg, view); + + offset += ret.written; + ptr = realloc(ptr, len, offset, 1) >>> 0; + } + + WASM_VECTOR_LEN = offset; + return ptr; + } + + let cachedDataViewMemory0 = null; + + function getDataViewMemory0() { + if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer !== wasm.memory.buffer) { + cachedDataViewMemory0 = new DataView(wasm.memory.buffer); + } + return cachedDataViewMemory0; + } + + const cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } ); + + if (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); }; + + function getStringFromWasm0(ptr, len) { + ptr = ptr >>> 0; + return cachedTextDecoder.decode(getUint8ArrayMemory0().slice(ptr, ptr + len)); + } + + function isLikeNone(x) { + return x === undefined || x === null; + } + + const CLOSURE_DTORS = (typeof FinalizationRegistry === 'undefined') + ? { register: () => {}, unregister: () => {} } + : new FinalizationRegistry(state => { + wasm.__wbindgen_export_7.get(state.dtor)(state.a, state.b) + }); + + function makeMutClosure(arg0, arg1, dtor, f) { + const state = { a: arg0, b: arg1, cnt: 1, dtor }; + const real = (...args) => { + // First up with a closure we increment the internal reference + // count. This ensures that the Rust closure environment won't + // be deallocated while we're invoking it. + state.cnt++; + const a = state.a; + state.a = 0; + try { + return f(a, state.b, ...args); + } finally { + if (--state.cnt === 0) { + wasm.__wbindgen_export_7.get(state.dtor)(a, state.b); + CLOSURE_DTORS.unregister(state); + } else { + state.a = a; + } + } + }; + real.original = state; + CLOSURE_DTORS.register(real, state, state); + return real; + } + + function debugString(val) { + // primitive types + const type = typeof val; + if (type == 'number' || type == 'boolean' || val == null) { + return `${val}`; + } + if (type == 'string') { + return `"${val}"`; + } + if (type == 'symbol') { + const description = val.description; + if (description == null) { + return 'Symbol'; + } else { + return `Symbol(${description})`; + } + } + if (type == 'function') { + const name = val.name; + if (typeof name == 'string' && name.length > 0) { + return `Function(${name})`; + } else { + return 'Function'; + } + } + // objects + if (Array.isArray(val)) { + const length = val.length; + let debug = '['; + if (length > 0) { + debug += debugString(val[0]); + } + for(let i = 1; i < length; i++) { + debug += ', ' + debugString(val[i]); + } + debug += ']'; + return debug; + } + // Test for built-in + const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val)); + let className; + if (builtInMatches && builtInMatches.length > 1) { + className = builtInMatches[1]; + } else { + // Failed to match the standard '[object ClassName]' + return toString.call(val); + } + if (className == 'Object') { + // we're a user defined class or Object + // JSON.stringify avoids problems with cycles, and is generally much + // easier than looping through ownProperties of `val`. + try { + return 'Object(' + JSON.stringify(val) + ')'; + } catch (_) { + return 'Object'; + } + } + // errors + if (val instanceof Error) { + return `${val.name}: ${val.message}\n${val.stack}`; + } + // TODO we could test for more things here, like `Set`s and `Map`s. + return className; + } + /** + * @returns {number} + */ + __exports.frb_get_rust_content_hash = function() { + const ret = wasm.frb_get_rust_content_hash(); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_account_fallback_key = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_account_fallback_key(that); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_account_forget_fallback_key = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_account_forget_fallback_key(that); + return ret; + }; + + function passArray8ToWasm0(arg, malloc) { + const ptr = malloc(arg.length * 1, 1) >>> 0; + getUint8ArrayMemory0().set(arg, ptr / 1); + WASM_VECTOR_LEN = arg.length; + return ptr; + } + /** + * @param {string} pickle + * @param {Uint8Array} pickle_key + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_account_from_olm_pickle_encrypted = function(pickle, pickle_key) { + const ptr0 = passStringToWasm0(pickle, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passArray8ToWasm0(pickle_key, wasm.__wbindgen_malloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_account_from_olm_pickle_encrypted(ptr0, len0, ptr1, len1); + return ret; + }; + + /** + * @param {any} that + * @param {string} public_key + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_account_remove_one_time_key = function(that, public_key) { + const ptr0 = passStringToWasm0(public_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_account_remove_one_time_key(that, ptr0, len0); + return ret; + }; + + /** + * @param {any} that + * @param {string} message + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_account_sign = function(that, message) { + const ptr0 = passStringToWasm0(message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_account_sign(that, ptr0, len0); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_curve_25519_public_key_as_bytes = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_curve_25519_public_key_as_bytes(that); + return ret; + }; + + /** + * @param {string} base64_key + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_curve_25519_public_key_from_base64 = function(base64_key) { + const ptr0 = passStringToWasm0(base64_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_curve_25519_public_key_from_base64(ptr0, len0); + return ret; + }; + + /** + * @param {Uint8Array} bytes + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_curve_25519_public_key_from_slice = function(bytes) { + const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_curve_25519_public_key_from_slice(ptr0, len0); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_curve_25519_public_key_to_base64 = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_curve_25519_public_key_to_base64(that); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_ed_25519_public_key_as_bytes = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_ed_25519_public_key_as_bytes(that); + return ret; + }; + + /** + * @param {string} base64_key + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_ed_25519_public_key_from_base64 = function(base64_key) { + const ptr0 = passStringToWasm0(base64_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_ed_25519_public_key_from_base64(ptr0, len0); + return ret; + }; + + /** + * @param {Uint8Array} bytes + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_ed_25519_public_key_from_slice = function(bytes) { + const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_ed_25519_public_key_from_slice(ptr0, len0); + return ret; + }; + + /** + * @param {string} pickle + * @param {Uint8Array} pickle_key + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_account_from_pickle_encrypted = function(pickle, pickle_key) { + const ptr0 = passStringToWasm0(pickle, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passArray8ToWasm0(pickle_key, wasm.__wbindgen_malloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_account_from_pickle_encrypted(ptr0, len0, ptr1, len1); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_account_generate_fallback_key = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_account_generate_fallback_key(that); + return ret; + }; + + /** + * @param {any} that + * @param {any} count + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_account_generate_one_time_keys = function(that, count) { + const ret = wasm.wire__crate__bindings__vodozemac_account_generate_one_time_keys(that, count); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_account_identity_keys = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_account_identity_keys(that); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_account_mark_keys_as_published = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_account_mark_keys_as_published(that); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_account_max_number_of_one_time_keys = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_account_max_number_of_one_time_keys(that); + return ret; + }; + + /** + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_account_new = function() { + const ret = wasm.wire__crate__bindings__vodozemac_account_new(); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_account_one_time_keys = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_account_one_time_keys(that); + return ret; + }; + + /** + * @param {any} that + * @param {Uint8Array} pickle_key + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_account_pickle_encrypted = function(that, pickle_key) { + const ptr0 = passArray8ToWasm0(pickle_key, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_account_pickle_encrypted(that, ptr0, len0); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_ed_25519_public_key_to_base64 = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_ed_25519_public_key_to_base64(that); + return ret; + }; + + /** + * @param {any} that + * @param {string} message + * @param {any} signature + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_ed_25519_public_key_verify = function(that, message, signature) { + const ptr0 = passStringToWasm0(message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_ed_25519_public_key_verify(that, ptr0, len0, signature); + return ret; + }; + + /** + * @param {string} signature + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_ed_25519_signature_from_base64 = function(signature) { + const ptr0 = passStringToWasm0(signature, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_ed_25519_signature_from_base64(ptr0, len0); + return ret; + }; + + /** + * @param {string} pickle + * @param {Uint8Array} pickle_key + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_group_session_from_pickle_encrypted = function(pickle, pickle_key) { + const ptr0 = passStringToWasm0(pickle, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passArray8ToWasm0(pickle_key, wasm.__wbindgen_malloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_group_session_from_pickle_encrypted(ptr0, len0, ptr1, len1); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_group_session_message_index = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_group_session_message_index(that); + return ret; + }; + + /** + * @param {any} config + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_group_session_new = function(config) { + const ret = wasm.wire__crate__bindings__vodozemac_group_session_new(config); + return ret; + }; + + /** + * @param {any} that + * @param {Uint8Array} pickle_key + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_group_session_pickle_encrypted = function(that, pickle_key) { + const ptr0 = passArray8ToWasm0(pickle_key, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_group_session_pickle_encrypted(that, ptr0, len0); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_group_session_session_config = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_group_session_session_config(that); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_group_session_session_id = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_group_session_session_id(that); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_group_session_session_key = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_group_session_session_key(that); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_group_session_to_inbound = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_group_session_to_inbound(that); + return ret; + }; + + /** + * @param {Uint8Array} bytes + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_ed_25519_signature_from_slice = function(bytes) { + const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_ed_25519_signature_from_slice(ptr0, len0); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_ed_25519_signature_to_base64 = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_ed_25519_signature_to_base64(that); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_ed_25519_signature_to_bytes = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_ed_25519_signature_to_bytes(that); + return ret; + }; + + /** + * @param {any} that + * @param {string} input + * @param {string} info + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_established_sas_calculate_mac = function(that, input, info) { + const ptr0 = passStringToWasm0(input, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(info, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_established_sas_calculate_mac(that, ptr0, len0, ptr1, len1); + return ret; + }; + + /** + * @param {any} that + * @param {string} input + * @param {string} info + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_established_sas_calculate_mac_deprecated = function(that, input, info) { + const ptr0 = passStringToWasm0(input, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(info, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_established_sas_calculate_mac_deprecated(that, ptr0, len0, ptr1, len1); + return ret; + }; + + /** + * @param {any} that + * @param {string} info + * @param {number} length + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_established_sas_generate_bytes = function(that, info, length) { + const ptr0 = passStringToWasm0(info, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_established_sas_generate_bytes(that, ptr0, len0, length); + return ret; + }; + + /** + * @param {any} that + * @param {string} input + * @param {string} info + * @param {string} mac + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_established_sas_verify_mac = function(that, input, info, mac) { + const ptr0 = passStringToWasm0(input, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(info, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ptr2 = passStringToWasm0(mac, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len2 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_established_sas_verify_mac(that, ptr0, len0, ptr1, len1, ptr2, len2); + return ret; + }; + + /** + * @param {any} that + * @param {string} plaintext + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_group_session_encrypt = function(that, plaintext) { + const ptr0 = passStringToWasm0(plaintext, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_group_session_encrypt(that, ptr0, len0); + return ret; + }; + + /** + * @param {string} pickle + * @param {Uint8Array} pickle_key + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_group_session_from_olm_pickle_encrypted = function(pickle, pickle_key) { + const ptr0 = passStringToWasm0(pickle, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passArray8ToWasm0(pickle_key, wasm.__wbindgen_malloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_group_session_from_olm_pickle_encrypted(ptr0, len0, ptr1, len1); + return ret; + }; + + /** + * @param {any} that + * @param {string} encrypted + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_inbound_group_session_decrypt = function(that, encrypted) { + const ptr0 = passStringToWasm0(encrypted, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_inbound_group_session_decrypt(that, ptr0, len0); + return ret; + }; + + /** + * @param {any} that + * @param {number} index + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_inbound_group_session_export_at = function(that, index) { + const ret = wasm.wire__crate__bindings__vodozemac_inbound_group_session_export_at(that, index); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_inbound_group_session_export_at_first_known_index = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_inbound_group_session_export_at_first_known_index(that); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_inbound_group_session_first_known_index = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_inbound_group_session_first_known_index(that); + return ret; + }; + + /** + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_megolm_session_config_version_1 = function() { + const ret = wasm.wire__crate__bindings__vodozemac_megolm_session_config_version_1(); + return ret; + }; + + /** + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_megolm_session_config_version_2 = function() { + const ret = wasm.wire__crate__bindings__vodozemac_megolm_session_config_version_2(); + return ret; + }; + + /** + * @param {any} message_type + * @param {string} ciphertext + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_olm_message_from_parts = function(message_type, ciphertext) { + const ptr0 = passStringToWasm0(ciphertext, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_olm_message_from_parts(message_type, ptr0, len0); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_olm_message_message = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_olm_message_message(that); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_olm_message_message_type = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_olm_message_message_type(that); + return ret; + }; + + /** + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_olm_session_config_def = function() { + const ret = wasm.wire__crate__bindings__vodozemac_olm_session_config_def(); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_olm_session_config_version = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_olm_session_config_version(that); + return ret; + }; + + /** + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_olm_session_config_version_1 = function() { + const ret = wasm.wire__crate__bindings__vodozemac_olm_session_config_version_1(); + return ret; + }; + + /** + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_olm_session_config_version_2 = function() { + const ret = wasm.wire__crate__bindings__vodozemac_olm_session_config_version_2(); + return ret; + }; + + /** + * @param {number} func_id + * @param {any} port_ + * @param {any} ptr_ + * @param {number} rust_vec_len_ + * @param {number} data_len_ + */ + __exports.frb_pde_ffi_dispatcher_primary = function(func_id, port_, ptr_, rust_vec_len_, data_len_) { + wasm.frb_pde_ffi_dispatcher_primary(func_id, port_, ptr_, rust_vec_len_, data_len_); + }; + + /** + * @param {string} pickle + * @param {Uint8Array} pickle_key + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_inbound_group_session_from_olm_pickle_encrypted = function(pickle, pickle_key) { + const ptr0 = passStringToWasm0(pickle, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passArray8ToWasm0(pickle_key, wasm.__wbindgen_malloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_inbound_group_session_from_olm_pickle_encrypted(ptr0, len0, ptr1, len1); + return ret; + }; + + /** + * @param {string} pickle + * @param {Uint8Array} pickle_key + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_inbound_group_session_from_pickle_encrypted = function(pickle, pickle_key) { + const ptr0 = passStringToWasm0(pickle, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passArray8ToWasm0(pickle_key, wasm.__wbindgen_malloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_inbound_group_session_from_pickle_encrypted(ptr0, len0, ptr1, len1); + return ret; + }; + + /** + * @param {string} exported_session_key + * @param {any} config + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_inbound_group_session_import = function(exported_session_key, config) { + const ptr0 = passStringToWasm0(exported_session_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_inbound_group_session_import(ptr0, len0, config); + return ret; + }; + + /** + * @param {string} session_key + * @param {any} config + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_inbound_group_session_new = function(session_key, config) { + const ptr0 = passStringToWasm0(session_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_inbound_group_session_new(ptr0, len0, config); + return ret; + }; + + /** + * @param {any} that + * @param {Uint8Array} pickle_key + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_inbound_group_session_pickle_encrypted = function(that, pickle_key) { + const ptr0 = passArray8ToWasm0(pickle_key, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_inbound_group_session_pickle_encrypted(that, ptr0, len0); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_inbound_group_session_session_id = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_inbound_group_session_session_id(that); + return ret; + }; + + /** + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_megolm_session_config_def = function() { + const ret = wasm.wire__crate__bindings__vodozemac_megolm_session_config_def(); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_megolm_session_config_version = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_megolm_session_config_version(that); + return ret; + }; + + /** + * @param {any} that + * @param {any} message + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_pk_decryption_decrypt = function(that, message) { + const ret = wasm.wire__crate__bindings__vodozemac_pk_decryption_decrypt(that, message); + return ret; + }; + + /** + * @param {Uint8Array} secret_key + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_pk_decryption_from_key = function(secret_key) { + const ptr0 = passArray8ToWasm0(secret_key, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_pk_decryption_from_key(ptr0, len0); + return ret; + }; + + /** + * @param {string} pickle + * @param {Uint8Array} pickle_key + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_pk_decryption_from_libolm_pickle = function(pickle, pickle_key) { + const ptr0 = passStringToWasm0(pickle, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passArray8ToWasm0(pickle_key, wasm.__wbindgen_malloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_pk_decryption_from_libolm_pickle(ptr0, len0, ptr1, len1); + return ret; + }; + + /** + * @param {any} that + * @param {any} message + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_session_decrypt = function(that, message) { + const ret = wasm.wire__crate__bindings__vodozemac_session_decrypt(that, message); + return ret; + }; + + /** + * @param {any} that + * @param {string} plaintext + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_session_encrypt = function(that, plaintext) { + const ptr0 = passStringToWasm0(plaintext, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_session_encrypt(that, ptr0, len0); + return ret; + }; + + /** + * @param {string} pickle + * @param {Uint8Array} pickle_key + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_session_from_olm_pickle_encrypted = function(pickle, pickle_key) { + const ptr0 = passStringToWasm0(pickle, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passArray8ToWasm0(pickle_key, wasm.__wbindgen_malloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_session_from_olm_pickle_encrypted(ptr0, len0, ptr1, len1); + return ret; + }; + + /** + * @param {string} pickle + * @param {Uint8Array} pickle_key + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_session_from_pickle_encrypted = function(pickle, pickle_key) { + const ptr0 = passStringToWasm0(pickle, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passArray8ToWasm0(pickle_key, wasm.__wbindgen_malloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_session_from_pickle_encrypted(ptr0, len0, ptr1, len1); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_session_has_received_message = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_session_has_received_message(that); + return ret; + }; + + /** + * @param {any} that + * @param {Uint8Array} pickle_key + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_session_pickle_encrypted = function(that, pickle_key) { + const ptr0 = passArray8ToWasm0(pickle_key, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_session_pickle_encrypted(that, ptr0, len0); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_session_session_config = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_session_session_config(that); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_session_session_id = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_session_session_id(that); + return ret; + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_increment_strong_count_RustOpaque_Curve25519PublicKey = function(ptr) { + wasm.rust_arc_increment_strong_count_RustOpaque_Curve25519PublicKey(ptr); + }; + + /** + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_pk_decryption_new = function() { + const ret = wasm.wire__crate__bindings__vodozemac_pk_decryption_new(); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_pk_decryption_private_key = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_pk_decryption_private_key(that); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_pk_decryption_public_key = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_pk_decryption_public_key(that); + return ret; + }; + + /** + * @param {any} that + * @param {Uint8Array} pickle_key + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_pk_decryption_to_libolm_pickle = function(that, pickle_key) { + const ptr0 = passArray8ToWasm0(pickle_key, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_pk_decryption_to_libolm_pickle(that, ptr0, len0); + return ret; + }; + + /** + * @param {any} that + * @param {string} message + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_pk_encryption_encrypt = function(that, message) { + const ptr0 = passStringToWasm0(message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_pk_encryption_encrypt(that, ptr0, len0); + return ret; + }; + + /** + * @param {any} public_key + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_pk_encryption_from_key = function(public_key) { + const ret = wasm.wire__crate__bindings__vodozemac_pk_encryption_from_key(public_key); + return ret; + }; + + /** + * @param {string} ciphertext + * @param {string} mac + * @param {string} ephemeral_key + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_pk_message_from_base64 = function(ciphertext, mac, ephemeral_key) { + const ptr0 = passStringToWasm0(ciphertext, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(mac, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ptr2 = passStringToWasm0(ephemeral_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len2 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_pk_message_from_base64(ptr0, len0, ptr1, len1, ptr2, len2); + return ret; + }; + + /** + * @param {Uint8Array} ciphertext + * @param {Uint8Array} mac + * @param {any} ephemeral_key + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_pk_message_new = function(ciphertext, mac, ephemeral_key) { + const ptr0 = passArray8ToWasm0(ciphertext, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passArray8ToWasm0(mac, wasm.__wbindgen_malloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_pk_message_new(ptr0, len0, ptr1, len1, ephemeral_key); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_pk_message_to_base64 = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_pk_message_to_base64(that); + return ret; + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_decrement_strong_count_RustOpaque_Curve25519PublicKey = function(ptr) { + wasm.rust_arc_decrement_strong_count_RustOpaque_Curve25519PublicKey(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_increment_strong_count_RustOpaque_Ed25519PublicKey = function(ptr) { + wasm.rust_arc_increment_strong_count_RustOpaque_Curve25519PublicKey(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_decrement_strong_count_RustOpaque_Ed25519PublicKey = function(ptr) { + wasm.rust_arc_decrement_strong_count_RustOpaque_Ed25519PublicKey(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_decrement_strong_count_RustOpaque_OlmSessionConfig = function(ptr) { + wasm.rust_arc_decrement_strong_count_RustOpaque_OlmSessionConfig(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_increment_strong_count_RustOpaque_PkDecryption = function(ptr) { + wasm.rust_arc_increment_strong_count_RustOpaque_Curve25519PublicKey(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_decrement_strong_count_RustOpaque_PkDecryption = function(ptr) { + wasm.rust_arc_decrement_strong_count_RustOpaque_PkDecryption(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_increment_strong_count_RustOpaque_PkEncryption = function(ptr) { + wasm.rust_arc_increment_strong_count_RustOpaque_Curve25519PublicKey(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_decrement_strong_count_RustOpaque_PkEncryption = function(ptr) { + wasm.rust_arc_decrement_strong_count_RustOpaque_PkEncryption(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_increment_strong_count_RustOpaque_RwLockGroupSession = function(ptr) { + wasm.rust_arc_increment_strong_count_RustOpaque_Curve25519PublicKey(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_decrement_strong_count_RustOpaque_RwLockGroupSession = function(ptr) { + wasm.rust_arc_decrement_strong_count_RustOpaque_RwLockGroupSession(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_increment_strong_count_RustOpaque_RwLockInboundGroupSession = function(ptr) { + wasm.rust_arc_increment_strong_count_RustOpaque_Curve25519PublicKey(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_increment_strong_count_RustOpaque_Ed25519Signature = function(ptr) { + wasm.rust_arc_increment_strong_count_RustOpaque_Curve25519PublicKey(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_decrement_strong_count_RustOpaque_Ed25519Signature = function(ptr) { + wasm.rust_arc_decrement_strong_count_RustOpaque_Ed25519Signature(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_increment_strong_count_RustOpaque_EstablishedSas = function(ptr) { + wasm.rust_arc_increment_strong_count_RustOpaque_Curve25519PublicKey(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_decrement_strong_count_RustOpaque_EstablishedSas = function(ptr) { + wasm.rust_arc_decrement_strong_count_RustOpaque_EstablishedSas(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_increment_strong_count_RustOpaque_MegolmSessionConfig = function(ptr) { + wasm.rust_arc_increment_strong_count_RustOpaque_Curve25519PublicKey(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_decrement_strong_count_RustOpaque_MegolmSessionConfig = function(ptr) { + wasm.rust_arc_decrement_strong_count_RustOpaque_MegolmSessionConfig(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_increment_strong_count_RustOpaque_OlmMessage = function(ptr) { + wasm.rust_arc_increment_strong_count_RustOpaque_Curve25519PublicKey(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_decrement_strong_count_RustOpaque_OlmMessage = function(ptr) { + wasm.rust_arc_decrement_strong_count_RustOpaque_OlmMessage(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_increment_strong_count_RustOpaque_OlmSessionConfig = function(ptr) { + wasm.rust_arc_increment_strong_count_RustOpaque_Curve25519PublicKey(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_decrement_strong_count_RustOpaque_RwLockInboundGroupSession = function(ptr) { + wasm.rust_arc_decrement_strong_count_RustOpaque_RwLockInboundGroupSession(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_increment_strong_count_RustOpaque_RwLockSession = function(ptr) { + wasm.rust_arc_increment_strong_count_RustOpaque_Curve25519PublicKey(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_decrement_strong_count_RustOpaque_RwLockSession = function(ptr) { + wasm.rust_arc_decrement_strong_count_RustOpaque_RwLockSession(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPkSigning = function(ptr) { + wasm.rust_arc_increment_strong_count_RustOpaque_Curve25519PublicKey(ptr); + }; + + /** + * @param {number} func_id + * @param {any} ptr_ + * @param {number} rust_vec_len_ + * @param {number} data_len_ + * @returns {any} + */ + __exports.frb_pde_ffi_dispatcher_sync = function(func_id, ptr_, rust_vec_len_, data_len_) { + const ret = wasm.frb_pde_ffi_dispatcher_sync(func_id, ptr_, rust_vec_len_, data_len_); + return ret; + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPkSigning = function(ptr) { + wasm.rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerPkSigning(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVodozemacSas = function(ptr) { + wasm.rust_arc_increment_strong_count_RustOpaque_Curve25519PublicKey(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVodozemacSas = function(ptr) { + wasm.rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVodozemacSas(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_increment_strong_count_RustOpaque_stdsyncRwLockAccount = function(ptr) { + wasm.rust_arc_increment_strong_count_RustOpaque_Curve25519PublicKey(ptr); + }; + + /** + * @param {number} ptr + */ + __exports.rust_arc_decrement_strong_count_RustOpaque_stdsyncRwLockAccount = function(ptr) { + wasm.rust_arc_decrement_strong_count_RustOpaque_stdsyncRwLockAccount(ptr); + }; + + /** + * @param {number} call_id + * @param {any} ptr_ + * @param {number} rust_vec_len_ + * @param {number} data_len_ + */ + __exports.frb_dart_fn_deliver_output = function(call_id, ptr_, rust_vec_len_, data_len_) { + wasm.frb_dart_fn_deliver_output(call_id, ptr_, rust_vec_len_, data_len_); + }; + + /** + * @param {Uint8Array} input + * @param {Uint8Array} key + * @param {Uint8Array} iv + * @returns {any} + */ + __exports.wire__crate__bindings__aes_ctr = function(input, key, iv) { + const ptr0 = passArray8ToWasm0(input, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passArray8ToWasm0(key, wasm.__wbindgen_malloc); + const len1 = WASM_VECTOR_LEN; + const ptr2 = passArray8ToWasm0(iv, wasm.__wbindgen_malloc); + const len2 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__aes_ctr(ptr0, len0, ptr1, len1, ptr2, len2); + return ret; + }; + + /** + * @param {Uint8Array} key + * @param {Uint8Array} input + * @returns {any} + */ + __exports.wire__crate__bindings__hmac = function(key, input) { + const ptr0 = passArray8ToWasm0(key, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passArray8ToWasm0(input, wasm.__wbindgen_malloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__hmac(ptr0, len0, ptr1, len1); + return ret; + }; + + /** + * @param {Uint8Array} passphrase + * @param {Uint8Array} salt + * @param {number} iterations + * @returns {any} + */ + __exports.wire__crate__bindings__pbkdf2 = function(passphrase, salt, iterations) { + const ptr0 = passArray8ToWasm0(passphrase, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passArray8ToWasm0(salt, wasm.__wbindgen_malloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__pbkdf2(ptr0, len0, ptr1, len1, iterations); + return ret; + }; + + /** + * @param {Uint8Array} input + * @returns {any} + */ + __exports.wire__crate__bindings__sha256 = function(input) { + const ptr0 = passArray8ToWasm0(input, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__sha256(ptr0, len0); + return ret; + }; + + /** + * @param {Uint8Array} input + * @returns {any} + */ + __exports.wire__crate__bindings__sha512 = function(input) { + const ptr0 = passArray8ToWasm0(input, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__sha512(ptr0, len0); + return ret; + }; + + /** + * @param {any} that + * @param {any} config + * @param {any} their_identity_key + * @param {string} pre_key_message_base64 + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_account_create_inbound_session = function(that, config, their_identity_key, pre_key_message_base64) { + const ptr0 = passStringToWasm0(pre_key_message_base64, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__vodozemac_account_create_inbound_session(that, config, their_identity_key, ptr0, len0); + return ret; + }; + + /** + * @param {any} that + * @param {any} config + * @param {any} identity_key + * @param {any} one_time_key + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_account_create_outbound_session = function(that, config, identity_key, one_time_key) { + const ret = wasm.wire__crate__bindings__vodozemac_account_create_outbound_session(that, config, identity_key, one_time_key); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_account_curve25519_key = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_account_curve25519_key(that); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__vodozemac_account_ed25519_key = function(that) { + const ret = wasm.wire__crate__bindings__vodozemac_account_ed25519_key(that); + return ret; + }; + + /** + * @param {string} key + * @returns {any} + */ + __exports.wire__crate__bindings__PkSigning_from_secret_key = function(key) { + const ptr0 = passStringToWasm0(key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__PkSigning_from_secret_key(ptr0, len0); + return ret; + }; + + /** + * @returns {any} + */ + __exports.wire__crate__bindings__PkSigning_new = function() { + const ret = wasm.wire__crate__bindings__PkSigning_new(); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__PkSigning_public_key = function(that) { + const ret = wasm.wire__crate__bindings__PkSigning_public_key(that); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__PkSigning_secret_key = function(that) { + const ret = wasm.wire__crate__bindings__PkSigning_secret_key(that); + return ret; + }; + + /** + * @param {any} that + * @param {string} message + * @returns {any} + */ + __exports.wire__crate__bindings__PkSigning_sign = function(that, message) { + const ptr0 = passStringToWasm0(message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__PkSigning_sign(that, ptr0, len0); + return ret; + }; + + /** + * @param {any} that + * @param {string} other_public_key + * @returns {any} + */ + __exports.wire__crate__bindings__VodozemacSas_establish_sas_secret = function(that, other_public_key) { + const ptr0 = passStringToWasm0(other_public_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.wire__crate__bindings__VodozemacSas_establish_sas_secret(that, ptr0, len0); + return ret; + }; + + /** + * @returns {any} + */ + __exports.wire__crate__bindings__VodozemacSas_new = function() { + const ret = wasm.wire__crate__bindings__VodozemacSas_new(); + return ret; + }; + + /** + * @param {any} that + * @returns {any} + */ + __exports.wire__crate__bindings__VodozemacSas_public_key = function(that) { + const ret = wasm.wire__crate__bindings__VodozemacSas_public_key(that); + return ret; + }; + + /** + * # Safety + * + * This should never be called manually. + * @param {any} handle + * @param {any} dart_handler_port + * @returns {number} + */ + __exports.frb_dart_opaque_dart2rust_encode = function(handle, dart_handler_port) { + const ret = wasm.frb_dart_opaque_dart2rust_encode(handle, dart_handler_port); + return ret >>> 0; + }; + + /** + * @param {number} ptr + */ + __exports.frb_dart_opaque_drop_thread_box_persistent_handle = function(ptr) { + wasm.frb_dart_opaque_drop_thread_box_persistent_handle(ptr); + }; + + /** + * @param {number} ptr + * @returns {any} + */ + __exports.frb_dart_opaque_rust2dart_decode = function(ptr) { + const ret = wasm.frb_dart_opaque_rust2dart_decode(ptr); + return ret; + }; + + __exports.wasm_start_callback = function() { + wasm.wasm_start_callback(); + }; + + function passArrayJsValueToWasm0(array, malloc) { + const ptr = malloc(array.length * 4, 4) >>> 0; + for (let i = 0; i < array.length; i++) { + const add = addToExternrefTable0(array[i]); + getDataViewMemory0().setUint32(ptr + 4 * i, add, true); + } + WASM_VECTOR_LEN = array.length; + return ptr; + } + + function takeFromExternrefTable0(idx) { + const value = wasm.__wbindgen_export_2.get(idx); + wasm.__externref_table_dealloc(idx); + return value; + } + /** + * ## Safety + * This function reclaims a raw pointer created by [`TransferClosure`], and therefore + * should **only** be used in conjunction with it. + * Furthermore, the WASM module in the worker must have been initialized with the shared + * memory from the host JS scope. + * @param {number} payload + * @param {any[]} transfer + */ + __exports.receive_transfer_closure = function(payload, transfer) { + const ptr0 = passArrayJsValueToWasm0(transfer, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.receive_transfer_closure(payload, ptr0, len0); + if (ret[1]) { + throw takeFromExternrefTable0(ret[0]); + } + }; + + function __wbg_adapter_40(arg0, arg1, arg2) { + wasm.closure616_externref_shim(arg0, arg1, arg2); + } + + function __wbg_adapter_43(arg0, arg1) { + wasm._dyn_core_df1db01a77114a69___ops__function__FnMut_____Output______as_wasm_bindgen_e82d51b24581a976___closure__WasmClosure___describe__invoke______(arg0, arg1); + } + + const WorkerPoolFinalization = (typeof FinalizationRegistry === 'undefined') + ? { register: () => {}, unregister: () => {} } + : new FinalizationRegistry(ptr => wasm.__wbg_workerpool_free(ptr >>> 0, 1)); + + class WorkerPool { + + static __wrap(ptr) { + ptr = ptr >>> 0; + const obj = Object.create(WorkerPool.prototype); + obj.__wbg_ptr = ptr; + WorkerPoolFinalization.register(obj, obj.__wbg_ptr, obj); + return obj; + } + + __destroy_into_raw() { + const ptr = this.__wbg_ptr; + this.__wbg_ptr = 0; + WorkerPoolFinalization.unregister(this); + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_workerpool_free(ptr, 0); + } + /** + * @param {number | null} [initial] + * @param {string | null} [script_src] + * @param {string | null} [worker_js_preamble] + * @param {string | null} [wasm_bindgen_name] + * @returns {WorkerPool} + */ + static new(initial, script_src, worker_js_preamble, wasm_bindgen_name) { + var ptr0 = isLikeNone(script_src) ? 0 : passStringToWasm0(script_src, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len0 = WASM_VECTOR_LEN; + var ptr1 = isLikeNone(worker_js_preamble) ? 0 : passStringToWasm0(worker_js_preamble, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len1 = WASM_VECTOR_LEN; + var ptr2 = isLikeNone(wasm_bindgen_name) ? 0 : passStringToWasm0(wasm_bindgen_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len2 = WASM_VECTOR_LEN; + const ret = wasm.workerpool_new(isLikeNone(initial) ? 0x100000001 : (initial) >>> 0, ptr0, len0, ptr1, len1, ptr2, len2); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return WorkerPool.__wrap(ret[0]); + } + /** + * Creates a new `WorkerPool` which immediately creates `initial` workers. + * + * The pool created here can be used over a long period of time, and it + * will be initially primed with `initial` workers. Currently workers are + * never released or gc'd until the whole pool is destroyed. + * + * # Errors + * + * Returns any error that may happen while a JS web worker is created and a + * message is sent to it. + * @param {number} initial + * @param {string} script_src + * @param {string} worker_js_preamble + * @param {string} wasm_bindgen_name + */ + constructor(initial, script_src, worker_js_preamble, wasm_bindgen_name) { + const ptr0 = passStringToWasm0(script_src, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(worker_js_preamble, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ptr2 = passStringToWasm0(wasm_bindgen_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len2 = WASM_VECTOR_LEN; + const ret = wasm.workerpool_new_raw(initial, ptr0, len0, ptr1, len1, ptr2, len2); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + this.__wbg_ptr = ret[0] >>> 0; + WorkerPoolFinalization.register(this, this.__wbg_ptr, this); + return this; + } + } + __exports.WorkerPool = WorkerPool; + + async function __wbg_load(module, imports) { + if (typeof Response === 'function' && module instanceof Response) { + if (typeof WebAssembly.instantiateStreaming === 'function') { + try { + return await WebAssembly.instantiateStreaming(module, imports); + + } catch (e) { + if (module.headers.get('Content-Type') != 'application/wasm') { + console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e); + + } else { + throw e; + } + } + } + + const bytes = await module.arrayBuffer(); + return await WebAssembly.instantiate(bytes, imports); + + } else { + const instance = await WebAssembly.instantiate(module, imports); + + if (instance instanceof WebAssembly.Instance) { + return { instance, module }; + + } else { + return instance; + } + } + } + + function __wbg_get_imports() { + const imports = {}; + imports.wbg = {}; + imports.wbg.__wbg_buffer_609cc3eee51ed158 = function(arg0) { + const ret = arg0.buffer; + return ret; + }; + imports.wbg.__wbg_call_672a4d21634d4a24 = function() { return handleError(function (arg0, arg1) { + const ret = arg0.call(arg1); + return ret; + }, arguments) }; + imports.wbg.__wbg_call_7cccdd69e0791ae2 = function() { return handleError(function (arg0, arg1, arg2) { + const ret = arg0.call(arg1, arg2); + return ret; + }, arguments) }; + imports.wbg.__wbg_close_2682e96ed490a0af = function() { return handleError(function (arg0) { + arg0.close(); + }, arguments) }; + imports.wbg.__wbg_createObjectURL_6e98d2f9c7bd9764 = function() { return handleError(function (arg0, arg1) { + const ret = URL.createObjectURL(arg1); + const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); + }, arguments) }; + imports.wbg.__wbg_crypto_ed58b8e10a292839 = function(arg0) { + const ret = arg0.crypto; + return ret; + }; + imports.wbg.__wbg_data_432d9c3df2630942 = function(arg0) { + const ret = arg0.data; + return ret; + }; + imports.wbg.__wbg_error_7534b8e9a36f1ab4 = function(arg0, arg1) { + let deferred0_0; + let deferred0_1; + try { + deferred0_0 = arg0; + deferred0_1 = arg1; + console.error(getStringFromWasm0(arg0, arg1)); + } finally { + wasm.__wbindgen_free(deferred0_0, deferred0_1, 1); + } + }; + imports.wbg.__wbg_error_7bac4210a6321147 = function(arg0, arg1) { + console.error(getStringFromWasm0(arg0, arg1)); + }; + imports.wbg.__wbg_eval_e10dc02e9547f640 = function() { return handleError(function (arg0, arg1) { + const ret = eval(getStringFromWasm0(arg0, arg1)); + return ret; + }, arguments) }; + imports.wbg.__wbg_getRandomValues_bcb4912f16000dc4 = function() { return handleError(function (arg0, arg1) { + arg0.getRandomValues(arg1); + }, arguments) }; + imports.wbg.__wbg_get_67b2ba62fc30de12 = function() { return handleError(function (arg0, arg1) { + const ret = Reflect.get(arg0, arg1); + return ret; + }, arguments) }; + imports.wbg.__wbg_get_b9b93047fe3cf45b = function(arg0, arg1) { + const ret = arg0[arg1 >>> 0]; + return ret; + }; + imports.wbg.__wbg_instanceof_BroadcastChannel_102292ddffa430f7 = function(arg0) { + let result; + try { + result = arg0 instanceof BroadcastChannel; + } catch (_) { + result = false; + } + const ret = result; + return ret; + }; + imports.wbg.__wbg_instanceof_DedicatedWorkerGlobalScope_a688e81380e34e02 = function(arg0) { + let result; + try { + result = arg0 instanceof DedicatedWorkerGlobalScope; + } catch (_) { + result = false; + } + const ret = result; + return ret; + }; + imports.wbg.__wbg_instanceof_ErrorEvent_24a579ed4d838fe9 = function(arg0) { + let result; + try { + result = arg0 instanceof ErrorEvent; + } catch (_) { + result = false; + } + const ret = result; + return ret; + }; + imports.wbg.__wbg_instanceof_MessageEvent_2e467ced55f682c9 = function(arg0) { + let result; + try { + result = arg0 instanceof MessageEvent; + } catch (_) { + result = false; + } + const ret = result; + return ret; + }; + imports.wbg.__wbg_isArray_a1eab7e0d067391b = function(arg0) { + const ret = Array.isArray(arg0); + return ret; + }; + imports.wbg.__wbg_length_a446193dc22c12f8 = function(arg0) { + const ret = arg0.length; + return ret; + }; + imports.wbg.__wbg_length_e2d2a49132c1b256 = function(arg0) { + const ret = arg0.length; + return ret; + }; + imports.wbg.__wbg_message_d1685a448ba00178 = function(arg0, arg1) { + const ret = arg1.message; + const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); + }; + imports.wbg.__wbg_msCrypto_0a36e2ec3a343d26 = function(arg0) { + const ret = arg0.msCrypto; + return ret; + }; + imports.wbg.__wbg_name_235b92ab39fceaf8 = function(arg0, arg1) { + const ret = arg1.name; + const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); + }; + imports.wbg.__wbg_new_405e22f390576ce2 = function() { + const ret = new Object(); + return ret; + }; + imports.wbg.__wbg_new_78feb108b6472713 = function() { + const ret = new Array(); + return ret; + }; + imports.wbg.__wbg_new_7f19378ebfdc87d5 = function() { return handleError(function (arg0, arg1) { + const ret = new BroadcastChannel(getStringFromWasm0(arg0, arg1)); + return ret; + }, arguments) }; + imports.wbg.__wbg_new_8a6f238a6ece86ea = function() { + const ret = new Error(); + return ret; + }; + imports.wbg.__wbg_new_a12002a7f91c75be = function(arg0) { + const ret = new Uint8Array(arg0); + return ret; + }; + imports.wbg.__wbg_new_b1a33e5095abf678 = function() { return handleError(function (arg0, arg1) { + const ret = new Worker(getStringFromWasm0(arg0, arg1)); + return ret; + }, arguments) }; + imports.wbg.__wbg_newnoargs_105ed471475aaf50 = function(arg0, arg1) { + const ret = new Function(getStringFromWasm0(arg0, arg1)); + return ret; + }; + imports.wbg.__wbg_newwithblobsequenceandoptions_1db4479a1a2d4229 = function() { return handleError(function (arg0, arg1) { + const ret = new Blob(arg0, arg1); + return ret; + }, arguments) }; + imports.wbg.__wbg_newwithbyteoffsetandlength_d97e637ebe145a9a = function(arg0, arg1, arg2) { + const ret = new Uint8Array(arg0, arg1 >>> 0, arg2 >>> 0); + return ret; + }; + imports.wbg.__wbg_newwithlength_a381634e90c276d4 = function(arg0) { + const ret = new Uint8Array(arg0 >>> 0); + return ret; + }; + imports.wbg.__wbg_node_02999533c4ea02e3 = function(arg0) { + const ret = arg0.node; + return ret; + }; + imports.wbg.__wbg_of_66b3ee656cbd962b = function(arg0, arg1) { + const ret = Array.of(arg0, arg1); + return ret; + }; + imports.wbg.__wbg_postMessage_423389be2de2976a = function() { return handleError(function (arg0, arg1) { + arg0.postMessage(arg1); + }, arguments) }; + imports.wbg.__wbg_postMessage_6edafa8f7b9c2f52 = function() { return handleError(function (arg0, arg1) { + arg0.postMessage(arg1); + }, arguments) }; + imports.wbg.__wbg_postMessage_83a8d58d3fcb6c13 = function() { return handleError(function (arg0, arg1) { + arg0.postMessage(arg1); + }, arguments) }; + imports.wbg.__wbg_process_5c1d670bc53614b8 = function(arg0) { + const ret = arg0.process; + return ret; + }; + imports.wbg.__wbg_push_737cfc8c1432c2c6 = function(arg0, arg1) { + const ret = arg0.push(arg1); + return ret; + }; + imports.wbg.__wbg_randomFillSync_ab2cfe79ebbf2740 = function() { return handleError(function (arg0, arg1) { + arg0.randomFillSync(arg1); + }, arguments) }; + imports.wbg.__wbg_require_79b1e9274cde3c87 = function() { return handleError(function () { + const ret = module.require; + return ret; + }, arguments) }; + imports.wbg.__wbg_set_65595bdd868b3009 = function(arg0, arg1, arg2) { + arg0.set(arg1, arg2 >>> 0); + }; + imports.wbg.__wbg_setonerror_57eeef5feb01fe7a = function(arg0, arg1) { + arg0.onerror = arg1; + }; + imports.wbg.__wbg_setonmessage_5a885b16bdc6dca6 = function(arg0, arg1) { + arg0.onmessage = arg1; + }; + imports.wbg.__wbg_settype_39ed370d3edd403c = function(arg0, arg1, arg2) { + arg0.type = getStringFromWasm0(arg1, arg2); + }; + imports.wbg.__wbg_stack_0ed75d68575b0f3c = function(arg0, arg1) { + const ret = arg1.stack; + const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); + }; + imports.wbg.__wbg_static_accessor_GLOBAL_88a902d13a557d07 = function() { + const ret = typeof global === 'undefined' ? null : global; + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }; + imports.wbg.__wbg_static_accessor_GLOBAL_THIS_56578be7e9f832b0 = function() { + const ret = typeof globalThis === 'undefined' ? null : globalThis; + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }; + imports.wbg.__wbg_static_accessor_SELF_37c5d418e4bf5819 = function() { + const ret = typeof self === 'undefined' ? null : self; + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }; + imports.wbg.__wbg_static_accessor_WINDOW_5de37043a91a9c40 = function() { + const ret = typeof window === 'undefined' ? null : window; + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }; + imports.wbg.__wbg_subarray_aa9065fa9dc5df96 = function(arg0, arg1, arg2) { + const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0); + return ret; + }; + imports.wbg.__wbg_versions_c71aa1626a93e0a1 = function(arg0) { + const ret = arg0.versions; + return ret; + }; + imports.wbg.__wbindgen_bigint_from_u64 = function(arg0) { + const ret = BigInt.asUintN(64, arg0); + return ret; + }; + imports.wbg.__wbindgen_bigint_get_as_i64 = function(arg0, arg1) { + const v = arg1; + const ret = typeof(v) === 'bigint' ? v : undefined; + getDataViewMemory0().setBigInt64(arg0 + 8 * 1, isLikeNone(ret) ? BigInt(0) : ret, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true); + }; + imports.wbg.__wbindgen_cb_drop = function(arg0) { + const obj = arg0.original; + if (obj.cnt-- == 1) { + obj.a = 0; + return true; + } + const ret = false; + return ret; + }; + imports.wbg.__wbindgen_closure_wrapper1799 = function(arg0, arg1, arg2) { + const ret = makeMutClosure(arg0, arg1, 617, __wbg_adapter_40); + return ret; + }; + imports.wbg.__wbindgen_closure_wrapper1801 = function(arg0, arg1, arg2) { + const ret = makeMutClosure(arg0, arg1, 617, __wbg_adapter_43); + return ret; + }; + imports.wbg.__wbindgen_debug_string = function(arg0, arg1) { + const ret = debugString(arg1); + const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); + }; + imports.wbg.__wbindgen_init_externref_table = function() { + const table = wasm.__wbindgen_export_2; + const offset = table.grow(4); + table.set(0, undefined); + table.set(offset + 0, undefined); + table.set(offset + 1, null); + table.set(offset + 2, true); + table.set(offset + 3, false); + ; + }; + imports.wbg.__wbindgen_is_function = function(arg0) { + const ret = typeof(arg0) === 'function'; + return ret; + }; + imports.wbg.__wbindgen_is_object = function(arg0) { + const val = arg0; + const ret = typeof(val) === 'object' && val !== null; + return ret; + }; + imports.wbg.__wbindgen_is_string = function(arg0) { + const ret = typeof(arg0) === 'string'; + return ret; + }; + imports.wbg.__wbindgen_is_undefined = function(arg0) { + const ret = arg0 === undefined; + return ret; + }; + imports.wbg.__wbindgen_jsval_eq = function(arg0, arg1) { + const ret = arg0 === arg1; + return ret; + }; + imports.wbg.__wbindgen_memory = function() { + const ret = wasm.memory; + return ret; + }; + imports.wbg.__wbindgen_module = function() { + const ret = __wbg_init.__wbindgen_wasm_module; + return ret; + }; + imports.wbg.__wbindgen_number_get = function(arg0, arg1) { + const obj = arg1; + const ret = typeof(obj) === 'number' ? obj : undefined; + getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true); + }; + imports.wbg.__wbindgen_number_new = function(arg0) { + const ret = arg0; + return ret; + }; + imports.wbg.__wbindgen_string_get = function(arg0, arg1) { + const obj = arg1; + const ret = typeof(obj) === 'string' ? obj : undefined; + var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + var len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); + }; + imports.wbg.__wbindgen_string_new = function(arg0, arg1) { + const ret = getStringFromWasm0(arg0, arg1); + return ret; + }; + imports.wbg.__wbindgen_throw = function(arg0, arg1) { + throw new Error(getStringFromWasm0(arg0, arg1)); + }; + + return imports; + } + + function __wbg_init_memory(imports, memory) { + imports.wbg.memory = memory || new WebAssembly.Memory({initial:19,maximum:16384,shared:true}); + } + + function __wbg_finalize_init(instance, module, thread_stack_size) { + wasm = instance.exports; + __wbg_init.__wbindgen_wasm_module = module; + cachedDataViewMemory0 = null; + cachedUint8ArrayMemory0 = null; + + if (typeof thread_stack_size !== 'undefined' && (typeof thread_stack_size !== 'number' || thread_stack_size === 0 || thread_stack_size % 65536 !== 0)) { throw 'invalid stack size' } + wasm.__wbindgen_start(thread_stack_size); + return wasm; + } + + function initSync(module, memory) { + if (wasm !== undefined) return wasm; + + let thread_stack_size + if (typeof module !== 'undefined') { + if (Object.getPrototypeOf(module) === Object.prototype) { + ({module, memory, thread_stack_size} = module) + } else { + console.warn('using deprecated parameters for `initSync()`; pass a single object instead') + } + } + + const imports = __wbg_get_imports(); + + __wbg_init_memory(imports, memory); + + if (!(module instanceof WebAssembly.Module)) { + module = new WebAssembly.Module(module); + } + + const instance = new WebAssembly.Instance(module, imports); + + return __wbg_finalize_init(instance, module, thread_stack_size); + } + + async function __wbg_init(module_or_path, memory) { + if (wasm !== undefined) return wasm; + + let thread_stack_size + if (typeof module_or_path !== 'undefined') { + if (Object.getPrototypeOf(module_or_path) === Object.prototype) { + ({module_or_path, memory, thread_stack_size} = module_or_path) + } else { + console.warn('using deprecated parameters for the initialization function; pass a single object instead') + } + } + + if (typeof module_or_path === 'undefined' && typeof script_src !== 'undefined') { + module_or_path = script_src.replace(/\.js$/, '_bg.wasm'); + } + const imports = __wbg_get_imports(); + + if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) { + module_or_path = fetch(module_or_path); + } + + __wbg_init_memory(imports, memory); + + const { instance, module } = await __wbg_load(await module_or_path, imports); + + return __wbg_finalize_init(instance, module, thread_stack_size); + } + + wasm_bindgen = Object.assign(__wbg_init, { initSync }, __exports); + +})(); diff --git a/assets/vodozemac/0.8.1/vodozemac_bindings_dart_bg.wasm b/assets/vodozemac/0.8.1/vodozemac_bindings_dart_bg.wasm new file mode 100644 index 0000000000000000000000000000000000000000..769409aac9d882e68e4e8df615df51c93f6e981b GIT binary patch literal 829362 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

    mTw%qxYkw}lMYeDwXF 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 literal 0 HcmV?d00001 diff --git a/config.sample.json b/config.sample.json new file mode 100644 index 0000000..417f0d1 --- /dev/null +++ b/config.sample.json @@ -0,0 +1,32 @@ +{ + "applicationName": "TatuChat", + "defaultHomeserver": "https://matrix.weltonmoura.com.br", + "presetHomeserver": "https://matrix.weltonmoura.com.br", + "welcomeText": "", + "privacyUrl": "https://github.com/krille-chan/fluffychat/blob/main/PRIVACY.md", + "audioRecordingNumChannels": 1, + "audioRecordingAutoGain": true, + "audioRecordingEchoCancel": false, + "audioRecordingNoiseSuppress": true, + "audioRecordingBitRate": 64000, + "audioRecordingSamplingRate": 44100, + "renderHtml": true, + "fontSizeFactor": 1, + "messagePreviewMaxLines": 128, + "hideRedactedEvents": false, + "hideUnknownEvents": true, + "separateChatTypes": false, + "autoplayImages": true, + "sendTypingNotifications": true, + "sendPublicReadReceipts": true, + "swipeRightToLeftToReply": true, + "sendOnEnter": false, + "showPresences": true, + "displayNavigationRail": false, + "experimentalVoip": false, + "shareKeysWith": "all", + "noEncryptionWarningShown": false, + "displayChatDetailsColumn": false, + "colorSchemeSeedInt": 4278243396, + "enableSoftLogout": false +} \ No newline at end of file diff --git a/dart_dependency_validator.yaml b/dart_dependency_validator.yaml new file mode 100644 index 0000000..0f98720 --- /dev/null +++ b/dart_dependency_validator.yaml @@ -0,0 +1,9 @@ +# SPDX-FileCopyrightText: 2019-Present Christian Kußowski +# SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +ignore: + - handy_window + - sqlcipher_flutter_libs + - media_kit_libs_audio \ No newline at end of file diff --git a/devtools_options.yaml b/devtools_options.yaml new file mode 100644 index 0000000..41bc19d --- /dev/null +++ b/devtools_options.yaml @@ -0,0 +1,8 @@ +# SPDX-FileCopyrightText: 2019-Present Christian Kußowski +# SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +description: This file stores settings for Dart & Flutter DevTools. +documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states +extensions: diff --git a/fastlane/README.md b/fastlane/README.md new file mode 100644 index 0000000..d0dfb8c --- /dev/null +++ b/fastlane/README.md @@ -0,0 +1,10 @@ + + +This directory exists because of the F-Droid build process. F-Droid is using the same directory structure as Fastlane for the app metadata. + +Because F-Droid expects the metadata to be located in the root of the repository we need to have this symlink. diff --git a/fastlane/metadata b/fastlane/metadata new file mode 100644 index 0000000..a4cbd11 --- /dev/null +++ b/fastlane/metadata @@ -0,0 +1 @@ +../android/fastlane/metadata \ No newline at end of file diff --git a/integration_test/.gitignore b/integration_test/.gitignore new file mode 100644 index 0000000..3284fe0 --- /dev/null +++ b/integration_test/.gitignore @@ -0,0 +1,6 @@ +synapse/data/homeserver.db +dendrite/data/server.* +dendrite/data/matrix_key.pem +dendrite/data/logs +dendrite/data/jetstream +dendrite/data/*.db \ No newline at end of file diff --git a/integration_test/data/environment_constants.dart b/integration_test/data/environment_constants.dart new file mode 100644 index 0000000..4636f4f --- /dev/null +++ b/integration_test/data/environment_constants.dart @@ -0,0 +1,19 @@ +const homeserver = String.fromEnvironment( + 'HOMESERVER', + defaultValue: '10.0.2.2', +); +const user1Name = String.fromEnvironment('USER1_NAME', defaultValue: 'alice'); +const user1Pw = String.fromEnvironment( + 'USER1_PW', + defaultValue: 'AliceInWonderland', +); +const user2Name = String.fromEnvironment('USER2_NAME', defaultValue: 'bob'); +const user2Pw = String.fromEnvironment( + 'USER2_PW', + defaultValue: 'JoWirSchaffenDas', +); + +const passphrase1 = String.fromEnvironment( + 'PASSPHRASE_1', + defaultValue: '1234567890aB%', +); diff --git a/integration_test/data/integration_users.env b/integration_test/data/integration_users.env new file mode 100644 index 0000000..455ce84 --- /dev/null +++ b/integration_test/data/integration_users.env @@ -0,0 +1,5 @@ +HOMESERVER=localhost +USER1_NAME=alice +USER1_PW=AliceInWonderland +USER2_NAME=bob +USER2_PW=JoWirSchaffenDas \ No newline at end of file diff --git a/integration_test/flows/auth_flows.dart b/integration_test/flows/auth_flows.dart new file mode 100644 index 0000000..f610b4d --- /dev/null +++ b/integration_test/flows/auth_flows.dart @@ -0,0 +1,75 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/pages/sign_in/view_model/model/public_homeserver_data.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:material_ui/material_ui.dart'; + +import '../data/environment_constants.dart'; +import '../utils/tatu_chat_tester.dart'; + +Future finalLogout(WidgetTester widgetTester) => + widgetTester.startTatuChatTest().then((tester) => tester.logout()); + +extension AuthFlows on TatuChatTester { + Future initCryptoIdentity({String username = user1Name}) async { + final passphrase = userPassphrases[username]; + if (passphrase != null) { + await waitFor('Restore Crypto Identity'); + await enterText(TextField, passphrase); + await tapOn('Unlock'); + } else { + await waitFor('Set Up Crypto Identity'); + await enterText(TextField, passphrase1, index: 0); + await enterText(TextField, passphrase1, index: 1); + await tapOn('Continue'); + await tapOn('Continue'); + userPassphrases[username] = passphrase1; + } + } + + Future login({ + String username = user1Name, + String password = user1Pw, + }) async { + await waitFor('Sign in'); + await tapOn('Sign in'); + await enterText(TextField, 'http://$homeserver', index: 0); + await tapOn(RadioListTile, index: 0); + await tapOn('Continue'); + await waitFor('Log in to http://$homeserver'); + await enterText(TextField, username, index: 0); + await enterText(TextField, password, index: 1); + await tapOn('Login'); + } + + Future logout() async { + await ensureLoggedIn(); + await tapOn(Key('accounts_and_settings_buttons')); + await tapOn('Settings'); + await scrollUntilVisible('Logout'); + await tapOn('Logout'); + await tapOn(Key('ok_cancel_alert_dialog_ok_button')); + await waitFor('Sign in'); + } + + Future skipNoNotificationsDialog() async { + if (await isVisible('Push notifications not available')) { + await tapOn('Do not show again'); + } + } + + static final Map userPassphrases = {}; + + Future ensureLoggedIn() async { + if (await isVisible('Sign in') == false) return false; + + await login(); + await initCryptoIdentity(); + + await skipNoNotificationsDialog(); + return true; + } +} diff --git a/integration_test/flows/basic_messaging.dart b/integration_test/flows/basic_messaging.dart new file mode 100644 index 0000000..c83fb91 --- /dev/null +++ b/integration_test/flows/basic_messaging.dart @@ -0,0 +1,29 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:flutter_test/flutter_test.dart'; +import 'package:material_ui/material_ui.dart'; + +import '../utils/tatu_chat_tester.dart'; +import 'auth_flows.dart'; +import 'chat_flows.dart'; + +Future basicMessaging(WidgetTester widgetTester) => widgetTester + .startTatuChatTest() + .then((tester) => tester._basicMessaging()); + +extension on TatuChatTester { + Future _basicMessaging() async { + await ensureLoggedIn(); + await ensureGroupChatCreated(); + + await tapOn(ChatFlows.groupChatName); + const testMessage = 'Hello from integration test!'; + await enterText(Key('chat_input_field'), testMessage); + await tapOn(Key('send_button')); + await waitFor(testMessage); + await goBack(); + } +} diff --git a/integration_test/flows/chat_flows.dart b/integration_test/flows/chat_flows.dart new file mode 100644 index 0000000..1fede9d --- /dev/null +++ b/integration_test/flows/chat_flows.dart @@ -0,0 +1,42 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/pages/chat_list/chat_list.dart'; +import 'package:tatchat/widgets/chat_settings_popup_menu.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:material_ui/material_ui.dart'; + +import '../utils/tatu_chat_tester.dart'; +import 'auth_flows.dart'; + +Future archiveChats(WidgetTester widgetTester) => + widgetTester.startTatuChatTest().then((tester) => tester._archiveChats()); + +extension ChatFlows on TatuChatTester { + static const String groupChatName = 'Test Group 01'; + + Future ensureGroupChatCreated() async { + if (await isVisible(groupChatName)) return; + await tapOn(FloatingActionButton); + await tapOn('Create group'); + await enterText(TextField, groupChatName); + await scrollUntilVisible('Create a group and invite users'); + await tapOn('Create a group and invite users'); + await waitFor('Invite contact'); + await goBack(); + await goBack(); + } + + Future _archiveChats() async { + await ensureLoggedIn(); + await ensureGroupChatCreated(); + await tapOn(groupChatName); + await tapOn(ChatSettingsPopupMenu); + await tapOn('Leave'); + await waitFor('Are you sure?'); + await tapOn('Leave'); + await waitFor(ChatList); + } +} diff --git a/integration_test/flows/login_and_chat_backup.dart b/integration_test/flows/login_and_chat_backup.dart new file mode 100644 index 0000000..3e29dd7 --- /dev/null +++ b/integration_test/flows/login_and_chat_backup.dart @@ -0,0 +1,64 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/widgets/adaptive_dialogs/dialog_text_field.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:material_ui/material_ui.dart'; + +import '../data/environment_constants.dart'; +import '../utils/tatu_chat_tester.dart'; +import 'auth_flows.dart'; + +Future loginAndChatBackup(WidgetTester widgetTester) => widgetTester + .startTatuChatTest() + .then((tester) => tester._loginAndChatBackup()); + +extension on TatuChatTester { + Future _loginAndChatBackup() async { + // Set up with only recovery key: + await login(); + await tapOn('Skip', pumpAndSettle: false); + await tapOn('Store in Android KeyStore'); + await tapOn('Continue'); + await skipNoNotificationsDialog(); + await logout(); + + // Restore with recovery key from keystore: + await login(); + await tapOn('Unlock'); + await skipNoNotificationsDialog(); + await logout(); + + // Reset with passphrase: + await login(); + await waitFor('Restore Crypto Identity'); + await tapOn('Reset account'); + await tapOn('Reset account', index: 1); + await enterText(TextField, passphrase1, index: 0); + await enterText(TextField, passphrase1, index: 1); + await tapOn('Continue', pumpAndSettle: false); + await waitFor('Please enter your password'); + await enterText(DialogTextField, user1Pw, pumpAndSettle: false); + await tapOn('Ok'); + await tapOn('Continue'); + AuthFlows.userPassphrases[user1Name] = passphrase1; + await logout(); + + // Restore with passphrase: + await ensureLoggedIn(); + + // Reset passphrase + await tapOn(Key('accounts_and_settings_buttons')); + await tapOn('Settings'); + await tapOn('Chat backup'); + await tapOn('Reset recovery key'); + await enterText(TextField, passphrase1, index: 0); + await enterText(TextField, passphrase1, index: 1); + await tapOn('Continue', pumpAndSettle: false); + await waitFor('You are ready to start!'); + await tapOn('Continue'); + AuthFlows.userPassphrases[user1Name] = passphrase1; + } +} diff --git a/integration_test/flows/multi_account.dart b/integration_test/flows/multi_account.dart new file mode 100644 index 0000000..1ab254a --- /dev/null +++ b/integration_test/flows/multi_account.dart @@ -0,0 +1,37 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:flutter_test/flutter_test.dart'; +import 'package:material_ui/material_ui.dart'; + +import '../data/environment_constants.dart'; +import '../utils/tatu_chat_tester.dart'; +import 'auth_flows.dart'; + +Future multiAccount(WidgetTester widgetTester) => widgetTester + .startTatuChatTest() + .then((tester) => tester._multiAccountAndNotifications()); + +extension on TatuChatTester { + Future _multiAccountAndNotifications() async { + await ensureLoggedIn(); + + // Login user 2 + await tapOn(Key('accounts_and_settings_buttons')); + await tapOn('Add account'); + await login(username: user2Name, password: user2Pw); + await initCryptoIdentity(username: user2Name); + + // Logout user 2 + await tapOn(Key('accounts_and_settings_buttons')); + await tapOn(user2Name); + await tapOn(Key('accounts_and_settings_buttons')); + await tapOn('Settings'); + await scrollUntilVisible('Logout'); + await tapOn('Logout'); + await tapOn(Key('ok_cancel_alert_dialog_ok_button')); + await waitFor('One of your clients has been logged out'); + } +} diff --git a/integration_test/mobile_test.dart b/integration_test/mobile_test.dart new file mode 100644 index 0000000..a1161e4 --- /dev/null +++ b/integration_test/mobile_test.dart @@ -0,0 +1,25 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:flutter_test/flutter_test.dart'; +import 'package:integration_test/integration_test.dart'; + +import 'flows/auth_flows.dart'; +import 'flows/basic_messaging.dart'; +import 'flows/chat_flows.dart'; +import 'flows/login_and_chat_backup.dart'; +import 'flows/multi_account.dart'; + +void main() { + IntegrationTestWidgetsFlutterBinding.ensureInitialized(); + + group('FluffyChat Integration Tests', () { + testWidgets('Login and logout flow', loginAndChatBackup); + testWidgets('Basic Messaging', basicMessaging); + testWidgets('Multi-Account', multiAccount); + testWidgets('Archive chats', archiveChats); + testWidgets('Final logout', finalLogout); + }); +} diff --git a/integration_test/synapse/data/homeserver.yaml b/integration_test/synapse/data/homeserver.yaml new file mode 100644 index 0000000..b6963fd --- /dev/null +++ b/integration_test/synapse/data/homeserver.yaml @@ -0,0 +1,2781 @@ +# Configuration file for Synapse. +# +# This is a YAML file: see [1] for a quick introduction. Note in particular +# that *indentation is important*: all the elements of a list or dictionary +# should have the same indentation. +# +# [1] https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html + + +## Modules ## + +# Server admins can expand Synapse's functionality with external modules. +# +# See https://matrix-org.github.io/synapse/latest/modules/index.html for more +# documentation on how to configure or create custom modules for Synapse. +# +modules: + #- module: my_super_module.MySuperClass + # config: + # do_thing: true + #- module: my_other_super_module.SomeClass + # config: {} + + +## Server ## + +# The public-facing domain of the server +# +# The server_name name will appear at the end of usernames and room addresses +# created on this server. For example if the server_name was example.com, +# usernames on this server would be in the format @user:example.com +# +# In most cases you should avoid using a matrix specific subdomain such as +# matrix.example.com or synapse.example.com as the server_name for the same +# reasons you wouldn't use user@email.example.com as your email address. +# See https://matrix-org.github.io/synapse/latest/delegate.html +# for information on how to host Synapse on a subdomain while preserving +# a clean server_name. +# +# The server_name cannot be changed later so it is important to +# configure this correctly before you start Synapse. It should be all +# lowercase and may contain an explicit port. +# Examples: matrix.org, localhost:8080 +# +server_name: "localhost" + +# When running as a daemon, the file to store the pid in +# +pid_file: /data/homeserver.pid + +# The absolute URL to the web client which / will redirect to. +# +#web_client_location: https://riot.example.com/ + +# The public-facing base URL that clients use to access this Homeserver (not +# including _matrix/...). This is the same URL a user might enter into the +# 'Custom Homeserver URL' field on their client. If you use Synapse with a +# reverse proxy, this should be the URL to reach Synapse via the proxy. +# Otherwise, it should be the URL to reach Synapse's client HTTP listener (see +# 'listeners' below). +# +# Defaults to 'https:///'. +# +#public_baseurl: https://example.com/ + +# Uncomment the following to tell other servers to send federation traffic on +# port 443. +# +# By default, other servers will try to reach our server on port 8448, which can +# be inconvenient in some environments. +# +# Provided 'https:///' on port 443 is routed to Synapse, this +# option configures Synapse to serve a file at +# 'https:///.well-known/matrix/server'. This will tell other +# servers to send traffic to port 443 instead. +# +# See https://matrix-org.github.io/synapse/latest/delegate.html for more +# information. +# +# Defaults to 'false'. +# +#serve_server_wellknown: true + +# Set the soft limit on the number of file descriptors synapse can use +# Zero is used to indicate synapse should set the soft limit to the +# hard limit. +# +#soft_file_limit: 0 + +# Presence tracking allows users to see the state (e.g online/offline) +# of other local and remote users. +# +presence: + # Uncomment to disable presence tracking on this homeserver. This option + # replaces the previous top-level 'use_presence' option. + # + #enabled: false + +# Whether to require authentication to retrieve profile data (avatars, +# display names) of other users through the client API. Defaults to +# 'false'. Note that profile data is also available via the federation +# API, unless allow_profile_lookup_over_federation is set to false. +# +#require_auth_for_profile_requests: true + +# Uncomment to require a user to share a room with another user in order +# to retrieve their profile information. Only checked on Client-Server +# requests. Profile requests from other servers should be checked by the +# requesting server. Defaults to 'false'. +# +#limit_profile_requests_to_users_who_share_rooms: true + +# Uncomment to prevent a user's profile data from being retrieved and +# displayed in a room until they have joined it. By default, a user's +# profile data is included in an invite event, regardless of the values +# of the above two settings, and whether or not the users share a server. +# Defaults to 'true'. +# +#include_profile_data_on_invite: false + +# If set to 'true', removes the need for authentication to access the server's +# public rooms directory through the client API, meaning that anyone can +# query the room directory. Defaults to 'false'. +# +#allow_public_rooms_without_auth: true + +# If set to 'true', allows any other homeserver to fetch the server's public +# rooms directory via federation. Defaults to 'false'. +# +#allow_public_rooms_over_federation: true + +# The default room version for newly created rooms. +# +# Known room versions are listed here: +# https://spec.matrix.org/latest/rooms/#complete-list-of-room-versions +# +# For example, for room version 1, default_room_version should be set +# to "1". +# +#default_room_version: "9" + +# The GC threshold parameters to pass to `gc.set_threshold`, if defined +# +#gc_thresholds: [700, 10, 10] + +# The minimum time in seconds between each GC for a generation, regardless of +# the GC thresholds. This ensures that we don't do GC too frequently. +# +# A value of `[1s, 10s, 30s]` indicates that a second must pass between consecutive +# generation 0 GCs, etc. +# +# Defaults to `[1s, 10s, 30s]`. +# +#gc_min_interval: [0.5s, 30s, 1m] + +# Set the limit on the returned events in the timeline in the get +# and sync operations. The default value is 100. -1 means no upper limit. +# +# Uncomment the following to increase the limit to 5000. +# +#filter_timeline_limit: 5000 + +# Whether room invites to users on this server should be blocked +# (except those sent by local server admins). The default is False. +# +#block_non_admin_invites: true + +# Room searching +# +# If disabled, new messages will not be indexed for searching and users +# will receive errors when searching for messages. Defaults to enabled. +# +#enable_search: false + +# Prevent outgoing requests from being sent to the following blacklisted IP address +# CIDR ranges. If this option is not specified then it defaults to private IP +# address ranges (see the example below). +# +# The blacklist applies to the outbound requests for federation, identity servers, +# push servers, and for checking key validity for third-party invite events. +# +# (0.0.0.0 and :: are always blacklisted, whether or not they are explicitly +# listed here, since they correspond to unroutable addresses.) +# +# This option replaces federation_ip_range_blacklist in Synapse v1.25.0. +# +# Note: The value is ignored when an HTTP proxy is in use +# +#ip_range_blacklist: +# - '127.0.0.0/8' +# - '10.0.0.0/8' +# - '172.16.0.0/12' +# - '192.168.0.0/16' +# - '100.64.0.0/10' +# - '192.0.0.0/24' +# - '169.254.0.0/16' +# - '192.88.99.0/24' +# - '198.18.0.0/15' +# - '192.0.2.0/24' +# - '198.51.100.0/24' +# - '203.0.113.0/24' +# - '224.0.0.0/4' +# - '::1/128' +# - 'fe80::/10' +# - 'fc00::/7' +# - '2001:db8::/32' +# - 'ff00::/8' +# - 'fec0::/10' + +# List of IP address CIDR ranges that should be allowed for federation, +# identity servers, push servers, and for checking key validity for +# third-party invite events. This is useful for specifying exceptions to +# wide-ranging blacklisted target IP ranges - e.g. for communication with +# a push server only visible in your network. +# +# This whitelist overrides ip_range_blacklist and defaults to an empty +# list. +# +#ip_range_whitelist: +# - '192.168.1.1' + +# List of ports that Synapse should listen on, their purpose and their +# configuration. +# +# Options for each listener include: +# +# port: the TCP port to bind to +# +# bind_addresses: a list of local addresses to listen on. The default is +# 'all local interfaces'. +# +# type: the type of listener. Normally 'http', but other valid options are: +# 'manhole' (see https://matrix-org.github.io/synapse/latest/manhole.html), +# 'metrics' (see https://matrix-org.github.io/synapse/latest/metrics-howto.html), +# 'replication' (see https://matrix-org.github.io/synapse/latest/workers.html). +# +# tls: set to true to enable TLS for this listener. Will use the TLS +# key/cert specified in tls_private_key_path / tls_certificate_path. +# +# x_forwarded: Only valid for an 'http' listener. Set to true to use the +# X-Forwarded-For header as the client IP. Useful when Synapse is +# behind a reverse-proxy. +# +# resources: Only valid for an 'http' listener. A list of resources to host +# on this port. Options for each resource are: +# +# names: a list of names of HTTP resources. See below for a list of +# valid resource names. +# +# compress: set to true to enable HTTP compression for this resource. +# +# additional_resources: Only valid for an 'http' listener. A map of +# additional endpoints which should be loaded via dynamic modules. +# +# Valid resource names are: +# +# client: the client-server API (/_matrix/client), and the synapse admin +# API (/_synapse/admin). Also implies 'media' and 'static'. +# +# consent: user consent forms (/_matrix/consent). +# See https://matrix-org.github.io/synapse/latest/consent_tracking.html. +# +# federation: the server-server API (/_matrix/federation). Also implies +# 'media', 'keys', 'openid' +# +# keys: the key discovery API (/_matrix/keys). +# +# media: the media API (/_matrix/media). +# +# metrics: the metrics interface. +# See https://matrix-org.github.io/synapse/latest/metrics-howto.html. +# +# openid: OpenID authentication. +# +# replication: the HTTP replication API (/_synapse/replication). +# See https://matrix-org.github.io/synapse/latest/workers.html. +# +# static: static resources under synapse/static (/_matrix/static). (Mostly +# useful for 'fallback authentication'.) +# +listeners: + # TLS-enabled listener: for when matrix traffic is sent directly to synapse. + # + # Disabled by default. To enable it, uncomment the following. (Note that you + # will also need to give Synapse a TLS key and certificate: see the TLS section + # below.) + # + #- port: 8448 + # type: http + # tls: true + # resources: + # - names: [client, federation] + + # Unsecure HTTP listener: for when matrix traffic passes through a reverse proxy + # that unwraps TLS. + # + # If you plan to use a reverse proxy, please see + # https://matrix-org.github.io/synapse/latest/reverse_proxy.html. + # + - port: 80 + tls: false + type: http + x_forwarded: false + + resources: + - names: [client, federation] + compress: false + + # example additional_resources: + # + #additional_resources: + # "/_matrix/my/custom/endpoint": + # module: my_module.CustomRequestHandler + # config: {} + + # Turn on the twisted ssh manhole service on localhost on the given + # port. + # + #- port: 9000 + # bind_addresses: ['::1', '127.0.0.1'] + # type: manhole + +# Connection settings for the manhole +# +manhole_settings: + # The username for the manhole. This defaults to 'matrix'. + # + #username: manhole + + # The password for the manhole. This defaults to 'rabbithole'. + # + #password: mypassword + + # The private and public SSH key pair used to encrypt the manhole traffic. + # If these are left unset, then hardcoded and non-secret keys are used, + # which could allow traffic to be intercepted if sent over a public network. + # + #ssh_priv_key_path: /data/id_rsa + #ssh_pub_key_path: /data/id_rsa.pub + +# Forward extremities can build up in a room due to networking delays between +# homeservers. Once this happens in a large room, calculation of the state of +# that room can become quite expensive. To mitigate this, once the number of +# forward extremities reaches a given threshold, Synapse will send an +# org.matrix.dummy_event event, which will reduce the forward extremities +# in the room. +# +# This setting defines the threshold (i.e. number of forward extremities in the +# room) at which dummy events are sent. The default value is 10. +# +#dummy_events_threshold: 5 + + +## Homeserver blocking ## + +# How to reach the server admin, used in ResourceLimitError +# +#admin_contact: 'mailto:admin@server.com' + +# Global blocking +# +#hs_disabled: false +#hs_disabled_message: 'Human readable reason for why the HS is blocked' + +# Monthly Active User Blocking +# +# Used in cases where the admin or server owner wants to limit to the +# number of monthly active users. +# +# 'limit_usage_by_mau' disables/enables monthly active user blocking. When +# enabled and a limit is reached the server returns a 'ResourceLimitError' +# with error type Codes.RESOURCE_LIMIT_EXCEEDED +# +# 'max_mau_value' is the hard limit of monthly active users above which +# the server will start blocking user actions. +# +# 'mau_trial_days' is a means to add a grace period for active users. It +# means that users must be active for this number of days before they +# can be considered active and guards against the case where lots of users +# sign up in a short space of time never to return after their initial +# session. +# +# The option `mau_appservice_trial_days` is similar to `mau_trial_days`, but +# applies a different trial number if the user was registered by an appservice. +# A value of 0 means no trial days are applied. Appservices not listed in this +# dictionary use the value of `mau_trial_days` instead. +# +# 'mau_limit_alerting' is a means of limiting client side alerting +# should the mau limit be reached. This is useful for small instances +# where the admin has 5 mau seats (say) for 5 specific people and no +# interest increasing the mau limit further. Defaults to True, which +# means that alerting is enabled +# +#limit_usage_by_mau: false +#max_mau_value: 50 +#mau_trial_days: 2 +#mau_limit_alerting: false +#mau_appservice_trial_days: +# "appservice-id": 1 + +# If enabled, the metrics for the number of monthly active users will +# be populated, however no one will be limited. If limit_usage_by_mau +# is true, this is implied to be true. +# +#mau_stats_only: false + +# Sometimes the server admin will want to ensure certain accounts are +# never blocked by mau checking. These accounts are specified here. +# +#mau_limit_reserved_threepids: +# - medium: 'email' +# address: 'reserved_user@example.com' + +# Used by phonehome stats to group together related servers. +#server_context: context + +# Resource-constrained homeserver settings +# +# When this is enabled, the room "complexity" will be checked before a user +# joins a new remote room. If it is above the complexity limit, the server will +# disallow joining, or will instantly leave. +# +# Room complexity is an arbitrary measure based on factors such as the number of +# users in the room. +# +limit_remote_rooms: + # Uncomment to enable room complexity checking. + # + #enabled: true + + # the limit above which rooms cannot be joined. The default is 1.0. + # + #complexity: 0.5 + + # override the error which is returned when the room is too complex. + # + #complexity_error: "This room is too complex." + + # allow server admins to join complex rooms. Default is false. + # + #admins_can_join: true + +# Whether to require a user to be in the room to add an alias to it. +# Defaults to 'true'. +# +#require_membership_for_aliases: false + +# Whether to allow per-room membership profiles through the send of membership +# events with profile information that differ from the target's global profile. +# Defaults to 'true'. +# +#allow_per_room_profiles: false + +# The largest allowed file size for a user avatar. Defaults to no restriction. +# +# Note that user avatar changes will not work if this is set without +# using Synapse's media repository. +# +#max_avatar_size: 10M + +# The MIME types allowed for user avatars. Defaults to no restriction. +# +# Note that user avatar changes will not work if this is set without +# using Synapse's media repository. +# +#allowed_avatar_mimetypes: ["image/png", "image/jpeg", "image/gif"] + +# How long to keep redacted events in unredacted form in the database. After +# this period redacted events get replaced with their redacted form in the DB. +# +# Defaults to `7d`. Set to `null` to disable. +# +#redaction_retention_period: 28d + +# How long to track users' last seen time and IPs in the database. +# +# Defaults to `28d`. Set to `null` to disable clearing out of old rows. +# +#user_ips_max_age: 14d + +# Inhibits the /requestToken endpoints from returning an error that might leak +# information about whether an e-mail address is in use or not on this +# homeserver. +# Note that for some endpoints the error situation is the e-mail already being +# used, and for others the error is entering the e-mail being unused. +# If this option is enabled, instead of returning an error, these endpoints will +# act as if no error happened and return a fake session ID ('sid') to clients. +# +#request_token_inhibit_3pid_errors: true + +# A list of domains that the domain portion of 'next_link' parameters +# must match. +# +# This parameter is optionally provided by clients while requesting +# validation of an email or phone number, and maps to a link that +# users will be automatically redirected to after validation +# succeeds. Clients can make use this parameter to aid the validation +# process. +# +# The whitelist is applied whether the homeserver or an +# identity server is handling validation. +# +# The default value is no whitelist functionality; all domains are +# allowed. Setting this value to an empty list will instead disallow +# all domains. +# +#next_link_domain_whitelist: ["matrix.org"] + +# Templates to use when generating email or HTML page contents. +# +templates: + # Directory in which Synapse will try to find template files to use to generate + # email or HTML page contents. + # If not set, or a file is not found within the template directory, a default + # template from within the Synapse package will be used. + # + # See https://matrix-org.github.io/synapse/latest/templates.html for more + # information about using custom templates. + # + #custom_template_directory: /path/to/custom/templates/ + +# List of rooms to exclude from sync responses. This is useful for server +# administrators wishing to group users into a room without these users being able +# to see it from their client. +# +# By default, no room is excluded. +# +#exclude_rooms_from_sync: +# - !foo:example.com + + +# Message retention policy at the server level. +# +# Room admins and mods can define a retention period for their rooms using the +# 'm.room.retention' state event, and server admins can cap this period by setting +# the 'allowed_lifetime_min' and 'allowed_lifetime_max' config options. +# +# If this feature is enabled, Synapse will regularly look for and purge events +# which are older than the room's maximum retention period. Synapse will also +# filter events received over federation so that events that should have been +# purged are ignored and not stored again. +# +retention: + # The message retention policies feature is disabled by default. Uncomment the + # following line to enable it. + # + #enabled: true + + # Default retention policy. If set, Synapse will apply it to rooms that lack the + # 'm.room.retention' state event. Currently, the value of 'min_lifetime' doesn't + # matter much because Synapse doesn't take it into account yet. + # + #default_policy: + # min_lifetime: 1d + # max_lifetime: 1y + + # Retention policy limits. If set, and the state of a room contains a + # 'm.room.retention' event in its state which contains a 'min_lifetime' or a + # 'max_lifetime' that's out of these bounds, Synapse will cap the room's policy + # to these limits when running purge jobs. + # + #allowed_lifetime_min: 1d + #allowed_lifetime_max: 1y + + # Server admins can define the settings of the background jobs purging the + # events which lifetime has expired under the 'purge_jobs' section. + # + # If no configuration is provided, a single job will be set up to delete expired + # events in every room daily. + # + # Each job's configuration defines which range of message lifetimes the job + # takes care of. For example, if 'shortest_max_lifetime' is '2d' and + # 'longest_max_lifetime' is '3d', the job will handle purging expired events in + # rooms whose state defines a 'max_lifetime' that's both higher than 2 days, and + # lower than or equal to 3 days. Both the minimum and the maximum value of a + # range are optional, e.g. a job with no 'shortest_max_lifetime' and a + # 'longest_max_lifetime' of '3d' will handle every room with a retention policy + # which 'max_lifetime' is lower than or equal to three days. + # + # The rationale for this per-job configuration is that some rooms might have a + # retention policy with a low 'max_lifetime', where history needs to be purged + # of outdated messages on a more frequent basis than for the rest of the rooms + # (e.g. every 12h), but not want that purge to be performed by a job that's + # iterating over every room it knows, which could be heavy on the server. + # + # If any purge job is configured, it is strongly recommended to have at least + # a single job with neither 'shortest_max_lifetime' nor 'longest_max_lifetime' + # set, or one job without 'shortest_max_lifetime' and one job without + # 'longest_max_lifetime' set. Otherwise some rooms might be ignored, even if + # 'allowed_lifetime_min' and 'allowed_lifetime_max' are set, because capping a + # room's policy to these values is done after the policies are retrieved from + # Synapse's database (which is done using the range specified in a purge job's + # configuration). + # + #purge_jobs: + # - longest_max_lifetime: 3d + # interval: 12h + # - shortest_max_lifetime: 3d + # interval: 1d + + +## TLS ## + +# PEM-encoded X509 certificate for TLS. +# This certificate, as of Synapse 1.0, will need to be a valid and verifiable +# certificate, signed by a recognised Certificate Authority. +# +# Be sure to use a `.pem` file that includes the full certificate chain including +# any intermediate certificates (for instance, if using certbot, use +# `fullchain.pem` as your certificate, not `cert.pem`). +# +#tls_certificate_path: "/data/localhost.tls.crt" + +# PEM-encoded private key for TLS +# +#tls_private_key_path: "/data/localhost.tls.key" + +# Whether to verify TLS server certificates for outbound federation requests. +# +# Defaults to `true`. To disable certificate verification, uncomment the +# following line. +# +#federation_verify_certificates: false + +# The minimum TLS version that will be used for outbound federation requests. +# +# Defaults to `1`. Configurable to `1`, `1.1`, `1.2`, or `1.3`. Note +# that setting this value higher than `1.2` will prevent federation to most +# of the public Matrix network: only configure it to `1.3` if you have an +# entirely private federation setup and you can ensure TLS 1.3 support. +# +#federation_client_minimum_tls_version: 1.2 + +# Skip federation certificate verification on the following whitelist +# of domains. +# +# This setting should only be used in very specific cases, such as +# federation over Tor hidden services and similar. For private networks +# of homeservers, you likely want to use a private CA instead. +# +# Only effective if federation_verify_certicates is `true`. +# +#federation_certificate_verification_whitelist: +# - lon.example.com +# - "*.domain.com" +# - "*.onion" + +# List of custom certificate authorities for federation traffic. +# +# This setting should only normally be used within a private network of +# homeservers. +# +# Note that this list will replace those that are provided by your +# operating environment. Certificates must be in PEM format. +# +#federation_custom_ca_list: +# - myCA1.pem +# - myCA2.pem +# - myCA3.pem + + +## Federation ## + +# Restrict federation to the following whitelist of domains. +# N.B. we recommend also firewalling your federation listener to limit +# inbound federation traffic as early as possible, rather than relying +# purely on this application-layer restriction. If not specified, the +# default is to whitelist everything. +# +#federation_domain_whitelist: +# - lon.example.com +# - nyc.example.com +# - syd.example.com + +# Report prometheus metrics on the age of PDUs being sent to and received from +# the following domains. This can be used to give an idea of "delay" on inbound +# and outbound federation, though be aware that any delay can be due to problems +# at either end or with the intermediate network. +# +# By default, no domains are monitored in this way. +# +#federation_metrics_domains: +# - matrix.org +# - example.com + +# Uncomment to disable profile lookup over federation. By default, the +# Federation API allows other homeservers to obtain profile data of any user +# on this homeserver. Defaults to 'true'. +# +#allow_profile_lookup_over_federation: false + +# Uncomment to allow device display name lookup over federation. By default, the +# Federation API prevents other homeservers from obtaining the display names of +# user devices on this homeserver. Defaults to 'false'. +# +#allow_device_name_lookup_over_federation: true + + +## Caching ## + +# Caching can be configured through the following options. +# +# A cache 'factor' is a multiplier that can be applied to each of +# Synapse's caches in order to increase or decrease the maximum +# number of entries that can be stored. + +# The number of events to cache in memory. Not affected by +# caches.global_factor. +# +#event_cache_size: 10K + +caches: + # Controls the global cache factor, which is the default cache factor + # for all caches if a specific factor for that cache is not otherwise + # set. + # + # This can also be set by the "SYNAPSE_CACHE_FACTOR" environment + # variable. Setting by environment variable takes priority over + # setting through the config file. + # + # Defaults to 0.5, which will half the size of all caches. + # + #global_factor: 1.0 + + # A dictionary of cache name to cache factor for that individual + # cache. Overrides the global cache factor for a given cache. + # + # These can also be set through environment variables comprised + # of "SYNAPSE_CACHE_FACTOR_" + the name of the cache in capital + # letters and underscores. Setting by environment variable + # takes priority over setting through the config file. + # Ex. SYNAPSE_CACHE_FACTOR_GET_USERS_WHO_SHARE_ROOM_WITH_USER=2.0 + # + # Some caches have '*' and other characters that are not + # alphanumeric or underscores. These caches can be named with or + # without the special characters stripped. For example, to specify + # the cache factor for `*stateGroupCache*` via an environment + # variable would be `SYNAPSE_CACHE_FACTOR_STATEGROUPCACHE=2.0`. + # + per_cache_factors: + #get_users_who_share_room_with_user: 2.0 + + # Controls whether cache entries are evicted after a specified time + # period. Defaults to true. Uncomment to disable this feature. + # + #expire_caches: false + + # If expire_caches is enabled, this flag controls how long an entry can + # be in a cache without having been accessed before being evicted. + # Defaults to 30m. Uncomment to set a different time to live for cache entries. + # + #cache_entry_ttl: 30m + + # Controls how long the results of a /sync request are cached for after + # a successful response is returned. A higher duration can help clients with + # intermittent connections, at the cost of higher memory usage. + # + # By default, this is zero, which means that sync responses are not cached + # at all. + # + #sync_response_cache_duration: 2m + + +## Database ## + +# The 'database' setting defines the database that synapse uses to store all of +# its data. +# +# 'name' gives the database engine to use: either 'sqlite3' (for SQLite) or +# 'psycopg2' (for PostgreSQL). +# +# 'txn_limit' gives the maximum number of transactions to run per connection +# before reconnecting. Defaults to 0, which means no limit. +# +# 'allow_unsafe_locale' is an option specific to Postgres. Under the default behavior, Synapse will refuse to +# start if the postgres db is set to a non-C locale. You can override this behavior (which is *not* recommended) +# by setting 'allow_unsafe_locale' to true. Note that doing so may corrupt your database. You can find more information +# here: https://matrix-org.github.io/synapse/latest/postgres.html#fixing-incorrect-collate-or-ctype and here: +# https://wiki.postgresql.org/wiki/Locale_data_changes +# +# 'args' gives options which are passed through to the database engine, +# except for options starting 'cp_', which are used to configure the Twisted +# connection pool. For a reference to valid arguments, see: +# * for sqlite: https://docs.python.org/3/library/sqlite3.html#sqlite3.connect +# * for postgres: https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS +# * for the connection pool: https://twistedmatrix.com/documents/current/api/twisted.enterprise.adbapi.ConnectionPool.html#__init__ +# +# +# Example SQLite configuration: +# +#database: +# name: sqlite3 +# args: +# database: /path/to/homeserver.db +# +# +# Example Postgres configuration: +# +#database: +# name: psycopg2 +# txn_limit: 10000 +# args: +# user: synapse_user +# password: secretpassword +# database: synapse +# host: localhost +# port: 5432 +# cp_min: 5 +# cp_max: 10 +# +# For more information on using Synapse with Postgres, +# see https://matrix-org.github.io/synapse/latest/postgres.html. +# +database: + name: sqlite3 + args: + database: /data/homeserver.db + + +## Logging ## + +# A yaml python logging config file as described by +# https://docs.python.org/3.7/library/logging.config.html#configuration-dictionary-schema +# +log_config: "/data/localhost.log.config" + + +## Ratelimiting ## + +# Ratelimiting settings for client actions (registration, login, messaging). +# +# Each ratelimiting configuration is made of two parameters: +# - per_second: number of requests a client can send per second. +# - burst_count: number of requests a client can send before being throttled. +# +# Synapse currently uses the following configurations: +# - one for messages that ratelimits sending based on the account the client +# is using +# - one for registration that ratelimits registration requests based on the +# client's IP address. +# - one for checking the validity of registration tokens that ratelimits +# requests based on the client's IP address. +# - one for login that ratelimits login requests based on the client's IP +# address. +# - one for login that ratelimits login requests based on the account the +# client is attempting to log into. +# - one for login that ratelimits login requests based on the account the +# client is attempting to log into, based on the amount of failed login +# attempts for this account. +# - one for ratelimiting redactions by room admins. If this is not explicitly +# set then it uses the same ratelimiting as per rc_message. This is useful +# to allow room admins to deal with abuse quickly. +# - two for ratelimiting number of rooms a user can join, "local" for when +# users are joining rooms the server is already in (this is cheap) vs +# "remote" for when users are trying to join rooms not on the server (which +# can be more expensive) +# - one for ratelimiting how often a user or IP can attempt to validate a 3PID. +# - two for ratelimiting how often invites can be sent in a room or to a +# specific user. +# - one for ratelimiting 3PID invites (i.e. invites sent to a third-party ID +# such as an email address or a phone number) based on the account that's +# sending the invite. +# +# The defaults are as shown below. +# +#rc_message: +# per_second: 0.2 +# burst_count: 10 +# +#rc_registration: +# per_second: 0.17 +# burst_count: 3 +# +#rc_registration_token_validity: +# per_second: 0.1 +# burst_count: 5 +# +#rc_login: +# address: +# per_second: 0.17 +# burst_count: 3 +# account: +# per_second: 0.17 +# burst_count: 3 +# failed_attempts: +# per_second: 0.17 +# burst_count: 3 +# +#rc_admin_redaction: +# per_second: 1 +# burst_count: 50 +# +#rc_joins: +# local: +# per_second: 0.1 +# burst_count: 10 +# remote: +# per_second: 0.01 +# burst_count: 10 +# +#rc_3pid_validation: +# per_second: 0.003 +# burst_count: 5 +# +#rc_invites: +# per_room: +# per_second: 0.3 +# burst_count: 10 +# per_user: +# per_second: 0.003 +# burst_count: 5 +# +#rc_third_party_invite: +# per_second: 0.2 +# burst_count: 10 + +# Ratelimiting settings for incoming federation +# +# The rc_federation configuration is made up of the following settings: +# - window_size: window size in milliseconds +# - sleep_limit: number of federation requests from a single server in +# a window before the server will delay processing the request. +# - sleep_delay: duration in milliseconds to delay processing events +# from remote servers by if they go over the sleep limit. +# - reject_limit: maximum number of concurrent federation requests +# allowed from a single server +# - concurrent: number of federation requests to concurrently process +# from a single server +# +# The defaults are as shown below. +# +#rc_federation: +# window_size: 1000 +# sleep_limit: 10 +# sleep_delay: 500 +# reject_limit: 50 +# concurrent: 3 + +# Target outgoing federation transaction frequency for sending read-receipts, +# per-room. +# +# If we end up trying to send out more read-receipts, they will get buffered up +# into fewer transactions. +# +#federation_rr_transactions_per_room_per_second: 50 + + + +## Media Store ## + +# Enable the media store service in the Synapse master. Uncomment the +# following if you are using a separate media store worker. +# +#enable_media_repo: false + +# Directory where uploaded images and attachments are stored. +# +media_store_path: "/data/media_store" + +# Media storage providers allow media to be stored in different +# locations. +# +#media_storage_providers: +# - module: file_system +# # Whether to store newly uploaded local files +# store_local: false +# # Whether to store newly downloaded remote files +# store_remote: false +# # Whether to wait for successful storage for local uploads +# store_synchronous: false +# config: +# directory: /mnt/some/other/directory + +# The largest allowed upload size in bytes +# +# If you are using a reverse proxy you may also need to set this value in +# your reverse proxy's config. Notably Nginx has a small max body size by default. +# See https://matrix-org.github.io/synapse/latest/reverse_proxy.html. +# +#max_upload_size: 50M + +# Maximum number of pixels that will be thumbnailed +# +#max_image_pixels: 32M + +# Whether to generate new thumbnails on the fly to precisely match +# the resolution requested by the client. If true then whenever +# a new resolution is requested by the client the server will +# generate a new thumbnail. If false the server will pick a thumbnail +# from a precalculated list. +# +#dynamic_thumbnails: false + +# List of thumbnails to precalculate when an image is uploaded. +# +#thumbnail_sizes: +# - width: 32 +# height: 32 +# method: crop +# - width: 96 +# height: 96 +# method: crop +# - width: 320 +# height: 240 +# method: scale +# - width: 640 +# height: 480 +# method: scale +# - width: 800 +# height: 600 +# method: scale + +# Is the preview URL API enabled? +# +# 'false' by default: uncomment the following to enable it (and specify a +# url_preview_ip_range_blacklist blacklist). +# +#url_preview_enabled: true + +# List of IP address CIDR ranges that the URL preview spider is denied +# from accessing. There are no defaults: you must explicitly +# specify a list for URL previewing to work. You should specify any +# internal services in your network that you do not want synapse to try +# to connect to, otherwise anyone in any Matrix room could cause your +# synapse to issue arbitrary GET requests to your internal services, +# causing serious security issues. +# +# (0.0.0.0 and :: are always blacklisted, whether or not they are explicitly +# listed here, since they correspond to unroutable addresses.) +# +# This must be specified if url_preview_enabled is set. It is recommended that +# you uncomment the following list as a starting point. +# +# Note: The value is ignored when an HTTP proxy is in use +# +#url_preview_ip_range_blacklist: +# - '127.0.0.0/8' +# - '10.0.0.0/8' +# - '172.16.0.0/12' +# - '192.168.0.0/16' +# - '100.64.0.0/10' +# - '192.0.0.0/24' +# - '169.254.0.0/16' +# - '192.88.99.0/24' +# - '198.18.0.0/15' +# - '192.0.2.0/24' +# - '198.51.100.0/24' +# - '203.0.113.0/24' +# - '224.0.0.0/4' +# - '::1/128' +# - 'fe80::/10' +# - 'fc00::/7' +# - '2001:db8::/32' +# - 'ff00::/8' +# - 'fec0::/10' + +# List of IP address CIDR ranges that the URL preview spider is allowed +# to access even if they are specified in url_preview_ip_range_blacklist. +# This is useful for specifying exceptions to wide-ranging blacklisted +# target IP ranges - e.g. for enabling URL previews for a specific private +# website only visible in your network. +# +#url_preview_ip_range_whitelist: +# - '192.168.1.1' + +# Optional list of URL matches that the URL preview spider is +# denied from accessing. You should use url_preview_ip_range_blacklist +# in preference to this, otherwise someone could define a public DNS +# entry that points to a private IP address and circumvent the blacklist. +# This is more useful if you know there is an entire shape of URL that +# you know that will never want synapse to try to spider. +# +# Each list entry is a dictionary of url component attributes as returned +# by urlparse.urlsplit as applied to the absolute form of the URL. See +# https://docs.python.org/2/library/urlparse.html#urlparse.urlsplit +# The values of the dictionary are treated as an filename match pattern +# applied to that component of URLs, unless they start with a ^ in which +# case they are treated as a regular expression match. If all the +# specified component matches for a given list item succeed, the URL is +# blacklisted. +# +#url_preview_url_blacklist: +# # blacklist any URL with a username in its URI +# - username: '*' +# +# # blacklist all *.google.com URLs +# - netloc: 'google.com' +# - netloc: '*.google.com' +# +# # blacklist all plain HTTP URLs +# - scheme: 'http' +# +# # blacklist http(s)://www.acme.com/foo +# - netloc: 'www.acme.com' +# path: '/foo' +# +# # blacklist any URL with a literal IPv4 address +# - netloc: '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$' + +# The largest allowed URL preview spidering size in bytes +# +#max_spider_size: 10M + +# A list of values for the Accept-Language HTTP header used when +# downloading webpages during URL preview generation. This allows +# Synapse to specify the preferred languages that URL previews should +# be in when communicating with remote servers. +# +# Each value is a IETF language tag; a 2-3 letter identifier for a +# language, optionally followed by subtags separated by '-', specifying +# a country or region variant. +# +# Multiple values can be provided, and a weight can be added to each by +# using quality value syntax (;q=). '*' translates to any language. +# +# Defaults to "en". +# +# Example: +# +# url_preview_accept_language: +# - en-UK +# - en-US;q=0.9 +# - fr;q=0.8 +# - *;q=0.7 +# +url_preview_accept_language: +# - en + + +# oEmbed allows for easier embedding content from a website. It can be +# used for generating URLs previews of services which support it. +# +oembed: + # A default list of oEmbed providers is included with Synapse. + # + # Uncomment the following to disable using these default oEmbed URLs. + # Defaults to 'false'. + # + #disable_default_providers: true + + # Additional files with oEmbed configuration (each should be in the + # form of providers.json). + # + # By default, this list is empty (so only the default providers.json + # is used). + # + #additional_providers: + # - oembed/my_providers.json + + +## Captcha ## +# See docs/CAPTCHA_SETUP.md for full details of configuring this. + +# This homeserver's ReCAPTCHA public key. Must be specified if +# enable_registration_captcha is enabled. +# +#recaptcha_public_key: "YOUR_PUBLIC_KEY" + +# This homeserver's ReCAPTCHA private key. Must be specified if +# enable_registration_captcha is enabled. +# +#recaptcha_private_key: "YOUR_PRIVATE_KEY" + +# Uncomment to enable ReCaptcha checks when registering, preventing signup +# unless a captcha is answered. Requires a valid ReCaptcha +# public/private key. Defaults to 'false'. +# +#enable_registration_captcha: true + +# The API endpoint to use for verifying m.login.recaptcha responses. +# Defaults to "https://www.recaptcha.net/recaptcha/api/siteverify". +# +#recaptcha_siteverify_api: "https://my.recaptcha.site" + + +## TURN ## + +# The public URIs of the TURN server to give to clients +# +#turn_uris: [] + +# The shared secret used to compute passwords for the TURN server +# +#turn_shared_secret: "YOUR_SHARED_SECRET" + +# The Username and password if the TURN server needs them and +# does not use a token +# +#turn_username: "TURNSERVER_USERNAME" +#turn_password: "TURNSERVER_PASSWORD" + +# How long generated TURN credentials last +# +#turn_user_lifetime: 1h + +# Whether guests should be allowed to use the TURN server. +# This defaults to True, otherwise VoIP will be unreliable for guests. +# However, it does introduce a slight security risk as it allows users to +# connect to arbitrary endpoints without having first signed up for a +# valid account (e.g. by passing a CAPTCHA). +# +#turn_allow_guests: true + + +## Registration ## +# +# Registration can be rate-limited using the parameters in the "Ratelimiting" +# section of this file. + +# Enable registration for new users. Defaults to 'false'. It is highly recommended that if you enable registration, +# you use either captcha, email, or token-based verification to verify that new users are not bots. In order to enable registration +# without any verification, you must also set `enable_registration_without_verification`, found below. +# +enable_registration: true + +# Enable registration without email or captcha verification. Note: this option is *not* recommended, +# as registration without verification is a known vector for spam and abuse. Defaults to false. Has no effect +# unless `enable_registration` is also enabled. +# +enable_registration_without_verification: true + +# Time that a user's session remains valid for, after they log in. +# +# Note that this is not currently compatible with guest logins. +# +# Note also that this is calculated at login time: changes are not applied +# retrospectively to users who have already logged in. +# +# By default, this is infinite. +# +#session_lifetime: 24h + +# Time that an access token remains valid for, if the session is +# using refresh tokens. +# For more information about refresh tokens, please see the manual. +# Note that this only applies to clients which advertise support for +# refresh tokens. +# +# Note also that this is calculated at login time and refresh time: +# changes are not applied to existing sessions until they are refreshed. +# +# By default, this is 5 minutes. +# +#refreshable_access_token_lifetime: 5m + +# Time that a refresh token remains valid for (provided that it is not +# exchanged for another one first). +# This option can be used to automatically log-out inactive sessions. +# Please see the manual for more information. +# +# Note also that this is calculated at login time and refresh time: +# changes are not applied to existing sessions until they are refreshed. +# +# By default, this is infinite. +# +#refresh_token_lifetime: 24h + +# Time that an access token remains valid for, if the session is NOT +# using refresh tokens. +# Please note that not all clients support refresh tokens, so setting +# this to a short value may be inconvenient for some users who will +# then be logged out frequently. +# +# Note also that this is calculated at login time: changes are not applied +# retrospectively to existing sessions for users that have already logged in. +# +# By default, this is infinite. +# +#nonrefreshable_access_token_lifetime: 24h + +# The user must provide all of the below types of 3PID when registering. +# +#registrations_require_3pid: +# - email +# - msisdn + +# Explicitly disable asking for MSISDNs from the registration +# flow (overrides registrations_require_3pid if MSISDNs are set as required) +# +#disable_msisdn_registration: true + +# Mandate that users are only allowed to associate certain formats of +# 3PIDs with accounts on this server. +# +#allowed_local_3pids: +# - medium: email +# pattern: '^[^@]+@matrix\.org$' +# - medium: email +# pattern: '^[^@]+@vector\.im$' +# - medium: msisdn +# pattern: '\+44' + +# Enable 3PIDs lookup requests to identity servers from this server. +# +#enable_3pid_lookup: true + +# Require users to submit a token during registration. +# Tokens can be managed using the admin API: +# https://matrix-org.github.io/synapse/latest/usage/administration/admin_api/registration_tokens.html +# Note that `enable_registration` must be set to `true`. +# Disabling this option will not delete any tokens previously generated. +# Defaults to false. Uncomment the following to require tokens: +# +#registration_requires_token: true + +# Allow users to submit a token during registration to bypass any required 3pid +# steps configured in `registrations_require_3pid`. +# Defaults to false, requiring that registration tokens (if enabled) complete a 3pid flow. +# +#enable_registration_token_3pid_bypass: false + +# If set, allows registration of standard or admin accounts by anyone who +# has the shared secret, even if registration is otherwise disabled. +# +registration_shared_secret: "*_854H=YMj.QsE;~~3S,+785vsc#f9f=~nw8aa0Da&~Ye=24=l" + +# Set the number of bcrypt rounds used to generate password hash. +# Larger numbers increase the work factor needed to generate the hash. +# The default number is 12 (which equates to 2^12 rounds). +# N.B. that increasing this will exponentially increase the time required +# to register or login - e.g. 24 => 2^24 rounds which will take >20 mins. +# +#bcrypt_rounds: 12 + +# Allows users to register as guests without a password/email/etc, and +# participate in rooms hosted on this server which have been made +# accessible to anonymous users. +# +#allow_guest_access: false + +# The identity server which we suggest that clients should use when users log +# in on this server. +# +# (By default, no suggestion is made, so it is left up to the client. +# This setting is ignored unless public_baseurl is also explicitly set.) +# +#default_identity_server: https://matrix.org + +# Handle threepid (email/phone etc) registration and password resets through a set of +# *trusted* identity servers. Note that this allows the configured identity server to +# reset passwords for accounts! +# +# Be aware that if `email` is not set, and SMTP options have not been +# configured in the email config block, registration and user password resets via +# email will be globally disabled. +# +# Additionally, if `msisdn` is not set, registration and password resets via msisdn +# will be disabled regardless, and users will not be able to associate an msisdn +# identifier to their account. This is due to Synapse currently not supporting +# any method of sending SMS messages on its own. +# +# To enable using an identity server for operations regarding a particular third-party +# identifier type, set the value to the URL of that identity server as shown in the +# examples below. +# +# Servers handling the these requests must answer the `/requestToken` endpoints defined +# by the Matrix Identity Service API specification: +# https://matrix.org/docs/spec/identity_service/latest +# +account_threepid_delegates: + #email: https://example.com # Delegate email sending to example.com + #msisdn: http://localhost:8090 # Delegate SMS sending to this local process + +# Whether users are allowed to change their displayname after it has +# been initially set. Useful when provisioning users based on the +# contents of a third-party directory. +# +# Does not apply to server administrators. Defaults to 'true' +# +#enable_set_displayname: false + +# Whether users are allowed to change their avatar after it has been +# initially set. Useful when provisioning users based on the contents +# of a third-party directory. +# +# Does not apply to server administrators. Defaults to 'true' +# +#enable_set_avatar_url: false + +# Whether users can change the 3PIDs associated with their accounts +# (email address and msisdn). +# +# Defaults to 'true' +# +#enable_3pid_changes: false + +# Users who register on this homeserver will automatically be joined +# to these rooms. +# +# By default, any room aliases included in this list will be created +# as a publicly joinable room when the first user registers for the +# homeserver. This behaviour can be customised with the settings below. +# If the room already exists, make certain it is a publicly joinable +# room. The join rule of the room must be set to 'public'. +# +#auto_join_rooms: +# - "#example:example.com" + +# Where auto_join_rooms are specified, setting this flag ensures that the +# the rooms exist by creating them when the first user on the +# homeserver registers. +# +# By default the auto-created rooms are publicly joinable from any federated +# server. Use the autocreate_auto_join_rooms_federated and +# autocreate_auto_join_room_preset settings below to customise this behaviour. +# +# Setting to false means that if the rooms are not manually created, +# users cannot be auto-joined since they do not exist. +# +# Defaults to true. Uncomment the following line to disable automatically +# creating auto-join rooms. +# +#autocreate_auto_join_rooms: false + +# Whether the auto_join_rooms that are auto-created are available via +# federation. Only has an effect if autocreate_auto_join_rooms is true. +# +# Note that whether a room is federated cannot be modified after +# creation. +# +# Defaults to true: the room will be joinable from other servers. +# Uncomment the following to prevent users from other homeservers from +# joining these rooms. +# +#autocreate_auto_join_rooms_federated: false + +# The room preset to use when auto-creating one of auto_join_rooms. Only has an +# effect if autocreate_auto_join_rooms is true. +# +# This can be one of "public_chat", "private_chat", or "trusted_private_chat". +# If a value of "private_chat" or "trusted_private_chat" is used then +# auto_join_mxid_localpart must also be configured. +# +# Defaults to "public_chat", meaning that the room is joinable by anyone, including +# federated servers if autocreate_auto_join_rooms_federated is true (the default). +# Uncomment the following to require an invitation to join these rooms. +# +#autocreate_auto_join_room_preset: private_chat + +# The local part of the user id which is used to create auto_join_rooms if +# autocreate_auto_join_rooms is true. If this is not provided then the +# initial user account that registers will be used to create the rooms. +# +# The user id is also used to invite new users to any auto-join rooms which +# are set to invite-only. +# +# It *must* be configured if autocreate_auto_join_room_preset is set to +# "private_chat" or "trusted_private_chat". +# +# Note that this must be specified in order for new users to be correctly +# invited to any auto-join rooms which have been set to invite-only (either +# at the time of creation or subsequently). +# +# Note that, if the room already exists, this user must be joined and +# have the appropriate permissions to invite new members. +# +#auto_join_mxid_localpart: system + +# When auto_join_rooms is specified, setting this flag to false prevents +# guest accounts from being automatically joined to the rooms. +# +# Defaults to true. +# +#auto_join_rooms_for_guests: false + +# Whether to inhibit errors raised when registering a new account if the user ID +# already exists. If turned on, that requests to /register/available will always +# show a user ID as available, and Synapse won't raise an error when starting +# a registration with a user ID that already exists. However, Synapse will still +# raise an error if the registration completes and the username conflicts. +# +# Defaults to false. +# +#inhibit_user_in_use_error: true + + +## Metrics ### + +# Enable collection and rendering of performance metrics +# +#enable_metrics: false + +# Enable sentry integration +# NOTE: While attempts are made to ensure that the logs don't contain +# any sensitive information, this cannot be guaranteed. By enabling +# this option the sentry server may therefore receive sensitive +# information, and it in turn may then diseminate sensitive information +# through insecure notification channels if so configured. +# +#sentry: +# dsn: "..." + +# Flags to enable Prometheus metrics which are not suitable to be +# enabled by default, either for performance reasons or limited use. +# +metrics_flags: + # Publish synapse_federation_known_servers, a gauge of the number of + # servers this homeserver knows about, including itself. May cause + # performance problems on large homeservers. + # + #known_servers: true + +# Whether or not to report anonymized homeserver usage statistics. +# +report_stats: false + +# The endpoint to report the anonymized homeserver usage statistics to. +# Defaults to https://matrix.org/report-usage-stats/push +# +#report_stats_endpoint: https://example.com/report-usage-stats/push + + +## API Configuration ## + +# Controls for the state that is shared with users who receive an invite +# to a room +# +room_prejoin_state: + # By default, the following state event types are shared with users who + # receive invites to the room: + # + # - m.room.join_rules + # - m.room.canonical_alias + # - m.room.avatar + # - m.room.encryption + # - m.room.name + # - m.room.create + # - m.room.topic + # + # Uncomment the following to disable these defaults (so that only the event + # types listed in 'additional_event_types' are shared). Defaults to 'false'. + # + #disable_default_event_types: true + + # Additional state event types to share with users when they are invited + # to a room. + # + # By default, this list is empty (so only the default event types are shared). + # + #additional_event_types: + # - org.example.custom.event.type + +# We record the IP address of clients used to access the API for various +# reasons, including displaying it to the user in the "Where you're signed in" +# dialog. +# +# By default, when puppeting another user via the admin API, the client IP +# address is recorded against the user who created the access token (ie, the +# admin user), and *not* the puppeted user. +# +# Uncomment the following to also record the IP address against the puppeted +# user. (This also means that the puppeted user will count as an "active" user +# for the purpose of monthly active user tracking - see 'limit_usage_by_mau' etc +# above.) +# +#track_puppeted_user_ips: true + + +# A list of application service config files to use +# +#app_service_config_files: +# - app_service_1.yaml +# - app_service_2.yaml + +# Uncomment to enable tracking of application service IP addresses. Implicitly +# enables MAU tracking for application service users. +# +#track_appservice_user_ips: true + + +# a secret which is used to sign access tokens. If none is specified, +# the registration_shared_secret is used, if one is given; otherwise, +# a secret key is derived from the signing key. +# +macaroon_secret_key: "V^82zhIr=:JrekhnYrePOdvLCAut:9Va,AU@-7NTU3EKXipo*4" + +# a secret which is used to calculate HMACs for form values, to stop +# falsification of values. Must be specified for the User Consent +# forms to work. +# +form_secret: "&fZC5o5Co@cX5xeBMIv1wkxR5SKOdg=p19F#lB^PE^qSJftzc&" + +## Signing Keys ## + +# Path to the signing key to sign messages with +# +signing_key_path: "/data/localhost.signing.key" + +# The keys that the server used to sign messages with but won't use +# to sign new messages. +# +old_signing_keys: + # For each key, `key` should be the base64-encoded public key, and + # `expired_ts`should be the time (in milliseconds since the unix epoch) that + # it was last used. + # + # It is possible to build an entry from an old signing.key file using the + # `export_signing_key` script which is provided with synapse. + # + # For example: + # + #"ed25519:id": { key: "base64string", expired_ts: 123456789123 } + +# How long key response published by this server is valid for. +# Used to set the valid_until_ts in /key/v2 APIs. +# Determines how quickly servers will query to check which keys +# are still valid. +# +#key_refresh_interval: 1d + +# The trusted servers to download signing keys from. +# +# When we need to fetch a signing key, each server is tried in parallel. +# +# Normally, the connection to the key server is validated via TLS certificates. +# Additional security can be provided by configuring a `verify key`, which +# will make synapse check that the response is signed by that key. +# +# This setting supercedes an older setting named `perspectives`. The old format +# is still supported for backwards-compatibility, but it is deprecated. +# +# 'trusted_key_servers' defaults to matrix.org, but using it will generate a +# warning on start-up. To suppress this warning, set +# 'suppress_key_server_warning' to true. +# +# Options for each entry in the list include: +# +# server_name: the name of the server. required. +# +# verify_keys: an optional map from key id to base64-encoded public key. +# If specified, we will check that the response is signed by at least +# one of the given keys. +# +# accept_keys_insecurely: a boolean. Normally, if `verify_keys` is unset, +# and federation_verify_certificates is not `true`, synapse will refuse +# to start, because this would allow anyone who can spoof DNS responses +# to masquerade as the trusted key server. If you know what you are doing +# and are sure that your network environment provides a secure connection +# to the key server, you can set this to `true` to override this +# behaviour. +# +# An example configuration might look like: +# +#trusted_key_servers: +# - server_name: "my_trusted_server.example.com" +# verify_keys: +# "ed25519:auto": "abcdefghijklmnopqrstuvwxyzabcdefghijklmopqr" +# - server_name: "my_other_trusted_server.example.com" +# +trusted_key_servers: + - server_name: "matrix.org" + +# Uncomment the following to disable the warning that is emitted when the +# trusted_key_servers include 'matrix.org'. See above. +# +#suppress_key_server_warning: true + +# The signing keys to use when acting as a trusted key server. If not specified +# defaults to the server signing key. +# +# Can contain multiple keys, one per line. +# +#key_server_signing_keys_path: "key_server_signing_keys.key" + + +## Single sign-on integration ## + +# The following settings can be used to make Synapse use a single sign-on +# provider for authentication, instead of its internal password database. +# +# You will probably also want to set the following options to `false` to +# disable the regular login/registration flows: +# * enable_registration +# * password_config.enabled +# +# You will also want to investigate the settings under the "sso" configuration +# section below. + +# Enable SAML2 for registration and login. Uses pysaml2. +# +# At least one of `sp_config` or `config_path` must be set in this section to +# enable SAML login. +# +# Once SAML support is enabled, a metadata file will be exposed at +# https://:/_synapse/client/saml2/metadata.xml, which you may be able to +# use to configure your SAML IdP with. Alternatively, you can manually configure +# the IdP to use an ACS location of +# https://:/_synapse/client/saml2/authn_response. +# +saml2_config: + # `sp_config` is the configuration for the pysaml2 Service Provider. + # See pysaml2 docs for format of config. + # + # Default values will be used for the 'entityid' and 'service' settings, + # so it is not normally necessary to specify them unless you need to + # override them. + # + sp_config: + # Point this to the IdP's metadata. You must provide either a local + # file via the `local` attribute or (preferably) a URL via the + # `remote` attribute. + # + #metadata: + # local: ["saml2/idp.xml"] + # remote: + # - url: https://our_idp/metadata.xml + + # Allowed clock difference in seconds between the homeserver and IdP. + # + # Uncomment the below to increase the accepted time difference from 0 to 3 seconds. + # + #accepted_time_diff: 3 + + # By default, the user has to go to our login page first. If you'd like + # to allow IdP-initiated login, set 'allow_unsolicited: true' in a + # 'service.sp' section: + # + #service: + # sp: + # allow_unsolicited: true + + # The examples below are just used to generate our metadata xml, and you + # may well not need them, depending on your setup. Alternatively you + # may need a whole lot more detail - see the pysaml2 docs! + + #description: ["My awesome SP", "en"] + #name: ["Test SP", "en"] + + #ui_info: + # display_name: + # - lang: en + # text: "Display Name is the descriptive name of your service." + # description: + # - lang: en + # text: "Description should be a short paragraph explaining the purpose of the service." + # information_url: + # - lang: en + # text: "https://example.com/terms-of-service" + # privacy_statement_url: + # - lang: en + # text: "https://example.com/privacy-policy" + # keywords: + # - lang: en + # text: ["Matrix", "Element"] + # logo: + # - lang: en + # text: "https://example.com/logo.svg" + # width: "200" + # height: "80" + + #organization: + # name: Example com + # display_name: + # - ["Example co", "en"] + # url: "http://example.com" + + #contact_person: + # - given_name: Bob + # sur_name: "the Sysadmin" + # email_address": ["admin@example.com"] + # contact_type": technical + + # Instead of putting the config inline as above, you can specify a + # separate pysaml2 configuration file: + # + #config_path: "/data/sp_conf.py" + + # The lifetime of a SAML session. This defines how long a user has to + # complete the authentication process, if allow_unsolicited is unset. + # The default is 15 minutes. + # + #saml_session_lifetime: 5m + + # An external module can be provided here as a custom solution to + # mapping attributes returned from a saml provider onto a matrix user. + # + user_mapping_provider: + # The custom module's class. Uncomment to use a custom module. + # + #module: mapping_provider.SamlMappingProvider + + # Custom configuration values for the module. Below options are + # intended for the built-in provider, they should be changed if + # using a custom module. This section will be passed as a Python + # dictionary to the module's `parse_config` method. + # + config: + # The SAML attribute (after mapping via the attribute maps) to use + # to derive the Matrix ID from. 'uid' by default. + # + # Note: This used to be configured by the + # saml2_config.mxid_source_attribute option. If that is still + # defined, its value will be used instead. + # + #mxid_source_attribute: displayName + + # The mapping system to use for mapping the saml attribute onto a + # matrix ID. + # + # Options include: + # * 'hexencode' (which maps unpermitted characters to '=xx') + # * 'dotreplace' (which replaces unpermitted characters with + # '.'). + # The default is 'hexencode'. + # + # Note: This used to be configured by the + # saml2_config.mxid_mapping option. If that is still defined, its + # value will be used instead. + # + #mxid_mapping: dotreplace + + # In previous versions of synapse, the mapping from SAML attribute to + # MXID was always calculated dynamically rather than stored in a + # table. For backwards- compatibility, we will look for user_ids + # matching such a pattern before creating a new account. + # + # This setting controls the SAML attribute which will be used for this + # backwards-compatibility lookup. Typically it should be 'uid', but if + # the attribute maps are changed, it may be necessary to change it. + # + # The default is 'uid'. + # + #grandfathered_mxid_source_attribute: upn + + # It is possible to configure Synapse to only allow logins if SAML attributes + # match particular values. The requirements can be listed under + # `attribute_requirements` as shown below. All of the listed attributes must + # match for the login to be permitted. + # + #attribute_requirements: + # - attribute: userGroup + # value: "staff" + # - attribute: department + # value: "sales" + + # If the metadata XML contains multiple IdP entities then the `idp_entityid` + # option must be set to the entity to redirect users to. + # + # Most deployments only have a single IdP entity and so should omit this + # option. + # + #idp_entityid: 'https://our_idp/entityid' + + +# List of OpenID Connect (OIDC) / OAuth 2.0 identity providers, for registration +# and login. +# +# Options for each entry include: +# +# idp_id: a unique identifier for this identity provider. Used internally +# by Synapse; should be a single word such as 'github'. +# +# Note that, if this is changed, users authenticating via that provider +# will no longer be recognised as the same user! +# +# (Use "oidc" here if you are migrating from an old "oidc_config" +# configuration.) +# +# idp_name: A user-facing name for this identity provider, which is used to +# offer the user a choice of login mechanisms. +# +# idp_icon: An optional icon for this identity provider, which is presented +# by clients and Synapse's own IdP picker page. If given, must be an +# MXC URI of the format mxc:///. (An easy way to +# obtain such an MXC URI is to upload an image to an (unencrypted) room +# and then copy the "url" from the source of the event.) +# +# idp_brand: An optional brand for this identity provider, allowing clients +# to style the login flow according to the identity provider in question. +# See the spec for possible options here. +# +# discover: set to 'false' to disable the use of the OIDC discovery mechanism +# to discover endpoints. Defaults to true. +# +# issuer: Required. The OIDC issuer. Used to validate tokens and (if discovery +# is enabled) to discover the provider's endpoints. +# +# client_id: Required. oauth2 client id to use. +# +# client_secret: oauth2 client secret to use. May be omitted if +# client_secret_jwt_key is given, or if client_auth_method is 'none'. +# +# client_secret_jwt_key: Alternative to client_secret: details of a key used +# to create a JSON Web Token to be used as an OAuth2 client secret. If +# given, must be a dictionary with the following properties: +# +# key: a pem-encoded signing key. Must be a suitable key for the +# algorithm specified. Required unless 'key_file' is given. +# +# key_file: the path to file containing a pem-encoded signing key file. +# Required unless 'key' is given. +# +# jwt_header: a dictionary giving properties to include in the JWT +# header. Must include the key 'alg', giving the algorithm used to +# sign the JWT, such as "ES256", using the JWA identifiers in +# RFC7518. +# +# jwt_payload: an optional dictionary giving properties to include in +# the JWT payload. Normally this should include an 'iss' key. +# +# client_auth_method: auth method to use when exchanging the token. Valid +# values are 'client_secret_basic' (default), 'client_secret_post' and +# 'none'. +# +# scopes: list of scopes to request. This should normally include the "openid" +# scope. Defaults to ["openid"]. +# +# authorization_endpoint: the oauth2 authorization endpoint. Required if +# provider discovery is disabled. +# +# token_endpoint: the oauth2 token endpoint. Required if provider discovery is +# disabled. +# +# userinfo_endpoint: the OIDC userinfo endpoint. Required if discovery is +# disabled and the 'openid' scope is not requested. +# +# jwks_uri: URI where to fetch the JWKS. Required if discovery is disabled and +# the 'openid' scope is used. +# +# skip_verification: set to 'true' to skip metadata verification. Use this if +# you are connecting to a provider that is not OpenID Connect compliant. +# Defaults to false. Avoid this in production. +# +# user_profile_method: Whether to fetch the user profile from the userinfo +# endpoint, or to rely on the data returned in the id_token from the +# token_endpoint. +# +# Valid values are: 'auto' or 'userinfo_endpoint'. +# +# Defaults to 'auto', which uses the userinfo endpoint if 'openid' is +# not included in 'scopes'. Set to 'userinfo_endpoint' to always use the +# userinfo endpoint. +# +# allow_existing_users: set to 'true' to allow a user logging in via OIDC to +# match a pre-existing account instead of failing. This could be used if +# switching from password logins to OIDC. Defaults to false. +# +# user_mapping_provider: Configuration for how attributes returned from a OIDC +# provider are mapped onto a matrix user. This setting has the following +# sub-properties: +# +# module: The class name of a custom mapping module. Default is +# 'synapse.handlers.oidc.JinjaOidcMappingProvider'. +# See https://matrix-org.github.io/synapse/latest/sso_mapping_providers.html#openid-mapping-providers +# for information on implementing a custom mapping provider. +# +# config: Configuration for the mapping provider module. This section will +# be passed as a Python dictionary to the user mapping provider +# module's `parse_config` method. +# +# For the default provider, the following settings are available: +# +# subject_claim: name of the claim containing a unique identifier +# for the user. Defaults to 'sub', which OpenID Connect +# compliant providers should provide. +# +# localpart_template: Jinja2 template for the localpart of the MXID. +# If this is not set, the user will be prompted to choose their +# own username (see the documentation for the +# 'sso_auth_account_details.html' template). This template can +# use the 'localpart_from_email' filter. +# +# confirm_localpart: Whether to prompt the user to validate (or +# change) the generated localpart (see the documentation for the +# 'sso_auth_account_details.html' template), instead of +# registering the account right away. +# +# display_name_template: Jinja2 template for the display name to set +# on first login. If unset, no displayname will be set. +# +# email_template: Jinja2 template for the email address of the user. +# If unset, no email address will be added to the account. +# +# extra_attributes: a map of Jinja2 templates for extra attributes +# to send back to the client during login. +# Note that these are non-standard and clients will ignore them +# without modifications. +# +# When rendering, the Jinja2 templates are given a 'user' variable, +# which is set to the claims returned by the UserInfo Endpoint and/or +# in the ID Token. +# +# It is possible to configure Synapse to only allow logins if certain attributes +# match particular values in the OIDC userinfo. The requirements can be listed under +# `attribute_requirements` as shown below. All of the listed attributes must +# match for the login to be permitted. Additional attributes can be added to +# userinfo by expanding the `scopes` section of the OIDC config to retrieve +# additional information from the OIDC provider. +# +# If the OIDC claim is a list, then the attribute must match any value in the list. +# Otherwise, it must exactly match the value of the claim. Using the example +# below, the `family_name` claim MUST be "Stephensson", but the `groups` +# claim MUST contain "admin". +# +# attribute_requirements: +# - attribute: family_name +# value: "Stephensson" +# - attribute: groups +# value: "admin" +# +# See https://matrix-org.github.io/synapse/latest/openid.html +# for information on how to configure these options. +# +# For backwards compatibility, it is also possible to configure a single OIDC +# provider via an 'oidc_config' setting. This is now deprecated and admins are +# advised to migrate to the 'oidc_providers' format. (When doing that migration, +# use 'oidc' for the idp_id to ensure that existing users continue to be +# recognised.) +# +oidc_providers: + # Generic example + # + #- idp_id: my_idp + # idp_name: "My OpenID provider" + # idp_icon: "mxc://example.com/mediaid" + # discover: false + # issuer: "https://accounts.example.com/" + # client_id: "provided-by-your-issuer" + # client_secret: "provided-by-your-issuer" + # client_auth_method: client_secret_post + # scopes: ["openid", "profile"] + # authorization_endpoint: "https://accounts.example.com/oauth2/auth" + # token_endpoint: "https://accounts.example.com/oauth2/token" + # userinfo_endpoint: "https://accounts.example.com/userinfo" + # jwks_uri: "https://accounts.example.com/.well-known/jwks.json" + # skip_verification: true + # user_mapping_provider: + # config: + # subject_claim: "id" + # localpart_template: "{{ user.login }}" + # display_name_template: "{{ user.name }}" + # email_template: "{{ user.email }}" + # attribute_requirements: + # - attribute: userGroup + # value: "synapseUsers" + + +# Enable Central Authentication Service (CAS) for registration and login. +# +cas_config: + # Uncomment the following to enable authorization against a CAS server. + # Defaults to false. + # + #enabled: true + + # The URL of the CAS authorization endpoint. + # + #server_url: "https://cas-server.com" + + # The attribute of the CAS response to use as the display name. + # + # If unset, no displayname will be set. + # + #displayname_attribute: name + + # It is possible to configure Synapse to only allow logins if CAS attributes + # match particular values. All of the keys in the mapping below must exist + # and the values must match the given value. Alternately if the given value + # is None then any value is allowed (the attribute just must exist). + # All of the listed attributes must match for the login to be permitted. + # + #required_attributes: + # userGroup: "staff" + # department: None + + +# Additional settings to use with single-sign on systems such as OpenID Connect, +# SAML2 and CAS. +# +# Server admins can configure custom templates for pages related to SSO. See +# https://matrix-org.github.io/synapse/latest/templates.html for more information. +# +sso: + # A list of client URLs which are whitelisted so that the user does not + # have to confirm giving access to their account to the URL. Any client + # whose URL starts with an entry in the following list will not be subject + # to an additional confirmation step after the SSO login is completed. + # + # WARNING: An entry such as "https://my.client" is insecure, because it + # will also match "https://my.client.evil.site", exposing your users to + # phishing attacks from evil.site. To avoid this, include a slash after the + # hostname: "https://my.client/". + # + # The login fallback page (used by clients that don't natively support the + # required login flows) is whitelisted in addition to any URLs in this list. + # + # By default, this list contains only the login fallback page. + # + #client_whitelist: + # - https://riot.im/develop + # - https://my.custom.client/ + + # Uncomment to keep a user's profile fields in sync with information from + # the identity provider. Currently only syncing the displayname is + # supported. Fields are checked on every SSO login, and are updated + # if necessary. + # + # Note that enabling this option will override user profile information, + # regardless of whether users have opted-out of syncing that + # information when first signing in. Defaults to false. + # + #update_profile_information: true + + +# JSON web token integration. The following settings can be used to make +# Synapse JSON web tokens for authentication, instead of its internal +# password database. +# +# Each JSON Web Token needs to contain a "sub" (subject) claim, which is +# used as the localpart of the mxid. +# +# Additionally, the expiration time ("exp"), not before time ("nbf"), +# and issued at ("iat") claims are validated if present. +# +# Note that this is a non-standard login type and client support is +# expected to be non-existent. +# +# See https://matrix-org.github.io/synapse/latest/jwt.html. +# +#jwt_config: + # Uncomment the following to enable authorization using JSON web + # tokens. Defaults to false. + # + #enabled: true + + # This is either the private shared secret or the public key used to + # decode the contents of the JSON web token. + # + # Required if 'enabled' is true. + # + #secret: "provided-by-your-issuer" + + # The algorithm used to sign the JSON web token. + # + # Supported algorithms are listed at + # https://pyjwt.readthedocs.io/en/latest/algorithms.html + # + # Required if 'enabled' is true. + # + #algorithm: "provided-by-your-issuer" + + # Name of the claim containing a unique identifier for the user. + # + # Optional, defaults to `sub`. + # + #subject_claim: "sub" + + # The issuer to validate the "iss" claim against. + # + # Optional, if provided the "iss" claim will be required and + # validated for all JSON web tokens. + # + #issuer: "provided-by-your-issuer" + + # A list of audiences to validate the "aud" claim against. + # + # Optional, if provided the "aud" claim will be required and + # validated for all JSON web tokens. + # + # Note that if the "aud" claim is included in a JSON web token then + # validation will fail without configuring audiences. + # + #audiences: + # - "provided-by-your-issuer" + + +password_config: + # Uncomment to disable password login + # + #enabled: false + + # Uncomment to disable authentication against the local password + # database. This is ignored if `enabled` is false, and is only useful + # if you have other password_providers. + # + #localdb_enabled: false + + # Uncomment and change to a secret random string for extra security. + # DO NOT CHANGE THIS AFTER INITIAL SETUP! + # + #pepper: "EVEN_MORE_SECRET" + + # Define and enforce a password policy. Each parameter is optional. + # This is an implementation of MSC2000. + # + policy: + # Whether to enforce the password policy. + # Defaults to 'false'. + # + #enabled: true + + # Minimum accepted length for a password. + # Defaults to 0. + # + #minimum_length: 15 + + # Whether a password must contain at least one digit. + # Defaults to 'false'. + # + #require_digit: true + + # Whether a password must contain at least one symbol. + # A symbol is any character that's not a number or a letter. + # Defaults to 'false'. + # + #require_symbol: true + + # Whether a password must contain at least one lowercase letter. + # Defaults to 'false'. + # + #require_lowercase: true + + # Whether a password must contain at least one uppercase letter. + # Defaults to 'false'. + # + #require_uppercase: true + +ui_auth: + # The amount of time to allow a user-interactive authentication session + # to be active. + # + # This defaults to 0, meaning the user is queried for their credentials + # before every action, but this can be overridden to allow a single + # validation to be re-used. This weakens the protections afforded by + # the user-interactive authentication process, by allowing for multiple + # (and potentially different) operations to use the same validation session. + # + # This is ignored for potentially "dangerous" operations (including + # deactivating an account, modifying an account password, and + # adding a 3PID). + # + # Uncomment below to allow for credential validation to last for 15 + # seconds. + # + #session_timeout: "15s" + + +# Configuration for sending emails from Synapse. +# +# Server admins can configure custom templates for email content. See +# https://matrix-org.github.io/synapse/latest/templates.html for more information. +# +email: + # The hostname of the outgoing SMTP server to use. Defaults to 'localhost'. + # + #smtp_host: mail.server + + # The port on the mail server for outgoing SMTP. Defaults to 25. + # + #smtp_port: 587 + + # Username/password for authentication to the SMTP server. By default, no + # authentication is attempted. + # + #smtp_user: "exampleusername" + #smtp_pass: "examplepassword" + + # Uncomment the following to require TLS transport security for SMTP. + # By default, Synapse will connect over plain text, and will then switch to + # TLS via STARTTLS *if the SMTP server supports it*. If this option is set, + # Synapse will refuse to connect unless the server supports STARTTLS. + # + #require_transport_security: true + + # Uncomment the following to disable TLS for SMTP. + # + # By default, if the server supports TLS, it will be used, and the server + # must present a certificate that is valid for 'smtp_host'. If this option + # is set to false, TLS will not be used. + # + #enable_tls: false + + # notif_from defines the "From" address to use when sending emails. + # It must be set if email sending is enabled. + # + # The placeholder '%(app)s' will be replaced by the application name, + # which is normally 'app_name' (below), but may be overridden by the + # Matrix client application. + # + # Note that the placeholder must be written '%(app)s', including the + # trailing 's'. + # + #notif_from: "Your Friendly %(app)s homeserver " + + # app_name defines the default value for '%(app)s' in notif_from and email + # subjects. It defaults to 'Matrix'. + # + #app_name: my_branded_matrix_server + + # Uncomment the following to enable sending emails for messages that the user + # has missed. Disabled by default. + # + #enable_notifs: true + + # Uncomment the following to disable automatic subscription to email + # notifications for new users. Enabled by default. + # + #notif_for_new_users: false + + # Custom URL for client links within the email notifications. By default + # links will be based on "https://matrix.to". + # + # (This setting used to be called riot_base_url; the old name is still + # supported for backwards-compatibility but is now deprecated.) + # + #client_base_url: "http://localhost/riot" + + # Configure the time that a validation email will expire after sending. + # Defaults to 1h. + # + #validation_token_lifetime: 15m + + # The web client location to direct users to during an invite. This is passed + # to the identity server as the org.matrix.web_client_location key. Defaults + # to unset, giving no guidance to the identity server. + # + #invite_client_location: https://app.element.io + + # Subjects to use when sending emails from Synapse. + # + # The placeholder '%(app)s' will be replaced with the value of the 'app_name' + # setting above, or by a value dictated by the Matrix client application. + # + # If a subject isn't overridden in this configuration file, the value used as + # its example will be used. + # + #subjects: + + # Subjects for notification emails. + # + # On top of the '%(app)s' placeholder, these can use the following + # placeholders: + # + # * '%(person)s', which will be replaced by the display name of the user(s) + # that sent the message(s), e.g. "Alice and Bob". + # * '%(room)s', which will be replaced by the name of the room the + # message(s) have been sent to, e.g. "My super room". + # + # See the example provided for each setting to see which placeholder can be + # used and how to use them. + # + # Subject to use to notify about one message from one or more user(s) in a + # room which has a name. + #message_from_person_in_room: "[%(app)s] You have a message on %(app)s from %(person)s in the %(room)s room..." + # + # Subject to use to notify about one message from one or more user(s) in a + # room which doesn't have a name. + #message_from_person: "[%(app)s] You have a message on %(app)s from %(person)s..." + # + # Subject to use to notify about multiple messages from one or more users in + # a room which doesn't have a name. + #messages_from_person: "[%(app)s] You have messages on %(app)s from %(person)s..." + # + # Subject to use to notify about multiple messages in a room which has a + # name. + #messages_in_room: "[%(app)s] You have messages on %(app)s in the %(room)s room..." + # + # Subject to use to notify about multiple messages in multiple rooms. + #messages_in_room_and_others: "[%(app)s] You have messages on %(app)s in the %(room)s room and others..." + # + # Subject to use to notify about multiple messages from multiple persons in + # multiple rooms. This is similar to the setting above except it's used when + # the room in which the notification was triggered has no name. + #messages_from_person_and_others: "[%(app)s] You have messages on %(app)s from %(person)s and others..." + # + # Subject to use to notify about an invite to a room which has a name. + #invite_from_person_to_room: "[%(app)s] %(person)s has invited you to join the %(room)s room on %(app)s..." + # + # Subject to use to notify about an invite to a room which doesn't have a + # name. + #invite_from_person: "[%(app)s] %(person)s has invited you to chat on %(app)s..." + + # Subject for emails related to account administration. + # + # On top of the '%(app)s' placeholder, these one can use the + # '%(server_name)s' placeholder, which will be replaced by the value of the + # 'server_name' setting in your Synapse configuration. + # + # Subject to use when sending a password reset email. + #password_reset: "[%(server_name)s] Password reset" + # + # Subject to use when sending a verification email to assert an address's + # ownership. + #email_validation: "[%(server_name)s] Validate your email" + + + +## Push ## + +push: + # Clients requesting push notifications can either have the body of + # the message sent in the notification poke along with other details + # like the sender, or just the event ID and room ID (`event_id_only`). + # If clients choose the former, this option controls whether the + # notification request includes the content of the event (other details + # like the sender are still included). For `event_id_only` push, it + # has no effect. + # + # For modern android devices the notification content will still appear + # because it is loaded by the app. iPhone, however will send a + # notification saying only that a message arrived and who it came from. + # + # The default value is "true" to include message details. Uncomment to only + # include the event ID and room ID in push notification payloads. + # + #include_content: false + + # When a push notification is received, an unread count is also sent. + # This number can either be calculated as the number of unread messages + # for the user, or the number of *rooms* the user has unread messages in. + # + # The default value is "true", meaning push clients will see the number of + # rooms with unread messages in them. Uncomment to instead send the number + # of unread messages. + # + #group_unread_count_by_room: false + + +## Rooms ## + +# Controls whether locally-created rooms should be end-to-end encrypted by +# default. +# +# Possible options are "all", "invite", and "off". They are defined as: +# +# * "all": any locally-created room +# * "invite": any room created with the "private_chat" or "trusted_private_chat" +# room creation presets +# * "off": this option will take no effect +# +# The default value is "off". +# +# Note that this option will only affect rooms created after it is set. It +# will also not affect rooms created by other servers. +# +#encryption_enabled_by_default_for_room_type: invite + + +# Uncomment to allow non-server-admin users to create groups on this server +# +#enable_group_creation: true + +# If enabled, non server admins can only create groups with local parts +# starting with this prefix +# +#group_creation_prefix: "unofficial_" + + + +# User Directory configuration +# +user_directory: + # Defines whether users can search the user directory. If false then + # empty responses are returned to all queries. Defaults to true. + # + # Uncomment to disable the user directory. + # + #enabled: false + + # Defines whether to search all users visible to your HS when searching + # the user directory. If false, search results will only contain users + # visible in public rooms and users sharing a room with the requester. + # Defaults to false. + # + # NB. If you set this to true, and the last time the user_directory search + # indexes were (re)built was before Synapse 1.44, you'll have to + # rebuild the indexes in order to search through all known users. + # These indexes are built the first time Synapse starts; admins can + # manually trigger a rebuild via API following the instructions at + # https://matrix-org.github.io/synapse/latest/usage/administration/admin_api/background_updates.html#run + # + # Uncomment to return search results containing all known users, even if that + # user does not share a room with the requester. + # + #search_all_users: true + + # Defines whether to prefer local users in search query results. + # If True, local users are more likely to appear above remote users + # when searching the user directory. Defaults to false. + # + # Uncomment to prefer local over remote users in user directory search + # results. + # + #prefer_local_users: true + + +# User Consent configuration +# +# for detailed instructions, see +# https://matrix-org.github.io/synapse/latest/consent_tracking.html +# +# Parts of this section are required if enabling the 'consent' resource under +# 'listeners', in particular 'template_dir' and 'version'. +# +# 'template_dir' gives the location of the templates for the HTML forms. +# This directory should contain one subdirectory per language (eg, 'en', 'fr'), +# and each language directory should contain the policy document (named as +# '.html') and a success page (success.html). +# +# 'version' specifies the 'current' version of the policy document. It defines +# the version to be served by the consent resource if there is no 'v' +# parameter. +# +# 'server_notice_content', if enabled, will send a user a "Server Notice" +# asking them to consent to the privacy policy. The 'server_notices' section +# must also be configured for this to work. Notices will *not* be sent to +# guest users unless 'send_server_notice_to_guests' is set to true. +# +# 'block_events_error', if set, will block any attempts to send events +# until the user consents to the privacy policy. The value of the setting is +# used as the text of the error. +# +# 'require_at_registration', if enabled, will add a step to the registration +# process, similar to how captcha works. Users will be required to accept the +# policy before their account is created. +# +# 'policy_name' is the display name of the policy users will see when registering +# for an account. Has no effect unless `require_at_registration` is enabled. +# Defaults to "Privacy Policy". +# +#user_consent: +# template_dir: res/templates/privacy +# version: 1.0 +# server_notice_content: +# msgtype: m.text +# body: >- +# To continue using this homeserver you must review and agree to the +# terms and conditions at %(consent_uri)s +# send_server_notice_to_guests: true +# block_events_error: >- +# To continue using this homeserver you must review and agree to the +# terms and conditions at %(consent_uri)s +# require_at_registration: false +# policy_name: Privacy Policy +# + + + +# Settings for local room and user statistics collection. See +# https://matrix-org.github.io/synapse/latest/room_and_user_statistics.html. +# +stats: + # Uncomment the following to disable room and user statistics. Note that doing + # so may cause certain features (such as the room directory) not to work + # correctly. + # + #enabled: false + + +# Server Notices room configuration +# +# Uncomment this section to enable a room which can be used to send notices +# from the server to users. It is a special room which cannot be left; notices +# come from a special "notices" user id. +# +# If you uncomment this section, you *must* define the system_mxid_localpart +# setting, which defines the id of the user which will be used to send the +# notices. +# +# It's also possible to override the room name, the display name of the +# "notices" user, and the avatar for the user. +# +#server_notices: +# system_mxid_localpart: notices +# system_mxid_display_name: "Server Notices" +# system_mxid_avatar_url: "mxc://server.com/oumMVlgDnLYFaPVkExemNVVZ" +# room_name: "Server Notices" + + + +# Uncomment to disable searching the public room list. When disabled +# blocks searching local and remote room lists for local and remote +# users by always returning an empty list for all queries. +# +#enable_room_list_search: false + +# The `alias_creation` option controls who's allowed to create aliases +# on this server. +# +# The format of this option is a list of rules that contain globs that +# match against user_id, room_id and the new alias (fully qualified with +# server name). The action in the first rule that matches is taken, +# which can currently either be "allow" or "deny". +# +# Missing user_id/room_id/alias fields default to "*". +# +# If no rules match the request is denied. An empty list means no one +# can create aliases. +# +# Options for the rules include: +# +# user_id: Matches against the creator of the alias +# alias: Matches against the alias being created +# room_id: Matches against the room ID the alias is being pointed at +# action: Whether to "allow" or "deny" the request if the rule matches +# +# The default is: +# +#alias_creation_rules: +# - user_id: "*" +# alias: "*" +# room_id: "*" +# action: allow + +# The `room_list_publication_rules` option controls who can publish and +# which rooms can be published in the public room list. +# +# The format of this option is the same as that for +# `alias_creation_rules`. +# +# If the room has one or more aliases associated with it, only one of +# the aliases needs to match the alias rule. If there are no aliases +# then only rules with `alias: *` match. +# +# If no rules match the request is denied. An empty list means no one +# can publish rooms. +# +# Options for the rules include: +# +# user_id: Matches against the creator of the alias +# room_id: Matches against the room ID being published +# alias: Matches against any current local or canonical aliases +# associated with the room +# action: Whether to "allow" or "deny" the request if the rule matches +# +# The default is: +# +#room_list_publication_rules: +# - user_id: "*" +# alias: "*" +# room_id: "*" +# action: allow + + +## Opentracing ## + +# These settings enable opentracing, which implements distributed tracing. +# This allows you to observe the causal chains of events across servers +# including requests, key lookups etc., across any server running +# synapse or any other other services which supports opentracing +# (specifically those implemented with Jaeger). +# +opentracing: + # tracing is disabled by default. Uncomment the following line to enable it. + # + #enabled: true + + # The list of homeservers we wish to send and receive span contexts and span baggage. + # See https://matrix-org.github.io/synapse/latest/opentracing.html. + # + # This is a list of regexes which are matched against the server_name of the + # homeserver. + # + # By default, it is empty, so no servers are matched. + # + #homeserver_whitelist: + # - ".*" + + # A list of the matrix IDs of users whose requests will always be traced, + # even if the tracing system would otherwise drop the traces due to + # probabilistic sampling. + # + # By default, the list is empty. + # + #force_tracing_for_users: + # - "@user1:server_name" + # - "@user2:server_name" + + # Jaeger can be configured to sample traces at different rates. + # All configuration options provided by Jaeger can be set here. + # Jaeger's configuration is mostly related to trace sampling which + # is documented here: + # https://www.jaegertracing.io/docs/latest/sampling/. + # + #jaeger_config: + # sampler: + # type: const + # param: 1 + # logging: + # false + + +## Workers ## + +# Disables sending of outbound federation transactions on the main process. +# Uncomment if using a federation sender worker. +# +#send_federation: false + +# It is possible to run multiple federation sender workers, in which case the +# work is balanced across them. +# +# This configuration must be shared between all federation sender workers, and if +# changed all federation sender workers must be stopped at the same time and then +# started, to ensure that all instances are running with the same config (otherwise +# events may be dropped). +# +#federation_sender_instances: +# - federation_sender1 + +# When using workers this should be a map from `worker_name` to the +# HTTP replication listener of the worker, if configured. +# +#instance_map: +# worker1: +# host: localhost +# port: 8034 + +# Experimental: When using workers you can define which workers should +# handle event persistence and typing notifications. Any worker +# specified here must also be in the `instance_map`. +# +#stream_writers: +# events: worker1 +# typing: worker1 + +# The worker that is used to run background tasks (e.g. cleaning up expired +# data). If not provided this defaults to the main process. +# +#run_background_tasks_on: worker1 + +# A shared secret used by the replication APIs to authenticate HTTP requests +# from workers. +# +# By default this is unused and traffic is not authenticated. +# +#worker_replication_secret: "" + + +# Configuration for Redis when using workers. This *must* be enabled when +# using workers (unless using old style direct TCP configuration). +# +redis: + # Uncomment the below to enable Redis support. + # + #enabled: true + + # Optional host and port to use to connect to redis. Defaults to + # localhost and 6379 + # + #host: localhost + #port: 6379 + + # Optional password if configured on the Redis instance + # + #password: + + +## Background Updates ## + +# Background updates are database updates that are run in the background in batches. +# The duration, minimum batch size, default batch size, whether to sleep between batches and if so, how long to +# sleep can all be configured. This is helpful to speed up or slow down the updates. +# +background_updates: + # How long in milliseconds to run a batch of background updates for. Defaults to 100. Uncomment and set + # a time to change the default. + # + #background_update_duration_ms: 500 + + # Whether to sleep between updates. Defaults to True. Uncomment to change the default. + # + #sleep_enabled: false + + # If sleeping between updates, how long in milliseconds to sleep for. Defaults to 1000. Uncomment + # and set a duration to change the default. + # + #sleep_duration_ms: 300 + + # Minimum size a batch of background updates can be. Must be greater than 0. Defaults to 1. Uncomment and + # set a size to change the default. + # + #min_batch_size: 10 + + # The batch size to use for the first iteration of a new background update. The default is 100. + # Uncomment and set a size to change the default. + # + #default_batch_size: 50 + + +# vim:ft=yaml diff --git a/integration_test/synapse/data/localhost.log.config b/integration_test/synapse/data/localhost.log.config new file mode 100644 index 0000000..eeec5ed --- /dev/null +++ b/integration_test/synapse/data/localhost.log.config @@ -0,0 +1,27 @@ +version: 1 + +formatters: + precise: + format: '%(asctime)s - %(name)s - %(lineno)d - %(levelname)s - %(request)s - %(message)s' + +handlers: + + + console: + class: logging.StreamHandler + formatter: precise + +loggers: + synapse.storage.SQL: + # beware: increasing this to DEBUG will make synapse log sensitive + # information such as access tokens. + level: INFO + +root: + level: INFO + + + handlers: [console] + + +disable_existing_loggers: false \ No newline at end of file diff --git a/integration_test/synapse/data/localhost.signing.key b/integration_test/synapse/data/localhost.signing.key new file mode 100644 index 0000000..bba0e02 --- /dev/null +++ b/integration_test/synapse/data/localhost.signing.key @@ -0,0 +1 @@ +ed25519 a_SLrz 0Ho/81rZZve88zdRxhaXWHUT6K3OqzmP35rNMZBUr6I diff --git a/integration_test/utils/tatu_chat_tester.dart b/integration_test/utils/tatu_chat_tester.dart new file mode 100644 index 0000000..64c5370 --- /dev/null +++ b/integration_test/utils/tatu_chat_tester.dart @@ -0,0 +1,128 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/main.dart' as app; +import 'package:flutter/widgets.dart'; +import 'package:flutter_test/flutter_test.dart'; + +extension type TatuChatTester(WidgetTester tester) { + static int _printCounter = 1; + + void _print(String message) { + debugPrint( + '[INTEGRATION TEST] ${DateTime.now().toIso8601String()} | Step ${_printCounter++} - $message', + ); + } + + Future isVisible( + Object object, { + Duration timeout = const Duration(seconds: 3), + }) async { + final end = DateTime.now().add(timeout); + while (object.toFinder().evaluate().isEmpty) { + if (DateTime.now().isAfter(end)) { + return false; + } + await tester.pump(const Duration(milliseconds: 500)); + } + return true; + } + + Future waitFor( + Object object, { + Duration timeout = const Duration(seconds: 30), + }) async { + _print('👀 Waiting for "$object" (${timeout.inSeconds}s)'); + final end = DateTime.now().add(timeout); + while (object.toFinder().evaluate().isEmpty) { + if (DateTime.now().isAfter(end)) { + throw Exception('⏱️ Timed out waiting for "$object"!'); + } + await tester.pump(const Duration(milliseconds: 500)); + } + } + + Future _ensureVisible(Object object, {int? index}) async { + var finder = object.toFinder(); + if (finder.evaluate().isEmpty) await waitFor(object); + + if (finder.evaluate().length > 1) { + if (index == null) { + throw Exception( + '⚠️ Found ${finder.evaluate().length} "$object" objects. Please specify an index!', + ); + } + if (finder.evaluate().length <= index) { + throw Exception( + '⚠️ Found ${finder.evaluate().length} "$object" objects. So index $index does not exist!', + ); + } + finder = finder.at(index); + } + return finder; + } + + Future tapOn( + Object object, { + int? index, + bool pumpAndSettle = true, + }) async { + final finder = await _ensureVisible(object, index: index); + + _print('👆 Tapping on "$object"'); + await tester.tap(finder); + if (pumpAndSettle) await tester.pumpAndSettle(); + } + + Future goBack() => tapOn(find.byTooltip('Back')); + + Future enterText( + Object object, + String text, { + int? index, + bool pumpAndSettle = true, + }) async { + final finder = await _ensureVisible(object, index: index); + + _print('⌨️ Enter "$text" into "$object"'); + await tester.enterText(finder, text); + FocusManager.instance.primaryFocus?.unfocus(); + if (pumpAndSettle) await tester.pumpAndSettle(); + } + + Future scrollUntilVisible( + Object object, { + int? index, + Object? scrollable, + }) async { + _print('📜 Scrolling to "$object"'); + await tester.scrollUntilVisible( + object.toFinder(), + 500.0, + scrollable: scrollable?.toFinder() ?? find.byType(Scrollable).last, + ); + await tester.pumpAndSettle(); + } +} + +extension on Object { + Finder toFinder() => switch (this) { + final Finder finder => finder, + final String string => find.text(string), + final Key key => find.byKey(key), + final IconData icon => find.byIcon(icon), + final Type type => find.byType(type), + final Widget widget => find.byWidget(widget), + _ => throw Exception('Unsupported finder type: $runtimeType'), + }; +} + +extension StartTest on WidgetTester { + Future startTatuChatTest() async { + app.main(['integration_test']); + + return TatuChatTester(this); + } +} diff --git a/ios/.gitignore b/ios/.gitignore new file mode 100644 index 0000000..9a29ebd --- /dev/null +++ b/ios/.gitignore @@ -0,0 +1,33 @@ +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* +build/ + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/ios/FluffyChat Share/Base.lproj/MainInterface.storyboard b/ios/FluffyChat Share/Base.lproj/MainInterface.storyboard new file mode 100644 index 0000000..286a508 --- /dev/null +++ b/ios/FluffyChat Share/Base.lproj/MainInterface.storyboard @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/FluffyChat Share/FluffyChat Share.entitlements b/ios/FluffyChat Share/FluffyChat Share.entitlements new file mode 100644 index 0000000..932f3e0 --- /dev/null +++ b/ios/FluffyChat Share/FluffyChat Share.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.application-groups + + group.im.fluffychat.app + + + diff --git a/ios/FluffyChat Share/Info.plist b/ios/FluffyChat Share/Info.plist new file mode 100644 index 0000000..c7d41ae --- /dev/null +++ b/ios/FluffyChat Share/Info.plist @@ -0,0 +1,52 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + TatuChat Share + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + $(MARKETING_VERSION) + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSExtension + + NSExtensionAttributes + + NSExtensionActivationRule + + NSExtensionActivationSupportsFileWithMaxCount + 10 + NSExtensionActivationSupportsImageWithMaxCount + 10 + NSExtensionActivationSupportsMovieWithMaxCount + 10 + NSExtensionActivationSupportsText + + NSExtensionActivationSupportsWebURLWithMaxCount + 1 + + PHSupportedMediaTypes + + Video + Image + + + NSExtensionMainStoryboard + MainInterface + NSExtensionPointIdentifier + com.apple.share-services + + + diff --git a/ios/FluffyChat Share/ShareViewController.swift b/ios/FluffyChat Share/ShareViewController.swift new file mode 100644 index 0000000..f0f85c2 --- /dev/null +++ b/ios/FluffyChat Share/ShareViewController.swift @@ -0,0 +1,28 @@ +// If you get no such module 'receive_sharing_intent' error. +// Go to Build Phases of your Runner target and +// move `Embed Foundation Extension` to the top of `Thin Binary`. +import receive_sharing_intent + +class ShareViewController: RSIShareViewController { + + // Use this method to return false if you don't want to redirect to host app automatically. + // Default is true + override func shouldAutoRedirect() -> Bool { + return false + } + + // Workaround to not display post dialog from + // https://github.com/KasemJaffer/receive_sharing_intent/issues/207#issuecomment-2024329619 + open override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + // Auto-trigger completion for URLs/text content + // The parent class processes attachments, but we need to ensure completion + // when view is hidden, especially for text/URL content + DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { [weak self] in + // Small delay to allow parent processing to complete + // Then trigger post to ensure extension completes + self?.didSelectPost() + } + } + +} diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..ab8e063 --- /dev/null +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + + diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..e8efba1 --- /dev/null +++ b/ios/Flutter/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "Generated.xcconfig" diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..399e934 --- /dev/null +++ b/ios/Flutter/Release.xcconfig @@ -0,0 +1,2 @@ +#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "Generated.xcconfig" diff --git a/ios/Gemfile b/ios/Gemfile new file mode 100644 index 0000000..0bc467d --- /dev/null +++ b/ios/Gemfile @@ -0,0 +1,8 @@ +source "https://rubygems.org" + +gem "fastlane" + +# Workaround for ruby 3.4 https://github.com/fastlane/fastlane/issues/29183 +gem "abbrev" +gem "mutex_m" +gem "ostruct" \ No newline at end of file diff --git a/ios/Localizable.xcstrings b/ios/Localizable.xcstrings new file mode 100644 index 0000000..7895903 --- /dev/null +++ b/ios/Localizable.xcstrings @@ -0,0 +1,58 @@ +{ + "sourceLanguage" : "en", + "strings" : { + "%lld unread messages" : { + "comment" : "Default notification title", + "localizations" : { + "de" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ungelesene Nachricht" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld ungelesene nachrichten" + } + } + } + } + }, + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unread message" + } + }, + "other" : { + "stringUnit" : { + "state" : "new", + "value" : "%lld unread messages" + } + } + } + } + } + } + }, + "New message - open app to read" : { + "comment" : "Default notification body", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Neue Nachricht - App öffnen zum lesen" + } + } + } + } + }, + "version" : "1.0" +} \ No newline at end of file diff --git a/ios/Notification Service Extension/Info.plist b/ios/Notification Service Extension/Info.plist new file mode 100644 index 0000000..57421eb --- /dev/null +++ b/ios/Notification Service Extension/Info.plist @@ -0,0 +1,13 @@ + + + + + NSExtension + + NSExtensionPointIdentifier + com.apple.usernotifications.service + NSExtensionPrincipalClass + $(PRODUCT_MODULE_NAME).NotificationService + + + diff --git a/ios/Notification Service Extension/Notification Service Extension.entitlements b/ios/Notification Service Extension/Notification Service Extension.entitlements new file mode 100644 index 0000000..932f3e0 --- /dev/null +++ b/ios/Notification Service Extension/Notification Service Extension.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.application-groups + + group.im.fluffychat.app + + + diff --git a/ios/Notification Service Extension/NotificationService.swift b/ios/Notification Service Extension/NotificationService.swift new file mode 100644 index 0000000..63c4e98 --- /dev/null +++ b/ios/Notification Service Extension/NotificationService.swift @@ -0,0 +1,416 @@ +// +// NotificationService.swift +// Notification Extension +// +// Created by Christian Pauly on 26.08.25. +// + +import FMDB +import Foundation +import UserNotifications +import os + +class NotificationService: UNNotificationServiceExtension { + + var contentHandler: ((UNNotificationContent) -> Void)? + var bestAttemptContent: UNMutableNotificationContent? + + override func didReceive( + _ request: UNNotificationRequest, + withContentHandler contentHandler: + @escaping (UNNotificationContent) -> Void + ) { + self.contentHandler = contentHandler + bestAttemptContent = + (request.content.mutableCopy() as? UNMutableNotificationContent) + + guard let bestAttemptContent = bestAttemptContent else { return } + + // Uncomment to read the push message payload: + // os_log("[FluffyChatPushHelper] New message received: %{public}@", log: .default, type: .error, bestAttemptContent.userInfo) + os_log("[FluffyChatPushHelper] New message received") + + // Check if notification contains room ID and event ID: + guard let roomId = bestAttemptContent.userInfo["room_id"] as? String, + let eventId = bestAttemptContent.userInfo["event_id"] as? String + else { + os_log("[FluffyChatPushHelper] Room ID or Event ID is missing!") + let emptyContent = UNMutableNotificationContent() + contentHandler(emptyContent) + return + } + + // Set thread identifier and fallback body: + bestAttemptContent.body = String( + localized: "New message - open app to read", + comment: "Default notification body" + ) + + var unread: Int? + if let countsJson = bestAttemptContent.userInfo["counts"] as? String, + let counts = try? JSONDecoder().decode( + NotificationCounts.self, + from: countsJson.data(using: .utf8)! + ) + { + unread = counts.unread + } + + // Set badge and fallback title: + bestAttemptContent.title = String( + localized: "\(unread ?? 1) unread messages", + comment: "Default notification title" + ) + if let unread = unread { + bestAttemptContent.badge = NSNumber(integerLiteral: unread) + } + + // Fetch the client_name: + guard + let devicesJson = bestAttemptContent.userInfo["devices"] as? String, + let devices = try? JSONDecoder().decode( + [NotificationDevice].self, + from: devicesJson.data(using: .utf8)! + ), + let clientName = devices.first?.data.client_name + else { + os_log( + "[FluffyChatPushHelper] No client_name found in Push Notification!" + ) + contentHandler(bestAttemptContent) + return + } + + bestAttemptContent.threadIdentifier = "\(clientName)_\(roomId)" + + // Open database: + guard let key = getDatabaseKey() else { + os_log("[FluffyChatPushHelper] Unable to get database key!") + contentHandler(bestAttemptContent) + return + } + guard let containerPath = FileManager.default.containerURL( + forSecurityApplicationGroupIdentifier: "group.im.fluffychat.app" + ) else { + os_log("[FluffyChatPushHelper] Unable to get container path!") + contentHandler(bestAttemptContent) + return + } + let databasePath = containerPath.appendingPathComponent("\(clientName).sqlite").path + guard let database = getDatabase(key: key, path: databasePath) else { + // getDatabase already logged the concrete SQLite error + os_log("[FluffyChatPushHelper] Unable to open database!") + contentHandler(bestAttemptContent) + return + } + + // Get room name: + var roomName = getRoomNameFromDatabase( + database: database, + roomId: roomId + ) + var roomAvatarUrl = getRoomAvatarFromDatabase(database: database, roomId: roomId) + + // Fall back to room heroes if no explicit room name + if roomName == nil || roomAvatarUrl == nil { + if let heroes = getRoomheroesFromDatabase( + database: database, + roomId: roomId + ) { + if !heroes.isEmpty { + roomName = + roomName + ?? heroes.map { hero in + hero.content.displayname + ?? String(localized: "FluffyChat User") + }.joined(separator: ", ") + roomAvatarUrl = roomAvatarUrl ?? heroes.first?.content.avatar_url + } else { + roomName = roomName ?? String(localized: "Empty chat") + } + } else { + roomName = roomName ?? String(localized: "New chat") + } + } + + if let roomName = roomName { + bestAttemptContent.title = roomName + } + + if let roomAvatarUrl = roomAvatarUrl { + do { + let attachment = try downloadAttachment(url: roomAvatarUrl, containerPath: containerPath) + bestAttemptContent.attachments = [attachment] + } catch { + os_log("[FluffyChatPushHelper] Unable to download avatar!") + } + } + + contentHandler(bestAttemptContent) + database.close() + } + + override func serviceExtensionTimeWillExpire() { + // Called just before the extension will be terminated by the system. + // Use this as an opportunity to deliver your "best attempt" at modified content, otherwise the original push payload will be used. + if let contentHandler = contentHandler, + let bestAttemptContent = bestAttemptContent + { + contentHandler(bestAttemptContent) + } + } + + func getDatabaseKey() -> String? { + // Fetch database key + let query: [String: Any] = [ + kSecClass as String: kSecClassGenericPassword, + kSecAttrService as String: "flutter_secure_storage_service", + kSecAttrAccount as String: "database_password", + kSecReturnData as String: true, + kSecAttrAccessGroup as String: "group.im.fluffychat.app", + ] + + var item: CFTypeRef? + let status = SecItemCopyMatching(query as CFDictionary, &item) + + guard status == errSecSuccess, + let data = item as? Data, + let key = String(data: data, encoding: .utf8) + else { + return nil + } + return key + } + + func getDatabase(key: String, path: String) -> FMDatabase? { + guard FileManager.default.fileExists(atPath: path) else { return nil } + + let database = FMDatabase(path: "file:\(path)?immutable=1") + // Open Database in read only mode: + guard database.open(withFlags: 0x0000_0001) else { + os_log( + "[FluffyChatPushHelper] sqlite open failed: %{public}@", + database.lastErrorMessage() + ) + return nil + } + + // Match Flutter / matrix-dart-sdk: PRAGMA KEY='…' (passphrase), not raw key bytes. + let escapedKey = key.replacingOccurrences(of: "'", with: "''") + guard database.executeStatements("PRAGMA key = '\(escapedKey)';") else { + os_log( + "[FluffyChatPushHelper] PRAGMA key failed: %{public}@", + database.lastErrorMessage() + ) + database.close() + return nil + } + + guard database.goodConnection else { + os_log( + "[FluffyChatPushHelper] bad connection after key: %{public}@", + database.lastErrorMessage() + ) + database.close() + return nil + } + + return database + } + + func getUserFromDatabase( + database: FMDatabase, + userId: String, + roomId: String + ) -> UserEventJson? { + do { + let roomMemberDatabaseKey = [roomId, userId].joined(separator: "|") + let roomMemberResult = try database.executeQuery( + "SELECT * FROM box_room_members WHERE k=?", + values: [roomMemberDatabaseKey] + ) + if roomMemberResult.next(), + let event = roomMemberResult.string(forColumn: "v") + { + let userEvent = try! JSONDecoder().decode( + UserEventJson.self, + from: event.data(using: .utf8)! + ) + return userEvent + } + } catch { + os_log( + "[FluffyChatPushHelper] DB query failed: %{public}@", + log: .default, + type: .error, + error.localizedDescription + ) + } + return nil + } + + func getRoomAvatarFromDatabase(database: FMDatabase, roomId: String) + -> String? + { + do { + // Database key format: "roomId|eventType|stateKey" + let roomAvatarDatabaseKey = [roomId, "m.room.avatar", ""].joined( + separator: "|" + ) + let roomAvatarResult = try database.executeQuery( + "SELECT * FROM box_preload_room_states WHERE k=?", + values: [roomAvatarDatabaseKey] + ) + if roomAvatarResult.next(), + let event = roomAvatarResult.string(forColumn: "v") + { + let roomAvatarEvent = try! JSONDecoder().decode( + RoomAvatarEventJson.self, + from: event.data(using: .utf8)! + ) + if let avatarUrl = roomAvatarEvent.content.url, !avatarUrl.isEmpty { + return avatarUrl + } + } + } catch { + os_log( + "[FluffyChatPushHelper] DB query failed: %{public}@", + log: .default, + type: .error, + error.localizedDescription + ) + } + return nil + } + + func getRoomNameFromDatabase(database: FMDatabase, roomId: String) + -> String? + { + do { + // Database key format: "roomId|eventType|stateKey" + let roomNameDatabaseKey = [roomId, "m.room.name", ""].joined( + separator: "|" + ) + let roomNameResult = try database.executeQuery( + "SELECT * FROM box_preload_room_states WHERE k=?", + values: [roomNameDatabaseKey] + ) + if roomNameResult.next(), + let event = roomNameResult.string(forColumn: "v") + { + let roomNameEvent = try! JSONDecoder().decode( + RoomNameEventJson.self, + from: event.data(using: .utf8)! + ) + if let name = roomNameEvent.content.name, !name.isEmpty { + return name + } + } + } catch { + os_log( + "[FluffyChatPushHelper] DB query failed: %{public}@", + log: .default, + type: .error, + error.localizedDescription + ) + } + return nil + } + + func getRoomheroesFromDatabase(database: FMDatabase, roomId: String) + -> [UserEventJson]? + { + do { + let roomResult = try database.executeQuery( + "SELECT * FROM box_rooms WHERE k=?", + values: [roomId] + ) + if roomResult.next(), + let roomJson = roomResult.string(forColumn: "v") + { + let room = try JSONDecoder().decode( + RoomJson.self, + from: roomJson.data(using: .utf8)! + ) + let heroes = room.summary.heroes.map { hero in + return getUserFromDatabase( + database: database, + userId: hero, + roomId: roomId + ) + }.compactMap { $0 } + return heroes + } else { + return nil + } + } catch is DecodingError { + return [] + } catch { + os_log( + "[FluffyChatPushHelper] DB query failed: %{public}@", + log: .default, + type: .error, + error.localizedDescription + ) + } + return [] + } + + func downloadAttachment(url: String, containerPath: URL) throws -> UNNotificationAttachment { + let downloadDirectory = containerPath.appendingPathComponent("fluffychat_download_cache") + + let mxcComponents = url.replacingOccurrences(of: "mxc://", with: "").split(separator: "/") + guard mxcComponents.count == 2 else { + throw NSError(domain: "FamedlyPushHelper", code: 1, userInfo: [NSLocalizedDescriptionKey: "Invalid MXC URL format"]) + } + + let host = String(mxcComponents[0]).replacingOccurrences(of: ".", with: "_") + let mediaId = String(mxcComponents[1]) + let fileName = "notification_\(host)_\(mediaId).jpg" + let fileUrl = downloadDirectory.appendingPathComponent(fileName) + + return try UNNotificationAttachment(identifier: "image", url: fileUrl, options: nil) + } +} + +struct UserEventJson: Decodable { + struct UserEventContentJson: Decodable { + let displayname: String? + let avatar_url: String? + } + let content: UserEventContentJson +} + +struct RoomNameEventJson: Decodable { + struct RoomNameEventContentJson: Decodable { + let name: String? + } + let content: RoomNameEventContentJson +} + +struct RoomAvatarEventJson: Decodable { + struct RoomAvatarEventContentJson: Decodable { + let url: String? + } + let content: RoomAvatarEventContentJson +} + +struct RoomJson: Decodable { + struct RoomSummaryJson: Decodable { + let heroes: [String] + enum CodingKeys: String, CodingKey { + case heroes = "m.heroes" + } + } + let summary: RoomSummaryJson +} + +struct NotificationDevice: Decodable { + struct NotificationDeviceData: Decodable { + let client_name: String? + } + let data: NotificationDeviceData +} +struct NotificationCounts: Decodable { + let unread: Int? +} diff --git a/ios/Podfile b/ios/Podfile new file mode 100644 index 0000000..6113de7 --- /dev/null +++ b/ios/Podfile @@ -0,0 +1,71 @@ +# Uncomment this line to define a global platform for your project +platform :ios, '15.0' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_ios_podfile_setup + +target 'Runner' do + use_frameworks! + use_modular_headers! + + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) + + # From package https://pub.dev/packages/receive_sharing_intent + target 'FluffyChat Share' do + inherit! :search_paths + end +end + +# SQLCipher for the NSE only: +target 'Notification Service Extension' do + use_frameworks! :linkage => :static + use_modular_headers! + pod 'FMDB/SQLCipher' +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_ios_build_settings(target) + target.build_configurations.each do |config| + # ensure all dependencies are using SQLCipher instead of SQLite + xcconfig_path = config.base_configuration_reference.real_path + xcconfig = File.read(xcconfig_path) + new_xcconfig = xcconfig.sub(' -l"sqlite3"', '') + File.open(xcconfig_path, "w") { |file| file << new_xcconfig } + + config.build_settings['ENABLE_BITCODE'] = 'NO' + + config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' + + config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [ + '$(inherited)', + # dart: PermissionGroup.microphone + 'PERMISSION_MICROPHONE=1', + ] + end + end + flutter_post_install(installer) if defined?(flutter_post_install) +end diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..1901d9b --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,1163 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 609046320A2D7D2B0D36583B /* Pods_FluffyChat_Share.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9EB6E6475A19949A37A2634 /* Pods_FluffyChat_Share.framework */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; + 7E19CFC25FF149C1EB25035F /* Pods_Notification_Service_Extension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4688A2BF4AFDF1CB2B66829A /* Pods_Notification_Service_Extension.framework */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + AB0F2865DE230DE37373E0E0 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50DEFC207B70632D9C56ED78 /* Pods_Runner.framework */; }; + C1005C45261071B5002F4F32 /* ShareViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1005C44261071B5002F4F32 /* ShareViewController.swift */; }; + C1005C48261071B5002F4F32 /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C1005C46261071B5002F4F32 /* MainInterface.storyboard */; }; + C1005C4C261071B5002F4F32 /* FluffyChat Share.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = C1005C42261071B5002F4F32 /* FluffyChat Share.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + C137635E2AD1446100A8F905 /* notification.caf in Resources */ = {isa = PBXBuildFile; fileRef = C137635D2AD1446100A8F905 /* notification.caf */; }; + C14695592E642D400075F2F7 /* Notification Service Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = C14695522E642D400075F2F7 /* Notification Service Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + C14695662E642E450075F2F7 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = C14695652E642E450075F2F7 /* Localizable.xcstrings */; }; + C14695672E642E450075F2F7 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = C14695652E642E450075F2F7 /* Localizable.xcstrings */; }; + C14695682E642E450075F2F7 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = C14695652E642E450075F2F7 /* Localizable.xcstrings */; }; + C149567C25C7274F00A16396 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = C149567B25C7274F00A16396 /* GoogleService-Info.plist */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + C1005C4A261071B5002F4F32 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = C1005C41261071B5002F4F32; + remoteInfo = "FluffyChat Share"; + }; + C14695572E642D400075F2F7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = C14695512E642D400075F2F7; + remoteInfo = "Notification Service Extension"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + C1005C4D261071B5002F4F32 /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + C1005C4C261071B5002F4F32 /* FluffyChat Share.appex in Embed App Extensions */, + C14695592E642D400075F2F7 /* Notification Service Extension.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 09545B0C8C397F94966EA956 /* Pods-FluffyChat Share.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FluffyChat Share.debug.xcconfig"; path = "Target Support Files/Pods-FluffyChat Share/Pods-FluffyChat Share.debug.xcconfig"; sourceTree = ""; }; + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3A645598796C232804C116FE /* Pods-Notification Service Extension.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Notification Service Extension.profile.xcconfig"; path = "Target Support Files/Pods-Notification Service Extension/Pods-Notification Service Extension.profile.xcconfig"; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 4688A2BF4AFDF1CB2B66829A /* Pods_Notification_Service_Extension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Notification_Service_Extension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 50DEFC207B70632D9C56ED78 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 58F7B95D036AD8E67B27588D /* Pods-FluffyChat Share.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FluffyChat Share.profile.xcconfig"; path = "Target Support Files/Pods-FluffyChat Share/Pods-FluffyChat Share.profile.xcconfig"; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 76737C9A857D5FD6D2634A3F /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 9DB2F3524376810E74C799A8 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + C1005C42261071B5002F4F32 /* FluffyChat Share.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "FluffyChat Share.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; + C1005C44261071B5002F4F32 /* ShareViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareViewController.swift; sourceTree = ""; }; + C1005C47261071B5002F4F32 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/MainInterface.storyboard; sourceTree = ""; }; + C1005C49261071B5002F4F32 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C1005C53261072D4002F4F32 /* FluffyChat Share.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "FluffyChat Share.entitlements"; sourceTree = ""; }; + C137635D2AD1446100A8F905 /* notification.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = notification.caf; sourceTree = ""; }; + C14695522E642D400075F2F7 /* Notification Service Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "Notification Service Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; + C14695652E642E450075F2F7 /* Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = ""; }; + C149567B25C7274F00A16396 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; + C149567D25C7276200A16396 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; }; + C9EB6E6475A19949A37A2634 /* Pods_FluffyChat_Share.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_FluffyChat_Share.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E5089CBCB1AF704A168E41B5 /* Pods-Notification Service Extension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Notification Service Extension.release.xcconfig"; path = "Target Support Files/Pods-Notification Service Extension/Pods-Notification Service Extension.release.xcconfig"; sourceTree = ""; }; + EA246783222E02DD03959891 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + F0540869D5C42F400AD7F460 /* Pods-Notification Service Extension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Notification Service Extension.debug.xcconfig"; path = "Target Support Files/Pods-Notification Service Extension/Pods-Notification Service Extension.debug.xcconfig"; sourceTree = ""; }; + F3778959E67CDA0CDB0D97BC /* Pods-FluffyChat Share.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FluffyChat Share.release.xcconfig"; path = "Target Support Files/Pods-FluffyChat Share/Pods-FluffyChat Share.release.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ + C146955D2E642D400075F2F7 /* Exceptions for "Notification Service Extension" folder in "Notification Service Extension" target */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + Info.plist, + ); + target = C14695512E642D400075F2F7 /* Notification Service Extension */; + }; +/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ + +/* Begin PBXFileSystemSynchronizedRootGroup section */ + C14695532E642D400075F2F7 /* Notification Service Extension */ = { + isa = PBXFileSystemSynchronizedRootGroup; + exceptions = ( + C146955D2E642D400075F2F7 /* Exceptions for "Notification Service Extension" folder in "Notification Service Extension" target */, + ); + path = "Notification Service Extension"; + sourceTree = ""; + }; +/* End PBXFileSystemSynchronizedRootGroup section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, + AB0F2865DE230DE37373E0E0 /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C1005C3F261071B5002F4F32 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 609046320A2D7D2B0D36583B /* Pods_FluffyChat_Share.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C146954F2E642D400075F2F7 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E19CFC25FF149C1EB25035F /* Pods_Notification_Service_Extension.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 075EE1BE25359E34308E0B78 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 50DEFC207B70632D9C56ED78 /* Pods_Runner.framework */, + C9EB6E6475A19949A37A2634 /* Pods_FluffyChat_Share.framework */, + 4688A2BF4AFDF1CB2B66829A /* Pods_Notification_Service_Extension.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + C14695652E642E450075F2F7 /* Localizable.xcstrings */, + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + C1005C43261071B5002F4F32 /* FluffyChat Share */, + C14695532E642D400075F2F7 /* Notification Service Extension */, + 97C146EF1CF9000F007C117D /* Products */, + E89DCAC000D371640E94E65B /* Pods */, + 075EE1BE25359E34308E0B78 /* Frameworks */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + C1005C42261071B5002F4F32 /* FluffyChat Share.appex */, + C14695522E642D400075F2F7 /* Notification Service Extension.appex */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + C149567D25C7276200A16396 /* Runner.entitlements */, + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + C149567B25C7274F00A16396 /* GoogleService-Info.plist */, + C137635D2AD1446100A8F905 /* notification.caf */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; + C1005C43261071B5002F4F32 /* FluffyChat Share */ = { + isa = PBXGroup; + children = ( + C1005C53261072D4002F4F32 /* FluffyChat Share.entitlements */, + C1005C44261071B5002F4F32 /* ShareViewController.swift */, + C1005C46261071B5002F4F32 /* MainInterface.storyboard */, + C1005C49261071B5002F4F32 /* Info.plist */, + ); + path = "FluffyChat Share"; + sourceTree = ""; + }; + E89DCAC000D371640E94E65B /* Pods */ = { + isa = PBXGroup; + children = ( + 76737C9A857D5FD6D2634A3F /* Pods-Runner.debug.xcconfig */, + EA246783222E02DD03959891 /* Pods-Runner.release.xcconfig */, + 9DB2F3524376810E74C799A8 /* Pods-Runner.profile.xcconfig */, + 09545B0C8C397F94966EA956 /* Pods-FluffyChat Share.debug.xcconfig */, + F3778959E67CDA0CDB0D97BC /* Pods-FluffyChat Share.release.xcconfig */, + 58F7B95D036AD8E67B27588D /* Pods-FluffyChat Share.profile.xcconfig */, + F0540869D5C42F400AD7F460 /* Pods-Notification Service Extension.debug.xcconfig */, + E5089CBCB1AF704A168E41B5 /* Pods-Notification Service Extension.release.xcconfig */, + 3A645598796C232804C116FE /* Pods-Notification Service Extension.profile.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 8C9CCA7C5C45651F90C7BFDD /* [CP] Check Pods Manifest.lock */, + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + C1005C4D261071B5002F4F32 /* Embed App Extensions */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + F9C8EE392B9AB471149C306E /* [CP] Embed Pods Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + C1005C4B261071B5002F4F32 /* PBXTargetDependency */, + C14695582E642D400075F2F7 /* PBXTargetDependency */, + ); + name = Runner; + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; + C1005C41261071B5002F4F32 /* FluffyChat Share */ = { + isa = PBXNativeTarget; + buildConfigurationList = C1005C51261071B5002F4F32 /* Build configuration list for PBXNativeTarget "FluffyChat Share" */; + buildPhases = ( + 67579C1EA0B5C7B918473158 /* [CP] Check Pods Manifest.lock */, + C1005C3E261071B5002F4F32 /* Sources */, + C1005C3F261071B5002F4F32 /* Frameworks */, + C1005C40261071B5002F4F32 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "FluffyChat Share"; + productName = "FluffyChat Share"; + productReference = C1005C42261071B5002F4F32 /* FluffyChat Share.appex */; + productType = "com.apple.product-type.app-extension"; + }; + C14695512E642D400075F2F7 /* Notification Service Extension */ = { + isa = PBXNativeTarget; + buildConfigurationList = C146955E2E642D400075F2F7 /* Build configuration list for PBXNativeTarget "Notification Service Extension" */; + buildPhases = ( + 972C64C37AF8EB03956BFEF5 /* [CP] Check Pods Manifest.lock */, + C146954E2E642D400075F2F7 /* Sources */, + C146954F2E642D400075F2F7 /* Frameworks */, + C14695502E642D400075F2F7 /* Resources */, + 254B215AA45F099306397F04 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + fileSystemSynchronizedGroups = ( + C14695532E642D400075F2F7 /* Notification Service Extension */, + ); + name = "Notification Service Extension"; + productName = "Notification Service Extension"; + productReference = C14695522E642D400075F2F7 /* Notification Service Extension.appex */; + productType = "com.apple.product-type.app-extension"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1640; + LastUpgradeCheck = 1510; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + C1005C41261071B5002F4F32 = { + CreatedOnToolsVersion = 12.4; + }; + C14695512E642D400075F2F7 = { + CreatedOnToolsVersion = 16.4; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + de, + ); + mainGroup = 97C146E51CF9000F007C117D; + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */, + ); + preferredProjectObjectVersion = 77; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + C1005C41261071B5002F4F32 /* FluffyChat Share */, + C14695512E642D400075F2F7 /* Notification Service Extension */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + C149567C25C7274F00A16396 /* GoogleService-Info.plist in Resources */, + C137635E2AD1446100A8F905 /* notification.caf in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + C14695672E642E450075F2F7 /* Localizable.xcstrings in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C1005C40261071B5002F4F32 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C14695682E642E450075F2F7 /* Localizable.xcstrings in Resources */, + C1005C48261071B5002F4F32 /* MainInterface.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C14695502E642D400075F2F7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C14695662E642E450075F2F7 /* Localizable.xcstrings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 254B215AA45F099306397F04 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Notification Service Extension/Pods-Notification Service Extension-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Notification Service Extension/Pods-Notification Service Extension-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Notification Service Extension/Pods-Notification Service Extension-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin\n"; + }; + 67579C1EA0B5C7B918473158 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-FluffyChat Share-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 8C9CCA7C5C45651F90C7BFDD /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 972C64C37AF8EB03956BFEF5 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Notification Service Extension-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build\n"; + }; + F9C8EE392B9AB471149C306E /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C1005C3E261071B5002F4F32 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C1005C45261071B5002F4F32 /* ShareViewController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C146954E2E642D400075F2F7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + C1005C4B261071B5002F4F32 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = C1005C41261071B5002F4F32 /* FluffyChat Share */; + targetProxy = C1005C4A261071B5002F4F32 /* PBXContainerItemProxy */; + }; + C14695582E642D400075F2F7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = C14695512E642D400075F2F7 /* Notification Service Extension */; + targetProxy = C14695572E642D400075F2F7 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; + C1005C46261071B5002F4F32 /* MainInterface.storyboard */ = { + isa = PBXVariantGroup; + children = ( + C1005C47261071B5002F4F32 /* Base */, + ); + name = MainInterface.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_EMIT_LOC_STRINGS = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 4HV29TJN3A; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + MARKETING_VERSION = 0.32.1; + PRODUCT_BUNDLE_IDENTIFIER = im.fluffychat.app; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_EMIT_LOC_STRINGS = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 4HV29TJN3A; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + MARKETING_VERSION = 0.32.1; + PRODUCT_BUNDLE_IDENTIFIER = im.fluffychat.app; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 4HV29TJN3A; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + MARKETING_VERSION = 0.32.1; + PRODUCT_BUNDLE_IDENTIFIER = im.fluffychat.app; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; + C1005C4E261071B5002F4F32 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 09545B0C8C397F94966EA956 /* Pods-FluffyChat Share.debug.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = "FluffyChat Share/FluffyChat Share.entitlements"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 4HV29TJN3A; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = "FluffyChat Share/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + MARKETING_VERSION = 1.0.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "im.fluffychat.app.FluffyChat-Share"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_ENABLE_EXPLICIT_MODULES = NO; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + C1005C4F261071B5002F4F32 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F3778959E67CDA0CDB0D97BC /* Pods-FluffyChat Share.release.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = "FluffyChat Share/FluffyChat Share.entitlements"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 4HV29TJN3A; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = "FluffyChat Share/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + MARKETING_VERSION = 1.0.0; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "im.fluffychat.app.FluffyChat-Share"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_ENABLE_EXPLICIT_MODULES = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + C1005C50261071B5002F4F32 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 58F7B95D036AD8E67B27588D /* Pods-FluffyChat Share.profile.xcconfig */; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = "FluffyChat Share/FluffyChat Share.entitlements"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 4HV29TJN3A; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = "FluffyChat Share/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + MARKETING_VERSION = 1.0.0; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "im.fluffychat.app.FluffyChat-Share"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_ENABLE_EXPLICIT_MODULES = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Profile; + }; + C146955A2E642D400075F2F7 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F0540869D5C42F400AD7F460 /* Pods-Notification Service Extension.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = "Notification Service Extension/Notification Service Extension.entitlements"; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 4HV29TJN3A; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "Notification Service Extension/Info.plist"; + INFOPLIST_KEY_CFBundleDisplayName = "Notification Service Extension"; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + IPHONEOS_DEPLOYMENT_TARGET = 18.5; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "im.fluffychat.app.Notification-Service-Extension"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + C146955B2E642D400075F2F7 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E5089CBCB1AF704A168E41B5 /* Pods-Notification Service Extension.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = "Notification Service Extension/Notification Service Extension.entitlements"; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 4HV29TJN3A; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "Notification Service Extension/Info.plist"; + INFOPLIST_KEY_CFBundleDisplayName = "Notification Service Extension"; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + IPHONEOS_DEPLOYMENT_TARGET = 18.5; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "im.fluffychat.app.Notification-Service-Extension"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + C146955C2E642D400075F2F7 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3A645598796C232804C116FE /* Pods-Notification Service Extension.profile.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = "Notification Service Extension/Notification Service Extension.entitlements"; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 4HV29TJN3A; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "Notification Service Extension/Info.plist"; + INFOPLIST_KEY_CFBundleDisplayName = "Notification Service Extension"; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + IPHONEOS_DEPLOYMENT_TARGET = 18.5; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "im.fluffychat.app.Notification-Service-Extension"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Profile; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C1005C51261071B5002F4F32 /* Build configuration list for PBXNativeTarget "FluffyChat Share" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C1005C4E261071B5002F4F32 /* Debug */, + C1005C4F261071B5002F4F32 /* Release */, + C1005C50261071B5002F4F32 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C146955E2E642D400075F2F7 /* Build configuration list for PBXNativeTarget "Notification Service Extension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C146955A2E642D400075F2F7 /* Debug */, + C146955B2E642D400075F2F7 /* Release */, + C146955C2E642D400075F2F7 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; + }; +/* End XCLocalSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; +/* End XCSwiftPackageProductDependency section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 0000000..c6c5b41 --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,14 @@ +{ + "pins" : [ + { + "identity" : "cryptoswift", + "kind" : "remoteSourceControl", + "location" : "https://github.com/krzyzanowskim/CryptoSwift.git", + "state" : { + "revision" : "f2a627b84c1ff96f21ac2fcb623ab36142dd5512", + "version" : "1.10.0" + } + } + ], + "version" : 2 +} diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..0bd6d42 --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..21a3cc1 --- /dev/null +++ b/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 0000000..c6c5b41 --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,14 @@ +{ + "pins" : [ + { + "identity" : "cryptoswift", + "kind" : "remoteSourceControl", + "location" : "https://github.com/krzyzanowskim/CryptoSwift.git", + "state" : { + "revision" : "f2a627b84c1ff96f21ac2fcb623ab36142dd5512", + "version" : "1.10.0" + } + } + ], + "version" : 2 +} diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000..6fc5538 --- /dev/null +++ b/ios/Runner/AppDelegate.swift @@ -0,0 +1,18 @@ +import UIKit +import Flutter + +@main +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + + // From https://pub.dev/packages/flutter_local_notifications#-ios-setup + UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d0d98aa --- /dev/null +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1 @@ +{"images":[{"size":"20x20","idiom":"iphone","filename":"Icon-App-20x20@2x.png","scale":"2x"},{"size":"20x20","idiom":"iphone","filename":"Icon-App-20x20@3x.png","scale":"3x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@1x.png","scale":"1x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@2x.png","scale":"2x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@3x.png","scale":"3x"},{"size":"40x40","idiom":"iphone","filename":"Icon-App-40x40@2x.png","scale":"2x"},{"size":"40x40","idiom":"iphone","filename":"Icon-App-40x40@3x.png","scale":"3x"},{"size":"57x57","idiom":"iphone","filename":"Icon-App-57x57@1x.png","scale":"1x"},{"size":"57x57","idiom":"iphone","filename":"Icon-App-57x57@2x.png","scale":"2x"},{"size":"60x60","idiom":"iphone","filename":"Icon-App-60x60@2x.png","scale":"2x"},{"size":"60x60","idiom":"iphone","filename":"Icon-App-60x60@3x.png","scale":"3x"},{"size":"20x20","idiom":"ipad","filename":"Icon-App-20x20@1x.png","scale":"1x"},{"size":"20x20","idiom":"ipad","filename":"Icon-App-20x20@2x.png","scale":"2x"},{"size":"29x29","idiom":"ipad","filename":"Icon-App-29x29@1x.png","scale":"1x"},{"size":"29x29","idiom":"ipad","filename":"Icon-App-29x29@2x.png","scale":"2x"},{"size":"40x40","idiom":"ipad","filename":"Icon-App-40x40@1x.png","scale":"1x"},{"size":"40x40","idiom":"ipad","filename":"Icon-App-40x40@2x.png","scale":"2x"},{"size":"50x50","idiom":"ipad","filename":"Icon-App-50x50@1x.png","scale":"1x"},{"size":"50x50","idiom":"ipad","filename":"Icon-App-50x50@2x.png","scale":"2x"},{"size":"72x72","idiom":"ipad","filename":"Icon-App-72x72@1x.png","scale":"1x"},{"size":"72x72","idiom":"ipad","filename":"Icon-App-72x72@2x.png","scale":"2x"},{"size":"76x76","idiom":"ipad","filename":"Icon-App-76x76@1x.png","scale":"1x"},{"size":"76x76","idiom":"ipad","filename":"Icon-App-76x76@2x.png","scale":"2x"},{"size":"83.5x83.5","idiom":"ipad","filename":"Icon-App-83.5x83.5@2x.png","scale":"2x"},{"size":"1024x1024","idiom":"ios-marketing","filename":"Icon-App-1024x1024@1x.png","scale":"1x"}],"info":{"version":1,"author":"xcode"}} \ No newline at end of file diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..594166632c1ef9931b117dd2d1ad0dbcd01c6be0 GIT binary patch literal 45696 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 D6xzn_ literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..1db7f9cab59da2e34d99dfe1c1aaf8b6176e636c GIT binary patch literal 2540 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d6090ea748e57ff53b008a8e87875ba748853483 GIT binary patch literal 2249 zcmV;)2sZbLP)jFz%8vM($;`d? z+Qp09r|_CAf^G-;GlV`ZTL~3%;sq!=rcv1I;NAN)5Oui!D%vdNfq_+ z6TsJ>LVuqbZOsOlOjGlKW=Qx52@^p)gOAR3BkHUB0RmHq=IH!*3DOUQfak_z_w@s2 zRNm8~D8Cbx*pSw4&~ZKJ3Ye zKv5TT$ERn)fI})%V@j?KK-EIR0rnG-?`wa)Fa( zI|dUAI@@Wa?vz@ORabP|jkq9*x(to=T6A{k;p-=aG=Rdv4+5t|O*c0lc4Z8|k9Ara zwLkQL#0MfpnMHf?jW#5vgs{6);UpKOx7%Sfj=v(ZKwM$Sxun9njdFIL{y)IPh;J_{ zL25s7%}A-x;@_DHY}yj$q=~K}|7tU;E4vBK9KxZRQRcB4M8)@bI9pb!R-HV#a1TtlW&N548+ijn5@^%`*YR5=d5yNdJt z;+w5dDtd|fCRX(F*?MSNblCfL9HjoE(=roB_F$esm5?i5*s3;ua<~+Qd1{bWYaNQZ z-CcTcjeu3_q7W49g%o>%(KN5oEo(`;x2nTsp#Ur*hLs7P!9gqB+8kFB@ zw(hHyJ-CqhV2q=VaP6{!C>I53KFZM4(1YI}xQUli!m)Ivd|Y+8NJ^Q9V}C6kwFpnK zG5_pQklTd9>nhyHRT5<`AkJPM^WE)cl$UDoMP?%8v%MTLE+$rn5Icg#MVjYrRj>4?4@&6N-_hXE{ybJqqrvfi=^a)SkN+PnDo|qaa=F9TPL!bkJ=C5q z`&o)D9G;^i`7ytL=xEasRr_q=aMT@1Nude_xeBaU8|u_zf(vG;SdgQ@!X-1&tn9^y zzq?8N&g8;5MNL4)z8nOHc;UJE0eJ7TH52aZNwmENyt6;oW&Js&s0CGH4|cyb@ueJt zUQff_oo}s5RNQNGO2H>_N>K|^KM$;2JGMH=q;0iTok&HrdJm3m$l;5v3tnRu7|{1h*RIB!Y^Rx zZ~d&VAL8S~1@M=N5x;CGYF9t(z}*rxJI`}2*Enqt7cTi0Fflor4IYJg3Y<7nhO(03 zETyAehb>8&Sd$ouHccN2avRu6!v0@f!m7jwh{XcrepACLJ(;*f(f2d*pzYP8wu<{R z7^Xsa=4AP(V+Mm6-(IS6`rf3tGTEmG#R?nMbZBP X_WI1cJaZKu00000NkvXXu0mjf$_`~^ literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..74dc9651faf8632613a1b31a98dea625d1707714 GIT binary patch literal 3444 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 D6xzn_ literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fcf16012a078c77243cd6ae80ac6f8c551b923d1 GIT binary patch literal 3119 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 JPDHLkV1g8J3BLdU literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..4632a7fe14a8d7af9e264145399e588b8691ac17 GIT binary patch literal 4781 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 Hu0mjfFqd-$ literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1fad693bda680ab6f00fa39e023402e74cab69 GIT binary patch literal 1947 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f57322ecc3d13df10143ed808059905d326e4bfd GIT binary patch literal 4590 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 Yf9tV9SF#)GSO5S307*qoM6N<$f)v2$t^fc4 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4632a7fe14a8d7af9e264145399e588b8691ac17 GIT binary patch literal 4781 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 Hu0mjfFqd-$ literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..1ab57343442fe427d6c3750eda02af11d043d05e GIT binary patch literal 7182 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

    5ESakIJG7-%jHi- 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..10bdca0c49193ed864ba82078efc60c0c50ebb87 GIT binary patch literal 6634 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..0bedcf2 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/GoogleService-Info.plist b/ios/Runner/GoogleService-Info.plist new file mode 100644 index 0000000..917ea3b --- /dev/null +++ b/ios/Runner/GoogleService-Info.plist @@ -0,0 +1,34 @@ + + + + + CLIENT_ID + 865731724731-ofdr7e6m04murgb1bvchlj9oaos0q5i3.apps.googleusercontent.com + REVERSED_CLIENT_ID + com.googleusercontent.apps.865731724731-ofdr7e6m04murgb1bvchlj9oaos0q5i3 + API_KEY + AIzaSyA8ZUBcuny0HjPwF2Q2fvDyQTC5dG2VHlE + GCM_SENDER_ID + 865731724731 + PLIST_VERSION + 1 + BUNDLE_ID + im.fluffychat.app + PROJECT_ID + fluffychat-ef3e8 + STORAGE_BUCKET + fluffychat-ef3e8.appspot.com + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:865731724731:ios:79fd983ce46cb40c64309e + + \ No newline at end of file diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist new file mode 100644 index 0000000..3ee3fd2 --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,138 @@ + + + + + BGTaskSchedulerPermittedIdentifiers + + im.fluffychat.app + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + FluffyChat + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + fluffychat + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleURLTypes + + + CFBundleTypeRole + Editor + CFBundleURLName + im.fluffychat.app.uris + CFBundleURLSchemes + + ShareMedia-$(PRODUCT_BUNDLE_IDENTIFIER) + im.fluffychat + matrix + + + + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + ITSAppUsesNonExemptEncryption + + LSRequiresIPhoneOS + + NSAppleMusicUsageDescription + Play audio and voice messages in the app. + NSBluetoothAlwaysUsageDescription + Play audio and voice messages via bluetooth devices. + NSBluetoothPeripheralUsageDescription + Play audio and voice messages on bluetooth devices + NSCalendarsUsageDescription + Share calendar dates with your contacts in FluffyChat. + NSCameraUsageDescription + Open the camera and take a picture to share them with your contacts on FluffyChat. + NSContactsUsageDescription + Share contacts with your contacts in FluffyChat. + NSFaceIDUsageDescription + FluffyChat uses an app lock for an additional security level + NSLocationAlwaysUsageDescription + Share your location with your contacts in FluffyChat. + NSLocationWhenInUseUsageDescription + Share your location with your contacts in FluffyChat. + NSLocationAlwaysAndWhenInUseUsageDescription + Share your location with your contacts in FluffyChat. + NSMicrophoneUsageDescription + Record voice message and share them with your contacts on FluffyChat. + NSMotionUsageDescription + Share motions with your contacts in FluffyChat. + NSPhotoLibraryUsageDescription + Open photos from your gallery and share them with your contacts on FluffyChat. + NSSpeechRecognitionUsageDescription + Share data with your contacts in FluffyChat. + UIBackgroundModes + + voip + audio + fetch + processing + remote-notification + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIStatusBarHidden + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + io.flutter.embedded_views_preview + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneDelegateClassName + FlutterSceneDelegate + UISceneConfigurationName + flutter + UISceneStoryboardFile + Main + + + + + + diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..7335fdf --- /dev/null +++ b/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" \ No newline at end of file diff --git a/ios/Runner/Runner.entitlements b/ios/Runner/Runner.entitlements new file mode 100644 index 0000000..8407112 --- /dev/null +++ b/ios/Runner/Runner.entitlements @@ -0,0 +1,16 @@ + + + + + aps-environment + development + com.apple.developer.associated-domains + + applinks:example.com + + com.apple.security.application-groups + + group.im.fluffychat.app + + + diff --git a/ios/Runner/ar.lproj/LaunchScreen.strings b/ios/Runner/ar.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/ar.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/ar.lproj/Main.strings b/ios/Runner/ar.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/ar.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/ca.lproj/LaunchScreen.strings b/ios/Runner/ca.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/ca.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/ca.lproj/Main.strings b/ios/Runner/ca.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/ca.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/cs.lproj/LaunchScreen.strings b/ios/Runner/cs.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/cs.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/cs.lproj/Main.strings b/ios/Runner/cs.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/cs.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/de.lproj/LaunchScreen.strings b/ios/Runner/de.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/de.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/de.lproj/Main.strings b/ios/Runner/de.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/de.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/eo.lproj/LaunchScreen.strings b/ios/Runner/eo.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/eo.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/eo.lproj/Main.strings b/ios/Runner/eo.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/eo.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/es.lproj/LaunchScreen.strings b/ios/Runner/es.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/es.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/es.lproj/Main.strings b/ios/Runner/es.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/es.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/et.lproj/LaunchScreen.strings b/ios/Runner/et.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/et.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/et.lproj/Main.strings b/ios/Runner/et.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/et.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/eu.lproj/LaunchScreen.strings b/ios/Runner/eu.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/eu.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/eu.lproj/Main.strings b/ios/Runner/eu.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/eu.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/fr.lproj/LaunchScreen.strings b/ios/Runner/fr.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/fr.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/fr.lproj/Main.strings b/ios/Runner/fr.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/fr.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/gl.lproj/LaunchScreen.strings b/ios/Runner/gl.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/gl.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/gl.lproj/Main.strings b/ios/Runner/gl.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/gl.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/hr-HR.lproj/LaunchScreen.strings b/ios/Runner/hr-HR.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/hr-HR.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/hr-HR.lproj/Main.strings b/ios/Runner/hr-HR.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/hr-HR.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/hu-HU.lproj/LaunchScreen.strings b/ios/Runner/hu-HU.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/hu-HU.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/hu-HU.lproj/Main.strings b/ios/Runner/hu-HU.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/hu-HU.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/hu.lproj/LaunchScreen.strings b/ios/Runner/hu.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/hu.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/hu.lproj/Main.strings b/ios/Runner/hu.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/hu.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/hy.lproj/LaunchScreen.strings b/ios/Runner/hy.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/hy.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/hy.lproj/Main.strings b/ios/Runner/hy.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/hy.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/it.lproj/LaunchScreen.strings b/ios/Runner/it.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/it.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/it.lproj/Main.strings b/ios/Runner/it.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/it.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/ja.lproj/LaunchScreen.strings b/ios/Runner/ja.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/ja.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/ja.lproj/Main.strings b/ios/Runner/ja.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/ja.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/nb-NO.lproj/LaunchScreen.strings b/ios/Runner/nb-NO.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/nb-NO.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/nb-NO.lproj/Main.strings b/ios/Runner/nb-NO.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/nb-NO.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/notification.caf b/ios/Runner/notification.caf new file mode 100644 index 0000000000000000000000000000000000000000..20fa944a4b0d955037d437ded9b91b95896f1823 GIT binary patch literal 178050 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®L{-9MRl+eb%5#Y&w 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%0Aha$eXQiR6dsfw2Mvm4K~99OONiQ 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∈b68;`XMZU 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 J=~DHO{|h^ILUaHC literal 0 HcmV?d00001 diff --git a/ios/Runner/pl.lproj/LaunchScreen.strings b/ios/Runner/pl.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/pl.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/pl.lproj/Main.strings b/ios/Runner/pl.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/pl.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/pt.lproj/LaunchScreen.strings b/ios/Runner/pt.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/pt.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/pt.lproj/Main.strings b/ios/Runner/pt.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/pt.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/ru-RU.lproj/LaunchScreen.strings b/ios/Runner/ru-RU.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/ru-RU.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/ru-RU.lproj/Main.strings b/ios/Runner/ru-RU.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/ru-RU.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/sk-SK.lproj/LaunchScreen.strings b/ios/Runner/sk-SK.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/sk-SK.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/sk-SK.lproj/Main.strings b/ios/Runner/sk-SK.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/sk-SK.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/sv-SE.lproj/LaunchScreen.strings b/ios/Runner/sv-SE.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/sv-SE.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/sv-SE.lproj/Main.strings b/ios/Runner/sv-SE.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/sv-SE.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/tr.lproj/LaunchScreen.strings b/ios/Runner/tr.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/tr.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/tr.lproj/Main.strings b/ios/Runner/tr.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/tr.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/uk.lproj/LaunchScreen.strings b/ios/Runner/uk.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/uk.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/uk.lproj/Main.strings b/ios/Runner/uk.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/uk.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/vi-VN.lproj/LaunchScreen.strings b/ios/Runner/vi-VN.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/vi-VN.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/vi-VN.lproj/Main.strings b/ios/Runner/vi-VN.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/vi-VN.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/zh-Hans.lproj/LaunchScreen.strings b/ios/Runner/zh-Hans.lproj/LaunchScreen.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/zh-Hans.lproj/LaunchScreen.strings @@ -0,0 +1 @@ + diff --git a/ios/Runner/zh-Hans.lproj/Main.strings b/ios/Runner/zh-Hans.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/ios/Runner/zh-Hans.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/l10n.yaml b/l10n.yaml new file mode 100644 index 0000000..b6b32b0 --- /dev/null +++ b/l10n.yaml @@ -0,0 +1,12 @@ +# SPDX-FileCopyrightText: 2019-Present Christian Kußowski +# SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +arb-dir: lib/l10n +template-arb-file: intl_en.arb +output-localization-file: l10n.dart +output-class: L10n +preferred-supported-locales: ["en"] +use-deferred-loading: true +nullable-getter: false \ No newline at end of file diff --git a/lib/config/app_config.dart b/lib/config/app_config.dart new file mode 100644 index 0000000..80fb5db --- /dev/null +++ b/lib/config/app_config.dart @@ -0,0 +1,68 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:ui'; + +abstract class AppConfig { + static const Color primaryColor = Color(0xFF00D084); + + static const Color chatColor = primaryColor; + static const double messageFontSize = 16.0; + static const bool allowOtherHomeservers = true; + static const bool enableRegistration = true; + static const bool hideTypingUsernames = false; + + static const String inviteLinkPrefix = 'https://matrix.to/#/'; + static const String deepLinkPrefix = 'im.tatuchat://chat/'; + static const String schemePrefix = 'matrix:'; + static const String pushNotificationsChannelId = 'tatuchat_push'; + static const String pushNotificationsAppId = 'chat.fluffy.tatuchat'; + static const double borderRadius = 18.0; + static const double spaceBorderRadius = 11.0; + static const double columnWidth = 360.0; + + static const String enablePushTutorial = + 'https://ko-fi.com/post/How-can-I-get-Push-Notifications-without-Google-N7Q825URG6?fromEditor=true'; + static const String encryptionTutorial = + 'https://ko-fi.com/post/How-to-use-end-to-end-encryption-in-FluffyChat-A5O725WDR5'; + static const String howDoIGetStickersTutorial = + 'https://ko-fi.com/post/How-to-add-a-sticker-pack-to-FluffyChat-N4N01OXATI'; + static const String appId = 'im.tatuchat.TatuChat'; + static const String appOpenUrlScheme = 'im.tatuchat'; + static const String appSsoUrlScheme = 'im.tatuchat.auth'; + + static const String sourceCodeUrl = + 'https://github.com/krille-chan/fluffychat'; + static const String supportUrl = + 'https://github.com/krille-chan/fluffychat/issues'; + static const String changelogUrl = 'https://fluffychat.im/changelog/'; + static const String helpUrl = + 'https://ko-fi.com/post/How-can-I-support-FluffyChat-J2G325WE6I'; + + static const Set defaultReactions = {'👍', '❤️', '😂', '😮', '😢'}; + + static final Uri newIssueUrl = Uri( + scheme: 'https', + host: 'github.com', + path: '/krille-chan/fluffychat/issues/new', + ); + + static final Uri homeserverList = Uri( + scheme: 'https', + host: 'raw.githubusercontent.com', + path: 'krille-chan/fluffychat/refs/heads/main/recommended_homeservers.json', + ); + + static final Uri crashReportEndpoint = Uri( + scheme: 'https', + host: 'crash.fluffy.chat', + ); + + static const String mainIsolatePortName = 'main_isolate'; + static const String pushIsolatePortName = 'push_isolate'; + static const String pushHelperCrashReportKey = 'push_helper_crash_report'; + + static const String vodozemacVersion = '0.8.1'; +} diff --git a/lib/config/isrg_x1.dart b/lib/config/isrg_x1.dart new file mode 100644 index 0000000..bc901bf --- /dev/null +++ b/lib/config/isrg_x1.dart @@ -0,0 +1,37 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +// ignore: constant_identifier_names +const String ISRG_X1 = '''-----BEGIN CERTIFICATE----- +MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw +TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh +cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4 +WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu +ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY +MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc +h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+ +0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U +A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW +T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH +B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC +B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv +KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn +OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn +jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw +qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI +rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq +hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL +ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ +3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK +NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5 +ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur +TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC +jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc +oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq +4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA +mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d +emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc= +-----END CERTIFICATE-----'''; diff --git a/lib/config/isrg_x2.dart b/lib/config/isrg_x2.dart new file mode 100644 index 0000000..2d0f798 --- /dev/null +++ b/lib/config/isrg_x2.dart @@ -0,0 +1,20 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +// ignore: constant_identifier_names +const String ISRG_X2 = '''-----BEGIN CERTIFICATE----- +MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQsw +CQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2gg +R3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00 +MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVTMSkwJwYDVQQKEyBJbnRlcm5ldCBT +ZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNSRyBSb290IFgyMHYw +EAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0HttwW ++1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9 +ItgKbppbd9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZI +zj0EAwMDaAAwZQIwe3lORlCEwkSHRhtFcP9Ymd70/aTSVaYgLXTWNLxBo1BfASdW +tL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5U6VR5CmD1/iQMVtCnwr1 +/q4AaOeMSQ+2b1tbFfLn +-----END CERTIFICATE-----'''; diff --git a/lib/config/routes.dart b/lib/config/routes.dart new file mode 100644 index 0000000..6a4764b --- /dev/null +++ b/lib/config/routes.dart @@ -0,0 +1,551 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; + +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/pages/archive/archive.dart'; +import 'package:tatchat/pages/bootstrap/bootstrap_page.dart'; +import 'package:tatchat/pages/chat/chat.dart'; +import 'package:tatchat/pages/chat_access_settings/chat_access_settings_controller.dart'; +import 'package:tatchat/pages/chat_details/chat_details.dart'; +import 'package:tatchat/pages/chat_encryption_settings/chat_encryption_settings.dart'; +import 'package:tatchat/pages/chat_list/chat_list.dart'; +import 'package:tatchat/pages/chat_members/chat_members.dart'; +import 'package:tatchat/pages/chat_permissions_settings/chat_permissions_settings.dart'; +import 'package:tatchat/pages/chat_search/chat_search_page.dart'; +import 'package:tatchat/pages/device_settings/device_settings.dart'; +import 'package:tatchat/pages/intro/intro_page_presenter.dart'; +import 'package:tatchat/pages/invitation_selection/invitation_selection.dart'; +import 'package:tatchat/pages/login/login.dart'; +import 'package:tatchat/pages/new_group/new_group.dart'; +import 'package:tatchat/pages/new_private_chat/new_private_chat.dart'; +import 'package:tatchat/pages/register/registration.dart'; +import 'package:tatchat/pages/settings/settings.dart'; +import 'package:tatchat/pages/settings_3pid/settings_3pid.dart'; +import 'package:tatchat/pages/settings_chat/settings_chat.dart'; +import 'package:tatchat/pages/settings_emotes/settings_emotes.dart'; +import 'package:tatchat/pages/settings_homeserver/settings_homeserver.dart'; +import 'package:tatchat/pages/settings_ignore_list/settings_ignore_list.dart'; +import 'package:tatchat/pages/settings_notifications/settings_notifications.dart'; +import 'package:tatchat/pages/settings_password/settings_password.dart'; +import 'package:tatchat/pages/settings_security/settings_security.dart'; +import 'package:tatchat/pages/settings_style/settings_style.dart'; +import 'package:tatchat/pages/sign_in/sign_in_page.dart'; +import 'package:tatchat/widgets/config_viewer.dart'; +import 'package:tatchat/widgets/layouts/empty_page.dart'; +import 'package:tatchat/widgets/layouts/two_column_layout.dart'; +import 'package:tatchat/widgets/log_view.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:tatchat/widgets/share_scaffold_dialog.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +abstract class AppRoutes { + static FutureOr loggedInRedirect( + BuildContext context, + GoRouterState state, + ) => Matrix.of(context).widget.clients.any((client) => client.isLogged()) + ? '/rooms' + : null; + + static FutureOr loggedOutRedirect( + BuildContext context, + GoRouterState state, + ) => Matrix.of(context).widget.clients.any((client) => client.isLogged()) + ? null + : '/home'; + + AppRoutes(); + + static final List routes = [ + GoRoute( + path: '/', + redirect: (context, state) => + Matrix.of(context).widget.clients.any((client) => client.isLogged()) + ? '/rooms' + : '/home', + ), + GoRoute( + path: '/home', + pageBuilder: (context, state) => + defaultPageBuilder(context, state, const IntroPagePresenter()), + redirect: loggedInRedirect, + routes: [ + GoRoute( + path: 'sign_in', + pageBuilder: (context, state) => + defaultPageBuilder(context, state, SignInPage(signUp: false)), + redirect: loggedInRedirect, + ), + GoRoute( + path: 'sign_up', + pageBuilder: (context, state) => + defaultPageBuilder(context, state, SignInPage(signUp: true)), + redirect: loggedInRedirect, + ), + GoRoute( + path: 'login', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + Login(client: state.extra as Client), + ), + redirect: loggedInRedirect, + ), + GoRoute( + path: 'register', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + RegistrationPage(client: state.extra as Client), + ), + redirect: loggedInRedirect, + ), + ], + ), + GoRoute( + path: '/logs', + pageBuilder: (context, state) => + defaultPageBuilder(context, state, const LogViewer()), + ), + GoRoute( + path: '/configs', + pageBuilder: (context, state) => + defaultPageBuilder(context, state, const ConfigViewer()), + ), + GoRoute( + path: '/backup', + redirect: loggedOutRedirect, + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + BootstrapPage(reset: state.uri.queryParameters['reset'] == 'true'), + ), + ), + ShellRoute( + // Never use a transition on the shell route. Changing the PageBuilder + // here based on a MediaQuery causes the child to briefly be rendered + // twice with the same GlobalKey, blowing up the rendering. + pageBuilder: (context, state, child) => noTransitionPageBuilder( + context, + state, + FluffyThemes.isColumnMode(context) && + state.fullPath?.startsWith('/rooms/settings') == false + ? TwoColumnLayout( + mainView: ChatList( + activeChat: state.pathParameters['roomid'], + activeSpace: state.uri.queryParameters['spaceId'], + displayNavigationRail: + state.path?.startsWith('/rooms/settings') != true, + ), + sideView: child, + ) + : child, + ), + routes: [ + GoRoute( + path: '/rooms', + redirect: loggedOutRedirect, + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + FluffyThemes.isColumnMode(context) + ? const EmptyPage() + : ChatList( + activeChat: state.pathParameters['roomid'], + activeSpace: state.uri.queryParameters['spaceId'], + ), + ), + routes: [ + GoRoute( + path: 'archive', + pageBuilder: (context, state) => + defaultPageBuilder(context, state, const Archive()), + routes: [ + GoRoute( + path: ':roomid', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + ChatPage( + key: ValueKey(state.uri), + roomId: state.pathParameters['roomid']!, + eventId: state.uri.queryParameters['event'], + timeline: state.extra as Timeline?, + action: state.uri.queryParameters['action'], + ), + ), + redirect: loggedOutRedirect, + ), + ], + redirect: loggedOutRedirect, + ), + GoRoute( + path: 'newprivatechat', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + NewPrivateChat( + key: ValueKey('new_chat_${state.uri.fragment}'), + deeplink: state.uri.fragment, + ), + ), + redirect: loggedOutRedirect, + ), + GoRoute( + path: 'newgroup', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + NewGroup(spaceId: state.uri.queryParameters['space_id']), + ), + redirect: loggedOutRedirect, + ), + GoRoute( + path: 'newspace', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + NewGroup( + createGroupType: CreateGroupType.space, + spaceId: state.uri.queryParameters['space_id'], + ), + ), + redirect: loggedOutRedirect, + ), + ShellRoute( + pageBuilder: (context, state, child) => defaultPageBuilder( + context, + state, + FluffyThemes.isColumnMode(context) + ? TwoColumnLayout( + mainView: Settings(key: state.pageKey), + sideView: child, + hasNavigationRail: false, + ) + : child, + ), + routes: [ + GoRoute( + path: 'settings', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + FluffyThemes.isColumnMode(context) + ? const EmptyPage() + : const Settings(), + ), + routes: [ + GoRoute( + path: 'notifications', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + const SettingsNotifications(), + ), + redirect: loggedOutRedirect, + ), + GoRoute( + path: 'style', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + const SettingsStyle(), + ), + redirect: loggedOutRedirect, + ), + GoRoute( + path: 'devices', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + const DevicesSettings(), + ), + redirect: loggedOutRedirect, + ), + GoRoute( + path: 'chat', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + const SettingsChat(), + ), + routes: [ + GoRoute( + path: 'emotes', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + EmotesSettings( + roomId: state.pathParameters['roomid'], + ), + ), + ), + ], + redirect: loggedOutRedirect, + ), + GoRoute( + path: 'addaccount', + redirect: loggedOutRedirect, + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + const IntroPagePresenter(), + ), + routes: [ + GoRoute( + path: 'sign_in', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + SignInPage(signUp: false), + ), + redirect: loggedOutRedirect, + ), + GoRoute( + path: 'sign_up', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + SignInPage(signUp: true), + ), + redirect: loggedOutRedirect, + ), + GoRoute( + path: 'login', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + Login(client: state.extra as Client), + ), + redirect: loggedOutRedirect, + ), + GoRoute( + path: 'register', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + RegistrationPage(client: state.extra as Client), + ), + redirect: loggedOutRedirect, + ), + ], + ), + GoRoute( + path: 'homeserver', + pageBuilder: (context, state) { + return defaultPageBuilder( + context, + state, + const SettingsHomeserver(), + ); + }, + redirect: loggedOutRedirect, + ), + GoRoute( + path: 'security', + redirect: loggedOutRedirect, + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + const SettingsSecurity(), + ), + routes: [ + GoRoute( + path: 'password', + pageBuilder: (context, state) { + return defaultPageBuilder( + context, + state, + const SettingsPassword(), + ); + }, + redirect: loggedOutRedirect, + ), + GoRoute( + path: 'ignorelist', + pageBuilder: (context, state) { + return defaultPageBuilder( + context, + state, + SettingsIgnoreList( + initialUserId: state.extra?.toString(), + ), + ); + }, + redirect: loggedOutRedirect, + ), + GoRoute( + path: '3pid', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + const Settings3Pid(), + ), + redirect: loggedOutRedirect, + ), + ], + ), + ], + redirect: loggedOutRedirect, + ), + ], + ), + GoRoute( + path: ':roomid', + pageBuilder: (context, state) { + final body = state.uri.queryParameters['body']; + var shareItems = state.extra is List + ? state.extra as List + : null; + if (body != null && body.isNotEmpty) { + shareItems ??= []; + shareItems.add(TextShareItem(body)); + } + return defaultPageBuilder( + context, + state, + ChatPage( + key: ValueKey(state.uri), + roomId: state.pathParameters['roomid']!, + shareItems: shareItems, + eventId: state.uri.queryParameters['event'], + action: state.uri.queryParameters['action'], + ), + ); + }, + redirect: loggedOutRedirect, + routes: [ + GoRoute( + path: 'search', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + ChatSearchPage(roomId: state.pathParameters['roomid']!), + ), + redirect: loggedOutRedirect, + ), + GoRoute( + path: 'encryption', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + const ChatEncryptionSettings(), + ), + redirect: loggedOutRedirect, + ), + GoRoute( + path: 'invite', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + InvitationSelection( + roomId: state.pathParameters['roomid']!, + ), + ), + redirect: loggedOutRedirect, + ), + GoRoute( + path: 'details', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + ChatDetails(roomId: state.pathParameters['roomid']!), + ), + routes: [ + GoRoute( + path: 'access', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + ChatAccessSettings( + roomId: state.pathParameters['roomid']!, + ), + ), + redirect: loggedOutRedirect, + ), + GoRoute( + path: 'members', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + ChatMembersPage( + roomId: state.pathParameters['roomid']!, + ), + ), + redirect: loggedOutRedirect, + ), + GoRoute( + path: 'permissions', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + const ChatPermissionsSettings(), + ), + redirect: loggedOutRedirect, + ), + GoRoute( + path: 'invite', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + InvitationSelection( + roomId: state.pathParameters['roomid']!, + ), + ), + redirect: loggedOutRedirect, + ), + GoRoute( + path: 'emotes', + pageBuilder: (context, state) => defaultPageBuilder( + context, + state, + EmotesSettings(roomId: state.pathParameters['roomid']), + ), + redirect: loggedOutRedirect, + ), + ], + redirect: loggedOutRedirect, + ), + ], + ), + ], + ), + ], + ), + ]; + + static Page noTransitionPageBuilder( + BuildContext context, + GoRouterState state, + Widget child, + ) => NoTransitionPage( + key: state.pageKey, + restorationId: state.pageKey.value, + child: child, + ); + + static Page defaultPageBuilder( + BuildContext context, + GoRouterState state, + Widget child, + ) { + final clientName = state.uri.queryParameters['client']; + if (clientName != null) { + final matrix = Matrix.of(context); + final client = matrix.getClientByName(clientName); + if (client != null) matrix.setActiveClient(client); + } + return FluffyThemes.isColumnMode(context) + ? noTransitionPageBuilder(context, state, child) + : MaterialPage( + key: state.pageKey, + restorationId: state.pageKey.value, + child: child, + ); + } +} diff --git a/lib/config/setting_keys.dart b/lib/config/setting_keys.dart new file mode 100644 index 0000000..5cec92d --- /dev/null +++ b/lib/config/setting_keys.dart @@ -0,0 +1,264 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:convert'; + +import 'package:async/async.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:flutter/foundation.dart'; +import 'package:http/http.dart' as http; +import 'package:managed_configurations/managed_configurations.dart'; +import 'package:matrix/matrix_api_lite/utils/logs.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +enum AppSettings { + textMessageMaxLength('textMessageMaxLength', 16384), + + /// Max lines for unselected HTML/text bubbles; 0 = unlimited (no fade). + messagePreviewMaxLines('chat.fluffy.message_preview_max_lines', 50), + audioRecordingNumChannels('audioRecordingNumChannels', 1), + audioRecordingAutoGain('audioRecordingAutoGain', true), + audioRecordingEchoCancel('audioRecordingEchoCancel', false), + audioRecordingNoiseSuppress('audioRecordingNoiseSuppress', true), + audioRecordingBitRate('audioRecordingBitRate', 64000), + audioRecordingSamplingRate('audioRecordingSamplingRate', 44100), + showNoGoogle('chat.fluffy.show_no_google', false), + unifiedPushRegistered('chat.fluffy.unifiedpush.registered', false), + unifiedPushEndpoint('chat.fluffy.unifiedpush.endpoint', ''), + pushNotificationsGatewayUrl( + 'pushNotificationsGatewayUrl', + 'https://push.fluffychat.im/_matrix/push/v1/notify', + ), + pushNotificationsPusherFormat( + 'pushNotificationsPusherFormat', + 'event_id_only', + ), + renderHtml('chat.fluffy.renderHtml', true), + fontSizeFactor('chat.fluffy.font_size_factor', 1.0), + hideRedactedEvents('chat.fluffy.hideRedactedEvents', false), + hideUnknownEvents('chat.fluffy.hideUnknownEvents', true), + autoplayImages('chat.fluffy.autoplay_images', true), + sendTypingNotifications('chat.fluffy.send_typing_notifications', true), + sendPublicReadReceipts('chat.fluffy.send_public_read_receipts', true), + swipeRightToLeftToReply('chat.fluffy.swipeRightToLeftToReply', true), + sendOnEnter('chat.fluffy.send_on_enter', false), + displayNavigationRail('chat.fluffy.display_navigation_rail', false), + shareKeysWith('chat.fluffy.share_keys_with_2', 'all'), + noEncryptionWarningShown( + 'chat.fluffy.no_encryption_warning_shown', + false, + ), + displayChatDetailsColumn('chat.fluffy.display_chat_details_column', false), + // AppConfig-mirrored settings + applicationName('chat.fluffy.application_name', 'TatuChat'), + defaultHomeserver( + 'chat.fluffy.default_homeserver', + 'https://matrix.weltonmoura.com.br', + ), + // colorSchemeSeed stored as ARGB int + colorSchemeSeedInt('chat.fluffy.color_scheme_seed', 0xFF00D084), + emojiSuggestionLocale('emoji_suggestion_locale', ''), + enableSoftLogout('chat.fluffy.enable_soft_logout', true), + enableMatrixNativeOIDC('chat.fluffy.enable_matrix_native_oidc', true), + presetHomeserver( + 'chat.fluffy.preset_homeserver', + 'https://matrix.weltonmoura.com.br', + ), + welcomeText('chat.fluffy.welcome_text', ''), + website('chat.fluffy.website_url', 'https://fluffychat.im'), + logoUrl( + 'chat.fluffy.logo_url', + 'https://fluffychat.im/assets/favicon.png', + ), + privacyPolicy( + 'chat.fluffy.privacy_policy_url', + 'https://fluffychat.im/privacy', + ), + tos('chat.fluffy.tos_url', 'https://fluffychat.im/tos'), + sendTimelineEventTimeout('chat.fluffy.send_timeline_event_timeout', 15), + webNotificationSound('chat.fluffy.web_notification_sound', true), + chatFilter('chat.fluffy.chat_filter', 'allChats'), + hideRoomsInSpaces('chat.fluffy.hideRoomsInSpaces', false), + showThumbnailsInTimeline('chat.fluffy.showThumbnailsInTimeline', true), + doubleTapToReact('chat.fluffy.double_tap_to_react', false), + doubleTapReaction('chat.fluffy.double_tap_reaction', '❤️'), + benchmarksInLogs('chat.fluffy.benchmarks_in_logs', false), + autoSendErrorReports('chat.fluffy.auto_send_eror_reports', null), + knownErrorHashes>('chat.fluffy.known_crash_hashes', []), + customLiveKitInstance('chat.fluffy.custom_live_kit_instance', ''); + + final String key; + final T _defaultValue; + + const AppSettings(this.key, this._defaultValue); + + static SharedPreferences get store => _store!; + static SharedPreferences? _store; + + static Map? _platformConfiguration; + + T get defaultValue { + final platformConfig = _platformConfiguration?[name]; + if (platformConfig is T) return platformConfig; + return _defaultValue; + } + + static Future reset({bool loadWebConfigFile = true}) async { + await AppSettings._store!.clear(); + await init(loadWebConfigFile: loadWebConfigFile); + } + + static Future init({bool loadWebConfigFile = true}) async { + if (AppSettings._store != null) return AppSettings.store; + + final store = AppSettings._store = await SharedPreferences.getInstance(); + + // Migrate wrong datatype for fontSizeFactor + final fontSizeFactorString = Result( + () => store.getString(AppSettings.fontSizeFactor.key), + ).asValue?.value; + if (fontSizeFactorString != null) { + Logs().i('Migrate wrong datatype for fontSizeFactor!'); + await store.remove(AppSettings.fontSizeFactor.key); + final fontSizeFactor = double.tryParse(fontSizeFactorString); + if (fontSizeFactor != null) { + await store.setDouble(AppSettings.fontSizeFactor.key, fontSizeFactor); + } + } + + if (store.getBool(AppSettings.sendOnEnter.key) == null) { + await store.setBool(AppSettings.sendOnEnter.key, !PlatformInfos.isMobile); + } + if (store.getBool(AppSettings.doubleTapToReact.key) == null) { + await store.setBool( + AppSettings.doubleTapToReact.key, + PlatformInfos.isMobile, + ); + } + + // Load configuration from config.json file or MDM: + if (PlatformInfos.isMobile) { + _platformConfiguration = + await ManagedConfigurations().getManagedConfigurations; + } else if (kIsWeb && loadWebConfigFile) { + try { + final configJsonString = utf8.decode( + (await http.get(Uri.parse('config.json'))).bodyBytes, + ); + _platformConfiguration = + json.decode(configJsonString) as Map; + } on FormatException catch (_) { + Logs().v('[ConfigLoader] config.json not found'); + } catch (e) { + Logs().v('[ConfigLoader] config.json not found', e); + } + } + + return store; + } +} + +extension AppSettingsBoolNExtension on AppSettings { + bool? get value { + final value = Result(() => AppSettings.store.getBool(key)); + final error = value.asError; + if (error != null) { + Logs().e( + 'Unable to fetch $key from storage. Removing entry...', + error.error, + error.stackTrace, + ); + } + return value.asValue?.value; + } + + Future setItem(bool value) => AppSettings.store.setBool(key, value); +} + +extension AppSettingsBoolExtension on AppSettings { + bool get value { + final value = Result(() => AppSettings.store.getBool(key)); + final error = value.asError; + if (error != null) { + Logs().e( + 'Unable to fetch $key from storage. Removing entry...', + error.error, + error.stackTrace, + ); + } + return value.asValue?.value ?? defaultValue; + } + + Future setItem(bool value) => AppSettings.store.setBool(key, value); +} + +extension AppSettingsStringExtension on AppSettings { + String get value { + final value = Result(() => AppSettings.store.getString(key)); + final error = value.asError; + if (error != null) { + Logs().e( + 'Unable to fetch $key from storage. Removing entry...', + error.error, + error.stackTrace, + ); + } + return value.asValue?.value ?? defaultValue; + } + + Future setItem(String value) => AppSettings.store.setString(key, value); +} + +extension AppSettingsIntExtension on AppSettings { + int get value { + final value = Result(() => AppSettings.store.getInt(key)); + final error = value.asError; + if (error != null) { + Logs().e( + 'Unable to fetch $key from storage. Removing entry...', + error.error, + error.stackTrace, + ); + } + return value.asValue?.value ?? defaultValue; + } + + Future setItem(int value) => AppSettings.store.setInt(key, value); +} + +extension AppSettingsDoubleExtension on AppSettings { + double get value { + final value = Result(() => AppSettings.store.getDouble(key)); + final error = value.asError; + if (error != null) { + Logs().e( + 'Unable to fetch $key from storage. Removing entry...', + error.error, + error.stackTrace, + ); + } + return value.asValue?.value ?? defaultValue; + } + + Future setItem(double value) => AppSettings.store.setDouble(key, value); +} + +extension AppSettingsStringListExtension on AppSettings> { + List get value { + final value = Result(() => AppSettings.store.getStringList(key)); + final error = value.asError; + if (error != null) { + Logs().e( + 'Unable to fetch $key from storage. Removing entry...', + error.error, + error.stackTrace, + ); + } + return value.asValue?.value ?? defaultValue; + } + + Future setItem(List value) => + AppSettings.store.setStringList(key, value); +} diff --git a/lib/config/tatu_palette.dart b/lib/config/tatu_palette.dart new file mode 100644 index 0000000..4d10f09 --- /dev/null +++ b/lib/config/tatu_palette.dart @@ -0,0 +1,212 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:material_ui/material_ui.dart'; + +/// TatuChat brand palette, adapted between light and dark themes. +/// +/// The colors below follow the brand identity: +/// * Primary (brand): Emerald Green #00D084 +/// * Background: Deep Graphite #121519 (dark mode) +/// * Surfaces / Cards: Slate Dark #1D222A +/// * Accent: Electric Cyan #00E5FF +/// * Text primary: Pure White / Ice #F4F6F8 +/// * Text secondary: Cool Gray #8A94A6 +/// * Alert / Error: Crimson Rose #FF4D6D +abstract class TatuPalette { + static const Color brandEmerald = Color(0xFF00D084); + static const Color brandGraphite = Color(0xFF121519); + static const Color brandSlate = Color(0xFF1D222A); + static const Color brandCyan = Color(0xFF00E5FF); + static const Color brandIce = Color(0xFFF4F6F8); + static const Color brandCoolGray = Color(0xFF8A94A6); + static const Color brandCrimson = Color(0xFFFF4D6D); + + static const _Scheme _dark = _Scheme( + primary: Color(0xFF00D084), + onPrimary: Color(0xFF00281E), + primaryContainer: Color(0xFF0E4133), + onPrimaryContainer: Color(0xFFBDFFE2), + secondary: Color(0xFF8A94A6), + onSecondary: Color(0xFF141A24), + secondaryContainer: Color(0xFF293240), + onSecondaryContainer: Color(0xFFDBE2EE), + tertiary: Color(0xFF00E5FF), + onTertiary: Color(0xFF003B46), + tertiaryContainer: Color(0xFF004A55), + onTertiaryContainer: Color(0xFFA6F3FF), + error: Color(0xFFFF4D6D), + onError: Color(0xFF410013), + errorContainer: Color(0xFF7F0024), + onErrorContainer: Color(0xFFFFD9DF), + surface: Color(0xFF121519), + onSurface: Color(0xFFF4F6F8), + onSurfaceVariant: Color(0xFF9BA5B6), + outline: Color(0xFF6F7B8C), + outlineVariant: Color(0xFF323B46), + inverseSurface: Color(0xFFE8EBF0), + onInverseSurface: Color(0xFF121519), + inversePrimary: Color(0xFF008E5F), + surfaceLowest: Color(0xFF0C0F13), + surfaceLow: Color(0xFF161B21), + surfaceContainer: Color(0xFF1D222A), + surfaceHigh: Color(0xFF232A34), + surfaceHighest: Color(0xFF2A323D), + surfaceDim: Color(0xFF121519), + surfaceBright: Color(0xFF3A414C), + ); + + static const _Scheme _light = _Scheme( + primary: Color(0xFF00D084), + onPrimary: Color(0xFF00291F), + primaryContainer: Color(0xFFBDFFE4), + onPrimaryContainer: Color(0xFF003A28), + secondary: Color(0xFF5F6B7D), + onSecondary: Color(0xFFFFFFFF), + secondaryContainer: Color(0xFFE2E7EF), + onSecondaryContainer: Color(0xFF1C2430), + tertiary: Color(0xFF00A6C4), + onTertiary: Color(0xFF002A33), + tertiaryContainer: Color(0xFFB7F1FF), + onTertiaryContainer: Color(0xFF00343D), + error: Color(0xFFFF4D6D), + onError: Color(0xFF430013), + errorContainer: Color(0xFFFFDADD), + onErrorContainer: Color(0xFF4B0012), + surface: Color(0xFFF5F7FA), + onSurface: Color(0xFF121519), + onSurfaceVariant: Color(0xFF5F6B7D), + outline: Color(0xFF7A8595), + outlineVariant: Color(0xFFCCD4DD), + inverseSurface: Color(0xFF2C3440), + onInverseSurface: Color(0xFFF4F6F8), + inversePrimary: Color(0xFF2ED9A0), + surfaceLowest: Color(0xFFFFFFFF), + surfaceLow: Color(0xFFEDF0F4), + surfaceContainer: Color(0xFFE8EBF0), + surfaceHigh: Color(0xFFE2E6EC), + surfaceHighest: Color(0xFFDDE1E7), + surfaceDim: Color(0xFFE8ECF1), + surfaceBright: Color(0xFFFBFCFE), + ); + + /// Builds the ColorScheme for [brightness]. + /// + /// When a [seed] is provided (e.g. a color chosen by the user or a system + /// dynamic color), its tonal values are used for the primary family while + /// the brand surfaces, accent and error colors are preserved. + static ColorScheme scheme(Brightness brightness, [Color? seed]) { + final isDark = brightness == Brightness.dark; + final p = isDark ? _dark : _light; + final base = ColorScheme.fromSeed( + brightness: brightness, + seedColor: seed ?? p.primary, + dynamicSchemeVariant: DynamicSchemeVariant.rainbow, + ); + final useBrandPrimary = seed == null; + return base.copyWith( + primary: useBrandPrimary ? p.primary : null, + onPrimary: useBrandPrimary ? p.onPrimary : null, + primaryContainer: useBrandPrimary ? p.primaryContainer : null, + onPrimaryContainer: useBrandPrimary ? p.onPrimaryContainer : null, + surfaceTint: useBrandPrimary ? p.primary : null, + secondary: p.secondary, + onSecondary: p.onSecondary, + secondaryContainer: p.secondaryContainer, + onSecondaryContainer: p.onSecondaryContainer, + tertiary: p.tertiary, + onTertiary: p.onTertiary, + tertiaryContainer: p.tertiaryContainer, + onTertiaryContainer: p.onTertiaryContainer, + error: p.error, + onError: p.onError, + errorContainer: p.errorContainer, + onErrorContainer: p.onErrorContainer, + surface: p.surface, + onSurface: p.onSurface, + onSurfaceVariant: p.onSurfaceVariant, + outline: p.outline, + outlineVariant: p.outlineVariant, + inverseSurface: p.inverseSurface, + onInverseSurface: p.onInverseSurface, + inversePrimary: p.inversePrimary, + surfaceContainerLowest: p.surfaceLowest, + surfaceContainerLow: p.surfaceLow, + surfaceContainer: p.surfaceContainer, + surfaceContainerHigh: p.surfaceHigh, + surfaceContainerHighest: p.surfaceHighest, + surfaceDim: p.surfaceDim, + surfaceBright: p.surfaceBright, + ); + } +} + +class _Scheme { + const _Scheme({ + required this.primary, + required this.onPrimary, + required this.primaryContainer, + required this.onPrimaryContainer, + required this.secondary, + required this.onSecondary, + required this.secondaryContainer, + required this.onSecondaryContainer, + required this.tertiary, + required this.onTertiary, + required this.tertiaryContainer, + required this.onTertiaryContainer, + required this.error, + required this.onError, + required this.errorContainer, + required this.onErrorContainer, + required this.surface, + required this.onSurface, + required this.onSurfaceVariant, + required this.outline, + required this.outlineVariant, + required this.inverseSurface, + required this.onInverseSurface, + required this.inversePrimary, + required this.surfaceLowest, + required this.surfaceLow, + required this.surfaceContainer, + required this.surfaceHigh, + required this.surfaceHighest, + required this.surfaceDim, + required this.surfaceBright, + }); + + final Color primary; + final Color onPrimary; + final Color primaryContainer; + final Color onPrimaryContainer; + final Color secondary; + final Color onSecondary; + final Color secondaryContainer; + final Color onSecondaryContainer; + final Color tertiary; + final Color onTertiary; + final Color tertiaryContainer; + final Color onTertiaryContainer; + final Color error; + final Color onError; + final Color errorContainer; + final Color onErrorContainer; + final Color surface; + final Color onSurface; + final Color onSurfaceVariant; + final Color outline; + final Color outlineVariant; + final Color inverseSurface; + final Color onInverseSurface; + final Color inversePrimary; + final Color surfaceLowest; + final Color surfaceLow; + final Color surfaceContainer; + final Color surfaceHigh; + final Color surfaceHighest; + final Color surfaceDim; + final Color surfaceBright; +} \ No newline at end of file diff --git a/lib/config/themes.dart b/lib/config/themes.dart new file mode 100644 index 0000000..2ac9769 --- /dev/null +++ b/lib/config/themes.dart @@ -0,0 +1,147 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/tatu_palette.dart'; +import 'package:flutter/services.dart'; +import 'package:material_ui/material_ui.dart'; + +abstract class FluffyThemes { + static const double columnWidth = 380.0; + + static const double maxTimelineWidth = columnWidth * 2; + + static const double navRailWidth = 80.0; + + static bool isColumnModeByWidth(double width) => + width > columnWidth * 2 + navRailWidth; + + static bool isColumnMode(BuildContext context) => + isColumnModeByWidth(MediaQuery.sizeOf(context).width); + + static bool isThreeColumnMode(BuildContext context) => + MediaQuery.sizeOf(context).width > FluffyThemes.columnWidth * 3.5; + + static LinearGradient backgroundGradient(BuildContext context, int alpha) { + final colorScheme = Theme.of(context).colorScheme; + return LinearGradient( + begin: Alignment.topCenter, + colors: [ + colorScheme.primaryContainer.withAlpha(alpha), + colorScheme.secondaryContainer.withAlpha(alpha), + colorScheme.tertiaryContainer.withAlpha(alpha), + colorScheme.primaryContainer.withAlpha(alpha), + ], + ); + } + + static const Duration animationDuration = Duration(milliseconds: 250); + static const Curve animationCurve = Curves.easeInOut; + + static ThemeData buildTheme( + BuildContext context, + Brightness brightness, [ + Color? seed, + ]) { + final colorScheme = TatuPalette.scheme(brightness, seed); + final isColumnMode = FluffyThemes.isColumnMode(context); + final dividerColor = brightness == Brightness.dark + ? colorScheme.surfaceContainerHighest + : colorScheme.surfaceContainer; + return ThemeData( + visualDensity: VisualDensity.standard, + useMaterial3: true, + brightness: brightness, + colorScheme: colorScheme, + dividerColor: dividerColor, + segmentedButtonTheme: SegmentedButtonThemeData( + style: SegmentedButton.styleFrom( + iconColor: colorScheme.onSurface, + disabledIconColor: colorScheme.onSurface, + ), + ), + textSelectionTheme: TextSelectionThemeData( + selectionColor: colorScheme.onSurface.withAlpha(128), + selectionHandleColor: colorScheme.secondary, + ), + inputDecorationTheme: InputDecorationTheme( + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppConfig.borderRadius / 2), + ), + contentPadding: const EdgeInsets.all(12), + ), + chipTheme: ChipThemeData( + showCheckmark: false, + backgroundColor: colorScheme.surfaceContainer, + side: BorderSide.none, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppConfig.borderRadius), + ), + ), + appBarTheme: AppBarTheme( + toolbarHeight: isColumnMode ? 72 : 56, + surfaceTintColor: isColumnMode ? colorScheme.surface : null, + backgroundColor: isColumnMode ? colorScheme.surface : null, + actionsPadding: isColumnMode + ? const EdgeInsets.symmetric(horizontal: 16.0) + : null, + systemOverlayStyle: SystemUiOverlayStyle( + statusBarColor: Colors.transparent, + statusBarIconBrightness: brightness.reversed, + statusBarBrightness: brightness, + systemNavigationBarIconBrightness: brightness.reversed, + systemNavigationBarColor: colorScheme.surface, + ), + ), + outlinedButtonTheme: OutlinedButtonThemeData( + style: OutlinedButton.styleFrom( + side: BorderSide(width: 1, color: colorScheme.primary), + shape: RoundedRectangleBorder( + side: BorderSide(color: colorScheme.primary), + borderRadius: BorderRadius.circular(AppConfig.borderRadius / 2), + ), + ), + ), + progressIndicatorTheme: ProgressIndicatorThemeData( + strokeCap: StrokeCap.round, + color: colorScheme.primary, + refreshBackgroundColor: colorScheme.primaryContainer, + ), + snackBarTheme: isColumnMode + ? const SnackBarThemeData( + showCloseIcon: true, + behavior: SnackBarBehavior.floating, + width: FluffyThemes.columnWidth * 1.5, + ) + : const SnackBarThemeData(behavior: SnackBarBehavior.floating), + elevatedButtonTheme: ElevatedButtonThemeData( + style: ElevatedButton.styleFrom( + backgroundColor: colorScheme.secondaryContainer, + foregroundColor: colorScheme.onSecondaryContainer, + elevation: 0, + padding: const EdgeInsets.all(16), + textStyle: const TextStyle(fontSize: 16), + ), + ), + ); + } +} + +extension on Brightness { + Brightness get reversed => + this == Brightness.dark ? Brightness.light : Brightness.dark; +} + +extension BubbleColorTheme on ThemeData { + Color get bubbleColor => brightness == Brightness.light + ? colorScheme.primary + : colorScheme.primaryContainer; + + Color get onBubbleColor => brightness == Brightness.light + ? colorScheme.onPrimary + : colorScheme.onPrimaryContainer; + + Color get secondaryBubbleColor => colorScheme.surfaceContainer; +} diff --git a/lib/l10n/intl_ar.arb b/lib/l10n/intl_ar.arb new file mode 100644 index 0000000..3d4da89 --- /dev/null +++ b/lib/l10n/intl_ar.arb @@ -0,0 +1,2673 @@ +{ + "@@locale": "ar", + "@@last_modified": "2021-08-14 12:41:10.156221", + "about": "حول", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "أقبل", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} قبل الدعوة", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "الحساب", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 تم تنشيط {username} التشفير من طرف إلى طرف", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "admin": "المدير", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "اللقب", + "@alias": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} أجاب على المكالمة", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "يمكن لأي أحد الدخول", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "archive": "الأرشيف", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "هل يُسمح للزوار الدخول", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "أمتأكد؟", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "لتتمكن من التأكد من الشخص الآخر، يرجى إدخال عبارة المرور أو مفتاح الاسترداد.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "أتقبل طلب تحقق {username}؟", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "banFromChat": "حظر من المحادثة", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "محظور", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} حظر {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "أُحظر الجهاز", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "cancel": "ألغِ", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "غيَّر {username} صورة المحادثة", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "غيَّر {username} أذون المحادثة", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} غير إسمه العلني إلى: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "غيّر {username} قواعد وصول الزوار", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "غيّر {username} قواعد وصول الزوار الى: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "غيَّر {username} مرئية التأريخ", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "غيَّر {username} مرئية التأريخ الى: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "غيَّر {username} قواعد الانضمام", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "غيَّر {username} قواعد الانضمام الى: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "غيّر {username} صورته الشخصية", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "غيّر {username} ألقاب الغرف", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "غيّر {username} رابط الدعوة", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changeTheHomeserver": "غيّر الخادم", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "غيّر أسلوبك", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "غيِّر اسم المجموعة", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "فسُد التشفير", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "محادثة", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "تفاصيل المحادثة", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "اختر كلمة سر قوية", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "close": "اغلق", + "@close": { + "type": "String", + "placeholders": {} + }, + "compareEmojiMatch": "يرجى مقارنة الرموز التعبيرية", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "الرجاء مقارنة الأرقام", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "دعيَ المراسل للمجموعة", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "نُسخ للحافظة", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "انسخ", + "@copy": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "تعذر فك تشفير الرسالة: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "create": "أنشئ", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 أنشأ {username} المحادثة", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "currentlyActive": "نشطٌ حاليا", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "داكن", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "لا مجال للعودة، أتأكد تعطيل حسابك؟", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "delete": "احذف", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "احذف الحساب", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "حذف الرسالة", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "الأجهزة", + "@devices": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "غُيِّر الاسم العلني", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "نزِّل الملف", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "حرر الاسم العلني", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "الانفعالة موجودة مسبقا!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "رمز الانفعالة غير صالح!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "رمز الانفعالة", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "محادثة فارغة", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "لن يمكنك تعطيل التشفير أبدا، أمتأكد؟", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encryption": "التشفير", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "التشفير معطل", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "أنهى {senderName} المكالمة", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "forward": "أعد التوجيه", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "من بعد الانضمام", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "من بعد الدعوة", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "المجموعة", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "المجموعة عامة", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groupWith": "في مجموعة مع {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "يمنع الزوار", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "يمكن للزوار الانضمام", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "سحب {username} دعوة {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "المساعدة", + "@help": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "المستخدمون المتجاهلون", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "عبارة مرور أو مفتاح استرداد خطأ", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "دعوة مراسل", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "أدعو مراسلا الى {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "دُعيَ", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username} دعا {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "المستخدمون المدعوون فقط", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "دعاك {username} إلى FluffyChat.\n1. قم بزيارة موقع fluffychat.im وقم بتثبيت التطبيق\n2. قم بإنشاءحساب أو تسجيل الدخول\n3. افتح رابط الدعوة:\n {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "يكتب…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 انضم {username} إلى المحادثة", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "انضم للمحادثة", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username} ركل {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} ركل وحظر {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "طرد من المحادثة", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "آخر نشاط: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "غادر", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "غادر المحادثة", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "فاتح", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "حمِّل {count} منتسبًا إضافيًا", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "يحمّل… يرجى الانتظار.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "حمِّل المزيد…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "login": "لِج", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "لِج ل {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "اخرج", + "@logout": { + "type": "String", + "placeholders": {} + }, + "moderator": "مشرف", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "أكتم الماحدثة", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 رسالة جديدة في FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "طلب تحقق جديد!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "no": "لا", + "@no": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "لم يُعثر على انفعالة. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "يبدو أن خدمة Firebase Cloud Messaging غير متاحة على جهازك. لمواصلة تلقي الإشعارات، نوصي بتثبيت ntfy. باستخدام ntfy أو أي مزود خدمة Unified Push آخر، يمكنك تلقي إشعارات الدفع بطريقة آمنة للبيانات. يمكنك تنزيل ntfy من PlayStore أو من F-Droid.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noPermission": "بدون اذن", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "لم يُعثر على غرف…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "ok": "موافق", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "تم تفعيل النسخ الاحتياطي للمفاتيح عبر الإنترنت", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "عفوًا، حدث خطأ ما…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "افتح التطبيق لقراءة الرسائل", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "افتح الكميرا", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "عبارة المرور أو مفتاح الاستعادة", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "كلمة السر", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "غُيّرت كلمة السر", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "pin": "ثبِّت", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "أدخل كلمة السر", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "أدخل اسم المستخدم", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "privacy": "الخصوصية", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "الغرف العامة", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "حذف {username} حدثًا", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "reject": "رفض", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "رفض {username} الدعوة", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "أزِل", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "أزِل كل الأجهزة الأخرى", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "فك حجبه من المحادثة", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "reply": "ردّ", + "@reply": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "رُقيّت الغرفة", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "send": "أرسل", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "أرسل رسالة", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAudio": "أرسل ملفًا صوتيًا", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "أرسل ملف", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "أرسل صورة", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "أرسل فيديو", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 أرسل {username} ملفا", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 أرسل {username} ملفا صوتيا", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username} أرسل صورة", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 أرسل {username} ملصقا", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 أرسل {username} مقطع فيديو", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "أرسل {senderName} معلومات مكالمة", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setStatus": "عيّن الحالة", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "الإعدادات", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "شارك", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "شارك {username} موقعه", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "skip": "تخط", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "الشفرة المصدرية", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "startedACall": "بدأ {senderName} مكالمة", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "statusExampleMessage": "ماهو وضعك؟", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "أرسل", + "@submit": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "النظام", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "لا يتطبقان", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "متطبقان", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "حاول إعادة الارسال", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "ألغى {username} حظر {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "ألغ حظر الجهاز", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "جهز مجهول", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "خوارزمية تشفير مجهولة", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "حدث مجهول '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "ألغِ كتم المحادثة", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "ألغِ التثبيت", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} و {count} أخرون يكتبون…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} و {username2} يكتبان…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} يكتب…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪 {username} غادر المحادثة", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "أرسل {username} حدث {type}", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verifyStart": "ابدأ التحقق", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "تُحقق منك بنجاح!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "يتحقق من الحساب الآخر", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "مرئية تأريخ المحادثة", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "مرئي لكل المنتسبين", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "مرئي للجميع", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "رسالة صوتية", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "ينتظر قبول الشريك للطلب…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "ينتظر قبول الشريك لإيموجي…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "ينتظر قبول الشريك للأرقام…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "تحذير!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "من يسمح له الانضمام للمجموعة", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "اكتب رسالة…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "نعم", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "انت", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "لم تعد منتسبا لهذه المحادثة", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "حُظرت من هذه المحادثة", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "scanQrCode": "امسح رمز الاستجابة السريعة", + "noMatrixServer": "{server1} ليس خادم ماتريكس، بدلًا منه أتريد استخدام {server2}؟", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "noConnectionToTheServer": "انقطع الاتصال بالخادم", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "next": "التالي", + "@next": { + "type": "String", + "placeholders": {} + }, + "newChat": "محادثة جديدة", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "messages": "الرسائل", + "@messages": { + "type": "String", + "placeholders": {} + }, + "mention": "اذكر", + "@mention": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "نقرت على الرابط", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "ignore": "تجاهل", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "اخف الأحداث المجهولة", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "groups": "المجموعات", + "@groups": { + "type": "String", + "placeholders": {} + }, + "fontSize": "حجم الخط", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "enterAnEmailAddress": "أدخل عنوان بريد إلكتروني", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "encrypted": "مشفر", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "فعّل التشفير", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "عدّل الصورة الرمزية للغرفة", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "عدّل الخوادم المحجوبة", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "edit": "عدّل", + "@edit": { + "type": "String", + "placeholders": {} + }, + "directChats": "محادثات مباشرة", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "createNewSpace": "مساحة جديدة", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "انسخ الى الحافظة", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "أّرسل الابلاغ الى مدير الخادم", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "commandMissing": "{command} ليس بأمر.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "commandInvalid": "أمر غير صالح", + "@commandInvalid": { + "type": "String" + }, + "commandHint_unban": "فك الحظر عن المستخدم المذكور في هذه الغرفة", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandHint_send": "أرسل نصًا", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_react": "أرسل ردًا كتفاعل", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_plain": "أرسل نصًا غير منسق", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_op": "عين مستوى نفوذ المستخدم في هذه الغرفة (الافتراضي: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_myroomnick": "عين اسمًا لك مخصص لهذه الغرفة", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_me": "صف نفسك", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_leave": "تغادر هذه الغرفة", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_kick": "يزيل المستخدم المذكور من الغرفة", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_join": "تنضم الى الغرفة المذكورة", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_invite": "يدعو المستخدم المذكور الى الغرفة", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_html": "أرسل نصًا بتنسيق HTML", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_ban": "يحظر المستخدم المذكور من هذه الغرفة", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "clearArchive": "امسح الأرشيف", + "chats": "المحادثات", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "النسخ الاحتياطي للمحادثات", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "غيّر الصورة الرمزية", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "changePassword": "غيّر كلمة السر", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeDeviceName": "غيّر اسم الجهاز", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "تعذر فتح المسار {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "blocked": "محجوب", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "sendOnEnter": "أرسل عند الدخول", + "autoplayImages": "شغِّل الملصقات والوجوه المتحركة تلقائيا", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "areYouSureYouWantToLogout": "أمتأكد من الخروج؟", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "appLock": "قفل التطبيق", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "all": "الكل", + "@all": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "أضف إلى المساحة", + "addEmail": "أضف بريدًا إلكترونيًا", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "لم تضف أي طريقة لاستعادة كلمة السر.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "notifications": "الإشعارات", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "reason": "السبب", + "@reason": { + "type": "String", + "placeholders": {} + }, + "search": "ابحث", + "@search": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "خدمات الموقع معطلة. مكنها لتتمكن من مشاركة موقعك.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "خطأ أثناء الحصول على الموقع: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "editRoomAliases": "عدّل الاسم المميز للغرفة", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "configureChat": "ضبط المحادثة", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "shareLocation": "شارك الموقع", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "اختر رمز المرور", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "استعادة كلمة السر", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "نسيتَ كلمة السر", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "participant": "منتسب", + "@participant": { + "type": "String", + "placeholders": {} + }, + "or": "أو", + "@or": { + "type": "String", + "placeholders": {} + }, + "link": "رابط", + "openInMaps": "افتح في الخريطة", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "bundleName": "اسم الحزمة", + "removeFromBundle": "أزله من الحزمة", + "addToBundle": "أضفه الى حزمة", + "editBundlesForAccount": "عدّل حزم هذا الحساب", + "addAccount": "أضف حسابًا", + "numUsersTyping": "{count} يكتبون…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "spaceIsPublic": "عام في المساحة", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "لماذا تريد الإبلاغ عنه؟", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "يمكنك استعادة كلمة السر بهذه العناوين.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "verified": "موثّق", + "@verified": { + "type": "String", + "placeholders": {} + }, + "spaceName": "اسم المساحة", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "يُزامن… يرجى الانتظار.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "طابات كثيرة. حاول مجددًا لاحقًا!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "أرسلنا لك رسالة بالبريد الإلكتروني", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "مفتاحك العمومي", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "status": "الحالة", + "@status": { + "type": "String", + "placeholders": {} + }, + "saveFile": "احفظ الملف", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "security": "الأمان", + "@security": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "أزل الصورة الرمزية", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "أرسل نصًا", + "@sendAsText": { + "type": "String" + }, + "sendMessages": "إرسال رسائل", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "استبدل الغرفة باصدار أحدث", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "obtainingLocation": "يحصل على الموقع…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "مستوى الأذونات الافتراضية للمستخدمين الجدد", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "oneClientLoggedOut": "أُ خرج أحد العملاء الذي تسختدمها", + "redactMessage": "احذف رسالة", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "أبلغ عن الرسالة", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "إصدار الغرفة", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "repeatPassword": "كرّر كلمة السر", + "removeFromSpace": "أزل من المساحة", + "unverified": "غير مؤكد", + "whoCanPerformWhichAction": "من يستطيع القيام بأي عمل", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "messageInfo": "معلومات الرسالة", + "sender": "المرسل", + "openGallery": "افتخ المعرض", + "time": "الوقت", + "badServerLoginTypesException": "يدعم الخادم المستخدم أنواع تسجيل الدخول التالية:\n{serverVersions}\nلكن هذا التطبيق يدعم فقط:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "commandHint_clearcache": "مسح الذاكرة المؤقتة", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "enableEmotesGlobally": "تفعيل حزمة التعبيرات بشكل عام", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "commandHint_discardsession": "إنهاء الجلسة", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "locationPermissionDeniedNotice": "تم رفض إذن الموقع. الرجاء منح الإذن للقدرة على مشاركة موقعك.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "يمكنك فقط تفعيل التشفير عندما تصبح الغرفة غير متاحة للعامة.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "emojis": "إيموجي", + "unsupportedAndroidVersion": "نسخة أندرويد غير مدعومة", + "unsupportedAndroidVersionLong": "تتطلب هذه الميزة إصدار Android أحدث. يرجى التحقق من وجود تحديثات أو دعم Lineage OS.", + "commandHint_create": "أنشأ محادثة جماعية فارغة\nاستخدم --لا-تشفير لتعطيل التشفير", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_dm": "إبدأ محادثة مباشرة\nاستخدم --لا-تشفير لتعطيل التشفير", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "oopsPushError": "عذراً! للأسف، حدث خطأ أثناء إعداد الإشعارات.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "يرجى اتباع التعليمات الموجودة على الموقع والنقر على التالي.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "commandHint_myroomavatar": "حدد صورتك لهذه الغرفة (عن طريق mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "setAsCanonicalAlias": "تعيين كاسم مستعار رئيسي", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "يرجى النقر على الرابط الموجود في البريد الإلكتروني ثم المتابعة.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "الرجاء إدخال رقم التعريف الشخصي الخاص بك", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "reactedWith": "{sender} تفاعل ب {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "markAsRead": "حدد كمقروء", + "reportUser": "التبيلغ عن المستخدم", + "pinMessage": "تثبيت في الغرفة", + "confirmEventUnpin": "هل أنت متأكد من إلغاء تثبيت الحدث بشكل دائم؟", + "fileHasBeenSavedAt": "تم حفظ الملف في {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "user": "مستخدم", + "custom": "مُخصّص", + "googlyEyesContent": "{senderName} يرسل لك عيون googly", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "confirmMatrixId": "يرجى تأكيد معرف Matrix الخاص بك من أجل حذف حسابك.", + "supposedMxid": "يجب أن يكون هذا {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "commandHint_googly": "أرسل بعض عيون googly", + "commandHint_cuddle": "أرسل عناق", + "commandHint_hug": "إرسال حضن", + "cuddleContent": "{senderName} يحتضنك", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_markasdm": "وضع علامة على أنها غرفة رسائل مباشرة لمعرف المصفوفة", + "dehydrate": "تصدير الجلسة ومسح الجهاز", + "dehydrateWarning": "لا يمكن التراجع عن هذا الإجراء. تأكد من تخزين ملف النسخ الاحتياطي بأمان.", + "hydrate": "استعادة من ملف النسخ الاحتياطي", + "youRejectedTheInvitation": "لقد رفضت الدعوة", + "youJoinedTheChat": "لقد انضممت إلى المحادثة", + "youAcceptedTheInvitation": "👍 لقد قبلت الدعوة", + "youBannedUser": "لقد حظرت {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youHaveWithdrawnTheInvitationFor": "لقد سحبت الدعوة لـ {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 لقد تمت دعوتك من قبل {user}", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "storeInAndroidKeystore": "تخزين في سجل مفاتيح اندرويد", + "storeInAppleKeyChain": "تخزين في سلسلة مفاتيح ابل", + "storeSecurlyOnThisDevice": "احفظه بأمان على هذا الجهاز", + "countFiles": "ملفات {count}", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "whyIsThisMessageEncrypted": "لماذا هذه الرسالة غير قابلة للقراءة؟", + "encryptThisChat": "تشفير هذه المحادثة", + "youKicked": "👞 لقد ركلت {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "newSpace": "مساحة جديدة", + "commandHint_markasgroup": "وضع علامة كمجموعة", + "hugContent": "{senderName} يعانقك", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "youKickedAndBanned": "🙅 لقد ركلت وحظرت {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "قمت بإلغاء الحظر {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 قمت بدعوة {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "users": "المستخدمون", + "jump": "قفز", + "report": "الإبلاغ", + "noKeyForThisMessage": "يمكن أن يحدث هذا إذا تم إرسال الرسالة قبل تسجيل الدخول إلى حسابك على هذا الجهاز.\n\nمن الممكن أيضا أن يكون المرسل قد حظر جهازك أو حدث خطأ ما في الاتصال بالإنترنت.\n\nهل يمكنك قراءة الرسالة في جلسة أخرى؟ ثم يمكنك نقل الرسالة منه! انتقل إلى الإعدادات > الأجهزة وتأكد من أن أجهزتك قد تحققت من بعضها البعض. عندما تفتح الغرفة في المرة التالية وتكون كلتا الجلستين في المقدمة ، سيتم إرسال المفاتيح تلقائيا.\n\nألا تريد أن تفقد المفاتيح عند تسجيل الخروج أو تبديل الأجهزة؟ تأكد من تمكين النسخ الاحتياطي للدردشة في الإعدادات.", + "doNotShowAgain": "لا تظهر مرة أخرى", + "wasDirectChatDisplayName": "محادثة فارغة (كانت {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "disableEncryptionWarning": "لأسباب أمنية ، لا يمكنك تعطيل التشفير في المحادثة ، حيث تم تمكينه من قبل.", + "reportErrorDescription": "😭 أوه لا. هناك خطأ ما. إذا كنت تريد، يمكنك الإبلاغ عن هذا الخطأ إلى المطورين.", + "newSpaceDescription": "يسمح لك تطبيق المساحات بتوحيد دردشاتك وبناء مجتمعات خاصة أو عامة.", + "sorryThatsNotPossible": "معذرة... هذا غير ممكن", + "openLinkInBrowser": "فتح الرابط في المتصفح", + "reopenChat": "إعادة فتح المحادثة", + "noBackupWarning": "تحذير! بدون تمكين النسخ الاحتياطي للدردشة ، ستفقد الوصول إلى رسائلك المشفرة. يوصى بشدة بتمكين النسخ الاحتياطي للدردشة أولاً قبل تسجيل الخروج.", + "noOtherDevicesFound": "لم يتم العثور على أجهزة أخرى", + "fileIsTooBigForServer": "تعذر الإرسال! لا يدعم الخادم سوى المرفقات التي تصل إلى {max}.", + "jumpToLastReadMessage": "الانتقال إلى آخر رسالة مقروءة", + "readUpToHere": "اقرأ حتى هنا", + "importNow": "استيراد الآن", + "importEmojis": "استيراد الرموز التعبيرية", + "exportEmotePack": "تصدير حزمة الرموز التعبيرية بتنسيق zip", + "notAnImage": "ليس ملف صورة.", + "importFromZipFile": "الاستيراد من ملف .zip", + "replace": "استبدال", + "sendTypingNotifications": "إرسال إشعارات الكتابة", + "createGroup": "إنشاء مجموعة", + "messagesStyle": "الرسائل:", + "shareInviteLink": "شارك رابط الدعوة", + "setColorTheme": "تعيين لون السمة:", + "tryAgain": "أعد المحاولة", + "redactMessageDescription": "سيتم تنقيح الرسالة لجميع المشاركين في هذه المحادثة. هذا لا يمكن التراجع عنها.", + "optionalRedactReason": "(اختياري) سبب تنقيح هذه الرسالة ...", + "redactedBy": "منقح بواسطة {username}", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactedByBecause": "تم حجبه بواسطة {username} بسبب: \"{reason}\"", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "invite": "دعوة", + "chatPermissions": "صلاحيات المحادثة", + "chatDescription": "وصف المحادثة", + "chatDescriptionHasBeenChanged": "تغير وصف المجموعة", + "noChatDescriptionYet": "لم يتم إنشاء وصف للمحادثة حتى الآن.", + "invalidServerName": "اسم الخادم غير متاح", + "setChatDescription": "تعيين وصفًا للدردشة", + "inviteGroupChat": "📨 دعوة للمحادثة الجماعية", + "emoteKeyboardNoRecents": "التعبيرات المستخدمة مؤخرًا ستظهر هنا ...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "invalidInput": "مدخل غير صالح!", + "wrongPinEntered": "تم إدخال رمز خاطئ! حاول مرة أخرى خلال {seconds} ثانية...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "hasKnocked": "🚪 لقد طرق {user}", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "pleaseEnterANumber": "الرجاء إدخال رقم أكبر من 0", + "banUserDescription": "سيتم حظر المستخدم من المحادثة ولن يتمكن من الدخول إلى المحادثة مرة أخرى حتى يتم رفع الحظر عنه.", + "removeDevicesDescription": "سيتم تسجيل خروجك من هذا الجهاز ولن تتمكن بعد ذلك من تلقي الرسائل.", + "unbanUserDescription": "سيتمكن المستخدم من الدخول إلى المحادثة مرة أخرى إذا حاول.", + "pushNotificationsNotAvailable": "دفع الإخطارات غير متوفرة", + "makeAdminDescription": "بمجرد تعيين هذا المستخدم كمسؤول، قد لا تتمكن من التراجع عن هذا لأنه سيكون لديه نفس الأذونات التي تتمتع بها.", + "archiveRoomDescription": "سيتم نقل المحادثة إلى الأرشيف. سيتمكن المستخدمون الآخرون من رؤية أنك غادرت المحادثة.", + "learnMore": "تعلم المزيد", + "roomUpgradeDescription": "سيتم بعد ذلك إعادة إنشاء المحادثة باستخدام إصدار الغرفة الجديد. سيتم إخطار جميع المشاركين بأنهم بحاجة إلى التبديل إلى المحادثة الجديدة. يمكنك معرفة المزيد حول إصدارات الغرف على https://spec.matrix.org/latest/rooms/", + "kickUserDescription": "يتم طرد المستخدم من المحادثة ولكن لا يتم حظره. في المحادثات العامة، يمكن للمستخدم الانضمام مرة أخرى في أي وقت.", + "createGroupAndInviteUsers": "إنشاء مجموعة ودعوة المستخدمين", + "groupCanBeFoundViaSearch": "يمكن العثور على المجموعة عبر البحث", + "noUsersFoundWithQuery": "لسوء الحظ، لا يمكن العثور على مستخدم لديه \"{query}\". يرجى التحقق مما إذا كنت قد ارتكبت خطأ كتابي.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "yourGlobalUserIdIs": "معرف المستخدم العمومي الخاص بك هو: ", + "groupName": "أسم المجموعة", + "searchChatsRooms": "ابحث عن #الدردشات، @المستخدمين...", + "commandHint_sendraw": "إرسال جيسون الخام", + "wrongRecoveryKey": "عذرًا... لا يبدو أن هذا هو مفتاح الاسترداد الصحيح.", + "blockListDescription": "يمكنك حظر المستخدمين الذين يزعجونك. لن تتمكن من تلقي أي رسائل أو دعوات للغرفة من المستخدمين الموجودين في قائمة الحظر الشخصية الخاصة بك.", + "blockedUsers": "المستخدمون المحظورون", + "block": "حظر", + "blockUsername": "تجاهل اسم المستخدم", + "databaseMigrationTitle": "تم تحسين قاعدة البيانات", + "databaseMigrationBody": "انتظر من فضلك. قد يستغرق ذلك بعض الوقت.", + "thisDevice": "هذا الجهاز:", + "publicSpaces": "مساحة عامة", + "passwordIsWrong": "كلمة السر للدخول خاطئة", + "pleaseEnterYourCurrentPassword": "من فضلك أدخل كلمة السر الحالية", + "nothingFound": "لم نجد شيئاً.", + "newPassword": "كلمة المرور الجديدة", + "passwordsDoNotMatch": "كلمات المرور لا تتطابق", + "select": "اختر", + "pleaseChooseAStrongPassword": "الرجاء اختيار كلمة مرور قوية", + "addChatOrSubSpace": "إضافة دردشة أو مساحة فرعية", + "leaveEmptyToClearStatus": "اتركه فارغًا لمسح حالتك.", + "joinSpace": "انضم إلى المساحة", + "searchForUsers": "ابحث عن @users...", + "initAppError": "حدث خطأ بداخل التطبيق", + "sessionLostBody": "جلستك مفقودة يرجى إبلاغ المطورين بهذا الخطأ في {url}. رسالة الخطأ هي: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "restoreSessionBody": "يحاول التطبيق الآن استعادة جلستك من النسخة الاحتياطية. الرجاء الإبلاغ عن هذا الخطأ للمطورين على {url}. رسالة الخطأ هي:{error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "completedKeyVerification": "أكمل {sender} عملية التحقق من المفتاح", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "requestedKeyVerification": "طلب {sender} التحقق من المفتاح", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "formattedMessagesDescription": "عرض محتوى الرسالة الغنية مثل النص الغامق باستخدام الماركداون.", + "verifyOtherUserDescription": "إذا قمت بالتحقق من مستخدم آخر، فيمكنك التأكد من أنك تعرف من تكتب إليه حقًا. 💪\n\nعند بدء عملية التحقق، سترى أنت والمستخدم الآخر نافذة منبثقة في التطبيق. هناك سترى بعد ذلك سلسلة من الرموز التعبيرية أو الأرقام التي يتعين عليك مقارنتها مع بعضها البعض.\n\nأفضل طريقة للقيام بذلك هي الالتقاء أو بدء مكالمة فيديو. 👭", + "verifyOtherDeviceDescription": "عند التحقق من جهاز آخر، يمكن لهذه الأجهزة تبادل المفاتيح، مما يزيد من أمانك بشكل عام. 💪 عند بدء عملية التحقق، ستظهر نافذة منبثقة في التطبيق على كلا الجهازين. هناك سترى بعد ذلك سلسلة من الرموز التعبيرية أو الأرقام التي يتعين عليك مقارنتها مع بعضها البعض. من الأفضل أن يكون كلا الجهازين في متناول يديك قبل بدء عملية التحقق. 🤳", + "formattedMessages": "رسائل منسقة", + "sendReadReceipts": "إرسال بالقراءة", + "verifyOtherDevice": "🔐 التحقق من الجهاز الآخر", + "sendTypingNotificationsDescription": "يستطيع المشاركون الآخرون في المحادثة رؤيتك عند كتابة رسالة جديدة.", + "sendReadReceiptsDescription": "يمكن للمشاركين الآخرين في المحادثة معرفة متى قرأت الرسالة.", + "verifyOtherUser": "🔐 التحقق من المستخدم الآخر", + "acceptedKeyVerification": "وافق {sender} على التحقق من المفتاح", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "canceledKeyVerification": "قام {sender} بإلغاء التحقق من المفتاح", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "{sender} جاهز للتحقق من المفتاح", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "بدأ {sender} عملية التحقق من المفتاح", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "incomingMessages": "الرسائل الواردة", + "stickers": "الملصقات", + "discover": "استكشف", + "commandHint_ignore": "تجاهل معرف المصفوفة المعطى", + "commandHint_unignore": "إلغاء تجاهل معرف المصفوفة المحدد", + "unreadChatsInApp": "{appname}: {unread} الدردشات غير المقروءة", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "noDatabaseEncryption": "تشفير قاعدة البيانات غير مدعوم على هذا النظام الأساسي", + "appLockDescription": "قفل التطبيق عند عدم استخدامه بالرمز السري", + "accessAndVisibility": "الوصول والرؤية", + "calls": "المكالمات", + "customEmojisAndStickers": "الرموز التعبيرية والملصقات المخصصة", + "hideRedactedMessagesBody": "إذا قام شخص ما بتنقيح رسالة، فلن تكون هذه الرسالة مرئية في المحادثة بعد الآن.", + "hideInvalidOrUnknownMessageFormats": "إخفاء تنسيقات الرسائل غير الصالحة أو غير المعروفة", + "passwordRecoverySettings": "إعدادات استعادة كلمة المرور", + "globalChatId": "معرف المحادثة العامة", + "accessAndVisibilityDescription": "من المسموح له بالانضمام إلى هذه المحادثة وكيف يمكن اكتشاف المحادثة.", + "customEmojisAndStickersBody": "قم بإضافة أو مشاركة الرموز التعبيرية أو الملصقات المخصصة التي يمكن استخدامها في أي دردشة.", + "hideRedactedMessages": "إخفاء الرسائل المكررة", + "usersMustKnock": "المستخدم يجب أن يطرق الباب", + "chatCanBeDiscoveredViaSearchOnServer": "يمكن اكتشاف الشات عن طريق البحث في {server}", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "noOneCanJoin": "لا أحد يستطيع الانضمام", + "knocking": "طرق", + "knock": "دق", + "thereAreCountUsersBlocked": "يوجد حاليًا {count} من المستخدمين المحظورين.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "publicChatAddresses": "عناوين المحادثة العامة", + "createNewAddress": "إنشاء عنوان جديد", + "searchIn": "بحث في {chat}...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "files": "الملفات", + "searchMore": "ابحث أكثر...", + "gallery": "المعرض", + "swipeRightToLeftToReply": "اسحب من اليمين إلى اليسار للرد", + "noMoreChatsFound": "لم يتم العثور على دردشات...", + "unread": "غير المقروءة", + "space": "المساحة", + "markAsUnread": "تحديد كغير مقروء", + "goToSpace": "انتقل إلى المساحة: {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "userLevel": "{level} - مستخدم", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "moderatorLevel": "{level} - مشرف", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "adminLevel": "{level} - مدير", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeGeneralChatSettings": "تغيير إعدادات الدردشة العامة", + "inviteOtherUsers": "دعوة مستخدمين آخرين إلى هذه الدردشة", + "changeTheChatPermissions": "تغيير أذونات الدردشة", + "changeTheVisibilityOfChatHistory": "تغيير رؤية سجل الدردشة", + "changeTheCanonicalRoomAlias": "تغيير عنوان الدردشة العامة الرئيسي", + "sendRoomNotifications": "إرسال إشعارات @room", + "changeTheDescriptionOfTheGroup": "تغيير وصف الدردشة", + "chatPermissionsDescription": "‪حدد مستوى الصلاحية الضروري لإجراءات معينة في هذه الدردشة. عادة ما تمثل مستويات الصلاحية 0 و 50 و 100 المستخدمين والمشرفين ولكن أي تدرج ممكن.", + "changelog": "سجل التغييرات", + "updateInstalled": "تم تثبيت🎉 تحديث {version}!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "sendCanceled": "تم إلغاء الإرسال", + "noChatsFoundHere": "لم يتم العثور على دردشات هنا حتى الآن. ابدأ محادثة جديدة مع شخص ما باستخدام الزر أدناه. ⤵️", + "loginWithMatrixId": "تسجيل الدخول باستخدام معرف ماتريكس", + "doesNotSeemToBeAValidHomeserver": "لا يبدو أنه خادم منزلي متوافق. عنوان URL غير صحيح ؟", + "calculatingFileSize": "جارٍ حساب حجم الملف...", + "oneOfYourDevicesIsNotVerified": "لم يتم التحقق من أحد أجهزتك", + "noticeChatBackupDeviceVerification": "ملاحظة: عند توصيل جميع أجهزتك بنسخة احتياطية للدردشة، يتم التحقق منها تلقائيًا.", + "continueText": "استمرار", + "blur": "الضبابية:", + "setWallpaper": "تعيين الخلفية", + "opacity": "التعتيم:", + "manageAccount": "‫إدارة الحساب‬", + "noContactInformationProvided": "لا يقدم السيرفر أي معلومات اتصال صحيحة", + "contactServerAdmin": "اتصل بمسؤول الخادم", + "contactServerSecurity": "الاتصال بمسؤول أمان ااخادم", + "supportPage": "صفحة الدعم", + "serverInformation": "معلومات الخادم:", + "name": "الإسم", + "version": "اﻹصدار", + "website": "الموقع اﻹلكتروني", + "aboutHomeserver": "حول {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "boldText": "خط غامق", + "italicText": "خط مائل", + "strikeThrough": "يتوسطه خط", + "invalidUrl": "رابط غير صحيح", + "addLink": "إضافة رابط", + "pleaseFillOut": "من فضلك قم بتعبئته", + "unableToJoinChat": "يتعذر الانضمام إلى الدردشة. ربما يكون الطرف الآخر قد أغلق المحادثة بالفعل.", + "sendImages": "إرسال {count} صورة", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "compress": "ضغط", + "previous": "السابق", + "otherPartyNotLoggedIn": "لم يقم الطرف الآخر بتسجيل الدخول حالياً وبالتالي لا يمكنه تلقي الرسائل!", + "commandHint_roomupgrade": "قم بترقية هذه الغرفة إلى إصدار الغرفة المحدد", + "discardEdits": "لديك تغييرات غير محفوظة. هل تريد تجاهل تعديلاتك؟", + "@discardEdits": { + "type": "String", + "placeholders": {} + }, + "changedTheChatDescription": "{username}تم تغيير وصف المحادثة", + "changedTheChatName": "{username}تم تغيير اسم المحادثة", + "checkList": "قائمة التحقق", + "countInvited": "{count}تمت دعوتهم", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "synchronizingPleaseWaitCounter": " جارٍ المزامنة... {percentage}%", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "appWantsToUseForLogin": "استخدم '{server}' لتسجيل الدخول", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "appWantsToUseForLoginDescription": "أنت بذلك تسمح للتطبيق والموقع الإلكتروني بمشاركة معلومات عنك.", + "open": "مفتوح", + "waitingForServer": "في انتظار الخادم...", + "newChatRequest": "طلب دردشة جديد", + "contentNotificationSettings": "إعدادات إشعارات المحتوى", + "generalNotificationSettings": "إعدادات الإشعارات العامة", + "roomNotificationSettings": "إعدادات إشعارات الغرفة", + "userSpecificNotificationSettings": "إعدادات الإشعارات الخاصة بالمستخدم", + "otherNotificationSettings": "إعدادات الإشعارات الأخرى", + "notificationRuleContainsUserName": "يحتوي على اسم المستخدم", + "notificationRuleContainsUserNameDescription": "يُعلم المستخدم عندما تحتوي الرسالة على اسم المستخدم الخاص به.", + "notificationRuleMaster": "كتم جميع الإشعارات", + "notificationRuleMasterDescription": "يتجاوز جميع القواعد الأخرى ويعطل جميع الإشعارات.", + "notificationRuleSuppressNotices": "كتم الرسائل الآلية", + "notificationRuleSuppressNoticesDescription": "يقوم بحجب الإشعارات من العملاء الآليين مثل برامج الروبوت.", + "notificationRuleInviteForMe": "ادعُني", + "notificationRuleInviteForMeDescription": "يقوم بإخطار المستخدم عندما تتم دعوته إلى غرفة.", + "notificationRuleMemberEvent": "فعالية للأعضاء", + "notificationRuleMemberEventDescription": "يقوم بإيقاف الإشعارات الخاصة بفعاليات العضوية.", + "notificationRuleIsUserMention": "إشارة المستخدم", + "notificationRuleIsUserMentionDescription": "يقوم بإخطار المستخدم عندما يتم ذكره بشكل مباشر في رسالة.", + "notificationRuleContainsDisplayName": "يحتوي على اسم العرض", + "notificationRuleContainsDisplayNameDescription": "يقوم بإخطار المستخدم عندما تحتوي الرسالة على اسم العرض الخاص به.", + "notificationRuleIsRoomMention": "ذكر الغرفة", + "notificationRuleIsRoomMentionDescription": "يُعلم المستخدم عند ذكر الغرفة.", + "notificationRuleRoomnotif": "إشعار الغرفة", + "notificationRuleRoomnotifDescription": "يقوم بإخطار المستخدم عندما تحتوي الرسالة على '@room'.", + "notificationRuleTombstoneDescription": "يُعلم المستخدم برسائل إلغاء تفعيل الغرفة.", + "notificationRuleReaction": "رد فعل", + "notificationRuleReactionDescription": "يكتم الإشعارات الخاصة بالتفاعلات.", + "notificationRuleRoomServerAcl": "قائمة التحكم في خادم الغرفة", + "notificationRuleRoomServerAclDescription": "يقوم بإيقاف الإشعارات الخاصة بقوائم التحكم في الوصول (ACL) لخادم الغرفة.", + "notificationRuleSuppressEdits": "إخفاء التعديلات", + "notificationRuleSuppressEditsDescription": "يقوم بإيقاف الإشعارات الخاصة بالرسائل المعدلة.", + "notificationRuleCall": "اتصال", + "notificationRuleCallDescription": "يُعلم المستخدم بالمكالمات.", + "notificationRuleEncryptedRoomOneToOne": "غرفة مشفرة فردية", + "notificationRuleEncryptedRoomOneToOneDescription": "يقوم بإخطار المستخدم بالرسائل الموجودة في غرف الدردشة المشفرة الخاصة بالأفراد.", + "notificationRuleRoomOneToOne": "غرفة فردية", + "notificationRuleRoomOneToOneDescription": "يقوم بإخطار المستخدم بالرسائل في الغرف الفردية.", + "notificationRuleMessage": "رسالة", + "notificationRuleMessageDescription": "يُعلم المستخدم بالرسائل العامة.", + "notificationRuleEncrypted": "مشفر", + "notificationRuleEncryptedDescription": "يُعلم المستخدم بالرسائل الموجودة في الغرف المشفرة.", + "notificationRuleJitsiDescription": "يُعلم المستخدم بأحداث أداة Jitsi.", + "notificationRuleServerAcl": "كبت أحداث التحكم في الوصول للخادم", + "notificationRuleServerAclDescription": "يقوم بإيقاف الإشعارات الخاصة بأحداث التحكم في الوصول للخادم.", + "unknownPushRule": "قاعدة دفع غير معروفة '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "sentVoiceMessage": "{duration}رسالة صوتية من {sender}", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "deletePushRuleCanNotBeUndone": "إذا قمت بحذف إعداد الإشعار هذا، فلا يمكن التراجع عن ذلك.", + "more": "أكثر", + "shareKeysWith": "مشاركة المفاتيح مع...", + "shareKeysWithDescription": "ما هي الأجهزة التي يجب الوثوق بها حتى تتمكن من قراءة رسائلك في المحادثات المشفرة؟", + "allDevices": "جميع الأجهزة", + "crossVerifiedDevicesIfEnabled": "الأجهزة التي تم التحقق منها بشكل متبادل (إذا تم تمكين ذلك)", + "crossVerifiedDevices": "الأجهزة التي تم التحقق منها بشكل متبادل", + "verifiedDevicesOnly": "الأجهزة المعتمدة فقط", + "takeAPhoto": "التقط صورة", + "recordAVideo": "سجل فيديو", + "optionalMessage": "(اختياري) رسالة...", + "notSupportedOnThisDevice": "غير مدعوم على هذا الجهاز", + "enterNewChat": "ادخل إلى دردشة جديدة", + "approve": "موافقة", + "youHaveKnocked": "لقد طرقت الباب", + "pleaseWaitUntilInvited": "يرجى الانتظار الآن حتى يدعوك أحد الأشخاص من الغرفة.", + "commandHint_logout": "قم بتسجيل الخروج من جهازك الحالي", + "commandHint_logoutall": "قم بتسجيل الخروج من جميع الأجهزة النشطة", + "displayNavigationRail": "عرض شريط التنقل على الهاتف المحمول", + "customReaction": "رد فعل مخصص", + "moreEvents": "المزيد من الفعاليات", + "showMore": "عرض المزيد", + "showLess": "عرض أقل", + "declineInvitation": "رفض الدعوة", + "noMessagesYet": "لا يوجد اي رسائل بعد", + "longPressToRecordVoiceMessage": "اضغط مطولاً لتسجيل رسالة صوتية.", + "pause": "توقف مؤقت", + "resume": "استئناف", + "removeFromSpaceDescription": "ستتم إزالة المحادثة من المساحة ولكنها ستظل تظهر في قائمة المحادثات الخاصة بك.", + "countChats": "{chats} المحادثات", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "spaceMemberOf": "عضو مساحة في{spaces}", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "startPoll": "استطلاع رأي", + "endPoll": "إنهاء الاستطلاع", + "answersVisible": "الإجابات مرئية", + "pollQuestion": "سؤال الاستطلاع", + "answerOption": "خيار الإجابة", + "addAnswerOption": "إضافة خيار الإجابة", + "allowMultipleAnswers": "السماح بإجابات متعددة", + "pollHasBeenEnded": "تم إنهاء التصويت", + "answersWillBeVisibleWhenPollHasEnded": "ستظهر الإجابات عند انتهاء الاستطلاع", + "replyInThread": "الرد في الموضوع", + "thread": "خيط", + "backToMainChat": "العودة إلى المحادثة الرئيسية", + "saveChanges": "حفظ التغييرات", + "createSticker": "أنشئ ملصقًا أو رمزًا تعبيريًا", + "useAsSticker": "استخدم كملصق", + "useAsEmoji": "استخدم كرمز تعبيري", + "stickerPackNameAlreadyExists": "اسم حزمة الملصقات موجود بالفعل", + "newStickerPack": "مجموعة ملصقات جديدة", + "stickerPackName": "اسم حزمة الملصقات", + "skipChatBackup": "تخطي النسخ الاحتياطي للمحادثة", + "skipChatBackupWarning": "هل أنت متأكد؟ بدون تفعيل خاصية النسخ الاحتياطي للمحادثات، قد تفقد الوصول إلى رسائلك إذا قمت بتغيير جهازك.", + "noMoreResultsFound": "لم يتم العثور على نتائج أخرى", + "spaceMemberOfCanKnock": "عضو مساحة {spaces} يستطيع يطرق", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "attribution": "الإسناد", + "chatSearchedUntil": "تم بحث المحادثه حتى {time}", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "federationBaseUrl": "عنوان URL الأساسي للاتحاد", + "clientWellKnownInformation": "معلومات معروفة لدى العميل:", + "baseUrl": "عنوان URL الأساسي", + "identityServer": "خادم الهوية:", + "versionWithNumber": "إصدار:{version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "سجلات", + "advancedConfigs": "الإعدادات المتقدمة", + "advancedConfigurations": "التكويناتالمتقدمة", + "signIn": "تسجيل الدخول", + "createNewAccount": "إنشاء حساب جديد", + "signUpGreeting": "FluffyChat لا مركزي! اختر الخادم الذي تريد إنشاء حسابك عليه ولنبدأ!", + "signInGreeting": "هل لديك حساب بالفعل في ماتريكس؟ أهلاً بك مجدداً! اختر خادمك المنزلي وسجّل الدخول.", + "theProcessWasCanceled": "تم إلغاء العملية.", + "join": "انضمام", + "searchOrEnterHomeserverAddress": "ابحث عن عنوان الخادم المنزلي أو أدخله", + "matrixId": "معرف المصفوفة", + "setPowerLevel": "ضبط مستوى الطاقة", + "makeAdmin": "إنشاء مسؤول", + "removeModeratorRights": "إزالة صلاحيات المشرف", + "removeAdminRights": "إزالة صلاحيات المسؤول", + "powerLevel": "مستوى الطاقة", + "setPowerLevelDescription": "تحدد مستويات القوة ما يُسمح للعضو بفعله في هذه الغرفة، وعادة ما تتراوح بين 0 و 100.", + "owner": "مالك", + "mute": "صامت", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "createNewChat": "إنشاء محادثة جديدة", + "reset": "إعادة تعيين", + "supportFluffyChat": "ادعم FluffyChat", + "support": "دعم", + "setLowPriority": "حدد أولوية منخفضة", + "unsetLowPriority": "إلغاء تعيين الأولوية المنخفضة", + "playSoundOnNotification": "تشغيل الصوت عند الإشعار", + "addTag": "إضافة وسم", + "removeTag": "إزالة الوسم", + "tagName": "اسم الوسم", + "createNewTag": "إنشاء وسم جديد", + "hideRoomsInSpaces": "إخفاء الغرف الموجودة في مساحة", + "possibleByYou": "لم يكن هذا الإصدار ليتحقق لولا دعمكم. سيظل FluffyChat مجانيًا ومفتوح المصدر، ويعتمد كليًا على جهود المجتمع.", + "showThumbnailsInTimeline": "عرض الصور المصغرة للصور ومقاطع الفيديو", + "appSubtitle": "اتصال آمن [مصفوفة]", + "appDescription": "التواصل بشكل مشفر عبر شبكة [المصفوفة] اللامركزية بطريقة سهلة ومتاحة للجميع.", + "interactiveVerification": "التحقق التفاعلي", + "interactiveVerificationDescription": "إذا كنتم بجانب بعضكم البعض أو تتواصلون عبر قناة آمنة، فيمكنكم التحقق من جميع الأجهزة في وقت واحد عن طريق مقارنة رقم الأمان أو الرموز التعبيرية.", + "countUnverifiedDevices": "{count}الأجهزة غير الموثقة في المحادثة.", + "@countUnverifiedDevices": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "encryptedMessage": "رسالة مشفرة", + "unencryptedMessage": "رسالة غير مشفرة", + "messageCanOnlyBeReadByUser": "رسالتك مشفرة تشفيراً تاماً ولا يمكن قراءتها إلا من قبل هذا المستخدم:", + "messageCanOnlyBeReadByUsers": "رسالتك مشفرة تشفيراً تاماً ولا يمكن قراءتها إلا من قبل هؤلاء المستخدمين:", + "publicKey": "المفتاح العام:{key}", + "@publicKey": { + "type": "String", + "placeholders": { + "key": { + "type": "String" + } + } + }, + "deviceIdentityKey": "مفتاح تعريف الجهاز", + "restoreBootstrapEmptyDevicesDescription": "يرجى إدخال عبارة المرور أو مفتاح الاسترداد للتحقق من هذا الجهاز والوصول إلى نسخة احتياطية من رسائلك المشفرة.", + "@restoreBootstrapEmptyDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "restoreBootstrapDevicesDescription": "يرجى اختيار أحد أجهزتك الأخرى للتحقق من هذه الجلسة:", + "@restoreBootstrapDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "resetAccount": "إعادة تعيين الحساب", + "@resetAccount": { + "type": "String", + "placeholders": {} + }, + "restoreCryptoIdentity": "استعادة هوية العملة المشفرة", + "@restoreCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "waitingForKeys": "جارٍ انتظار المفاتيح... يرجى إبقاء الجهاز الآخر نشطًا.", + "@waitingForKeys": { + "type": "String", + "placeholders": {} + }, + "noKeysTransmitted": "لم يتم إرسال المفاتيح. يرجى المحاولة مرة أخرى.", + "@noKeysTransmitted": { + "type": "String", + "placeholders": {} + }, + "unlock": "فتح", + "@unlock": { + "type": "String", + "placeholders": {} + }, + "openFile": "فتح الملف", + "@openFile": { + "type": "String", + "placeholders": {} + }, + "resetAccountWarning": "عند إعادة ضبط حسابك، ستفقد الوصول إلى رسائلك القديمة نهائيًا. ستحتاج إلى إعادة التحقق من جميع أجهزتك الحالية. يُرجى القيام بهذا الإجراء فقط عندما لا يتبقى لديك أي أجهزة أخرى للتحقق من جلستك، وعندما تكون قد فقدت مفتاح الاسترداد وكلمة المرور!", + "@resetAccountWarning": { + "type": "String", + "placeholders": {} + }, + "newPassphraseDescription": "يستخدم تطبيق FluffyChat التشفير التام بين الطرفين. ولضمان عدم فقدان رسائلك، يُرجى اختيار عبارة مرور قوية لحماية هويتك الرقمية ونسخة احتياطية من رسائلك المشفرة.", + "@newPassphraseDescription": { + "type": "String", + "placeholders": {} + }, + "newPassphrase": "عبارة مرور جديدة", + "@newPassphrase": { + "type": "String", + "placeholders": {} + }, + "repeatPassphrase": "كرر عبارة المرور", + "@repeatPassphrase": { + "type": "String", + "placeholders": {} + }, + "passphrasesMatch": "عبارات المرور متطابقة", + "@passphrasesMatch": { + "type": "String", + "placeholders": {} + }, + "passphraseLengthRequirement": "يجب ألا يقل طولها عن 12 حرفًا.", + "@passphraseLengthRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseUpperAndLowerCaseRequirement": "يحتوي على أحرف كبيرة وصغيرة.", + "@passphraseUpperAndLowerCaseRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseSpecialCharactersRequirement": "يحتوي على أحرف خاصة.", + "@passphraseSpecialCharactersRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseNumberRequirement": "يحتوي على رقم واحد.", + "@passphraseNumberRequirement": { + "type": "String", + "placeholders": {} + }, + "storeRecoveryKeyDescription": "يرجى تدوين مفتاح الاسترداد الخاص بك لتتمكن من استعادة رسائلك المشفرة وهويتك الرقمية.", + "@storeRecoveryKeyDescription": { + "type": "String", + "placeholders": {} + }, + "saveAsFile": "حفظ كملف", + "@saveAsFile": { + "type": "String", + "placeholders": {} + }, + "youAreReadyToStart": "أنت جاهز للبدء!", + "makeModerator": "تعيين مشرف", + "resetCryptoIdentity": "إعادة تعيين هوية العملات المشفرة", + "@resetCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "setUpCryptoIdentity": "إعداد هوية العملات المشفرة", + "@setUpCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "noUserKeyFound": "لم يتم العثور على مفتاح المستخدم", + "@noUserKeyFound": { + "type": "String", + "placeholders": {} + }, + "knownSince": "معروف منذ:{date}", + "@knownSince": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + } + } + }, + "unsignedDevice": "جهاز غير موقّع", + "@unsignedDevice": { + "type": "String", + "placeholders": {} + }, + "signedDevice": "جهاز موقّع", + "@signedDevice": { + "type": "String", + "placeholders": {} + }, + "noCurve25519KeyFound": "لم يتم العثور على مفتاح curve25519", + "@noCurve25519KeyFound": { + "type": "String", + "placeholders": {} + }, + "messageNotDecryptable": "الرسالة غير قابلة للفك", + "today": "اليوم", + "sending": "إرسال", + "generatingThumbnail": "إنشاء صورة مصغرة", + "encrypting": "التشفير", + "uploading": "جارٍ التحميل", + "edited": "(معدل)", + "couldNotBeSent": "تعذر الإرسال", + "yesterday": "أمس", + "resetRecoveryKey": "مفتاح استعادة إعادة التعيين", + "pleaseEnter6Digits": "يرجى إدخال 6 أرقام لتفعيل قفل التطبيق.", + "disableAppLock": "تعطيل قفل التطبيقات", + "disableAppLockAreYouSure": "هل أنت متأكد من رغبتك في تعطيل قفل التطبيقات؟", + "enableBiometrics": "تفعيل المصادقة البيومترية", + "disableBiometrics": "تعطيل المصادقة البيومترية", + "biometricsDescription": "باستخدام المصادقة البيومترية، يمكنك فتح التطبيق باستخدام وجهك أو بصمة إصبعك. وتختلف الإمكانيات المتاحة حسب جهازك.", + "useAppLock": "استخدم قفل التطبيقات", + "unlockWithBiometrics": "افتح القفل باستخدام المصادقة البيومترية", + "resetPin": "دبوس إعادة الضبط", + "notificationRuleJitsi": "جيتسي", + "notificationRuleTombstone": "علامة القبر" +} diff --git a/lib/l10n/intl_az.arb b/lib/l10n/intl_az.arb new file mode 100644 index 0000000..c5633df --- /dev/null +++ b/lib/l10n/intl_az.arb @@ -0,0 +1,14 @@ +{ + "repeatPassword": "Şifrəni təkrarlayın", + "notAnImage": "Şəkil faylı deyil.", + "remove": "çıxarın", + "@remove": { + "type": "String", + "placeholders": {} + }, + "importNow": "İndi idxal edin", + "importEmojis": "Emojiləri idxal edin", + "importFromZipFile": ".zip faylından idxal edin", + "exportEmotePack": "Emote paketini .zip formatında ixrac edin", + "replace": "Əvəz et" +} \ No newline at end of file diff --git a/lib/l10n/intl_be.arb b/lib/l10n/intl_be.arb new file mode 100644 index 0000000..9533984 --- /dev/null +++ b/lib/l10n/intl_be.arb @@ -0,0 +1,2496 @@ +{ + "repeatPassword": "Паўтарыце пароль", + "notAnImage": "Не файл выявы.", + "remove": "Прыбраць", + "@remove": { + "type": "String", + "placeholders": {} + }, + "importNow": "Імпартаваць зараз", + "importEmojis": "Імпартаваць эмодзі", + "importFromZipFile": "Імпартаваць з файла .zip", + "exportEmotePack": "Экспартаваць пак эмодзі як .zip", + "replace": "Замяніць", + "about": "Пра праграму", + "aboutHomeserver": "Пра {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "accept": "Прыняць", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} прыняў запрашэнне", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Уліковы запіс", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} актывіраваў end to end шыфраванне", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "Дадаць email", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "confirmMatrixId": "Калі ласка, спраўдзіце свой Matrix ID перад выдаленнем свайго ўліковага запісу.", + "supposedMxid": "Гэта павінна быць накшталт {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "addToSpace": "Дадаць у прастору", + "admin": "Адмін", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "псеўданім", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Усё", + "@all": { + "type": "String", + "placeholders": {} + }, + "commandHint_roomupgrade": "Абнавіце гэты пакой да згаданай версіі", + "commandHint_googly": "Даслаць смешныя вочы", + "commandHint_cuddle": "Даслаць усмешку", + "commandHint_hug": "Даслаць абдымашкі", + "googlyEyesContent": "{senderName} даслаў(-ла) вам смешныя вочы", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "cuddleContent": "{senderName} усміхаецца вам", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "hugContent": "{senderName} абдымае вас", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "answeredTheCall": "{senderName} адказаў(-ла) на выклік", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Усе могуць далучыцца", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "Код-пароль", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "appLockDescription": "Блакіруе праграму, пакуль вы не ўвядзіце пін-код", + "archive": "Архіў", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Ці дазволена карыстальнікам-гасцям далучыцца?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Вы ўпэўнены?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Вы ўпэўнены, што хаціце выйсці?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Каб спраўдзіць іншага чалавека, калі ласка, увядзіце фразу-пароль ці ключ аднаўлення.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Прыняць запрос на верыфікацыю ад {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "autoplayImages": "Аўтаматычна прайграваць аніміраваныя стыкеры і эмодзі", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "badServerLoginTypesException": "Хатні сервер падтрымлівае наступныя метады ўваходу:\n{serverVersions}\nАле гэта праграма падтрымлівае толькі:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "sendTypingNotifications": "Дасылаць паведамленне пра друк", + "swipeRightToLeftToReply": "Змахніце ўлева, каб адказаць", + "sendOnEnter": "Дасылаць на enter", + "noMoreChatsFound": "Болей чатаў не знойдзена...", + "noChatsFoundHere": "Здаецца, тут пуста. Пачніце новы чат з кімсьці праз кнопку ніжэй. ⤵️", + "unread": "Непрачытаные", + "space": "Прастора", + "banFromChat": "Заблакіраваць ў чаце", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Заблакіраваны", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} заблакіраваў {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Заблакіраваць прыладу", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "Заблакіравана", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "Скасаваць", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "Немагчыма адкрыць URI {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changeDeviceName": "Змяніць назву прылады", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} змяніў выяву чата", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} змяніў дазволы чата", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} змяніў адлюстроўваемае імя на: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} змяніў правілы гасцявога доступу", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} змяніў правілы гасцявога доступу на: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} змяніў бачнасць гісторыі", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} змяніў бачнасць гісторыі на: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} змяніў правілы падлучэння", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} змяніў правілы падлучэння на: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} змяніў свой аватар", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "noMessagesYet": "Паведамленняў пакуль што няма", + "changedTheRoomAliases": "{username} змяніў псеўданімы пакою", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} змяніў(-ла) запрашальную спасылку", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Змяніць пароль", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Змяніць дамашні сервер", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Змяніць ваш стыль", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Змяніць назву групы", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Змяніць вашу выяву", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "Шыфраванне было сапсавана", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Чат", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Рэзервовае капіраванне чатаў", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Дэталі чата", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Чаты", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Стварыце надзейны пароль", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Ачысціць архіў", + "close": "Закрыць", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_markasdm": "Пазначыць як пакой асабоных паведамленняў для дадання Matrix ID", + "commandHint_markasgroup": "Пазначыць як групу", + "commandHint_ban": "Заблакіраваць карыстальніка у гэтым пакое", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_clearcache": "Ачысціць кэш", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_create": "Стварыць пусты групавы чат.\nВыкарыстоўвайце --no-encryption каб адключыць шыфраванне", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_discardsession": "Спыніць сеанс", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_dm": "Пачаць асобны чат.\nВыкарыстоўвайце --no-encryption, каб адключыць шыфраванне", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_html": "Даслаць тэкст з разметкай HTML", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Запрасіць карыстальніка ў гэты пакой", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "Далучыцца да гэтага пакою", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "Выдаліць карыстальніка з гэтага пакою", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "Пакінуць гэты пакой", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "Апішыце сябе", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_myroomavatar": "Задаць выяву гэтага пакою (ад mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "Задайце адлюстроўваемае імя для гэтага пакою", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "Задайце ўзровень правоў гэтага карыстальніка (па змаўчанні: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "Даслаць неадфарматыраваны тэкст", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "Даслаць адказ як рэакцыю", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_send": "Даслаць тэкст", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_unban": "Разблакіраваць карыстальніка ў гэтым пакое", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandInvalid": "Няслушная каманда", + "@commandInvalid": { + "type": "String" + }, + "commandMissing": "{command} не каманда.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "compareEmojiMatch": "Калі ласка, параўнайце эмодзі", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Калі ласка, параўнайце лічбы", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Наладзіць чат", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Кантакт быў запрошаны ў групу", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "Пра кантэнт было паведамлена адміністратарам сервера", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Скапіравана ў буфер", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Капіраваць", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Скапіраваць у буфер", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Немагчыма расшыфраваць паведамленне: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "checkList": "Кантрольны спіс", + "countParticipants": "{count} удзельніка(-ў)", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "countInvited": "Запрошана {count}", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Стварыць", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} стварыў(-ла) чат", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "createGroup": "Стварыць групу", + "createNewSpace": "Новая прастора", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "Зараз актыўны", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Цёмная", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Гэта дэактывіруе ваш уліковы запіс. Гэта дзеянне не можа быць адменена! Вы ўпэўнены?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Узровень дазволаў для новых карыстальнікаў па змаўчанні", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "Выдаліць", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Выдаліць уліковы запіс", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Выдаліць паведамленне", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Прылады", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Асобныя чаты", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Адлюстроўваемае імя было зменена", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Спампаваць файл", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "Змяніць", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Змяніць заблакіраваныя сервера", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "chatPermissions": "Дазволы чату", + "editDisplayname": "Змяніць адлюстроўваемае імя", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Змяніць псеўданімы пакою", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Змяніць выяву пакою", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Эмодзі ўжо існуе!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Недапушчальнае скарачэнне эмодзі!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteKeyboardNoRecents": "Нядаўна ўжытыя эмодзі паявяцца тут...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "globalChatId": "ID габальнага чату", + "accessAndVisibility": "Даступнасць і бачнасць", + "accessAndVisibilityDescription": "Каму дазволена далучацца да гэтага чату і як ён можа быць знойдзены.", + "calls": "Выклікі", + "customEmojisAndStickers": "Карыстальніцкія эмодзі і стыкеры", + "customEmojisAndStickersBody": "Дадаць ці падзяліцца карыстальніцкімі эмодзі ці стыкерамі, што могуць быць ужыты ў любым чаце.", + "emoteShortcode": "Скарачэнне эмодзі", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Пусты чат", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Уключыць набор эмодзі глабальна", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Уключыць шыфраванне", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Вы больш не зможаце адключыць шыфраванне. Вы ўпэўнены?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Зашыфравана", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Шыфраванне", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Шыфраванне не ўключана", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} скончыў выклік", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Увядзіце электроную пошту (email)", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Памылка атрымання месцазнаходжання: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "fontSize": "Памер шрыфту", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "Пераслаць", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "З далучэння", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "З запрашэння", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Група", + "@group": { + "type": "String", + "placeholders": {} + }, + "chatDescription": "Апісанне чату", + "chatDescriptionHasBeenChanged": "Апісанне чату зменена", + "groupIsPublic": "Група публічная", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "Групы", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Групы з {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Госці забаронены", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Госці могуць далучацца", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} адазваў запрашэнне для {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Дапамога", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideRedactedMessages": "Схаваць адрэдагаваныя паведамленні", + "hideRedactedMessagesBody": "Калі хтосьці рэдагуе паведамленне, яно будзе схавана ў чаце.", + "hideInvalidOrUnknownMessageFormats": "Хаваць памылковыя ці невядомыя фарматы паведамленняў", + "block": "Заблакіраваць", + "blockedUsers": "Заблакіраваныя карыстальнікі", + "blockListDescription": "Вы можаце заблакіраваць карыстальнікаў, якія вам перашкаджаюць. Вы не атрымаеце ад іх ні паведамленняў, ні запрашэнняў.", + "blockUsername": "Ігнараваць імя карыстальніка", + "iHaveClickedOnLink": "Я перайшоў па спасылцы", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Няслушныя фраза-пароль ці ключ аднаўлення", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Запрасіць кантакт", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Запрасіць кантакт да {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "noChatDescriptionYet": "Апісанне чату яшчэ няма.", + "tryAgain": "Паспрабуйце зноў", + "invalidServerName": "Недапушчальная назва сервера", + "invited": "Запрошаны", + "@invited": { + "type": "String", + "placeholders": {} + }, + "redactMessageDescription": "Гэта паведамленне будзе адрэдагавана для усіх карыстальнікаў. Вы не зможаце яго адмяніць.", + "optionalRedactReason": "(Неабавязкова) Прычына рэдагавання паведамлення...", + "invitedUser": "📩 {username} запрасіў(-ла) {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Толькі запрошаныя карыстальнікі", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} запрасіў вас у FluffyChat.\n1. Перайдзіце на fluffychat.im і ўстанавіце праграму\n2. Зарэгестрыруйцесь альбо ўвайдзіце\n3. Перайдзіце па запрашальнай спасылцы:\n{link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "піша…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} далучыўся(лася) да чату", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Далучыцца да пакою", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username} выгнаў(-ла) {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} выгнаў(-ла) і заблакіраваў(-ла) {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Выгнаць з чату", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Апошняя актыўнасць: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Выйсці", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Выйсці з чату", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Светлая", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Загрузіць яшчэ {count} удзельнікаў", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dehydrate": "Экспарт сеансу і ачыстка прылады", + "dehydrateWarning": "Гэта дзеянне не можа быць адменена. Пераканайцеся, што вы бяспечна захавалі файл рэзервовай копіі.", + "hydrate": "Аднавіць з рэзервовай копіі", + "loadingPleaseWait": "Загрузка... Калі ласка, пачакайце.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Загрузіць больш…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "Сервісы месцазнаходжанн, адключаны. Калі ласка, уключыце іх, каб зноў дзяліцца месцазнаходжаннем.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "Дазвол атрымання месцазнаходжання скасаваны. Калі ласка, дайце яго каб дзяліцца месцазнаходжаннем.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "login": "Логін", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Увайсці ў {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Выйсці", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Згадаць", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "Паведамленні", + "@messages": { + "type": "String", + "placeholders": {} + }, + "messagesStyle": "Паведамленні:", + "moderator": "Мадэратар", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Заглушыць чат", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Новы чат", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Новае паведамленне ў FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Новы запыт на верыфікацыю!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "Далей", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "Не", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Няма злучэння з серверам", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Эмодзі не знойдзены. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Вы зможаце актывіраваць шыфраванне як толькі пакой перастане быць агульнадаступным.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Здаецца, на вашай прыладзе няма ці недаступны Firebase Cloud Messaging. Каб далей атрымліваць паведамленні, мы прапануем усталяваць ntfy ці іншы правайдар паведамленняў, каб атрымліваць іх бяспечна. Вы можаце спампаваць ntfy з PlayStore ці F-Droid.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} не з'яўляецца серверам matrix. Выкарыстоўваць {server2} замест яго?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "shareInviteLink": "Падзяліцца запрашальнай спасылкай", + "scanQrCode": "Сканіраваць QR-код", + "noPasswordRecoveryDescription": "Вы яшчэ не дадалі метад аднаўлення пароля.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Няма дазволу", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Пакоі не знойдзены…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Паведамленні", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "setChatDescription": "Задаць апісанне чату", + "setStatus": "Задаць статус", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Налады", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Падзяліцца", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} падзяліўся(-лася) сваім месцазнаходжаннем", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "shareLocation": "Падзяліцца месцазнаходжаннем", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "skip": "Прапусціць", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Зыходны код", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "Прастора публічна", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Назва прасторы", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} пачаў выклік", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "status": "Статус", + "@status": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Як вашыя справы?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Дастасаваць", + "@submit": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Сінхранізацыя... Калі ласка, пачакайце.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWaitCounter": " Сінхарнізацыя… ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "systemTheme": "Сістэма", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Яны не супадаюць", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Яны супадаюць", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Бачна ўсім", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Галасавое паведамленне", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Чакаем, калі партнёр прыме запыт…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Чакаем, калі партнёр прыме эмодзі…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Чакаем, калі партнёр зацвердзіць лічбы…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Увага!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Мы даслалі вам ліст на email", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Хто якія дзеянні можа выконваць", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Каму дазволена далучацца да гэтай группы", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Чаму вы хаціце паскардзіцца?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "З гэтымі адрасамі, вы сожаце аднавіць свой пароль.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Напісать паведамленне…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Так", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Вы", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Вы больш не ўдзельнічаеце ў гэтым чаце", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Вы былі заблакіраваны ў гэтым чаце", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Ваш публічны ключ", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "messageInfo": "Інфармацыя пра паведамленне", + "time": "Час", + "sender": "Адпраўшчык", + "openGallery": "Адкрыць галерэю", + "removeFromSpace": "Выдаліць з прасторы", + "markAsRead": "Адзначыць як прачытанае", + "reportUser": "Паскардзіцца на карыстальніка", + "reactedWith": "{sender} рэагуе з {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "pinMessage": "Прымацаваць да пакою", + "confirmEventUnpin": "Вы ўпэўнены ў тым, што хаціце назаўсёды адмацаваць гэту падзею?", + "emojis": "Эмодзі", + "unsupportedAndroidVersion": "Непадтрымліваемая версія Android", + "unsupportedAndroidVersionLong": "Гэта функцыя патрабуе навейшай версіі Android. Калі ласка, праверце наяўнасць абнаўленняў ці падтрымку Linage OS.", + "youRejectedTheInvitation": "Вы скасавалі запрашэнне", + "youJoinedTheChat": "Вы далучыліся да чату", + "youAcceptedTheInvitation": "👍 Вы прынялі запрашэнне", + "youBannedUser": "Вы заблакіравалі {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youHaveWithdrawnTheInvitationFor": "Вы адазвалі запрашэнне для {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 Вы былі запрошаны карыстальнікам {user}", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 Вы запрасілі {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKicked": "👞 Вы выгналі {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKickedAndBanned": "🙅 Вы выгналі і заблакіравалі {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "Вы разблакіравалі {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "hasKnocked": "🚪 {user} пагрукаўся", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "usersMustKnock": "Карыстальнікі абавязаны пагрукацца", + "noOneCanJoin": "Ніхто не можа далучыцца", + "knock": "Пагрукацца", + "users": "Карыстальнікі", + "storeInAndroidKeystore": "Захаваць у Android KeyStore", + "storeInAppleKeyChain": "Захаваць у Apple KeyChain", + "storeSecurlyOnThisDevice": "Захаваць на гэтай прыладзе", + "countFiles": "{count} файлаў", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "user": "Карыстальнік", + "custom": "Карыстальніцкае", + "whyIsThisMessageEncrypted": "Чаму гэта паведамленне нельга прачытаць?", + "noKeyForThisMessage": "Гэта можа здарыцца з-за таго, што паведамленне было даслана да таго, як вы увайшлі ў уліковы запіс на гэтай прыладзе.\n\nТаксама верагодна, што адпраўшчык заблакіраваў вашу прыладу ці ў вас хібы з інтэрнэтам.\n\nВы можаце чытаць гэта паведамленне з іншага сеансу? Тад дашліце паведамленне адтуль! Перайдзіце ў Налады > Прылады і пераканайцеся ў тым, што вашы прылады верыфікавалі адна адну. Калі вы адкрыеце пакой наступны раз і абодве сэсіі будуць запушчаны, ключы павінны сінхранізавацца аўтаматычна.\n\nВы не хаціце згубіць клбчы, калі будзеце выходзіць ці змяняць прылады? Пераканайцеся ў тым, што вы уключылі рэзервовае капіраванне чатаў у наладах.", + "newSpace": "Новая прастора", + "doNotShowAgain": "Не паказваць зноў", + "wasDirectChatDisplayName": "Пусты чат (быў {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "newSpaceDescription": "Прасторы дазваляюць аб'ядноўваць вашы чаты і ствараць агульныя ці асобныя супольнасці.", + "encryptThisChat": "Шыфраваць гэты чат", + "disableEncryptionWarning": "У мэтах бяспекі, вы не можаце адклбчауь шыфраванне ў гэтым чаце, дзе яно было ўключана.", + "sorryThatsNotPossible": "Прабачце... Гэта немагчыма", + "reopenChat": "Адкрыць чат зноў", + "noBackupWarning": "Увага! Без уключэння рэзервовага капіравання чатаў, вы страціце доступ да вашых зашыфраваных паведамленняў. Настойліва рэкамендуецца уключыць фукнцыю да таго, як выйсці.", + "noOtherDevicesFound": "Іншыя прылады не знойдзены", + "fileIsTooBigForServer": "Немагчыма даслаць! Сервер падтрымлівае файлы да {max}.", + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "fileHasBeenSavedAt": "Файл быў захаваны ў {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "jumpToLastReadMessage": "Перайсці да апошняга паведамлення", + "readUpToHere": "Чытаць тут", + "jump": "Перайсці", + "openLinkInBrowser": "Адкрыць спасылку ў браўзеры", + "reportErrorDescription": "😭 О не, штосьці пайшло не так. Калі жадаеце, можаце падаць справаздачу аб памылке распрауоўшчыкам.", + "report": "паскардзіцца", + "manageAccount": "Кіраванне ўліковым запісам", + "noContactInformationProvided": "Сервер не мае ніякай вернай кантактнай інфармацыі", + "contactServerAdmin": "Звязацца з адміністратарам сервера", + "contactServerSecurity": "Звязацца з сервернай бяспекай", + "supportPage": "Падтрымка", + "serverInformation": "Серверная інфармацыя:", + "name": "Імя", + "version": "Версія", + "website": "Сайт", + "compress": "Сцісканне", + "boldText": "Цёмны", + "italicText": "Курсіў", + "strikeThrough": "Перакрэслены", + "pleaseFillOut": "Калі ласка, запоўніце", + "invalidUrl": "Няслушны url", + "addLink": "Дадаць спасылку", + "unableToJoinChat": "Немагчыма далучыцца да чату. Магчыма, іншы бок ужо скончыў размову.", + "previous": "Мінулы", + "otherPartyNotLoggedIn": "Іншы бок зараз не увайшоў, таму не можа атрымліваць паведамленні!", + "appWantsToUseForLogin": "Выкарыстоўваць '{server}' для ўвахода", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "appWantsToUseForLoginDescription": "Тым самым, вы дазваляеце праграме і сайту дзяліцца інфармацыяй пра вас.", + "open": "Адкрыць", + "waitingForServer": "Чаканне сервера...", + "newChatRequest": "📩 Запыт новага чату", + "contentNotificationSettings": "Налады паведамленняў кантэнту", + "generalNotificationSettings": "Агульныя налады паведамленняў", + "roomNotificationSettings": "Налады паведамленняў пакою", + "userSpecificNotificationSettings": "Налады паведамленняў карыстальніка", + "otherNotificationSettings": "Іншыя налады паведамленняў", + "notificationRuleContainsUserName": "Змяшчае імя карыстальніка", + "notificationRuleContainsUserNameDescription": "Паведамляе пра тое, што паведамленне мае імя карыстальніка.", + "notificationRuleMaster": "Заглушыць усе паведамленні", + "notificationRuleMasterDescription": "Перазапісвае ўсе іншыя правілы і адключае паведамленні.", + "notificationRuleSuppressNotices": "Адключыць аўтаматычныя паведамленні", + "notificationRuleSuppressNoticesDescription": "Адключыць паведамленні ад аўтаматызаваных кліентаў, накшталт ботаў.", + "notificationRuleInviteForMe": "Запрашэнне мяне", + "notificationRuleInviteForMeDescription": "Паведамляе карыстальніка, калі яго запрашаюць у пакой.", + "allDevices": "Усе прылады", + "crossVerifiedDevicesIfEnabled": "Перакрыжавана спраўджаныя прылады, калі ўключаны", + "crossVerifiedDevices": "Перакрыжавана спраўджаныя прылады", + "verifiedDevicesOnly": "Толькі спраўджаныя прылады", + "takeAPhoto": "Зрабіць здымак", + "recordAVideo": "Запісаць відэа", + "optionalMessage": "(Апцыянальна) паведамленне...", + "notSupportedOnThisDevice": "Не падтрымліваецца на гэтай прыладзе", + "enterNewChat": "Увядзіце новы чат", + "approve": "Пацвердзіць", + "youHaveKnocked": "Вы былі выгнаны", + "pleaseWaitUntilInvited": "Калі ласка, пачакайце, пакуль хтосьці з пакою вас не запрасіць.", + "commandHint_logout": "Выйсці з бягуяай прылады", + "commandHint_logoutall": "Выйсці на ўсіх актыўных прыладах", + "displayNavigationRail": "Паказваць навігацыйны след на тэлефоне", + "customReaction": "Карыстальніцкая рэакцыя", + "moreEvents": "Больш падзей", + "declineInvitation": "Скасаваць запрашэнне", + "numUsersTyping": "{count} карыстальнікаў пішуць…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "obtainingLocation": "Атрыманне месцазнаходжання…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "ok": "Ок", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Рэзервовае капіраванне ключэй уключана", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Упс! На жаль, пры наладжванні пуш-паведамленняў, адбылася памылка.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Упс, штосьці пайшло не так…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Адкройце праграму, каб прачытаць паведамленні", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Адкрыць камеру", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "oneClientLoggedOut": "Адзін з вашых кліентаў выйшаў", + "addAccount": "Дадаць уліковы запіс", + "editBundlesForAccount": "Змяніць пакеты для гэтага ўліковага запісу", + "addToBundle": "Дадаць у пакет", + "removeFromBundle": "Выдаліць з пакета", + "bundleName": "Назва пакета", + "openInMaps": "Адкрыць на картах", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "link": "Спасылка", + "or": "Ці", + "@or": { + "type": "String", + "placeholders": {} + }, + "participant": "Удзельнік", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "фраза-пароль ці ключ аднаўлення", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Пароль", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Не памятаю пароль", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Пароль быў зменены", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecoverySettings": "Налады скіду пароля", + "passwordRecovery": "Аднаўленне пароля", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Замацаваць", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Калі ласка, выберыце код доступу", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Калі ласка, націсніце на спасылку ў лісце на email, каб працягнуць.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Калі ласка, увядзіце ваш пароль", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Калі ласка, увядзіце пін-код", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Калі ласка, увядзіце імя карыстальніка", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Калі ласка, сачыце за інстуркцыямі ў браўзеры і націсніце \"Далей\".", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "Прыватнасць", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Публічныя пакоі", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "Прычына", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactedBy": "Адрэдагавана {username}", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactedByBecause": "Адрэдагавана {username}, прычына: \"{reason}\"", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "redactedAnEvent": "{username} адрэдагаваў(-ла) падзею", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactMessage": "Адрэдагаваць паведамленне", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reject": "Адмовіць", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} адмовіў запрашэнне", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "removeAllOtherDevices": "Выдаліць усе іншыя прылады", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Разблакіраваць у чаце", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Выдаліць выяву ўліковага запісу", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Замяніць пакой навейшай версіяй", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "Адказаць", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Паведаміць пра паведамленне", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Пакой быў абноўлены", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Версія пакою", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Захаваць файл", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "search": "Пошук", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "Бяспека", + "@security": { + "type": "String", + "placeholders": {} + }, + "send": "Даслаць", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Даслаць паведамленне", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Даслаць як тэкст", + "@sendAsText": { + "type": "String" + }, + "sendAudio": "Даслаць аўдыё", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Даслаць файл", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Даслаць выяву", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendImages": "Даслаць {count} выяў(-вы)", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "sendMessages": "Даслаць паведамленні", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Даслаць відэа", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username} даслаў файл", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username} даслаў аўдыё", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username} даслаў выяву", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} даслаў стыкер", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} даслаў відэа", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} даслаў інфрамацыю пра выклік", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setAsCanonicalAlias": "Задаць як асноўны псеўданім", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Занадта шмат запытаў. Паспрабуйце пазней!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Паспрабуйце даслаць зноў", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} разблакіраваў {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Разблакіраваць прыладу", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Невядомая прылада", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Невядомы алгарытм шыфравання", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Невядомая падзея '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Уключыць павдеамленні чата", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Адмацаваць", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} і {count} іншых удзельнікаў пішуць…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} і {username2} пішуць…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} піша…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪 {username} пакінуў(-ла) чат", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} даслаў падзею {type}", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "unverified": "Не спраўджана", + "verified": "Спраўджана", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Пачаць спраўджванне", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Вы паспяхова спраўджаны!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Спраўдзіць іншы ўліковы запіс", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "verifyOtherUserDescription": "Калі вы спраўдзілі іншага карыстальніка, вы можаце быць упэўненым з кім вы сапраўды перапісваецеся.💪\n\nКалі вы пачнеце спраўджванне, вы і іншы карыстальнік, убачыце ўсплывальнае акно ў праграме. У ім вы ўбачыце некалькі эмодзі ці лічб, якія вы павінны параўнаць адзін з адным.\n\nЛепшы метад зрабіць гэта - пачаць відэа выклік. 👭", + "pleaseEnterANumber": "Калі ласка, увядзіце лічбу большую за 0", + "verifyOtherDeviceDescription": "Калі вы спраўдзіце другую прыладу, яны абмяняюцца ключамі, якія ўзмоцняць вашу бяспеку. 💪 Калі вы пачнеце спраўджванне, у праграмах прылад з'явіцца ўсплывальнае паведамленне. Потым, вы ўбачыце некалькі эмодзі ці лічбаў, якія вы павінны параўнаць паміж сабой. Прасцей за ўсё гэта зрабіць, маючы дзве прылады побач. 🤳", + "verifyOtherUser": "🔐 Спраўдзіць іншага карыстальніка", + "verifyOtherDevice": "🔐 Спраўдзіць іншую прыладу", + "changeTheCanonicalRoomAlias": "Змяніць публічны адрас чату", + "wrongRecoveryKey": "Прабачце... гэта не выглядае як ключ аднаўлення.", + "restoreSessionBody": "Праграма спрабуе аднавіць вашу сесію з рэзервовай копіі. Калі ласка, паведаміце пра памылку распрацоўшчыкам па спасылцы {url}. Паведамленне памылкі: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "longPressToRecordVoiceMessage": "Доўга цісніце, каб запісаць галасавое паведамленне.", + "visibilityOfTheChatHistory": "Бачнасць гісторыі чату", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Бачна для ўсіх удзельнікаў", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "setColorTheme": "Каляровая схема:", + "invite": "Запрасіць", + "inviteGroupChat": "📨 Запрашэнне ў групавы чат", + "invalidInput": "Недапушчальны ўвод!", + "wrongPinEntered": "Няверны пін-код! Паспрабуйце праз {seconds} секунд...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "archiveRoomDescription": "Чат перамясціцца ў архіў. Іншыя карыстальнікі будуць бачыць гэта так, быццам вы выйшлі з чату.", + "roomUpgradeDescription": "Чат будзе пераствораны з новай версіяй пакою. Усе ўдзельнікі будуць паведамлены пра неабходнасць перайсці ў новы чат. Вы можаце даведацца пра версіі пакояў тут: https://spec.matrix.org/latest/rooms/", + "removeDevicesDescription": "Вы выйдзеце з гэтай прылады і больш не будзеце атрымліваць паведамленні.", + "sendTypingNotificationsDescription": "Іншыя ўдзельнікі чату могуць бачыць, калі вы пішаце новае паведамленне.", + "continueText": "Працягнуць", + "banUserDescription": "Карыстальнік будзе заблакіраваны з чату і больш не зможа ўвайсці, пакуль вы яго не разблакіруеце.", + "unbanUserDescription": "Карыстальнік зможа зноў далучыцца да чату.", + "kickUserDescription": "Карыстальнік будзе выгнаны, але не заблакіраваны. У публічных чатах, ён зможа далучыцца зноў у любы час.", + "makeAdminDescription": "Калі вы зробіце карыстальніка адміністратарам, вы не зможаце адмяніць гэта дзеянне, бо ён будзе мець такія ж правы, як і вы.", + "pushNotificationsNotAvailable": "Пуш-паведамленні недаступны", + "learnMore": "Даведацца больш", + "yourGlobalUserIdIs": "Ваш глабальны ID-карыстальніка: ", + "noUsersFoundWithQuery": "На жаль, мы не змаглі знайсці карыстальніка з імём \"{query}\". Калі ласка, праверце наяўнасць памылак.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "knocking": "Грукацца", + "spaceMemberOfCanKnock": "Удзельнікі прасторы з {spaces} могуць грукацца", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "chatCanBeDiscoveredViaSearchOnServer": "Чат можа быць знойдзены праз пошук у {server}", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "searchChatsRooms": "Пошук #чатаў, @карыстальнікаў...", + "nothingFound": "Нічога не знойдзена...", + "groupName": "Назва групы", + "createGroupAndInviteUsers": "Стварыць групу і запрасіць карыстальнікаў", + "groupCanBeFoundViaSearch": "Група можа быць знойдзена праз пошук", + "commandHint_sendraw": "Даслаць толькі json", + "databaseMigrationTitle": "База даных аптымізавана", + "databaseMigrationBody": "Калі ласка, пачакайце. Гэта можа заняць некаторы час.", + "leaveEmptyToClearStatus": "Пакіньце пустым, каб ачысціць свой статус.", + "select": "Выбраць", + "searchForUsers": "Пошук @карыстальнікаў...", + "pleaseEnterYourCurrentPassword": "Калі ласка, увядзіце свой бягучы пароль", + "newPassword": "Новы пароль", + "pleaseChooseAStrongPassword": "Калі ласка, падбярыце больш надзейны пароль", + "passwordsDoNotMatch": "Паролі не супадаюць", + "passwordIsWrong": "Вы ўвялі няверны пароль", + "publicChatAddresses": "Публічныя адрасы чату", + "createNewAddress": "Стварыць новы адрас", + "joinSpace": "Далучыцца да прасторы", + "publicSpaces": "Публічныя прасторы", + "addChatOrSubSpace": "Дадаць чат ці пад-прастору", + "thisDevice": "Гэта прылада:", + "initAppError": "Адбылася памылка пры ініцыялізацыі праграмы", + "searchIn": "Пошук у чаце \"{chat}\"...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "searchMore": "Шукаць яшчэ...", + "gallery": "Галерэя", + "files": "Файлы", + "sessionLostBody": "Ваш сеанс страчаны. Калі ласка, паведаміце пра гэта распрацоўшчыкам: {url}. Паведамленне памылкі: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "sendReadReceipts": "Дасылаць адзнаку аб чытанні", + "sendReadReceiptsDescription": "Іншыя карыстальнікі чатаў будуць бачыць, калі вы прачыталі паведамленні.", + "formattedMessages": "Фармаціраваныя паведамленні", + "formattedMessagesDescription": "Адлюстроўваць пашыраныя паведамленні разметкай markdown.", + "acceptedKeyVerification": "{sender} прыняў(-ла) спраўджванне ключэй", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "canceledKeyVerification": "{sender} адхіліў(-ла) спраўджванне ключэй", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "completedKeyVerification": "{sender} скочныў(-ла) спраўджванне ключэй", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "{sender} гатовы(-а) да спраўджвання ключэй", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "requestedKeyVerification": "{sender} запрасіў(-ла) спраўджванне ключэй", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "{sender} пачаў(-ла) спраўджванне ключэй", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "incomingMessages": "Уваходныя паведамленні", + "stickers": "Стыкеры", + "discover": "Даследаваць", + "commandHint_ignore": "Ігнараваць дадзены matrix ID", + "commandHint_unignore": "Перастаць ігнараваць дадзены matrix ID", + "unreadChatsInApp": "{appname}: {unread} непрачытаных чатаў", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "noDatabaseEncryption": "Шыфраванне базы даных не падтрымліваецца гэтай платформай", + "thereAreCountUsersBlocked": "На гэты момант, {count} карыстальнікаў заблакіравана.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "goToSpace": "Перайсці да прасторы: {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "markAsUnread": "Адзначыць як непрачытанае", + "userLevel": "{level} - Карыстальнік", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "moderatorLevel": "{level} - Мадэратар", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "adminLevel": "{level} - Адміністратар", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeGeneralChatSettings": "Змяніць агульныя налады чату", + "inviteOtherUsers": "Запрасіць іншых карыстальнікаў у гэты чат", + "changeTheChatPermissions": "Змяніць дазволы чату", + "changeTheVisibilityOfChatHistory": "Змяніць бачнасць гісторыі чату", + "sendRoomNotifications": "Дасылаць паведамленні @room", + "changeTheDescriptionOfTheGroup": "Змяніць апісанне чату", + "chatPermissionsDescription": "Задаць узровень дазволаў, які неабходны для некаторых дзеянняў у чаце. Узроўні 0, 50 і 100 звычайна адлюстроўваюць карыстальнікаў, мадэратараў і адміністратараў, але любая градацыя магчыма.", + "updateInstalled": "🎉 Абнаўленне {version} усталявана!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "changelog": "Спіс змен", + "sendCanceled": "Адпраўка скасавана", + "loginWithMatrixId": "Увайсці з Matrix-ID", + "doesNotSeemToBeAValidHomeserver": "Гэта не выглядае як дамашні сервер. Няслушны URL?", + "calculatingFileSize": "Вылічэнне памеру файла...", + "oneOfYourDevicesIsNotVerified": "Адна з вашых прылад не спраўджана", + "noticeChatBackupDeviceVerification": "Заўвага: Калі вы падключыце ўсе свае прылады да рэзервовага капіравання, яны аўтаматычна спраўдзяцца.", + "blur": "Размыццё:", + "opacity": "Празрыстасць:", + "setWallpaper": "Задаць шпалеры", + "notificationRuleMemberEvent": "Падзеі ўдзельніцтва", + "notificationRuleMemberEventDescription": "Спыніць усе паведамленні пра ўдзельніцтва.", + "notificationRuleIsUserMention": "Згадванні карыстальніка", + "notificationRuleIsUserMentionDescription": "Паведамляе, калі карыстальніка згадалі ў паведамленні.", + "notificationRuleContainsDisplayName": "Мае адлюстроўваемае імя", + "notificationRuleContainsDisplayNameDescription": "Паведамляе, калі паведамленне мае іх адлюстроўваемае імя.", + "notificationRuleIsRoomMention": "Згадванні пакою", + "notificationRuleIsRoomMentionDescription": "Паведамляе карыстальніка, калі згадваюць пакой.", + "notificationRuleRoomnotif": "Паведамленні пакою", + "notificationRuleRoomnotifDescription": "Паведамляе пра згадванні '@room'.", + "notificationRuleTombstone": "Помнік", + "notificationRuleTombstoneDescription": "Паведамляе пра дэактывацыю пакою.", + "notificationRuleReaction": "Рэакцыя", + "notificationRuleReactionDescription": "Адключыць усе паведамленні пра рэакцыі.", + "notificationRuleRoomServerAcl": "ACL сервера пакою", + "notificationRuleRoomServerAclDescription": "Адключыць паведамленні пра серверныя спісы кантролю пакою (ACL).", + "notificationRuleSuppressEdits": "Заглушыць змены", + "notificationRuleSuppressEditsDescription": "Заглушыць паведамленні пра адрэдагаваныя паведамленні.", + "notificationRuleCall": "Выклік", + "notificationRuleCallDescription": "Паведамляе пра выклікі.", + "notificationRuleEncryptedRoomOneToOne": "Шыфраваны пакой One-to-One", + "notificationRuleEncryptedRoomOneToOneDescription": "Паведамляе пра паведамленні ў шыфраваных one-to-one пакоях.", + "notificationRuleRoomOneToOne": "Пакой One-to-One", + "notificationRuleRoomOneToOneDescription": "Паведамляе пра паведамленні ў пакоях one-to-one.", + "notificationRuleMessage": "Паведамленне", + "notificationRuleMessageDescription": "Паведамляе пра звычайныя паведамленні.", + "notificationRuleEncrypted": "Зашыфравана", + "notificationRuleEncryptedDescription": "Паведамляе пра паведамленні ў зашыфраваных пакоях.", + "notificationRuleJitsi": "Jitsi", + "notificationRuleJitsiDescription": "Паведамляе пра падзеі віджэту Jitsi.", + "notificationRuleServerAcl": "Заглушыць серверныя падзеі ACL", + "notificationRuleServerAclDescription": "Заглушыць паведамленні пра серверныя падзеі ACL.", + "unknownPushRule": "Невядомае правіла пуша '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "sentVoiceMessage": "🎙️{duration} - Галасавое паведамленне ад {sender}", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "deletePushRuleCanNotBeUndone": "Калі вы выдаліце гэтыя налады паведамленняў, гэта не можа быць адменена.", + "more": "Больш", + "shareKeysWith": "Падзяліцца ключамі з...", + "shareKeysWithDescription": "Якім прыладам вы давяраеце настолькі, каб яны маглі чытаць вашыя зашыфраваныя паведамленні?", + "pause": "Паўза", + "resume": "Працягнуць", + "removeFromSpaceDescription": "Гэты чат будзе выдалены з прасторы, але з'явіцца ў вашым спісе чатаў.", + "countChats": "{chats} чатаў", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "spaceMemberOf": "Удзельнік прасторы {spaces}", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "startPoll": "Пачаць апытанне", + "endPoll": "Скончыць апытанне", + "answersVisible": "Адказы бачны", + "pollQuestion": "Пытанне апытання", + "answerOption": "Варыянт адказу", + "addAnswerOption": "Дадаць варыянт адказу", + "allowMultipleAnswers": "Дазволіць некалькі адказаў", + "pollHasBeenEnded": "Апытанне было скончана", + "countVotes": "{count, plural, =1{Адзін голас} other{{count} галасы(-оў)}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "answersWillBeVisibleWhenPollHasEnded": "Вынікі будуць бачны, калі апытанне скончыцца", + "replyInThread": "Адказаць у гутарку", + "countReplies": "{count, plural, =1{Адзін адказ} other{{count} адказа(-ў)}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "thread": "Гутарка", + "backToMainChat": "Вярнуцца ў галоўны чат", + "saveChanges": "Захаваць змены", + "createSticker": "Стварыць стыкер ці эмадзі", + "useAsSticker": "Ужыць як стыкер", + "useAsEmoji": "Ужыць як эмадзі", + "stickerPackNameAlreadyExists": "Назва набору стыкераў ужо існуе", + "newStickerPack": "Новы набор стыкераў", + "stickerPackName": "Назва набору стыкераў", + "attribution": "Атрыбуцыя", + "skipChatBackup": "Прапусціць рэзервовае капіраванне чатаў", + "skipChatBackupWarning": "Вы ўпэўнены? Без наладжвання рэзервовага капіравання чатаў, вы можаце згубіць доступ да ўсіх вашых чатаў, калі вы зменіце прыладу.", + "changedTheChatDescription": "{username} змяніў апісанне чата", + "changedTheChatName": "{username} змяніў назву чата", + "noMoreResultsFound": "Нічога не знойдзена", + "chatSearchedUntil": "Пошук у чаце да {time}", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "federationBaseUrl": "Асноўны URL федэрацыі", + "clientWellKnownInformation": "Client-Well-Known інфармацыя:", + "baseUrl": "Базавы URL", + "identityServer": "Сервер профілей:", + "versionWithNumber": "Версія: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "Логі", + "advancedConfigs": "Пашыраныя налады", + "advancedConfigurations": "Пашыраная канфігурацыя", + "signIn": "Увайсці", + "createNewAccount": "Стварыць новы ўліковы запіс", + "signUpGreeting": "FluffyChat дэцэнтралізаваны! Выберыце свой сервер, дзе вы хаціце стварыць уліковы запіс і прайягвайце!", + "signInGreeting": "Вы ўжо маеце ўліковы запіс у Matrix? З вяртаннем! Выберыце свой хатні сервер і аўтарызуйцеся.", + "theProcessWasCanceled": "Працэс быў скасаваны.", + "join": "Далучыцца", + "searchOrEnterHomeserverAddress": "Пашукайце ці ўвядзіце адрас хатняга сервера", + "matrixId": "Matrix ID", + "setPowerLevel": "Прызначыць узровень магчымасцей", + "makeModerator": "Прызначыць мадэратарам", + "makeAdmin": "Прызначыць адміністратарам", + "removeModeratorRights": "Адабраць правы мадэратара", + "removeAdminRights": "Прыбраць адміністратарскія правы", + "powerLevel": "Узровень дазволаў", + "setPowerLevelDescription": "Узровень дазволаў вызначае, што ўдзельнік можа рабіць у пакое і звычайна знаходзіцца паміж 0 і 100.", + "owner": "Уладальнік", + "mute": "Сцішыць", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "createNewChat": "Стварыць новы чат", + "reset": "Скінуць", + "supportFluffyChat": "Падтрымаць FluffyChat", + "support": "Падтрымаць", + "setLowPriority": "Прызначыць нізкі прыярытэт", + "unsetLowPriority": "Скасаваць нізкі прыярытэт", + "playSoundOnNotification": "Прайграваць гук апавяшчэння", + "addTag": "Дадаць тэг", + "removeTag": "Выдаліць тэг", + "tagName": "Назва тэга", + "createNewTag": "Стварыць новы тэг" +} \ No newline at end of file diff --git a/lib/l10n/intl_bn.arb b/lib/l10n/intl_bn.arb new file mode 100644 index 0000000..c6de67b --- /dev/null +++ b/lib/l10n/intl_bn.arb @@ -0,0 +1,1865 @@ +{ + "@@last_modified": "2021-08-14 12:41:10.154280", + "about": "সম্পর্কে", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "স্বীকার করি", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "{username} আমন্ত্রণ গ্রহণ করেছে", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "অ্যাকাউন্ট", + "@account": { + "type": "String", + "placeholders": {} + }, + "repeatPassword": "পাসওয়ার্ড আবার লিখো", + "notAnImage": "ইমেজ ফাইল না।", + "admin": "অ্যাডমিস", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "অ্যালিয়াস", + "@alias": { + "type": "String", + "placeholders": {} + }, + "archive": "আর্কাইভ", + "@archive": { + "type": "String", + "placeholders": {} + }, + "banned": "ব্যানড", + "@banned": { + "type": "String", + "placeholders": {} + }, + "cancel": "বাতিল", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "chat": "চ্যাট", + "@chat": { + "type": "String", + "placeholders": {} + }, + "close": "বন্ধ", + "@close": { + "type": "String", + "placeholders": {} + }, + "copy": "অনুলিপি", + "@copy": { + "type": "String", + "placeholders": {} + }, + "create": "তৈরি", + "@create": { + "type": "String", + "placeholders": {} + }, + "delete": "অপসারণ", + "@delete": { + "type": "String", + "placeholders": {} + }, + "devices": "ডিভাইস", + "@devices": { + "type": "String", + "placeholders": {} + }, + "notifications": "বিজ্ঞপ্তি", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "edit": "সম্পাদন", + "@edit": { + "type": "String", + "placeholders": {} + }, + "encryption": "এনক্রিপশন", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encrypted": "এনক্রিপ্টকৃত", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "forward": "ফরওয়ার্ড", + "@forward": { + "type": "String", + "placeholders": {} + }, + "group": "গ্রুপ", + "@group": { + "type": "String", + "placeholders": {} + }, + "help": "সাহায্য", + "@help": { + "type": "String", + "placeholders": {} + }, + "invited": "আমন্ত্রিত", + "@invited": { + "type": "String", + "placeholders": {} + }, + "leave": "ছেড়ে যাও", + "@leave": { + "type": "String", + "placeholders": {} + }, + "logout": "প্রস্থান", + "@logout": { + "type": "String", + "placeholders": {} + }, + "login": "প্রবেশ", + "@login": { + "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": {} + }, + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "@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": {} + }, + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@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": {} + }, + "@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": {} + }, + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "@no": { + "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": {} + }, + "@reason": { + "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" + } + } + }, + "@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" + } + } + }, + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@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": {} + }, + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@moderator": { + "type": "String", + "placeholders": {} + }, + "@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!" + }, + "@sendAsText": { + "type": "String" + }, + "@commandInvalid": { + "type": "String" + }, + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "@mention": { + "type": "String", + "placeholders": {} + }, + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "@withTheseAddressesRecoveryDescription": { + "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" + } + } + }, + "@skip": { + "type": "String", + "placeholders": {} + }, + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@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": {} + }, + "@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" + }, + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@status": { + "type": "String", + "placeholders": {} + }, + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "@joinRoom": { + "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": {} + }, + "@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" + }, + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@search": { + "type": "String", + "placeholders": {} + }, + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@messages": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@settings": { + "type": "String", + "placeholders": {} + }, + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "@changePassword": { + "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" + } + } + }, + "@privacy": { + "type": "String", + "placeholders": {} + }, + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@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": {} + }, + "@ok": { + "type": "String", + "placeholders": {} + }, + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@unbanFromChat": { + "type": "String", + "placeholders": {} + } +} \ No newline at end of file diff --git a/lib/l10n/intl_bo.arb b/lib/l10n/intl_bo.arb new file mode 100644 index 0000000..ed79a3f --- /dev/null +++ b/lib/l10n/intl_bo.arb @@ -0,0 +1,1974 @@ +{ + "@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": {} + }, + "@admin": { + "type": "String", + "placeholders": {} + }, + "@directChats": { + "type": "String", + "placeholders": {} + }, + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "@close": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@pickImage": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@reason": { + "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" + } + } + }, + "@help": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@delete": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@ok": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@account": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@notifications": { + "type": "String", + "placeholders": {} + }, + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "@emoteSettings": { + "type": "String", + "placeholders": {} + }, + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "@mention": { + "type": "String", + "placeholders": {} + }, + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "@withTheseAddressesRecoveryDescription": { + "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": {} + }, + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@allChats": { + "type": "String", + "placeholders": {} + }, + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "@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" + }, + "@cancel": { + "type": "String", + "placeholders": {} + }, + "@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" + }, + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@search": { + "type": "String", + "placeholders": {} + }, + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@logout": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@messages": { + "type": "String", + "placeholders": {} + }, + "@login": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@settings": { + "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" + } + } + }, + "@privacy": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + } +} \ No newline at end of file diff --git a/lib/l10n/intl_ca.arb b/lib/l10n/intl_ca.arb new file mode 100644 index 0000000..f290a2f --- /dev/null +++ b/lib/l10n/intl_ca.arb @@ -0,0 +1,2504 @@ +{ + "@@last_modified": "2021-08-14 12:41:10.145728", + "about": "Quant a", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Accepta", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} ha acceptat la invitació", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Compte", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} ha activat el xifratge d’extrem a extrem", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "admin": "Administració", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "àlies", + "@alias": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} ha respost a la trucada", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Qualsevol pot unir-se", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "Blocatge de l’aplicació", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "archive": "Arxiu", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Es pot entrar al xat com a convidadi?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "N’esteu seguri?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Per a poder donar accés a l’altra persona, introduïu la frase de seguretat o clau de recuperació.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Voleu acceptar aquesta sol·licitud de verificació de: {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "banFromChat": "Veta del xat", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Vetadi", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} ha vetat a {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Bloca el dispositiu", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "cancel": "Cancel·la", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "No es pot obrir l’URI {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changeDeviceName": "Canvia el nom del dispositiu", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} ha canviat la imatge del xat", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} ha canviat els permisos del xat", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} ha canviat les normes d’accés dels convidats", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} ha canviat les normes d’accés dels convidats a: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} ha canviat la visibilitat de l’historial", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} ha canviat la visibilitat de l’historial a: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} ha canviat les normes d’unió", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} ha canviat les normes d’unió a: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} ha canviat la seva imatge de perfil", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} ha canviat l’àlies de la sala", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} ha canviat l’enllaç per a convidar", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Canvia la contrasenya", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Canvia el servidor", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Canvia l’estil", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Canvia el nom del grup", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "El xifratge s’ha corromput", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Xat", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Detalls del xat", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Xats", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Trieu una contrasenya forta", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "close": "Tanca", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_html": "Envia text en format HTML", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_leave": "Abandona aquesta sala", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_op": "Estableix el nivell d'autoritat d'uni usuàriï (per defecte: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "Envia text sense format", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_send": "Envia text", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "compareEmojiMatch": "Compareu aquests emojis", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Compareu aquests números", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "El contacte ha estat convidat al grup", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "S’ha copiat al porta-retalls", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Copia", + "@copy": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "No s'ha pogut desxifrar el missatge: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count} participants", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Crea", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} ha creat el xat", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "currentlyActive": "Actiu actualment", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Fosc", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Es desactivarà el vostre compte d’usuàriï. És irreversible! Voleu fer-ho igualment?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "delete": "Suprimeix", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Suprimeix el compte", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Suprimeix el missatge", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Dispositius", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Xats directes", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Ha canviat l'àlies", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Baixa el fitxer", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "Edita", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Edita l'àlies", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "L'emoticona ja existeix!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Codi d'emoticona invàlid!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Codi d'emoticona", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Xat buit", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Activa el paquet d'emoticones global", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "No podreu desactivar el xifratge mai més. N’esteu segur?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Xifrat", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Xifratge", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "El xifratge no s’ha activat", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} ha finalitzat la trucada", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Introduïu una adreça electrònica", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "forward": "Reenvia", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Des de la unió", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Des de la invitació", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Grup", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "El grup és públic", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Grup amb {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Els convidats no poden unir-se", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Els convidats es poden unir", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} ha retirat la invitació de {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Ajuda", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Amaga els esdeveniments desconeguts", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Usuaris ignorats", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "He fet clic a l'enllaç", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Frase de seguretat o clau de recuperació incorrecta", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Convida contacte", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Convida contacte a {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "Convidat", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username} ha convidat a {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Només usuàriïs convidadis", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} t'ha convidat a FluffyChat.\n1. Visita fluffychat.im i instaŀla l'app\n2. Registra't o inicia sessió\n3. Obre l'enllaç d'invitació:\n{link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "escrivint…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} s'ha unit al xat", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Uneix-te a la sala", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username} ha expulsat a {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} ha expulsat i vetat a {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Expulsa del xat", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Actiu per última vegada: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Abandona", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Ha marxat del xat", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Clar", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Carrega {count} participants més", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "S’està carregant… Espereu.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Carrega’n més…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "S’han desactivat els serveis d’ubicació. Activeu-los per a compartir la vostra ubicació.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "S’ha rebutjat el permís d’ubicació. Atorgueu-lo per a poder compartir la vostra ubicació.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "login": "Inicia la sessió", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Inicia sessió a {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Finalitza la sessió", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Menciona", + "@mention": { + "type": "String", + "placeholders": {} + }, + "moderator": "Moderador", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Silencia el xat", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Missatge nou al FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Nova sol·licitud de verificació!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "no": "No", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Sense connexió al servidor", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "No s’ha trobat cap emoticona. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Sembla que no teniu els Serveis de Google al telèfon. Això és una bona decisió respecte a la vostra privadesa! Per a rebre notificacions automàtiques del FluffyChat, us recomanem instaŀlar ntfy. Amb ntfy o qualsevol altre proveïdor de Unified Push, pots rebre notificacions de forma segura i lliure. Pots instaŀlar ntfy des de la PlayStore o des de F-Droid.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "Encara no heu afegit cap mètode per a poder recuperar la contrasenya.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Sense permís", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "No s’ha trobat cap sala…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Notificacions", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} usuàriïs escrivint…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "ok": "D'acord", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "La còpia de seguretat de claus en línia està activada", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Alguna cosa ha anat malament…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Obre l'aplicació per llegir els missatges", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Obre la càmera", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "or": "O", + "@or": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "contrasenya o clau de recuperació", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Contrasenya", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Contrasenya oblidada", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "La contrasenya ha canviat", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Recuperació de contrassenya", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Fixa", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Tria un codi d'accés", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Fes clic a l'enllaç del correu i, després, segueix.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Introdueix la teva contrasenya", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Introdueix el teu nom d'usuàriï", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "privacy": "Privadesa", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Sales públiques", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} ha estripat un esdeveniment", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "reject": "Rebutja", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} ha rebutjat la invitació", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Elimina", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Elimina tots els altres dispositius", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Aixeca el veto", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "reply": "Respon", + "@reply": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "La sala s'ha actualitzat", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "security": "Seguretat", + "@security": { + "type": "String", + "placeholders": {} + }, + "send": "Envia", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Envia un missatge", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Envia com a text", + "@sendAsText": { + "type": "String" + }, + "sendAudio": "Envia un àudio", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Envia un fitxer", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Envia una imatge", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Envia un vídeo", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username} ha enviat un fitxer", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username} ha enviat un àudio", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username} ha enviat una imatge", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} ha enviat un adhesiu", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} ha enviat un vídeo", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} ha enviat informació de trucada", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setStatus": "Defineix l’estat", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Paràmetres", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Comparteix", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} n’ha compartit la ubicació", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "skip": "Omet", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Codi font", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} ha iniciat una trucada", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "statusExampleMessage": "Com us sentiu avui?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Envia", + "@submit": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Sistema", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "No coincideixen", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Coincideixen", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Massa sol·licituds. Torna-ho a provar més tard!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Intenta tornar a enviar", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} ha aixecat el veto a {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Desbloqueja dispositiu", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Dispositiu desconegut", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "L’algorisme de xifratge és desconegut", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Esdeveniment desconegut '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Deixa de silenciar el xat", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Deixa de fixar", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} i {count} més estan escrivint…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} i {username2} estan escrivint…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} està escrivint…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪 {username} ha marxat del xat", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} ha enviat un esdeveniment {type}", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verifyStart": "Inicia la verificació", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "T'has verificat correctament!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Verificant un altre compte", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Visibilitat de l’historial del xat", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Visible per a tots els participants", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Visible per a tothom", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Missatge de veu", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "S’està esperant que l’altre accepti l’emoji…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "S’està esperant que l’altre accepti els nombres…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Atenció!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Us hem enviat un missatge de correu electrònic", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Qui pot unir-se a aquest grup", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Amb aquestes adreces, si ho necessiteu, podeu recuperar la vostra contrasenya.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Escriviu un missatge…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Sí", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Vós", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Ja no participeu en aquest xat", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "T'han vetat en aquest xat", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "La vostra clau pública", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "all": "Tot", + "@all": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "Afegeix a un espai", + "areYouSureYouWantToLogout": "Segur que voleu finalitzar la sessió?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "addEmail": "Afegeix una adreça electrònica", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "commandInvalid": "L’ordre no és vàlida", + "@commandInvalid": { + "type": "String" + }, + "fontSize": "Mida de la lletra", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "next": "Següent", + "@next": { + "type": "String", + "placeholders": {} + }, + "link": "Enllaç", + "redactMessage": "Estripa el missatge", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "sendOnEnter": "Envia en prémer Retorn", + "clearArchive": "Neteja l’arxiu", + "autoplayImages": "Reprodueix automàticament enganxines i emoticones animades", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "chatBackup": "Còpia de seguretat del xat", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "blocked": "Blocat", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Nom de l’espai", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "search": "Cerca", + "@search": { + "type": "String", + "placeholders": {} + }, + "verified": "Verificat", + "@verified": { + "type": "String", + "placeholders": {} + }, + "newChat": "Xat nou", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Canvia l’avatar", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "ignore": "Ignora", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "commandHint_react": "Envia una resposta com a reacció", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "defaultPermissionLevel": "Nivell de permisos per defecte per nous membres", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "El contingut s’ha denunciat als administradors del servidor", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Activa el xifratge", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "addAccount": "Afegeix un compte", + "noEncryptionForPublicRooms": "Només podreu activar el xifratge quan la sala ja no sigui accessible públicament.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Versió de la sala", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Envia missatges", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Desa el fitxer", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Seguiu les instruccions al lloc web i toqueu «Següent».", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Denuncia el missatge", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "setAsCanonicalAlias": "Defineix com a àlies principal", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "status": "Estat", + "@status": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Qui pot efectuar quina acció", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Per què voleu denunciar això?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "S’està esperant que l’altre accepti la sol·licitud…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "unverified": "No verificat", + "commandHint_me": "Descriviu-vos", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandMissing": "{command} no és una ordre.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "configureChat": "Configura el xat", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Copia al porta-retalls", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "createNewSpace": "Espai nou", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "S’ha produït un error en obtenir la ubicació: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "groups": "Grups", + "@groups": { + "type": "String", + "placeholders": {} + }, + "messages": "Missatges", + "@messages": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "L’espai és públic", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "scanQrCode": "Escaneja un codi QR", + "obtainingLocation": "S’està obtenint la ubicació…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "shareLocation": "Comparteix la ubicació", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "S’està sincronitzant… Espereu.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "reason": "Raó", + "@reason": { + "type": "String", + "placeholders": {} + }, + "changedTheDisplaynameTo": "{username} ha canviat el seu àlies a: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "commandHint_clearcache": "Neteja la memòria cau", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_join": "Uneix-te a la sala indicada", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "Expulsa uni usuàriï d'aquesta sala", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_myroomavatar": "Establiu la imatge per a aquesta sala (per mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_dm": "Inicia un xat directe\nUsa --no-encryption per desactivar l'encriptatge", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_invite": "Convida uni usuàriï a aquesta sala", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_ban": "Veta uni usuàriï d'aquesta sala", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_create": "Crea un xat de grup buit\nUsa --no-encryption per desactivar l'encriptatge", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_discardsession": "Descarta la sessió", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "repeatPassword": "Repetiu la contrasenya", + "commandHint_myroomnick": "Estableix el teu àlies per a aquesta sala", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "editBlockedServers": "Edita els servidors bloquejats", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "badServerLoginTypesException": "El servidor admet els inicis de sessió:\n{serverVersions}\nPerò l'aplicació només admet:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "hugContent": "{senderName} t'abraça", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "jumpToLastReadMessage": "Salta a l'últim missatge llegit", + "commandHint_cuddle": "Envia una carícia", + "reportErrorDescription": "😭 Oh no. Hi ha hagut algun error. Si vols, pots informar d'aquest bug a l'equip de desenvolupament.", + "removeYourAvatar": "Esborra el teu avatar", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "unsupportedAndroidVersion": "Aquesta versió d'Android és incompatible", + "oneClientLoggedOut": "Una de les teves aplicacions ha tancat la sessió", + "setColorTheme": "Tria el color del tema:", + "supposedMxid": "Això hauria de ser {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "user": "Usuàrïi", + "youAcceptedTheInvitation": "👍 Has acceptat la invitació", + "noMatrixServer": "{server1} no és un servidor de matrix, vols fer servir {server2} ?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 {user} t'ha convidat", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "banUserDescription": "Es vetarà li usuàriï al xat i no podrà tornar-hi a entrar fins que se li aixequi el veto.", + "removeDevicesDescription": "Tancaràs la sessió d'aquest dispositiu i no hi podràs rebre més missatges.", + "tryAgain": "Torna-ho a provar", + "youKickedAndBanned": "🙅 Has expulsat i vetat a {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "unbanUserDescription": "L'usuàrïi ja pot tornar a entrar al xat.", + "youRejectedTheInvitation": "Has rebutjat la invitació", + "messagesStyle": "Missatges:", + "newSpaceDescription": "Els espais et permeten consolidar els teus xats i construir comunitats públiques o privades.", + "chatDescription": "Descripció del xat", + "editRoomAliases": "Canvia els àlies de la sala", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "encryptThisChat": "Xifra aquest xat", + "reopenChat": "Reobre el xat", + "addToBundle": "Afegeix al pquet", + "countFiles": "{count} arxius", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "noKeyForThisMessage": "Això pot passar si el missatge es va enviar abans que haguessis iniciat sessió al teu compte des d'aquest dispositiu.\n\nTambé pot ser que l'emissor hagi bloquejat el teu dispositiu o que la connexió a internet anés malament.\n\nQue pots llegir el missatge des d'una altra sessió? Si és així, llavors pots transferir-lo! Ves a Paràmetres → Dispositius i assegura't que els teus dispositius s'ha verificat mútuament. Quan obris la sala la propera vegada i totes dues sessions estiguin executant-se, en primer pla, llavors les claus es trasnsmetran automàticament.\n\nVols evitar perdre les claus en tancar la sessió o en canviar de dispositiu? Llavors assegura't que has activat la còpia de seguretat del xat als paràmetres.", + "commandHint_markasgroup": "Marca com un grup", + "pushNotificationsNotAvailable": "Les notificacions push no estan disponibles", + "storeInAppleKeyChain": "Desa en la Apple KeyChain", + "replaceRoomWithNewerVersion": "Substitueix la sala amb la versió més recent", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "hydrate": "Restaura un arxiu de recuperació", + "invalidServerName": "El nom del servidor és invàlid", + "chatPermissions": "Permisos del xat", + "sender": "Remitent", + "storeInAndroidKeystore": "Desa en la Android KeyStore", + "makeAdminDescription": "Un cop hagis fet admin aquesta persona ja no podràs desfer-ho, ja que llavors tindrà els mateixos permisos que tu.", + "editBundlesForAccount": "Edita paquets per aquest compte", + "whyIsThisMessageEncrypted": "Per què no es pot llegir aquest missatge?", + "setChatDescription": "Posa una descripció de xat", + "importFromZipFile": "Importa des d'un arxiu zip", + "dehydrateWarning": "Aquesta acció és irreversible. Assegura't que deses l'arxiu de recuperació en un lloc segur.", + "noOtherDevicesFound": "No s'han trobat més dispositius", + "redactedBy": "Estripat per {username}", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "participant": "Participant", + "@participant": { + "type": "String", + "placeholders": {} + }, + "fileIsTooBigForServer": "No s'ha pogut enviar! El servidor només accepta adjunts de fins a {max}.", + "readUpToHere": "Llegit fins aquí", + "optionalRedactReason": "(Opcional) El motiu per estripar el missatge...", + "dehydrate": "Exporta la sessió i neteja el dispositiu", + "archiveRoomDescription": "Aquest xat serà arxivat. Els altres contactes del grup ho veuran com si haguessis abandonat el xat.", + "exportEmotePack": "Exporta com un pack Emote en .zip", + "openInMaps": "Obre als mapes", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "redactedByBecause": "Estripat per {username} per: \"{reason}\"", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "youHaveWithdrawnTheInvitationFor": "Has rebutjat la invitació de {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "reportUser": "Denuncia l'usuàrïi", + "confirmEventUnpin": "Vols desfixar l'esdeveniment permanentment?", + "youInvitedUser": "📩 Has convidat a {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "fileHasBeenSavedAt": "S'ha desat l'arxiu a {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "redactMessageDescription": "S'estriparà el missatge per a totser d'aquesta conversa. Aquesta acció és irreversible.", + "invalidInput": "L'entrada no és vàlida!", + "doNotShowAgain": "No ho tornis a mostrar", + "report": "informa", + "googlyEyesContent": "{senderName} t'ha enviat un parell d'ulls", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "youBannedUser": "Has vetat a {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "editRoomAvatar": "Canvia la imatge de la sala", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "hasKnocked": "🚪 {user} pica a la porta", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "openLinkInBrowser": "Obre l'enllaç en un navegador", + "messageInfo": "Informació del missatge", + "disableEncryptionWarning": "Per motius de seguretat, un cop activat, no es pot desactivar el xifratge.", + "wrongPinEntered": "Pin incorrecte! Torna-ho a provar en {seconds} segons...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "sendTypingNotifications": "Envia notificacions d'escriptura", + "inviteGroupChat": "📨 Invitació de grup", + "commandHint_unban": "Aixeca el veto a aquesti usuàriï per aquesta sala", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "importEmojis": "Importa emojis", + "wasDirectChatDisplayName": "Xat buit ( era {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "noChatDescriptionYet": "No s'ha afegit una descripció de xat.", + "removeFromBundle": "Esborra del paquet", + "confirmMatrixId": "Confirma la teva ID de Matrix per poder esborrar el compte.", + "learnMore": "Llegeix-ne més", + "notAnImage": "No és un arxiu d'image.", + "users": "Usuàrïis", + "openGallery": "Obre la galeria", + "chatDescriptionHasBeenChanged": "Ha canviat la descripció del xat", + "bundleName": "Nom del paquet", + "removeFromSpace": "Esborra de l'espai", + "roomUpgradeDescription": "El xat serà recreat amb una versió de sala nova. Totis lis participants seran notificadis que han de canviar al nou xat. Pots llegir més sobre les versions de sala a https://spec.matrix.org/latest/rooms/", + "pleaseEnterANumber": "Introdueix un número major que 0", + "youKicked": "👞 Has expulsat a {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "jump": "Salta", + "reactedWith": "{sender} ha reaccionat amb {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "sorryThatsNotPossible": "Aquesta acció no és possible", + "shareInviteLink": "Comparteix un enllaç d'invitació", + "commandHint_markasdm": "Marca com a conversa directa la sala amb aquesta ID de Matrix", + "cuddleContent": "{senderName} et fa una carícia", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "emoteKeyboardNoRecents": "Els últims emotes usats apareixeran aquí...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "youJoinedTheChat": "T'has afegit al xat", + "markAsRead": "Marca com a llegit", + "commandHint_hug": "Envia una abraçada", + "replace": "Reemplaça", + "oopsPushError": "Ep! Sembla que s'ha produït un error en configurar les notificacions.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "youUnbannedUser": "Has aixecat el veto a {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "newSpace": "Espai nou", + "emojis": "Emojis", + "pleaseEnterYourPin": "Introdueix el teu pin", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "commandHint_googly": "Envia uns ulls curiosos", + "createGroup": "Crea un grup", + "time": "Temps", + "custom": "Personalitzat", + "noBackupWarning": "Compte! Si no actives la còpia de seguretat dels xats, perdràs accés als teus missatges xifrats. És molt recomanable activar-ho abans de tancar la sessió.", + "kickUserDescription": "Li usuàrïi ha estat expulsadi però no vetadi. Als xats públics, pot tornar-hi a entrar en qualsevol moment.", + "importNow": "Importa-ho ara", + "pinMessage": "Fixa a la sala", + "invite": "Convida", + "unsupportedAndroidVersionLong": "Aquesta funcionalitat només funciona amb versions d'Android més noves.", + "storeSecurlyOnThisDevice": "Desa de forma segura en aquest dispositiu", + "block": "Bloca", + "blockUsername": "Ignora aquesti usuàrïi", + "blockedUsers": "Usuàrïis blocadis", + "blockListDescription": "Pots bloquejar usuàrïis que et molestin. No rebràs missatges seus ni invitacions de part seva a cap sala.", + "pleaseChooseAStrongPassword": "Tria una contrasenya forta", + "groupName": "Nom del grup", + "createGroupAndInviteUsers": "Crea un grup i convida-hi usuàrïis", + "wrongRecoveryKey": "Malauradament, aquesta clau de recuperació no és la correcta.", + "sendReadReceiptsDescription": "Lis altris participants d'un xat poden veure quan has llegit un missatge.", + "yourGlobalUserIdIs": "La teva ID global és: ", + "commandHint_sendraw": "Envia un json pelat", + "databaseMigrationTitle": "La base de dades ha estat optimitzada", + "pleaseEnterYourCurrentPassword": "Fica la teva contrasenya actual", + "newPassword": "Contrasenya nova", + "restoreSessionBody": "L'aplicació provarà de restaurar la teva sessió des de la còpia de seguretat. Si us plau, comunica aquest error a l'equi pde desenvolupament a {url}. El missatge d'error és {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "formattedMessages": "Missatges amb format", + "formattedMessagesDescription": "Mostra contingut amb format enriquit com text en cursiva, fent servir markdown.", + "verifyOtherUser": "🔐 Verifica uni altri usuàrïi", + "verifyOtherDevice": "🔐 Verifica un altre dispositiu", + "initAppError": "S'ha produït un error mentre s'inicialitzava l'aplicació", + "noUsersFoundWithQuery": "No s'ha trobat cap usuàrïi amb \"{query}\". Revisa si ho has escrit malament.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "leaveEmptyToClearStatus": "Per esborrar el teu estat, deixa-ho en blanc.", + "select": "Tria", + "searchForUsers": "Cerca @usuariïs...", + "addChatOrSubSpace": "Afegeix un xat o un subespai", + "sendReadReceipts": "Envia informes de tecleig", + "sendTypingNotificationsDescription": "Lis altris participants d'un xat poden veure quan estàs teclejant un missatge nou.", + "incomingMessages": "Missatge d'entrada", + "acceptedKeyVerification": "{sender} ha acceptat la verificació de claus", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "canceledKeyVerification": "{sender} ha canceŀlat la verificació de claus", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "completedKeyVerification": "{sender} ha comletat la verificació de claus", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "{sender} està a punt per verificar les claus", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "nothingFound": "No s'ha trobat res...", + "searchChatsRooms": "Cerca #sales, @usuariïs...", + "groupCanBeFoundViaSearch": "El grup es pot trobar per la cerca general", + "databaseMigrationBody": "Espereu un moment, si us plau.", + "passwordsDoNotMatch": "Les contrasenyes no coincideixen", + "passwordIsWrong": "La contrasenya introduïda és incorrecta", + "joinSpace": "Fica't a l'espai", + "publicSpaces": "Espais públics", + "thisDevice": "Aquest dispositiu:", + "sessionLostBody": "S'ha perdut la teva sessió. Si us plau, comunica aquest error a l'equip de desenvolupament a {url}. El missatge d'error és: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "verifyOtherUserDescription": "Si verifiques aquesti usuàrïi, podràs estar seguri de a qui estàs escrivint. . 💪\n\nQuan inicies una verificació, l'altra persona i tu veureu un missatge emergent a l'app. Us sortiran un seguit d'emojis o números a cada pantalla, que haureu de comparar.\n\nLa millor manera de fer-ho és quedar en persona o fer una vídeo-trucada. 👭", + "verifyOtherDeviceDescription": "Quan verifiques un altre dispositiu, aquests poden intercanviar claus, així que es millora la seguretat total. 💪 Quan comences una verificació, apareixerà un missatge emergent a tots dos dispositius. A cadascun hi apareixerà un seguit d'emojis o de números que hauràs de comparar. El millor és tenir tots dos dispositius a mà abans d'iniciar la verificació. 🤳", + "requestedKeyVerification": "{sender} ha soŀlicitat verificar claus", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "{sender} ha iniciat la verificació de claus", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "stickers": "Enganxines", + "discover": "Descobreix", + "commandHint_ignore": "Ignora el compte de matrix especificat", + "commandHint_unignore": "Deixa d'ignorar el compt de matrix especificat", + "sendCanceled": "S'ha canceŀlat l'enviament", + "noChatsFoundHere": "Encara no hi ha xats. Obre una conversa amb algú picant al botó de sota. ⤵️", + "knock": "Pica", + "knocking": "S'està picant", + "goToSpace": "Ves a l'espai {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "adminLevel": "{level} - Admin", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeGeneralChatSettings": "Canvia les opcions generals de xat", + "sendRoomNotifications": "Envia notificacions @room", + "changeTheDescriptionOfTheGroup": "Canvia la descripció del xat", + "changelog": "Registre de canvis", + "userLevel": "{level} - Usuàriï", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "moderatorLevel": "{level} - Moderadori", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "inviteOtherUsers": "Convida més gent a la conversa", + "changeTheChatPermissions": "Canvia els permisos del xat", + "changeTheVisibilityOfChatHistory": "Canvia la visibilitat de l'historial de conversa", + "changeTheCanonicalRoomAlias": "Canvia l'adreça principal del xat", + "accessAndVisibilityDescription": "Qui pot entrar a aquesta conversa i com pot ser descoberta.", + "customEmojisAndStickers": "Emojis i stickers propis", + "accessAndVisibility": "Accés i visibilitat", + "calls": "Trucades", + "hideRedactedMessages": "Amaga els missatges estripats", + "hideInvalidOrUnknownMessageFormats": "Amaga els missatges que tinguin un format desconegut", + "passwordRecoverySettings": "Recuperació de contrasenya", + "gallery": "Galeria", + "noDatabaseEncryption": "No es pot xifrar la base de dades en aquesta plataforma", + "usersMustKnock": "Lis membres han de picar a la porta", + "noOneCanJoin": "Ningú s'hi pot ficar", + "customEmojisAndStickersBody": "Afegeix o comparteix emojis o stickers. Els podràs fer servir en qualsevol conversa.", + "hideRedactedMessagesBody": "Si algú estripa un missatge, ja no apareixerà a l'historial de la conversa.", + "searchIn": "Cerca al xat \"{chat}\"...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "markAsUnread": "Marca com a no llegit", + "chatPermissionsDescription": "Defineix quin nivell de permisos cal per cada acció en aquest xat. Els nivells 0, 50 i 100 normalment representen usuàriïs, mods i admins, però es pot canviar.", + "updateInstalled": "🎉 S'ha actualitzat a la versió {version}!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "appLockDescription": "Bloca l'app amb un pin quan no la facis servir", + "swipeRightToLeftToReply": "Llisca de dreta esquerra per respondre", + "globalChatId": "Identificador global de xat", + "createNewAddress": "Crea una adreça nova", + "searchMore": "Cerca més...", + "files": "Arxius", + "publicChatAddresses": "Adreces públiques del xat", + "unreadChatsInApp": "{appname}: {unread} converses pendents", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "thereAreCountUsersBlocked": "Ara mateix hi ha {count} usuàriïs bloquejadis.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "loginWithMatrixId": "Entra amb l'id de Matrix", + "doesNotSeemToBeAValidHomeserver": "No sembla un servidor compatible. Pot ser que la URL estigui malament?", + "noMoreChatsFound": "No hi ha més xats...", + "space": "Espai", + "unread": "Sense llegir", + "chatCanBeDiscoveredViaSearchOnServer": "El xat es pot descobrir amb la cerca de {server}", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "calculatingFileSize": "S'està calculant la mida de l'arxiu...", + "noticeChatBackupDeviceVerification": "Nota: quan connectes tots els dispositius al backup del xat, es verifiquen automàticament.", + "continueText": "Continua", + "strikeThrough": "Text ratllat", + "addLink": "Afegeix un enllaç", + "noContactInformationProvided": "El servidor no ofereix cap informació de contacte vàlida", + "setWallpaper": "Tria imatge de fons", + "sendImages": "Envia {count} imatge", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "oneOfYourDevicesIsNotVerified": "Un dels teus dispositius no està verificat", + "blur": "Difumina:", + "opacity": "Opacitat:", + "manageAccount": "Gestiona el compte", + "contactServerAdmin": "Contacta l'admin del servidor", + "contactServerSecurity": "Contacta l'equip de seguretat del servidor", + "version": "Versió", + "website": "Lloc web", + "compress": "Comprimeix", + "pleaseFillOut": "Emplena", + "invalidUrl": "URL invàlida", + "unableToJoinChat": "No s'ha pogut entrar al xat. Pot ser que l'altri participant hagi tancat la conversa.", + "aboutHomeserver": "Quant a {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "supportPage": "Pàgina de suport", + "serverInformation": "Informació del servidor:", + "name": "Nom", + "boldText": "Text en negreta", + "italicText": "Text en cursiva", + "contentNotificationSettings": "Opcions de notificació de continguts", + "roomNotificationSettings": "Opcions de notificacions de sales", + "notificationRuleContainsUserName": "Conté el nom d'usuàriï", + "notificationRuleContainsUserNameDescription": "Notifica l'usuàriï quan un missatge contingui el seu nom.", + "notificationRuleMaster": "Silencia totes les notificacions", + "notificationRuleSuppressNotices": "Elimina els missatges automàtics", + "notificationRuleInviteForMe": "Invitació per a mi", + "notificationRuleInviteForMeDescription": "Notifica l'usuàriï quan és convidadi a una sala.", + "notificationRuleMemberEventDescription": "Ignora les notificacions quan entra o surt algú d'una sala.", + "notificationRuleIsUserMention": "Mencions", + "notificationRuleContainsDisplayName": "Conté el nom visible", + "notificationRuleIsRoomMention": "Menció de sala", + "notificationRuleIsRoomMentionDescription": "Notifica l'usuàriï quan es s'esmenti la sala.", + "notificationRuleRoomnotifDescription": "Notifica l'usuàriï quan un missatge contingui '@room'.", + "notificationRuleTombstone": "Làpida", + "notificationRuleTombstoneDescription": "Notifica l'usuàriï dels missatges de desactivació de sales.", + "notificationRuleReaction": "Reacció", + "notificationRuleReactionDescription": "Ignora les notificacions sobre reaccions.", + "notificationRuleRoomServerAcl": "Regles ACL del servidor d'una sala", + "notificationRuleRoomServerAclDescription": "Ignora les notificacions sobre les regles d'accés (ACL) del servidor d'una sala.", + "notificationRuleSuppressEdits": "Elimina les edicions", + "notificationRuleSuppressEditsDescription": "Ignora les notificacions per missatges editats.", + "notificationRuleCall": "Trucada", + "notificationRuleCallDescription": "Notifica l'usuàriï de trucades.", + "notificationRuleEncryptedRoomOneToOneDescription": "Notifica l'usuàriï de missatges en sales xifrades un a un, converses de dues persones.", + "notificationRuleEncryptedRoomOneToOne": "Converses xifrades", + "notificationRuleRoomOneToOne": "Converses", + "notificationRuleMessageDescription": "Notifica l'usuàriï sobre missatges generals.", + "notificationRuleEncrypted": "Xifrat", + "notificationRuleEncryptedDescription": "Notifica l'usuàriï de missatges en sales xifrades.", + "notificationRuleJitsi": "Jitsi", + "notificationRuleServerAcl": "Ignora canvis en ACL de servidor", + "unknownPushRule": "No es coneix la regla push '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "more": "Més", + "notificationRuleSuppressNoticesDescription": "No envia notificacions relacionades amb usuàriïs automàtics com els bots.", + "otherNotificationSettings": "Altres opcions de notificacions", + "notificationRuleIsUserMentionDescription": "Notifica quan mencionin l'usuàriï en un missatge.", + "notificationRuleContainsDisplayNameDescription": "Notifica l'usuàriï quan un missatge contingui el seu nom per mostrar.", + "notificationRuleJitsiDescription": "Notifica l'usuàriï sobre activitat del giny de Jitsi.", + "notificationRuleRoomnotif": "Notificació de sala", + "deletePushRuleCanNotBeUndone": "Si esborres aquesta opció de notificació no ho podràs tornar a canviar.", + "notificationRuleRoomOneToOneDescription": "Notifica l'usuàriï de missatges en converses de dues persones, sales un a un.", + "notificationRuleMemberEvent": "Canvis de membres", + "otherPartyNotLoggedIn": "L'altra persona no està en línia ara mateix i per tant no pot rebre missatges!", + "userSpecificNotificationSettings": "Opcions de notificacions d'usuàriï", + "generalNotificationSettings": "Opcions de notificacions generals", + "notificationRuleMessage": "Missatge", + "notificationRuleServerAclDescription": "Ignora les notificacions per canvis en les regles d'accés (ACL) de servidor.", + "shareKeysWithDescription": "Quins dispositius vols que puguin llegir els teus missatges xifrats?", + "previous": "Anterior", + "notificationRuleMasterDescription": "Ignora totes les altres regles i deshabilita totes les notificacions.", + "newChatRequest": "📩 Soŀlicitud de missatge", + "allDevices": "Tots els dispositius", + "crossVerifiedDevices": "Els dispositius verificats mútuament", + "verifiedDevicesOnly": "Només els dispositius verificats", + "synchronizingPleaseWaitCounter": " S'està sincronitzant... ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "appWantsToUseForLogin": "Fes servir '{server}' per iniciar sessió", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "appWantsToUseForLoginDescription": "Consenteixes que l'app i la web comparteixen informació sobre tu.", + "open": "Obre", + "waitingForServer": "S'està esperant el servidor...", + "shareKeysWith": "Comparteix les claus amb...", + "crossVerifiedDevicesIfEnabled": "Els dispositius verificats mútuament, si està activat", + "commandHint_roomupgrade": "Actualitza aquesta sala a la versió indicada", + "takeAPhoto": "Fes una foto", + "recordAVideo": "Grava un vídeo", + "optionalMessage": "(Opcional) missatge...", + "enterNewChat": "Entra al nou xat", + "notSupportedOnThisDevice": "No suportat en aquest dispositiu", + "changedTheChatDescription": "{username} ha canviat la descripció del xat", + "changedTheChatName": "{username} ha canviat el nom del xat", + "checkList": "Llista de tasques", + "countInvited": "{count} convidadis", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "sentVoiceMessage": "🎙️ {duration} - Missatge de veu de {sender}", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "approve": "Aprova", + "youHaveKnocked": "T'han picat a la porta", + "pleaseWaitUntilInvited": "Ara espera fins que algú de la sala t'hi deixi entrar.", + "commandHint_logout": "Tanca la sessió per aquest dispositiu", + "commandHint_logoutall": "Tanca totes les sessions actives", + "displayNavigationRail": "Mostra la barra de navegació al mòbil", + "customReaction": "Reacció personalitzada", + "moreEvents": "Altres esdeveniments", + "declineInvitation": "Rebutja la invitació", + "noMessagesYet": "No hi ha cap missatge", + "longPressToRecordVoiceMessage": "Deixa picat per gravar un missatge de veu.", + "pause": "Pausa", + "resume": "Continua", + "removeFromSpaceDescription": "S'esborrarà de l'espai el xat, però encara apareixerà a la llista de xats.", + "countChats": "{chats} xats", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "spaceMemberOf": "Membre dels espais {spaces}", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "Membre dels espais {spaces} poden picar a porta", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "startPoll": "Comença una enquesta", + "endPoll": "Acaba l'enquesta", + "answersVisible": "Respostes visibles", + "pollQuestion": "Pregunta de l'enquesta", + "answerOption": "Opció de resposta", + "addAnswerOption": "Afegeix una opció", + "allowMultipleAnswers": "Permet múltiples respostes", + "pollHasBeenEnded": "Ha acabat l'enquesta", + "countVotes": "{count, plural, =1{Un vot} other{{count} vots}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "answersWillBeVisibleWhenPollHasEnded": "Les respostes seran visibles quan s'acabi l'enquesta", + "replyInThread": "Respon en un fil", + "countReplies": "{count, plural, =1{Una resposta} other{{count} respostes}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "thread": "Fil", + "backToMainChat": "Torna al xat principal", + "saveChanges": "Desa els canvis", + "createSticker": "Crea un sticker o un emoji", + "useAsSticker": "Agafa com a sticker", + "useAsEmoji": "Agafa com a emoji", + "stickerPackNameAlreadyExists": "Ja existeix aquest nom per un pack de stickers", + "newStickerPack": "Nou pack de stickers", + "stickerPackName": "Nom del pack de stickers", + "attribution": "Atribució", + "skipChatBackup": "Omet la còpia de seguretat del xat", + "skipChatBackupWarning": "N'estàs seguri? Si no actives la còpia de seguretat pots perdre accés als teus missatges si canvies de dispositiu.", + "noMoreResultsFound": "No s'han trobat més resultats", + "chatSearchedUntil": "S'ha cercat fins a {time}", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "federationBaseUrl": "URL base de federació", + "clientWellKnownInformation": "Informació coneguda del client:", + "baseUrl": "URL base", + "identityServer": "Servidor d'identitats:", + "versionWithNumber": "Versió: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "Registres", + "advancedConfigs": "Avançat", + "advancedConfigurations": "Configuracions avançades", + "signIn": "Obre sessió", + "createNewAccount": "Crea un compte nou", + "signUpGreeting": "El FluffyChat és descentralitzat! Tria un servidor on vulguis crear-t'hi un compte, i som-hi!", + "signInGreeting": "Si ja tens un compte a Matrix, benvingudi! Tria el teu servidor i inicia-hi sessió.", + "theProcessWasCanceled": "S'ha canceŀlat el procés.", + "join": "Entra", + "searchOrEnterHomeserverAddress": "Cerca o introdueix l'adreça del teu servidor", + "matrixId": "ID de Matrix", + "setPowerLevel": "Concedeix permisos", + "makeModerator": "Fes moderadori", + "makeAdmin": "Fes admin", + "removeModeratorRights": "Treu els drets de moderadori", + "removeAdminRights": "Treu els drets d'admin", + "powerLevel": "Nivell de permisos", + "setPowerLevelDescription": "Els nivells de permisos defineixen què pot fer uni membre d'aquesta sala, i es defineix per un número entre 0 i 100.", + "owner": "Propietàriï", + "mute": "Silencia", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "createNewChat": "Crea un nou xat", + "reset": "Reseteja", + "supportFluffyChat": "Dona suport a FluffyChat", + "support": "Aporta", + "setLowPriority": "Estableix una prioritat baixa", + "unsetLowPriority": "Restableix la prioritat", + "playSoundOnNotification": "Notificacions sonores" +} \ No newline at end of file diff --git a/lib/l10n/intl_cs.arb b/lib/l10n/intl_cs.arb new file mode 100644 index 0000000..bee7f74 --- /dev/null +++ b/lib/l10n/intl_cs.arb @@ -0,0 +1,2429 @@ +{ + "@@locale": "cs", + "@@last_modified": "2021-08-14 12:41:10.131133", + "about": "O aplikaci", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Přijmout", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} přijal/a pozvání", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Účet", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} aktivoval/a koncové šifrování", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "Přidat e-mail", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "admin": "Správce", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "alias", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Vše", + "@all": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} odpověděl na hovor", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Kdokoliv se může připojit", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "Zámek aplikace", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "archive": "Archivovat", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Mohou se připojit hosté", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Jste si jistý?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Opravdu se chcete odhlásit?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Pro ověření této osoby zadejte prosím přístupovou frázi k „bezpečnému úložišti“ anebo „klíč pro obnovu“.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Přijmout žádost o ověření od {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "autoplayImages": "Automaticky přehrajte animované nálepky a emoce", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "badServerLoginTypesException": "Homeserver podporuje přihlášení typu:\n{serverVersions}\nAle tato aplikace podporuje pouze:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "banFromChat": "Zakázat chat", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Zakázán", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} zakázal {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Blokovat zařízení", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "Zakázán", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "Zrušit", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "Nelze otevřít URI {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changeDeviceName": "Změnit název zařízení", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} změnil avatar chatu", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} změnili nastavení oprávnění v chatu", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} změnil/a svoji přezdívku na: „{displayname}“", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} změnili přístupová práva pro hosty", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} změnili přístupová práva pro hosty na: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} změnili nastavení viditelnosti historie diskuze", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} změnili nastavení viditelnosti historie diskuze na: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} změnili nastavení pravidel připojení", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} změnili nastavení pravidel připojení na: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} změnili svůj avatar", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} změnili nastavení aliasů místnosti", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} změnili odkaz k pozvání do místnosti", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Změnit heslo", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Změnit domovský server", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Změňte svůj styl", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Změnit název skupiny", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Změňte svůj avatar", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "Šifrování bylo poškozeno", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Chat", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Záloha chatu", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Bližší údaje o chatu", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Chaty", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Vyberte silné heslo", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Vymazat archiv", + "close": "Zavřít", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "Zakázat danému uživateli přístup do této místnosti", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_html": "Odeslat text ve formátu HTML", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Pozvěte daného uživatele do této místnosti", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "Připojte se k dané místnosti", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "Odeberte daného uživatele z této místnosti", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "Opusťte tuto místnost", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "Představ se", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_myroomavatar": "Nastavte si obrázek pro tuto místnost (autor mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "Nastavte si váš zobrazovaný název pro tuto místnost", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "Nastavit úroveň práv daného uživatele (výchozí: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "Odeslat neformátovaný text", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "Odeslat odpověď jako reakci", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_send": "Poslat zprávu", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_unban": "Zrušte zákaz přístupu daného uživatele do této místnosti", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandInvalid": "Příkaz je neplatný", + "@commandInvalid": { + "type": "String" + }, + "commandMissing": "{command} není příkaz.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "compareEmojiMatch": "Porovnejte a přesvědčete se, že následující emotikony se shodují na obou zařízeních", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Porovnejte a přesvědčete se, že následující čísla se shodují na obou zařízeních", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Nastavení chatu", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Kontakt byl pozván do skupiny", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "Obsah byl nahlášen správcům serveru", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Zkopírováno do schránky", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Kopírovat", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Zkopírovat do schránky", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Nebylo možné dešifrovat zprávu: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count} účastníků", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Vytvořit", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} založil/a chat", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "createNewSpace": "Nový prostor", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "Aktuálně aktivní", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Tmavé", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Tímto krokem se deaktivuje váš uživatelský účet. Akci nelze vrátit zpět! Jste si jistí?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Výchozí úroveň oprávnění nových uživatelů", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "Smazat", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Smazat účet", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Smazat zprávu", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Zařízení", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Přímé chatování", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Přezdívka byla změněna", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Stáhnout soubor", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "Upravit", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Upravit zakázané servery", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Změnit přezdívku", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Upravit aliasy místností", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Upravit avatara místnosti", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Emotikona již existuje!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Neplatný kód emotikony!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Klávesová zkratka emotikonu", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Prázdný chat", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Povolit balíček emotikon všude", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Povolit šifrování", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Šifrování již nebude možné vypnout. Jste si tím jisti?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Šifrováno", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Šifrování", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Šifrování není aktivní", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} ukončil hovor", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Zadejte e-mailovou adresu", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Chyba při získávání polohy: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "fontSize": "Velikost písma", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "Přeposlat", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Od vstupu", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Od pozvání", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Skupina", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "Skupina je veřejná", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "Skupiny", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Skupina s {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Hosté jsou zakázáni", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Hosté se mohou připojit", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} stáhl pozvánku pro {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Pomoc", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Skrýt neznámé události", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignore": "Ignorovat", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Ignorovaní uživatelé", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Klikl jsem na odkaz", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Nesprávné přístupové heslo anebo klíč pro obnovu", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Pozvat kontakt", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Pozvat kontakt do {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "Pozvaný", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username} pozval/a {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Pouze pozvaní uživatelé", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} vás pozval/a na FluffyChat.\n1. Navštivte fluffychat.im a nainstalujte si aplikaci.\n2. Zaregistrujte se nebo se přihlaste.\n3. Otevřte pozvánku: \n {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "píše…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} se připojil/a do konverzace", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Připojte se k místnosti", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username} vyhodil/a {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "{username} vyhodil/a a zabanoval/a {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Vyhodit z chatu", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Naposledy aktivní: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Opustit", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Opustil chat", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Světlé", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Načíst dalších {count} účastníků", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "Načítání… Prosíme vyčkejte.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Načíst další…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "Služby určování polohy jsou deaktivovány. Povolte jim, aby mohli sdílet vaši polohu.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "Oprávnění k poloze odepřeno. Udělte jim prosím možnost sdílet vaši polohu.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "login": "Přihlásit se", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Přihlášení k {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Odhlásit", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Zmínit se", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "Zprávy", + "@messages": { + "type": "String", + "placeholders": {} + }, + "moderator": "Moderátor", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Ztlumit chat", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Nový chat", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Nová zpráva ve FluffyChatu", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Nová žádost o ověření!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "Další", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "Ne", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Žádné připojení k serveru", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Nebyly nalezeny žádné emotikony. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Můžete aktivovat šifrování jakmile místnost přestane být veřejně dostupná.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Zdá se, že služba Firebase Cloud Messaging není ve vašem zařízení k dispozici. Chcete-li i nadále přijímat push oznámení, doporučujeme nainstalovat ntfy. Pomocí ntfy nebo jiného poskytovatele Unified Push můžete přijímat oznámení push zabezpečeným způsobem přenosu dat. Aplikaci ntfy si můžete stáhnout z obchodu PlayStore nebo z webu F-Droid.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} není matrixový server, použít místo toho server {server2}?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "noPasswordRecoveryDescription": "Dosud jste nepřidali způsob, jak obnovit své heslo.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Chybí oprávnění", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Nebyly nalezeny žádné místnosti…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Oznámení", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} uživatelé píší…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "obtainingLocation": "Získávání polohy…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "ok": "Ok", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Online záloha kíčů je zapnuta", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Jejda! Při nastavování oznámení push došlo bohužel k chybě.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Jejda, něco se pokazilo…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Otevřete aplikaci pro přečtení zpráv", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Otevřít fotoaparát", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "openInMaps": "Otevřít v mapách", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "or": "Nebo", + "@or": { + "type": "String", + "placeholders": {} + }, + "participant": "Účastník", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "heslo nebo klíč pro obnovení", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Heslo", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Zapomenuté heslo", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Heslo bylo změněno", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Obnova hesla", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Připnout zprávu", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Vyberte přístupový kód", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Klikněte na odkaz v e-mailu a pokračujte.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Zadejte prosím své heslo", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Zadejte svůj PIN", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Zadejte prosím své uživatelské jméno", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Postupujte podle pokynů na webu a klepněte na další.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "Soukromí", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Veřejné místnosti", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "Důvod", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} opravili událost", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactMessage": "Redigovat zprávu", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reject": "Zamítnout", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} odmítli pozvání", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Odstranit", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Odstranit všechna další zařízení", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Zrušit zákaz chatu", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Odstraňte svého avatara", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Nahradit místnost novou verzí", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "Odpovědět", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Nahlásit zprávu", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Místnost byla upgradována", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Verze místnosti", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Uložit soubor", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "search": "Hledat", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "Bezpečnostní", + "@security": { + "type": "String", + "placeholders": {} + }, + "send": "Odeslat", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Odeslat zprávu", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Odeslat jako text", + "@sendAsText": { + "type": "String" + }, + "sendAudio": "Odeslat audio", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Odeslat soubor", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Odeslat obrázek", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Odeslat zprávy", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Odeslat video", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "{username} poslali soubor", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "{username} poslali zvukovou nahrávku", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "{username} poslali obrázek", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "{username} poslali samolepku", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "{username} poslali video", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} odeslal informace o hovoru", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setAsCanonicalAlias": "Nastavit jako hlavní alias", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "setStatus": "Nastavit stav", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Nastavení", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Sdílet", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} sdílel jejich polohu", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "shareLocation": "Sdílet polohu", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "skip": "Přeskočit", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Zdrojové kódy", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "Prostor je veřejný", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Název prostoru", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} zahájil hovor", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "status": "Stav", + "@status": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Jak se dneska máš?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Odeslat", + "@submit": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Synchronizace ... Čekejte prosím.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Téma systému", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Neshodují se", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Shodují se", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Příliš mnoho požadavků. Prosím zkuste to znovu později!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Zkuste odeslat znovu", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} zrušili zákaz pro {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Odblokovat zařízení", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Neznámé zařízení", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Neznámý šifrovací algoritmus", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Neznámá událost „{type}“", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Zrušit ztlumení chatu", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Odepnout zprávu", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} a {count} dalších píší…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} a {username2} píší…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} píše…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "{username} opustili chat", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} poslali událost {type}", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verified": "Ověřeno", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Zahájit ověření", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Ověření proběhlo úspěšně!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Ověřuji druhý účet", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Viditelnost historie chatu", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Viditelné pro všechny účastnící se", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Viditelné pro všechny", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Hlasová zpráva", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Čeká se na potvrzení žádosti partnerem…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Čeká se na potvrzení emoji partnerem…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Čekání na partnera až přijme čísla…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Varování!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Zaslali jsme vám e-mail", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Kdo může provést jakou akci", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Kdo se může připojit do této skupiny", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Proč to chcete nahlásit?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "S těmito adresami můžete obnovit své heslo.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Napište zprávu…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Ano", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Vy", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Tohoto chatu se nadále neúčastníte", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Byl vám zablokován přístup k tomuto chatu", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Váš veřejný klíč", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "Přidat do prostoru", + "scanQrCode": "Naskenujte QR kód", + "sendOnEnter": "Odeslat při vstupu", + "addToBundle": "Přidat do balíčku", + "addAccount": "Přidat účet", + "bundleName": "Název balíčku", + "link": "Odkaz", + "editBundlesForAccount": "Upravit balíčky pro tento účet", + "oneClientLoggedOut": "Jeden z vašich klientů byl odhlášen", + "removeFromBundle": "Odstranit z tohoto balíčku", + "unverified": "Neověřeno", + "messageInfo": "Informace o zprávě", + "time": "Čas", + "sender": "Odesílatel", + "repeatPassword": "Zopakujte heslo", + "openGallery": "Otevřít galerii", + "removeFromSpace": "Odstranit z tohoto místa", + "commandHint_clearcache": "Vymazat mezipamět", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_discardsession": "Zahodit relaci", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_dm": "Zahajte přímý chat\nK deaktivaci šifrování použijte --no-encryption", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_create": "Vytvořte prázdný skupinový chat\n K deaktivaci šifrování použijte --no-encryption", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "markAsRead": "Označit jako přečtené", + "reportUser": "Nahlásit uživatele", + "reactedWith": "{sender} reagoval s {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "emojis": "Emojis", + "unsupportedAndroidVersion": "Nepodporovaná verze Androidu", + "unsupportedAndroidVersionLong": "Tato funkce vyžaduje novější verzi Android. Zkontrolujte prosím aktualizace nebo podporu Lineage OS.", + "pinMessage": "Připnout zprávu do místnosti", + "confirmEventUnpin": "Opravdu chcete událost trvale odepnout?", + "youKicked": "Vykopli jste uživatele {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youAcceptedTheInvitation": "Přijal jsi pozvání", + "youJoinedTheChat": "Připojili jste se k chatu", + "youInvitedBy": "Byli jste pozváni uživatelem {user}", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youBannedUser": "Zakázali jste uživatele {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "Pozvali jste uživatele {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKickedAndBanned": "Vykopli jste a zakázali jste uživatele {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "Zrušili jste zákaz uživateli {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youRejectedTheInvitation": "Odmítli jste pozvání", + "youHaveWithdrawnTheInvitationFor": "Stáhli jste pozvánku pro uživatele {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "disableEncryptionWarning": "Z bezpečnostních důvodů nemůžete vypnout šifrování v chatu, kde již bylo dříve zapnuto.", + "confirmMatrixId": "Pro smazání svého účtu potvrďte, prosím, své Matrix ID.", + "commandHint_googly": "Poslat kroutící se očička", + "commandHint_cuddle": "Poslat mazlení", + "commandHint_hug": "Poslat obejmutí", + "hugContent": "{senderName} vás objímá", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "googlyEyesContent": "{senderName} vám posílá kroutící se očička", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "cuddleContent": "{senderName} se s vámi mazlí", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "notAnImage": "Není obrázek.", + "importNow": "Importovat nyní", + "redactedByBecause": "Smazáno uživatelem {username} s důvodem: \"{reason}\"", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "storeInAndroidKeystore": "Uložit v Android KeyStore", + "dehydrate": "Exportovat relaci a promazat zařízení", + "doNotShowAgain": "Nezobrazovat znovu", + "commandHint_markasdm": "Označit jako místnost přímé konverzace s daným Matrix ID", + "hydrate": "Obnovit ze souboru zálohy", + "createGroup": "Vytvořit skupinu", + "shareInviteLink": "Sdílet pozvánku", + "setColorTheme": "Nastavit barvy:", + "importEmojis": "Importovat emodži", + "importFromZipFile": "Importovat ze .zip souboru", + "exportEmotePack": "Exportovat emodži jako .zip", + "replace": "Nahradit", + "users": "Uživatelé", + "storeInAppleKeyChain": "Uložit v Apple KeyChain", + "jumpToLastReadMessage": "Skočit na naposledy přečtenou zprávu", + "redactedBy": "Smazáno uživatelem {username}", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "tryAgain": "Zkuste to znovu", + "redactMessageDescription": "Tato zpráva bude smazána pro všechny účastníky konverzace. Tuto akci nelze vzít zpět.", + "optionalRedactReason": "(Nepovinné) Důvod smazání této zprávy…", + "messagesStyle": "Zprávy:", + "noOtherDevicesFound": "Žádná ostatní zařízení nebyla nalezena", + "chatDescription": "Popis konverzace", + "chatDescriptionHasBeenChanged": "Popis konverzace byl změněn", + "noChatDescriptionYet": "Zatím nebyl vytvořen žádný popis konverzace.", + "invalidServerName": "Neplatné jméno serveru", + "chatPermissions": "Oprávnění konverzace", + "setChatDescription": "Nastavit popis konverzace", + "whyIsThisMessageEncrypted": "Proč nelze přečíst tuto zprávu?", + "wasDirectChatDisplayName": "Prázdná konverzace (dříve {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "newSpaceDescription": "Prostory umožňují organizovat Vaše konverzace a vytvářet soukromé nebo veřejné komunity.", + "sendTypingNotifications": "Posílat oznámení o psaní", + "commandHint_markasgroup": "Označit jako skupinu", + "encryptThisChat": "Zašifrovat tuto konverzaci", + "sorryThatsNotPossible": "Omlouváme se… to není možné", + "reopenChat": "Znovu otevřít konverzaci", + "fileIsTooBigForServer": "Neodesláno! Server povoluje maximálně {max} příloh.", + "jump": "Skočit", + "openLinkInBrowser": "Otevřít odkaz v prohlížeči", + "supposedMxid": "Tady by mělo být {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "newSpace": "Nový prostor", + "user": "Uživatel", + "fileHasBeenSavedAt": "Soubor uložen do {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "custom": "Vlastní", + "dehydrateWarning": "Tuto akci nelze vzít zpět. Ujistěte se, že máte bezpečně uložený soubor zálohy.", + "storeSecurlyOnThisDevice": "Uložit bezpečně na tomto zařízení", + "countFiles": "{count} souborů", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "emoteKeyboardNoRecents": "Naposledy použité emodži se zobrazí zde...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "appLockDescription": "Zamknout aplikaci pomocí PIN kódu když není používána", + "globalChatId": "Globální ID chatu", + "accessAndVisibility": "Přístup a viditelnost", + "calls": "Volání", + "customEmojisAndStickers": "Vlastní emodži a nálepky", + "accessAndVisibilityDescription": "Kdo se může připojit a najít tuto konverzaci.", + "customEmojisAndStickersBody": "Přidat nebo sdílet vlastní emodži či nálepky, které lze použít v konverzaci.", + "swipeRightToLeftToReply": "Potáhnutím zprava doleva odpovědět na zprávu", + "noMoreChatsFound": "Žádné další konverzace nalezeny...", + "hideRedactedMessages": "Skrýt upravené zprávy", + "hideRedactedMessagesBody": "Pokud někdo zprávu zrediguje, nebude tato zpráva v chatu již viditelná.", + "hideInvalidOrUnknownMessageFormats": "Skrýt nesprávné nebo neznámé formáty zpráv", + "blockUsername": "Ignorovat uživatelské jméno", + "passwordRecoverySettings": "Nastavení obnovení hesla", + "block": "Zablokovat", + "blockListDescription": "Můžete blokovat uživatele, kteří vás obtěžují. Od uživatelů na vašem osobním seznamu blokovaných uživatelů nebudete moci přijímat žádné zprávy ani pozvánky do místnosti.", + "blockedUsers": "Zablokování uživatelé", + "noChatsFoundHere": "Nejsou zde žádné konverzace. Začněte novou konverzaci s někým pomocí tlačítka níže. ⤵️", + "unread": "Nepřečtené", + "space": "Prostor", + "aboutHomeserver": "O {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "countInvited": "{count} pozváno", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "hasKnocked": "🚪 {user} zaklepal", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "usersMustKnock": "Uživatelé musí zaklepat", + "changedTheChatDescription": "{username} změnil/a popis konverzace", + "changedTheChatName": "{username} změnil/a název konverzace", + "checkList": "Kontrolní seznam", + "knock": "Zaklepat", + "noBackupWarning": "Pozor! Bez povolení zálohování konverzací ztratíte přístup k zašifrovaným zprávám. Důrazně doporučujeme zálohování konverzací před odhlášením povolit.", + "readUpToHere": "Čtěte až sem", + "reportErrorDescription": "😭 Ale ne, něco se porouchalo. Pokud chcete, můžete tento bug nahlásit vývojářům.", + "report": "hlášení", + "invite": "Pozvánka", + "inviteGroupChat": "📨 Skupinová pozvánka", + "noKeyForThisMessage": "K tomuto může dojít, pokud byla zpráva odeslána před přihlášením k účtu v tomto zařízení.\n\nJe také možné, že odesílatel zablokoval vaše zařízení nebo se něco pokazilo s internetovým připojením.\n\nJste schopni si zprávu přečíst v jiné relaci? Pak můžete zprávu přenést z něj! Přejděte do Nastavení > Zařízení a zkontrolujte, zda se Vaše zařízení vzájemně ověřila. Při příštím otevření místnosti, kdy budou obě relace v popředí, se klíče přenesou automaticky.\n\nNechcete klíče ztratit při odhlašování nebo přepínání zařízení? Ujistěte se, že jste v nastaveních povolili zálohování konverzací.", + "invalidInput": "Nevhodný vstup!", + "wrongPinEntered": "Nespravný PIN! Zkuste to znovu za {seconds} vteřin...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "pleaseEnterANumber": "Prosím, zadejte číslo větší než 0", + "archiveRoomDescription": "Konverzace bude přesunuta do archivu. Ostatní uživatelé uvidí, že jste konverzaci opustil/a.", + "roomUpgradeDescription": "Konverzace bude vytvořena znovu s novou verzí místnosti. Všem účastníkům bude oznámeno, že se musí přesunout do nové konverzace. Více o verzích místností se dočtete na https://spec.matrix.org/latest/", + "removeDevicesDescription": "Budete odhlášen/a z tohoto zařízení a nebudete nadále moci přijímat zprávy.", + "banUserDescription": "Uživatel bude vyhozen z konverzace a nebude se moci znovu připojit dokud nebude odblokován.", + "unbanUserDescription": "Uživatel se bude moci vrátit do konverzace pokud se o to pokusí.", + "makeAdminDescription": "Jestliže tohoto uživatele povýšíte na administrátora, nebude tak moci odčinit, protože bude mít stejná oprávnění jako Vy.", + "pushNotificationsNotAvailable": "Notifikace nejsou dostupné", + "learnMore": "Dozvědět se více", + "yourGlobalUserIdIs": "Vaše globální uživatelské ID (user-ID) je: ", + "knocking": "Klepání", + "chatCanBeDiscoveredViaSearchOnServer": "Konverzaci naleznete vyhledáváním na {server}", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "searchChatsRooms": "Vyhledat #konverzace, @uživatele...", + "nothingFound": "Nic nenalezeno...", + "groupName": "Název skupiny", + "createGroupAndInviteUsers": "Vytvořit skupinu a pozvat uživatele", + "groupCanBeFoundViaSearch": "Skupinu naleznete vyhledávním", + "commandHint_sendraw": "Odeslat soubor json", + "databaseMigrationTitle": "Databáze je optimalizována", + "databaseMigrationBody": "Vydržte prosím. Bude to chvilku trvat.", + "leaveEmptyToClearStatus": "Zanechte prázdné pro smazání statusu.", + "select": "Vybrat", + "searchForUsers": "Vyhledat @uživatele...", + "pleaseEnterYourCurrentPassword": "Prosím, zadejte Vaše současné heslo", + "newPassword": "Nové heslo", + "pleaseChooseAStrongPassword": "Prosím, zvolte si silné heslo", + "passwordsDoNotMatch": "Hesla se neshodují", + "passwordIsWrong": "Zadané heslo je nesprávné", + "publicChatAddresses": "Adresy veřejných konverzací", + "createNewAddress": "Vytvořit novou adresu", + "thisDevice": "Toto zařzení:", + "synchronizingPleaseWaitCounter": " Synchronizuji… ({percentage} %)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "noOneCanJoin": "Nikdo se nemůže připojit", + "kickUserDescription": "Uživatel bude vyhozen z chatu, ale nikoliv zabanován. V případě veřejných chatů to znamená, že se kdykoliv může znovu připojit.", + "noUsersFoundWithQuery": "Nepodařilo se najít uživatele \"{query}\". Zkontrolujte, prosím, že jste se nepřepsali.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "wrongRecoveryKey": "Jejda... toto nejspíš není správný obnovovací klíč.", + "joinSpace": "Připojit se do prostoru", + "publicSpaces": "Veřejné prostory", + "initAppError": "Při načítání nastala chyba", + "gallery": "Galerie", + "files": "Soubory", + "sessionLostBody": "Vaše relace byla ztracena. Nahlaste, prosím, tuto chybu vývojářům na adrese {url}. Chybová hláška je: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "restoreSessionBody": "Aplikace se pokusí obnovit vaši relaci ze zálohy. Nahlaste, prosím, tuto chybu vývojářům na adrese {url}. Chybová hláška je: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "sendReadReceipts": "Posílat potvrzení o přečtení", + "sendTypingNotificationsDescription": "Ostatní účastníci konverzace uvidí, že píšete novou zprávu.", + "sendReadReceiptsDescription": "Ostatní účastníci konverzace uvidí, že jste si přečetl/a jejich zprávu.", + "formattedMessages": "Formátované zprávy", + "formattedMessagesDescription": "Zobrazovat formátovaný obsah zpráv, jako například tučný text pomocí markdownu.", + "verifyOtherUser": "🔐 Ověřit jiného uživatele", + "verifyOtherUserDescription": "Když ověříte jiného uživatele, můžete si být jistí, že víte, s kým si píšete. 💪\n\nJakmile začnete s ověřením, vy a druhý uživatel uvidíte v aplikaci vyskakovací okno. V něm uvidíte sérii emodži nebo čísel, které musíte společně porovnat.\n\nNejjednodušší je setkat se osobně nebo si udělat videohovor. 👭", + "verifyOtherDevice": "🔐 Ověřit jiné zařízení", + "verifyOtherDeviceDescription": "Když ověříte jiné zařízení, tato zařízení si mohou vyměnit klíče, čímž zvýšíte vaše zabezpečení. 💪 Jakmile začnete s ověřením, v aplikaci na obou zařízeních se objeví vyskakovací okno. V něm uvidíte sérii emodži nebo čísel, které musíte na zařízeních porovnat mezi sebou. Než začnete s ověřováním, je fajn mít obě zařízení po ruce. 🤳", + "acceptedKeyVerification": "{sender} přijal/a ověření klíče", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "canceledKeyVerification": "{sender} zrušil ověření klíče", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "completedKeyVerification": "{sender} dokončil ověření klíče", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "{sender} je připraven/a na ověření klíče", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "requestedKeyVerification": "{sender} požádal/a o ověření klíče", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "{sender} začal/a s ověřením klíče", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "oneOfYourDevicesIsNotVerified": "Jedno z vašich zařízení není ověřeno", + "continueText": "Pokračovat", + "setWallpaper": "Nastavit tapetu", + "manageAccount": "Spravovat účet", + "noContactInformationProvided": "Server neposkytl žádné platné kontaktní informace", + "contactServerAdmin": "Kontaktovat administrátora serveru", + "supportPage": "Podpora", + "serverInformation": "Informace o serveru:", + "name": "Název", + "version": "Verze", + "website": "Webová stránka", + "compress": "Komprimovat", + "boldText": "Tučný text", + "italicText": "Kurzíva", + "strikeThrough": "Přeškrtnutý text", + "pleaseFillOut": "Prosím vyplňte", + "invalidUrl": "Neplatná URL adresa", + "addLink": "Přidat odkaz", + "unableToJoinChat": "Nepodařilo se připojit ke konverzaci. Je možné, že druhá strana ji už uzavřela.", + "previous": "Předchozí", + "otherPartyNotLoggedIn": "Druhá strana aktuálně není přihlášená, takže nemůže přijímat zprávy!", + "appWantsToUseForLogin": "Použít '{server}' k přihlášení", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "appWantsToUseForLoginDescription": "Pokračováním povolíte aplikaci a webové stránce sdílet mezi sebou informace o vás.", + "open": "Otevřít", + "waitingForServer": "Čekám na server...", + "newChatRequest": "📩 Nová žádost o konverzaci", + "generalNotificationSettings": "Obecné nastavení oznámení", + "roomNotificationSettings": "Nastavení oznámení pro místnost", + "userSpecificNotificationSettings": "Nastavení oznámení pro uživatele", + "otherNotificationSettings": "Ostatní nastavení oznámení", + "notificationRuleContainsUserName": "Obsahuje uživatelské jméno", + "notificationRuleContainsUserNameDescription": "Pošle uživateli oznámení, když zpráva obsahuje jeho uživatelské jméno.", + "notificationRuleMaster": "Ztlumit veškerá oznámení", + "notificationRuleMasterDescription": "Přepíše veškerá ostatní pravidla a zakáže všechna oznámení.", + "notificationRuleSuppressNotices": "Ztlumit automatizované zprávy", + "notificationRuleSuppressNoticesDescription": "Ztlumí oznámení od automatizovaných klientů, jako jsou např. roboti.", + "notificationRuleInviteForMe": "Pozvánka adresovaná mně", + "notificationRuleInviteForMeDescription": "Pošle uživateli oznámení, když je pozván do místnosti.", + "notificationRuleMemberEvent": "Události týkající se členství", + "notificationRuleMemberEventDescription": "Ztlumí oznámení týkající se veškerých událostí souvisejících s členstvím.", + "notificationRuleIsUserMention": "Zmínka uživatele", + "notificationRuleIsUserMentionDescription": "Pošle uživateli oznámení, když je někdo přímo zmíní ve zprávě.", + "notificationRuleContainsDisplayName": "Obsahuje přezdívku", + "notificationRuleContainsDisplayNameDescription": "Pošle uživateli oznámení, když zpráva obsahuje jejich přezdívku.", + "notificationRuleIsRoomMention": "Označení místnosti", + "notificationRuleIsRoomMentionDescription": "Pošle uživateli oznámení, když je označena celá místnost.", + "notificationRuleRoomnotif": "Označení místnosti", + "notificationRuleRoomnotifDescription": "Pošle uživateli oznámení, když zpráva obsahuje '@room'.", + "notificationRuleTombstone": "Náhrobek", + "notificationRuleTombstoneDescription": "Pošle uživateli oznámení ohledně zpráv o deaktivaci místnosti.", + "notificationRuleReaction": "Reakce", + "notificationRuleReactionDescription": "Ztlumí oznámení o reakcích.", + "notificationRuleSuppressEdits": "Ztlumit úpravy", + "notificationRuleSuppressEditsDescription": "Ztlumí notifikace týkající se upravených zpráv.", + "notificationRuleCall": "Hovor", + "notificationRuleCallDescription": "Pošle uživateli oznámení ohledně hovorů.", + "sentVoiceMessage": "🎙️ {duration} - Hlasová zpráva od {sender}", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "deletePushRuleCanNotBeUndone": "Odstranění tohoto nastavení oznámení nelze vzít zpět.", + "more": "Více", + "shareKeysWith": "Sdílet klíče s...", + "shareKeysWithDescription": "Která zařízení mají být označena jako důvěryhodná, aby mohla současně číst vaše zprávy v šifrovaných konverzacích?", + "allDevices": "Všechna zařízení", + "crossVerifiedDevicesIfEnabled": "Křížově ověřená zařízení, pokud je povoleno", + "crossVerifiedDevices": "Křížově ověřená zařízení", + "verifiedDevicesOnly": "Pouze ověřená zařízení", + "recordAVideo": "Nahrát video", + "optionalMessage": "(Volitelné) zpráva...", + "notSupportedOnThisDevice": "Není na tomto zařízení podporováno", + "approve": "Schválit", + "youHaveKnocked": "Zaklepali jste", + "pleaseWaitUntilInvited": "Nyní musíte počkat, až vás nějaký člen této místnosti pozve dovnitř.", + "commandHint_logout": "Odhlásit se z aktuálního zařízení", + "commandHint_logoutall": "Odhlásit se ze všech aktivních zařízení", + "displayNavigationRail": "Zobrazit navigační lištu na mobilu", + "customReaction": "Vlastní reakce", + "moreEvents": "Více událostí", + "declineInvitation": "Odmítnout pozvánku", + "noMessagesYet": "Zatím tu nejsou žádné zprávy", + "longPressToRecordVoiceMessage": "Podržte pro nahrání hlasové zprávy.", + "pause": "Pozastavit", + "resume": "Pokračovat", + "removeFromSpaceDescription": "Tato konverzace bude odstraněna z tohoto prostoru, stále však bude dostupná ve vašem seznamu konverzací.", + "countChats": "{chats} konverzací", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "spaceMemberOf": "Členové prostoru {spaces}", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "Členové prostoru {spaces} mohou zaklepat", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "startPoll": "Spustit hlasování", + "endPoll": "Ukončit hlasování", + "answersVisible": "Odpovědi budou viditelné", + "pollQuestion": "Předmět hlasování", + "answerOption": "Možnost", + "addAnswerOption": "Přidat možnost", + "allowMultipleAnswers": "Povolit více odpovědí", + "pollHasBeenEnded": "Hlasování skončilo", + "answersWillBeVisibleWhenPollHasEnded": "Odpovědi budou viditelné jakmile hlasování skončí", + "replyInThread": "Odpovědět ve vlákně", + "thread": "Vlákno", + "backToMainChat": "Zpátky do hlavního chatu", + "saveChanges": "Uložit změny", + "createSticker": "Vytvořit nálepku nebo emodži", + "useAsSticker": "Použít jako nálepku", + "useAsEmoji": "Použít jako emodži", + "stickerPackNameAlreadyExists": "Balíček nálepek s tímto názvem již existuje", + "newStickerPack": "Nový balíček nálepek", + "stickerPackName": "Název balíčku nálepek", + "attribution": "Zdroj", + "skipChatBackup": "Přeskočit zálohu konverzací", + "skipChatBackupWarning": "Jste si jistí? Pokud nepovolíte zálohu konverzací, můžete ztratit přístup ke svým zprávám v případě změny zařízení.", + "noMoreResultsFound": "Žádné další výsledky nenalezeny", + "chatSearchedUntil": "Konverzace prohledána do {time}", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "federationBaseUrl": "Základní URL pro federování", + "baseUrl": "Základní URL", + "versionWithNumber": "Verze: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "Záznamy", + "advancedConfigs": "Pokročilá nastavení", + "signIn": "Přihlásit se", + "createNewAccount": "Vytvořit nový účet", + "signUpGreeting": "FluffyChat je decentralizovaný! Vyberte server, kde si chcete vytvořit účet, a jdeme na věc!", + "signInGreeting": "Již máte účet na Matrixu? Vítejte zpět! Vyberte svůj domácí server a přihlaste se.", + "theProcessWasCanceled": "Proces byl zrušen.", + "sendImages": "Poslat {count} obrazků", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "commandHint_roomupgrade": "Aktualizovat místnost na danou verzi", + "@goToSpace": { + "type": "String", + "space": {} + }, + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + } +} \ No newline at end of file diff --git a/lib/l10n/intl_da.arb b/lib/l10n/intl_da.arb new file mode 100644 index 0000000..09d115e --- /dev/null +++ b/lib/l10n/intl_da.arb @@ -0,0 +1,1861 @@ +{ + "repeatPassword": "Gentag password", + "notAnImage": "Ikke en billedfil.", + "remove": "Fjern", + "@remove": { + "type": "String", + "placeholders": {} + }, + "importNow": "Importer nu", + "importEmojis": "Importer emojis", + "importFromZipFile": "Importer fra .zip fil", + "exportEmotePack": "Eksportér Emote-pakke som .zip-fil", + "replace": "Erstat", + "about": "Om", + "aboutHomeserver": "Om {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "accept": "Acceptér", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} accepterede invitationen", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Konto", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} aktiverede end-to-end kryptering", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "Tilføj e-mail", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "confirmMatrixId": "Bekræft din Matrix-ID for at slette din konto.", + "supposedMxid": "Den burde være {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "addToSpace": "Tilføj til gruppe", + "admin": "Admin", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "alias", + "@alias": { + "type": "String", + "placeholders": {} + }, + "commandHint_roomupgrade": "Opgrader dette rum til den givne rumversion", + "commandHint_googly": "Send googly-eyes", + "commandHint_cuddle": "Send et varmt smil", + "commandHint_hug": "Send et kram", + "googlyEyesContent": "{senderName} sender dig googly-eyes", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "cuddleContent": "{senderName} sender dig et varmt smil", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "hugContent": "{senderName} krammer dig", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "answeredTheCall": "{senderName} svarer på dit opkald", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Enhver kan deltage", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@close": { + "type": "String", + "placeholders": {} + }, + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "@reply": { + "type": "String", + "placeholders": {} + }, + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@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": {} + }, + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@invited": { + "type": "String", + "placeholders": {} + }, + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "@warning": { + "type": "String", + "placeholders": {} + }, + "@password": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@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": {} + }, + "@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": {} + }, + "@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": {} + }, + "@reason": { + "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" + } + } + }, + "@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" + } + } + }, + "@edit": { + "type": "String", + "placeholders": {} + }, + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "@passwordHasBeenChanged": { + "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" + } + } + }, + "@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" + } + } + }, + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "@help": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@delete": { + "type": "String", + "placeholders": {} + }, + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@moderator": { + "type": "String", + "placeholders": {} + }, + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "@ok": { + "type": "String", + "placeholders": {} + }, + "@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" + }, + "@commandInvalid": { + "type": "String" + }, + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@newChat": { + "type": "String", + "placeholders": {} + }, + "@notifications": { + "type": "String", + "placeholders": {} + }, + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "@emoteSettings": { + "type": "String", + "placeholders": {} + }, + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "@mention": { + "type": "String", + "placeholders": {} + }, + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "@withTheseAddressesRecoveryDescription": { + "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": {} + }, + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "@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" + }, + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "@status": { + "type": "String", + "placeholders": {} + }, + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "@sentCallInformations": { + "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" + }, + "@cancel": { + "type": "String", + "placeholders": {} + }, + "@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" + }, + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@search": { + "type": "String", + "placeholders": {} + }, + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@logout": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@messages": { + "type": "String", + "placeholders": {} + }, + "@login": { + "type": "String", + "placeholders": {} + }, + "@waitingPartnerNumbers": { + "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": {} + }, + "@settings": { + "type": "String", + "placeholders": {} + }, + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@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" + } + } + }, + "@privacy": { + "type": "String", + "placeholders": {} + }, + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + } +} \ No newline at end of file diff --git a/lib/l10n/intl_de.arb b/lib/l10n/intl_de.arb new file mode 100644 index 0000000..de6981d --- /dev/null +++ b/lib/l10n/intl_de.arb @@ -0,0 +1,2828 @@ +{ + "@@locale": "de", + "@@last_modified": "2021-08-14 12:41:10.119255", + "about": "Über", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Annehmen", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} hat die Einladung angenommen", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Konto", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} hat Ende-zu-Ende Verschlüsselung aktiviert", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "E-Mail hinzufügen", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "admin": "Admin", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "Alias", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Alle", + "@all": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} hat den Anruf angenommen", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Jeder darf beitreten", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "Anwendungssperre", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "archive": "Archiv", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Dürfen Gäste teilnehmen?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Bist du sicher?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Willst du dich wirklich abmelden?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Bitte gib, um die andere Person signieren zu können, dein Sicherheitsschlüssel oder Wiederherstellungsschlüssel ein.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Diese Bestätigungsanfrage von {username} annehmen?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "badServerLoginTypesException": "Der Homeserver unterstützt diese Anmelde-Typen:\n{serverVersions}\nAber diese App unterstützt nur:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "banFromChat": "Aus dem Chat verbannen", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Verbannt", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} hat {targetName} verbannt", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Blockiere Gerät", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "Blockiert", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "Abbrechen", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "Die URI {uri} kann nicht geöffnet werden", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changeDeviceName": "Gerätenamen ändern", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} hat den Chat-Avatar geändert", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} hat die Chat-Berechtigungen geändert", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} hat den Spitznamen geändert in: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} hat die Zugangsregeln für Gäste geändert", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} hat die Zugangsregeln für Gäste geändert zu: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} hat die Sichtbarkeit des Chat-Verlaufs geändert", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} hat die Sichtbarkeit des Chat-Verlaufs geändert zu: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} hat die Zugangsregeln geändert", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} hat die Zugangsregeln geändert zu: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} hat das Profilbild geändert", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} hat die Raum-Aliasse geändert", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} hat den Einladungslink geändert", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Passwort ändern", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Anderen Homeserver verwenden", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Ändere Deinen Style", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Gruppenname ändern", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Deinen Avatar ändern", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "Die Verschlüsselung wurde korrumpiert", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Chat", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Chat-Backup", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Chatdetails", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Chats", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Wähle ein sicheres Passwort", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Archiv leeren", + "close": "Schließen", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "Banne ausgewählten Benutzer aus diesen Raum", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_html": "Sende HTML-formatierten Text", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Lade den Benutzer in diesen Raum ein", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "Betritt den ausgewählten Raum", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "Entferne den übergebenen Benutzer aus diesem Raum", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "Diesen Raum verlassen", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "Beschreibe dich selbst", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_myroomavatar": "Setze dein Profilbild nur für diesen Raum (MXC-Uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "Setze deinen Anzeigenamen nur für diesen Raum", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "Setze den übergeben Powerlevel des Benutzers (Standard: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "Sende unformatierten Text", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "Sende die Antwort als Reaktion", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_send": "Text senden", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_unban": "Hebe die Verbannung dieses Benutzers in diesem Raum auf", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandInvalid": "Befehl ungültig", + "@commandInvalid": { + "type": "String" + }, + "commandMissing": "{command} ist kein Befehl.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "compareEmojiMatch": "Bitte vergleiche die Emojis", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Bitte vergleiche die Zahlen", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Chat konfigurieren", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Kontakt wurde in die Gruppe eingeladen", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "Der Inhalt wurde den Serveradministratoren gemeldet", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Wurde in die Zwischenablage kopiert", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Kopieren", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "In Zwischenablage kopieren", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Nachricht konnte nicht entschlüsselt werden: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count, plural, =1{1 Teilnehmer} other{{count} Teilnehmer}}", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Erstellen", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} hat den Chat erstellt", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "createNewSpace": "Neuer Space", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "Jetzt gerade online", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Dunkel", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Dies deaktiviert dein Konto. Es kann nicht rückgängig gemacht werden! Bist du sicher?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Standardberechtigungsstufe für neue Benutzer", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "Löschen", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Konto löschen", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Nachricht löschen", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Geräte", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Direkte Chats", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Anzeigename wurde geändert", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Datei herunterladen", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "Bearbeiten", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Blockierte Server einstellen", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Anzeigename ändern", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Raum-Aliase bearbeiten", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Raumavatar bearbeiten", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Emoticon existiert bereits!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Ungültiges Emoticon-Kürzel!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Emoticon-Kürzel", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Leerer Chat", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Aktiviere Emoticon-Bündel global", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Verschlüsselung anschalten", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Du wirst die Verschlüsselung nicht mehr ausstellen können. Bist Du sicher?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Verschlüsselt", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Verschlüsselung", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Verschlüsselung ist nicht aktiviert", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} hat den Anruf beendet", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Gib eine E-Mail-Adresse ein", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Fehler beim Suchen des Standortes: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "fontSize": "Schriftgröße", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "Weiterleiten", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Ab dem Beitritt", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Ab der Einladung", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Gruppe", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "Öffentliche Gruppe", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "Gruppen", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Gruppe mit {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Gäste sind verboten", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Gäste dürfen beitreten", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} hat die Einladung für {targetName} zurückgezogen", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Hilfe", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Unbekannte Ereignisse ausblenden", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignore": "Ignorieren", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Ignorierte Personen", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Ich habe den Link angeklickt", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Falsches Passwort oder Wiederherstellungsschlüssel", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Kontakt einladen", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Kontakt in die Gruppe {groupName} einladen", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "Eingeladen", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username} hat {targetName} eingeladen", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Nur eingeladene Mitglieder", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} hat Dich zu FluffyChat eingeladen. \n1. Gehe auf fluffychat.im und installiere die App \n2. Melde Dich in der App an \n3. Öffne den Einladungslink: \n {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "schreibt …", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} ist dem Chat beigetreten", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Raum beitreten", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username} hat {targetName} hinausgeworfen", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} hat {targetName} hinausgeworfen und verbannt", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Aus dem Chat hinauswerfen", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Zuletzt aktiv: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Verlassen", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Hat den Chat verlassen", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Hell", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "{count} weitere Mitglieder laden", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "Lade … Bitte warten.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Mehr laden …", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "Standort ist deaktiviert. Bitte aktivieren, um den Standort teilen zu können.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "Standort-Berechtigung wurde abgelehnt. Bitte akzeptieren, um den Standort teilen zu können.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "login": "Anmelden", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Bei {homeserver} anmelden", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Abmelden", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Erwähnen", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "Nachrichten", + "@messages": { + "type": "String", + "placeholders": {} + }, + "moderator": "Moderator", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Stummschalten", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Neuer Chat", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Neue Nachricht in FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Neue Verifikationsanfrage!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "Weiter", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "Nein", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Keine Verbindung zum Server", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Keine Emoticons gefunden. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Du kannst die Verschlüsselung erst aktivieren, sobald dieser Raum nicht mehr öffentlich zugänglich ist.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Firebase Cloud Messaging scheint auf deinem Gerät nicht verfügbar zu sein. Um trotzdem Push-Benachrichtigungen zu erhalten, empfehlen wir die Installation von ntfy. Mit ntfy oder einem anderen Unified-Push-Anbieter kannst du Push-Benachrichtigungen datensicher empfangen. Du kannst ntfy im PlayStore oder bei F-Droid herunterladen.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "Du hast bisher keine Möglichkeit hinzugefügt, um dein Passwort zurückzusetzen.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Keine Berechtigung", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Keine Räume gefunden …", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Benachrichtigungen", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} Mitglieder schreiben …", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "obtainingLocation": "Standort wird ermittelt …", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "ok": "Ok", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Online-Schlüsselsicherung ist aktiviert", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Hoppla! Leider ist beim Einrichten der Push-Benachrichtigungen ein Fehler aufgetreten.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Hoppla, da ist etwas schiefgelaufen…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "App öffnen, um Nachrichten zu lesen", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Kamera öffnen", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "openInMaps": "In Maps öffnen", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "or": "Oder", + "@or": { + "type": "String", + "placeholders": {} + }, + "participant": "Mitglied", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "Passwort oder Wiederherstellungsschlüssel", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Passwort", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Passwort vergessen", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Passwort wurde geändert", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Passwort wiederherstellen", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Anpinnen", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Bitte einen Code festlegen", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Bitte auf den Link in der E-Mail klicken und dann fortfahren.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Bitte dein Passwort eingeben", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Bitte gib deine Pin ein", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Bitte deinen Benutzernamen eingeben", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Bitte folge den Anweisungen auf der Website und tippe auf Weiter.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "Privatsphäre", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Öffentliche Räume", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "Grund", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} hat ein Ereignis gelöscht", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactMessage": "Nachricht löschen", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reject": "Ablehnen", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} hat die Einladung abgelehnt", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Entfernen", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Alle anderen Geräte entfernen", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Verbannung aufheben", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Deinen Avatar löschen", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Raum mit neuer Version ersetzen", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "Antworten", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Nachricht melden", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Der Raum wurde ge-upgraded", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Raumversion", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Datei speichern", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "search": "Suchen", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "Sicherheit", + "@security": { + "type": "String", + "placeholders": {} + }, + "send": "Senden", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Nachricht schreiben", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Sende als Text", + "@sendAsText": { + "type": "String" + }, + "sendAudio": "Sende Audiodatei", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Datei senden", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Bild senden", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Nachrichten senden", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Sende Video", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username} hat eine Datei gesendet", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username} hat eine Audio-Datei gesendet", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username} hat ein Bild gesendet", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} hat einen Sticker gesendet", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} hat ein Video gesendet", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} hat Anrufinformationen geschickt", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setAsCanonicalAlias": "Als Haupt-Alias festlegen", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "setStatus": "Status ändern", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Einstellungen", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Teilen", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} hat den Standort geteilt", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "shareLocation": "Standort teilen", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "skip": "Überspringen", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Quellcode", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "Space ist öffentlich", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Space-Name", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} hat einen Anruf getätigt", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "status": "Status", + "@status": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Wie geht es dir heute?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Absenden", + "@submit": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Synchronisiere... Bitte warten.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "System", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Stimmen nicht überein", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Stimmen überein", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Zu viele Anfragen. Bitte versuche es später noch einmal!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Noch mal versuchen zu senden", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} hat die Verbannung von {targetName} aufgehoben", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Geräteblockierung aufheben", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Unbekanntes Gerät", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Unbekannter Verschlüsselungsalgorithmus", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Unbekanntes Ereignis '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Stumm aus", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Nicht mehr anpinnen", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} und {count} andere schreiben …", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} und {username2} schreiben …", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} schreibt …", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪 {username} hat den Chat verlassen", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} hat ein {type}-Ereignis gesendet", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verified": "Verifiziert", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Starte Verifikation", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Erfolgreich verifiziert!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Anderes Konto wird verifiziert", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Sichtbarkeit des Chat-Verlaufs", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Sichtbar für alle Mitglieder", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Für jeden sichtbar", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Sprachnachricht", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Warte darauf, dass der Partner die Anfrage annimmt …", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Warte darauf, dass der Partner die Emoji annimmt …", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Warten, dass der Partner die Zahlen annimmt …", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Achtung!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Wir haben dir eine E-Mail gesendet", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Wer kann welche Aktion ausführen", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Wer darf der Gruppe beitreten", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Warum willst du dies melden?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Mit diesen Adressen kannst du dein Passwort wiederherstellen, wenn du es vergessen hast.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Schreibe eine Nachricht …", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Ja", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Du", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Du bist kein Mitglied mehr in diesem Chat", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Du wurdest aus dem Chat verbannt", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Dein öffentlicher Schlüssel", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} ist kein Matrix-Server, stattdessen {server2} benutzen?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "scanQrCode": "QR-Code scannen", + "autoplayImages": "Animierte Sticker und Emotes automatisch abspielen", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "addToSpace": "Zum Space hinzufügen", + "bundleName": "Name des Bundles", + "removeFromBundle": "Von diesem Bundle entfernen", + "addToBundle": "Zu einem Bundle hinzufügen", + "editBundlesForAccount": "Bundles für dieses Konto bearbeiten", + "addAccount": "Konto hinzufügen", + "oneClientLoggedOut": "Einer deiner Clients wurde abgemeldet", + "sendOnEnter": "Senden mit Enter", + "link": "Link", + "unverified": "Unverifiziert", + "messageInfo": "Nachrichten-Info", + "time": "Zeit", + "sender": "Absender:in", + "openGallery": "Galerie öffnen", + "removeFromSpace": "Aus dem Space entfernen", + "repeatPassword": "Passwort wiederholen", + "commandHint_dm": "Starte einen direkten Chat\nBenutze --no-encryption, um die Verschlüsselung auszuschalten", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_discardsession": "Sitzung verwerfen", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_clearcache": "Zwischenspeicher löschen", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_create": "Erstelle ein leeren Gruppenchat\nBenutze --no-encryption, um die Verschlüsselung auszuschalten", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "pinMessage": "An Raum anheften", + "emojis": "Emojis", + "unsupportedAndroidVersion": "Nicht unterstützte Android-Version", + "unsupportedAndroidVersionLong": "Diese Funktion erfordert eine neuere Android-Version. Bitte suche nach Updates oder prüfe die Lineage-OS-Unterstützung.", + "reactedWith": "{sender} reagierte mit {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "markAsRead": "Als gelesen markiert", + "reportUser": "Benutzer melden", + "confirmEventUnpin": "Möchtest du das Ereignis wirklich dauerhaft lösen?", + "youKicked": "👞 Du hast {user} rausgeworfen", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKickedAndBanned": "🙅 Du hast {user} rausgeworfen und verbannt", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "Du hast die Verbannung von {user} rückgängig gemacht", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youRejectedTheInvitation": "Du hast die Einladung abgelehnt", + "youJoinedTheChat": "Du bist dem Chat beigetreten", + "youAcceptedTheInvitation": "👍 Du hast die Einladung angenommen", + "youBannedUser": "Du hast den {user} verbannt", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youHaveWithdrawnTheInvitationFor": "Du hast die Einladung für {user} zurückgezogen", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 Du wurdest von {user} eingeladen", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 Du hast {user} eingeladen", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "user": "Benutzer", + "custom": "Benutzerdefiniert", + "storeInAndroidKeystore": "Im Android KeyStore speichern", + "storeSecurlyOnThisDevice": "Auf diesem Gerät sicher speichern", + "dehydrate": "Sitzung exportieren und Gerät löschen", + "dehydrateWarning": "Diese Aktion kann nicht rückgängig gemacht werden. Stelle sicher, dass du die Sicherungsdatei sicher aufbewahrst.", + "hydrate": "Aus Sicherungsdatei wiederherstellen", + "countFiles": "{count} Dateien", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "users": "Benutzer", + "storeInAppleKeyChain": "Im Apple KeyChain speichern", + "confirmMatrixId": "Bitte bestätigen deine Matrix-ID, um dein Konto zu löschen.", + "supposedMxid": "das sollte sein {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "commandHint_markasdm": "Als Direktnachrichtenraum für die angegebene Matrix-ID markieren", + "commandHint_markasgroup": "Als Gruppe markieren", + "doNotShowAgain": "Nicht mehr anzeigen", + "noKeyForThisMessage": "Dies kann passieren, wenn die Nachricht gesendet wurde, bevor du dich auf diesem Gerät bei deinem Konto angemeldet hast.\n\nEs ist auch möglich, dass der Absender dein Gerät blockiert hat oder etwas mit der Internetverbindung schief gelaufen ist.\n\nKannst du die Nachricht in einer anderen Sitzung lesen? Dann kannst du die Nachricht davon übertragen! Gehe zu den Einstellungen > Geräte und vergewissere dich, dass sich deine Geräte gegenseitig verifiziert haben. Wenn du den Raum das nächste Mal öffnest und beide Sitzungen im Vordergrund sind, werden die Schlüssel automatisch übertragen.\n\nDu möchtest die Schlüssel beim Abmelden oder Gerätewechsel nicht verlieren? Stelle sicher, dass du das Chat-Backup in den Einstellungen aktiviert hast.", + "whyIsThisMessageEncrypted": "Warum ist diese Nachricht nicht lesbar?", + "newSpace": "Neuer Space", + "newSpaceDescription": "Mit Spaces kannst du deine Chats zusammenfassen und private oder öffentliche Communities aufbauen.", + "wasDirectChatDisplayName": "Leerer Chat (war {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "encryptThisChat": "Diesen Chat verschlüsseln", + "googlyEyesContent": "{senderName} hat dir Googly Eyes gesendet", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_cuddle": "Umarmung senden", + "commandHint_hug": "Umarmung senden", + "cuddleContent": "{senderName} knuddelt dich", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "sorryThatsNotPossible": "Sorry ... das ist nicht möglich", + "hugContent": "{senderName} umarmt dich", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_googly": "Glupschaugen senden", + "disableEncryptionWarning": "Aus Sicherheitsgründen kannst du die Verschlüsselung in einem Chat nicht deaktivieren, wo sie zuvor aktiviert wurde.", + "reopenChat": "Chat wieder eröffnen", + "noBackupWarning": "Achtung! Ohne Aktivierung des Chat-Backups verlierst du den Zugriff auf deine verschlüsselten Nachrichten. Vor dem Ausloggen wird dringend empfohlen, das Chat-Backup zu aktivieren.", + "noOtherDevicesFound": "Keine anderen Geräte anwesend", + "fileHasBeenSavedAt": "Datei wurde gespeichert unter {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "jumpToLastReadMessage": "Zur letzten ungelesenen Nachricht", + "readUpToHere": "Bis hier gelesen", + "jump": "Springen", + "openLinkInBrowser": "Link im Browser öffnen", + "reportErrorDescription": "😭 Oh nein. Etwas ist schief gelaufen. Wenn du möchtest, kannst du den Bug bei den Entwicklern melden.", + "report": "Melden", + "importNow": "Jetzt importieren", + "importEmojis": "Emojis importieren", + "importFromZipFile": "Aus zip-Datei importieren", + "exportEmotePack": "Emote-Paket als zip-Datei exportieren", + "notAnImage": "Keine Bilddatei.", + "replace": "Ersetzen", + "sendTypingNotifications": "Tippbenachrichtigungen senden", + "createGroup": "Gruppe erstellen", + "shareInviteLink": "Einladungslink teilen", + "tryAgain": "Neuer Versuch", + "redactMessageDescription": "Die Nachricht wird für alle Teilnehmer dieses Gesprächs gelöscht. Dies kann nicht rückgängig gemacht werden.", + "redactedBy": "Gelöscht von {username}", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactedByBecause": "Gelöscht von {username} weil: \"{reason}\"", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "setColorTheme": "Farbdesign einstellen:", + "invite": "Einladen", + "optionalRedactReason": "(Optional) Grund für die Löschung dieser Nachricht...", + "messagesStyle": "Nachrichten:", + "chatPermissions": "Chatberechtigungen", + "chatDescription": "Chatbeschreibung", + "chatDescriptionHasBeenChanged": "Chatbeschreibung geändert", + "noChatDescriptionYet": "Noch keine Chatbeschreibung vorhanden.", + "invalidServerName": "Ungültiger Servername", + "setChatDescription": "Chatbeschreibung festlegen", + "inviteGroupChat": "📨 Einladungen zum Gruppenchat", + "invalidInput": "Ungültige Eingabe!", + "hasKnocked": "🚪 {user} hat angeklopft", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "wrongPinEntered": "Falsche PIN eingegeben! Bitte in {seconds} Sekunden erneut versuchen ...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "pleaseEnterANumber": "Bitte eine Zahl größer 0 eingeben", + "emoteKeyboardNoRecents": "Kürzlich verwendete Emotes werden hier angezeigt ...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "banUserDescription": "Der Benutzer wird aus dem Chat gebannt und kann den Chat erst wieder betreten, wenn die Verbannung aufgehoben wird.", + "removeDevicesDescription": "Du wirst von diesem Gerät abgemeldet und kannst dann dort keine Nachrichten mehr empfangen.", + "unbanUserDescription": "Der Benutzer kann den Chat dann wieder betreten, wenn er es versucht.", + "pushNotificationsNotAvailable": "Push-Benachrichtigungen nicht verfügbar", + "makeAdminDescription": "Sobald du diesen Benutzer zum Administrator gemacht hast, kannst du das möglicherweise nicht mehr rückgängig machen, da er dann über dieselben Berechtigungen wie du verfügt.", + "archiveRoomDescription": "Der Chat wird in das Archiv verschoben. Andere Benutzer können sehen, dass du den Chat verlassen hast.", + "learnMore": "Erfahre mehr", + "roomUpgradeDescription": "Der Chat wird dann mit der neuen Raumversion neu erstellt. Alle Teilnehmer werden benachrichtigt, dass sie zum neuen Chat wechseln müssen. Mehr über Raumversionen erfährst du unter https://spec.matrix.org/latest/rooms/", + "kickUserDescription": "Der Benutzer wird aus dem Chat geworfen, aber nicht gebannt. In öffentlichen Chats kann der Benutzer jederzeit wieder beitreten.", + "blockListDescription": "Du kannst Benutzer blockieren, die dich stören. Von Benutzern auf deiner persönlichen Blocklierliste kannst du keine Nachrichten oder Raumeinladungen mehr erhalten.", + "createGroupAndInviteUsers": "Gruppe erstellen und Nutzer einladen", + "blockedUsers": "Blockierte Benutzer", + "groupCanBeFoundViaSearch": "Gruppe kann über die Suche gefunden werden", + "noUsersFoundWithQuery": "Leider konnte mit \"{query}\" kein Benutzer gefunden werden. Bitte schau nach, ob dir ein Tippfehler unterlaufen ist.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "block": "Blockieren", + "yourGlobalUserIdIs": "Deine globale Benutzer-ID ist: ", + "commandHint_sendraw": "Rohes JSON senden", + "wrongRecoveryKey": "Entschuldigung ... das scheint nicht der richtige Wiederherstellungsschlüssel zu sein.", + "blockUsername": "Blockiere Benutzername", + "groupName": "Gruppenname", + "searchChatsRooms": "Suche nach #Chats, @Nutzer ...", + "databaseMigrationTitle": "Datenbank wird optimiert", + "databaseMigrationBody": "Bitte warten. Dies kann einen Moment dauern.", + "thisDevice": "Dieses Gerät:", + "publicSpaces": "Öffentliche Spaces", + "passwordIsWrong": "Dein eingegebenes Passwort ist falsch", + "pleaseEnterYourCurrentPassword": "Bitte dein aktuelles Passwort eingeben", + "nothingFound": "Nichts gefunden ...", + "newPassword": "Neues Passwort", + "passwordsDoNotMatch": "Passwörter stimmen nicht überein", + "select": "Auswählen", + "pleaseChooseAStrongPassword": "Bitte wähle ein starkes Passwort", + "addChatOrSubSpace": "Chat oder Sub-Space hinzufügen", + "leaveEmptyToClearStatus": "Leer lassen, um den Status zu löschen.", + "joinSpace": "Space beitreten", + "searchForUsers": "Suche nach @benutzer ...", + "initAppError": "Beim Starten der App ist ein Fehler aufgetreten", + "sessionLostBody": "Die App versucht nun, deine Sitzung aus der Sicherung wiederherzustellen. Bitte melde diesen Fehler an die Entwickler unter {url}. Die Fehlermeldung lautet: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "restoreSessionBody": "Die App versucht nun, deine Sitzung aus der Sicherung wiederherzustellen. Bitte melde diesen Fehler an die Entwickler unter {url}. Die Fehlermeldung lautet: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "sendReadReceipts": "Lesebestätigungen senden", + "formattedMessages": "Formatierte Nachrichten", + "sendTypingNotificationsDescription": "Andere Teilnehmer in einem Chat können sehen, wenn du eine neue Nachricht tippst.", + "formattedMessagesDescription": "Formatierte Nachrichteninhalte wie fettgedruckten Text mit Markdown anzeigen.", + "verifyOtherUser": "🔐 Anderen Benutzer verifizieren", + "sendReadReceiptsDescription": "Andere Teilnehmer in einem Chat können sehen, ob du eine Nachricht gelesen hast.", + "verifyOtherDevice": "🔐 Anderes Gerät verifizieren", + "verifyOtherUserDescription": "Wenn du einen anderen Benutzer verifizierst, kannst du sicher sein, dass du weißt, an wen du wirklich schreibst. 💪\n\nWenn du eine Verifizierung startest, wird dir und dem anderen Nutzer ein Popup in der App angezeigt. Dort siehst du dann eine Reihe von Emojis oder Zahlen, die ihr miteinander vergleichen müsst.\n\nDas geht am besten, wenn man sich trifft oder einen Videoanruf startet. 👭", + "acceptedKeyVerification": "{sender} hat die Schlüsselverifikation akzeptiert", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "canceledKeyVerification": "{sender} hat die Schlüsselverifikation abgebrochen", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "completedKeyVerification": "{sender} hat die Schlüsselverifikation abgeschlossen", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "{sender} ist bereit für die Schlüsselverifikation", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "requestedKeyVerification": "{sender} hat eine Schlüsselverifikation angefragt", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "{sender} hat die Schlüsselverifikation gestartet", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "verifyOtherDeviceDescription": "Wenn du ein anderes Gerät verifizierst, können diese Geräte Schlüssel austauschen, was die Sicherheit insgesamt erhöht. 💪Sobald du eine Verifizierung startest, erscheint ein Pop-up in der App auf beiden Geräten. Dort siehst du dann eine Reihe von Emojis oder Zahlen, die du miteinander vergleichen musst. Am besten hältst du beide Geräte bereit, bevor du die Verifizierung startest. 🤳", + "incomingMessages": "Eingehende Nachrichten", + "commandHint_unignore": "Angegebene Matrix-ID nicht mehr ignorieren", + "commandHint_ignore": "Angegebene Matrix-ID ignorieren", + "noDatabaseEncryption": "Datenbankverschlüsselung wird auf dieser Plattform nicht unterstützt", + "stickers": "Sticker", + "discover": "Entdecken", + "unreadChatsInApp": "{appname}: {unread} ungelesene Chats", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "customEmojisAndStickersBody": "Eigene Emojis oder Sticker zur Nutzung im Chat hinzufügen oder teilen.", + "globalChatId": "Globale Chat-ID", + "accessAndVisibility": "Zugang und Sichtbarkeit", + "accessAndVisibilityDescription": "Wer darf dem Chat beitreten und wie kann der Chat gefunden werden.", + "chatCanBeDiscoveredViaSearchOnServer": "Chat kann über die Suche auf {server} gefunden werden", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "appLockDescription": "App mit einer PIN sperren, wenn sie nicht verwendet wird", + "calls": "Anrufe", + "customEmojisAndStickers": "Eigene Emojis und Sticker", + "hideRedactedMessages": "Geschwärzte Nachrichten verstecken", + "hideRedactedMessagesBody": "Wenn jemand eine Nachricht schwärzt/löscht, dann wird diese Nachricht im Chat nicht mehr sichtbar sein.", + "hideInvalidOrUnknownMessageFormats": "Ungültige und unbekannte Nachrichten-Formate ausblenden", + "passwordRecoverySettings": "Passwort-Wiederherstellungs-Einstellungen", + "knock": "Anklopfen", + "knocking": "Klopft", + "thereAreCountUsersBlocked": "Im Augenblick werden {count} Benutzer blockiert.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "usersMustKnock": "Benutzer müssen anklopfen", + "noOneCanJoin": "Niemand kann beitreten", + "createNewAddress": "Neue Adresse erstellen", + "publicChatAddresses": "Öffentliche Chat-Adressen", + "gallery": "Galerie", + "files": "Dateien", + "searchIn": "In Chat \"{chat}\" suchen ...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "searchMore": "Weiter suchen ...", + "unread": "Ungelesen", + "noMoreChatsFound": "Keine weiteren Chats gefunden ...", + "space": "Space", + "goToSpace": "Geh zum Space: {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "markAsUnread": "Als ungelesen markieren", + "swipeRightToLeftToReply": "Wische von rechts nach links zum Antworten", + "changeGeneralChatSettings": "Allgemeine Chat-Einstellungen ändern", + "userLevel": "{level} - Benutzer", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "moderatorLevel": "{level} - Moderator", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeTheChatPermissions": "Ändere die Chat-Berechtigungen", + "changeTheVisibilityOfChatHistory": "Wechsele die Sichtbarkeit der Chat-Historie", + "chatPermissionsDescription": "Einstellen, welches Level für bestimmte Aktionen in diesem Chat erforderlich ist. Die Level 0, 50 und 100 stehen üblicherweise für Benutzer, Moderatoren und Admins, aber jede Abstufung ist möglich.", + "adminLevel": "{level} - Administrator", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "inviteOtherUsers": "Lade andere Benutzer in diesen Chat ein", + "changeTheCanonicalRoomAlias": "Ändern der Hauptadresse für den öffentlichen Chat", + "sendRoomNotifications": "Sende eine @room-Benachrichtigung", + "changeTheDescriptionOfTheGroup": "Chat-Beschreibung ändern", + "updateInstalled": "🎉 Update {version} installiert!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "changelog": "Änderungsprotokoll", + "sendCanceled": "Senden abgebrochen", + "noChatsFoundHere": "Hier wurden noch keine Chats gefunden. Starte einen neuen Chat mit jemandem, indem du die Schaltfläche unten verwenden. ⤵️", + "doesNotSeemToBeAValidHomeserver": "Scheint kein kompatibler Homeserver zu sein. Falsche URL?", + "loginWithMatrixId": "Mit Matrix-ID anmelden", + "calculatingFileSize": "Dateigröße wird berechnet ...", + "fileIsTooBigForServer": "Kann nicht gesendet werden! Der Server unterstützt nur Anhänge bis höchstens {max}.", + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "oneOfYourDevicesIsNotVerified": "Eines deiner Geräte ist nicht verifiziert", + "noticeChatBackupDeviceVerification": "Hinweis: Wenn du alle deine Geräte mit dem Chat-Backup verbindest, sind sie automatisch verifiziert.", + "setWallpaper": "Hintergrund ändern", + "opacity": "Deckkraft:", + "blur": "Verwischen:", + "manageAccount": "Konto verwalten", + "continueText": "Fortfahren", + "noContactInformationProvided": "Der Server stellt keine gültigen Kontaktinformationen bereit", + "contactServerAdmin": "Serveradministrator kontaktieren", + "name": "Name", + "version": "Version", + "website": "Website", + "aboutHomeserver": "Über {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "boldText": "Fetter Text", + "invalidUrl": "Ungültige URL", + "addLink": "Link hinzufügen", + "unableToJoinChat": "Chat kann nicht beigetreten werden. Möglicherweise hat die Gegenseite das Gespräch bereits beendet.", + "italicText": "Kursiver Text", + "strikeThrough": "Durchgestrichen", + "pleaseFillOut": "Bitte ausfüllen", + "sendImages": "Sende {count} Bilder", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "contactServerSecurity": "Server-Sicherheit kontaktieren", + "compress": "Komprimieren", + "supportPage": "Support-Seite", + "serverInformation": "Server-Informationen:", + "newChatRequest": "📩 Neue Chat-Anfrage", + "synchronizingPleaseWaitCounter": " Synchronisierung… ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "waitingForServer": "Auf Server warten...", + "previous": "Vorige", + "otherPartyNotLoggedIn": "Der User ist aktuell nicht eingeloggt und kann daher keine Nachrichten empfangen!", + "appWantsToUseForLogin": "Nutze '{server}' um dich einzuloggen", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "appWantsToUseForLoginDescription": "Hiermit erlaubst du der App und der Website, Informationen über dich weiterzugeben.", + "open": "Öffnen", + "notificationRuleContainsUserName": "Enthält Benutzernamen", + "notificationRuleContainsUserNameDescription": "Benachrichtigt den Benutzer, wenn eine Nachricht seinen Benutzernamen enthält.", + "notificationRuleMaster": "Alle Benachrichtigungen stummschalten", + "notificationRuleSuppressNotices": "Automatisierte Nachrichten unterdrücken", + "notificationRuleMasterDescription": "Setzt alle anderen Regeln außer Kraft und deaktiviert alle Benachrichtigungen.", + "generalNotificationSettings": "Allgemeine Benachrichtigungseinstellungen", + "otherNotificationSettings": "Andere Benachrichtigungseinstellungen", + "contentNotificationSettings": "Einstellungen für Inhaltsbenachrichtigungen", + "userSpecificNotificationSettings": "Benutzerspezifische Benachrichtigungseinstellungen", + "roomNotificationSettings": "Einstellungen für Raumbenachrichtigungen", + "notificationRuleSuppressNoticesDescription": "Unterdrückt Benachrichtigungen von automatisierten Clients wie Bots.", + "notificationRuleInviteForMe": "Einladung für mich", + "notificationRuleReaction": "Reaktion", + "notificationRuleReactionDescription": "Unterdrückt Benachrichtigungen für Reaktionen.", + "notificationRuleSuppressEditsDescription": "Unterdrückt Benachrichtigungen für bearbeitete Nachrichten.", + "notificationRuleCall": "Anruf", + "notificationRuleCallDescription": "Benachrichtigt den Benutzer über Anrufe.", + "notificationRuleEncrypted": "Verschlüsselt", + "more": "Mehr", + "notificationRuleSuppressEdits": "Unterdrückt Bearbeitungen", + "notificationRuleRoomServerAclDescription": "Unterdrückt Benachrichtigungen für Raumserver-Zugriffskontrolllisten (ACL).", + "notificationRuleMessage": "Nachricht", + "notificationRuleMessageDescription": "Informiert den Benutzer über allgemeine Nachrichten.", + "notificationRuleJitsi": "Jitsi", + "allDevices": "Alle Geräte", + "enterNewChat": "Neuen Chat betreten", + "shareKeysWith": "Schlüssel teilen mit...", + "shareKeysWithDescription": "Welchen Geräten sollte vertraut werden, damit sie deine Nachrichten in verschlüsselten Chats mitlesen können?", + "verifiedDevicesOnly": "Nur verifizierte Geräte", + "takeAPhoto": "Foto aufnehmen", + "recordAVideo": "Video aufnehmen", + "optionalMessage": "(Optionale) Nachricht...", + "notSupportedOnThisDevice": "Nicht unterstützt auf diesem Gerät", + "notificationRuleEncryptedRoomOneToOneDescription": "Benachrichtigt den Benutzer über Nachrichten in verschlüsselten Eins-zu-Eins-Chats.", + "commandHint_roomupgrade": "Aktualisieren Sie diesen Raum auf die angegebene Raumversion", + "notificationRuleMemberEvent": "Mitgliederveranstaltung", + "notificationRuleInviteForMeDescription": "Benachrichtigt den Benutzer, wenn er in einen Raum eingeladen wird.", + "notificationRuleIsUserMentionDescription": "Benachrichtigt den Benutzer, wenn er in einer Nachricht direkt erwähnt wird.", + "notificationRuleRoomnotifDescription": "Benachrichtigt den Benutzer, wenn eine Nachricht „@room“ enthält.", + "notificationRuleRoomOneToOneDescription": "Benachrichtigt den Benutzer über Nachrichten in Einzelchats.", + "notificationRuleEncryptedDescription": "Benachrichtigt den Benutzer über Nachrichten in verschlüsselten Räumen.", + "notificationRuleJitsiDescription": "Benachrichtigt den Benutzer über Jitsi-Widget-Ereignisse.", + "checkList": "Checkliste", + "countInvited": "{count} invited", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "notificationRuleIsUserMention": "Benutzererwähnung", + "notificationRuleContainsDisplayName": "Enthält den Anzeigenamen", + "notificationRuleContainsDisplayNameDescription": "Benachrichtigt den Benutzer, wenn eine Nachricht seinen Anzeigenamen enthält.", + "notificationRuleIsRoomMention": "Chat-Erwähnung", + "notificationRuleRoomnotif": "Chat-Benachritigung", + "notificationRuleTombstoneDescription": "Benachrichtigt den Benutzer über Nachrichten zur Raumdeaktivierung.", + "notificationRuleEncryptedRoomOneToOne": "Verschlüsselter Einzelchat", + "notificationRuleRoomOneToOne": "Einzelchat", + "notificationRuleServerAclDescription": "Unterdrückt Benachrichtigungen für Server-ACL-Ereignisse.", + "unknownPushRule": "Unbekannte Push-Regel '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "deletePushRuleCanNotBeUndone": "Wenn Sie diese Benachrichtigungseinstellung löschen, kann dies nicht rückgängig gemacht werden.", + "crossVerifiedDevices": "Cross-verifizierte Geräte", + "notificationRuleIsRoomMentionDescription": "Benachrichtigt den Benutzer, wenn ein Raum erwähnt wird.", + "notificationRuleRoomServerAcl": "Raumserver-ACL", + "crossVerifiedDevicesIfEnabled": "Cross-verifizierte Geräte, falls aktiviert", + "notificationRuleServerAcl": "Unterdrücken von Server-ACL-Ereignissen", + "notificationRuleMemberEventDescription": "Unterdrückt Benachrichtigungen zu Mitgliedschaftsereignissen.", + "sentVoiceMessage": "🎙️ {duration} - Sprachnachricht von {sender}", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "approve": "Genehmigen", + "youHaveKnocked": "Du hast geklopft", + "pleaseWaitUntilInvited": "Bitte warte nun, bis dich jemand aus dem Raum auffordert.", + "notificationRuleTombstone": "Tombstone", + "commandHint_logout": "Aktuelles Gerät abmelden", + "commandHint_logoutall": "Alle aktiven Geräte abmelden", + "displayNavigationRail": "Navigationsleiste auf dem Smartphone anzeigen", + "customReaction": "Benutzerdefinierte Reaktion", + "moreEvents": "Weitere Ereignisse", + "declineInvitation": "Einladung ablehnen", + "noMessagesYet": "Noch keine Nachrichten", + "longPressToRecordVoiceMessage": "Lange drücken, um eine Sprachnachricht aufzunehmen.", + "pause": "Pause", + "removeFromSpaceDescription": "Der Chat wird aus dem Space entfernt, erscheint aber weiterhin in Ihrer Chatliste.", + "countChats": "{chats} Chats", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "spaceMemberOf": "Space-Mitglieder von {spaces}", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "Space-Mitglieder von {spaces} kann klopfen", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "resume": "Fortsetzen", + "startPoll": "Umfrage starten", + "endPoll": "Umfrage beenden", + "answersVisible": "Antworten sichtbar", + "pollQuestion": "Frage", + "answerOption": "Antwortmöglichkeit", + "addAnswerOption": "Antwortoption hinzufügen", + "allowMultipleAnswers": "Mehrere Antworten zulassen", + "pollHasBeenEnded": "Umfrage ist beendet", + "countVotes": "{count, plural, =1{Eine Stimme} other{{count} Stimmen}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "answersWillBeVisibleWhenPollHasEnded": "Die Antworten werden nach Ende der Umfrage sichtbar sein", + "replyInThread": "Im Thread antworten", + "countReplies": "{count, plural, =1{Eine Antwort} other{{count} Antworten}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "thread": "Thread", + "backToMainChat": "Zurück zum Hauptchat", + "changedTheChatDescription": "{username} hat die Chatbeschreibung geändert", + "changedTheChatName": "{username} den Chatnamen geändert", + "saveChanges": "Änderungen speichern", + "skipChatBackup": "Chatsicherung überspringen", + "skipChatBackupWarning": "Bist du sicher? Ohne die Chatsicherung zu aktivieren, kannst du den Zugriff auf deine Nachrichten verlieren, wenn du dein Gerät wechselst.", + "createSticker": "Sticker oder Emoji erstellen", + "useAsSticker": "Als Sticker verwenden", + "useAsEmoji": "Als Emoji verwenden", + "stickerPackNameAlreadyExists": "Name des Sticker-Pakets existiert bereits", + "newStickerPack": "Neues Sticker-Paket", + "stickerPackName": "Name des Sticker-Pakets", + "noMoreResultsFound": "Keine weiteren Ergebnisse gefunden", + "chatSearchedUntil": "Chat durchsucht bis {time}", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "attribution": "Attribuierung", + "identityServer": "Identitätsserver:", + "versionWithNumber": "Version: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "Protokolle", + "baseUrl": "Basis-URL", + "advancedConfigs": "Erweiterte Konfigurationen", + "advancedConfigurations": "Erweiterte Konfigurationen", + "signIn": "Anmelden", + "createNewAccount": "Neues Konto erstellen", + "signUpGreeting": "FluffyChat ist dezentral! Wähle einen Server, auf dem du dein Konto erstellen möchtest, und los geht's!", + "signInGreeting": "Du hast bereits ein Konto bei Matrix? Willkommen zurück! Wähle deinen Homeserver aus und melde dich an.", + "theProcessWasCanceled": "Der Vorgang wurde abgebrochen.", + "federationBaseUrl": "Basis-URL der Föderation", + "clientWellKnownInformation": "Bekannte Informationen zum Client:", + "join": "Beitreten", + "searchOrEnterHomeserverAddress": "Homeserver-Adresse suchen oder eingeben", + "matrixId": "Matrix ID", + "reset": "Zurücksetzen", + "setPowerLevel": "Power-Level einstellen", + "makeModerator": "Zum Moderator machen", + "makeAdmin": "Zum Admin machen", + "removeModeratorRights": "Moderatorenrechte entziehen", + "removeAdminRights": "Adminrechte entziehen", + "powerLevel": "Power-Level", + "setPowerLevelDescription": "Die Power-Level legen fest, was ein Mitglied in diesem Raum tun darf und liegen üblicherweise zwischen 0 und 100.", + "owner": "Besitzer", + "mute": "Stumm", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "createNewChat": "Neuen Chat erstellen", + "supportFluffyChat": "FluffyChat unterstützen", + "support": "Unterstützen", + "createNewTag": "Neuen tag erstellen", + "tagName": "Tag-Name", + "addTag": "Tag hinzufügen", + "playSoundOnNotification": "Ton bei Benachrichtigung abspielen", + "unsetLowPriority": "Niedrige Priorität aufheben", + "setLowPriority": "Niedrige Priorität festlegen", + "removeTag": "Tag entfernen", + "appDescription": "Kommuniziere verschlüsselt über das dezentrale [matrix]-Netzwerk, so dass es einfach und zugänglich für jeden ist.", + "discardEdits": "Du hast ungespeicherte Änderungen. Möchtest du deine Änderungen verwerfen?", + "@discardEdits": { + "type": "String", + "placeholders": {} + }, + "showMore": "Mehr anzeigen", + "showLess": "Weniger anzeigen", + "hideRoomsInSpaces": "Räume ausblenden, die sich in einem space befinden", + "possibleByYou": "Diese Veröffentlichung war nur dank eurer Unterstützung möglich. FluffyChat bleibt kostenlos, Open-Source und vollständig von der Community getragen.", + "showThumbnailsInTimeline": "Thumbnails von Bildern und Videos anzeigen", + "appSubtitle": "Sichere [matrix]-Kommunikation", + "interactiveVerification": "Interaktive Verifikation", + "interactiveVerificationDescription": "Wenn ihr euch nebeneinander befindet oder über einen sicheren Kanal kommuniziert, könnt ihr alle Geräte gleichzeitig verifizieren, indem ihr eine Sicherheitsnummer oder Emojis vergleicht.", + "countUnverifiedDevices": "{count} unbestätigte Geräte im Chat.", + "@countUnverifiedDevices": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "encryptedMessage": "Verschlüsselte Nachricht", + "unencryptedMessage": "Unverschlüsselte Nachricht", + "publicKey": "Öffentlicher Schlüssel: {key}", + "@publicKey": { + "type": "String", + "placeholders": { + "key": { + "type": "String" + } + } + }, + "deviceIdentityKey": "Geräteidentitätsschlüssel", + "messageCanOnlyBeReadByUser": "Deine Nachricht ist Ende-zu-Ende-verschlüsselt und kann nur von diesem Nutzer gelesen werden:", + "messageCanOnlyBeReadByUsers": "Deine Nachricht ist Ende-zu-Ende-verschlüsselt und kann nur von diesen Nutzern gelesen werden:", + "restoreBootstrapEmptyDevicesDescription": "Bitte gib deine Passphrase oder deinen Wiederherstellungsschlüssel ein, um dieses Gerät zu verifizieren und Zugriff auf dein verschlüsseltes Nachrichten-Backup zu erhalten.", + "@restoreBootstrapEmptyDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "restoreBootstrapDevicesDescription": "Bitte wähle eines deiner anderen Geräte aus, um diese Sitzung zu bestätigen:", + "@restoreBootstrapDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "resetAccount": "Konto zurücksetzen", + "@resetAccount": { + "type": "String", + "placeholders": {} + }, + "restoreCryptoIdentity": "Krypto-Identität wiederherstellen", + "@restoreCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "resetCryptoIdentity": "Krypto-Identität zurücksetzen", + "@resetCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "setUpCryptoIdentity": "Krypto-Identität einrichten", + "@setUpCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "waitingForKeys": "Warten auf Schlüssel... Bitte lass das andere Gerät aktiv.", + "@waitingForKeys": { + "type": "String", + "placeholders": {} + }, + "noKeysTransmitted": "Keine Schlüssel übertragen. Bitte versuche es erneut.", + "@noKeysTransmitted": { + "type": "String", + "placeholders": {} + }, + "unlock": "Entsperren", + "@unlock": { + "type": "String", + "placeholders": {} + }, + "openFile": "Datei öffnen", + "@openFile": { + "type": "String", + "placeholders": {} + }, + "resetAccountWarning": "Wenn du dein Konto zurücksetzt, verlierst du dauerhaft den Zugriff auf deine alten Nachrichten. Alle deine aktuellen Geräte müssen erneut verifiziert werden. Führe diesen Schritt bitte nur aus, wenn du über keine anderen Geräte mehr zur Verifizierung deiner Sitzung verfügst und zudem deinen Wiederherstellungsschlüssel sowie deine Passphrase verloren hast!", + "@resetAccountWarning": { + "type": "String", + "placeholders": {} + }, + "newPassphraseDescription": "FluffyChat verwendet Ende-zu-Ende-Verschlüsselung. Um deine Nachrichten nicht zu verlieren, wähle bitte eine starke Passphrase, um deine Krypto-Identität und dein verschlüsseltes Nachrichten-Backup zu sichern.", + "@newPassphraseDescription": { + "type": "String", + "placeholders": {} + }, + "newPassphrase": "Neue Passphrase", + "@newPassphrase": { + "type": "String", + "placeholders": {} + }, + "repeatPassphrase": "Passphrase wiederholen", + "@repeatPassphrase": { + "type": "String", + "placeholders": {} + }, + "passphrasesMatch": "Passphrasen stimmen überein", + "@passphrasesMatch": { + "type": "String", + "placeholders": {} + }, + "passphraseLengthRequirement": "Mindestens 12 Zeichen lang.", + "@passphraseLengthRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseUpperAndLowerCaseRequirement": "Enthält Groß- und Kleinbuchstaben.", + "@passphraseUpperAndLowerCaseRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseSpecialCharactersRequirement": "Enthält Sonderzeichen.", + "@passphraseSpecialCharactersRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseNumberRequirement": "Enthält eine Zahl.", + "@passphraseNumberRequirement": { + "type": "String", + "placeholders": {} + }, + "storeRecoveryKeyDescription": "Bitte notiere deinen Wiederherstellungsschlüssel, um deine verschlüsselten Nachrichten und deine Krypto-Identität wiederherstellen zu können.", + "@storeRecoveryKeyDescription": { + "type": "String", + "placeholders": {} + }, + "saveAsFile": "Als Datei speichern", + "@saveAsFile": { + "type": "String", + "placeholders": {} + }, + "youAreReadyToStart": "Du bist bereit loszulegen!", + "noUserKeyFound": "Kein Benutzerschlüssel gefunden", + "@noUserKeyFound": { + "type": "String", + "placeholders": {} + }, + "knownSince": "Bekannt seit: {date}", + "@knownSince": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + } + } + }, + "unsignedDevice": "Nicht signiertes Gerät", + "@unsignedDevice": { + "type": "String", + "placeholders": {} + }, + "signedDevice": "Signiertes Gerät", + "@signedDevice": { + "type": "String", + "placeholders": {} + }, + "noCurve25519KeyFound": "Kein curve25519-Schlüssel gefunden", + "@noCurve25519KeyFound": { + "type": "String", + "placeholders": {} + }, + "messageNotDecryptable": "Nachricht nicht entschlüsselbar", + "today": "Heute", + "sending": "Wird gesendet", + "generatingThumbnail": "Thumbnail wird erstellt", + "encrypting": "Verschlüsselung", + "uploading": "Hochladen", + "edited": "(bearbeitet)", + "couldNotBeSent": "Konnte nicht gesendet werden", + "yesterday": "Gestern", + "resetRecoveryKey": "Wiederherstellungsschlüssel zurücksetzen", + "editImage": "Bild bearbeiten", + "@editImage": { + "type": "String", + "placeholders": {} + }, + "rotateLeft": "Nach links drehen", + "@rotateLeft": { + "type": "String", + "placeholders": {} + }, + "rotateRight": "Nach rechts drehen", + "@rotateRight": { + "type": "String", + "placeholders": {} + }, + "mirror": "Spiegeln", + "@mirror": { + "type": "String", + "placeholders": {} + }, + "save": "Speichern", + "@save": { + "type": "String", + "placeholders": {} + }, + "draw": "Zeichnen", + "@draw": { + "type": "String", + "placeholders": {} + }, + "undo": "Rückgängig", + "@undo": { + "type": "String", + "placeholders": {} + }, + "clear": "Alles entfernen", + "@clear": { + "type": "String", + "placeholders": {} + }, + "eraser": "Radierer", + "@eraser": { + "type": "String", + "placeholders": {} + }, + "crop": "Zuschneiden", + "@crop": { + "type": "String", + "placeholders": {} + }, + "compressingVideo": "Video wird komprimiert...", + "accountsAndSettings": "Konten und Einstellungen", + "@accountsAndSettings": { + "type": "String", + "placeholders": {} + }, + "sendingFilesDoNotExit": "Sende {count} Dateien... Bitte nicht schliessen!", + "@sendingFilesDoNotExit": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "pleaseEnter6Digits": "Bitte 6 Ziffern eingeben, um die App-Sperre zu aktivieren.", + "disableAppLock": "App-Sperre deaktivieren", + "disableAppLockAreYouSure": "Bist du sicher, dass du die App-Sperre deaktivieren möchtest?", + "enableBiometrics": "Biometrische Authentifizierung aktivieren", + "disableBiometrics": "Biometrische Authentifizierung deaktivieren", + "biometricsDescription": "Mit biometrischer Authentifizierung kannst du die App mit deinem Gesicht oder Fingerabdruck entsperren. Die Leistungsfähigkeit hängt von deinem Gerät ab.", + "useAppLock": "App-Sperre verwenden", + "unlockWithBiometrics": "Mit biometrischer Authentifizierung entsperren", + "resetPin": "PIN zurücksetzen", + "forwardCountMessages": "{count, plural, =1{Eine Nachricht} other{{count} Nachrichten}} weiterleiten?", + "@forwardCountMessages": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingMessages": "Nachrichten werden geladen...", + "buildDoesNotSupportFirebase": "Dieser Build unterstützt kein Firebase Cloud Messaging.", + "unableToRegisterDeviceForFirebase": "Gerät kann nicht für Firebase Cloud Messaging registriert werden.", + "unifiedPushDistributors": "Unified Push Verteiler:", + "doubleTapToReact": "Doppeltippen, um zu reagieren", + "doubleTapToReactDescription": "Doppeltippen auf eine Nachricht, um zu reagieren, statt um Text auszuwählen", + "doubleTapReaction": "Doppeltippreaktion", + "shareCrashReports": "Absturzberichte teilen", + "shareCrashReportsDescription": "Absturzberichte automatisch mit den Entwicklern teilen?", + "countActiveCallMembers": "{count} aktive Anrufteilnehmer", + "@countActiveCallMembers": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "enterCall": "Anruf beitreten", + "videoCallsBetaWarning": "Videoanrufe sind eine Betafunktion. Es können Fehler oder unerwartetes Verhalten auftreten. Wir würden uns über Rückmeldungen freuen.", + "noDevicesFound": "Keine Geräte gefunden", + "incomingCall": "Eingehender Anruf", + "videoCall": "Videoanruf", + "voiceCall": "Sprachanruf", + "missedCall": "Verpasster Anruf", + "callBack": "Zurückrufen", + "hangUp": "Auflegen", + "waitingForParticipant": "Warte auf Teilnehmer...", + "decline": "Ablehnen", + "startCall": "Anrufen", + "selectCamera": "Kamera auswählen", + "selectMicrophone": "Mikrophon auswählen", + "selectSpeaker": "Lautsprecher auswählen", + "toggleMicrophone": "Mikrophon wechseln", + "toggleCamera": "Kamera wechseln", + "startScreensharing": "Bildschirm teilen", + "stopScreensharing": "Bildschirm nicht mehr teilen", + "raiseHand": "Hand heben", + "stopRaiseHand": "Hand senken", + "unexpectedErrorOccurded": "Unglücklicherweise ist ein unerwarteter Fehler aufgetreten: {msg}", + "@unexpectedErrorOccurded": { + "placeholders": { + "msg": { + "type": "String" + } + } + }, + "preferSpeaker": "Lautsprecher bevorzugen" +} diff --git a/lib/l10n/intl_el.arb b/lib/l10n/intl_el.arb new file mode 100644 index 0000000..fc3a336 --- /dev/null +++ b/lib/l10n/intl_el.arb @@ -0,0 +1,1880 @@ +{ + "hugContent": "{senderName} σε αγκαλιάζει", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_cuddle": "Στείλε μια αγκαλιά", + "admin": "Διαχειριστής", + "@admin": { + "type": "String", + "placeholders": {} + }, + "blockDevice": "Αποκλεισμός Συσκευής", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "supposedMxid": "Αυτό θα πρέπει να είναι {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "banFromChat": "Αποκλεισμός από τη συνομιλία", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Για να μπορέσεις να υπογράψεις το άλλο άτομο, πληκτρολόγησε τη συνθηματική φράση ασφαλούς αποθήκευσης ή το κλειδί ανάκτησης.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "remove": "Αφαίρεση", + "@remove": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Επιτρέπεται στους επισκέπτες χρήστες να συμμετάσχουν", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "blocked": "Αποκλείστηκε", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "sendOnEnter": "Αποστολή με enter", + "answeredTheCall": "{senderName} απάντησε στην κλήση", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "alias": "ψευδώνυμο", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Όλα", + "@all": { + "type": "String", + "placeholders": {} + }, + "badServerLoginTypesException": "Ο οικιακός διακομιστής υποστηρίζει τους τύπους σύνδεσης:\n{serverVersions}\nΑλλά αυτή η εφαρμογή υποστηρίζει μόνο:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "cantOpenUri": "Δεν μπορεί να ανοίξει το URI {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "importFromZipFile": "Εισαγωγή από αρχείο .zip", + "autoplayImages": "Αυτόματη αναπαραγωγή κινούμενων αυτοκόλλητων και emotes", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "repeatPassword": "Επανάληψη κωδικού πρόσβασης", + "acceptedTheInvitation": "👍 {username} αποδέχτηκε την πρόσκληση", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "banned": "Αποκλείστηκε", + "@banned": { + "type": "String", + "placeholders": {} + }, + "exportEmotePack": "Εξαγωγή πακέτου Emote ως .zip", + "account": "Λογαριασμός", + "@account": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Σίγουρα;", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "Προσθήκη στο χώρο", + "about": "Σχετικά", + "@about": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} ενεργοποίησε την κρυπτογράφηση από άκρο σε άκρο", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "googlyEyesContent": "{senderName} σού στέλνει αστεία μάτια", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "cancel": "Ακύρωση", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "appLock": "Κλείδωμα εφαρμογής", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "sendTypingNotifications": "Αποστολή ειδοποιήσεων πληκτρολόγησης", + "importEmojis": "Εισαγωγή Emojis", + "confirmMatrixId": "Παρακαλούμε επιβεβαίωσε το Matrix ID σου για να διαγράψεις τον λογαριασμό σου.", + "notAnImage": "Δεν είναι αρχείο εικόνας.", + "areYouSureYouWantToLogout": "Σίγουρα θες να αποσυνδεθείς;", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} απέκλεισε {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "cuddleContent": "{senderName} σέ αγκαλιάζει", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "askVerificationRequest": "Αποδοχή αυτού του αιτήματος επαλήθευσης από {username};", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "Προσθήκη email", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "commandHint_hug": "Στείλτε μια αγκαλιά", + "replace": "Αντικατάσταση", + "archive": "Αρχείο", + "@archive": { + "type": "String", + "placeholders": {} + }, + "accept": "Αποδοχή", + "@accept": { + "type": "String", + "placeholders": {} + }, + "commandHint_googly": "Στείλε αστεία μάτια", + "importNow": "Εισαγωγή τώρα", + "anyoneCanJoin": "Οποιοσδήποτε μπορεί να συμμετάσχει", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "aboutHomeserver": "Σχετικά με {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "commandHint_roomupgrade": "Αναβάθμιση αυτού του δωματίου στην δεδομένη έκδοση δωματίου", + "appLockDescription": "Κλείδωμα εφαρμογής όταν δεν χρησιμοποιείται με κωδικό PIN", + "swipeRightToLeftToReply": "Σύρσιμο δεξιά προς αριστερά για απάντηση", + "noMoreChatsFound": "Δεν βρέθηκαν άλλες συνομιλίες...", + "noChatsFoundHere": "Δεν υπάρχουν συνομιλίες ακόμα. Ξεκίνα μια νέα συνομιλία με κάποιον χρησιμοποιώντας το κουμπί παρακάτω. ⤵️", + "unread": "Μη αναγνωσμένα", + "space": "Χώρος", + "changeDeviceName": "Αλλαγή ονόματος συσκευής", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} άλλαξε το άβαταρ συνομιλίας", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} άλλαξε τα δικαιώματα συνομιλίας", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} άλλαξε το εμφανιζόμενο όνομά του σε: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} άλλαξε τους κανόνες πρόσβασης των επισκεπτών", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} άλλαξε τους κανόνες πρόσβασης των επισκεπτών σε: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} άλλαξε την ορατότητα ιστορικού", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} άλλαξε την ορατότητα ιστορικού σε: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} άλλαξε τους κανόνες συμμετοχής", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} άλλαξε τους κανόνες συμμετοχής σε: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "Ο χρήστης {username} άλλαξε την εικόνα προφίλ του", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Αλλαγή κωδικού πρόσβασης", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Άλλαξε το στυλ σου", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Αλλαγή εικόνας προφιλ", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Αντίγραφο ασφαλείας συνομιλίας", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Λεπτομέρειες συνομιλίας", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Συνομιλίες", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Εισάγετε ένα δυνατό κωδικό πρόσβασης", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "close": "Κλείσιμο", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "Αποκλεισμός χρήστη από το δωμάτιο", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_clearcache": "Εκκαθάριση προσωρινής μνήμης", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_invite": "Πρόσκληση αυτού του χρήστη στο δωμάτιο", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "@obtainingLocation": { + "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": {} + }, + "@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" + } + } + }, + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@invited": { + "type": "String", + "placeholders": {} + }, + "@warning": { + "type": "String", + "placeholders": {} + }, + "@password": { + "type": "String", + "placeholders": {} + }, + "@goToSpace": { + "type": "String", + "space": {} + }, + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@videoCall": { + "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": {} + }, + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@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" + } + } + }, + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "@next": { + "type": "String", + "placeholders": {} + }, + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "@editRoomAliases": { + "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": {} + }, + "@unpin": { + "type": "String", + "placeholders": {} + }, + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@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": {} + }, + "@reason": { + "type": "String", + "placeholders": {} + }, + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "@edit": { + "type": "String", + "placeholders": {} + }, + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "@copy": { + "type": "String", + "placeholders": {} + }, + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "@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": {} + }, + "@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" + } + } + }, + "@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" + } + } + }, + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "@help": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@delete": { + "type": "String", + "placeholders": {} + }, + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "@moderator": { + "type": "String", + "placeholders": {} + }, + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "@ok": { + "type": "String", + "placeholders": {} + }, + "@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!" + }, + "@sendAsText": { + "type": "String" + }, + "@commandInvalid": { + "type": "String" + }, + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "@newChat": { + "type": "String", + "placeholders": {} + }, + "@notifications": { + "type": "String", + "placeholders": {} + }, + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "@emoteSettings": { + "type": "String", + "placeholders": {} + }, + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "@mention": { + "type": "String", + "placeholders": {} + }, + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "@withTheseAddressesRecoveryDescription": { + "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" + } + } + }, + "@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": {} + }, + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "@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" + }, + "@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" + }, + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "@status": { + "type": "String", + "placeholders": {} + }, + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "@sentCallInformations": { + "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" + } + } + }, + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "@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" + }, + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@search": { + "type": "String", + "placeholders": {} + }, + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "@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": {} + }, + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "@logout": { + "type": "String", + "placeholders": {} + }, + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@groups": { + "type": "String", + "placeholders": {} + }, + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@messages": { + "type": "String", + "placeholders": {} + }, + "@login": { + "type": "String", + "placeholders": {} + }, + "@waitingPartnerNumbers": { + "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": {} + }, + "@settings": { + "type": "String", + "placeholders": {} + }, + "@changeTheHomeserver": { + "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": {} + }, + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "@devices": { + "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" + } + } + }, + "@privacy": { + "type": "String", + "placeholders": {} + }, + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@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": {} + } +} \ No newline at end of file diff --git a/lib/l10n/intl_en.arb b/lib/l10n/intl_en.arb new file mode 100644 index 0000000..07adfc4 --- /dev/null +++ b/lib/l10n/intl_en.arb @@ -0,0 +1,2849 @@ +{ + "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": { + "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": {} + }, + "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", + "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.", + "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": {} + } +} \ No newline at end of file diff --git a/lib/l10n/intl_eo.arb b/lib/l10n/intl_eo.arb new file mode 100644 index 0000000..ca15264 --- /dev/null +++ b/lib/l10n/intl_eo.arb @@ -0,0 +1,2122 @@ +{ + "@@last_modified": "2021-08-14 12:41:10.107750", + "about": "Prio", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Akcepti", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "{username} akceptis la inviton", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Konto", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "{username} aktivigis tutvojan ĉifradon", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "Aldoni retpoŝtadreson", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "admin": "Administranto", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "kromnomo", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Ĉio", + "@all": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} respondis la vokon", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Ĉiu ajn povas aliĝi", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "Ŝlosado", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "archive": "Arĥivo", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Ĉu gastoj rajtas aliĝi", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Ĉu vi certas?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Ĉu vi certe volas adiaŭi?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Por ke vi povu kontroli (subskribi) la alian personon, bonvolu enigi pasfrazon de via sekreta deponejo aŭ vian rehavan ŝlosilon.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Ĉu akcepti ĉi tiun kontrolpeton de {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "badServerLoginTypesException": "La hejmservilo subtenas la jenajn specojn de salutoj:\n{serverVersions}\nSed ĉi tiu aplikaĵo subtenas nur:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "banFromChat": "Forbari de babilo", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Forbarita", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} forbaris uzanton {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Bloki aparaton", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "Blokita", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "Nuligi", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "Ne povis malfermi URI {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changeDeviceName": "Ŝanĝi nomon de aparato", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} ŝanĝis bildon de la babilo", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} ŝanĝis permesojn pri la babilo", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} ŝanĝis sian prezentan nomon al: {username}", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} ŝanĝis regulojn pri aliro de gastoj", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} ŝanĝis regulojn pri aliro de gastoj al: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} ŝanĝis videblecon de la historio", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} ŝanĝis videblecon de la historio al: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} ŝanĝis regulojn pri aliĝado", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} ŝanĝis regulojn pri aliĝado al: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} ŝanĝis sian profilbildon", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} ŝanĝis la kromnomojn de la ĉambro", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} ŝanĝis la invitan ligilon", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Ŝanĝi pasvorton", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Ŝanĝi hejmservilon", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Ŝanĝu la haŭton", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Ŝanĝi nomon de la grupo", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Ŝanĝi vian profilbildon", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "La ĉifrado estas difektita", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Babilo", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Savkopiado de babilo", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Detaloj pri babilo", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Babiloj", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Elektu fortan pasvorton", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Vakigi arĥivon", + "close": "Fermi", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "Forbari la donitan uzanton de ĉi tiu ĉambro", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_html": "Sendi tekston formatan je HTML", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Inviti la donitan uzanton al ĉi tiu ĉambro", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "Aliĝi al la donita ĉambro", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "Forigi la donitan uzanton de ĉi tiu ĉambro", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "Foriri de ĉi tiu ĉambro", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "Priskribu vian agon", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_myroomavatar": "Agordi vian profilbildon por ĉi tiu ĉambro (laŭ mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "Agordi vian prezentan nomon en ĉi tiu ĉambro", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "Agordi povnivelon de la donita uzanto (implicite: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "Sendi senformatan tekston", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "Sendi respondon kiel reagon", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_unban": "Malforbari la donitan uzanton de ĉi tiu ĉambro", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandInvalid": "Nevalida ordono", + "@commandInvalid": { + "type": "String" + }, + "commandMissing": "{command} ne estas ordono.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "compareEmojiMatch": "Komparu kaj certigu, ke la jenaj bildosignoj samas en ambaŭ aparatoj:", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Komparu kaj certigu, ke la jenaj numeroj samas en ambaŭ aparatoj:", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Agordi babilon", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Kontakto invitiĝis al la grupo", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "La enhavo raportiĝis al la administrantoj de la servilo", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Kopiite al tondujo", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Kopii", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Kopii al tondujo", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Ne povis malĉifri mesaĝon: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count} partoprenantoj", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Krei", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "{username} kreis la babilon", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "createNewSpace": "Nova aro", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "Nun aktiva", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Malhela", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Ĉi tio malaktivigos vian konton de uzanto. Ne eblas tion malfari! Ĉu certe vi certas?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Norma nivelo de permesoj", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "Forigi", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Forigi konton", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Forigi mesaĝon", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Aparatoj", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Rektaj babiloj", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Prezenta nomo ŝanĝiĝis", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Elŝuti dosieron", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "Redakti", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Redakti blokitajn servilojn", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Redakti prezentan nomon", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Ŝanĝi kromnomojn de ĉambro", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Redakti bildon de ĉambro", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Mieneto jam ekzistas!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Nevalida mallongigo de mieneto!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Mallongigo de mieneto", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Malplena babilo", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Ŝalti mienetaron ĉie", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Ŝalti ĉifradon", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Vi ne povos malŝalti la ĉifradon. Ĉu vi certas?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Ĉifrite", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Ĉifrado", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Ĉifrado ne estas ŝaltita", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} finis la vokon", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Enigu retpoŝtadreson", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Eraris akirado de loko: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "fontSize": "Grandeco de tiparo", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "Plusendi", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Ekde aliĝo", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Ekde la invito", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Grupo", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "Grupo estas publika", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "Grupoj", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Grupo kun {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Gastoj estas malpermesitaj", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Gastoj povas aliĝi", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} nuligis la inviton por {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Helpo", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Kaŝi nekonatajn eventojn", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignore": "Malatenti", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Malatentitaj uzantoj", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Mi klakis la ligilon", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Neĝusta pasfrazo aŭ rehava ŝlosilo", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Inviti kontakton", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Inviti kontakton al {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "Invitita", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "{username} invitis uzanton {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Nur invititoj", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} invitis vin al FluffyChat. \n1. Instalu la aplikaĵon FluffyChat: https://fluffychat.im \n2. Registriĝu aŭ salutu \n3. Malfermu la invitan ligilon: {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "tajpas…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "{username} aliĝis al la babilo", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Aliĝi al ĉambro", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "{username} forpelis uzanton {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "{username} forpelis kaj forbaris uzanton {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Forpeli de babilo", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Lastafoje aktiva: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Foriri", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Foriris de la ĉambro", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Hela", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Enlegi {count} pliajn partoprenantojn", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "Enlegante… bonvolu atendi.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Enlegi pli…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "login": "Saluti", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Saluti servilon {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Adiaŭi", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Mencii", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "Mesaĝoj", + "@messages": { + "type": "String", + "placeholders": {} + }, + "moderator": "Reguligisto", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Silentigi babilon", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Nova babilo", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "Nova mesaĝo en FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Nova kontrolpeto!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "Sekva", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "Ne", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Neniu konekto al la servilo", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Neniuj mienetoj troviĝis. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Vi nur povas aktivigi ĉifradon kiam la ĉambro ne plu estas publike alirebla.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Ŝajnas, ke via telefono ne havas servojn de Google. Tio estas bona decido por via privateco! Por ricevadi pasivajn sciigojn en FluffyChat, ni rekomendas, ke vi uzu la https://microg.org/ aŭ https://unifiedpush.org/.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "Vi ankoraŭ ne aldonis manieron rehavi vian pasvorton.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Neniu permeso", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Neniuj ĉambroj troviĝis…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Sciigoj", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} uzantoj tajpas…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "obtainingLocation": "Akirante lokon…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "ok": "bone", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Enreta savkopiado de ŝlosiloj estas ŝaltita", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Oj! Bedaŭrinde eraris la agordado de pasivaj sciigoj.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Oj! Io misokazis…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Malfermu la aplikaĵon por legi mesaĝojn", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Malfermi fotilon", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "or": "Aŭ", + "@or": { + "type": "String", + "placeholders": {} + }, + "participant": "Partoprenanto", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "pasfrazo aŭ rehava ŝlosilo", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Pasvorto", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Forgesita pasvorto", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Pasvorto ŝanĝiĝis", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Rehavo de pasvorto", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Fiksi", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Bonvolu elekti paskodon", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Bonvolu klaki la ligilon en la retletero kaj pluiĝi.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Bonvolu enigi vian pasvorton", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Bonvolu enigi vian personan identigan numeron", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Bonvolu enigi vian uzantonomon", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Bonvolu sekvi la instrukciojn de la retejo kaj tuŝetu al «Sekva».", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "Privateco", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Publikaj ĉambroj", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "Kialo", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} obskurigis eventon", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactMessage": "Obskurigi mesaĝon", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reject": "Rifuzi", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} rifuzis la inviton", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Forigi", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Forigi ĉiujn aliajn aparatojn", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Malforbari", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Forigi vian profilbildon", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Anstataŭigi ĉambron per nova versio", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "Respondi", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Raporti mesaĝon", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Ĉambro gradaltiĝis", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Versio de ĉambro", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Konservi dosieron", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "search": "Serĉi", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "Sekureco", + "@security": { + "type": "String", + "placeholders": {} + }, + "send": "Sendi", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Sendi mesaĝon", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAudio": "Sendi sondosieron", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Sendi dosieron", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Sendi bildon", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Sendi mesaĝojn", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Sendi filmon", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "{username} sendis dosieron", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "{username} sendis sondosieron", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "{username} sendis bildon", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "{username} sendis glumarkon", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "{username} sendis filmon", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} sendis informojn pri voko", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setAsCanonicalAlias": "Agordi kiel ĉefan kromnomon", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "setStatus": "Agordi staton", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Agordoj", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Konigi", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} konigis sian lokon", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "shareLocation": "Konigi lokon", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "skip": "Preterpasi", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Fontkodo", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "Aro estas publika", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Nomo de aro", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} komencis vokon", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "status": "Stato", + "@status": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Kiel vi fartas?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Sendi", + "@submit": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Spegulante… Bonvolu atendi.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Sistema", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Ili ne akordas", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Ili akordas", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Tro multaj petoj. Bonvolu reprovi poste!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Reprovi sendi", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} malforbaris uzanton {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Malbloki aparaton", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Nekonata aparato", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Nekonata ĉifra algoritmo", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Nekonata evento «{type}»", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Malsilentigi babilon", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Malfiksi", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} kaj {count} aliaj tajpas…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} kaj {username2} tajpas…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} tajpas…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "{username} foriris de la babilo", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} sendis eventon de speco {type}", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verified": "Kontrolita", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Komenci kontrolon", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Vi sukcese kontrolis!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Kontrolante alian konton", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Videbleco de historio de la babilo", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Videbla al ĉiuj partoprenantoj", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Videbla al ĉiuj", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Voĉmesaĝo", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Atendante konfirmon de peto de la kunulo…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Atendante akcepton de la bildosignoj de la kunulo…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Atendante akcepton de la numeroj, de la kunulo…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Averto!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Ni sendis retleteron al vi", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Kiu povas kion", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Kiu rajtas aliĝi al ĉi tiu grupo", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Kial vi volas tion ĉi raporti?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Per tiuj ĉi adresoj vi povas rehavi vian pasvorton.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Skribi mesaĝon…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Jes", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Vi", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Vi ne plu partoprenas ĉi tiun babilon", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Vi estas forbarita de ĉi tiu babilo", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Via publika ŝlosilo", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Sendi kiel tekston", + "@sendAsText": { + "type": "String" + }, + "noMatrixServer": "{server1} ne estas matriksa servilo, eble provu anstataŭe servilon {server2}?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "commandHint_send": "Sendi tekston", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "autoplayImages": "Memage ludi movbildajn glumarkojn kaj mienetojn", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "addToSpace": "Aldoni al aro", + "sendOnEnter": "Sendi per eniga klavo", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "@goToSpace": { + "type": "String", + "space": {} + }, + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "@youUnbannedUser": { + "placeholders": { + "user": { + "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" + } + } + }, + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@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" + } + } + } +} \ No newline at end of file diff --git a/lib/l10n/intl_es.arb b/lib/l10n/intl_es.arb new file mode 100644 index 0000000..2269d4b --- /dev/null +++ b/lib/l10n/intl_es.arb @@ -0,0 +1,2614 @@ +{ + "@@locale": "es", + "@@last_modified": "2021-08-14 12:41:10.097243", + "about": "Acerca de", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Aceptar", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} aceptó la invitación", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Cuenta", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} activó el cifrado de extremo a extremo", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "Añadir dirección de correo", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "admin": "Administrador", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "alias", + "@alias": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} respondió a la llamada", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Cualquiera puede unirse", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "archive": "Archivo", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "¿Pueden los usuarios invitados unirse?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "¿Estás seguro?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "¿Confirma que quiere cerrar sesión?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Para poder confirmar a la otra persona, ingrese su contraseña de almacenamiento segura o la clave de recuperación.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "¿Aceptar esta solicitud de verificación de {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "badServerLoginTypesException": "El servidor soporta los siguientes mecanismos para autenticación:\n{serverVersions}\npero esta aplicación sólo soporta:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "banFromChat": "Vetar del chat", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Vetado", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} vetó a {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": {} + }, + "changeDeviceName": "Cambiar el nombre del dispositivo", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} cambió el icono del chat", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} cambió los permisos del chat", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} cambió su nombre visible a: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} cambió las reglas de acceso de visitantes", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} cambió las reglas de acceso de visitantes a: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} cambió la visibilidad del historial", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} cambió la visibilidad del historial a: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} cambió las reglas de ingreso", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} cambió las reglas de ingreso a {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} cambió su imagen de perfil", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} cambió el alias de la sala", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} cambió el enlace de invitación", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Cambiar la contraseña", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Cambiar el servidor", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Cambia tu estilo", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Cambiar el nombre del grupo", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "El cifrado se ha corrompido", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Chat", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Copia de respaldo del chat", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Detalles del chat", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Conversaciones", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Elija una contraseña segura", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Borrar archivo", + "close": "Cerrar", + "@close": { + "type": "String", + "placeholders": {} + }, + "compareEmojiMatch": "Por favor compare los emojis", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Por favor compare los números", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "El contacto ha sido invitado al grupo", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Copiado al portapapeles", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Copiar", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Copiar al portapapeles", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "No se pudo descifrar el mensaje: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count} participantes", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Crear", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬{username} creó el chat", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "currentlyActive": "Actualmente activo", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Oscuro", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Se desactivará su cuenta de usuario. ¡La operación no se puede cancelar! ¿Está seguro?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "delete": "Eliminar", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Cancelar cuenta", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Eliminar mensaje", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Dispositivos", + "@devices": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "El nombre visible ha cambiado", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Descargar archivo", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Editar nombre visible", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Editar alias de la sala", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "¡El emote ya existe!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "¡El atajo del emote es inválido!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Atajo de emote", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Chat vacío", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Habilitar paquete de emoticonos a nivel general", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Ya no podrá deshabilitar el cifrado. ¿Estás seguro?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encryption": "Cifrado", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "El cifrado no está habilitado", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} terminó la llamada", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Introducir una dirección de correo electrónico", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "forward": "Reenviar", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Desde que se unió", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Desde la invitación", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Grupo", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "El grupo es público", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Grupo con {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Los visitantes están prohibidos", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Los visitantes pueden unirse", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} ha retirado la invitación para {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Ayuda", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Ocultar sucesos desconocidos", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Usuarios ignorados", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Frase de contraseña o clave de recuperación incorrecta", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Invitar contacto", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Invitar contacto a {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "Invitado", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩{username} invitó a {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Sólo usuarios invitados", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} te invitó a FluffyChat.\n1.Visita fluffychat.im e instala la app\n2. Regístrate o inicia sesión\n3. Abre el enlace de invitación:\n{link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "escribiendo…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋{username} se unió al chat", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Unirse a la sala", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞{username} echó a {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅{username} echó y vetó a {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Echar del chat", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Última vez activo: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Abandonar", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Abandonó el chat", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Claro", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Mostrar {count} participantes más", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "Cargando… Por favor espere.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Mostrar más…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "login": "Acceso", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Iniciar sesión en {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Cerrar sesión", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Mencionar", + "@mention": { + "type": "String", + "placeholders": {} + }, + "moderator": "Moderador", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Silenciar chat", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "Nuevo mensaje en FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "¡Nueva solicitud de verificación!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "Siguiente", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "No", + "@no": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Ningún emote encontrado. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Sólo se puede activar el cifrado en cuanto la sala deja de ser de acceso público.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Parece que no tienes servicios de Firebase Cloud Messaging en tu dispositivo. Para recibir de todas formas notificaciones, recomendamos instalar ntfy. Con ntfy o cualquier proveedor Unified Push, puedes recibir notificaciones manteniendo seguridad de datos. Puedes descargar ntfy de la PlayStore o de F-Droid.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Sin autorización", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Ninguna sala encontrada…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "ok": "Ok", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "La copia de seguridad de la clave en línea está habilitada", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Ups, algo salió mal…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Abrir la aplicación para leer los mensajes", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Abrir cámara", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "contraseña o clave de recuperación", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Contraseña", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "La contraseña ha sido cambiada", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "pin": "Pin", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Haga clic en el enlace del correo electrónico y luego continúe.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Por favor ingrese su contraseña", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Por favor ingrese su nombre de usuario", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Por favor, siga las instrucciones del sitio web y presione \"siguiente\".", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "Privacidad", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Salas públicas", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} censuró un suceso", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "reject": "Rechazar", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} rechazó la invitación", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Eliminar", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Eliminar todos los otros dispositivos", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Eliminar la expulsión", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "reply": "Responder", + "@reply": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "La sala ha subido de categoría", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Versión de sala", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "send": "Enviar", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Enviar un mensaje", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAudio": "Enviar audio", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Enviar un archivo", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Enviar una imagen", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Enviar video", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "{username} envió un archivo", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "{username} envió un audio", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "{username} envió una imagen", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "{username} envió un sticker", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "{username} envió un video", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} envió información de la llamada", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setAsCanonicalAlias": "Fijar alias principal", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "setStatus": "Establecer estado", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Ajustes", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Compartir", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} compartió la ubicación", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "skip": "Omitir", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Código fuente", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} comenzó una llamada", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "statusExampleMessage": "¿Cómo estás hoy?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Enviar", + "@submit": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Sistema", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "No coinciden", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Coinciden", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Intentar enviar nuevamente", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} admitió a {targetName} nuevamente", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Desbloquear dispositivo", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Dispositivo desconocido", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Algoritmo de cifrado desconocido", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Evento desconocido '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Dejar de silenciar el chat", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Despinchar", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} y {count} más están escribiendo…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} y {username2} están escribiendo…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} está escribiendo…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "{username} abandonó el chat", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} envió un evento {type}", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verified": "Verificado", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Comenzar verificación", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "¡Has verificado exitosamente!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Verificando la otra cuenta", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Visibilidad del historial del chat", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Visible para todos los participantes", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Visible para todo el mundo", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Mensaje de voz", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Esperando a que el socio acepte la solicitud…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Esperando a que el socio acepte los emojis…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Esperando a que el socio acepte los números…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "¡Advertencia!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Te enviamos un correo electrónico", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Quién tiene permitido unirse al grupo", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Escribe un mensaje…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Sí", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Tú", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Ya no estás participando en este chat", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Has sido vetado de este chat", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "autoplayImages": "Reproducir emoticonos y stickers animados automáticamente", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "addToSpace": "Agregar al espacio", + "cantOpenUri": "No puedo abrir el URI {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "all": "Todo", + "@all": { + "type": "String", + "placeholders": {} + }, + "appLock": "Bloqueo de aplicación", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "oneClientLoggedOut": "Se ha cerrado en la sesión de uno de sus clientes", + "addAccount": "Añadir cuenta", + "editBundlesForAccount": "Editar paquetes para esta cuenta", + "addToBundle": "Agregar al paquete", + "bundleName": "Nombre del paquete", + "saveFile": "Guardar el archivo", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "shareLocation": "Compartir ubicación", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "status": "Estado", + "@status": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Sincronizando... por favor espere.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "He hecho clic en el enlace", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "directChats": "Chat directo", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Error al obtener la ubicación: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "noPasswordRecoveryDescription": "Aún no ha agregado una forma de recuperar su contraseña.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} usuarios están escribiendo…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "or": "O", + "@or": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "El espacio es público", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "commandInvalid": "Comando inválido", + "@commandInvalid": { + "type": "String" + }, + "passwordRecovery": "Recuperación de contraseña", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "security": "Seguridad", + "@security": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Editar servidores bloqueado", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Configurar chat", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Sin conexión al servidor", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Tu clave pública", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Contraseña olvidada", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "reason": "Razón", + "@reason": { + "type": "String", + "placeholders": {} + }, + "createNewSpace": "Nuevo espacio", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "edit": "Editar", + "@edit": { + "type": "String", + "placeholders": {} + }, + "ignore": "Ignorar", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "notifications": "Notificaciones", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Reemplazar habitación con una versión más nueva", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "El contenido ha sido reportado a los administradores del servidor", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "groups": "Grupos", + "@groups": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Mensaje de informe", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "search": "Buscar", + "@search": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "Permiso de ubicación denegado. Concédeles que puedan compartir tu ubicación.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Nivel de permiso predeterminado para nuevo usuarios", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "obtainingLocation": "Obteniendo ubicación…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "participant": "Participante", + "@participant": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Enviar como texto", + "@sendAsText": { + "type": "String" + }, + "tooManyRequestsWarning": "Demasiadas solicitudes. ¡Por favor inténtelo más tarde!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Con esta dirección puede recuperar su contraseña.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "commandHint_send": "Enviar texto", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "oopsPushError": "¡Ups! Desafortunadamente, se produjo un error al configurar las notificaciones push.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Quitar tu avatar", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Habilitar la encriptación", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "messages": "Mensajes", + "@messages": { + "type": "String", + "placeholders": {} + }, + "fontSize": "Tamaño de fuente", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "Prohibir al usuario dado en esta sala", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_unban": "Des banear al usuario dado en esta sala", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandMissing": "{command} no es un comando.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "scanQrCode": "Escanear código QR", + "newChat": "Nuevo chat", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "commandHint_join": "Únete a la sala indicada", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "sendOnEnter": "Enviar con enter", + "changeYourAvatar": "Cambiar tu avatar", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "commandHint_me": "Descríbete", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_html": "Enviar texto con formato HTML", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Invitar al usuario indicado a esta sala", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_kick": "Eliminar el usuario indicado de esta sala", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "Deja esta sala", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_myroomavatar": "Selecciona tu foto para esta sala (by mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "Establece tu nombre para mostrar para esta sala", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "Establece el nivel de potencia del usuario dado (default: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "Enviar texto sin formato", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "Enviar respuesta como reacción", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "editRoomAvatar": "Editar avatar de sala", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "Los servicios de ubicación están deshabilitado. Habilite para poder compartir su ubicación.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Encriptado", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} no es un servidor matrix, usar {server2} en su lugar?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "openInMaps": "Abrir en maps", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "removeFromBundle": "Quitar de este paquete", + "link": "Link", + "pleaseChooseAPasscode": "Elija un código de acceso", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Por favor ingrese su pin", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "redactMessage": "Censurar mensaje", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Enviar mensajes", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Nombre del espacio", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Quién puede realizar qué acción", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "¿Por qué quieres denunciar esto?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "unverified": "No verificado", + "commandHint_clearcache": "Limpiar cache", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "messageInfo": "Información del mensaje", + "time": "Tiempo", + "repeatPassword": "Repite la contraseña", + "removeFromSpace": "Eliminar del espacio", + "openGallery": "Abrir galería", + "commandHint_discardsession": "Descartar sesión", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "newSpace": "Nuevo espacio", + "commandHint_markasgroup": "Marcar como grupo", + "youRejectedTheInvitation": "Rechazaste la invitación", + "users": "Usuarios", + "youInvitedBy": "📩 Has sido invitado por {user}", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youAcceptedTheInvitation": "👍 Aceptaste la invitación", + "commandHint_cuddle": "Enviar un abrazo", + "supposedMxid": "Esto debería ser {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "importFromZipFile": "Importar de un archivo .zip", + "exportEmotePack": "Exportar paquete de emotes a .zip", + "sendTypingNotifications": "Enviar notificaciones \"está escribiendo\"", + "importEmojis": "Importar emojis", + "confirmMatrixId": "Por favor confirma tu Matrix ID para borrar tu cuenta.", + "notAnImage": "El archivo no es una imagen.", + "commandHint_hug": "Mandar un abrazo", + "importNow": "Importar ahora", + "hugContent": "{senderName} te abraza", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "countFiles": "{count} archivos", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "reportUser": "Reportar usuario", + "reactedWith": "{sender} reaccionó con {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "markAsRead": "Marcar como leído", + "replace": "Reemplazar", + "unsupportedAndroidVersionLong": "Esta característica requiere una versión más reciente de Android. Por favor, compruebe las actualizaciones o la compatibilidad de LineageOS.", + "storeSecurlyOnThisDevice": "Almacenar de forma segura en este dispositivo", + "unsupportedAndroidVersion": "Versión de Android no compatible", + "commandHint_create": "Crear un chat grupal vacío\nUse --no-encryption para deshabilitar el cifrado", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "user": "Usuario", + "tryAgain": "Inténtelo de nuevo", + "youKickedAndBanned": "🙅 Usted expulsó y prohibió el acceso a {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "messagesStyle": "Mensajes:", + "chatDescription": "Descripción del chat", + "storeInAppleKeyChain": "Almacenar en la KeyChain de Apple", + "hydrate": "Restaurar desde fichero de copia de seguridad", + "invalidServerName": "Nombre del servidor no válido", + "chatPermissions": "Permisos del chat", + "sender": "Remitente", + "storeInAndroidKeystore": "Almacenar en la KeyStore de Android", + "whyIsThisMessageEncrypted": "¿Por qué no se puede leer este mensaje?", + "setChatDescription": "Establecer descripción del chat", + "dehydrateWarning": "Esta acción no se puede deshacer. Asegúrese de que ha almacenado de forma segura el fichero de copia de seguridad.", + "redactedBy": "Censurado por {username}", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "optionalRedactReason": "(Opcional) Motivo para censurar este mensaje...", + "dehydrate": "Exportar sesión y limpiar dispositivo", + "redactedByBecause": "Censurado por {username} porque: \"{reason}\"", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "youHaveWithdrawnTheInvitationFor": "Usted retiró la invitación a {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "confirmEventUnpin": "¿Seguro que quiere desfijar permanentemente el evento?", + "youInvitedUser": "📩 Usted invitó a {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "redactMessageDescription": "El mensaje será censurado para todas las personas participantes en la conversación. Esto no se puede deshacer.", + "doNotShowAgain": "No mostrar de nuevo", + "youBannedUser": "Usted prohibió el acceso a {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "wasDirectChatDisplayName": "Chat vacío (era {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "noChatDescriptionYet": "No se ha creado una descripción del chat aún.", + "chatDescriptionHasBeenChanged": "Se ha cambiado la descripción del chat", + "youKicked": "👞 Usted expulsó a {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "shareInviteLink": "Compartir enlace de invitación", + "commandHint_markasdm": "Marcar como sala de mensajes directos para el ID de Matrix", + "emoteKeyboardNoRecents": "Los emotes usados recientemente aparecerán aquí...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "youJoinedTheChat": "Usted se ha unido al chat", + "commandHint_dm": "Iniciar un chat directo\nUse --no-encryption para deshabilitar el cifrado", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "youUnbannedUser": "Usted volvió a permitir el acceso a {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "emojis": "Emojis", + "createGroup": "Crear grupo", + "custom": "Personalizado", + "pinMessage": "Anclar a la sala", + "googlyEyesContent": "{senderName} te manda ojos saltones", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "cuddleContent": "{senderName} se acurruca contigo", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_googly": "Enviar unos ojos saltones", + "noChatsFoundHere": "No se han encontrado chats. Inicia un nuevo chat usando el botón de abajo. ⤵️", + "space": "Espacio", + "block": "Bloquear", + "blockListDescription": "Puedes bloquear usuarios que te estén molestando. No podrás recibir mensajes ni invitaciones de chat de los usuarios de tu lista de bloqueo.", + "aboutHomeserver": "Acerca de {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "unread": "No leídos", + "swipeRightToLeftToReply": "Desliza a la izquierda para responder", + "hideRedactedMessagesBody": "Si alguien elimina un mensaje, este mensaje ya no será visible en el chat.", + "hideInvalidOrUnknownMessageFormats": "Esconde formatos de mensajes inválidos o desconocidos", + "hideRedactedMessages": "Esconde mensajes eliminados", + "appLockDescription": "Bloquear la aplicación cuando no se use con código pin", + "accessAndVisibility": "Acceso y visibilidad", + "globalChatId": "ID de chat Global", + "accessAndVisibilityDescription": "A quién se le permite unirse a este chat y cómo se puede descubrir el chat.", + "calls": "Llamadas", + "customEmojisAndStickers": "Emojis y stickers personalizados", + "customEmojisAndStickersBody": "Agrega o comparte emojis y stickers personalizados que se pueden utilizar en cualquier chat.", + "blockedUsers": "Usuarios bloqueados", + "blockUsername": "Ignorar nombre de usuario", + "noMoreChatsFound": "No se encontraron más chats...", + "disableEncryptionWarning": "Por motivos de seguridad no es posible deshabilitar el cifrado en un chat si ha sido habilitado previamente.", + "setColorTheme": "Poner tema de color:", + "inviteGroupChat": "📨 Invitar a grupo", + "invalidInput": "¡Entrada no válida!", + "wrongPinEntered": "¡Pin erróneo! Vuelve a intenrarlo en {seconds} segundos...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "thisDevice": "Este dispositivo:", + "verifyOtherDevice": "🔐 Verificar otro dispositivo", + "chatPermissionsDescription": "Definir el nivel necesario para ciertas acciones en este chat. Los niveles 0, 50 y 100 habitualmente representan usuarios, moderadores y administradores, pero se puede establecer cualquier escala.", + "updateInstalled": "¡🎉 Actualización {version} instalada!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "changelog": "Cambios", + "sendCanceled": "Envío cancelado", + "invite": "Invitar", + "searchIn": "Buscar en chat \"{chat}\"...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "appWantsToUseForLogin": "Usar '{server}' para entrar", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "appWantsToUseForLoginDescription": "Por la presente permites a la app y web compartir información sobre ti.", + "encryptThisChat": "Cifrar este chat", + "select": "Elegir", + "newPassword": "Nueva clave", + "nothingFound": "No se encontró nada...", + "openLinkInBrowser": "Abrir enlace en navegador", + "learnMore": "Aprender más", + "incomingMessages": "Mensajes entrantes", + "noOtherDevicesFound": "No se han encontrado otros dispositivos", + "generalNotificationSettings": "Ajustes de notificación generales", + "roomNotificationSettings": "Ajustes de notificación de salas", + "userSpecificNotificationSettings": "Ajustes de notificación por usuario", + "contentNotificationSettings": "Ajustes de notificación de contenido", + "otherNotificationSettings": "Otros ajustes de notificación", + "notificationRuleContainsUserName": "Contiene nombre de usuario", + "notificationRuleContainsUserNameDescription": "Notifica al usuario cuando un mensaje contiene su nombre de usuario.", + "notificationRuleMaster": "Silenciar todas las notificaciones", + "notificationRuleMasterDescription": "Anula todas las demás reglas y desactiva todas las notificaciones.", + "notificationRuleSuppressNotices": "Suprimir los mensajes automáticos", + "notificationRuleSuppressNoticesDescription": "Suprimir notificaciones de clientes automáticos, como bots.", + "notificationRuleInviteForMe": "Invitación para mí", + "notificationRuleInviteForMeDescription": "Notifica al usuario cuando se les invita a una sala.", + "notificationRuleMemberEvent": "Evento para miembros", + "notificationRuleMemberEventDescription": "Suprimir notificaciones de eventos para miembros.", + "notificationRuleIsUserMention": "Mención al usuario", + "notificationRuleIsUserMentionDescription": "Notifica al usuario cuando son mencionados directamente en un mensaje.", + "notificationRuleContainsDisplayName": "Contiene el nombre visible", + "notificationRuleContainsDisplayNameDescription": "Notifica al usuario cuando un mensaje contiene su nombre visible.", + "notificationRuleIsRoomMention": "Mención de sala", + "notificationRuleIsRoomMentionDescription": "Notifica al usuario cuando hay una mención de sala.", + "notificationRuleRoomnotif": "Notificación de sala", + "notificationRuleRoomnotifDescription": "Notifica al usuario cuando un mensaje contiene '@sala'.", + "notificationRuleTombstone": "Lápida", + "notificationRuleTombstoneDescription": "Notifica al usuario sobre mensajes de desactivación de sala.", + "notificationRuleReaction": "Reacción", + "notificationRuleReactionDescription": "Suprime notificaciones por reacciones.", + "notificationRuleRoomServerAcl": "ACL de servidor de sala", + "notificationRuleRoomServerAclDescription": "Suprime notificaciones de listas de control de acceso de servidores de sala.", + "notificationRuleSuppressEdits": "Suprimir ediciones", + "notificationRuleSuppressEditsDescription": "Suprime las notificaciones de mensajes editados.", + "notificationRuleCall": "Llamar", + "notificationRuleCallDescription": "Notifica al usuario de llamadas.", + "notificationRuleEncryptedRoomOneToOne": "Sala cifrada uno a uno", + "notificationRuleEncryptedRoomOneToOneDescription": "Notifica al usuario sobre mensajes en salas cifradas uno a uno.", + "notificationRuleRoomOneToOne": "Sala uno a uno", + "notificationRuleRoomOneToOneDescription": "Notifica al usuario sobre mensajes en salas uno a uno.", + "notificationRuleMessage": "Mensaje", + "notificationRuleMessageDescription": "Notifica al usuario sobre mensajes generales.", + "notificationRuleEncrypted": "Cifrado", + "notificationRuleEncryptedDescription": "Notifica al usuario sobre mensajes en salas cifradas.", + "notificationRuleJitsi": "Jitsi", + "notificationRuleJitsiDescription": "Notifica al usuario sobre eventos del componente de Jitsi.", + "notificationRuleServerAcl": "Suprimir eventos de ACL del servidor", + "notificationRuleServerAclDescription": "Suprime notificaciones de eventos de ACL del servidor.", + "unknownPushRule": "Regla de notificación desconocida '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "deletePushRuleCanNotBeUndone": "Si eliminas este ajuste de notificación, esto no se puede deshacer.", + "more": "Más", + "groupCanBeFoundViaSearch": "Los grupos se pueden encontrar buscando", + "addChatOrSubSpace": "Añadir chat o sub espacio", + "sendRoomNotifications": "Mandar notificación @sala", + "changeTheChatPermissions": "Cambiar los permisos de chat", + "setWallpaper": "Poner fondo", + "sendImages": "Envío de la imagen {count}", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "usersMustKnock": "Los usuarios han de avisar", + "noOneCanJoin": "Nadie puede unirse", + "reopenChat": "Reabrir chat", + "fileIsTooBigForServer": "¡No se pudo mandar! El servidor solamente permite adjuntos de hasta {max}.", + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "jumpToLastReadMessage": "Saltar al último mensaje leído", + "report": "informe", + "readUpToHere": "Leer hasta aquí", + "formattedMessages": "Mensajes con formato", + "publicSpaces": "Espacios públicos", + "formattedMessagesDescription": "Mostrar contenido de mensaje enriquecido, como texto en negrita, usando markdown.", + "userLevel": "{level} - Usuario", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "completedKeyVerification": "{sender} completó la verificación de clave", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "compress": "Comprimir", + "pleaseFillOut": "Por favor, rellenar", + "newChatRequest": "📩 Nueva petición de chat", + "unbanUserDescription": "El usuario podrá entrar al chat de nuevo si lo intenta.", + "roomUpgradeDescription": "El chat se volverá a crear con la nueva versión de sala. Todos los participantes serán notificados de que tienen que cambiarse al nuevo chat. Puedes encontrar más información sobre versiones de salas en https://spec.matrix.org/latest/rooms/", + "makeAdminDescription": "Una vez hagas que este usuario sea admin, puede que no puedas deshacerlo porque tendrá los mismos permisos que tú.", + "knocking": "Avisando", + "chatCanBeDiscoveredViaSearchOnServer": "El chat se puede descubrir buscando en {server}", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "searchChatsRooms": "Buscar #chats, @usuarios...", + "groupName": "Nombre de grupo", + "createGroupAndInviteUsers": "Crear un grupo e invitar usuarios", + "databaseMigrationTitle": "La base de datos está optimizada", + "searchForUsers": "Buscar @usuarios...", + "gallery": "Galería", + "files": "Archivos", + "initAppError": "Hubo un error al arrancar la app", + "sessionLostBody": "Se perdió tu sesión. Por favor, informa de este error a los desarrolladores en {url}. El mensaje de error es: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "unreadChatsInApp": "{appname}: {unread} chats no leídos", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "requestedKeyVerification": "{sender} ha pedido verificación de clave", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "adminLevel": "{level} - Administrador", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeGeneralChatSettings": "Cambiar los ajustes generales de chat", + "inviteOtherUsers": "Invitar a otros usuarios a este chat", + "calculatingFileSize": "Calculando tamaño de archivo...", + "blur": "Difuminar:", + "continueText": "Continuar", + "opacity": "Opacidad:", + "version": "Versión", + "serverInformation": "Información del servidor:", + "website": "Web", + "name": "Nombre", + "passwordRecoverySettings": "Ajustes de recuperación de clave", + "acceptedKeyVerification": "{sender} aceptó la verificación de clave", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "stickers": "Pegatinas", + "shareKeysWith": "Compartir claves con...", + "shareKeysWithDescription": "¿Qué dispositivos deben ser de confianza para que puedan leer tus mensajes en chats cifrados?", + "crossVerifiedDevicesIfEnabled": "Dispositivos verificados si están habilitados", + "allDevices": "Todos los dispositivos", + "crossVerifiedDevices": "Dispositivos verificados", + "verifiedDevicesOnly": "Solo dispositivos verificados", + "removeDevicesDescription": "Vas a salir en este dispositivo y ya no podrás recibir mensajes.", + "databaseMigrationBody": "Por favor espera. Esto llevará un momento.", + "pleaseEnterYourCurrentPassword": "Por favor, pon tu clave actual", + "pleaseChooseAStrongPassword": "Por favor, pon una clave fuerte", + "joinSpace": "Unirse al espacio", + "wrongRecoveryKey": "Lo siento... esta no parece ser la clave de recuperación correcta.", + "leaveEmptyToClearStatus": "Deja vacío para limpiar tu estado.", + "restoreSessionBody": "La app ahora trata de recuperar tu sesión de la copia de seguridad. Por favor, informa de este error a los desarrolladores en {url}. El mensaje de error es: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "sendReadReceipts": "Mandar recibos de lectura", + "sendTypingNotificationsDescription": "Otros participantes en un chat pueden ver cuándo estás escribiendo un mensaje.", + "sendReadReceiptsDescription": "Otros participantes en un chat pueden ver cuándo has leído un mensaje.", + "verifyOtherUserDescription": "Si verificas a otro usuario, puedes estar seguro de a quién estás escribiendo realmente. 💪\n\nCuando empiezas una verificación, tú y el otro usuario veréis una ventana emergente en la app. En ella veréis una serie de emojiso números que tenéis que comparar.\n\nLa mejor forma de hacer esto es quedar o una videollamada. 👭", + "verifyOtherDeviceDescription": "Cuando verificas otro dispositivo, esos dispositivos pueden intercambiar claves, incrementando tu seguridad global. 💪 Cuando inicias una verificación, aparece una ventana en la app en ambos dispositivos. En ella, verás una serie de emojis o números que tienes que comparar. Es mejor tener ambos dispositivos a mano antes de empezar la verificación. 🤳", + "canceledKeyVerification": "{sender} canceló la verificación de clave", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "commandHint_unignore": "No ignorar la ID de matrix dada", + "noDatabaseEncryption": "En esta plataforma no hay cifrado de base de datos", + "startedKeyVerification": "{sender} ha comenzado verificación de clave", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "discover": "Descubrir", + "thereAreCountUsersBlocked": "Ahora mismo, hay {count} usuarios bloqueados.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "commandHint_ignore": "Ignorar la ID de matrix dada", + "jump": "Saltar", + "commandHint_sendraw": "Mandar json pelado", + "kickUserDescription": "Se expulsa al usuario del chat, pero no se le prohíbe volver a entrar. En chats públicos, el usuario podrá volver a entrar en cualquier momento.", + "fileHasBeenSavedAt": "Archivo guardado en {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "markAsUnread": "Marcar no leído", + "changeTheDescriptionOfTheGroup": "Cambiar la descripción del chat", + "sorryThatsNotPossible": "Lo siento... eso no es posible", + "publicChatAddresses": "Dirección de chat pública", + "createNewAddress": "Crear nueva dirección", + "boldText": "Texto en negrita", + "italicText": "Texto en cursiva", + "strikeThrough": "Tachado", + "searchMore": "Buscar más...", + "knock": "Aviso", + "newSpaceDescription": "Los espacios permiten consolidar los chats y montar comunidades privadas o públicas.", + "pleaseEnterANumber": "Por favor pon un número mayor que 0", + "archiveRoomDescription": "El chat se moverá al archivo. Otros usuarios podrán ver que has abandonado el chat.", + "pushNotificationsNotAvailable": "No están disponibles las notificaciones emergentes", + "passwordsDoNotMatch": "Las claves no coinciden", + "passwordIsWrong": "La clave que has puesto es incorrecta", + "verifyOtherUser": "🔐 Verificar a otro usuario", + "isReadyForKeyVerification": "{sender} está preparado para verificación de clave", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "goToSpace": "Ir al espacio: {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "oneOfYourDevicesIsNotVerified": "Uno de tus dispositivos no está verificado", + "noticeChatBackupDeviceVerification": "Nota: Cuando conectas todos tus dispositivos a la copia de seguridad del chat, son verificados automáticamente.", + "manageAccount": "Gestionar cuenta", + "contactServerAdmin": "Contactar con el administrador del servidor", + "contactServerSecurity": "Contactar con seguridad del servidor", + "supportPage": "Página de atención", + "invalidUrl": "Url incorrecto", + "addLink": "Añadir enlace", + "unableToJoinChat": "No se puede entrar al chat. Puede que la otra parte ya haya cerrado la conversación.", + "waitingForServer": "Esperando al servidor...", + "synchronizingPleaseWaitCounter": " Sincronizando… ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "reportErrorDescription": "😭 Oh, no. Algo ha salido mal. Si quieres, puedes informar de este fallo a los desarrolladores.", + "hasKnocked": "🚪 {user} ha avisado", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "noBackupWarning": "¡Cuidado! Si no se habilita la copia de seguridad del chat, perderás acceso a tus mensajes cifrados. Se recomienda encarecidamente habilitar la copia de seguridad del chat antes de salir.", + "yourGlobalUserIdIs": "Tu id de usuario global es: ", + "noKeyForThisMessage": "Esto puede ocurrir si el mensaje se envió antes de que entraras en tu cuenta en este dispositivo.\n\nTambién puede que el remitente haya bloqueado tu dispositivo o haya fallado algo en la conexión a Internet.\n\n¿Puedes leer el mensaje en otra sesión? Entonces, ¡puedes transferir el mensaje desde allí! Ve a Ajustes > Dispositivos y asegúrate de que tus dispositivos se han verificado mutuamente. Cuando abras la sala la próxima vez y ambas sesiones estén en primer plano, las claves se transmitirán automáticamente.\n\n¿No quieres perder las claves al salir o al cambiar de dispositivo? Asegúrate de que has habilitado la copia de seguridad del chat en los ajustes.", + "banUserDescription": "Se expulsará al usuario del chat y no podrá volver a entrar hasta que se le permita.", + "loginWithMatrixId": "Entrar con un ID de Matrix", + "changeTheCanonicalRoomAlias": "Cambiar la dirección pública principal de chat", + "noContactInformationProvided": "El servidor no suministra ninguna información de contacto válida", + "noUsersFoundWithQuery": "Desgraciadamente, no se encontró ningún usuario con \"{query}\". Por favor, revisa si cometiste un error.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "changeTheVisibilityOfChatHistory": "Cambiar la visibilidad de la historia de chat", + "doesNotSeemToBeAValidHomeserver": "No parece ser un homeserver compatible. ¿URL equivocada?", + "moderatorLevel": "{level} - Moderador", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "open": "Abrir", + "previous": "Anterior", + "otherPartyNotLoggedIn": "La otra parte ahora mismo no está conectada y por tanto ¡no puede recibir mensajes!", + "takeAPhoto": "Tomar foto", + "recordAVideo": "Grabar video", + "optionalMessage": "(Opcional) mensaje...", + "notSupportedOnThisDevice": "No es compatible con este dispositivo", + "enterNewChat": "Ingresar a nuevo chat", + "pleaseWaitUntilInvited": "Por favor espera, hasta que alguien del chat te invite.", + "commandHint_roomupgrade": "Actualizar este chat a la versión de chat asignada", + "checkList": "Lista de tareas", + "countInvited": "{count} invitado", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "sentVoiceMessage": "🎙️ {duration} - Mensaje de voz de {sender}", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "commandHint_logout": "Salir del dispositivo actual", + "commandHint_logoutall": "Salir de todos los dispositivos activos", + "displayNavigationRail": "Mostrar carril de navegación en móvil", + "approve": "Aprobar", + "youHaveKnocked": "Has sido expulsado", + "customReaction": "Reacción personalizada", + "moreEvents": "Más eventos", + "declineInvitation": "Rechazar invitación", + "changedTheChatDescription": "{username} ha cambiado la descripción del chat", + "changedTheChatName": "{username} ha cambiado el nombre del chat", + "noMessagesYet": "Sin mensajes", + "longPressToRecordVoiceMessage": "Deja presionado para grabar un mensaje.", + "pause": "Pausa", + "resume": "Continuar", + "removeFromSpaceDescription": "El chat sera removido del espacio pero continuara apareciendo en tu lista de chats.", + "countChats": "{chats} chats", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "startPoll": "Iniciar encuesta", + "endPoll": "Finalizar encuesta", + "answersVisible": "Respuestas visibles", + "spaceMemberOf": "Espacio miembro de {spaces}", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "Miembros del espacio de {spaces} pueden llamar", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "pollQuestion": "Pregunta de encuesta", + "answerOption": "Respuesta", + "addAnswerOption": "Añadir respuesta", + "allowMultipleAnswers": "Permitir varias respuestas", + "pollHasBeenEnded": "La encuesta ha terminado", + "countVotes": "{count, plural, =1{Un voto} other{{count} votos}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "answersWillBeVisibleWhenPollHasEnded": "Las respuestas serán visibles cuando termine la encuesta", + "replyInThread": "Contestar en el hilo", + "countReplies": "{count, plural, =1{One reply} other{{count} replies}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "thread": "Hilo", + "backToMainChat": "Volver al chat pricipal", + "saveChanges": "Guardar cambios", + "createSticker": "Crear sticker o emoticono", + "useAsSticker": "Usar como sticker", + "useAsEmoji": "Usar como emoticono", + "stickerPackNameAlreadyExists": "El nombre del paquete de stickers ya existe", + "newStickerPack": "Nuevo paquete de stickers", + "stickerPackName": "Nombre del paquete de stickers", + "attribution": "Atribución", + "skipChatBackup": "Omitir copia de seguridad del chat", + "skipChatBackupWarning": "¿Estás seguro? Sin habilitar la copia de seguridad del chat puedes perder el acceso a tus mensajes si cambias de dispositivo.", + "noMoreResultsFound": "No se han encontrado más resultados", + "chatSearchedUntil": "Chat buscado hasta {time}", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "federationBaseUrl": "URL de la Federación Base", + "clientWellKnownInformation": "Información conocida del cliente:", + "baseUrl": "URL Base", + "identityServer": "Identidad del Servidor:", + "versionWithNumber": "Versión: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "Registros", + "advancedConfigs": "Configuración avanzada", + "advancedConfigurations": "Configuraciones Avanzadas", + "signIn": "Iniciar sesión", + "createNewAccount": "Crear nueva cuenta", + "signUpGreeting": "¡FluffyChat está descentralizado! ¡Selecciona un servidor donde quieres crear tu cuenta y sigamos!", + "signInGreeting": "¿Ya tienes una cuenta en Matrix? ¡Bienvenido de nuevo! Selecciona tu servidor e inicia sesión.", + "theProcessWasCanceled": "El proceso se ha cancelado.", + "join": "Unirse", + "searchOrEnterHomeserverAddress": "Buscar o pon la dirección de tu servidor local", + "matrixId": "Matrix ID", + "setPowerLevel": "Establecer nivel de poder", + "makeModerator": "Convertir en Moderador", + "makeAdmin": "Convertir en administrador", + "removeModeratorRights": "Remover derechos de moderador", + "removeAdminRights": "Remover derechos de administrador", + "powerLevel": "Nivel de Poder", + "setPowerLevelDescription": "El nivel de poder define el nivel de acciones de un miembro, usualmente esta en el rango entre 0 a 100.", + "owner": "Dueño", + "mute": "Silenciar", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "createNewChat": "Crear nuevo chat", + "reset": "Resetear", + "supportFluffyChat": "Apoyar FluffyChat", + "support": "Apoyar", + "setLowPriority": "Colocar baja prioridad", + "unsetLowPriority": "Desactivar baja prioridad", + "playSoundOnNotification": "Sonido en notificación", + "addTag": "Agregar etiqueta", + "removeTag": "Remover etiqueta", + "tagName": "Nombre de etiqueta", + "createNewTag": "Crear nueva etiqueta", + "discardEdits": "Tienes cambios sin guardar ¿Quieres descartarlos?", + "@discardEdits": { + "type": "String", + "placeholders": {} + }, + "showMore": "Mostrar más", + "showLess": "Mostrar menos", + "hideRoomsInSpaces": "Esconder salas que estén en un espacio", + "possibleByYou": "Esta versión sólo fue posible gracias a tu apoyo. FluffyChat sigue siendo gratis, de código abierto y totalmente impulsado por la comunidad.", + "showThumbnailsInTimeline": "Mostrar miniaturas de imágenes y videos", + "appSubtitle": "Comunicación [matrix] Segura", + "appDescription": "Comunicación cifrada a través de la red descentralizada [matrix] de una manera fácil y accesible para todos.", + "interactiveVerification": "Verificación interactiva", + "interactiveVerificationDescription": "Si se encuentran cerca o se comunican por una vía segura pueden verificar todos los dispositivos a la vez comparando números de seguridad o emojis.", + "countUnverifiedDevices": "{count} dispositivos sin verificar en el chat.", + "@countUnverifiedDevices": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "encryptedMessage": "Mensaje encriptado", + "unencryptedMessage": "Mensaje des-encriptado", + "messageCanOnlyBeReadByUser": "Tu mensaje esta encriptado punto a punto y solo puede ser leído por este usuario:", + "messageCanOnlyBeReadByUsers": "Tu mensaje esta encriptado punto a punto y solo puede ser leído por estos usuarios:", + "publicKey": "Llave Pública: {key}", + "@publicKey": { + "type": "String", + "placeholders": { + "key": { + "type": "String" + } + } + }, + "editImage": "Editar imagen", + "@editImage": { + "type": "String", + "placeholders": {} + }, + "rotateLeft": "Rotar a la izquierda", + "@rotateLeft": { + "type": "String", + "placeholders": {} + }, + "rotateRight": "Rotar a la derecha", + "@rotateRight": { + "type": "String", + "placeholders": {} + }, + "mirror": "Espejo", + "@mirror": { + "type": "String", + "placeholders": {} + }, + "save": "Guardar", + "@save": { + "type": "String", + "placeholders": {} + }, + "draw": "Dibujar", + "@draw": { + "type": "String", + "placeholders": {} + }, + "undo": "Deshacer", + "@undo": { + "type": "String", + "placeholders": {} + }, + "clear": "Limpiar", + "@clear": { + "type": "String", + "placeholders": {} + }, + "eraser": "Borrador", + "@eraser": { + "type": "String", + "placeholders": {} + }, + "crop": "Cortar", + "@crop": { + "type": "String", + "placeholders": {} + }, + "sendingFilesDoNotExit": "Enviando {count} archivos... ¡Por favor espere!", + "@sendingFilesDoNotExit": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "compressingVideo": "Comprimiendo video...", + "deviceIdentityKey": "Dispositivo de llave de identidad" +} diff --git a/lib/l10n/intl_et.arb b/lib/l10n/intl_et.arb new file mode 100644 index 0000000..ead3960 --- /dev/null +++ b/lib/l10n/intl_et.arb @@ -0,0 +1,2831 @@ +{ + "@@locale": "et", + "@@last_modified": "2021-08-14 12:41:10.079944", + "about": "Rakenduse teave", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Nõustu", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} võttis kutse vastu", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Kasutajakonto", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐{username} võttis kasutusele läbiva krüptimise", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "Lisa e-posti aadress", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "admin": "Peakasutaja", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "alias", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Kõik", + "@all": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} vastas kõnele", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Kõik võivad liituda", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "Rakenduse lukustus", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "archive": "Arhiiv", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Kas külalised võivad liituda?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Kas sa oled kindel?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Kas sa oled kindel, et soovid välja logida?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Selleks, et teist osapoolt identifitseerivat allkirja anda, palun sisesta oma turvahoidla salafraas või taastevõti.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Kas võtad vastu selle verifitseerimispalve kasutajalt {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "autoplayImages": "Esita liikuvad kleepse ja emotikone automaatselt", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "badServerLoginTypesException": "See koduserver toetab Matrixi võrku sisselogimiseks:\n{serverVersions}\nAga see rakendus toetab vaid järgmisi võimalusi:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "banFromChat": "Keela ligipääs vestlusele", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Ligipääs vestlusele on keelatud", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} keelas ligipääsu kasutajale {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Blokeeri seade", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "Blokeeritud", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "Katkesta", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "{uri} aadressi avamine ei õnnestu", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changeDeviceName": "Muuda seadme nime", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} muutis vestluse tunnuspilti", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} muutis vestlusega seotud õigusi", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} muutis oma uueks kuvatavaks nimeks: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} muutis külaliste ligipääsureegleid", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} muutis külaliste ligipääsureegleid järgnevalt: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} muutis sõnumite ajaloo nähtavust", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} muutis sõnumite ajaloo nähtavust järgnevalt: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} muutis liitumise reegleid", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} muutis liitumise reegleid järgnevalt: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} muutis oma tunnuspilti", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} muutis jututoa aliast", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} muutis kutse linki", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Muuda salasõna", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Muuda koduserverit", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Muuda oma stiili", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Muuda jututoa nime", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Muuda oma tunnuspilti", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "Kasutatud krüptimine on vigane", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Vestlus", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Varunda vestlus", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Vestluse teave", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Vestlused", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Vali korralik salasõna", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Kustuta arhiiv", + "close": "Sulge", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "Sea sellele kasutajale antud jututoas suhtluskeeld", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_html": "Saada HTML-vormingus tekst", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Kutsu see kasutaja antud jututuppa", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "Liitu selle jututoaga", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "Eemalda antud kasutaja sellest jututoast", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "Lahku sellest jututoast", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "Kirjelda ennast", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_myroomavatar": "Seadista selles jututoas oma tunnuspilt (mxc-uri vahendusel)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "Seadista selles jututoas oma kuvatav nimi", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "Seadista selle kasutaja õigusi (vaikimisi: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "Saada vormindamata tekst", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "Saada vastus reaktsioonina", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_send": "Saada tekst", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_unban": "Eemalda sellelt kasutajalt antud jututoas suhtluskeeld", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandInvalid": "Vigane käsk", + "@commandInvalid": { + "type": "String" + }, + "commandMissing": "„{command}“ ei ole käsk.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "compareEmojiMatch": "Palun võrdle emojisid", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Palun võrdle numbreid", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Seadista vestlust", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Sinu kontakt on kutsutud liituma jututoaga", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "Saatsime selle sisu kohta teate koduserveri haldajate", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Kopeerisin lõikelauale", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Kopeeri", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Kopeeri lõikelauale", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Sõnumi dekrüptimine ei õnnestunud: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count, plural, =1{1 oaleja} other{{count} osalejat}}", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Loo", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} algatas vestluse", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "createNewSpace": "Uus kogukond", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "Hetkel aktiivne", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Tume kujundus", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Järgnevaga eemaldatakse sinu konto kasutusest. Seda tegevust ei saa tagasi pöörata! Kas sa ikka oled kindel?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Vaikimisi õigused uutele kasutajatele", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "Kustuta", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Kustuta kasutajakonto", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Kustuta sõnum", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Seadmed", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Otsevestlused", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Kuvatav nimi on muudetud", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Laadi fail alla", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "Muuda", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Muuda blokeeritud serverite loendit", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Muuda kuvatavat nime", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Muuda jututoa aliasi", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Muuda jututoa tunnuspilti", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Selline emotsioonitegevus on juba olemas!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Vigane emotsioonitegevuse lühikood!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Emotsioonitegevuse lühikood", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Vestlust pole olnud", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Võta emotsioonitegevuste pakid läbivalt kasutusele", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Kasuta krüptimist", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Sa ei saa hiljem enam krüptimist välja lülitada. Kas oled kindel?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Krüptitud", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Krüptimine", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Krüptimine ei ole kasutusel", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} lõpetas kõne", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Sisesta e-posti aadress", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Viga asukoha tuvastamisel: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "fontSize": "Kirjatüübi suurus", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "Edasta", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Alates liitumise hetkest", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Kutse saamisest", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Jututuba", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "Jututuba on avalik", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "Jututoad", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Jututuba {displayname} kasutajanimega", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Külalised ei ole lubatud", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Külalised võivad liituda", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} on võtnud tagasi kutse kasutajale {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Abiteave", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Peida tundmatud sündmused", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignore": "Eira", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Eiratud kasutajad", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Ma olen klõpsinud saadetud linki", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Vigane salafraas või taastevõti", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Kutsu sõpru ja tuttavaid", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Kutsu sõpru ja tuttavaid {groupName} jututoa liikmeks", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "Kutsutud", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username} saatis kutse kasutajale {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Ainult kutsutud kasutajatele", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} kutsus sind kasutama Matrix'i-põhist suhtlusrakendust FluffyChat. \n1. Ava fluffychat.im ja paigalda FluffyChat'i rakendus \n2. Liitu kasutajaks või logi sisse olemasoleva Matrix'i kasutajakontoga\n3. Ava kutse link: \n {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "kirjutab", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} liitus vestlusega", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Liitu jututoaga", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username} müksas kasutaja {targetName} välja", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅{username} müksas kasutaja {targetName} välja ning seadis talle suhtluskeelu", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Müksa vestlusest välja", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Viimati nähtud: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Lahku", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Lahkus vestlusest", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Hele kujundus", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Lisa veel {count} osalejat", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "Laadin andmeid… Palun oota.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Laadi veel…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "Asukohateenused on seadmes väljalülitatud. Asukoha jagamiseks palun lülita nad sisse.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "Puudub luba asukohateenuste kasutamiseks. Asukoha jagamiseks palun anna rakendusele vastavad õigused.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "login": "Logi sisse", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Logi sisse {homeserver} serverisse", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Logi välja", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Maini", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "Sõnumid", + "@messages": { + "type": "String", + "placeholders": {} + }, + "moderator": "Moderaator", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Summuta vestlus", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Uus vestlus", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Uus sõnum FluffyChati vahendusel", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Uus verifitseerimispäring!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "Edasi", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "Ei", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Puudub ühendus koduserveriga", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Ühtegi emotsioonitegevust ei leidunud. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Sa võid krüptimise kasutusele võtta niipea, kui jututuba pole enam avalik.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Tundub, et sinu nutiseadmes pole Firebase Cloud Messaging teenuseid. Sinu privaatsuse mõttes on see kindlasti hea otsus! Kui sa soovid FluffyChatis näha tõuketeavitusi, siis soovitame, et selle jaoks kasutad ntfy liidestust. Kasutades ntfyd või mõnda muud Unified Push standardil põhinevat liidestust saad tõuketeavitusi turvalisel moel. Ntfy rakendus on saadaval nii PlayStore kui F-Droidi rakendusepoodides.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} pole Matrix'i server, kas kasutame selle asemel {server2} serverit?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "noPasswordRecoveryDescription": "Sa pole veel lisanud võimalust salasõna taastamiseks.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Õigused puuduvad", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Jututube ei leidu…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Teavitused", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} kasutajat kirjutavad…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "obtainingLocation": "Tuvastan asukohta…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "ok": "Sobib", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Krüptovõtmete veebipõhine varundus on kasutusel", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Vaat kus lops! Kahjuks tekkis tõuketeavituste seadistamisel viga.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Vaat kus lops! Midagi läks nüüd viltu…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Sõnumite lugemiseks ava rakendus", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Ava kaamera", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "openInMaps": "Ava kaardirakendusega", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "or": "või", + "@or": { + "type": "String", + "placeholders": {} + }, + "participant": "Osaleja", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "salafraas või taastevõti", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Salasõna", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Salasõna on ununenud", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Salasõna on muudetud", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Salasõna taastamine", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Tõsta esile", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Palun sisesta rakenduse PIN-kood", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Jätkamiseks palun klõpsi sulle saadetud e-kirjas leiduvat linki.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Palun sisesta oma salasõna", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Palun sisesta oma PIN-kood", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Palun sisesta oma kasutajanimi", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Palun järgi veebilehel olevaid juhiseid ja klõpsi nuppu Edasi.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "Privaatsus", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Avalikud jututoad", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "Põhjus", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} muutis sündmust", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactMessage": "Eemalda sõnum", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reject": "Lükka tagasi", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} lükkas kutse tagasi", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Eemalda", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Eemalda kõik muud seadmed", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Eemalda suhtluskeeld", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Kustuta oma tunnuspilt", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Asenda jututoa senine versioon uuega", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "Vasta", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Teata sõnumist", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Jututoa versioon on uuendatud", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Jututoa versioon", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Salvesta fail", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "search": "Otsi", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "Turvalisus", + "@security": { + "type": "String", + "placeholders": {} + }, + "send": "Saada", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Saada sõnum", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Saada tekstisõnumina", + "@sendAsText": { + "type": "String" + }, + "sendAudio": "Saada helifail", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Saada fail", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Saada pilt", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Saada sõnumeid", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Saada videofail", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username} saatis faili", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username} saatis helifaili", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username} saatis pildi", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} saatis kleepsu", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} saatis video", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} edastas teavet kõne kohta", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setAsCanonicalAlias": "Määra põhinimeks", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "setStatus": "Määra olek", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Seadistused", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Jaga", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} jagas oma asukohta", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "shareLocation": "Jaga asukohta", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "skip": "Jäta vahele", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Lähtekood", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "Kogukond on avalik", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Kogukonna nimi", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} helistas", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "status": "Olek", + "@status": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Kuidas sul täna läheb?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Saada", + "@submit": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Sünkroonin andmeid… Palun oota.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Süsteemi kujundus", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Nad ei klapi omavahel", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Nad klapivad omavahel", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Liiga palju päringuid. Palun proovi hiljem uuesti!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Proovi uuesti saata", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} eemaldas ligipääsukeelu kasutajalt {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Eemalda seadmelt blokeering", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Tundmatu seade", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Tundmatu krüptoalgoritm", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Tundmatu sündmuse tüüp '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Lõpeta vestluse summutamine", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Eemalda esiletõstmine", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} ja {count} muud kirjutavad…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} ja {username2} kirjutavad…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} kirjutab…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪{username} lahkus vestlusest", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} saatis „{type}“ tüüpi sündmuse", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verified": "Verifitseeritud", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Alusta verifitseerimist", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Sinu verifitseerimine õnnestus!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Verifitseerin teist kasutajakontot", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Vestluse ajaloo nähtavus", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Nähtav kõikidele osalejatele", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Nähtav kõikidele", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Häälsõnum", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Ootan, et teine osapool nõustuks päringuga…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Ootan teise osapoole kinnitust, et tegemist on samade emojidega…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Ootan teise osapoole kinnitust, et tegemist on samade numbritega…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Hoiatus!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Me saatsime sulle e-kirja", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Erinevatele kasutajatele lubatud toimingud", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Kes võivad selle jututoaga liituda", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Miks sa soovid sellest teatada?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Nende e-posti aadresside abil saad taastada oma salasõna.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Koosta sõnum…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Jah", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Sina", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Sa enam ei osale selles vestluses", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Sinule on selles vestluses seatud suhtluskeeld", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Sinu avalik võti", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "Lisa kogukonda", + "scanQrCode": "Skaneeri QR-koodi", + "sendOnEnter": "Saada sõnum sisestusklahvi vajutusel", + "bundleName": "Köite nimi", + "removeFromBundle": "Eemalda sellest köitest", + "addToBundle": "Lisa köitesse", + "editBundlesForAccount": "Muuda selle kasutajakonto köiteid", + "addAccount": "Lisa kasutajakonto", + "oneClientLoggedOut": "Üks sinu klientrakendustest on Matrixi võrgust välja loginud", + "link": "Link", + "unverified": "Verifitseerimata", + "repeatPassword": "Korda salasõna", + "messageInfo": "Sõnumi teave", + "time": "Kellaaeg", + "sender": "Saatja", + "openGallery": "Ava galerii", + "removeFromSpace": "Eemalda kogukonnast", + "commandHint_discardsession": "Loobu sessioonist", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_clearcache": "Tühjenda vahemälu", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_dm": "Alusta otsevestlust\nKrüptimise keelamiseks kasuta --no-encryption võtit", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_create": "Loo tühi jututuba\nKrüptimise keelamiseks kasuta --no-encryption võtit", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "markAsRead": "Märgi loetuks", + "reportUser": "Teata kasutajast", + "reactedWith": "{sender} reageeris sedaviisi: {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "emojis": "Emojid", + "unsupportedAndroidVersion": "See Androidi versioon ei ole toetatud", + "confirmEventUnpin": "Kas sa oled kindel, et tahad esiletõstetud sündmuse jäädavalt eemaldada?", + "pinMessage": "Tõsta sõnum jututoas esile", + "unsupportedAndroidVersionLong": "See funktsionaalsus eeldab uuemat Androidi versiooni. Palun kontrolli, kas sinu nutiseadmele leidub süsteemiuuendusi või saaks seal Lineage OSi kasutada.", + "youAcceptedTheInvitation": "👍 Sa võtsid kutse vastu", + "youUnbannedUser": "Sa eemaldasid suhtluskeelu kasutajalt {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youHaveWithdrawnTheInvitationFor": "Sa oled tühistanud kutse kasutajale {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youBannedUser": "Sa seadsid suhtluskeelu kasutajale {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youJoinedTheChat": "Sa liitusid vestlusega", + "youKickedAndBanned": "🙅Sa müksasid kasutaja {user} välja ning seadsid talle suhtluskeelu", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youRejectedTheInvitation": "Sa lükkasid kutse tagasi", + "youKicked": "👞 Sa müksasid kasutaja {user} välja", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 Sa saatsid kutse kasutajale {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 {user} saatis sulle kutse", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "users": "Kasutajad", + "storeInAndroidKeystore": "Vali salvestuskohaks Android KeyStore", + "storeInAppleKeyChain": "Vali salvestuskohaks Apple KeyChain", + "storeSecurlyOnThisDevice": "Salvesta turvaliselt selles seadmes", + "countFiles": "{count} faili", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dehydrate": "Ekspordi sessiooni teave ja kustuta nutiseadmest rakenduse andmed", + "dehydrateWarning": "Seda tegevust ei saa tagasi pöörata. Palun kontrolli, et sa oled varukoopia turvaliselt salvestanud.", + "hydrate": "Taasta varundusfailist", + "user": "Kasutaja", + "custom": "Kohandatud", + "confirmMatrixId": "Konto kustutamiseks palun kinnita oma Matrix'i kasutajatunnus (Matrix ID).", + "supposedMxid": "See peaks olema {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "commandHint_markasgroup": "Märgi jututoaks", + "commandHint_markasdm": "Märgi otsevestluseks antud Matrixi ID jaoks", + "whyIsThisMessageEncrypted": "Miks see sõnum pole loetav?", + "noKeyForThisMessage": "See võib juhtuda, kui sõnum oli saadetud enne, kui siin seadmes oma kontoga sisse logisid.\n\nSamuti võib juhtuda siis, kui saatja on lugemises selles seadmes blokeerinud või on tekkinud tõrkeid veebiühenduses.\n\nAga mõnes teises seadmes saad seda sõnumit lugeda? Siis sa võid sõnumi sealt üle tõsta. Ava Seadistused -> Seadmed ning kontrolli, et kõik sinu seadmed on omavahel verifitseeritud. Kui avad selle vestluse või jututoa ning mõlemad sessioonid on avatud, siis vajalikud krüptovõtmed saadetakse automaatset.\n\nKas sa soovid vältida krüptovõtmete kadumist väljalogimisel ja seadmete vahetusel? Siis palun kontrolli, et seadistuses on krüptovõtmete varundus sisse lülitatud.", + "newSpace": "Uus kogukond", + "screenSharingTitle": "ekraanijagamine", + "foregroundServiceRunning": "See teavitus toimib siis, kui esiplaaniteenus töötab.", + "screenSharingDetail": "Sa jagad oma ekraani FuffyChati vahendusel", + "doNotShowAgain": "Ära näita uuesti", + "commandHint_cuddle": "Saada üks kaisutus", + "commandHint_hug": "Saada üks kallistus", + "googlyEyesContent": "{senderName} saatis sulle otsivad silmad", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "cuddleContent": "{senderName} kaisutab sind", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "hugContent": "{senderName} kallistab sind", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_googly": "Saada ühed otsivad silmad", + "wasDirectChatDisplayName": "Sõnumiteta vestlus (vana nimega {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "encryptThisChat": "Krüpti see vestlus", + "disableEncryptionWarning": "Kui vestluses on krüptimine kasutusele võetud, siis turvalisuse huvides ei saa seda hiljem välja lülitada.", + "sorryThatsNotPossible": "Vabandust... see ei ole võimalik", + "newSpaceDescription": "Kogukonnad võimaldavad sul koondada erinevaid vestlusi ning korraldada avalikku või privaatset ühistegevust.", + "reopenChat": "Alusta vestlust uuesti", + "noOtherDevicesFound": "Muid seadmeid ei leidu", + "noBackupWarning": "Hoiatus! Kui sa ei lülita sisse vestluse varundust, siis sul puudub hiljem ligipääs krüptitud sõnumitele. Me tungivalt soovitame, et palun lülita vestluse varundamine sisse enne väljalogimist.", + "fileIsTooBigForServer": "Saatmine ei õnnestu! Server toetab kuni {max} suurusega manuseid.", + "fileHasBeenSavedAt": "Fail on salvestatud kausta: {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "jumpToLastReadMessage": "Liigu viimase loetud sõnumini", + "readUpToHere": "Siiamaani on loetud", + "jump": "Hüppa", + "openLinkInBrowser": "Ava link veebibrauseris", + "report": "teata", + "reportErrorDescription": "😭 Vaat kus lops! Midagi läks valesti. Kui soovid, võid sellest veast arendajatele teatada.", + "importFromZipFile": "Impordi zip-failist", + "exportEmotePack": "Ekspordi emotikonide pakk zip-failina", + "replace": "Asenda", + "notAnImage": "See pole pildifail.", + "importNow": "Impordi kohe", + "importEmojis": "Impordi emojid", + "sendTypingNotifications": "Saada kirjutamise teavitusi", + "createGroup": "Loo jututuba", + "tryAgain": "Proovi uuesti", + "chatPermissions": "Vestluse õigused", + "chatDescription": "Vestluse kirjeldus", + "noChatDescriptionYet": "Vestluse kirjeldus on puudu.", + "optionalRedactReason": "(Kui soovid lisada) Sõnumi muutmise põhjus...", + "messagesStyle": "Sõnumid:", + "shareInviteLink": "Jaga kutse linki", + "setChatDescription": "Lisa vestluse kirjeldus", + "setColorTheme": "Vali värvikombinatsioon:", + "invite": "Kutsu", + "invalidServerName": "Vigane serveri nimi", + "chatDescriptionHasBeenChanged": "Vestluse kirjeldus on muutunud", + "redactMessageDescription": "Sõnumi muudatus kehtib kõikidele vestluses osalejatele. Seda muudatust ei saa tagasi pöörata.", + "redactedBy": "Muutja: {username}", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactedByBecause": "Muutja {username} märkis põhjuseks: „{reason}“", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "inviteGroupChat": "📨 Kutse jututuppa", + "emoteKeyboardNoRecents": "Hiljuti kasutatud emotikonid kuvame siin...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "invalidInput": "Vigane sisend!", + "wrongPinEntered": "Sisestasid vale PIN-koodi! Proovi uuesti {seconds} sekundi pärast...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "banUserDescription": "Sellele kasutajale on nüüd selles jututoas seatud suhtluskeeld ning ta ei saa vestluses osaleda seni, kuni suhtluskeeld pole eemaldatud.", + "removeDevicesDescription": "Sind logitakse sellest seadmest välja ja sa enam ei saa sõnumeid.", + "unbanUserDescription": "Uuesti proovimisel saab see kasutaja nüüd vestlusega liituda.", + "pushNotificationsNotAvailable": "Tõuketeavitused pole saadaval", + "makeAdminDescription": "Kui annad sellele kasutajale peakasutaja õigused, siis kuna tal on sinuga samad õigused, sa ei saa seda toimingut enam tagasi pöörata.", + "archiveRoomDescription": "Selle vestluse tõstame nüüd arhiivi. Muud osalejad näevad, et sa oled vestlusest lahkunud.", + "hasKnocked": "🚪{user} on koputanud jututoa uksele", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "learnMore": "Loe lisaks", + "roomUpgradeDescription": "See vestlus luuakse nüüd uuesti jututoa uue versioonina. Kõik senised osalejad saavad teate, et nad peavad liituma uue vestlusega. Jututubade versioonide kohta leiad teavet https://spec.matrix.org/latest/rooms/ lehelt", + "pleaseEnterANumber": "Palun sisesta 0-st suurem number", + "kickUserDescription": "See kasutaja on nüüd jutuoast välja müksatud, kuid talle pole seatud suhtluskeeldu. Avaliku jututoa puhul saab ta alati uuesti liituda.", + "blockListDescription": "Sul on võimalik blokeerida neid kasutajaid, kes sind segavad. Oma isiklikku blokerimisloendisse lisatud kasutajad ei saa sulle saata sõnumeid ega kutseid.", + "createGroupAndInviteUsers": "Lisa jututuba ja kutsu sinna kasutajaid", + "blockedUsers": "Blokeeritud kasutajad", + "groupCanBeFoundViaSearch": "Jututuba on leitav otsinguga", + "noUsersFoundWithQuery": "Päringuga „{query}“ ei leidunud kahjuks ühtegi kasutajat. Palun kontrolli, et päringus poleks vigu.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "block": "Blokeeri", + "yourGlobalUserIdIs": "Sinu üldine kasutajatunnus on: ", + "commandHint_sendraw": "Saada json oma algupärasel kujul", + "wrongRecoveryKey": "Vabandust..., see ei tundu olema korrektne taastevõti.", + "blockUsername": "Eira kasutajanime", + "groupName": "Jututoa nimi", + "databaseMigrationTitle": "Andmebaas on optimeeritud", + "searchChatsRooms": "Otsi #vestlusi, @kasutajaid...", + "databaseMigrationBody": "Palun oota üks hetk. Natuke võib kuluda aega.", + "thisDevice": "See seade:", + "publicSpaces": "Avalikud kogukonnad", + "passwordIsWrong": "Sinu sisestatud salasõna on vale", + "pleaseEnterYourCurrentPassword": "Palun sisesta oma praegune salasõna", + "nothingFound": "Ei leidnud mitte midagi...", + "newPassword": "Uus salasõna", + "passwordsDoNotMatch": "Salasõnad ei klapi omavahel", + "select": "Vali", + "pleaseChooseAStrongPassword": "Palun sisesta korralik salasõna", + "addChatOrSubSpace": "Lisa vestlus või alamkogukond", + "leaveEmptyToClearStatus": "Senise oleku eemaldamiseks jäta väärtus tühjaks.", + "joinSpace": "Liitu kogukonnaga", + "searchForUsers": "Otsi kasutajat @kasutajanimi ...", + "initAppError": "Rakenduse käivitamisel tekkis viga", + "sessionLostBody": "Sinu sessioon on kadunud. Palun teata sellest veast arendajatele siin: {url} märkides veateate: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "restoreSessionBody": "Nüüd üritab rakendus taastada sinu sessiooni varukoopiast. Palun teata sellest veast arendajatele siin: {url} märkides veateate: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "sendReadReceipts": "Saada lugemisteatisi", + "verifyOtherUserDescription": "Kui sa oled vestluse teise osapoole verifitseerinud, siis saad kindel olla, et tead, kellega suhtled. 💪\n\nKui alustad verifitseerimist, siis sinul ja teisel osapoolel tekib rakenduses hüpikaken. Seal kuvatakse emotikonide või numbrite jada, mida peate omavahel võrdlema.\n\nKõige lihtsam on seda teha kas omavahelise kohtumise ajal või videokõne kestel. 👭", + "sendTypingNotificationsDescription": "Muud vestluses osalejad saavad näha, kui sa oled uut sõnumit kirjutamas.", + "sendReadReceiptsDescription": "Muud vestluses osalejad näevad, kas oled sõnumit lugenud.", + "formattedMessages": "Vormindatud sõnumid", + "verifyOtherUser": "🔐 Verifitseeri teine kasutaja", + "verifyOtherDevice": "🔐 Verifitseeri oma muu seade", + "canceledKeyVerification": "{sender} katkestas krüptovõtmete verifitseerimise", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "completedKeyVerification": "{sender} sai valmis krüptovõtmete verifitseerimise", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "formattedMessagesDescription": "Kasutades markdown-süntaksit kuva vormindust, nagu rasvases kirjas tekst.", + "verifyOtherDeviceDescription": "Kui sa oled oma muu seadme verifitseerinud, siis need seadmed võivad vahetada krüptovõtmeid ning see parandab üldist turvalisust. 💪 Kui alustad verifitseerimist, siis sinu mõlemas seadmes tekib rakenduses hüpikaken. Seal kuvatakse emotikonide või numbrite jada, mida pead omavahel võrdlema. On oluline, et mõlemad seadmed on verifitseerimise alustamisel sinu kõrval. 🤳", + "acceptedKeyVerification": "{sender} nõustus krüptovõtmete verifitseerimisega", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "{sender} on valmis krüptovõtmete verifitseerimiseks", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "requestedKeyVerification": "{sender} palus krüptovõtmete verifitseerimist", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "{sender} alustas krüptovõtmete verifitseerimist", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "incomingMessages": "Saabuvad sõnumid", + "stickers": "Kleepsud", + "discover": "Otsi ja leia", + "commandHint_ignore": "Eira seda Matrixi kasutajatunnust", + "commandHint_unignore": "Lõpeta selle Matrixi kasutajatunnuse eiramine", + "unreadChatsInApp": "{appname}: {unread} lugemata vestlust", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "globalChatId": "Üldine vestluse tunnus", + "accessAndVisibilityDescription": "Kes võib selle vestlusega liituda ja kuidas on võimalik seda vestlust leida.", + "hideRedactedMessagesBody": "Kui keegi muudab sõnumit, siis teda enam ei kuvataks vestluses.", + "usersMustKnock": "Kasutajad peavad uksele koputama", + "noOneCanJoin": "Mitte keegi ei saa liituda", + "knocking": "Koputus uksele", + "chatCanBeDiscoveredViaSearchOnServer": "Vestluse või jututoa saad leida otsingu abil serverist {server}", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "publicChatAddresses": "Vestluse avalik aadress", + "noDatabaseEncryption": "Andmebaasi krüptimine pole sellel platvormil toetatud", + "knock": "Koputa uksele", + "appLockDescription": "Kui sa rakendust parasjagu ei kasuta, siis lukusta ta PIN-koodiga", + "accessAndVisibility": "Hõlbustus, ligipääsetavus ja nähtavus", + "calls": "Kõned", + "customEmojisAndStickers": "Kohandatud emotikonid ja kleepsud", + "customEmojisAndStickersBody": "Lisa või jaga kohandatud emotikone või kleepsupakke, mida võiks kasutada igas vestluses.", + "hideRedactedMessages": "Peida muudetud sõnumid", + "hideInvalidOrUnknownMessageFormats": "Peida vigase või tundmatu vorminguga sõnumid", + "passwordRecoverySettings": "Salasõna taastamise seadistused", + "createNewAddress": "Loo uus aadress", + "thereAreCountUsersBlocked": "Hetkel on {count} blokeeritud kasutajat.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "searchIn": "Otsi vestlusest „{chat}“...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "searchMore": "Otsi veel...", + "gallery": "Galerii", + "files": "Failid", + "swipeRightToLeftToReply": "Vastamiseks viipa paremalt vasakule", + "noMoreChatsFound": "Rohkem vestlusi ei leidu...", + "unread": "Lugemata", + "space": "Kogukond", + "goToSpace": "Vaata kogukonda: {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "markAsUnread": "Märgi mitteloetuks", + "userLevel": "{level} - kasutaja", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "moderatorLevel": "{level} - moderaator", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "adminLevel": "{level} - peakasutaja", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeTheVisibilityOfChatHistory": "Muuda vestluse ajaloo nähtavust", + "sendRoomNotifications": "Saada @jututuba teavitusi", + "changeTheCanonicalRoomAlias": "Muuda vestluse põhilist avalikult nähtavat aadressi", + "changeGeneralChatSettings": "Muuda vestluse üldiseid seadistusi", + "inviteOtherUsers": "Kutsu teisi osalejaid sellesse vestlusesse", + "changeTheChatPermissions": "Muuda vestluse õigusi", + "changeTheDescriptionOfTheGroup": "Muuda vestluse/jututoa kirjeldust", + "chatPermissionsDescription": "Määra erinevatele kasutajatele selles vestluses vajalikud õigused. Tüüpiliselt on need 0, 50 ja 100 (vastavalt kasutajad, moderaatorid ja peakasutajad), kuid igasugused vahepealsed variatsioonid on ka võimalikud.", + "updateInstalled": "🎉 Versiooniuuendus {version} on paigaldatud!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "changelog": "Muudatuste logi", + "sendCanceled": "Saatmine on katkestatud", + "noChatsFoundHere": "Siin ei leidu veel ühtegi vestlust. Alusta uut vestlust klõpsides allpool asuvat nuppu. ⤵️", + "loginWithMatrixId": "Logi sisse Matrixi kasutajatunnuse alusel", + "doesNotSeemToBeAValidHomeserver": "Ei tundu olema ühilduv koduserver. Kas võrguaadress on ikka õige?", + "calculatingFileSize": "Arvutame faili suurust...", + "oneOfYourDevicesIsNotVerified": "Üks sinu seadmetest pole verifitseeritud", + "noticeChatBackupDeviceVerification": "Märkus: kui liidad kõik oma seadmed vestluste varundamisega, siis on nad sellega ka automaatselt verifitseeritud.", + "continueText": "Jätka", + "setWallpaper": "Määra taustapildiks", + "manageAccount": "Halda kasutajakontot", + "blur": "Hägusus:", + "opacity": "Läbipaistmatus:", + "contactServerSecurity": "Võta ühendust serveri andmeturbe eest vastutajaga", + "supportPage": "Kasutajatugi", + "serverInformation": "Serveri teave:", + "name": "Nimi", + "version": "Versioon", + "noContactInformationProvided": "Server ei jaga asjakohast kontaktteavet", + "contactServerAdmin": "Võta ühendust serveri haldajaga", + "website": "Veebisait", + "aboutHomeserver": "Koduserveri teave: {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "pleaseFillOut": "Palun täida", + "invalidUrl": "Vigane võrguaadress", + "addLink": "Lisa link", + "strikeThrough": "Läbikriipsutatud kiri", + "boldText": "Paks kiri", + "italicText": "Kaldkiri", + "unableToJoinChat": "Vestlusega liitumine ei õnnestu. Võib-olla on teine osapool juba vestluse sulgenud.", + "sendImages": "Saada {count} pilti", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "compress": "Paki kokku", + "previous": "Eelmine", + "otherPartyNotLoggedIn": "Vestluse teine osapool pole hetkel võrku loginud ega seega saa neid sõnumeid kohe kätte!", + "open": "Ava", + "appWantsToUseForLoginDescription": "Järgnevaga lubad sa, et rakendus ja veebisait jagavad teavet sinu kohta.", + "appWantsToUseForLogin": "Sisselogimiseks kasuta serverit '{server}'", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "waitingForServer": "Ootame serveri vastust...", + "synchronizingPleaseWaitCounter": " Sünkroonin… ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "newChatRequest": "📩 Uus vestluskutse", + "notificationRuleCallDescription": "Teavita kasutajat saabuvast video- või häälkõnest.", + "notificationRuleEncryptedRoomOneToOneDescription": "Teavita kasutajat kahepoolse krüptitud vestluse sõnumitest.", + "notificationRuleMasterDescription": "Ära järgi muid reegleid ja lülita kõik teavitused välja.", + "notificationRuleSuppressNoticesDescription": "Ära teavita sõnumite puhul, mis on genereeritud masinate, nt jututubade robotite poolt.", + "notificationRuleSuppressEdits": "Peida muutmised", + "notificationRuleInviteForMeDescription": "Teavita kasutajat jututoa kutse saamisel.", + "notificationRuleIsUserMentionDescription": "Teavita kasutajat, kui ta on sõnumis otseselt mainitud.", + "notificationRuleContainsDisplayNameDescription": "Teavita kasutajat, kui sõnumis leidub ta kuvatav nimi.", + "notificationRuleJitsi": "Jitsi videokõned", + "notificationRuleRoomnotif": "Jututoa üldteavitus", + "notificationRuleRoomnotifDescription": "Teavita kasutajat, kui jututuba on sõnumis otseselt mainitud viisil „@toanimi“.", + "generalNotificationSettings": "Üldised teavituste seadistused", + "roomNotificationSettings": "Jututoa teavituste seadistused", + "userSpecificNotificationSettings": "Kasutajakohaste teavituste seadistused", + "notificationRuleContainsUserName": "Kasutajanime olemasolul", + "notificationRuleSuppressNotices": "Ära teavita automaatsete sõnumite korral", + "notificationRuleMemberEventDescription": "Ära teavita sõnumite puhul, mis seotud jututubade liikmelisusega.", + "notificationRuleIsUserMention": "Kasutaja mainimised", + "notificationRuleContainsDisplayName": "Kuvatava nime sisaldumisel", + "notificationRuleIsRoomMention": "Jututoa mainimine", + "notificationRuleIsRoomMentionDescription": "Teavita kasutajat, kui jututuba on sõnumis otseselt mainitud.", + "notificationRuleTombstone": "Jututoa tegevuse lõpetamine", + "notificationRuleTombstoneDescription": "Teavita kasutajat jututoa väljalülitamisega seotud sõnumite korral.", + "notificationRuleReaction": "Reageerimised", + "notificationRuleRoomServerAcl": "Jututoa ligipääsuõigused serveris", + "notificationRuleSuppressEditsDescription": "Peida teavitused sõnumite muutmise kohta.", + "notificationRuleCall": "Kõne", + "notificationRuleEncryptedRoomOneToOne": "Kahepoolne vestlus krüptitud jututoas", + "notificationRuleRoomOneToOne": "Kahepoolne vestlus krüptimata jututoas", + "notificationRuleMessageDescription": "Teavita kasutajat üldistest sõnumitest.", + "notificationRuleEncrypted": "Krüptitud sõnumid", + "notificationRuleEncryptedDescription": "Teavita kasutajat sõnumitest krüptitud jututubades.", + "notificationRuleJitsiDescription": "Teavita kasutajat sündmustest Jitsi vidinas.", + "notificationRuleMessage": "Üldised sõnumid", + "notificationRuleServerAclDescription": "Peida teavitused ligipääsuõiguste muutuste korral serveris.", + "unknownPushRule": "Tõuketeavituse tundmatu reegel '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "more": "Lisateave", + "notificationRuleInviteForMe": "Kutsed mulle", + "notificationRuleContainsUserNameDescription": "Teavita kasutajat, kui sõnumis on tema kasutajanimi.", + "contentNotificationSettings": "Sisuteavituste seadistused", + "notificationRuleRoomServerAclDescription": "Peida teavitused jututoa ligipääsuõiguste muutuste korral serveris.", + "notificationRuleRoomOneToOneDescription": "Teavita kasutajat kahepoolse krüptimata vestluse sõnumitest.", + "notificationRuleServerAcl": "Ligipääsuõigused serveris", + "notificationRuleMemberEvent": "Jututoa liikmelisusega seotud sündmus", + "notificationRuleMaster": "Summuta kõik teavitused", + "notificationRuleReactionDescription": "Teavita kasutajat sõnumitele reageerimise korral.", + "otherNotificationSettings": "Muud teavituste seadistused", + "deletePushRuleCanNotBeUndone": "Kui sa kustutad selle teavituse seadistuse, siis seda tegevust tagasi võtta ei saa.", + "shareKeysWith": "Jaga võtmeid seadmega...", + "shareKeysWithDescription": "Missuguseid seadmeid sa usaldad, et neist võiks lugeda krüptitud vestluste sõnumeid?", + "allDevices": "Kõiki seadmeid", + "crossVerifiedDevicesIfEnabled": "Risttunnustatud seadmeid, kui see võimalus on kasutusel", + "crossVerifiedDevices": "Risttunnustatud seadmeid", + "verifiedDevicesOnly": "Vaid verifitseeritud seadmeid", + "recordAVideo": "Salvesta video", + "takeAPhoto": "Pildista", + "optionalMessage": "Sõnum (kui soovid lisada)...", + "notSupportedOnThisDevice": "See pole antud seadmes toetatud", + "enterNewChat": "Liitu uue vestlusega", + "commandHint_roomupgrade": "Uuenda see jututuba antud jututoa versioonini", + "approve": "Kiida heaks", + "pleaseWaitUntilInvited": "Palun oota seni, kuni keegi jututoast saadab sulle kutse.", + "youHaveKnocked": "Sa oled koputanud", + "countInvited": "{count} kutsutut", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "sentVoiceMessage": "🎙️ {duration} - Häälsõnum kasutajalt {sender}", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "checkList": "Kontrollnimekiri", + "commandHint_logoutall": "Logi kõikidest aktiivsetest seadmetest välja", + "commandHint_logout": "Logi oma praegusest seadmest välja", + "displayNavigationRail": "Näita mobiilis külgmist tööriistariba", + "customReaction": "Kohandatud reaktsioon", + "moreEvents": "Veel sündmusi", + "declineInvitation": "Keeldu kutsest", + "noMessagesYet": "Pole veel ühtegi sõnumit", + "longPressToRecordVoiceMessage": "Pika vajutusega saad salvestada häälsõnumi.", + "pause": "Peata", + "resume": "Jätka", + "removeFromSpaceDescription": "See vestlus eemaldatakse nüüd kogukonnast, kuid on jätkuvalt nähtav sinu vestluste loendis.", + "countChats": "{chats} vestlust", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "spaceMemberOf": "Kogukonna liige: {spaces}", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "{spaces} kogukonna liige võib uksele koputada", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "startPoll": "Koosta küsitlus", + "endPoll": "Lõpeta küsitlus", + "answersVisible": "Vastused on näha", + "pollQuestion": "Küsitluse küsimus", + "answerOption": "Valikvastus", + "addAnswerOption": "Lisa valikvastus", + "allowMultipleAnswers": "Luba mitu vastusevalikut", + "pollHasBeenEnded": "Küsitlus on lõppenud", + "countVotes": "{count, plural, =1{Üks hääl} other{{count} häält}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "answersWillBeVisibleWhenPollHasEnded": "Vastused on näha küsitluse lõppedes", + "replyInThread": "Vasta jutulõngas", + "countReplies": "{count, plural, =1{Üks vastus} other{{count} vastust}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "thread": "Jutulõng", + "backToMainChat": "Tagasi põhivestlusesse", + "saveChanges": "Salvesta muudatused", + "createSticker": "Loo kleeps või emoji", + "useAsSticker": "Kasuta kleepsuna", + "useAsEmoji": "Kasuta emojina", + "stickerPackNameAlreadyExists": "Selline kleepsupaki nimi on juba olemas", + "newStickerPack": "Uus kleepsupakk", + "stickerPackName": "Kleepsupaki nimi", + "attribution": "Autoriõigused", + "skipChatBackup": "Jäta vestluse varundamine vahele", + "skipChatBackupWarning": "Kas oled kindel? Kui sa pole lülitanud sisse vestluste krüptovõtmete varundust, siis võid oma seadme vahetamisel kaotada ligipääsu oma senistele sõnumitele.", + "changedTheChatDescription": "{username} muutis vestluse kirjeldust", + "changedTheChatName": "{username} muutis vestluse nime", + "noMoreResultsFound": "Rohkem tulemusi ei leidu", + "chatSearchedUntil": "Otsing vestlusest kuni {time}", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "federationBaseUrl": "Födereerimise alusaadress", + "clientWellKnownInformation": "Kliendi „.well-known“ teave:", + "baseUrl": "Alusaadress", + "identityServer": "Isikutuvastusserver:", + "versionWithNumber": "Versioon: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "Logid", + "advancedConfigs": "Täiendav seadistus", + "advancedConfigurations": "Täiendavad seadistused", + "signIn": "Logi sisse", + "createNewAccount": "Loo uus kasutajakonto", + "signUpGreeting": "FluffyChat kasutab hajutatud võrku! Vali server, kuhu tahad oma kasutajakonto lisada ning alustame!", + "signInGreeting": "Sul juba on Matrixi kasutajakonto olemas? Tere tulemast tagasi! Vali oma koduserver ja logi sisse.", + "theProcessWasCanceled": "Protsess on katkestatud.", + "join": "Liitu", + "searchOrEnterHomeserverAddress": "Otsi koduserveri aadressi või sisesta see", + "matrixId": "Matrixi kasutajatunnus", + "setPowerLevel": "Seadista õigusi", + "makeModerator": "Määra moderaatoriks", + "makeAdmin": "Määra peakasutajaks", + "removeModeratorRights": "Eemalda moderaatori õigused", + "removeAdminRights": "Eemalda peakasutaja õigused", + "powerLevel": "Õiguste tase", + "setPowerLevelDescription": "Õiguste tase on üks võimalusi kirjeldamaks seda, mida kasutaja saab jututoas teha ning see tavaliselt väljendub numbriga vahemikust 0 kuni 100.", + "owner": "Omanik", + "mute": "Summuta", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "createNewChat": "Loo uus vestlus", + "reset": "Lähtesta", + "supportFluffyChat": "Toeta FluffyChati", + "support": "Toeta meid", + "setLowPriority": "Märgi vähetähtsaks", + "unsetLowPriority": "Eemalda märkimine vähetähtsaks", + "playSoundOnNotification": "Lisa teavitusele helimärguanne", + "addTag": "Lisa silt", + "removeTag": "Eemalda silt", + "tagName": "Sildi nimi", + "createNewTag": "Lisa uus silt", + "discardEdits": "Sul on salvestamata muudatusi. Kas loobud neist?", + "@discardEdits": { + "type": "String", + "placeholders": {} + }, + "hideRoomsInSpaces": "Peida jututoad, mis on osa kogukonnast", + "possibleByYou": "Selle versiooni väljaandmine oli võimalik vaid sinu toetusele. FluffyChat jääb vabaks, avatud lähtekoodi põhiseks ja kogukonnakeskseks.", + "showThumbnailsInTimeline": "Näita piltide ja videote pisipilte", + "appSubtitle": "Turvaline suhtlus [matrix]'i võrgus", + "appDescription": "Suhtle krüptitult hajutatud [matrix] võrgustikus viisil, mis on lihtne ja kõigile kättesaadav.", + "interactiveVerification": "Interaktiivne verifitseerimine", + "interactiveVerificationDescription": "Kui asute üksteise kõrval või kasutate turvalist suhtluskanalit, siis võite kohe verifitseerida üksteise seadmed võrreldes numbreid või emojisid.", + "countUnverifiedDevices": "Selles vestluses on {count} verifitseerimata seadet.", + "@countUnverifiedDevices": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "encryptedMessage": "Krüptitud sõnum", + "unencryptedMessage": "Krüptimata sõnum", + "publicKey": "Avalik võti: {key}", + "@publicKey": { + "type": "String", + "placeholders": { + "key": { + "type": "String" + } + } + }, + "deviceIdentityKey": "Seadme identiteedi võti", + "showMore": "Näita veel", + "showLess": "Näita vähem", + "messageCanOnlyBeReadByUser": "Sinu sõnum on läbivalt krüptitud ja seda saab lugeda vaid see kasutaja:", + "messageCanOnlyBeReadByUsers": "Sinu sõnum on läbivalt krüptitud ja seda saavad lugeda vaid need kasutajad:", + "messageNotDecryptable": "Sõnum pole dekrüptitav", + "noCurve25519KeyFound": "Ühtegi curve25519 võtit ei leidu", + "@noCurve25519KeyFound": { + "type": "String", + "placeholders": {} + }, + "signedDevice": "Allkirjastatud seade", + "@signedDevice": { + "type": "String", + "placeholders": {} + }, + "unsignedDevice": "Allkirjastamata seade", + "@unsignedDevice": { + "type": "String", + "placeholders": {} + }, + "restoreBootstrapEmptyDevicesDescription": "Selle seadme verifitseerimiseks ja krüptitud sõnumite varunduse kasutamiseks palun sisesta oma kasutajakonto salafraas või taastevõti.", + "@restoreBootstrapEmptyDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "restoreBootstrapDevicesDescription": "Selle sessiooni verifitseerimiseks palun vali üks oma muudets seadmetest:", + "@restoreBootstrapDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "resetAccount": "Lähtesta kasutajakonto", + "@resetAccount": { + "type": "String", + "placeholders": {} + }, + "restoreCryptoIdentity": "Taasta krüptoidentiteet", + "@restoreCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "resetCryptoIdentity": "Lähtesta krüptoidentiteet", + "@resetCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "setUpCryptoIdentity": "Seadista krüptoidentiteet", + "@setUpCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "waitingForKeys": "Ootan võtmete laadimist… Palun hoia teine seade aktiivsena.", + "@waitingForKeys": { + "type": "String", + "placeholders": {} + }, + "noKeysTransmitted": "Mitte mingeid krüptovõtmeid ei edastatud. Palun proovi uuesti.", + "@noKeysTransmitted": { + "type": "String", + "placeholders": {} + }, + "unlock": "Ava lukustus", + "@unlock": { + "type": "String", + "placeholders": {} + }, + "openFile": "Ava fail", + "@openFile": { + "type": "String", + "placeholders": {} + }, + "resetAccountWarning": "Kui sa lähtestad oma kasutajakonto, siis kaotad igaveseks ligipääsu oma vanadele sõnumitele. Lisaks vajavad kõik sinu praegused seadmed uuesti verifitseerimist. Palun võta selline toiming ette vaid siis, kui sul pole jäänud alles enam mitte ühtegi teist seadet oma sessiooni verifitseerimiseks ning sa oled kaotanud oma taastevõtme ja salafraasi!", + "@resetAccountWarning": { + "type": "String", + "placeholders": {} + }, + "newPassphraseDescription": "FluffyChat kasutab läbivat krüptimist. Et sa ei kaotaks oma sõnumeid, turvaks oma krüptidentitedi ja krüptiks sõnumite varunduse, siis palun sisesta korralik ja tugev salafraas.", + "@newPassphraseDescription": { + "type": "String", + "placeholders": {} + }, + "newPassphrase": "Uus salafraas", + "@newPassphrase": { + "type": "String", + "placeholders": {} + }, + "repeatPassphrase": "Korda salafraasi", + "@repeatPassphrase": { + "type": "String", + "placeholders": {} + }, + "passphrasesMatch": "Salafraasid klapivad", + "@passphrasesMatch": { + "type": "String", + "placeholders": {} + }, + "passphraseLengthRequirement": "Vähemalt 12 tähemärki pikk.", + "@passphraseLengthRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseUpperAndLowerCaseRequirement": "Sisaldab suur- ja väiketähti.", + "@passphraseUpperAndLowerCaseRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseSpecialCharactersRequirement": "Sisaldab erimärke.", + "@passphraseSpecialCharactersRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseNumberRequirement": "Sisaldab vähemat ühte numbrit.", + "@passphraseNumberRequirement": { + "type": "String", + "placeholders": {} + }, + "storeRecoveryKeyDescription": "Selleks, et saaksid hiljem oma krüptitud sõnumeid ja krüptoidentiteeti taastada, palun tähenda taastevõti turvaliselt üles ja talleta kas moodsas digitaalses salasõnalaekas või vana kooli seifis.", + "@storeRecoveryKeyDescription": { + "type": "String", + "placeholders": {} + }, + "saveAsFile": "Salvesta failina", + "@saveAsFile": { + "type": "String", + "placeholders": {} + }, + "youAreReadyToStart": "Sa oled valmis alustama!", + "noUserKeyFound": "Kasutaja võtit ei leidu", + "@noUserKeyFound": { + "type": "String", + "placeholders": {} + }, + "knownSince": "Teada alates: {date}", + "@knownSince": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + } + } + }, + "today": "Täna", + "sending": "Saadan", + "generatingThumbnail": "Koostan pisipilti", + "encrypting": "Krüptin", + "uploading": "Laadin üles", + "edited": "(muudetud)", + "couldNotBeSent": "Saatmine ei õnnestunud", + "yesterday": "Eile", + "resetRecoveryKey": "Lähtesta taastevõti", + "pleaseEnter6Digits": "Rakenduse luku sisselülitamiseks sisesta palun 6 numbrit.", + "disableAppLock": "Lülita rakenduse lukk välja", + "disableAppLockAreYouSure": "Kas oled kindel, et soovid selle rakenduse luku lülitada välja?", + "enableBiometrics": "Kasuta biomeetrilist autentimist", + "disableBiometrics": "Lülita biomeetriline autentimine välja", + "useAppLock": "Kasuta rakenduse lukustust", + "unlockWithBiometrics": "Ava lukustus biomeetrilise autentimisega", + "resetPin": "Lähtesta PIN-kood", + "forwardCountMessages": "Kas edastad {count, plural, =1{ühe sõnumi} other{{count} sõnumit}}?", + "@forwardCountMessages": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "biometricsDescription": "Biomeetrilise autentimise puhul saad rakenduse lukust avada oma näo või sõrmejäljega. Konkreetsed võimalused sõltuvad sinu seadmest.", + "editImage": "Muuda pilti", + "@editImage": { + "type": "String", + "placeholders": {} + }, + "rotateLeft": "Pööra vasakule", + "@rotateLeft": { + "type": "String", + "placeholders": {} + }, + "rotateRight": "Pööra paremale", + "@rotateRight": { + "type": "String", + "placeholders": {} + }, + "mirror": "Peegelda", + "@mirror": { + "type": "String", + "placeholders": {} + }, + "save": "Salvesta", + "@save": { + "type": "String", + "placeholders": {} + }, + "draw": "Joonista", + "@draw": { + "type": "String", + "placeholders": {} + }, + "undo": "Võta tegevus tagasi", + "@undo": { + "type": "String", + "placeholders": {} + }, + "clear": "Tühjenda", + "@clear": { + "type": "String", + "placeholders": {} + }, + "eraser": "Kustutuskumm", + "@eraser": { + "type": "String", + "placeholders": {} + }, + "crop": "Kadreeri", + "@crop": { + "type": "String", + "placeholders": {} + }, + "loadingMessages": "Laadin sõnumeid…", + "buildDoesNotSupportFirebase": "See kompileeritud variant ei toeta Firebase Cloud Messaging teenust.", + "unableToRegisterDeviceForFirebase": "Seadme registreerimine Firebase Cloud Messaging teenuses ei õnnestu.", + "unifiedPushDistributors": "Unified Pushi tõuketeenuste levitajad:", + "doubleTapToReact": "Reageerimiseks topeltklõpsa", + "doubleTapToReactDescription": "Teksti valimise asemel saad reageerida sõnumil topeltklõpsamisega", + "doubleTapReaction": "Reageerimine topeltklõpsamisel", + "sendingFilesDoNotExit": "Edastan {count} faili… Palun ära sulge vaadet!", + "@sendingFilesDoNotExit": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "compressingVideo": "Pakime videot väiksemaks...", + "shareCrashReports": "Jaga krahhilogisid", + "shareCrashReportsDescription": "Kas jagad rakenduse kokkujooksmise aruandeid automaatselt arendajatega?", + "countActiveCallMembers": "Pooleliolevas kõnes on {count} osalejat", + "@countActiveCallMembers": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "enterCall": "Liitu kõnega", + "videoCallsBetaWarning": "Palun arvesta, et videokõned on veel beetajärgus. Neis võib olla vigu ja ootamatusi. Kui midagi niisugust peaks juhtuma, siis hea meelega sooviksime sellest teada.", + "noDevicesFound": "Ühtegi seadet ei leidu", + "incomingCall": "Telefon heliseb", + "waitingForParticipant": "Ootan osaleja järgi…", + "decline": "Keeldu", + "videoCall": "Videokõne", + "voiceCall": "Häälkõne", + "missedCall": "Märkamata kõne", + "callBack": "Helista tagasi", + "hangUp": "Lõpeta kõne", + "startCall": "Helista", + "selectCamera": "Vali kaamera", + "selectMicrophone": "Vali mikrofon", + "selectSpeaker": "Vali kõlar", + "toggleMicrophone": "Lülita mikrofon sisse/välja", + "toggleCamera": "Lülita kaamera sisse/välja", + "startScreensharing": "Alusta ekraanijagamist", + "stopScreensharing": "Lõpeta ekraanijagamine", + "raiseHand": "Anna käega märku", + "stopRaiseHand": "Lõpeta käega märkuandmine", + "accountsAndSettings": "Kasutajakontod ja seadistused", + "@accountsAndSettings": { + "type": "String", + "placeholders": {} + }, + "preferSpeaker": "Eelista esinejat", + "unexpectedErrorOccurded": "Kahjuks tekkis ootamatu viga: {msg}", + "@unexpectedErrorOccurded": { + "placeholders": { + "msg": { + "type": "String" + } + } + }, + "incomingCallFrom": "Kõne kasutajalt {user}", + "@incomingCallFrom": { + "placeholders": { + "user": { + "type": "String" + } + } + } +} diff --git a/lib/l10n/intl_eu.arb b/lib/l10n/intl_eu.arb new file mode 100644 index 0000000..0517d77 --- /dev/null +++ b/lib/l10n/intl_eu.arb @@ -0,0 +1,2579 @@ +{ + "@@locale": "eu", + "@@last_modified": "2021-08-14 12:41:10.062383", + "about": "Honi buruz", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Onartu", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username}(e)k gonbidapena onartu du", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Kontua", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username}(e)k ertzetik ertzerako zifratzea gaitu du", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "admin": "Administratzailea", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "ezizena", + "@alias": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName}(e)k deia erantzun du", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Edonor batu daiteke", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "archive": "Fitxategia", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Batu al daitezke bisitan dauden erabiltzaileak?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Ziur zaude?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Beste pertsona egiaztatzeko, sartu zure biltegiratze segururako pasaesaldia edo berreskuratze-gakoa.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "{username}(r)en egiaztaketa-eskaera onartu?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "banFromChat": "Txatera batzeko debekua ezarri", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Kanporatuta", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username}(e)k {targetName}(r)i debekua ezarri dio", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Blokeatu gailua", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "cancel": "Utzi", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username}(e)k txataren abatarra aldatu du", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username}(e)k txataren baimenak aldatu ditu", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username}(e)k bere ezizena aldatu du. Aurrerantzean '{displayname}' izango da", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username}(e)k bisitarien sarbide-arauak aldatu ditu", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username}(e)k bisitarien arauak aldatu ditu: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username}(e)k historiaren ikusgaitasuna aldatu du", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username}(e)k historiaren ikusgaitasuna {rules}-(e)ra aldatu du", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username}(e)k batzeko arauak aldatu ditu", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username}(e)k batzeko arauak aldatu ditu: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username}(e)k profileko abatarra aldatu du", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username}(e)k gelaren ezizena aldatu du", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username}(e)k gonbidapen-esteka aldatu du", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changeTheHomeserver": "Aldatu zerbitzaria", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Aldatu itxura", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Taldearen izena aldatu", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "Zifratzea hondatu egin da", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Txata", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Txataren xehetasunak", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Aukeratu pasahitz sendo bat", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "close": "Itxi", + "@close": { + "type": "String", + "placeholders": {} + }, + "compareEmojiMatch": "Konparatu emojiak", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Konparatu zenbakiak", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Kontaktua taldera gonbidatu da", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Arbelera kopiatu da", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Kopiatu", + "@copy": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Ezin izan da mezua deszifratu: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count} partaide", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Sortu", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username}(e)k txata sortu du", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "currentlyActive": "Une honetan aktibo", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Iluna", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "delete": "Ezabatu", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Mezuak ezabatu", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Gailuak", + "@devices": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Ezizena aldatu da", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Deskargatu fitxategia", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Editatu ezizena", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Emotea badago lehendik ere!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Emotearen laburdura ez da baliozkoa!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Laburdura", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Txata hutsik dago", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Ezingo duzu zifratzea ezgaitu. Ziur zaude?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encryption": "Zifratzea", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Zifratzea ez dago gaituta", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName}(e)k deia amaitu du", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "forward": "Birbidali", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Batzeaz geroztik", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Gonbidapenaz geroztik", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Taldea", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "Taldea publikoa da", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groupWith": "{displayname} duen taldea", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Ez, bisitariak ez daude baimenduta", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Bai, bisitariak batu daitezke", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username}(e)k {targetName}(r)en gonbidapena atzera bota du", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Laguntza", + "@help": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Pasaesaldi edo berreskuratze-gakoa ez da zuzena", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Kontaktuak gonbidatu", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Gonbidatu kontaktua {groupName}(e)ra", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "Gonbidatuta", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username}(e)k {targetName} gonbidatu du", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Gonbidatutako erabiltzaileak solik", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username}(e)k FluffyChatera gonbidatu zaitu.\n1. Bisitatu https://fluffychat.im eta instalatu aplikazioa\n2. Eman izena edo hasi saioa\n3. Ireki gonbidapen-esteka:\n{link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "idazten ari da…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} txatera batu da", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Batu gelara", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username}(e)k {targetName} kanporatu du", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username}(e)k {targetName} kanporatu eta debekua ezarri dio", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Txatetik kanporatu", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Azkenekoz aktibo: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Irten", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Txatetik irten da", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Argia", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Kargatu {count} partaide gehiago", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "Kargatzen… itxaron.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Kargatu gehiago…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "login": "Hasi saioa", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Hasi saioa {homeserver}(e)n", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Amaitu saioa", + "@logout": { + "type": "String", + "placeholders": {} + }, + "moderator": "Moderatzailea", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Mututu txata", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Mezu berria FluffyChaten", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Egiaztaketa-eskaera berria!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "no": "Ez", + "@no": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Ez da emoterik aurkitu. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Ez dirudi Firebase Cloud Messaging zure mugikorrean erabilgarri dagoenik. Jakinarazpenak jasotzeko ntfy instalatzea gomendatzen dugu. ntfy edo beste Unified Push hornitzaileren batekin, push jakinarazpenak jaso ditzazkezu datuentzako segurua den modu batean. ntfy PlayStore edo F-Droid dendetatik deskarga dezakezu.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Baimenik gabe", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Ez da gelarik aurkitu…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "ok": "Ados", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Gakoen online babeskopia gaituta dago", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Hara, zerbaitek huts egin du…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Ireki aplikazioa mezuak irakurtzeko", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Ireki kamera", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "pasaesaldia edo berreskuratze-gakoa", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Pasahitza", + "@password": { + "type": "String", + "placeholders": {} + }, + "pin": "Finkatu", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Sartu zure pasahitza", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Sartu zure erabiltzaile-izena", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Gela publikoak", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username}(e)k gertaera bat atzera bota du", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "reject": "Baztertu", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username}(e)k gonbidapena baztertu du", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Kendu", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Kendu gainerako gailu guztiak", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Kendu txatean duen debekua", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "reply": "Erantzun", + "@reply": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Gela bertsio-berritu da", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "send": "Bidali", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Bidali mezua", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAudio": "Bidali audioa", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Bidali fitxategia", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Bidali irudia", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Bidali bideoa", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username}(e)k fitxategia bidali du", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username}(e)k audioa bidali du", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username}(e)k irudia bidali du", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username}(e)k pegatina bidali du", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username}(e)k bideoa bidali du", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName}(e)k deiaren informazioa bidali du", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setStatus": "Ezarri egoera", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Ezarpenak", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Partekatu", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username}(e)k kokapena partekatu du", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "skip": "Saltatu", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Iturburu kodea", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName}(e)k deia hasi du", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "statusExampleMessage": "Zer moduz zaude gaur?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Bidali", + "@submit": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Sistemak darabilena", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Ez datoz bat", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Bat datoz", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Saiatu berriro bidaltzen", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username}(e)k {targetName}(r)i debekua kendu dio", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Desblokeatu gailua", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Gailu ezezaguna", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Zifratze-algoritmo ezezaguna", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "'{type}' gertaera ezezaguna", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Utzi txata mututzeari", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Utzi finkatzeari", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} eta beste {count} idazten ari dira…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} eta {username2} idazten ari dira…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} idazten ari da…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪 {username}(e)k txata utzi du", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username}(e)k {type} gertaera bat bidali du", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verifyStart": "Abiarazi egiaztaketa", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Ondo egiaztatu duzu!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Beste kontua egiaztatzen", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Txat-historiaren ikusgaitasuna", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Partaide guztientzat ikusgai", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Edonorentzat ikusgai", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Ahozko mezua", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Kideak eskaera onartuko zain…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Kideak emojia onartuko zain…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Kideak zenbakiak onartuko zain…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Nor batu daiteke talde honetara", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Idatzi mezua…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Bai", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Zeu", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Ez duzu txat honetan parte hartzen honezkero", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Txat honetan debekua ezarri dizute", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Editatu gelaren aliasak", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "chats": "Txatak", + "@chats": { + "type": "String", + "placeholders": {} + }, + "emojis": "Emojiak", + "unsupportedAndroidVersion": "Android bertsioa ez da bateragarria", + "unsupportedAndroidVersionLong": "Funtzio honek Android bertsio berriago bat behar du. Egiaztatu eguneraketak ote dauden edo begiratu Lineage OS-ek zure gailuarentzat aukerarik eskaintzen duen.", + "commandHint_ban": "Debekatu erabiltzailea gela honetan", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_clearcache": "Ezabatu katxea", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_create": "Sortu taldeko-txat huts bat\nErabili --no-encyption zifratzea desgaitzeko", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_op": "Zehaztu erabiltzaile honen botere-maila (defektuz: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "Bidali formaturik gabeko testua", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "Bidali erantzuna erreakzio gisa", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_send": "Bidali testua", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "createNewSpace": "Gune berria", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Editatu blokeatutako zerbitzariak", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Gelaren abatarra editatu", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Zifratuta", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "enterAnEmailAddress": "Sartu helbide elektroniko bat", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Errorea kokapena lortzerakoan: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "groups": "Taldeak", + "@groups": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Ezkutatu gertaera ezezagunak", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} erabiltzaile idazten ari dira…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "notifications": "Jakinarazpenak", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "oneClientLoggedOut": "Zure gailuetako batek saioa amaitu du", + "addAccount": "Gehitu kontua", + "editBundlesForAccount": "Editatu kontu honetarako sortak", + "oopsPushError": "Hara! Zoritxarrez, errore bat gertatu da push jakinarazpenak ezartzerakoan.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Gorde fitxategia", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "all": "Guztia", + "@all": { + "type": "String", + "placeholders": {} + }, + "next": "Hurrengoa", + "@next": { + "type": "String", + "placeholders": {} + }, + "removeFromBundle": "Kendu sorta honetatik", + "or": "Edo", + "@or": { + "type": "String", + "placeholders": {} + }, + "link": "Esteka", + "privacy": "Pribatutasuna", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "redactMessage": "Bota mezua atzera", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Jarraitu webguneko argibideak eta sakatu 'Hurrengoa'.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "reason": "Arrazoia", + "@reason": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Salatu mezua", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "status": "Egoera", + "@status": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Zure gako publikoa", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "time": "Ordua", + "edit": "Editatu", + "@edit": { + "type": "String", + "placeholders": {} + }, + "mention": "Aipatu", + "@mention": { + "type": "String", + "placeholders": {} + }, + "repeatPassword": "Idatzi berriro pasahitza", + "addEmail": "Gehitu ePosta", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Ziur zaude saioa amaitu nahi duzula?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Kopiatu arbelera", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Ez ikusia egindako erabiltzaileak", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "security": "Segurtasuna", + "@security": { + "type": "String", + "placeholders": {} + }, + "autoplayImages": "Automatikoki abiarazi pegatina eta emote animatuak", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "sendOnEnter": "Bidali enter sakatuz", + "cantOpenUri": "Ezin da {uri} URIa ireki", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changeDeviceName": "Aldatu gailuaren izena", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changePassword": "Aldatu pasahitza", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Aldatu abatarra", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Txataren babeskopia", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Txata konfiguratu", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "Edukia zerbitzariko administratzaileei jakinarazi zaie", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "setAsCanonicalAlias": "Ezarri alias nagusi bezala", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "appLock": "Aplikazioa blokeatzea", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "Gehitu gunera", + "badServerLoginTypesException": "Zerbitzariak ondorengo aukerak onartzen ditu saioa hasteko:\n{serverVersions}\nBaina aplikazioak hauek onartzen ditu bakarrik:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "commandHint_dm": "Hasi banakako txat bat\nErabili --no-encyption zifratzea desgaitzeko", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_leave": "Utzi gela hau", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "blocked": "Blokeatuta", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "commandInvalid": "Komandoa ez da baliozkoa", + "@commandInvalid": { + "type": "String" + }, + "commandHint_myroomnick": "Ezarri zure ezizena gela honetarako", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "ignore": "Ezikusi", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "Kokapen zerbitzuak ezgaituta daude. Gaitu zure kokapena partekatu ahal izateko.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "directChats": "Banakako txatak", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Gaitu zifratzea", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Estekan sakatu dut", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "Oraindik ez duzu pasahitza berreskuratzeko modurik gehitu.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Ordezkatu gela bertsio berriago batekin", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "search": "Bilatu", + "@search": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Helbide hauekin pasahitza berreskuratu dezakezu.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Zergatik salatu nahi duzu?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "openGallery": "Ireki bilduma", + "pinMessage": "Finkatu gelan", + "reactedWith": "{sender}(e)k {reaction}(r)ekin erreakzionatu du", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "confirmEventUnpin": "Ziur zaude gertaera finaktzeari utzi nahi diozula?", + "markAsRead": "Markatu irakurritzat", + "clearArchive": "Ezabatu artxiboa", + "commandHint_html": "Bidali testua HTML formatuan", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Gonbidatu erabiltzailea gela honetara", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "Batu adierazitako gelara", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "Kendu erabiltzaile hori gela honetatik", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_me": "Deskribatu zure burua", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_myroomavatar": "Ezarri zure irudia gela honetarako (mxc-uri bidez)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_unban": "Kendu erabiltzaileak gela honetan duen debekua", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandMissing": "{command} ez da komandoa.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "commandHint_discardsession": "Baztertu saioa", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "deactivateAccountWarning": "Honek zure kontua desaktibatuko du. Ezin da desegin! Ziur zaude?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Erabiltzaile berrien defektuzko botere-maila", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Ezabatu kontua", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Gaitu emote-sorta txat guztietarako", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "fontSize": "Letraren tamaina", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "Kokapen baimena ukatu da. Eman zure kokapena partekatzeko baimena.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "messages": "Mezuak", + "@messages": { + "type": "String", + "placeholders": {} + }, + "newChat": "Txat berria", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Ez dago konexiorik zerbitzariarekin", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Zifratzea aktiba dezakezu soilik gelak publikoa izateari utzi badio.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} ez da matrix zerbitzari bat, {server2} erabili nahi duzu haren ordez?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "scanQrCode": "Eskaneatu QR kodea", + "obtainingLocation": "Kokapena atzitzen…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "addToBundle": "Gehitu sortara", + "bundleName": "Sortaren izena", + "openInMaps": "Ireki mapen aplikazioan", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "participant": "Partaide", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Pasahitza ahaztu dut", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Pasahitza aldatu da", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Pasahitzaren berreskurapena", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Aukeratu sartzeko kode bat", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Sakatu ePostako estekan eta ondoren jarraitu.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Sartu zure PINa", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Kendu zure abatarra", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Gelaren bertsioa", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Bidali testu bezala", + "@sendAsText": { + "type": "String" + }, + "sendMessages": "Mezuak bidali", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "shareLocation": "Partekatu kokapena", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "Gunea publikoa da", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Gunearen izena", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Sinkronizatzen… itxaron.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Eskaera gehiegi. Saiatu berriro geroago!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "unverified": "Egiaztatu gabe(a)", + "verified": "Egiaztatuta", + "@verified": { + "type": "String", + "placeholders": {} + }, + "warning": "Kontuz!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "ePosta bat bidali dizugu", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Nork zer egin dezakeen", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "messageInfo": "Mezuaren xehetasunak", + "sender": "Igorlea", + "removeFromSpace": "Kendu gunetik", + "reportUser": "Salatu erabiltzailea", + "youJoinedTheChat": "Txatera batu zara", + "youAcceptedTheInvitation": "👍 Gonbidapena onartu duzu", + "youBannedUser": "{user}(r)i debekua ezarri diozu", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youHaveWithdrawnTheInvitationFor": "{user}(r)i luzatutako gonbidapena baliogabetu duzu", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 {user}(e)k gonbidatu zaitu", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 {user} gonbidatu duzu", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKicked": "👞 {user} kanporatu duzu", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKickedAndBanned": "🙅 {user} kanporatu eta debekua ezarri diozu", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "{user}(r)i debekua kendu diozu", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youRejectedTheInvitation": "Gonbidapena baztertu duzu", + "users": "Erabiltzaileak", + "storeInAndroidKeystore": "Gorde Android KeyStore-n", + "dehydrate": "Esportatu saioa eta ezabatu gailua", + "dehydrateWarning": "Ekintza hau ezin da desegin. Egiaztatu babeskopia toki seguruan gorde duzula.", + "hydrate": "Lehengoratu babeskopia bat erabiliz", + "storeSecurlyOnThisDevice": "Gorde gailu honetan modu seguruan", + "countFiles": "{count} fitxategi", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "user": "Erabiltzailea", + "custom": "Neurrira egindakoa", + "storeInAppleKeyChain": "Gorde Apple KeyChain-en", + "confirmMatrixId": "Baieztatu zure Matrix IDa kontua ezabatu ahal izateko.", + "newSpace": "Gune berria", + "whyIsThisMessageEncrypted": "Zergatik ezin da mezu hau irakurri?", + "noKeyForThisMessage": "Mezua gailu honetan saioa hasi baino lehen bidali bazen gertatu daiteke.\n\nBeste aukera bat igorleak zure gailua blokeatu izana da, edo zerbaitek huts egin izana interneteko konexioan.\n\nMezua beste saio batean irakur dezakezu? Hala bada, mezua transferitu dezakezu! Zoaz Ezrpenetara > Gailuak eta baieztatu zure gailuek bata bestea egiaztatu dutela. Gela irekiko duzun hurrengo aldian eta bi saioak aurreko planoan irekita daudenean, gakoak automatikoki partekatuko dira.\n\nEz duzu gakorik galdu nahi saioa amaitu edo gailuak aldatzen dituzunean? Baieztatu ezarpenetan txaten babeskopiak gaituta dituzula.", + "supposedMxid": "Hau {mxid} izan behar da", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "commandHint_markasgroup": "Markatu talde bezala", + "commandHint_markasdm": "Markatu mezu-zuzen gela bezala Matrix ID jakin honentzat", + "wasDirectChatDisplayName": "Txata hutsik dago ({oldDisplayName} zen lehen)", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "noBackupWarning": "Adi! Txataren babeskopia gaitzen ez baduzu, ezingo dituzu zifratutako txatak atzitu. Oso gomendagarria da txaten babeskopia gaitzea saioa amaitu baino lehen.", + "doNotShowAgain": "Ez erakutsi berriro", + "fileIsTooBigForServer": "Ezin da bidali! Zerbitzariak gehienez {max}-ko eranskinak onartzen ditu.", + "noOtherDevicesFound": "Ez da beste gailurik aurkitu", + "newSpaceDescription": "Guneek txatak taldekatzea ahalbidetzen dute eta komunitate pribatu edo publikoak osatzea.", + "disableEncryptionWarning": "Segurtasun arrazoiak direla-eta, ezin duzu lehendik zifratuta zegoen txat bateko zifratzea ezgaitu.", + "encryptThisChat": "Zifratu txata", + "commandHint_hug": "Bidali besarkada", + "hugContent": "{senderName}(e)k besarkatu zaitu", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "sorryThatsNotPossible": "Barka… hori ez da posible", + "reopenChat": "Ireki txata berriro", + "commandHint_googly": "Bidali begi dibertigarri batzuk", + "commandHint_cuddle": "Bidali besarkada samurra", + "googlyEyesContent": "{senderName}(e)k begi dibertigarri batzuk bidali dizkizu", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "jumpToLastReadMessage": "Joan irakurritako azken mezura", + "reportErrorDescription": "😭 O ez! Zerbaitek huts egin du. Nahi izanez gero, eman garatzaileei errorearen berri.", + "cuddleContent": "{senderName}(e)k samurki besarkatu zaitu", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "readUpToHere": "Honaino irakurrita", + "fileHasBeenSavedAt": "Fitxategia {path}(e)n gorde da", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "jump": "Joan", + "openLinkInBrowser": "Ireki esteka nabigatzailean", + "report": "salatu", + "notAnImage": "Ez da irudi-fitxategia.", + "importNow": "Inportatu orain", + "importEmojis": "Inportatu emojiak", + "importFromZipFile": "Inportatu .zip fitxategi batetik", + "exportEmotePack": "Esportatu emote-sorta .zip gisa", + "replace": "Ordezkatu", + "sendTypingNotifications": "Jakinarazi idazten nagoela", + "setColorTheme": "Ezarri kolore-gaia:", + "tryAgain": "Saiatu berriro", + "messagesStyle": "Mezuak:", + "chatDescription": "Txataren deskribapena", + "invalidServerName": "Zerbitzari-izenak ez du balio", + "chatPermissions": "Txataren baimenak", + "setChatDescription": "Ezarri txataren deskribapena", + "redactedBy": "{username}(e)k atzera bota du", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "optionalRedactReason": "(Aukerakoa) Mezua atzera botatzearen arrazoia…", + "redactedByBecause": "{username}(e)k atzera bota du \"{reason}\" dela-eta", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "redactMessageDescription": "Mezua elkarrizketa honetako partaide guztientzat botako da atzera. Ezin da desegin.", + "wrongPinEntered": "PIN okerra! Saiatu berriro {seconds} segundu barru…", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "noChatDescriptionYet": "Ez da txaterako deskribapenik sortu oraindik.", + "chatDescriptionHasBeenChanged": "Txataren deskribapena aldatu da", + "shareInviteLink": "Partekatu gonbidapen-esteka", + "emoteKeyboardNoRecents": "Oraintsu erabilitako emoteak hemen ageriko dira…", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "createGroup": "Sortu taldea", + "invite": "Gonbidatu", + "invalidInput": "Sartu duzunak ez du balio!", + "inviteGroupChat": "📨 Taldeko txatera gonbidapena", + "banUserDescription": "Erabiltzailea txatetik kanporatu eta berriro sartzeko debekua ezarriko zaio; ezingo da berriro sartu debekua kendu arte.", + "removeDevicesDescription": "Gailu honetako saioa amaituko da eta ezingo duzu mezurik jaso aurrerantzean.", + "unbanUserDescription": "Erabiltzailea txatera berriro sartu ahal izango da berak nahi izanez gero.", + "pushNotificationsNotAvailable": "Push jakinarazpenak ez daude erabilgarri", + "makeAdminDescription": "Behin erabiltzaile hau administratzaile eginda, litekeena da desegin ezin izatea zuk dituzun baimenak izango dituelako.", + "archiveRoomDescription": "Txata artxibategira mugituko da. Beste erabiltzaileek txatetik alde egin duzula ikusi ahal izango dute.", + "hasKnocked": "🚪 {user}(e)k baimena eskatu du", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "learnMore": "Gehiago irakurri", + "roomUpgradeDescription": "Gela bertsio berri gisa birsortuko da txata. Partaide guztiei jakinaraziko zaie txat berrira aldatu behar direla. Gehiago irakur dezakezu gela bertsioei buruz ondorengo estekan: https://spec.matrix.org/latest/rooms/", + "pleaseEnterANumber": "Sartu 0 baino zenbaki handiago bat", + "kickUserDescription": "Erabiltzailea txatetik kanporatu da baina ez zaio debekua ezarri. Txat publikoen kasuan, edozein momentutan batu daiteke berriro.", + "createGroupAndInviteUsers": "Sortu talde bat eta gonbidatu partaideak", + "groupCanBeFoundViaSearch": "Bilaketa erabiliz aurkitu daiteke taldea", + "noUsersFoundWithQuery": "Zoritxarrez ez da \"{query}\" duen erabiltzailerik aurkitu. Egiaztatu zuzen idatzi duzula.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "yourGlobalUserIdIs": "Zure erabiltzaile-ID orokorra: ", + "commandHint_sendraw": "Bidali json gordina", + "wrongRecoveryKey": "Barka baina ez dirudi berreskuratze-gako zuzena denik.", + "groupName": "Taldearen izena", + "searchChatsRooms": "Bilatu #txatak, @erabiltzaileak…", + "blockListDescription": "Gogaitzen zaituzten erabiltzaileak blokeatu ditzakezu. Ez duzu blokeatutakoen zerrendan dituzun erabiltzaileen mezurik edo gelara batzeko gonbidapenik jasoko.", + "blockedUsers": "Blokeatutako erabiltzaileak", + "block": "Blokeatu", + "blockUsername": "Ezikusi erabiltzaile-izena", + "databaseMigrationTitle": "Datu-basea optimizatu da", + "databaseMigrationBody": "Itxaron, litekeena da tarte bat behar izatea.", + "publicSpaces": "Gune publikoak", + "passwordIsWrong": "Sartu duzun pasahitza okerra da", + "pleaseEnterYourCurrentPassword": "Sartu oraingo pasahitza", + "nothingFound": "Ez da ezer aurkitu…", + "newPassword": "Pasahitz berria", + "passwordsDoNotMatch": "Pasahitzak ez datoz bat", + "select": "Hautatu", + "pleaseChooseAStrongPassword": "Aukeratu pasahitz sendo bat", + "addChatOrSubSpace": "Gehitu txata edo azpi-gunea", + "leaveEmptyToClearStatus": "Utzi hutsik zure egoera garbitzeko.", + "joinSpace": "Batu gunera", + "searchForUsers": "Bilatu @erabiltzaileak…", + "thisDevice": "Gailu hau:", + "initAppError": "Errorea aplikazioa abiaraztean", + "sessionLostBody": "Zure saioa galdu da. Jakinarazi errorea garatzaileei {url} helbidean. Errorearen mezua ondorengoa da: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "restoreSessionBody": "Aplikazioa babeskopia erabiliz saioa leheneratzen saiatuko da. Jakinarazi errorea garatzaileei {url} helbidean. Errorearen mezua ondorengoa da: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "sendReadReceipts": "Bidali irakurri izanaren agiria", + "formattedMessages": "Formatua duten mezuak", + "verifyOtherDevice": "🔐 Egiaztatu beste gailu bat", + "acceptedKeyVerification": "{sender}(e)k gakoaren egiaztapena onartu du", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "canceledKeyVerification": "{sender}(e)k gakoen egiaztapena ezeztatu du", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "requestedKeyVerification": "{sender}(e)k gakoen egiaztapena galdegin du", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "sendReadReceiptsDescription": "Txateko beste partaideek mezu bat irakurri duzula ikus dezakete.", + "completedKeyVerification": "{sender}(e)k gakoen egiaztapena osatu du", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "{sender} gakoak egiaztatzeko prest dago", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "verifyOtherDeviceDescription": "Beste gailu bat egiaztatzean, gailu horiek gakoak truka ditzakete, eta segurtasun orokorra handitu. 💪 Egiaztapena hasten duzunean, laster-leiho bat agertuko da bi gailuetan. Bertan, elkarrekin alderatu behar diren emoji edo zenbaki batzuk ikusiko dituzu. Hobe da bi gailuak eskura izatea egiaztapena hasi aurretik. 🤳", + "verifyOtherUserDescription": "Beste erabiltzaile bat egiaztatzen baduzu, ziur egon zaitezke nori idazten ari zaren. 💪\n\nEgiaztapena hasten duzunean, zuk eta beste erabiltzaileak laster-leiho bat ikusiko duzue aplikazioan. Bertan, elkarrekin alderatu behar diren emoji edo zenbaki batzuk erakutsiko dira.\n\nBideo-dei bat hastea edo aurrez-aurre batzea da horretarako modurik onena. 👭", + "formattedMessagesDescription": "Erakutsi mezu aberatsen edukia markdown erabiliz, testu lodia esaterako.", + "sendTypingNotificationsDescription": "Txateko beste partaideek mezu berri bat idazten ari zarela ikus dezakete.", + "verifyOtherUser": "🔐 Egiaztatu beste erabiltzaile bat", + "startedKeyVerification": "{sender}(e)k gakoen egiaztapena hasi du", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "incomingMessages": "Jasotako mezuak", + "discover": "Arakatu", + "stickers": "Pegatinak", + "commandHint_unignore": "Utzi Matrix ID honi muzin egiteari", + "commandHint_ignore": "Muzin egin Matrix ID honi", + "unreadChatsInApp": "{appname}: {unread} mezu irakurri gabe", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "noDatabaseEncryption": "Plataforma honetan ezin da datu-basea zifratu", + "usersMustKnock": "Erabiltzaileek baimena eskatu behar dute", + "knock": "Eskatu baimena", + "knocking": "Baimena eskatzen", + "chatCanBeDiscoveredViaSearchOnServer": "Txata {server}(e)n bilaketa eginez aurkitu daiteke", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "thereAreCountUsersBlocked": "Une honetan {count} erabiltzaile daude blokeatuta.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "appLockDescription": "Blokeatu aplikazioa pin kode batekin erabiltzen ari ez zarenean", + "accessAndVisibility": "Sarbidea eta ikusgaitasuna", + "accessAndVisibilityDescription": "Nork du txat honetara batzeko baimena eta nola aurkitu daiteke txata.", + "customEmojisAndStickers": "Emoji eta pegatina propioak", + "customEmojisAndStickersBody": "Gehitu edo partekatu edozein txatetan erabil daitezkeen emoji edo pegatina propioak.", + "hideRedactedMessages": "Ezkutatu atzera botatako mezuak", + "hideRedactedMessagesBody": "Norbaitek mezuren bat atzera botaz gero, mezua txatetik kenduko da, abisurik gabe.", + "hideInvalidOrUnknownMessageFormats": "Ezkutatu mezuen formatu ezezagun edo baliogabea", + "passwordRecoverySettings": "Pasahitza berreskuratzeko ezarpenak", + "globalChatId": "Txat ID orokorra", + "calls": "Deiak", + "noOneCanJoin": "Ezin da inor batu", + "publicChatAddresses": "Txataren helbide publikoak", + "createNewAddress": "Sortu helbide berria", + "files": "Fitxategiak", + "gallery": "Galeria", + "searchIn": "Bilatu {chat} txatean...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "searchMore": "Bilatu gehiago...", + "swipeRightToLeftToReply": "Herrestatu eskuin-ezker erantzuteko", + "noMoreChatsFound": "Ez da beste txatik aurkitu...", + "unread": "Irakurtzeke", + "space": "Gunea", + "goToSpace": "Joan {space} gunera", + "@goToSpace": { + "type": "String", + "space": {} + }, + "markAsUnread": "Markatu irakurri gabetzat", + "adminLevel": "{level} - Administratzailea", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeTheChatPermissions": "Aldatu txataren baimenak", + "inviteOtherUsers": "Gonbidatu beste erabiltzaileak txat honetara", + "userLevel": "{level} - Erabiltzailea", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "moderatorLevel": "{level} - Moderatzailea", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "sendRoomNotifications": "Bidali @gela jakinarazpena", + "changeTheDescriptionOfTheGroup": "Aldatu txataren deskribapena", + "changeGeneralChatSettings": "Aldatu txataren ezarpen orokorrak", + "changeTheVisibilityOfChatHistory": "Aldatu txataren historiaren ikusgaitasuna", + "changeTheCanonicalRoomAlias": "Aldatu txataren helbide publiko nagusia", + "updateInstalled": "🎉 {version} bertsioa instalatu da!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "changelog": "Aldaketak", + "chatPermissionsDescription": "Definitu zer botere-maila behar den txat honetako ekintza jakinetarako. 0, 50 eta 100 botere-mailek erabiltzaileak, moderatzaileak eta administratzaileak ordezkatzen dituzte, baina edozein graduazio posible da.", + "sendCanceled": "Bidalketa bertan behera utzi da", + "noChatsFoundHere": "Ez da txatik aurkitu. Hasi norbaitekin txateatzen beheko botoia erabiliz. ⤵️", + "loginWithMatrixId": "Hasi saioa Matrix IDarekin", + "doesNotSeemToBeAValidHomeserver": "Ez dirudi zerbitzaria bateragarria denik. Zuzena da URLa?", + "calculatingFileSize": "Fitxategiaren tamaina kalkulatzen…", + "oneOfYourDevicesIsNotVerified": "Zure gailuetako bat ez dago egiaztatuta", + "noticeChatBackupDeviceVerification": "Oharra: gailu guztiak txat-babeskopiarekin konektatzen dituzunean, automatikoki egiaztatzen dira.", + "opacity": "Opakutasuna:", + "manageAccount": "Kudeatu kontua", + "setWallpaper": "Ezarri horma-irudia", + "blur": "Lausotu:", + "continueText": "Jarraitu", + "contactServerAdmin": "Jarri harremanetan zerbitzariaren administratzailearekin", + "aboutHomeserver": "{homeserver}(e)ri buruz", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "supportPage": "Laguntza orria", + "serverInformation": "Zerbitzariaren informazioa:", + "name": "Izena", + "version": "Bertsioa", + "website": "Webgunea", + "contactServerSecurity": "Jakinarazi segurtasun arazo bat", + "noContactInformationProvided": "Zerbitzariak ez du harremanetarako informaziorik zehaztu", + "boldText": "Testu lodia", + "italicText": "Testu etzana", + "invalidUrl": "URL baliogabea", + "addLink": "Gehitu esteka", + "strikeThrough": "Zirrimarra", + "pleaseFillOut": "Bete ezazu", + "unableToJoinChat": "Ezin da txatera batu. Agian besteak elkarrizketa itxiko zuen honezkero.", + "sendImages": "Bidali {count} irudi", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "compress": "Konprimatu", + "previous": "Aurrekoa", + "otherPartyNotLoggedIn": "Besteak ez du saiorik hasita eta, beraz, ezin du mezurik jaso!", + "appWantsToUseForLogin": "Erabili '{server}' saioa hasteko", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "appWantsToUseForLoginDescription": "Honenbestez, aplikazioak eta webguneak zuri buruzko informazioa partekatzea baimentzen duzu.", + "open": "Ireki", + "generalNotificationSettings": "Jakinarazpen orokorren ezarpenak", + "notificationRuleContainsUserName": "Erabiltzaile-izena dauka", + "notificationRuleMaster": "Isilarazi jakinarazpen guztiak", + "userSpecificNotificationSettings": "Erabiltzaile zehatzen jakinarazpenen ezarpenak", + "more": "Gehiago", + "newChatRequest": "📩 Txat-eskaera berria", + "contentNotificationSettings": "Edukiaren jakinarazpenen ezarpenak", + "notificationRuleContainsUserNameDescription": "Mezuan erabiltzaile-izena aipatzen denean jakinarazten du.", + "notificationRuleMasterDescription": "Gainerako arauak gainidatzi eta jakinarazpenak ezgaitzen ditu.", + "roomNotificationSettings": "Gelen jakinarazpenen ezarpenak", + "otherNotificationSettings": "Beste jakinarazpenen ezarpenak", + "waitingForServer": "Zerbitzariaren zain…", + "synchronizingPleaseWaitCounter": " Sinkronizatzen… (%{percentage})", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "notificationRuleInviteForMe": "Gonbidapena niretzat", + "notificationRuleInviteForMeDescription": "Erabiltzailea gela batera gonbidatzen dutenean jakinarazten du.", + "notificationRuleSuppressNotices": "Ezkutatu mezu automatikoak", + "notificationRuleSuppressNoticesDescription": "BOTen eta bestelako bezero automatikoen jakinarazpenak ezkutatzen ditu.", + "notificationRuleMemberEvent": "Kideen gertaera", + "notificationRuleMemberEventDescription": "Kideen gertaeren jakinarazpenak ezkutatzen ditu.", + "notificationRuleIsUserMention": "Erabiltzailea aipatzea", + "notificationRuleContainsDisplayName": "Pantaila-izena dauka", + "notificationRuleIsUserMentionDescription": "Erabiltzailea mezu zuzen batean aipatzen dutenean jakinarazten du.", + "notificationRuleContainsDisplayNameDescription": "Mezu batek erabiltzailearen pantaila-izena duenean jakinarazten du.", + "notificationRuleIsRoomMention": "Gelaren aipamena", + "notificationRuleIsRoomMentionDescription": "Gela aipatzen denean erabiltzailea jakinarazten du.", + "notificationRuleRoomnotif": "Gelaren jakinarazpena", + "notificationRuleRoomnotifDescription": "Mezu batek '@room' duenean erabiltzaileari jakinarazten dio.", + "notificationRuleTombstone": "Hilarria", + "notificationRuleReaction": "Erreakzioa", + "notificationRuleReactionDescription": "Erreakzioen jakinarazpenak ezkutatzen ditu.", + "notificationRuleTombstoneDescription": "Gela desaktibatzeko mezuei buruz jakinarazten dio erabiltzaileari.", + "notificationRuleRoomServerAcl": "Gelaren zerbitzariaren ACLa", + "notificationRuleSuppressEdits": "Ezkutatu edizioak", + "notificationRuleCall": "Deia", + "notificationRuleEncryptedRoomOneToOne": "Zifratutako bien arteko gela", + "notificationRuleSuppressEditsDescription": "Editatutako mezuen jakinarazpenak ezkutatzen ditu.", + "notificationRuleCallDescription": "Erabiltzaileari deiei buruz jakinarazten dio.", + "notificationRuleEncryptedRoomOneToOneDescription": "Erabiltzailea jakinarazten du zifratutako bien arteko geletako mezuei buruz.", + "notificationRuleRoomOneToOne": "Bien arteko gela", + "notificationRuleRoomOneToOneDescription": "Erabiltzailea jakinarazten du bien arteko geletako mezuei buruz.", + "notificationRuleMessage": "Mezua", + "notificationRuleMessageDescription": "Erabiltzailea jakinarazten du mezu orokorrei buruz.", + "notificationRuleEncrypted": "Zifratuak", + "notificationRuleEncryptedDescription": "Erabiltzailea jakinarazten du zifratutako geletako mezuei buruz.", + "notificationRuleJitsi": "Jitsi", + "notificationRuleJitsiDescription": "Erabiltzailea jakinarazten du Jitsi widgetaren gertaerei buruz.", + "notificationRuleServerAcl": "Ezkutatu zerbitzariaren ACL gertaerak", + "notificationRuleServerAclDescription": "Zerbitzariaren ACL gertaerak ezkutatzen ditu.", + "unknownPushRule": "Push arau ezezaguna '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "deletePushRuleCanNotBeUndone": "Jakinarazpen ezarpen hau ezabatzen baduzu, ezin da desegin.", + "shareKeysWith": "Partekatu gakoak…", + "allDevices": "Gailu guztiekin", + "shareKeysWithDescription": "Zein gailu hartu beharko litzateke fidagarritzat zifratutako txaten mezuak irakur ditzaten?", + "crossVerifiedDevicesIfEnabled": "Egiaztapen gurutzatuko gailuekin, gaituta badaude", + "verifiedDevicesOnly": "Egiaztatutako gailuekin soilik", + "crossVerifiedDevices": "Egiaztapen gurutzatuko gailuekin", + "takeAPhoto": "Egin argazkia", + "recordAVideo": "Grabatu bideoa", + "optionalMessage": "Mezua (aukerakoa)…", + "notSupportedOnThisDevice": "Ez da gailu honekin bateragarria", + "commandHint_roomupgrade": "Bertsio-berritu gela adierazitako gela-bertsiora", + "enterNewChat": "Sartu txat berrira", + "notificationRuleRoomServerAclDescription": "Gela-zerbitzarirako sarbide-kontroleko zerrenden (ACL) jakinarazpenak ezkutatzen ditu.", + "approve": "Onetsi", + "youHaveKnocked": "Sartzeko baimena eskatu duzu", + "pleaseWaitUntilInvited": "Orain itxaron gelako norbaitek gonbidatzen zaituen arte.", + "checkList": "Kontrol-zerrenda", + "countInvited": "{count} gonbidatu", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "sentVoiceMessage": "🎙️ {duration} - {sender}(r)en ahots-mezua", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "commandHint_logout": "Amaitu saioa gailu honetan", + "commandHint_logoutall": "Amaitu saioa aktibo dauden gailu guztietan", + "moreEvents": "Gertaera gehiago", + "displayNavigationRail": "Erakutsi nabigazio-barra mugikorrean", + "customReaction": "Erreakzio pertsonalizatua", + "declineInvitation": "Uko egin gonbidapenari", + "noMessagesYet": "Mezurik ez oraingoz", + "longPressToRecordVoiceMessage": "Sakatuta mantendu ahots-mezua grabatzeko.", + "pause": "Gelditu", + "resume": "Jarraitu", + "removeFromSpaceDescription": "Txata gunetik kenduko da, baina txaten zerrendan mantenduko da.", + "countChats": "{chats} txat", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "spaceMemberOf": "{spaces} guneko kidea", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "{spaces} guneko kideak sartzeko baimena eska dezake", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "startPoll": "Hasi bozketa", + "endPoll": "Amaitu bozketa", + "answersVisible": "Erakutsi emaitzak", + "pollQuestion": "Bozketako galdera", + "answerOption": "Erantzun-aukera", + "addAnswerOption": "Gehitu erantzun-aukera", + "allowMultipleAnswers": "Baimendu erantzun bat baino gehiago", + "pollHasBeenEnded": "Bozketa amaitu da", + "countVotes": "{count, plural, =1{Bozka bat} other{{count} bozka}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "answersWillBeVisibleWhenPollHasEnded": "Emaitzak bozketak amaitu duenean egongo dira ikusgai", + "replyInThread": "Erantzun harian", + "countReplies": "{count, plural, =1{Erantzun bat} other{{count} erantzun}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "thread": "Haria", + "backToMainChat": "Joan txat nagusira", + "changedTheChatDescription": "{username}(e)k txataren deskribapena aldatu du", + "changedTheChatName": "{username}(e)k txataren izena aldatu du", + "saveChanges": "Gorde aldaketak", + "createSticker": "Sortu pegatina edo emojia", + "attribution": "Sortzailea", + "skipChatBackup": "Ez egin txataren babeskopia", + "skipChatBackupWarning": "Ziur? Txataren babeskopia gaitzen ez baduzu, gailuz aldatuz gero mezuen sarbidea gal zenezake.", + "useAsSticker": "Erabili pegatina gisa", + "stickerPackNameAlreadyExists": "Pegatina-sortaren izena badago lehendik ere", + "newStickerPack": "Pegatina-sorta berria", + "stickerPackName": "Pegatina-sortaren izena", + "useAsEmoji": "Erabili emoji gisa", + "noMoreResultsFound": "Ez da beste emaitzarik aurkitu", + "chatSearchedUntil": "Txatean bilatu da {time} arte", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "clientWellKnownInformation": "Bezeroaren Well-Known informazioa:", + "versionWithNumber": "Bertsioa: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "Erregistroak", + "advancedConfigs": "Konfigurazio aurreratua", + "advancedConfigurations": "Konfigurazio aurreratua", + "federationBaseUrl": "Federatzeko URL oinarria", + "baseUrl": "URL oinarria", + "identityServer": "Identitate-zerbitzaria:", + "signIn": "Hasi saioa", + "createNewAccount": "Sortu kontu berria", + "signUpGreeting": "FluffyChat deszentralizatua da! Hautatu zure kontua zein zerbitzaritan sortu nahi duzun, eta hasi erabiltzen!", + "signInGreeting": "Baduzu dagoeneko Matrix kontu bat? Ongi etorri berriro ere! Hautatu zure zerbitzaria eta hasi saioa.", + "theProcessWasCanceled": "Eragiketa bertan behera utzi da.", + "join": "Batu", + "searchOrEnterHomeserverAddress": "Bilatu edo sartu zerbitzariaren helbidea", + "matrixId": "Matrix IDa", + "setPowerLevel": "Ezarri botere-maila", + "makeModerator": "Izendatu moderatzaile", + "makeAdmin": "Izendatu administrari", + "removeModeratorRights": "Kendu moderatzaile eskubideak", + "removeAdminRights": "Kendu administratzaile eskubideak", + "powerLevel": "Botere-maila", + "setPowerLevelDescription": "Botere-mailek zehazten dute kide batek zer egin dezakeen gela honetan, eta tartea 0tik 100era artekoa izan ohi da.", + "owner": "Jabea", + "mute": "Mututu", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "createNewChat": "Sortu txat berria", + "reset": "Berrezarri", + "supportFluffyChat": "Eman babesa FluffyChat-i", + "support": "Lagundu", + "setLowPriority": "Ezarri lehentasun baxua", + "unsetLowPriority": "Kendu lehentasun baxua", + "playSoundOnNotification": "Jo soinua jakinarazpenekin", + "createNewTag": "Sortu etiketa berria", + "tagName": "Etiketaren izena", + "addTag": "Gehitu etiketa", + "removeTag": "Kendu etiketa", + "discardEdits": "Gorde gabeko aldaketak daude. Baztertu nahi dituzu?", + "@discardEdits": { + "type": "String", + "placeholders": {} + }, + "showMore": "Erakutsi gehiago", + "showLess": "Erakutsi gutxiago", + "hideRoomsInSpaces": "Ezkutatu gune batean dauden gelak", + "possibleByYou": "Bertsio hau zure laguntzari esker izan da posible. FluffyChat-ek doakoa, kode irekikoa eta guztiz komunitarioa izaten jarraitzen du.", + "showThumbnailsInTimeline": "Erakutsi irudi eta bideoen iruditxoa", + "appSubtitle": "[matrix] komunikazio segurua", + "appDescription": "Komunikatu [matrix] sare deszentralizatuaren bidez, era zifratuan, mundu guztiarentzat modu erraz eta eskuragarrian.", + "interactiveVerification": "Egiaztapen interaktiboa", + "interactiveVerificationDescription": "Elkarren ondoan bazaudete edo kanal seguru baten bidez komunikatzen bazarete, gailu guztiak batera egiazta ditzakezu, segurtasun-zenbaki bat edo emoji bat konparatuz.", + "countUnverifiedDevices": "Egiaztatu gabeko {count} gailu txatean.", + "@countUnverifiedDevices": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "encryptedMessage": "Zifratutako mezua", + "unencryptedMessage": "Zifratu gabeko mezua", + "publicKey": "Gako publikoa: {key}", + "@publicKey": { + "type": "String", + "placeholders": { + "key": { + "type": "String" + } + } + }, + "deviceIdentityKey": "Gailuaren identitate-gakoa", + "waitingForKeys": "Gakoen zain… Mantendu aktibo beste gailua.", + "@waitingForKeys": { + "type": "String", + "placeholders": {} + }, + "noKeysTransmitted": "Ez da gakorik igorri. Saiatu berriro.", + "@noKeysTransmitted": { + "type": "String", + "placeholders": {} + }, + "openFile": "Ireki fitxategia", + "@openFile": { + "type": "String", + "placeholders": {} + }, + "passphraseLengthRequirement": "Gutxienez 12 karaktere behar ditu.", + "@passphraseLengthRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseUpperAndLowerCaseRequirement": "Karaktere larriak eta xeheak ditu.", + "@passphraseUpperAndLowerCaseRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseSpecialCharactersRequirement": "Karaktere bereziak dauzka.", + "@passphraseSpecialCharactersRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseNumberRequirement": "Zenbaki bat dauka.", + "@passphraseNumberRequirement": { + "type": "String", + "placeholders": {} + } +} diff --git a/lib/l10n/intl_fa.arb b/lib/l10n/intl_fa.arb new file mode 100644 index 0000000..77cd4be --- /dev/null +++ b/lib/l10n/intl_fa.arb @@ -0,0 +1,2503 @@ +{ + "@@last_modified": "2021-08-14 12:41:10.061080", + "repeatPassword": "تکرار گذرواژه", + "about": "درباره", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "پذیرش", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} دعوت را پذیرفت", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "حساب", + "@account": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "به فضا افزودن", + "appLock": "قفل برنامه", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "all": "همه", + "@all": { + "type": "String", + "placeholders": {} + }, + "addEmail": "افزودن رایانامه", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} به تماس پاسخ داد", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "هرکسی می‌تواند بپیوندد", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "archive": "بایگانی", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "مطمئن هستید؟", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "مطمئن هستید می‌خواهید خارج شوید؟", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} رمزنگاری سراسری را فعال کرد", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "admin": "مدیر", + "@admin": { + "type": "String", + "placeholders": {} + }, + "supposedMxid": "گمان میرود {mxid} باشد", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} نام نمایشی را به '{displayname}' تغییر داد", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "confirmMatrixId": "برای پاک کردن حساب، لطفاً هویت ماتریکس خود را بپذیرید.", + "changeDeviceName": "تغییر نام دستگاه", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "alias": "نام مستعار", + "@alias": { + "type": "String", + "placeholders": {} + }, + "banFromChat": "بن کردن از چت", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "آیا درخواست بازبینی {username} را می‌پذیرید؟", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "areGuestsAllowedToJoin": "آیا مهمانان اجازه پیوستن دارند؟", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "autoplayImages": "پخش خودکار شکلک‌ها و برچسب‌های متحرک", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "sendOnEnter": "فرستادن با کلید Enter", + "cancel": "رد کردن", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "changedTheChatPermissions": "{username} دسترسی‌های چت را تغییر داد", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "cantOpenUri": "نمی‌توان پیوند {uri} را باز کرد", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "banned": "محروم‌شده", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} کاربر {targetName} را محروم کرد", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "مسدود کردن دستگاه", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "مسدود‌شده", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "badServerLoginTypesException": "سرور از این نوع ورود پشتیبانی می‌کند:\n{serverVersions}\nاما برنامه تنها از این‌ها پشتیبانی می‌کند:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "changedTheChatAvatar": "{username} نماد چت را تغییر داد", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} قوانین دسترسی مهمان را تغییر داد", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} نماد نمایه را تغییر داد", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "chats": "چت ها", + "@chats": { + "type": "String", + "placeholders": {} + }, + "messages": "پیام‌ها", + "@messages": { + "type": "String", + "placeholders": {} + }, + "send": "فرستادن", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAudio": "فرستادن صدا", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "changedTheRoomAliases": "{username} نام‌های مستعار اتاق را تغییر داد", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} پیوند دعوت را تغییر داد", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "close": "بستن", + "@close": { + "type": "String", + "placeholders": {} + }, + "sendImage": "فرستادن تصویر", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "فرستادن پیام‌ها", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "changedTheHistoryVisibility": "{username} ویژگی دیدن تاریخچه را تغییر داد", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} قوانین دسترسی مهمان را به {rules} تغییر داد", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} قوانین پیوستن را به {joinRules} تغییر داد", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} ویژگی دیدن تاریخچه را به {rules} تغییر داد", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "chooseAStrongPassword": "یک گذرواژه قوی انتخاب کنید", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "تغییر پوسته", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "تغییر نام گروه", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "تغییر نماد نمایه", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "رمزنگاری مخدوش شده است", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "پاک کردن بایگانی", + "commandHint_create": "ساختن یک چت گروهی خالی\nاز «--no-encryption» برای غیرفعال کردن رمزنگاری استفاده کنید", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_dm": "شروع یک چت مستقیم\nاز «--no-encryption» برای غیرفعال کردن رمزنگاری استفاده کنید", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "sendVideo": "فرستادن ویدئو", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sender": "فرستنده", + "changedTheJoinRules": "{username} قوانین پیوستن را تغییر داد", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "chatDetails": "جزئیات چت", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "commandHint_markasdm": "علامت‌گذاری به‌عنوان اتاق پیام مستقیم با شناسه ماتریکس", + "commandHint_markasgroup": "علامت‌گذاری به‌عنوان گروه", + "commandHint_clearcache": "پاک کردن حافظه نهان", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_discardsession": "رد کردن نشست", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "groups": "گروه‌ها", + "@groups": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "برای خواندن پیام‌ها، برنامه را باز کنید", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "فرستادن پیام", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sentCallInformations": "{senderName} اطلاعات تماس را فرستاد", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "sendAsText": "فرستادن به‌عنوان متن", + "@sendAsText": { + "type": "String" + }, + "sendFile": "فرستادن پرونده", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} تماس را آغاز کرد", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "tryToSendAgain": "تلاش دوباره برای فرستادن", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "reactedWith": "{sender} با {reaction} واکنش نشان داد", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "askSSSSSign": "لطفاً عبارت عبور یا کلید بازیابی حافظه امن را وارد کنید تا شخص دیگری را امضا کنید.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "chat": "چت", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "پشتیبان چت", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "changePassword": "تغییر گذرواژه", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "تغییر سرور خانگی", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "sentAPicture": "🖼️ {username} یک تصویر فرستاد", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} یک ویدئو فرستاد", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "commandInvalid": "دستور نامعتبر", + "@commandInvalid": { + "type": "String" + }, + "commandMissing": "{command} یک دستور نیست.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "contactHasBeenInvitedToTheGroup": "مخاطب به گروه دعوت شد", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username} یک پرونده فرستاد", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username} یک صدا فرستاد", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} یک رویداد {type} فرستاد", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "weSentYouAnEmail": "یک رایانامه برای شما فرستادیم", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "بارگیری {count} شرکت‌کننده دیگر", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "sentASticker": "😊 {username} یک برچسب فرستاد", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "commandHint_ban": "محروم کردن کاربر مشخص‌شده از این اتاق", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_kick": "بیرون کردن کاربر مشخص‌شده از این اتاق", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_plain": "فرستادن متن بدون قالب", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_unban": "رد محرومیت کاربر مشخص‌شده از این اتاق", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "copy": "رونوشت", + "@copy": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "سطح دسترسی پیش‌فرض", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "پاک کردن", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "پاک کردن حساب", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "پاک کردن پیام", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "commandHint_html": "فرستادن متن با قالب HTML", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_join": "پیوستن به اتاق مشخص‌شده", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_leave": "ترک این اتاق", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_myroomnick": "تنظیم نام نمایشی برای این اتاق", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_myroomavatar": "تنظیم نماد نمایه برای این اتاق (با mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_op": "تنظیم سطح دسترسی کاربر مشخص‌شده (پیش‌فرض: ۵۰)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_react": "فرستادن پاسخ به‌عنوان واکنش", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "compareEmojiMatch": "لطفاً شکلک‌ها را مقایسه کنید", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "رونوشت به بریده‌دان", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "countParticipants": "{count} شرکت‌کننده", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "ساختن", + "@create": { + "type": "String", + "placeholders": {} + }, + "createNewSpace": "فضای جدید", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "devices": "دستگاه‌ها", + "@devices": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "نام نمایشی تغییر کرد", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "بارگیری پرونده", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "ویرایش", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "ویرایش سرورهای مسدود", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "ویرایش نام‌های مستعار اتاق", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "ویرایش نماد اتاق", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "شکلک از پیش وجود دارد!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "کد کوتاه شکلک نامعتبر است!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "چت خالی", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "به بریده‌دان رونوشت شد", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} چت را ساخت", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "darkTheme": "تیره", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "directChats": "چت های مستقیم", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "کد کوتاه شکلک", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "commandHint_me": "توصیف خود", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_send": "فرستادن متن", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "couldNotDecryptMessage": "نمی‌توان پیام را رمزگشایی کرد: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "این کار حساب شما را غیرفعال می‌کند. این کنش برگشت‌ناپذیر است! آیا مطمئن هستید؟", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "commandHint_invite": "دعوت از کاربر مشخص‌شده به این اتاق", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "compareNumbersMatch": "لطفاً اعداد را مقایسه کنید", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "تنظیمات چت", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "اکنون فعال", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}، {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "editDisplayname": "ویرایش نام نمایشی", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} دعوت {targetName} را پس گرفت", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "guestsAreForbidden": "مهمان‌ها ممنوع هستند", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "پنهان کردن رویدادهای ناشناخته", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "محتوا به مدیران سرور گزارش شد", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "از پیوستن", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "از دعوت", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "گروه", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "گروه عمومی است", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groupWith": "گروه با {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "enableEmotesGlobally": "فعال کردن بسته شکلک به‌صورت سراسری", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "فعال کردن رمزنگاری", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "نمی‌توانید رمزنگاری را غیرفعال کنید. آیا مطمئن هستید؟", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "رمزنگاری‌شده", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "رمزنگاری", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "رمزنگاری فعال نیست", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "enterAnEmailAddress": "یک نشانی رایانامه وارد کنید", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} به تماس پایان داد", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "errorObtainingLocation": "خطا در به‌دست آوردن مکان: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "fontSize": "اندازه قلم", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "هدایت", + "@forward": { + "type": "String", + "placeholders": {} + }, + "help": "کمک", + "@help": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "مهمان‌ها می‌توانند بپیوندند", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "کاربران نادیده‌گرفته شده", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "commandHint_googly": "فرستادن چند چشم گوگولی", + "googlyEyesContent": "{senderName} برای شما چشم‌های گوگولی می‌فرستد", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "ignore": "نادیده‌گرفتن", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "cuddleContent": "{senderName} شما را در آغوش می‌گیرد", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "hugContent": "{senderName} شما را بغل می‌کند", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_cuddle": "فرستادن آغوش", + "commandHint_hug": "فرستادن بغل", + "editBundlesForAccount": "ویرایش بسته‌های این حساب", + "logout": "خروج", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "نام‌بردن", + "@mention": { + "type": "String", + "placeholders": {} + }, + "muteChat": "بی‌صدا کردن چت", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "چت جدید", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 پیام جدید در فلافی‌چت", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "بدون اتصال به سرور", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "no": "خیر", + "@no": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "هنوز روشی برای بازیابی گذرواژه خود اضافه نکرده‌اید.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "or": "یا", + "@or": { + "type": "String", + "placeholders": {} + }, + "participant": "شرکت‌کننده", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "عبارت عبور یا کلید بازیابی", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "گذرواژه", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "گذرواژه تغییر کرد", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "بازیابی گذرواژه", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "سنجاق کردن", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "لطفاً رمز کوتاه خود را وارد کنید", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "لطفاً گذرواژه خود را وارد کنید", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "لطفاً دستورالعمل‌های وبگاه را دنبال کنید و روی بعدی بزنید.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "اتاق‌های عمومی", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "obtainingLocation": "در حال به‌دست آوردن مکان…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "اوه، مشکلی پیش آمد…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "addToBundle": "افزودن به بسته", + "passwordForgotten": "فراموشی گذرواژه", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "link": "پیوند", + "iHaveClickedOnLink": "روی پیوند کلیک کردم", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "عبارت عبور یا کلید بازیابی نادرست است", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "دعوت مخاطب به {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "فقط کاربران دعوت‌شده", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "isTyping": "در حال نوشتن…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinRoom": "پیوستن به اتاق", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username} کاربر {targetName} را بیرون کرد", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "بیرون کردن از چت", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "چت را ترک کرد", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "dehydrate": "صدور نشست و پاک کردن دستگاه", + "loadingPleaseWait": "در حال بارگذاری… لطفاً صبر کنید.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "بارگذاری بیشتر…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "دسترسی به مکان رد شد. برای هم‌رسانی مکان، لطفاً دسترسی بدهید.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "logInTo": "ورود به {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "moderator": "ناظر", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "درخواست بازبینی جدید!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "noPermission": "بدون دسترسی", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "اتاقی پیدا نشد…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "اوه! خطایی در تنظیم آگاه‌سازها رخ داد.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "openCamera": "باز کردن دوربین", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "addAccount": "افزودن حساب", + "pleaseChooseAPasscode": "لطفاً یک رمز کوتاه انتخاب کنید", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "لطفاً نام کاربری خود را وارد کنید", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "privacy": "حریم خصوصی", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} کاربر در حال نوشتن…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "invited": "دعوت‌شده", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username} از {targetName} دعوت کرد", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "joinedTheChat": "👋 {username} به چت پیوست", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} کاربر {targetName} را بیرون و محروم کرد", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "dehydrateWarning": "این کنش برگشت‌ناپذیر است. مطمئن شوید پرونده پشتیبان را به‌صورت امن ذخیره می‌کنید.", + "locationDisabledNotice": "مکان‌یاب غیرفعال است. لطفاً آن را فعال کنید تا بتوانید مکان خود را هم‌رسانی کنید.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "next": "بعدی", + "@next": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "شکلکی پیدا نشد. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "به نظر می‌رسد دستگاه شما سرویس‌های گوگل ندارد. این انتخاب خوبی برای حریم خصوصی است! برای دریافت آگاه‌سازها در فلافی‌چت، پیشنهاد می‌کنیم از https://ntfy.sh استفاده کنید. با ntfy یا یک فراهم‌کننده UnifiedPush می‌توانید آگاه‌سازهای امن دریافت کنید. می‌توانید ntfy را از Play Store یا F-Droid بارگیری کنید.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "رمزنگاری را تنها زمانی می‌توانید فعال کنید که اتاق عمومی نباشد.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "پشتیبان‌گیری آنلاین کلید فعال است", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "لطفاً روی پیوند در رایانامه کلیک کنید و ادامه دهید.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "hydrate": "بازیابی از پرونده پشتیبان", + "inviteContact": "دعوت از مخاطب", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} سرور ماتریکس نیست، از {server2} استفاده شود؟", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "oneClientLoggedOut": "یکی از برنامه‌های شما از سیستم خارج شد", + "removeFromBundle": "برداشتن از بسته", + "bundleName": "نام بسته", + "openInMaps": "باز کردن در نقشه", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} شما را به فلافی‌چت دعوت کرد.\n۱. به fluffychat.im بروید و برنامه را نصب کنید\n۲. ثبت‌نام کنید یا وارد شوید\n۳. پیوند دعوت را باز کنید:\n {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "leave": "ترک کردن", + "@leave": { + "type": "String", + "placeholders": {} + }, + "scanQrCode": "پویش کد QR", + "lastActiveAgo": "آخرین فعالیت: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "lightTheme": "روشن", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "login": "ورود", + "@login": { + "type": "String", + "placeholders": {} + }, + "notifications": "آگاه‌سازها", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "ok": "خوب", + "@ok": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "اتاق ارتقا یافت", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "reject": "رد کردن", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} دعوت را رد کرد", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "unbanFromChat": "لغو محرومیت از چت", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "reply": "پاسخ", + "@reply": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "نگارش اتاق", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "search": "جستجو", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "امنیت", + "@security": { + "type": "String", + "placeholders": {} + }, + "setAsCanonicalAlias": "تنظیم به‌عنوان نام مستعار اصلی", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "برداشتن نماد نمایه", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} یک رویداد را ویرایش کرد", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "برداشتن", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "پاک کردن همه دستگاه‌های دیگر", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "گزارش پیام", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "saveFile": "ذخیره پرونده", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "reason": "دلیل", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactMessage": "ویرایش پیام", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "جایگزینی اتاق با نگارش جدیدتر", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "fileHasBeenSavedAt": "پرونده در {path} ذخیره شد", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "wasDirectChatDisplayName": "چت خالی (قبلا {oldDisplayName} بود)", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "newSpaceDescription": "فضاها امکان یکپارچه‌سازی چت ها و ساخت جوامع خصوصی یا عمومی را فراهم می‌کنند.", + "encryptThisChat": "رمزنگاری این چت", + "sorryThatsNotPossible": "متأسفیم... این ممکن نیست", + "fileIsTooBigForServer": "نمیتوان فرستاد! سرور تنها از پیوست های تا {max} پشتیبانی میکند.", + "jumpToLastReadMessage": "پرش به آخرین پیام خوانده‌شده", + "doNotShowAgain": "دوباره نمایش نده", + "readUpToHere": "خوانده‌شده تا اینجا", + "noBackupWarning": "هشدار! بدون فعال کردن پشتیبان چت، دسترسی به پیام‌های رمزنگاری‌شده خود را از دست خواهید داد. پیشنهاد می‌شود پیش از خروج، پشتیبان چت را فعال کنید.", + "noOtherDevicesFound": "دستگاه دیگری پیدا نشد", + "countFiles": "{count} پرونده", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "noKeyForThisMessage": "اگر پیام پیش از ورود به حساب در این دستگاه فرستاده شده باشد، این مشکل ممکن است رخ دهد.\n\nهمچنین ممکن است فرستنده دستگاه شما را مسدود کرده باشد یا مشکلی در اتصال اینترنت وجود داشته باشد.\n\nآیا می‌توانید پیام را در نشست دیگری بخوانید؟ در این صورت، می‌توانید آن را منتقل کنید! به تنظیمات > دستگاه‌ها بروید و مطمئن شوید دستگاه‌هایتان یکدیگر را بازبینی کرده‌اند. هنگام باز کردن دوباره اتاق و فعال بودن هر دو نشست، کلیدها به‌صورت خودکار منتقل می‌شوند.\n\nآیا نمی‌خواهید هنگام خروج یا تغییر دستگاه کلیدها را گم کنید؟ مطمئن شوید پشتیبان چت را در تنظیمات فعال کرده‌اید.", + "disableEncryptionWarning": "به دلایل امنیتی نمی‌توانید رمزنگاری را در چتی که فعال شده غیرفعال کنید.", + "storeSecurlyOnThisDevice": "ذخیره امن در این دستگاه", + "newSpace": "فضای جدید", + "storeInAndroidKeystore": "ذخیره در Android KeyStore", + "storeInAppleKeyChain": "ذخیره در Apple KeyChain", + "user": "کاربر", + "custom": "سفارشی", + "whyIsThisMessageEncrypted": "چرا این پیام خوانا نیست؟", + "reopenChat": "باز کردن دوباره چت", + "unmuteChat": "فعال کردن صدای چت", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "share": "هم‌رسانی", + "@share": { + "type": "String", + "placeholders": {} + }, + "skip": "رد کردن", + "@skip": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "سامانه", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "هم‌خوانی ندارند", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "unblockDevice": "باز کردن دستگاه", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "آغاز بازبینی", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "بازبینی با موفقیت انجام شد!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "در انتظار پذیرش شکلک توسط دیگری…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "چه کسی می‌تواند چه کاری انجام دهد", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "نوشتن پیام…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "شما از این چت محروم شده‌اید", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "setStatus": "تنظیم وضعیت", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "تنظیمات", + "@settings": { + "type": "String", + "placeholders": {} + }, + "spaceName": "نام فضا", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "هم‌خوانی دارند", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "درخواست‌های بیش از حد. لطفاً بعداً دوباره تلاش کنید!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} محرومیت {targetName} را برداشت", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unknownEncryptionAlgorithm": "الگوریتم رمزنگاری ناشناخته", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unpin": "برداشتن سنجاق", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndUserAreTyping": "{username} و {username2} در حال نوشتن…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "visibleForAllParticipants": "قابل‌دید برای همه شرکت‌کنندگان", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "قابل‌دید برای همه", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "پیام صوتی", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "در انتظار پذیرش درخواست توسط دیگری…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "warning": "هشدار!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "شما دیگر در این چت شرکت نمی‌کنید", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "messageInfo": "اطلاعات پیام", + "time": "زمان", + "userIsTyping": "{username} در حال نوشتن…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "yes": "بله", + "@yes": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "کلید عمومی شما", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "shareLocation": "هم‌رسانی مکان", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "youInvitedUser": "📩 شما {user} را دعوت کردید", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "unverified": "تأییدنشده", + "unsupportedAndroidVersion": "نسخه اندروید پشتیبانی‌نشده", + "youUnbannedUser": "شما محرومیت {user} را برداشتید", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "verified": "تاییدشده", + "@verified": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "چرا می‌خواهید گزارش دهید؟", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "you": "شما", + "@you": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "کد منبع", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "فضا عمومی است", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "در حال همگام‌سازی... لطفا صبر کنید.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "رویداد ناشناخته '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "userAndOthersAreTyping": "{username} و {count} نفر دیگر در حال تایپ کردن…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userLeftTheChat": "👋 {username} چت را ترک کرد", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "verifyTitle": "در حال تایید حساب دیگر", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "قابلیت دیدن تاریخچه چت", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "چه کسی اجازه پیوستن به این گروه را دارد", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "در انتظار پذیرش اعداد توسط دیگری…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "با این آدرس‌ها می‌توانید رمز خود را بازیابی کنید.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "openGallery": "بازکردن گالری", + "removeFromSpace": "حذف از فضا", + "confirmEventUnpin": "آیا از برداشتن سنجاق رویداد به صورت دائمی مطمئن هستید؟", + "youKickedAndBanned": "🙅 شما {user} را بیرون و محروم کردید", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "statusExampleMessage": "امروز حالتان چطور است؟", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "ارسال", + "@submit": { + "type": "String", + "placeholders": {} + }, + "youRejectedTheInvitation": "شما دعوت را رد کردید", + "youAcceptedTheInvitation": "👍 شما دعوت را پذیرفتید", + "unsupportedAndroidVersionLong": "این ویژگی به نسخه تازه‌تری از اندروید نیاز دارد. لطفا به‌روزرسانی یا پشتیبانی لینیج‌اواس(LineageOS) را بررسی کنید.", + "sharedTheLocation": "{username} وضعیت مکانی خود را به اشتراک گذاشت", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "status": "وضعیت", + "@status": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "دستگاه ناشناس", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "markAsRead": "علامت‌گذاشتن به عنوان خوانده شده", + "reportUser": "گزارش دادن کاربر", + "pinMessage": "سنجاق کردن به اتاق", + "emojis": "شکلک‌ها", + "youJoinedTheChat": "شما به چت پیوستید", + "youBannedUser": "شما {user} را محروم کردید", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youHaveWithdrawnTheInvitationFor": "شما دعوت {user} را پس‌گرفتید", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 شما توسط {user} دعوت شده‌اید", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKicked": "👞 شما {user} را بیرون کردید", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "users": "کاربرها", + "jump": "پرش", + "report": "گزارش", + "openLinkInBrowser": "بازکردن پیوند در مرورگر", + "reportErrorDescription": "اوه نه. اشتباهی رخ داد. اگر تمایل دارید، می‌توانید این اشکال را با توسعه‌دهندگان گزارش دهید.", + "notAnImage": "یک فایل تصویری نیست.", + "importNow": "اکنون وارد کنید", + "importEmojis": "وارد کردن شکلک‌ها", + "importFromZipFile": "وارد کردن از پرونده زیپ", + "exportEmotePack": "صادر کردن بسته شکلک به‌صورت زیپ", + "replace": "جایگزین کردن", + "aboutHomeserver": "درباره {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "commandHint_roomupgrade": "ارتقای این اتاق به نگارش مشخص‌شده", + "appLockDescription": "قفل کردن برنامه با رمز کوتاه هنگام عدم استفاده", + "sendTypingNotifications": "فرستادن آگاه‌سازهای نوشتن", + "swipeRightToLeftToReply": "کشیدن از راست به چپ برای پاسخ", + "noMoreChatsFound": "چت دیگری پیدا نشد...", + "noChatsFoundHere": "اینجا هنوز چتی پیدا نشد. با استفاده از دکمه زیر چت جدیدی با کسی شروع کنید. ⤵️", + "unread": "خوانده‌نشده", + "space": "فضا", + "checkList": "فهرست بررسی", + "countInvited": "{count} دعوت‌شده", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "createGroup": "ساختن گروه", + "chatPermissions": "دسترسی‌های چت", + "emoteKeyboardNoRecents": "شکلک‌هایی که به تازگی استفاده‌شده اینجا نمایش داده میشوند...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "globalChatId": "شناسه سراسری چت", + "accessAndVisibility": "دسترسی و قابلیت دید", + "accessAndVisibilityDescription": "چه کسی اجازه پیوستن به این چت را دارد و چت چگونه قابل پیدا شدن است.", + "calls": "تماس‌ها", + "customEmojisAndStickers": "شکلک‌ها و برچسب‌های سفارشی", + "customEmojisAndStickersBody": "افزودن یا اشتراک گذاری ایموجی ها یا استیکر های سفارشی که در هر چت قابل استفاده‌اند.", + "chatDescription": "توضیحات چت", + "chatDescriptionHasBeenChanged": "توضیحات چت تغییر کرد", + "hideRedactedMessages": "پنهان کردن پیام‌های ویرایش‌شده", + "hideRedactedMessagesBody": "اگر کسی پیامی را ویرایش کند، دیگر نمیتوان آن پیام را در چت دید.", + "hideInvalidOrUnknownMessageFormats": "پنهان کردن قالب‌های پیام نامعتبر یا ناشناخته", + "block": "مسدود کردن", + "blockedUsers": "کاربران مسدود‌شده", + "blockListDescription": "میتوانید کاربرانی که مزاحم شما هستند را مسدود کنید. از کاربران موجود در فهرست مسدود شخصی، پیام یا دعوت به اتاق دریافت نخواهید کرد.", + "blockUsername": "چشم‌پوشی از نام کاربری", + "noChatDescriptionYet": "هنوز توضیحات چتی نوشته نشده است.", + "tryAgain": "تلاش دوباره", + "invalidServerName": "نام سرور نامعتبر", + "redactMessageDescription": "پیام برای همه شرکت‌کنندگان در این گفتگو ویرایش خواهد شد. این کار برگشت‌ناپذیر است.", + "optionalRedactReason": "(اختیاری) دلیل ویرایش این پیام...", + "messagesStyle": "پیام‌ها:", + "shareInviteLink": "هم‌رسانی پیوند دعوت", + "passwordRecoverySettings": "تنظیمات بازیابی گذرواژه", + "redactedBy": "ویرایش‌شده به‌دست {username}", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactedByBecause": "ویرایش‌شده به‌دست {username} زیرا: «{reason}»", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "sendImages": "فرستادن {count} تصویر", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "setChatDescription": "تنظیم توضیحات چت", + "synchronizingPleaseWaitCounter": " در حال همگام‌سازی... ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "hasKnocked": "🚪 {user} در زده است", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "usersMustKnock": "کاربران باید در بزنند", + "noOneCanJoin": "هیچ‌کس نمیتواند بپیوندد", + "knock": "در زدن", + "setColorTheme": "تنظیم پوسته رنگی:", + "invite": "دعوت", + "inviteGroupChat": "📨 دعوت به چت گروهی", + "invalidInput": "ورودی نامعتبر!", + "wrongPinEntered": "رمز کوتاه نادرست وارد شد! {seconds} ثانیه دیگر دوباره تلاش کنید...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "pleaseEnterANumber": "لطفاً عددی بزرگ‌تر از ۰ وارد کنید", + "archiveRoomDescription": "چت به بایگانی خواهد رفت. کاربران دیگر میتوانند ببینند که شما چت را ترک کرده‌اید.", + "roomUpgradeDescription": "چت با نگارش جدید اتاق بازسازی خواهد شد. به همه شرکت‌کنندگان آگاهی‌رسانی میشود که باید به چت جدید بروند. داده‌های بیشتر درباره نگارش‌های اتاق در https://spec.matrix.org/latest/rooms/", + "removeDevicesDescription": "از این دستگاه خارج خواهید شد و دیگر نمیتوانید پیام دریافت کنید.", + "banUserDescription": "کاربر از چت محروم خواهد شد و تا زمانی که محرومیت برداشته نشود، نمیتواند دوباره وارد چت شود.", + "unbanUserDescription": "کاربر در صورت تلاش دوباره میتواند وارد چت شود.", + "kickUserDescription": "کاربر از چت بیرون میشود اما محروم نمیشود. در چت های عمومی، کاربر میتواند هر زمان دوباره بپیوندد.", + "makeAdminDescription": "پس از مدیر کردن این کاربر، ممکن است نتوانید این کار را لغو کنید، زیرا آن‌ها همان دسترسی‌های شما را خواهند داشت.", + "pushNotificationsNotAvailable": "آگاه‌سازهای فشاری در دسترس نیستند", + "learnMore": "بیشتر بدانید", + "yourGlobalUserIdIs": "شناسه کاربری سراسری شما: ", + "noUsersFoundWithQuery": "متأسفانه کاربری با «{query}» پیدا نشد. لطفاً بررسی کنید که آیا اشتباه نوشتاری دارید.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "knocking": "در زدن", + "chatCanBeDiscoveredViaSearchOnServer": "چت با جستجو در {server} قابل کشف است", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "searchChatsRooms": "جستجو برای #چت ها، @کاربران...", + "nothingFound": "چیزی پیدا نشد...", + "groupName": "نام گروه", + "createGroupAndInviteUsers": "ساختن گروه و دعوت کاربران", + "groupCanBeFoundViaSearch": "گروه با جستجو قابل یافتن است", + "wrongRecoveryKey": "متأسفیم... به نظر میرسد این کلید بازیابی درست نباشد.", + "commandHint_sendraw": "فرستادن json خام", + "databaseMigrationTitle": "پایگاه داده بهینه‌سازی شد", + "databaseMigrationBody": "لطفاً صبر کنید. این ممکن است لحظه‌ای طول بکشد.", + "leaveEmptyToClearStatus": "برای پاک کردن وضعیت، خالی بگذارید.", + "select": "انتخاب", + "searchForUsers": "جستجو برای @کاربران...", + "pleaseEnterYourCurrentPassword": "لطفاً گذرواژه کنونی خود را وارد کنید", + "newPassword": "گذرواژه جدید", + "pleaseChooseAStrongPassword": "لطفاً یک گذرواژه قوی انتخاب کنید", + "passwordsDoNotMatch": "گذرواژه‌ها هم‌خوانی ندارند", + "passwordIsWrong": "گذرواژه واردشده نادرست است", + "publicChatAddresses": "آدرس های چت عمومی", + "createNewAddress": "ساختن نشانی جدید", + "joinSpace": "پیوستن به فضا", + "publicSpaces": "فضاهای عمومی", + "addChatOrSubSpace": "افزودن چت یا زیرفضا", + "thisDevice": "این دستگاه:", + "searchIn": "جستجو در چت «{chat}»...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "searchMore": "جستجوی بیشتر...", + "gallery": "نگارخانه", + "files": "پرونده‌ها", + "sessionLostBody": "نشست شما گم شده است. لطفاً این خطا را به توسعه‌دهندگان در {url} گزارش دهید. پیام خطا: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "restoreSessionBody": "برنامه اکنون سعی میکند نشست شما را از پشتیبان بازیابی کند. لطفاً این خطا را به توسعه‌دهندگان در {url} گزارش دهید. پیام خطا: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "sendReadReceipts": "فرستادن رسیدهای خواندن", + "sendTypingNotificationsDescription": "دیگر شرکت‌کنندگان در چت میتوانند ببینند که شما در حال تایپ پیام جدید هستید.", + "sendReadReceiptsDescription": "دیگر شرکت‌کنندگان در چت میتوانند ببینند که شما پیام را خوانده‌اید.", + "formattedMessages": "پیام‌های قالب‌بندی‌شده", + "formattedMessagesDescription": "نمایش محتوای پیام غنی مانند متن پررنگ با استفاده از مارک‌داون.", + "verifyOtherUser": "🔐 بازبینی کاربر دیگر", + "verifyOtherUserDescription": "اگر کاربر دیگری را بازبینی کنید، میتوانید مطمئن شوید که واقعاً با چه کسی در حال نوشتن هستید. 💪\n\nهنگام شروع بازبینی، شما و کاربر دیگر پنجره‌ای در برنامه خواهید دید. در آنجا مجموعه‌ای از شکلک‌ها یا اعداد را مشاهده میکنید که باید با یکدیگر مقایسه کنید.\n\nبهترین راه برای این کار دیدار حضوری یا شروع تماس تصویری است. 👭", + "verifyOtherDevice": "🔐 بازبینی دستگاه دیگر", + "verifyOtherDeviceDescription": "هنگام بازبینی دستگاه دیگر، آن دستگاه‌ها میتوانند کلیدها را تبادل کنند و امنیت کلی شما را افزایش دهند. 💪 هنگام شروع بازبینی، پنجره‌ای در برنامه روی هر دو دستگاه ظاهر میشود. در آنجا مجموعه‌ای از شکلک‌ها یا اعداد را مشاهده میکنید که باید با یکدیگر مقایسه کنید. بهتر است پیش از شروع بازبینی، هر دو دستگاه در دسترس باشند. 🤳", + "acceptedKeyVerification": "{sender} بازبینی کلید را پذیرفت", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "canceledKeyVerification": "{sender} بازبینی کلید را رد کرد", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "completedKeyVerification": "{sender} بازبینی کلید را کامل کرد", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "{sender} برای بازبینی کلید آماده است", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "requestedKeyVerification": "{sender} درخواست بازبینی کلید کرد", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "{sender} بازبینی کلید را آغاز کرد", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "incomingMessages": "پیام‌های دریافتی", + "stickers": "برچسب‌ها", + "discover": "کشف", + "commandHint_ignore": "چشم‌پوشی از شناسه ماتریکس داده‌شده", + "commandHint_unignore": "لغو چشم‌پوشی از شناسه ماتریکس داده‌شده", + "unreadChatsInApp": "{appname}: {unread} چت خوانده‌نشده", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "noDatabaseEncryption": "رمزنگاری پایگاه داده در این سکو پشتیبانی نمیشود", + "thereAreCountUsersBlocked": "اکنون {count} کاربر مسدود شده‌اند.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "goToSpace": "رفتن به فضا: {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "markAsUnread": "علامت‌گذاری به‌عنوان خوانده‌نشده", + "userLevel": "{level} - کاربر", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "moderatorLevel": "{level} - ناظر", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "adminLevel": "{level} - مدیر", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeGeneralChatSettings": "تغییر تنظیمات عمومی چت", + "inviteOtherUsers": "دعوت کاربران دیگر به این چت", + "changeTheChatPermissions": "تغییر دسترسی‌های چت", + "changeTheVisibilityOfChatHistory": "تغییر قابلیت دید تاریخچه چت", + "changeTheCanonicalRoomAlias": "تغییر نشانی اصلی چت عمومی", + "sendRoomNotifications": "فرستادن آگاه‌سازهای @room", + "changeTheDescriptionOfTheGroup": "تغییر توضیح چت", + "chatPermissionsDescription": "مشخص کنید کدام سطح دسترسی برای اقدامات خاصی در این چت لازم است. سطح‌های دسترسی ۰، ۵۰ و ۱۰۰ معمولاً نشان‌دهنده کاربران، ناظران و مدیران هستند، اما هر درجه‌بندی ممکن است.", + "updateInstalled": "🎉 به‌روزرسانی {version} نصب شد!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "changelog": "فهرست تغییرات", + "sendCanceled": "فرستادن رد شد", + "loginWithMatrixId": "ورود با شناسه ماتریکس", + "doesNotSeemToBeAValidHomeserver": "به نظر نمیرسد سرور خانگی سازگاری داشته باشد. نشانی اشتباه است؟", + "calculatingFileSize": "در حال محاسبه اندازه پرونده...", + "oneOfYourDevicesIsNotVerified": "یکی از دستگاه‌های شما بازبینی نشده است", + "noticeChatBackupDeviceVerification": "توجه: وقتی همه دستگاه‌های خود را به پشتیبان چت متصل کنید، به‌صورت خودکار بازبینی میشوند.", + "continueText": "ادامه", + "blur": "محو کردن:", + "opacity": "شفافیت:", + "setWallpaper": "تنظیم کاغذدیواری", + "manageAccount": "مدیریت حساب", + "noContactInformationProvided": "سرور هیچ اطلاعات تماس معتبری نمیدهد", + "contactServerAdmin": "تماس با مدیر سرور", + "contactServerSecurity": "تماس با امنیت سرور", + "supportPage": "صفحه پشتیبانی", + "serverInformation": "درباره سرور:", + "name": "نام", + "version": "نگارش", + "website": "وبگاه", + "compress": "فشرده‌سازی", + "boldText": "متن درشت", + "italicText": "متن کج", + "strikeThrough": "خط‌خورده", + "pleaseFillOut": "لطفاً پر کنید", + "invalidUrl": "نشانی نامعتبر", + "addLink": "افزودن پیوند", + "unableToJoinChat": "ناتوانی در پیوستن به چت. شاید طرف مقابل گفتگو را بسته است.", + "previous": "پیشین", + "otherPartyNotLoggedIn": "طرف مقابل اکنون وارد نشده است و بنابراین نمیتواند پیام دریافت کند!", + "appWantsToUseForLogin": "برای ورود از '{server}' استفاده کنید", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "appWantsToUseForLoginDescription": "شما بدین‌وسیله به برنامه و وبگاه اجازه میدهید اطلاعات شما را هم‌رسانی کنند.", + "open": "باز کردن", + "waitingForServer": "در انتظار سرور...", + "newChatRequest": "📩 درخواست چت جدید", + "contentNotificationSettings": "تنظیمات آگاه‌ساز محتوا", + "generalNotificationSettings": "تنظیمات آگاه‌ساز عمومی", + "roomNotificationSettings": "تنظیمات آگاه‌ساز اتاق", + "userSpecificNotificationSettings": "تنظیمات آگاه‌ساز خاص کاربر", + "otherNotificationSettings": "سایر تنظیمات آگاه‌ساز", + "notificationRuleContainsUserName": "دارای نام کاربری", + "notificationRuleContainsUserNameDescription": "وقتی پیامی حاوی نام کاربری باشد، کاربر را آگاه میکند.", + "notificationRuleMaster": "بی‌صدا کردن همه آگاه‌سازها", + "notificationRuleMasterDescription": "از قوانین دیگر چشم‌پوشی میکند و همه آگاه‌سازها را غیرفعال میکند.", + "notificationRuleSuppressNotices": "سرکوب پیام‌های خودکار", + "notificationRuleSuppressNoticesDescription": "آگاه‌سازهای کارخواه‌های خودکار مانند ربات‌ها را سرکوب میکند.", + "notificationRuleInviteForMe": "دعوت برای من", + "notificationRuleInviteForMeDescription": "وقتی کاربر به اتاقی دعوت میشود، او را آگاه میکند.", + "notificationRuleMemberEvent": "رویداد عضویت", + "notificationRuleMemberEventDescription": "آگاه‌سازهای رویدادهای عضویت را سرکوب میکند.", + "notificationRuleIsUserMention": "نام‌بردن از کاربر", + "notificationRuleIsUserMentionDescription": "وقتی در پیامی مستقیماً از کاربر نام برده میشود، او را آگاه میکند.", + "notificationRuleContainsDisplayName": "دارای نام نمایشی", + "notificationRuleContainsDisplayNameDescription": "وقتی پیامی حاوی نام نمایشی کاربر باشد، کاربر را آگاه میکند.", + "notificationRuleIsRoomMention": "نام‌بردن از اتاق", + "notificationRuleIsRoomMentionDescription": "وقتی نام اتاق ذکر میشود، کاربر را آگاه میکند.", + "notificationRuleRoomnotif": "آگاه‌ساز اتاق", + "notificationRuleRoomnotifDescription": "وقتی پیامی حاوی '@room' باشد، کاربر را آگاه میکند.", + "notificationRuleTombstone": "سنگ قبر", + "notificationRuleTombstoneDescription": "کاربر را از پیام‌های غیرفعال‌سازی اتاق آگاه میکند.", + "notificationRuleReaction": "واکنش", + "notificationRuleReactionDescription": "آگاه‌سازهای واکنش‌ها را سرکوب میکند.", + "notificationRuleRoomServerAcl": "ACL سرور اتاق", + "notificationRuleRoomServerAclDescription": "آگاه‌سازهای فهرست‌های کنترل دسترسی سرور اتاق (ACL) را سرکوب میکند.", + "notificationRuleSuppressEdits": "سرکوب ویرایش‌ها", + "notificationRuleSuppressEditsDescription": "آگاه‌سازهای پیام‌های ویرایش‌شده را سرکوب میکند.", + "notificationRuleCall": "تماس", + "notificationRuleCallDescription": "درباره تماس‌ها کاربر را آگاه میکند.", + "notificationRuleEncryptedRoomOneToOne": "اتاق رمزنگاری‌شده یک‌به‌یک", + "notificationRuleEncryptedRoomOneToOneDescription": "کاربر را از پیام‌ها در اتاق‌های رمزنگاری‌شده یک‌به‌یک آگاه میکند.", + "notificationRuleRoomOneToOne": "اتاق یک‌به‌یک", + "notificationRuleRoomOneToOneDescription": "کاربر را از پیام‌ها در اتاق‌های یک‌به‌یک آگاه میکند.", + "notificationRuleMessage": "پیام", + "notificationRuleMessageDescription": "کاربر را از پیام‌های عمومی آگاه میکند.", + "notificationRuleEncrypted": "رمزنگاری‌شده", + "notificationRuleEncryptedDescription": "کاربر را از پیام‌ها در اتاق‌های رمزنگاری‌شده آگاه میکند.", + "notificationRuleJitsi": "جیتسی", + "notificationRuleJitsiDescription": "کاربر را از رویدادهای ابزارک جیتسی آگاه میکند.", + "notificationRuleServerAcl": "سرکوب رویدادهای ACL سرور", + "notificationRuleServerAclDescription": "آگاه‌سازهای رویدادهای ACL سرور را سرکوب میکند.", + "unknownPushRule": "قانون ناشناخته آگاه‌ساز '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "sentVoiceMessage": "🎙️ {duration} - پیام صوتی از {sender}", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "deletePushRuleCanNotBeUndone": "اگر این تنظیم آگاه‌ساز را پاک کنید، این کار برگشت‌ناپذیر است.", + "more": "بیشتر", + "shareKeysWith": "هم‌رسانی کلیدها با...", + "shareKeysWithDescription": "کدام دستگاه‌ها باید مورد اعتماد باشند تا بتوانند پیام‌های شما را در چت های رمزنگاری‌شده بخوانند؟", + "allDevices": "همه دستگاه‌ها", + "crossVerifiedDevicesIfEnabled": "دستگاه‌های بازبینی‌شده متقابل اگر فعال باشد", + "crossVerifiedDevices": "دستگاه‌های بازبینی‌شده متقابل", + "verifiedDevicesOnly": "فقط دستگاه‌های بازبینی‌شده", + "takeAPhoto": "گرفتن عکس", + "recordAVideo": "ضبط ویدئو", + "optionalMessage": "(اختیاری) پیام...", + "notSupportedOnThisDevice": "در این دستگاه پشتیبانی نمیشود", + "enterNewChat": "ورود به چت جدید", + "approve": "پذیرفتن", + "youHaveKnocked": "شما در زده‌اید", + "pleaseWaitUntilInvited": "لطفاً اکنون صبر کنید تا کسی از اتاق شما را دعوت کند.", + "commandHint_logout": "خروج از دستگاه کنونی", + "commandHint_logoutall": "خروج از همه دستگاه‌های فعال", + "displayNavigationRail": "نمایش نوار ناوبری در تلفن همراه", + "customReaction": "واکنش سفارشی", + "moreEvents": "رویدادهای بیشتر", + "initAppError": "خطایی هنگام آغاز برنامه رخ داد", + "changedTheChatDescription": "‮‭‭‮‭‬‫{username} توضیحات چت را تغییر داد", + "changedTheChatName": "{username} نام چت را تغییر داد", + "declineInvitation": "رد کردن دعوت", + "noMessagesYet": "پیامی وجود ندارد", + "longPressToRecordVoiceMessage": "برای ضبط پیام صوتی، انگشت خود را نگه دارید.", + "pause": "توقف", + "resume": "ادامه", + "removeFromSpaceDescription": "این چت از این فضا حذف خواهد شد اما همچنان در لیست چت های شما نمایش داده میشود.", + "countChats": "{chats} چت", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "spaceMemberOf": "عضو فضای {spaces}", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "عضو فضای {spaces} میتواند در بزند", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "startPoll": "آغاز نظرسنجی", + "endPoll": "پایان نظرسنجی", + "answersVisible": "پاسخ ها قابل رویت", + "pollQuestion": "سوال نظرسنجی", + "answerOption": "گزینه جواب", + "addAnswerOption": "اضافه کردن گزینه جواب", + "allowMultipleAnswers": "اجازه دادن چند جواب", + "pollHasBeenEnded": "این نظرسنجی پایان یافته است", + "answersWillBeVisibleWhenPollHasEnded": "پاسخ ها وقتی نظرسنجی به پایان برسد نمایش داده خواهند شد", + "replyInThread": "پاسخ در رشته", + "countReplies": "{count} پاسخ دیگر", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "thread": "رشته", + "backToMainChat": "بازگشت به چت اصلی", + "saveChanges": "ذخیره تغییرات", + "createSticker": "ساخت استیکر یا ایموجی", + "useAsSticker": "استفاده به عنوان استیکر", + "useAsEmoji": "استفاده به عنوان ایموجی", + "stickerPackNameAlreadyExists": "نام استیکرپک تکراری است", + "newStickerPack": "استیکر پک جدید", + "stickerPackName": "نام استیکر پک", + "attribution": "نسبت دادن", + "skipChatBackup": "صرف نظر از پشتیبان گیری چت", + "skipChatBackupWarning": "آیا مطمئنید؟ بدون فعال کردن پشتیبان گیری چت ممکن است در صورت تغییر دستگاه دسترسی خود به پیام هایتان را از دست بدهید.", + "noMoreResultsFound": "نتایج دیگری یافت نشد", + "chatSearchedUntil": "چت تا {time} جستجو شد", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "federationBaseUrl": "پایه آدرس فدریشن", + "clientWellKnownInformation": "اطلاعات Client-Well-Known:", + "baseUrl": "پایه آدرس", + "identityServer": "سرور احراز هویت:", + "versionWithNumber": "ورژن: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "لاگ ها", + "advancedConfigs": "تنظیمات پیشرفته", + "advancedConfigurations": "تنظیمات پیشرفته", + "signIn": "ورود", + "createNewAccount": "ساخت حساب جدید", + "signUpGreeting": "فلافی چت غیرمتمرکز است! یک سرور که میخواهید در آن حسابتان را بسازید را انتخاب کنید و شروع کنید!", + "signInGreeting": "از قبل در ماتریکس حساب کاربری دارید؟ خوش برگشتید! سرور خانه خود را انتخاب و لاگین کنید.", + "theProcessWasCanceled": "فرآیند لغو شد.", + "join": "عضویت", + "searchOrEnterHomeserverAddress": "جستجو یا وارد کردن آدرس سرور خانه", + "matrixId": "شناسه ماتریکس", + "setPowerLevel": "انتخاب سطح قدرت", + "makeModerator": "انتخاب به عنوان ناظر", + "makeAdmin": "انتخاب به عنوان مدیر", + "removeModeratorRights": "حذف دسترسی های نظارتی", + "removeAdminRights": "حذف دسترسی های مدیریتی", + "powerLevel": "سطح قدرت", + "setPowerLevelDescription": "سطح قدرت مشخص میکند که یک کاربر قادر به انجام چه کارهایی در این اتاق است. معمولا یک عدد بین ۰ تا ۱۰۰ می باشد.", + "owner": "صاحب", + "mute": "ساکت", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "createNewChat": "ساخت چت جدید", + "reset": "ریست کردن", + "supportFluffyChat": "حمایت از فلافی چت", + "support": "پشتیبانی", + "setLowPriority": "تنظیم اولویت پایین", + "unsetLowPriority": "لغو تنظیم اولویت پایین", + "countVotes": "{count} رای دیگر", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + } +} \ No newline at end of file diff --git a/lib/l10n/intl_fi.arb b/lib/l10n/intl_fi.arb new file mode 100644 index 0000000..803f32f --- /dev/null +++ b/lib/l10n/intl_fi.arb @@ -0,0 +1,2456 @@ +{ + "repeatPassword": "Salasana uudelleen", + "about": "Tietoa FluffyChatista", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Hyväksy", + "@accept": { + "type": "String", + "placeholders": {} + }, + "account": "Tili", + "@account": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "{username} hyväksyi kutsun", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "activatedEndToEndEncryption": "🔐 {username} otti käyttöön päästä-päähän salauksen", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "archive": "Arkisto", + "@archive": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Voidaksesi allekirjoittaa toisen henkilön, syötä turvavaraston salalause tai palautusavain.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "addEmail": "Lisää sähköpostiosoite", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "Lisää tilaan", + "admin": "Ylläpitäjä", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "alias", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Kaikki", + "@all": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} vastasi puheluun", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Kuka tahansa voi liittyä", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "Sovelluksen lukitus", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Sallitaanko vieraiden liittyminen", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Haluatko varmasti kirjautua ulos?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Oletko varma?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "autoplayImages": "Toista animoidut tarrat ja emojit automaattisesti", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "askVerificationRequest": "Hyväksytäänkö tämä varmennuspyyntö käyttäjältä {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sendOnEnter": "Lähetä painamalla rivinvaihtonäppäintä", + "badServerLoginTypesException": "Tämä kotipalvelin tukee sisäänkirjautumistapoja: \n{serverVersions},\nmutta tämä sovellus tukee vain -tapoja: \n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "banFromChat": "Anna porttikielto keskusteluun", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Porttikiellossa", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} antoi porttikiellon käyttäjälle {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Estä laite", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "Estetty", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "Peruuta", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "changeDeviceName": "Vaihda laitteen nimeä", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} muutti keskustelun kuvaa", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} asetti näyttönimekseen: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} muutti vieraspääsyn sääntöjä", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} asetti vieraspääsyn säännö(i)ksi: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} muutti historian näkyvyyttä", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} asetti historian näkymissäännöksi: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} muutti liittymissääntöjä", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} asetti liittymissäännöiksi: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} vaihtoi profiilikuvaansa", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} muutti kutsulinkkiä", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Vaihda salasana", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changedTheRoomAliases": "{username} muutti huoneen aliaksia", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "cantOpenUri": "URI-osoitetta {uri} ei voida avata", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} muutti keskustelun oikeuksia", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changeTheme": "Vaihda tyyliäsi", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Keskustelun varmuuskopiointi", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Keskustelun tiedot", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Keskustelut", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Valitse vahva salasana", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "close": "Sulje", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_html": "Lähetä HTML-muotoiltua tekstiä", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_ban": "Anna syötetylle käyttäjälle porttikielto tähän huoneeseen", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_invite": "Kutsu syötetty käyttäjä tähän huoneeseen", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_leave": "Poistu tästä huoneesta", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_myroomavatar": "Aseta profiilikuvasi tähän huoneeseen (syöttämällä mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "Aseta näyttönimesi vain tässä huoneessa", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "Aseta käyttäjän voimataso (oletus: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "Lähetä muotoilematonta tekstiä", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "Lähetä vastaus reaktiona", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "create": "Luo", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "{username} loi keskustelun", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "createNewSpace": "Uusi tila", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "Aktiivinen nyt", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Tämä poistaa tunnuksesi käytöstä. Tätä ei voi kumota! Oletko varma?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Uusien käyttäjien oikeuksien oletustaso", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "Poista", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Poista tunnus", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Poista viesti", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Laitteet", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Suorat keskustelut", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Näyttönimi on vaihdettu", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Lataa tiedosto", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "Muokkaa", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Muokkaa estettyjä palvelimia", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Muokkaa näyttönimeä", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Muokkaa huoneen aliaksia", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Muokkaa huoneen profiilikuvaa", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Emote on jo olemassa!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Epäkelpo emote-lyhytkoodi!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Emote-lyhytkoodi", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Tyhjä keskustelu", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Et voi poistaa salausta myöhemmin. Oletko varma?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Salaus ei ole käytössä", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} päätti puhelun", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Syötä sähköposti-osoite", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Virhe paikannuksessa: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "fromJoining": "Alkaen liittymisestä", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Alkaen kutsumisesta", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Ryhmä", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "Ryhmä on julkinen", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "Ryhmät", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Ryhmä seuralaisina {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Vieraat on kielletty", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Vieraat voivat liittyä", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} on perunnut käyttäjän {targetName} kutsun", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Apua", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Piilota tuntemattomat tapahtumat", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignore": "Jätä huomioitta", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Huomiotta jätetyt käyttäjät", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Kutsu yhteystieto", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "invited": "Kutsuttu", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username} kutsui käyttäjän {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Vain kutsutut käyttäjät", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} kutsui sinut FluffyChattiin.\n1. Viereaile sivulla: https://fluffychat.im ja asenna sovellus\n2. Rekisteröidy tai kirjaudu sisään\n3. Avaa kutsulinkki:\n{link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "kicked": "👞 {username} potki käyttäjän {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} potki ja antoi porttikiellon käyttäjälle {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Potki keskustelusta", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Aktiivinen viimeksi: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Poistu", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Poistui keskustelusta", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Vaalea", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadingPleaseWait": "Ladataan... Hetkinen.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Lataa vielä {count} osallistujaa", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadMore": "Lataa lisää…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "Sijaintipalvelut ovat poissa käytöstä. Otathan ne käyttöön jakaaksesi sijaintisi.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "SIjaintioikeus on estetty. Myönnäthän sen jakaaksesi sijaintisi.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "login": "Kirjaudu sisään", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Kirjaudu sisään palvelimelle {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Kirjaudu ulos", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Mainitse", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "Viestit", + "@messages": { + "type": "String", + "placeholders": {} + }, + "moderator": "Valvoja", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Vaienna keskustelu", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Uusi keskustelu", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Uusi viesti FluffyChätissä", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Uusi varmennuspyyntö!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "Seuraava", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "Ei", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Ei yhteyttä palvelimeen", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Voit ottaa salauksen käyttöön vasta kun huone ei ole julkisesti liityttävissä.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} ei ole Matrix-palvelin, käytetäänkö {server2} sen sijaan?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "scanQrCode": "Skannaa QR-koodi", + "noPasswordRecoveryDescription": "Et ole vielä lisännyt tapaa salasanasi palauttamiseksi.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Huoneita ei löytynyt…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Ilmoitukset", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} käyttäjää kirjoittavat…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "obtainingLocation": "Paikannetaan sijantia…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "ok": "ok", + "@ok": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Kopioitu leikepöydälle", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Kopioi", + "@copy": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Vaihda profiilikuvasi", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "chat": "Keskustelu", + "@chat": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Tyhjennä arkisto", + "forward": "Edelleenlähetä", + "@forward": { + "type": "String", + "placeholders": {} + }, + "commandHint_join": "Liity syötettyyn huoneeseen", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_me": "Kuvaile itseäsi", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "compareEmojiMatch": "Vertaa hymiöitä", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "countParticipants": "{count} osallistujaa", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "changeTheHomeserver": "Vaihda kotipalvelinta", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Vaihda ryhmän nimeä", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "Salaus on korruptoitunut", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "commandHint_kick": "Poista syötetty käyttäjä huoneesta", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_unban": "Poista syötetyn käyttäjän porttikielto tästä huoneesta", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandMissing": "{command} ei ole komento.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "commandHint_send": "Lähetä tekstiä", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandInvalid": "Epäkelvollinen komento", + "@commandInvalid": { + "type": "String" + }, + "compareNumbersMatch": "Vertaa numeroita", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Määritä keskustelu", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Yhteystieto on kutsuttu ryhmään", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "Sisältö on ilmoitettu palvelimen ylläpitäjille", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Kopioi leikepöydälle", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Viestin salausta ei voitu purkaa: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "encrypted": "Salattu", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Salaus", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Kutsu yhteystieto ryhmään {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "isTyping": "kirjoittaa…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Ota emote-paketti käyttöön kaikkialla", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Tumma", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Ota salaus käyttöön", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "fontSize": "Fonttikoko", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Olen klikannut linkkiä", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Virheellinen salasana tai palautusavain", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} liittyi keskusteluun", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Liity huoneeseen", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Emoteja ei löytynyt. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Firebase Cloud Messaging -palvelu ei vaikuta olevan saatavilla laitteellasi. Saadaksesi push-ilmoituksia silti, suosittelemme Ntfy-sovelluksen asentamista. Käyttämällä Ntfy-sovellusta tai muuta Unified Push -tarjoajaa, saat push-ilmoitukset tietoturvallisella tavalla. Voit ladata Ntfy-sovelluksen Play Kaupasta tai F-Droidista.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Ei lupaa", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Verkkkoavainvarmuuskopio on käytössä", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Hups! Valitettavasti push-ilmoituksia käyttöönotettaessa tapahtui virhe.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Hups, jotakin meni pieleen…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Avaa sovellus lukeaksesi viestit", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Avaa kamera", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "oneClientLoggedOut": "Yksi tunnuksistasi on kirjattu ulos", + "addAccount": "Lisää tili", + "editBundlesForAccount": "Muokkaa tämän tilin kääröjä", + "addToBundle": "Lisää kääreeseen", + "removeFromBundle": "Poista tästä kääreestä", + "bundleName": "Kääreen nimi", + "openInMaps": "Avaa kartoissa", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "or": "Tai", + "@or": { + "type": "String", + "placeholders": {} + }, + "participant": "Osallistuja", + "@participant": { + "type": "String", + "placeholders": {} + }, + "password": "Salasana", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Salasana on vaihdettu", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Salasanan palautus", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Kiinnitä", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Valitse pääsykoodi", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Klikkaa linkkiä sähköpostissa ja sitten jatka.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Syötä PIN-koodisi", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Syötä käyttäjätunnuksesi", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Seuraa ohjeita verkkosivulla ja paina seuraava.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "Yksityisyys", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} poisti tapahtuman", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactMessage": "Poista viesti", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reject": "Hylkää", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} hylkäsi kutsun", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Poista", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Poista kaikki muut laitteet", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Poista porttikielto keskusteluun", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Lähetä viesti", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "send": "Lähetä", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Lähetä tekstinä", + "@sendAsText": { + "type": "String" + }, + "sendAudio": "Lähetä ääniviesti", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Lähetä tiedosto", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Lähetä kuva", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Lähetä viestejä", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "setAsCanonicalAlias": "Aseta pääalias", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "setStatus": "Aseta tila", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Asetukset", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Jaa", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} jakoi sijaintinsa", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "skip": "Ohita", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Lähdekoodi", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "Tila on julkinen", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Tilan nimi", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "status": "Tila", + "@status": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Synkronoidaan... Hetkinen.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Järjestelmä", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Ne eivät täsmää", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Ne täsmäävät", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Liikaa pyyntöjä. Yritä myöhemmin uudelleen!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Yritä uudelleenlähettämistä", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} poisti käyttäjän {targetName} porttikiellon", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Poista laitteen esto", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Tuntematon laite", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Tuntematon salausalgoritmi", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Tuntematon tapahtuma '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "userAndOthersAreTyping": "{username} ja {count} muuta kirjoittavat…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} ja {username2} kirjoittavat…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} kirjoittaa…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪 {username} poistui keskustelusta", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} lähetti {type}-tapahtuman", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "unverified": "Varmistamaton", + "verified": "Varmistettu", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Aloita varmennus", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Varmensit onnistuneesti!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Varmistetaan toista tunnusta", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Keskusteluhistorian näkyvyys", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Näkyy kaikille osallistujille", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Näkyy kaikille", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Ääniviesti", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Odotetaan kumppanin varmistavan pyynnön…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Odotetaan kumppanin hyväksyvän emojit…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Odotetaan kumppanin hyväksyvän numerot…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Varoitus!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Lähetimme sinulle sähköpostia", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Kuka voi suorittaa minkä toimenpiteen", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Kenen on sallittua liittyä ryhmään", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Miksi haluat ilmoittaa tämän?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Näillä osoitteilla voit palauttaa salasanasi.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Et enää osallistu tähän keskusteluun", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Sinulle on annettu porttikielto tähän keskusteluun", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "removeFromSpace": "Poista tilasta", + "roomVersion": "Huoneen versio", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "sentCallInformations": "{senderName} lähetti puhelutiedot", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "passphraseOrKey": "salalause tai palautusavain", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Syötä salasanasi", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Huone on päivitetty", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "search": "Hae", + "@search": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username} lähetti tiedoston", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username} lähetti ääniviestin", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "link": "Linkki", + "passwordForgotten": "Salasana unohtunut", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Poista profiilikuvasi", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "reply": "Vastaa", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Ilmoita viesti", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Tallenna tiedosto", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "security": "Turvallisuus", + "@security": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Julkiset huoneet", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "Syy", + "@reason": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Korvaa huone uudemmalla versiolla", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Lähetä video", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAPicture": "🖼️ {username} lähetti kuvan", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} lähetti tarran", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} lähetti videon", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "shareLocation": "Jaa sijainti", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Millainen on vointisi?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "sender": "Lähettäjä", + "startedACall": "{senderName} aloitti puhelun", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "submit": "Lähetä", + "@submit": { + "type": "String", + "placeholders": {} + }, + "unmuteChat": "Poista keskustelun mykistys", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Poista kiinnitys", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "time": "Aika", + "writeAMessage": "Kirjoita viesti…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Kyllä", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Sinä", + "@you": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Julkinen avaimesi", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "messageInfo": "Viestin tiedot", + "openGallery": "Avaa galleria", + "commandHint_clearcache": "Tyhjennä välimuisti", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_create": "Luo tyhjä ryhmäkeskustelu\nKäytä parametria --no-encryption poistaaksesi salauksen käytöstä", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_dm": "Aloita yksityiskeskustelu\nKäytä parametria --no-encryption poistaaksesi salauksen käytöstä", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_discardsession": "Hylkää istunto", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "markAsRead": "Merkitse luetuksi", + "emojis": "Hymiöt", + "unsupportedAndroidVersionLong": "Tämä ominaisuus vaatii uudemman Android-version. Tarkistathan päivitykset tai Lineage OS :n tuki.", + "unsupportedAndroidVersion": "Ei tuettu Android-versio", + "reportUser": "Ilmianna käyttäjä", + "reactedWith": "{sender} reagoi {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "pinMessage": "Kiinnitä huoneeseen", + "confirmEventUnpin": "Haluatko varmasti irrottaa tapahtuman pysyvästi?", + "youRejectedTheInvitation": "Kieltäydyit kutsusta", + "youJoinedTheChat": "Liityit keskusteluun", + "youAcceptedTheInvitation": "👍 Hyväksyit kutsun", + "youBannedUser": "Annoit porttikiellon käyttäjälle {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youHaveWithdrawnTheInvitationFor": "Olet perunut kutsun käyttäjälle {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 {user} kutsui sinut", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKicked": "👞 Potkit käyttäjän {user} keskustelusta", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 Kutsuit käyttäjän {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKickedAndBanned": "🙅 Potkit ja annoit porttikiellon käyttäjälle {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "Poistit käyttäjän {user} porttikiellon", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "hydrate": "Palauta varmuuskopiotiedostosta", + "dehydrate": "Vie istunto ja tyhjennä laite", + "dehydrateWarning": "Tätä toimenpidettä ei voi kumota. Varmista varmuuskopiotiedoston turvallinen tallennus.", + "users": "Käyttäjät", + "storeSecurlyOnThisDevice": "Tallenna turvallisesti tälle laitteelle", + "storeInAndroidKeystore": "Tallenna Android KeyStoreen", + "storeInAppleKeyChain": "Tallenna Applen avainnippuun", + "countFiles": "{count} tiedostoa", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "user": "Käyttäjä", + "custom": "Mukautettu", + "confirmMatrixId": "Kirjoita Matrix IDsi uudelleen poistaaksesi tunnuksesi.", + "supposedMxid": "Tämän pitäisi olla {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "commandHint_markasgroup": "Merkitse ryhmäksi", + "whyIsThisMessageEncrypted": "Miksei tätä viestiä voida lukea?", + "noKeyForThisMessage": "Tämä voi tapahtua mikäli viesti lähetettiin ennen sisäänkirjautumistasi tälle laitteelle.\n\nOn myös mahdollista, että lähettäjä on estänyt tämän laitteen tai jokin meni pieleen verkkoyhteyden kanssa.\n\nPystytkö lukemaan viestin toisella istunnolla? Siinä tapauksessa voit siirtää viestin siltä! Mene Asetukset > Laitteet ja varmista, että laitteesi ovat varmistaneet toisensa. Seuraavankerran avatessasi huoneen ja molempien istuntojen ollessa etualalla, avaimet siirretään automaattisesti.\n\nHaluatko varmistaa ettet menetä avaimia uloskirjautuessa tai laitteita vaihtaessa? Varmista avainvarmuuskopion käytössäolo asetuksista.", + "commandHint_markasdm": "Merkitse yksityiskeskusteluksi syötetyn Matrix IDn kanssa", + "newSpace": "Uusi tila", + "hugContent": "{senderName} halaa sinua", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "cuddleContent": "{senderName} kokovartalohalaa sinua", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_hug": "Lähetä halaus", + "googlyEyesContent": "{senderName} lähettää askartelusilmiä", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_googly": "Lähetä askartelusilmiä", + "commandHint_cuddle": "Lähetä kokovartaluhalaus", + "doNotShowAgain": "Älä näytä uudelleen", + "fileHasBeenSavedAt": "Tiedosto on tallennettu sijaintiin {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "disableEncryptionWarning": "Turvallisuuden vuoksi et voi poistaa salausta käytöstä huoneista, joissa se on aiemmin otettu käyttöön.", + "newSpaceDescription": "Tilat mahdollistavat keskusteluidesi keräämisen ja yksityisten tai julkisten yhteisöjen rakentamisen.", + "reopenChat": "Avaa keskustelu uudelleen", + "noOtherDevicesFound": "Muita laitteita ei löytynyt", + "jumpToLastReadMessage": "Hyppää viimeiseen luettuun viestiin", + "readUpToHere": "Luettu tähän asti", + "jump": "Hyppää", + "openLinkInBrowser": "Avaa linkki selaimessa", + "report": "ilmoita", + "encryptThisChat": "Salaa tämä keskustelu", + "noBackupWarning": "Varoitus! Ilman avainvarmuuskopion käyttöönottoa menetät pääsyn salattuihin viesteihisi. Suosittelemme ehdottomasti avainvarmuuskopion käyttöönottoa ennen uloskirjautumista.", + "fileIsTooBigForServer": "Ei voi lähettää! Palvelin tukee liitetiedostoja vain enintään {max}.", + "reportErrorDescription": "😭 Voi ei. Jokin meni pieleen. Halutessasi voit ilmoittaa ongelman kehittäjille.", + "wasDirectChatDisplayName": "Tyhjä keskustelu (oli {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "sorryThatsNotPossible": "Anteeksi... se ei ole mahdollista", + "setColorTheme": "Aseta väriteema:", + "tryAgain": "Yritä uudelleen", + "messagesStyle": "Viestit:", + "chatDescription": "Keskustelun kuvaus", + "invalidServerName": "Virheellinen palvelimen nimi", + "chatPermissions": "Keskustelun oikeudet", + "setChatDescription": "Asetti keskustelun kuvauksen", + "importFromZipFile": "Tuo .zip -tiedostosta", + "redactedBy": "Poistanut {username}", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "optionalRedactReason": "(Vapaaehtoinen) Syy tämän viestin poistamiselle...", + "archiveRoomDescription": "Keskustelu siirretään arkistoon. Muut käyttäjät näkevät sinun poistuneen keskustelusta.", + "exportEmotePack": "Vie emotepaketti .zip-tiedostona", + "redactedByBecause": "Poistanut {username} syystä: \"{reason}\"", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "redactMessageDescription": "Viesti poistetaan kaikilta keskustelun osallistujilta. Tätä ei voida kumota.", + "invalidInput": "Virheellinen syöte!", + "hasKnocked": "🚪 {user} on koputtanut", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "wrongPinEntered": "Väärä pin-koodi! Yritä uudelleen {seconds} sekuntin kuluttua...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "sendTypingNotifications": "Lähetä kirjoitusilmoituksia", + "inviteGroupChat": "📨 Kutsu ryhmäkeskusteluun", + "importEmojis": "Tuo emojit", + "noChatDescriptionYet": "Keskustelun kuvausta ei ole vielä luotu.", + "notAnImage": "Tämä ei ole kuvatiedosto.", + "chatDescriptionHasBeenChanged": "Keskustelun kuvaus muutettu", + "roomUpgradeDescription": "Keskustelu luodaan uudelleen uudella huoneversiolla. Kaikille osallistujille ilmoitetaan, että heidän tulee siirtyä uuteen keskusteluun. Voit lukea lisää huoneversioista osoitteesta https://spec.matrix.org/latest/rooms/", + "pleaseEnterANumber": "Syötä suurempi luku kuin 0", + "shareInviteLink": "Jaa kutsulinkki", + "emoteKeyboardNoRecents": "Viimeaikoina käytetyt emotet tulevat näkymään täällä...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "replace": "Korvaa", + "createGroup": "Luo ryhmä", + "importNow": "Tuo nyt", + "invite": "Kutsu", + "swipeRightToLeftToReply": "Vastaa pyyhkäisemällä oikealta vasemmalle", + "accessAndVisibility": "Pääsy ja näkyvyys", + "unread": "Lukemattomat", + "noMoreChatsFound": "Lisää keskusteluja ei löytynyt...", + "select": "Valitse", + "searchForUsers": "Etsi @users...", + "pleaseEnterYourCurrentPassword": "Anna nykyinen salasanasi", + "newPassword": "Uusi salasana", + "pleaseChooseAStrongPassword": "Valitse vahva salasana", + "passwordsDoNotMatch": "Salasanat eivät täsmää", + "passwordIsWrong": "Salasanasi on väärä", + "thisDevice": "Tämä laite:", + "gallery": "Galleria", + "files": "Tiedostot", + "changelog": "Muutosloki", + "continueText": "Jatka", + "serverInformation": "Palvelimen tiedot:", + "name": "Nimi", + "version": "Versio", + "website": "Verkkosivu", + "previous": "Edellinen", + "open": "Avaa", + "more": "Lisää", + "allDevices": "Kaikki laitteet", + "recordAVideo": "Nauhoita video", + "approve": "Hyväksy", + "pause": "Keskeytä", + "resume": "Jatka", + "aboutHomeserver": "Tietoja {homeserver}:sta", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "commandHint_roomupgrade": "Päivitä tämä huone annettuun huoneversioon", + "appLockDescription": "Lukitse sovellus kun sitä ei käytetä PIN-koodin kanssa", + "noChatsFoundHere": "Täältä ei löytynyt vielä pikakeskusteluja. Aloita uusi pikakeskustelu jonkun kanssa alla olevalla painikkeella. ⤵️", + "space": "Tila", + "checkList": "Tarkistuslista", + "countInvited": "{count} kutsuttu", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "globalChatId": "Yleisesti pätevä keskustelutunnus", + "accessAndVisibilityDescription": "Kuka voi liittyä tähän pikakeskusteluun ja miten pikakeskustelun voi löytää.", + "calls": "Puhelut", + "customEmojisAndStickers": "Mukautetut emojit ja tarrat", + "customEmojisAndStickersBody": "Lisää tai jaa mukautettuja emojeja tai tarroja, joita voidaan käyttää missä tahansa pikakeskustelussa.", + "hideInvalidOrUnknownMessageFormats": "Piilota virheelliset tai tuntemattomat viestimuodot", + "block": "Estä", + "blockedUsers": "Estetyt käyttäjät", + "blockListDescription": "Voit estää sinua häiritsevät käyttäjät. Et voi vastaanottaa viestejä tai huonekutsuja henkilökohtaisella estolistallasi olevilta käyttäjiltä.", + "blockUsername": "Jätä käyttäjänimi huomiotta", + "passwordRecoverySettings": "Salasanan palautusasetukset", + "sendImages": "Lähetä {count} kuva", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "synchronizingPleaseWaitCounter": " Synkronoidaan… ({percentage} %)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "usersMustKnock": "Käyttäjien on koputettava", + "noOneCanJoin": "Kukaan ei voi liittyä", + "knock": "Koputa", + "removeDevicesDescription": "Sinut kirjataan ulos tästä laitteesta, etkä voi enää vastaanottaa viestejä.", + "banUserDescription": "Käyttäjä kielletään pikakeskustelusta, eikä hän voi liittyä pikakeskusteluun uudelleen ennen kuin kielto kumotetaan.", + "unbanUserDescription": "Käyttäjä voi liittyä pikakeskusteluun uudelleen, jos hän yrittää.", + "kickUserDescription": "Käyttäjä potkitaan ulos pikakeskustelusta, mutta häntä ei porttikieltoa saada. Julkisissa pikakeskusteluissa käyttäjä voi liittyä takaisin milloin tahansa.", + "makeAdminDescription": "Kun olet tehnyt tästä käyttäjästä järjestelmänvalvojan, et ehkä voi perua tätä, koska hänellä on siitä hetkestä lähtien samat oikeudet kuin sinulla.", + "pushNotificationsNotAvailable": "Työntöilmoitukset ei saatavilla", + "learnMore": "Opi lisää", + "yourGlobalUserIdIs": "Yleisesti pätevä käyttäjätunnuksesi on: ", + "noUsersFoundWithQuery": "Valitettavasti käyttäjää ei löytynyt haulla \"{query}\". Tarkistathan, onko kirjoitusvirhe.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "knocking": "Koputetaan", + "chatCanBeDiscoveredViaSearchOnServer": "Pikakeskustelu löytyy haulla {server}:lta", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "searchChatsRooms": "Hae #pikakeskustelut, @käyttäjät...", + "nothingFound": "Mitään ei löytynyt...", + "groupName": "Ryhmän nimi", + "createGroupAndInviteUsers": "Luo ryhmä ja kutsu käyttäjiä", + "groupCanBeFoundViaSearch": "Ryhmä löytyy haun kautta", + "wrongRecoveryKey": "Pahoittelut... tämä ei vaikuta olevan oikea palautusavain.", + "commandHint_sendraw": "Lähetä raaka JSON", + "databaseMigrationTitle": "Tietokanta on optimoitu", + "databaseMigrationBody": "Odotathan hetki. Tämä voi kestää hetken.", + "leaveEmptyToClearStatus": "Jätä tyhjäksi tyhjentääksesi tilasi.", + "publicChatAddresses": "Julkiset keskusteluosoitteet", + "createNewAddress": "Luo uusi osoite", + "joinSpace": "Liity tilaan", + "publicSpaces": "Julkiset tilat", + "addChatOrSubSpace": "Lisää pikakeskustelu tai alitila", + "initAppError": "Sovelluksen alustamisessa tapahtui virhe", + "searchIn": "Hae keskustelusta \"{chat}\"...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "searchMore": "Hae lisää...", + "sessionLostBody": "Istuntosi on menetetty. Ilmoita tästä virheestä kehittäjille osoitteessa {url}. Virheviesti on: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "restoreSessionBody": "Sovellus yrittää nyt palauttaa istuntosi varmuuskopiosta. Ilmoita tästä virheestä kehittäjille osoitteessa {url}. Virheviesti on: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "sendReadReceipts": "Lähetä lukukuittaukset", + "sendTypingNotificationsDescription": "Muut keskustelun osallistujat näkevät, milloin olet kirjoittamassa uutta viestiä.", + "sendReadReceiptsDescription": "Muut keskustelun osallistujat näkevät, milloin olet lukenut viestin.", + "formattedMessages": "Muotoillut viestit", + "formattedMessagesDescription": "Näytä rikasta viestisisältöä, kuten lihavoitua tekstiä, käyttämällä Markdownia.", + "verifyOtherUser": "🔐 Vahvista toinen käyttäjä", + "verifyOtherUserDescription": "Jos vahvistat toisen käyttäjän, voit olla varma, että tiedät kenelle todella kirjoitat. 💪\n\nKun aloitat vahvistuksen, sinä ja toinen käyttäjä näette sovelluksessa ponnahdusikkunan. Siellä näette sitten sarjan emojeja tai numeroita, joita teidän on verrattava toisiinsa.\n\nParas tapa tehdä tämä on tavata heidät tai aloittaa videopuhelu. 👭", + "verifyOtherDevice": "🔐 Vahvista toinen laite", + "verifyOtherDeviceDescription": "Kun vahvistat toisen laitteen, kyseiset laitteet voivat vaihtaa avaimia, mikä lisää yleistä turvallisuuttasi. 💪 Kun aloitat vahvistuksen, molempien laitteiden sovellukseen ilmestyy ponnahdusikkuna. Siellä näet sitten sarjan emojeja tai numeroita, joita sinun on verrattava toisiinsa. On parasta pitää molemmat laitteet käsillä ennen vahvistuksen aloittamista. 🤳", + "acceptedKeyVerification": "{sender} hyväksyi avaimen vahvistuksen", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "canceledKeyVerification": "{sender} peruutti avaimen vahvistuksen", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "completedKeyVerification": "{sender} suoritti avaimen vahvistuksen", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "{sender} on valmis avaimen vahvistukseen", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "requestedKeyVerification": "{sender} pyysi avaimen vahvistusta", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "{sender} aloitti avaimen vahvistuksen", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "incomingMessages": "Saapuvat viestit", + "stickers": "Tarrat", + "discover": "Tutustu", + "commandHint_ignore": "Jätä huomiotta annettu matrix-tunnus", + "commandHint_unignore": "Kumoa annetun matrix-tunnuksen huomiottajätäminen", + "unreadChatsInApp": "{appname}: {unread} lukematonta keskustelua", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "noDatabaseEncryption": "Tietokannan salausta ei tueta tällä alustalla", + "thereAreCountUsersBlocked": "Tällä hetkellä {count} käyttäjää on estetty.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "goToSpace": "Siirry tilaan: {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "markAsUnread": "Merkitse lukemattomaksi", + "userLevel": "{level} - Käyttäjä", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "moderatorLevel": "{level} - Valvoja", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "adminLevel": "{level} - Järjestelmänvalvoja", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeGeneralChatSettings": "Muuta yleisiä keskusteluasetuksia", + "inviteOtherUsers": "Kutsu muita käyttäjiä tähän pikakeskusteluun", + "changeTheChatPermissions": "Muuta keskustelulupia", + "changeTheVisibilityOfChatHistory": "Muuta pikakeskusteluhistorian näkyvyyttä", + "changeTheCanonicalRoomAlias": "Vaihda julkisen pikakeskustelun pääosoite", + "sendRoomNotifications": "Lähetä @room-ilmoituksia", + "changeTheDescriptionOfTheGroup": "Muuta keskustelun kuvausta", + "chatPermissionsDescription": "Määritä tarvittava tehotaso tietyille toiminnoille tässä pikakeskustelussa. Tehotasot 0, 50 ja 100 edustavat yleensä käyttäjiä, valvoja ja ylläpitäjiä, mutta mikä tahansa porrastus on mahdollinen.", + "updateInstalled": "🎉 Päivitys {version} asennettu!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "sendCanceled": "Lähetys peruttu", + "loginWithMatrixId": "Kirjaudu sisään Matrix-tunnuksella", + "doesNotSeemToBeAValidHomeserver": "Ei näytä olevan yhteensopiva kotipalvelin. Väärä URL-osoite?", + "calculatingFileSize": "Lasketaan tiedoston kokoa...", + "oneOfYourDevicesIsNotVerified": "Yhtä laitteistasi ei ole vahvistettu", + "noticeChatBackupDeviceVerification": "Huomautus: Kun yhdistät kaikki laitteesi keskustelun varmuuskopiointiin, ne vahvistetaan automaattisesti.", + "blur": "Sumeus:", + "opacity": "Läpinäkymättömyys:", + "setWallpaper": "Aseta taustakuva", + "manageAccount": "Hallinnoi tiliä", + "noContactInformationProvided": "Palvelin ei ilmoittaa mitään kelvollisia yhteystietoja", + "contactServerAdmin": "Ota yhteyttä palvelimen ylläpitäjään", + "contactServerSecurity": "Ota yhteyttä palvelimen tietoturvaosastoon", + "supportPage": "Tukisivu", + "compress": "Pakkaa", + "boldText": "Lihavoitu teksti", + "italicText": "Kursivoitu teksti", + "strikeThrough": "Yliviivaus", + "pleaseFillOut": "Ole hyvä ja täytä", + "invalidUrl": "Virheellinen URL-osoite", + "addLink": "Lisää linkki", + "unableToJoinChat": "Pikakeskusteluun liittyminen ei onnistu. Toinen osapuoli on ehkä jo sulkenut keskustelun.", + "otherPartyNotLoggedIn": "Toinen osapuoli ei ole tällä hetkellä kirjautuneena sisään, joten ei voi vastaanottaa viestejä!", + "appWantsToUseForLogin": "Kirjaudu sisään käyttämällä '{server}':ta", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "appWantsToUseForLoginDescription": "Annat täten sovellukselle ja verkkosivustolle luvan jakaa tietoja sinusta.", + "waitingForServer": "Odotetaan palvelinta...", + "newChatRequest": "📩 Uusi pikakeskustelupyyntö", + "contentNotificationSettings": "Sisältöilmoitusten asetukset", + "generalNotificationSettings": "Yleiset ilmoitusasetukset", + "roomNotificationSettings": "Huoneen ilmoitusten asetukset", + "userSpecificNotificationSettings": "Käyttäjäkohtaiset ilmoitusten asetukset", + "otherNotificationSettings": "Muut ilmoitusten asetukset", + "notificationRuleContainsUserName": "Sisältää käyttäjän nimen", + "notificationRuleContainsUserNameDescription": "Ilmoittaa käyttäjälle, kun viesti sisältää hänen käyttäjän nimensä.", + "notificationRuleMaster": "Mykistä kaikki ilmoitukset", + "notificationRuleMasterDescription": "Ohittaa kaikki muut säännöt ja poistaa kaikki ilmoitukset käytöstä.", + "notificationRuleSuppressNotices": "Poista kaikki automatisoidut viestit", + "notificationRuleSuppressNoticesDescription": "Poistaa ilmoitukset automatisoiduilta asiakkailta, kuten boteilta.", + "notificationRuleInviteForMe": "Kutsu minulle", + "notificationRuleInviteForMeDescription": "Ilmoittaa käyttäjälle, kun hänet on kutsuttu huoneeseen.", + "notificationRuleMemberEvent": "Jäsentapahtuma", + "notificationRuleMemberEventDescription": "Poistaa jäsenyystapahtumien ilmoitukset.", + "notificationRuleIsUserMention": "Käyttäjän maininta", + "notificationRuleIsUserMentionDescription": "Ilmoittaa käyttäjälle, kun hänet mainitaan suoraan viestissä.", + "notificationRuleContainsDisplayName": "Sisältää näyttönimen", + "notificationRuleContainsDisplayNameDescription": "Ilmoittaa käyttäjälle, kun viesti sisältää hänen näyttönimensä.", + "notificationRuleIsRoomMention": "Huoneen maininta", + "notificationRuleIsRoomMentionDescription": "Ilmoittaa käyttäjälle, kun huoneesta on maininta.", + "notificationRuleRoomnotif": "Huoneilmoitus", + "notificationRuleRoomnotifDescription": "Ilmoittaa käyttäjälle, kun viesti sisältää '@room'.", + "notificationRuleTombstone": "Hautakivi", + "notificationRuleTombstoneDescription": "Ilmoittaa käyttäjälle huoneen deaktivointiviesteistä.", + "notificationRuleReaction": "Reagointi", + "notificationRuleReactionDescription": "Poistaa ilmoitukset reaktioista.", + "notificationRuleRoomServerAcl": "Huonepalvelimen pääsyluettelo", + "notificationRuleRoomServerAclDescription": "Poistaa huonepalvelimen pääsyluetteloiden (ACL) ilmoitukset.", + "notificationRuleSuppressEdits": "Poista muokkaukset", + "notificationRuleSuppressEditsDescription": "Poistaa ilmoitukset muokatuista viesteistä.", + "notificationRuleCall": "Soita", + "notificationRuleCallDescription": "Ilmoittaa käyttäjälle soitoista.", + "notificationRuleEncryptedRoomOneToOne": "Kahdenkeskinen salattu huone", + "notificationRuleEncryptedRoomOneToOneDescription": "Ilmoittaa käyttäjälle kahdenkeskisissä salatuissa huoneissa olevista viesteistä.", + "notificationRuleRoomOneToOne": "Kahdenkeskinen huone", + "notificationRuleRoomOneToOneDescription": "Ilmoittaa käyttäjälle kahdenkeskisissä huoneissa olevista viesteistä.", + "notificationRuleMessage": "Viesti", + "notificationRuleMessageDescription": "Ilmoittaa käyttäjälle yleisistä viesteistä.", + "notificationRuleEncrypted": "Salattu", + "notificationRuleEncryptedDescription": "Ilmoittaa käyttäjälle salatuissa huoneissa olevista viesteistä.", + "notificationRuleJitsiDescription": "Ilmoittaa käyttäjälle tapahtumista Jitsi-vimpaimesta.", + "notificationRuleServerAcl": "Poista tapahtumat palvelimen pääsyluettelosta", + "notificationRuleServerAclDescription": "Poistaa ilmoitukset palvelimen pääsyluettelosta.", + "unknownPushRule": "Tuntematon työntösääntö '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "sentVoiceMessage": "🎙️ {duration} - Ääniviesti {sender}:lta", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "deletePushRuleCanNotBeUndone": "Jos poistat tämän ilmoitusasetuksen, sitä ei voi kumota.", + "shareKeysWith": "Jaa avaimet...", + "shareKeysWithDescription": "Mihin laitteisiin tulisi luottaa, jotta ne voivat lukea viestejäsi salatuissa keskusteluissa?", + "crossVerifiedDevicesIfEnabled": "Ristiinvahvistetut laitteet, jos otettu käyttöön", + "crossVerifiedDevices": "Ristiinvahvistetut laitteet", + "verifiedDevicesOnly": "Vain vahvistetut laitteet", + "takeAPhoto": "Ota valokuva", + "optionalMessage": "(Valinnainen) viesti...", + "notSupportedOnThisDevice": "Ei tuettu tällä laitteella", + "hideRedactedMessages": "Piilota valvojan toimesta poistetut viestit", + "hideRedactedMessagesBody": "Jos viesti jonkun toimesta poistetaan, se ei enää näy pikakeskustelussa.", + "enterNewChat": "Aloita uusi pikakeskustelu", + "youHaveKnocked": "Olet koputtanut", + "pleaseWaitUntilInvited": "Odotathan nyt, kunnes joku huoneesta kutsuu sinut.", + "commandHint_logout": "Kirjaudu ulos nykyinen laitteesi", + "commandHint_logoutall": "Kirjaudu ulos kaikki aktiiviset laitteet", + "displayNavigationRail": "Näytä navigointipalkki mobiililaitteella", + "customReaction": "Mukautettu reagointi", + "moreEvents": "Lisää tapahtumia", + "declineInvitation": "Hylkää kutsu", + "noMessagesYet": "Ei vielä viestejä", + "longPressToRecordVoiceMessage": "Pitkä painallus ääniviestin tallentamiseksi.", + "removeFromSpaceDescription": "Pikakeskustelu poistetaan tilasta, mutta se näkyy edelleen pikakeskusteluluettelossasi.", + "countChats": "{chats} pikakeskustelua", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "spaceMemberOf": "{spaces}:jen tilanjäsen", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "{spaces}:jen tilanjäsen saa koputtaa", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "startPoll": "Aloita kysely", + "endPoll": "Lopeta kysely", + "answersVisible": "Vastaukset näkyvissä", + "pollQuestion": "Kyselykysymys", + "answerOption": "Vastausvaihtoehto", + "addAnswerOption": "Lisää vastausvaihtoehto", + "allowMultipleAnswers": "Salli useita vastauksia", + "pollHasBeenEnded": "Kysely on päättynyt", + "answersWillBeVisibleWhenPollHasEnded": "Vastaukset näkyvät, kun kysely on päättynyt", + "replyInThread": "Vastaa ketjussa", + "countVotes": "{count, plural, =1{One vote} other{{count} ääntä}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "countReplies": "{count, plural, =1{One reply} other{{count} vastausta}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "thread": "Ketju", + "backToMainChat": "Takaisin pääpikakeskusteluun", + "@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" + } + } + } +} \ No newline at end of file diff --git a/lib/l10n/intl_fil.arb b/lib/l10n/intl_fil.arb new file mode 100644 index 0000000..339a467 --- /dev/null +++ b/lib/l10n/intl_fil.arb @@ -0,0 +1,1997 @@ +{ + "remove": "Tanggalin", + "@remove": { + "type": "String", + "placeholders": {} + }, + "importNow": "I-import ngayon", + "importEmojis": "I-import ang mga Emoji", + "importFromZipFile": "Mag-import mula sa .zip file", + "exportEmotePack": "I-export ang Emote pack bilang .zip", + "accept": "Tanggapin", + "@accept": { + "type": "String", + "placeholders": {} + }, + "account": "Account", + "@account": { + "type": "String", + "placeholders": {} + }, + "addEmail": "Magdagdag ng email", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "confirmMatrixId": "Paki-kumpirma ang iyong Matrix ID para burahin ang iyong account.", + "admin": "Admin", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "alyas", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Lahat", + "@all": { + "type": "String", + "placeholders": {} + }, + "commandHint_googly": "Magpadala ng mga googly eye", + "commandHint_cuddle": "Magpadala ng yakap", + "cuddleContent": "Niyakap ka ni {senderName}", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "hugContent": "Niyakap ka ni {senderName}", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Pwede sumali ang anumang tao", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "Lock ng app", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "archive": "Archive", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Pwede ba sumali ang mga bisita", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Sigurado ka?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Tanggapin ang hiling ng verification mula sa {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "autoplayImages": "Awtomatikong i-play ang mga gumagalaw na sticker at emote", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "sendTypingNotifications": "Ipadala ang mga typing notification", + "blockDevice": "I-block ang Device", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "Na-block", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "changeDeviceName": "Palitan ang pangalan ng device", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "Pinalitan ni {username} ang avatar ng chat", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "Pinalitan ni {username} ang mga tuntunin sa pag-access ng bisita", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "Pinalitan ni {username} ang kakayahan ng pagkikita ng history", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "Pinalitan ni {username} ang kakayahan ng pagkikita ng history sa: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "Pinalitan ni {username} ang mga alias ng room", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Palitan ang password", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Palitan ang iyong avatar", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "Nasira ang encryption", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Chat", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Pag-backup ng chat", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Mga detalye ng chat", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Mga Chat", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Pumili ng malakas na password", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "I-clear ang archive", + "close": "Isara", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_markasgroup": "Markahan bilang grupo", + "commandHint_ban": "Pagbawalan ang ibinigay na user sa room na ito", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "repeatPassword": "Ulitin ang password", + "notAnImage": "Hindi isang file na larawan.", + "replace": "Palitan", + "about": "Tungkol sa", + "@about": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 Tinanggap ni {username} ang imbitasyon", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "activatedEndToEndEncryption": "🔐 Na-activate ni {username} ang end to end encryption", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "supposedMxid": "Dapat ito ay {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "addToSpace": "Idagdag sa space", + "commandHint_hug": "Magpadala ng yakap", + "googlyEyesContent": "Nagpadala si {senderName} ng googly eyes", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "answeredTheCall": "Sinagot ni {senderName} ang tawag", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "areYouSureYouWantToLogout": "Sigurado kang gusto mong mag-log out?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Para i-sign ang isa pang tao, pakilagay ang iyong secure store passphrase o recovery key.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "badServerLoginTypesException": "Ang homeserver ay sinusuportahan ang sumusunod na uri ng login:\n{serverVersions}\nNgunit sinusuportahan lang ng app ang:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "sendOnEnter": "Ipadala sa pagpindot ng enter", + "banFromChat": "Pagbawalan sa chat", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Pinagbawalan", + "@banned": { + "type": "String", + "placeholders": {} + }, + "cancel": "Kanselahin", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "Pinagbawalan ni {username} si {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "cantOpenUri": "Hindi mabuksan ang URI na {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changedTheJoinRules": "Pinalitan ni {username} ang mga tuntunin sa pagsali", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "Pinalitan ni {username} ang mga tuntunin sa pagsali sa: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "Pinalitan ni {username} ang kanilang avatar", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "Pinalitan ni {username} ang link ng imbitasyon", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changeTheHomeserver": "Palitan ang homeserver", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Palitan ang iyong istilio", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changedTheChatPermissions": "Pinalitan ni {username} ang mga pahintulot ng chat", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changeTheNameOfTheGroup": "Palitan ng pangalan ng grupo", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changedTheDisplaynameTo": "Pinalitan ni {username} ang kanilang displayname sa: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "commandHint_markasdm": "Markahan bilang direktang mensahe na room para sa ibinigay na Matrix ID", + "changedTheGuestAccessRulesTo": "Pinalitan ni {username} ang mga tuntunin sa pag-access ng bisita sa: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "commandHint_clearcache": "I-clear ang cache", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_discardsession": "Iwaksi ang sesyon", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_create": "Gumawa ng walang lamang group chat\nGumamit ng --no-encryption para i-disable ang encryption", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "configureChat": "I-configure ang chat", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Paki-kumpara ang mga numero", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Kinopya sa clipboard", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Kopyahin", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Kopyahin sa clipboard", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "countParticipants": "{count} mga kasali", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "createdTheChat": "💬 Ginawa ni {username} ang chat", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "createGroup": "Gumawa ng grupo", + "createNewSpace": "Bagong space", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "Kasalukuyang aktibo", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Madilim", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Pinalitan na ang display name", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "directChats": "Mga Direktang Chat", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "I-download ang file", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "I-edit ang mga naka-block na server", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "chatPermissions": "Mga pahintulot ng chat", + "editDisplayname": "I-edit ang display name", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "I-edit ang mga alyas ng room", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "edit": "I-edit", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "I-edit ang avatar ng room", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Umiiral na ang emote!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Walang lamang chat", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "I-enable ang encryption", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "encryption": "Pag-encrypt", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Naka-encrypt", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Hindi naka-enable ang encryption", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "appLockDescription": "I-lock ang app kapag hindi ginagamit sa pamamagitan ng pin code", + "commandHint_dm": "Magsimula ng direktong chat\nGumamit ng --no-encryptiom para i-disable ang encryption", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_html": "Magpadala ng HTML-formatted na text", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Imbitahan ang ibinigay na user sa room na ito", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "Sumali sa ibinigay na room", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "Tanggalin ang ibinigay na user sa room na ito", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "Umalis sa room na ito", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "Ilarawan ang iyong sarili", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_myroomavatar": "Ilapat ang iyong larawan para sa room na ito (bilang mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "Ilapat ang iyong display name para sa room na ito", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "Ilapat ang level ng lakas sa ibinigay na user (default: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_react": "Magpadala ng reply bilang reaksyon", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_send": "Magpadala ng text", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_unban": "I-unban ang ibinigay na user sa room na ito", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandInvalid": "Hindi wastong command", + "@commandInvalid": { + "type": "String" + }, + "compareEmojiMatch": "Paki-kumpara ang mga emoji", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "create": "Gumawa", + "@create": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Ide-deactivate nito ang iyong user account. Hindi na ito maaaring bawiin! Sigurado ka?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "delete": "Burahin", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Burahin ang mensahe", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Mga Device", + "@devices": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Hindi wastong shortcode ng emote!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteKeyboardNoRecents": "Ang mga kamakailang ginamit na emote ay lalabas dito...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "calls": "Mga Tawag", + "customEmojisAndStickers": "Mga custom emoji at sticker", + "customEmojisAndStickersBody": "Magdagdag o magbahagi ng mga custom emoji o sticker na maaring gamitin sa anumang chat.", + "emoteShortcode": "Shortcode ng emoji", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "I-enable ang emote pack globally", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "Tinapos ni {senderName} ang tawag", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Maglagay ng email address", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "commandHint_plain": "Magpadala ng hindi na-format na text", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandMissing": "Hindi isang command ang {command}.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "contactHasBeenInvitedToTheGroup": "Inimbita ang contact sa group", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "Inulat ang nilalaman sa mga pangangasiwa ng server", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Hindi ma-decrypt ang mensahe: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "defaultPermissionLevel": "Default na antas ng pahintulot para sa mga bagong user", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Burahin ang account", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "globalChatId": "Global chat ID", + "accessAndVisibility": "Pag-access at visibility", + "accessAndVisibilityDescription": "Sino ang pinapayagang sumali sa chat at paano matutuklas ang chat.", + "enableEncryptionWarning": "Hindi mo madi-disable ang encryption. Sigurado ka ba?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Hindi makuha ang lokasyon: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "fontSize": "Laki ng font", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "noChatsFoundHere": "Walang pang mga chat na nahanap dito. Magsimula ng bagong chat kasama ang isang tao sa pamamagitan ng paggamit ng button sa ibaba. ⤵️", + "aboutHomeserver": "Tungkol sa {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "space": "Espasyo", + "guestsAreForbidden": "Pinagbabawal ang mga bisita", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Maaring sumali ang mga bisita", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "forward": "I-forward", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Mula sa pagsali", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Mula sa imbitasyon", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Grupo", + "@group": { + "type": "String", + "placeholders": {} + }, + "swipeRightToLeftToReply": "Mag-swipe pakaliwa o kanan para tumugon", + "noMoreChatsFound": "Wala nang mga chat na nahanap…", + "unread": "Hindi nabasa", + "groupIsPublic": "Pampubliko ang grupo", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "Mga grupo", + "@groups": { + "type": "String", + "placeholders": {} + }, + "chatDescription": "Paglalarawan ng chat", + "chatDescriptionHasBeenChanged": "Nabago ang paglalarawan ng chat", + "groupWith": "Grupo kasama kay/sa {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "@reply": { + "type": "String", + "placeholders": {} + }, + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@invited": { + "type": "String", + "placeholders": {} + }, + "@warning": { + "type": "String", + "placeholders": {} + }, + "@password": { + "type": "String", + "placeholders": {} + }, + "@goToSpace": { + "type": "String", + "space": {} + }, + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@videoCall": { + "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": {} + }, + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "@writeAMessage": { + "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" + } + } + }, + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "@next": { + "type": "String", + "placeholders": {} + }, + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "@no": { + "type": "String", + "placeholders": {} + }, + "@unpin": { + "type": "String", + "placeholders": {} + }, + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "@reason": { + "type": "String", + "placeholders": {} + }, + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "@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": {} + }, + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@submit": { + "type": "String", + "placeholders": {} + }, + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@participant": { + "type": "String", + "placeholders": {} + }, + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "@yes": { + "type": "String", + "placeholders": {} + }, + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "@help": { + "type": "String", + "placeholders": {} + }, + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "@verified": { + "type": "String", + "placeholders": {} + }, + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "@moderator": { + "type": "String", + "placeholders": {} + }, + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "@ok": { + "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!" + }, + "@sendAsText": { + "type": "String" + }, + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "@newChat": { + "type": "String", + "placeholders": {} + }, + "@notifications": { + "type": "String", + "placeholders": {} + }, + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "@mention": { + "type": "String", + "placeholders": {} + }, + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@leave": { + "type": "String", + "placeholders": {} + }, + "@skip": { + "type": "String", + "placeholders": {} + }, + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "@redactMessage": { + "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": {} + }, + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "@status": { + "type": "String", + "placeholders": {} + }, + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "@you": { + "type": "String", + "placeholders": {} + }, + "@search": { + "type": "String", + "placeholders": {} + }, + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "@logout": { + "type": "String", + "placeholders": {} + }, + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@messages": { + "type": "String", + "placeholders": {} + }, + "@login": { + "type": "String", + "placeholders": {} + }, + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "@settings": { + "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" + } + } + }, + "@reject": { + "type": "String", + "placeholders": {} + }, + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@visibleForEveryone": { + "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" + } + } + }, + "@privacy": { + "type": "String", + "placeholders": {} + }, + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "@pin": { + "type": "String", + "placeholders": {} + }, + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + } +} \ No newline at end of file diff --git a/lib/l10n/intl_fr.arb b/lib/l10n/intl_fr.arb new file mode 100644 index 0000000..e931af0 --- /dev/null +++ b/lib/l10n/intl_fr.arb @@ -0,0 +1,2829 @@ +{ + "@@locale": "fr", + "@@last_modified": "2021-08-14 12:41:10.051787", + "about": "À propos", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Accepter", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} a accepté l'invitation", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Compte", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} a activé le chiffrement de bout en bout", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "Ajouter un courriel", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "Ajouter à l'espace", + "admin": "Administrateur", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "adresse", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Tout", + "@all": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} a répondu à l'appel", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Tout le monde peut rejoindre", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "Verrouillage de l’application", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "archive": "Archiver", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Les invités peuvent-i·e·ls rejoindre ?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Êtes-vous sûr·e ?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Voulez-vous vraiment vous déconnecter ?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Pour pouvoir faire signer l'autre personne, veuillez entrer la phrase de passe de votre trousseau sécurisé ou votre clé de récupération.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Accepter cette demande de vérification de la part de {username} ?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "autoplayImages": "Lire automatiquement les autocollants et les émojis animés", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "badServerLoginTypesException": "Le serveur d'accueil prend en charge les types de connexion :\n{serverVersions}\nMais cette application ne prend en charge que :\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "banFromChat": "Bannir de la discussion", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Banni", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} a banni {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Bloquer l'appareil", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "Bloqué", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "Annuler", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "Impossible d'ouvrir l'URI {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changeDeviceName": "Modifier le nom de l'appareil", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} a changé l'image de la discussion", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} a changé les permissions de la discussion", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} a changé son nom en : '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} a changé les règles d'accès à la discussion pour les invités", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} a changé les règles d'accès à la discussion pour les invités en : {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} a changé la visibilité de l'historique de la discussion", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} a changé la visibilité de l'historique de la discussion en : {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} a changé les règles d'accès à la discussion", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} a changé les règles d'accès à la discussion en : {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} a changé son avatar", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} a changé les adresses du salon", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} a changé le lien d'invitation", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Changer de mot de passe", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Changer le serveur d'accueil", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Changez votre style", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Changer le nom du groupe", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Changer votre avatar", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "Le chiffrement a été corrompu", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Discussion", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Sauvegarde des discussions", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Détails de la discussion", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Discussions", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Choisissez un mot de passe fort", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Effacer les archives", + "close": "Fermer", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "Bannir l'utilisateur/trice donné(e) de ce salon", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_html": "Envoyer du texte au format HTML", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Inviter l'utilisateur/trice donné(e) dans ce salon", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "Rejoindre le salon donné", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "Supprime l'utilisateur/trice donné(e) de ce salon", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "Quitter ce salon", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "Décrivez-vous", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_myroomavatar": "Définir votre image pour ce salon (par mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "Définir votre nom d'affichage pour ce salon", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "Définir le niveau de puissance de l'utilisateur/trice donné(e) (par défaut : 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "Envoyer du texte non formaté", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "Envoyer une réponse en tant que réaction", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_send": "Envoyer du texte", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_unban": "Débannir l'utilisateur/trice donné(e) de ce salon", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandInvalid": "Commande invalide", + "@commandInvalid": { + "type": "String" + }, + "commandMissing": "{command} n'est pas une commande.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "compareEmojiMatch": "Veuillez comparer les émojis", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Veuillez comparer les chiffres", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Configurer la discussion", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Le contact a été invité au groupe", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "Le contenu a été signalé aux administrateurs du serveur", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Copié dans le presse-papier", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Copier", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Copier dans le presse-papiers", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Impossible de déchiffrer le message : {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count, plural, =1{1 participant} other{{count} participants}}", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Créer", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} a créé la discussion", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "createNewSpace": "Nouvel espace", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "Actif en ce moment", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Sombre", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Cette opération va désactiver votre compte. Une fois cette action effectuée, aucun retour en arrière n'est possible ! Êtes-vous sûr·e ?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Niveau d'autorisation par défaut pour les arrivants", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "Supprimer", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Supprimer le compte", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Supprimer le message", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Appareils", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Discussions directes", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Renommage effectué", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Télécharger le fichier", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "Modifier", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Modifier les serveurs bloqués", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Changer de nom d'affichage", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Modifier les adresses du salon", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Modifier l'avatar du salon", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Cette émoticône existe déjà !", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Raccourci d'émoticône invalide !", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Raccourci de l'émoticône", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Discussion vide", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Activer globalement le pack d'émoticônes", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Activer le chiffrement", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Vous ne pourrez plus désactiver le chiffrement. Êtes-vous sûr(e) ?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Chiffré", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Chiffrement", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Le chiffrement n'est pas activé", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} a mis fin à l'appel", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Saisissez une adresse de courriel", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Erreur lors de l'obtention de la localisation : {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "fontSize": "Taille de la police", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "Transférer", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "À partir de l'entrée dans le salon", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "À partir de l'invitation", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Groupe", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "Le groupe est public", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "Groupes", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Groupe avec {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Les invités ne peuvent pas rejoindre", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Les invités peuvent rejoindre", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} a annulé l'invitation de {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Aide", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Cacher les évènements inconnus", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignore": "Ignorer", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Utilisateur·ices ignoré·es", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "J'ai cliqué sur le lien", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Phrase de passe ou clé de récupération incorrecte", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Inviter un contact", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Inviter un contact dans {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "Invité·e", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username} a invité {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Uniquement les utilisateur·ices invité·es", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} vous a invité·e sur FluffyChat.\n1. Visiter fluffychat.im et installer l'application\n2. Inscrivez-vous ou connectez-vous\n3. Ouvrez le lien d'invitation :\n{link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "est en train d'écrire", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} a rejoint la discussion", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Rejoindre le salon", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username} a expulsé {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} a expulsé et banni {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Expulser de la discussion", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Vu·e pour la dernière fois : {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Partir", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "A quitté la discussion", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Clair", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Charger {count} participant·es de plus", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "Chargement… Veuillez patienter.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Charger plus…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "Les services de localisation sont désactivés. Il est nécessaire de les activer avant de pouvoir partager votre localisation.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "L'application n'a pas la permission d'accéder à votre localisation. Merci de l'accorder afin de pouvoir partager votre localisation.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "login": "Se connecter", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Se connecter à {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Se déconnecter", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Mentionner", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "Messages", + "@messages": { + "type": "String", + "placeholders": {} + }, + "moderator": "Modérateur·rice", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Mettre la discussion en sourdine", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Nouvelle discussion", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Nouveau message dans FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Nouvelle demande de vérification !", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "Suivant", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "Non", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Aucune connexion au serveur", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Aucune émoticône trouvée. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Vous pouvez activer le chiffrement seulement quand le salon n'est plus accessible au public.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Firebase Cloud Messaging ne semble pas être disponible sur votre appareil. Pour continuer à recevoir des notifications poussées, nous vous recommandons d'installer ntfy. Avec ntfy ou un autre fournisseur Unified Push, vous pouvez recevoir des notifications poussées de manière sécurisée. Vous pouvez télécharger ntfy sur le PlayStore ou sur F-Droid.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} n'est pas un serveur Matrix, souhaitez-vous utiliser {server2} à la place ?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "noPasswordRecoveryDescription": "Vous n'avez pas encore ajouté de moyen pour récupérer votre mot de passe.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Aucune permission", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Aucun salon trouvé…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Notifications", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} utilisateur·ices écrivent…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "obtainingLocation": "Obtention de la localisation…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "ok": "Valider", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "La sauvegarde en ligne des clés est activée", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Oups ! Une erreur s'est malheureusement produite lors du réglage des notifications.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Oups, un problème est survenu…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Ouvrez l'application pour lire le message", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Ouvrir l'appareil photo", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "openInMaps": "Ouvrir dans maps", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "or": "Ou", + "@or": { + "type": "String", + "placeholders": {} + }, + "participant": "Participant(e)", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "Phrase de passe ou clé de récupération", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Mot de passe", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Mot de passe oublié", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Le mot de passe a été modifié", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Récupération du mot de passe", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Épingler", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Veuillez choisir un code d’accès", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Veuillez cliquer sur le lien contenu dans le courriel puis continuez.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Renseignez votre mot de passe", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Veuillez saisir votre code PIN", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Renseignez votre nom d'utilisateur·ice", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Veuillez suivre les instructions sur le site et appuyer sur Suivant.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "Vie privée", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Salons publics", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "Motif", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} a supprimé un évènement", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactMessage": "Supprimer un message", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reject": "Refuser", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} a refusé l'invitation", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Supprimer", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Supprimer tous les autres appareils", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Débannissement de la discussion", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Supprimer votre avatar", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Remplacer le salon par une nouvelle version", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "Répondre", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Signaler un message", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Le salon a été mis à niveau", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Version du salon", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Enregistrer le fichier", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "search": "Rechercher", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "Sécurité", + "@security": { + "type": "String", + "placeholders": {} + }, + "send": "Envoyer", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Envoyer un message", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Envoyer un texte", + "@sendAsText": { + "type": "String" + }, + "sendAudio": "Envoyer un fichier audio", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Envoyer un fichier", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Envoyer une image", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Envoyer des messages", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Envoyer une vidéo", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username} a envoyé un fichier", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username} a envoyé un fichier audio", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username} a envoyé une image", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} a envoyé un autocollant", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} a envoyé une vidéo", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} a envoyé des informations sur l'appel", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setAsCanonicalAlias": "Définir comme adresse principale", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "setStatus": "Définir le statut", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Paramètres", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Partager", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} a partagé sa position", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "shareLocation": "Partager la localisation", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "skip": "Ignorer", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Code source", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "L'espace est public", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Nom de l'espace", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} a démarré un appel", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "status": "Statut", + "@status": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Comment allez-vous aujourd'hui ?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Soumettre", + "@submit": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Synchronisation... Veuillez patienter.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Système", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Elles ne correspondent pas", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Elles correspondent", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Trop de requêtes. Veuillez réessayer plus tard !", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Retenter l'envoi", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} a annulé le bannissement de {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Retirer le blocage sur l'appareil", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Appareil inconnu", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Algorithme de chiffrement inconnu", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Événement de type inconnu : '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Retirer la sourdine de la discussion", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Désépingler", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} et {count} autres sont en train d'écrire…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} et {username2} sont en train d'écrire…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} est en train d'écrire…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪 {username} a quitté la discussion", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} a envoyé un évènement de type {type}", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verified": "Vérifié", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Commencer la vérification", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "La vérification a été effectuée avec succès !", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Vérification de l'autre compte", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Visibilité de l'historique de la discussion", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Visible pour tous les participant·es", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Visible pour tout le monde", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Message vocal", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "En attente de l'acceptation de la demande par le partenaire…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "En attente de l'acceptation de l'émoji par le partenaire…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "En attente de l'acceptation des nombres par le partenaire…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Attention !", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Nous vous avons envoyé un courriel", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Qui peut faire quelle action", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Qui est autorisé·e à rejoindre ce groupe", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Pourquoi voulez-vous le signaler ?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Grâce à ces adresses, vous pouvez récupérer votre mot de passe si vous en avez besoin.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Écrivez un message…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Oui", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Vous", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Vous ne participez plus à cette discussion", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Vous avez été banni·e de cette discussion", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Votre clé publique", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "scanQrCode": "Scanner un code QR", + "sendOnEnter": "Envoyer avec Entrée", + "bundleName": "Nom du groupe", + "removeFromBundle": "Retirer de ce groupe", + "addToBundle": "Ajouter au groupe", + "editBundlesForAccount": "Modifier les groupes pour ce compte", + "addAccount": "Ajouter un compte", + "oneClientLoggedOut": "Un de vos clients a été déconnecté", + "link": "Lien", + "unverified": "Non vérifié", + "repeatPassword": "Répétez le mot de passe", + "openGallery": "Ouvrir dans la Galerie", + "time": "Heure", + "sender": "Expéditeur/trice", + "messageInfo": "Informations sur le message", + "removeFromSpace": "Supprimer de l’espace", + "commandHint_create": "Créer un groupe de discussion vide\nUtilisez --no-encryption pour désactiver le chiffrement", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_discardsession": "Abandonner la session", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_clearcache": "Vider le cache", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_dm": "Commencer une discussion directe\nUtilisez --no-encryption pour désactiver le chiffrement", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "markAsRead": "Marquer comme lu", + "reportUser": "Signaler l'utilisateur/trice", + "reactedWith": "{sender} a réagi avec {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "emojis": "Émojis", + "unsupportedAndroidVersion": "Version d'Android non prise en charge", + "unsupportedAndroidVersionLong": "Cette fonctionnalité nécessite une nouvelle version d'Android. Veuillez vérifier les mises à jour ou la prise en charge de Lineage OS.", + "pinMessage": "Épingler au salon", + "confirmEventUnpin": "Voulez-vous vraiment désépingler définitivement l'événement ?", + "youRejectedTheInvitation": "Vous avez rejeté l'invitation", + "youJoinedTheChat": "Vous avez rejoint la discussion", + "youHaveWithdrawnTheInvitationFor": "Vous avez retiré l'invitation pour {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youAcceptedTheInvitation": "👍 Vous avez accepté l'invitation", + "youBannedUser": "Vous avez banni {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 Vous avez été invité par {user}", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 Vous avez invité {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKicked": "👞 Vous avez dégagé {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKickedAndBanned": "🙅 Vous avez dégagé et banni {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "Vous avez débanni {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "users": "Utilisateurs/trices", + "storeInAndroidKeystore": "Stocker dans Android KeyStore", + "storeInAppleKeyChain": "Stocker dans Apple KeyChain", + "user": "Utilisateur/trice", + "custom": "Personnalisé", + "hydrate": "Restaurer à partir du fichier de sauvegarde", + "dehydrateWarning": "Cette action ne peut pas être annulée. Assurez-vous d'enregistrer convenablement le fichier de sauvegarde.", + "dehydrate": "Exporter la session et effacer l'appareil", + "storeSecurlyOnThisDevice": "Stocker de manière sécurisé sur cet appareil", + "countFiles": "{count} fichiers", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "noKeyForThisMessage": "Cela peut se produire si le message a été envoyé avant que vous ne vous soyez connecté à votre compte sur cet appareil.\n\nIl est également possible que l'expéditeur ait bloqué votre appareil ou qu'un problème de connexion Internet se soit produit.\n\nÊtes-vous capable de lire le message sur une autre session ? Vous pouvez alors transférer le message à partir de celle-ci ! Allez dans Paramètres > Appareils et assurez-vous que vos appareils se sont vérifiés mutuellement. Lorsque vous ouvrirez le salon la fois suivante et que les deux sessions seront au premier plan, les clés seront transmises automatiquement.\n\nVous ne voulez pas perdre les clés en vous déconnectant ou en changeant d'appareil ? Assurez-vous que vous avez activé la sauvegarde de la discussion dans les paramètres.", + "commandHint_markasdm": "Marquer comme salon de messages directs pour l'identifiant Matrix indiqué", + "commandHint_markasgroup": "Marquer comme groupe", + "confirmMatrixId": "Veuillez confirmer votre identifiant Matrix afin de supprimer votre compte.", + "supposedMxid": "Cela devrait être {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "whyIsThisMessageEncrypted": "Pourquoi ce message est-il illisible ?", + "newSpace": "Nouvel espace", + "doNotShowAgain": "Ne plus afficher", + "commandHint_googly": "Envoyer des yeux écarquillés", + "commandHint_cuddle": "Envoyer un câlin", + "commandHint_hug": "Envoyer une accolade", + "googlyEyesContent": "{senderName} vous envoie des yeux écarquillés", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "cuddleContent": "{senderName} vous fait un câlin", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "hugContent": "{senderName} vous fait une accolade", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "wasDirectChatDisplayName": "Discussion vide (était {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "encryptThisChat": "Chiffrer cette discussion", + "sorryThatsNotPossible": "Désolé, ce n'est pas possible", + "newSpaceDescription": "Les espaces vous permettent de consolider vos conversations et de construire des communautés privées ou publiques.", + "disableEncryptionWarning": "Pour des raisons de sécurité, vous ne pouvez pas désactiver le chiffrement dans une discussion s'il a été activé avant.", + "reopenChat": "Rouvrir la discussion", + "noOtherDevicesFound": "Aucun autre appareil trouvé", + "noBackupWarning": "Attention ! Sans l'activation de la sauvegarde de la discussion, vous perdrez l'accès à vos messages chiffrés. Il est fortement recommandé d'activer la sauvegarde de la discussion avant de se déconnecter.", + "fileHasBeenSavedAt": "Le fichier a été enregistré dans {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "fileIsTooBigForServer": "Impossible d'envoyer ! Le serveur accepte uniquement les pièces jointes jusqu'à {max}.", + "jumpToLastReadMessage": "Aller au dernier message lu", + "readUpToHere": "Lisez jusqu’ici", + "chatPermissions": "Permissions du salon", + "importFromZipFile": "Importer depuis un fichier .zip", + "importEmojis": "Importer des Émoticônes", + "notAnImage": "Pas un fichier image.", + "chatDescriptionHasBeenChanged": "La description du salon a changé", + "createGroup": "Créer un groupe", + "importNow": "Importer maintenant", + "tryAgain": "Nouvelle tentative", + "blockedUsers": "Utilisateurs/trices bloqués", + "redactMessageDescription": "Le message sera supprimé pour tous les participants de cette conversation. Il n'est pas possible de revenir en arrière.", + "redactedBy": "Supprimé par {username}", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "optionalRedactReason": "(Facultatif) Raison de la suppression de ce message...", + "sendTypingNotifications": "Envoyer des notifications de frappe", + "replace": "Remplacer", + "emoteKeyboardNoRecents": "Les émoticônes récemment utilisées apparaîtront ici...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "nothingFound": "Rien n'a été trouvé...", + "chatDescription": "Description de la discussion", + "invalidServerName": "Nom de serveur invalide", + "shareInviteLink": "Partager un lien d'invitation", + "openLinkInBrowser": "Ouvrir le lien dans le navigateur", + "setColorTheme": "Définir la couleur du thème :", + "databaseMigrationBody": "Veuillez patienter. Cela peut prendre un moment.", + "searchForUsers": "Rechercher des @utilisateurs/trices...", + "passwordsDoNotMatch": "Les mots de passe ne correspondent pas", + "passwordIsWrong": "Votre mot de passe saisi est erroné", + "joinSpace": "Rejoindre l'espace", + "publicSpaces": "Espaces publics", + "addChatOrSubSpace": "Ajouter une discussion ou un sous-espace", + "thisDevice": "Cet appareil :", + "sendReadReceipts": "Envoyer des accusés de réception", + "sendTypingNotificationsDescription": "Les autres participants à une discussion peuvent voir que vous êtes en train de taper un nouveau message.", + "verifyOtherDevice": "🔐 Vérifier l'autre appareil", + "formattedMessagesDescription": "Affichez le contenu formaté des messages comme du texte en gras à l'aide de markdown.", + "incomingMessages": "Messages entrants", + "acceptedKeyVerification": "{sender} a accepté la vérification de clé", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "inviteGroupChat": "📨 Inviter à une discussion de groupe", + "jump": "Sauter", + "passwordRecoverySettings": "Paramètres de récupération de mot de passe", + "hasKnocked": "🚪 {user} a frappé", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "canceledKeyVerification": "{sender} a annulé la vérification de clé", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "unreadChatsInApp": "{appname} : {unread} discussions non lus", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "requestedKeyVerification": "{sender} a demandé une vérification de clé", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "{sender} a lancé la vérification de clé", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "discover": "Découvrir", + "usersMustKnock": "Les utilisateurs/trices doivent frapper", + "noOneCanJoin": "Personne ne peut rejoindre", + "knock": "Frapper à la porte", + "appLockDescription": "Verrouiller l'application avec un code PIN lorsqu'elle n'est pas utilisée", + "globalChatId": "Identifiant global de la discussion", + "accessAndVisibility": "Accès et visibilité", + "accessAndVisibilityDescription": "Qui est autorisé à rejoindre cette discussion et comment la discussion peut être découverte.", + "calls": "Appels", + "customEmojisAndStickers": "Émoticônes et autocollants personnalisés", + "hideRedactedMessages": "Cacher les messages supprimés", + "pleaseEnterYourCurrentPassword": "Veuillez saisir votre mot de passe actuel", + "swipeRightToLeftToReply": "Glisser de droite à gauche pour répondre", + "hideRedactedMessagesBody": "Si quelqu'un supprime un message, celui-ci ne sera plus visible dans la discussion.", + "customEmojisAndStickersBody": "Ajoutez ou partagez des émoticônes ou autocollants personnalisés qui peuvent être utilisés dans n'importe quelle discussion.", + "blockListDescription": "Vous pouvez bloquer des utilisateurs/trices qui vous dérangent. Vous ne pourrez plus recevoir aucun message ou invitation à un salon d'utilisateurs/trices figurant sur votre liste de blocage personnelle.", + "blockUsername": "Ignorer le nom d'utilisateur/trice", + "hideInvalidOrUnknownMessageFormats": "Masquer les formats de message invalides ou inconnus", + "messagesStyle": "Messages :", + "redactedByBecause": "Supprimé par {username} car : \"{reason}\"", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "setChatDescription": "Définir la description de la discussion", + "gallery": "Galerie", + "files": "Fichiers", + "sessionLostBody": "Votre session est perdue. Veuillez signaler cette erreur aux développeurs à {url}. Le message d'erreur est le suivant : {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "searchIn": "Rechercher dans la discussion \"{chat}\"...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "sendReadReceiptsDescription": "Les autres participants à une discussion peuvent voir si vous avez lu un message.", + "formattedMessages": "Messages formatés", + "verifyOtherUser": "🔐 Vérifier l'autre utilisateur/trice", + "searchMore": "Rechercher davantage...", + "verifyOtherUserDescription": "Si vous vérifiez un autre utilisateur/trice, vous pouvez être sûr de savoir à qui vous écrivez réellement. 💪\n\nLorsque vous lancez une vérification, vous et l'autre utilisateur/trice verrez une fenêtre contextuelle dans l'application. Vous y verrez alors une série d'émoticônes ou de chiffres que vous devrez comparer.\n\nLa meilleure façon de procéder est de se rencontrer ou de lancer un appel vidéo. 👭", + "verifyOtherDeviceDescription": "Lorsque vous vérifiez un autre appareil, ces appareils peuvent échanger des clés, ce qui augmente votre sécurité globale. 💪 Lorsque vous lancez une vérification, une fenêtre contextuelle s'affiche dans l'application sur les deux appareils. Vous y verrez alors une série d'émoticônes ou de chiffres que vous devrez comparer. Il est préférable d'avoir les deux appareils à portée de main avant de lancer la vérification. 🤳", + "completedKeyVerification": "{sender} a terminé la vérification de clé", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "{sender} est prêt pour la vérification de clé", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "stickers": "Autocollants", + "noDatabaseEncryption": "Le chiffrement de la base de données n'est pas supporté sur cette plateforme", + "commandHint_ignore": "Ignorer l'identifiant Matrix indiqué", + "commandHint_unignore": "Ne plus ignorer l'identifiant Matrix indiqué", + "thereAreCountUsersBlocked": "Actuellement, il y a {count} utilisateurs/trices bloqués.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "groupCanBeFoundViaSearch": "Le groupe peut être trouvé via la recherche", + "groupName": "Nom du groupe", + "invalidInput": "Entrée invalide !", + "block": "Bloquer", + "removeDevicesDescription": "Vous serez déconnecté de cet appareil et ne pourrez plus recevoir de messages.", + "createNewAddress": "Créer une nouvelle adresse", + "publicChatAddresses": "Addresses de discussion publiques", + "space": "Espace", + "noMoreChatsFound": "Aucune autre discussion trouvée...", + "unread": "Non lu", + "commandHint_sendraw": "Envoyer du JSON brut", + "databaseMigrationTitle": "La base de données est optimisée", + "leaveEmptyToClearStatus": "Laisser vide pour effacer votre statut.", + "select": "Sélectionner", + "reportErrorDescription": "😭 Oh non. Quelque chose s'est mal passé. Si vous le souhaitez, vous pouvez signaler ce bogue aux développeurs.", + "report": "signaler", + "wrongPinEntered": "Mauvais code PIN saisi ! Veuillez réessayer dans {seconds} secondes...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "pushNotificationsNotAvailable": "Notifications indisponibles", + "yourGlobalUserIdIs": "Votre identifiant utilisateur/trice global est : ", + "chatCanBeDiscoveredViaSearchOnServer": "La discussion peut être découverte via la recherche sur {server}", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "knocking": "Frapper", + "banUserDescription": "L'utilisateur/trice sera banni de la discussion et ne pourra plus y accéder jusqu'à ce qu'il/elle soit débanni.", + "unbanUserDescription": "L'utilisateur/trice pourra entrer à nouveau dans la discussion si il/elle le souhaite.", + "kickUserDescription": "L'utilisateur/trice est expulsé de la discussion mais n'est pas banni. Dans les discussions publiques, l'utilisateur/trice peut revenir à tout moment.", + "makeAdminDescription": "Une fois que vous aurez nommé cet utilisateur/trice administrateur, vous ne pourrez peut-être plus annuler cette opération, car il disposera alors des mêmes autorisations que vous.", + "newPassword": "Nouveau mot de passe", + "pleaseChooseAStrongPassword": "Veuillez choisir un mot de passe fort", + "initAppError": "Une erreur est survenue pendant l'initialisation de l'application", + "markAsUnread": "Marquer comme non lu", + "wrongRecoveryKey": "Désolé... il ne semble pas s'agir de la bonne clé de récupération.", + "searchChatsRooms": "Rechercher des #discussions, @utilisateurs/trices...", + "createGroupAndInviteUsers": "Créer un groupe et inviter des utilisateurs/trices", + "goToSpace": "Aller dans l'espace : {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "exportEmotePack": "Exporter le pack d'émoticônes au format .zip", + "noChatDescriptionYet": "Aucune description de discussion n'a encore été créée.", + "invite": "Inviter", + "pleaseEnterANumber": "Veuillez saisir un nombre supérieur à 0", + "roomUpgradeDescription": "La discussion sera alors recréé avec la nouvelle version de salon. Tous les participants seront informés qu'ils doivent passer à la nouvelle discussion. Pour en savoir plus sur les versions des salons, consultez le site https://spec.matrix.org/latest/rooms/", + "learnMore": "En savoir plus", + "restoreSessionBody": "L'application tente maintenant de restaurer votre session depuis la sauvegarde. Veuillez signaler cette erreur aux développeurs à {url}. Le message d'erreur est le suivant : {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "archiveRoomDescription": "La discussion sera déplacée dans les archives. Les autres utilisateurs/trices pourront voir que vous avez quitté la discussion.", + "noUsersFoundWithQuery": "Malheureusement, aucun utilisateur/trice n'a pu être trouvé avec \"{query}\". Veuillez vérifier si vous n'avez pas fait de faute de frappe.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "noChatsFoundHere": "Aucune discussion trouvée. Utilisez le bouton ci-dessous pour commencer une nouvelle discussion. ⤵️", + "aboutHomeserver": "À propos de {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "changeTheDescriptionOfTheGroup": "Modifier la description de la discussion", + "userLevel": "{level} — Membre", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "chatPermissionsDescription": "Définir quel niveau de droit est nécessaires pour certaines actions dans cette discussion. Les niveaux de droits 0, 50 et 100 représentent généralement les membres, les modérateurs/trices et les administrateurs/trices, mais toute gradation est possible.", + "changeGeneralChatSettings": "Modifier les paramètres généraux de la discussion", + "moderatorLevel": "{level} — Modérateur/trice", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "sendCanceled": "Envoi annulé", + "adminLevel": "{level} — Administrateur/trice", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "inviteOtherUsers": "Inviter d'autres membres dans cette discussion", + "changeTheChatPermissions": "Modifier les permissions de cette discussion", + "changeTheVisibilityOfChatHistory": "Modifier la visibilité de l'historique de la discussion", + "changeTheCanonicalRoomAlias": "Modifier l'adresse publique principale de la discussion", + "changelog": "Journal des modifications", + "synchronizingPleaseWaitCounter": " Synchronisation… ({percentage} %)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "updateInstalled": "🎉 La mise à niveau {version} est installée !", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "loginWithMatrixId": "Connexion avec l'identifiant Matrix", + "checkList": "Check-list", + "countInvited": "{count} invité(e/s)", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "sendImages": "Envoyer {count} image(s)", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "calculatingFileSize": "Calcul en cours...", + "oneOfYourDevicesIsNotVerified": "Un de vos appareils n'est pas vérifié", + "customReaction": "Réaction personalisée", + "declineInvitation": "Refuser l'invitation", + "invalidUrl": "Adresse incorrecte", + "addAnswerOption": "Ajouter une réponse", + "addLink": "Ajouter un lien", + "allowMultipleAnswers": "Autoriser plusieurs réponses", + "serverInformation": "Information du serveur :", + "answersVisible": "Réponses visibles", + "notificationRuleInviteForMeDescription": "Notifie l'utilisateur/trice lorsqu'il est invité dans un salon.", + "notificationRuleMemberEventDescription": "Retire les notifications des évènements des membres.", + "doesNotSeemToBeAValidHomeserver": "Aucun serveur d'acceuil compatible ne semble exister. URL incorrecte ?", + "notificationRuleMaster": "Désactiver toutes les notifications", + "shareKeysWithDescription": "Quels sont les appareils auxquels vous faites confiance afin qu'ils puissent lire les message dans les conversations chiffrées ?", + "logs": "Journaux", + "compress": "Compresser", + "signIn": "Se connecter", + "notificationRuleEncryptedRoomOneToOneDescription": "Notifie l'utilisateur/trice à propos des messages dans les salons chiffrés en duo.", + "pollQuestion": "Question du sondage", + "enterNewChat": "Entrer un nouveau message", + "reset": "Réinitialiser", + "otherNotificationSettings": "Notifications diverses", + "thread": "Fil de discussion", + "notificationRuleRoomOneToOneDescription": "Notifie l'utilisateur/trice à propos des messages dans les salons en duo.", + "stickerPackName": "Nom du groupe d'autocollant", + "notificationRuleIsRoomMentionDescription": "Notifie l'utilisateur/trice lorsqu'il y a une mention de salon.", + "deletePushRuleCanNotBeUndone": "Si vous supprimez ce paramètre de notification, il n'y a pas d'annulation possible.", + "youHaveKnocked": "Vous avez toqué", + "verifiedDevicesOnly": "Appareils vérifiés uniquement", + "continueText": "Continuer", + "notificationRuleSuppressNoticesDescription": "Retire les notifications depuis les clients automatisé comme les robots.", + "createNewTag": "Créer une nouvelle étiquette", + "optionalMessage": "(Facultatif) message...", + "allDevices": "Tous les appareils", + "notificationRuleRoomServerAcl": "ACL des salons du serveur", + "notificationRuleIsUserMention": "Mention Utilisateur/trice", + "countReplies": "{count, plural, =1{Une réponse} other{{count} réponses}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "versionWithNumber": "Version : {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "useAsEmoji": "Utiliser comme émoticône", + "website": "Site web", + "join": "Rejoindre", + "shareKeysWith": "Partager les clés avec...", + "takeAPhoto": "Prendre une photo", + "countChats": "{chats} discussions", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "notificationRuleIsUserMentionDescription": "Notifie l'utilisateur/trice lorsqu'il est mentionné directement dans un message.", + "notificationRuleServerAcl": "Retire les Évènements ACL du Serveur", + "advancedConfigurations": "Configurations avancées", + "signUpGreeting": "FluffyChat est décentralisé ! Selectionnez un hôte sur lequel vous voulez créer un compte et c'est parti !", + "notificationRuleCall": "Appeler", + "baseUrl": "URL racine", + "pause": "Pause", + "answersWillBeVisibleWhenPollHasEnded": "Les réponses seront affichées quand le sondage aura pris fin", + "manageAccount": "Paramètrer le compte", + "setWallpaper": "Changer le fond d'écran", + "notificationRuleContainsDisplayNameDescription": "Notifie l'utilisateur/trice lorsqu'un message contient son nom d'affichage.", + "createNewChat": "Créer une nouvelle discussion", + "backToMainChat": "Retourner à la discussion principale", + "makeModerator": "Promouvoir modérateur/trice", + "italicText": "Italique", + "skipChatBackup": "Passer la sauvegarde de la discussion", + "notificationRuleEncryptedDescription": "Notifies l'utilisateur/trice à propos des messages dans les salons chiffrés.", + "answerOption": "Réponse possible", + "notificationRuleRoomOneToOne": "Salon en Duo", + "sentVoiceMessage": "🎙️ {duration} - Message vocal de {sender}", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "appWantsToUseForLoginDescription": "Vous autorisez l'application et le site web à partager vos informations.", + "notificationRuleEncryptedRoomOneToOne": "Salon Chiffré en Duo", + "name": "Nom", + "tagName": "Nom de l'étiquette", + "moreEvents": "Plus d'évènements", + "resume": "Reprendre", + "commandHint_logoutall": "Se déconnecter de tous les appareils actifs", + "notificationRuleIsRoomMention": "Mention de Salon", + "federationBaseUrl": "Racine de l'URL de Fédération", + "userSpecificNotificationSettings": "Notifications relatives à l'utilisateur/trice", + "notSupportedOnThisDevice": "Non-supporté sur cet appareil", + "setPowerLevelDescription": "Le niveau de droit défini ce qu'un utilisateur est capable de faire dans ce salon et se place généralement entre 0 et 100.", + "notificationRuleRoomnotif": "Notification de Salon", + "noMessagesYet": "Aucun message actuellement", + "stickerPackNameAlreadyExists": "Ce nom est déjà utilisé par un groupe d'autocollant", + "matrixId": "ID Matrix", + "identityServer": "Serveur d'identité :", + "version": "Version", + "notificationRuleMessageDescription": "Notifie l'utilisateur/trice à propos des messages en général.", + "createNewAccount": "Créer un nouveau compte", + "setPowerLevel": "Configurer le niveau de puissance", + "notificationRuleServerAclDescription": "Retire les notifications lors des changement des ACL du serveur.", + "pollHasBeenEnded": "Le sondage à pris fin", + "replyInThread": "Répondre dans un fil de discussion", + "mute": "Muet", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "notificationRuleSuppressEdits": "Supprimer les Modifications", + "pleaseWaitUntilInvited": "Veuillez attendre que quelqu'un du salon vous invite.", + "sendRoomNotifications": "Envoyer une notification de salon", + "useAsSticker": "Utiliser comme un autocollant", + "noMoreResultsFound": "Pas de résultats supplémentaires trouvés", + "longPressToRecordVoiceMessage": "Appuyer longtemps pour envoyer un message vocal.", + "createSticker": "Créer un autocollant ou un émoticône", + "notificationRuleMessage": "Message", + "notificationRuleTombstone": "Pierre tombale", + "removeModeratorRights": "Révoquer les droits modérateurs/trices", + "supportPage": "Page de support", + "noContactInformationProvided": "Le serveur ne possède pas d'informations de contact valides", + "contentNotificationSettings": "Gestion des notifications de contenu", + "addTag": "Ajouter une étiquette", + "previous": "Précédent", + "startPoll": "Démarrer un sondage", + "notificationRuleRoomServerAclDescription": "Désactive les notifications pour les listes de contrôle d'accès (ACL) des salon du serveur.", + "notificationRuleInviteForMe": "Invitation pour Moi", + "spaceMemberOfCanKnock": "Seule les membres de l'espace de {spaces} peuvent toquer", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "removeAdminRights": "Révoquer les droits administrateurs/trices", + "removeFromSpaceDescription": "La discussion sera retirée de l'espace mais apparaitra toujours dans votre liste de discussion.", + "newChatRequest": "📩 Nouvelle demande de discussion", + "boldText": "Gras", + "owner": "Propriétaire", + "powerLevel": "Niveau de droits", + "strikeThrough": "Barré", + "playSoundOnNotification": "Jouer un son quand notifié", + "changedTheChatDescription": "{username} a modifié la description de la discussion", + "skipChatBackupWarning": "Êtes vous certain ? Sans la sauvegarde des discussions vous pourriez perdre l'accès à vos messages si vous changez d'appareil.", + "makeAdmin": "Promouvoir administrateur/trice", + "more": "Plus", + "searchOrEnterHomeserverAddress": "Recherchez ou entrez l'adresse de votre serveur d'acceuil", + "notificationRuleSuppressEditsDescription": "Retirer les notifications pour les éditions de messages.", + "notificationRuleJitsi": "Jitsi", + "unsetLowPriority": "Ne plus définir comme faible priorité", + "setLowPriority": "Définir comme faible priorité", + "notificationRuleContainsUserName": "Contient le nom d'utilisateur/trice", + "notificationRuleSuppressNotices": "Supprime les Messages Automatiques", + "chatSearchedUntil": "Recherché dans la discussion jusqu'au {time}", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "notificationRuleMasterDescription": "Force la désactivation de toutes les notifications.", + "open": "Ouvrir", + "notificationRuleTombstoneDescription": "Notifie l'utilisateur/trice a propos de la désactivation des message dans un salon.", + "notificationRuleContainsUserNameDescription": "Notifie l'utilisateur quand un message contient son nom d'utilisateur/trice.", + "notificationRuleContainsDisplayName": "Contient le nom d'affichage", + "notificationRuleReaction": "Réaction", + "endPoll": "Mettre fin au sondage", + "theProcessWasCanceled": "Le processus a été annulé.", + "unableToJoinChat": "Discussion impossible à rejoindre. L'autre participant.e à peut-être déjà fermé la discussion.", + "unknownPushRule": "Règles de notification push inconnue '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "crossVerifiedDevices": "Appareils vérifiés de façon croisée", + "saveChanges": "Enregistrer les modifications", + "commandHint_logout": "Se déconnecter de l'appareil", + "newStickerPack": "Nouveau groupe d'autocollants", + "signInGreeting": "Vous avez déjà un compte sur Matrix ? Bon retour ! Sélectionnez votre serveur d'acceuil et connectez vous.", + "advancedConfigs": "Configs avancées", + "noticeChatBackupDeviceVerification": "Note : Lorsque vous connectez vos appareils à la sauvegarde de discussion, ils sont automatiquement vérifiés.", + "notificationRuleMemberEvent": "Évenement pour les Membres", + "crossVerifiedDevicesIfEnabled": "Appareils vérifiés de façon croisée si activée", + "contactServerSecurity": "Contacter l'équipe de sécurité du serveur", + "waitingForServer": "En attente du serveur...", + "commandHint_roomupgrade": "Mettez à jour ce salon vers la version donnée", + "roomNotificationSettings": "Paramètre de notification des salons", + "otherPartyNotLoggedIn": "L'autre participant.e n'est pas connecté actuellement et ne peux donc pas recevoir de messages !", + "notificationRuleReactionDescription": "Retire les notifications des réactions.", + "notificationRuleCallDescription": "Notifie l'utilisateur/trice lorsqu'on l'appelle.", + "contactServerAdmin": "Contacter l'administrateur/trice du serveur", + "appWantsToUseForLogin": "Utiliser '{server}' pour se connecter", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "recordAVideo": "Enregistrer une vidéo", + "removeTag": "Retirer l'étiquette", + "countVotes": "{count, plural, =1{Un vote} other{{count} votes}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "notificationRuleJitsiDescription": "Notifie l'utilisateur à propos des évènements de l'intégration Jitsi.", + "approve": "Approuver", + "notificationRuleRoomnotifDescription": "Notifie l'utilisateur/trice lorsqu'un message contient '@room'.", + "generalNotificationSettings": "Réglages généraux des notifications", + "supportFluffyChat": "Soutenir FluffyChat", + "notificationRuleEncrypted": "Chiffré", + "pleaseFillOut": "Veuillez remplir", + "changedTheChatName": "{username} a changé le nom de la discussion", + "spaceMemberOf": "Membre de l'espace de {spaces}", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "discardEdits": "Vous avez des modifications non-sauvegardés. Voulez-vous les supprimer ?", + "@discardEdits": { + "type": "String", + "placeholders": {} + }, + "showMore": "Voir plus", + "showLess": "Voir moins", + "hideRoomsInSpaces": "Cacher les salons qui sont dans un espace", + "possibleByYou": "Cette mise à jour a été possible uniquement grâce à votre support. FluffyChat restera gratuit, open-source et entièrement communautaire.", + "showThumbnailsInTimeline": "Afficher les apperçus des images et vidéos", + "appSubtitle": "Communication [matrix] Sécurisée", + "appDescription": "Communiquez de façon chiffrée sur le réseau décentralisé [matrix] de façon aisée et accessible pour tous.", + "interactiveVerification": "Vérification intéractive", + "interactiveVerificationDescription": "Si vous êtes l'un à coté de l'autre ou que vous communiquez par un canal sécurisé, vous pouvez vérifier tous vos appareils en une seule fois en comparant un numéro de sécurité ou des émoticônes.", + "countUnverifiedDevices": "{count} appareils non-vérifiés dans la discussion.", + "@countUnverifiedDevices": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "encryptedMessage": "Message chiffré", + "unencryptedMessage": "Message non-chiffré", + "publicKey": "Clé publique : {key}", + "@publicKey": { + "type": "String", + "placeholders": { + "key": { + "type": "String" + } + } + }, + "deviceIdentityKey": "Clé d'identification de l'appareil", + "restoreBootstrapEmptyDevicesDescription": "Veuillez entrer votre mot de passe ou votre clé de récupération pour vérifier cet appareil et déchiffrer la sauvegarde de vos messages.", + "@restoreBootstrapEmptyDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "restoreBootstrapDevicesDescription": "Veuillez choisir l'un de vos autre appareils, pour vérifier cette session :", + "@restoreBootstrapDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "resetAccount": "Ré-initialiser le compte", + "@resetAccount": { + "type": "String", + "placeholders": {} + }, + "restoreCryptoIdentity": "Restaurer votre Profile Crypto", + "@restoreCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "resetCryptoIdentity": "Réinitialiser votre Profile Crypto", + "@resetCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "setUpCryptoIdentity": "Configurer votre Profile Crypto", + "@setUpCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "waitingForKeys": "En attente des clés... Veuillez garder l'autre appareil actif.", + "@waitingForKeys": { + "type": "String", + "placeholders": {} + }, + "noKeysTransmitted": "Aucune clé transmise. Veuillez réessayer.", + "@noKeysTransmitted": { + "type": "String", + "placeholders": {} + }, + "unlock": "Déverrouiller", + "@unlock": { + "type": "String", + "placeholders": {} + }, + "openFile": "Ouvrir un fichier", + "@openFile": { + "type": "String", + "placeholders": {} + }, + "resetAccountWarning": "Lorsque vous réinitialiserez votre compte, vous perdrez l'accès à vos anciens messages pour toujours. Tous vos appareils devront être vérifiés de nouveau. Veuillez réaliser cette action seulement lorsque vous n'avez pas d'autre appareils pour vérifier votre session et que vous avez perdu votre clé de récupération et votre phrase de passe !", + "@resetAccountWarning": { + "type": "String", + "placeholders": {} + }, + "newPassphraseDescription": "FluffyChat utilise le chiffrement de bout en bout. Pour ne pas perdre vos messages, veuillez choisir une phrase de passe forte pour sécuriser votre profile crypto et votre sauvegarde chiffrée des messages.", + "@newPassphraseDescription": { + "type": "String", + "placeholders": {} + }, + "newPassphrase": "Nouvelle phrase de passe", + "@newPassphrase": { + "type": "String", + "placeholders": {} + }, + "repeatPassphrase": "Répeter la phrase de passe", + "@repeatPassphrase": { + "type": "String", + "placeholders": {} + }, + "passphrasesMatch": "Les phrases de passe correspondent", + "@passphrasesMatch": { + "type": "String", + "placeholders": {} + }, + "passphraseLengthRequirement": "Au moins 12 caractères.", + "@passphraseLengthRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseUpperAndLowerCaseRequirement": "Contient des majuscules et des minuscules.", + "@passphraseUpperAndLowerCaseRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseSpecialCharactersRequirement": "Contient des caractères spéciaux.", + "@passphraseSpecialCharactersRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseNumberRequirement": "Contient un chiffre.", + "@passphraseNumberRequirement": { + "type": "String", + "placeholders": {} + }, + "storeRecoveryKeyDescription": "Veuillez noter votre clé de récupération pour pouvoir restaurer vos message chiffrés et votre profile crypto dans le futur.", + "@storeRecoveryKeyDescription": { + "type": "String", + "placeholders": {} + }, + "saveAsFile": "Sauvegarder le fichier", + "@saveAsFile": { + "type": "String", + "placeholders": {} + }, + "youAreReadyToStart": "Vous êtes prêt à commencer !", + "noUserKeyFound": "Pas de clé utilisateur/trice trouvée", + "@noUserKeyFound": { + "type": "String", + "placeholders": {} + }, + "knownSince": "Connu depuis : {date}", + "@knownSince": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + } + } + }, + "unsignedDevice": "Appareil non-signé", + "@unsignedDevice": { + "type": "String", + "placeholders": {} + }, + "signedDevice": "Appareil signé", + "@signedDevice": { + "type": "String", + "placeholders": {} + }, + "noCurve25519KeyFound": "Aucune clé curve25519 trouvée", + "@noCurve25519KeyFound": { + "type": "String", + "placeholders": {} + }, + "messageNotDecryptable": "Message non-déchiffrable", + "messageCanOnlyBeReadByUser": "Votre message est chiffré de bout en bout et ne peux être lu que par cet utilisateur :", + "messageCanOnlyBeReadByUsers": "Votre message est chiffré de bout en bout et ne peux être lu que par ces utilisateurs :", + "today": "Aujourd'hui", + "sending": "Envoi", + "generatingThumbnail": "Génération d'une miniature", + "encrypting": "Chiffrement", + "uploading": "Téléversement", + "edited": "(édité)", + "couldNotBeSent": "N'a pas pu être envoyé", + "yesterday": "Hier", + "displayNavigationRail": "Afficher la barre de navigation sur mobile", + "resetRecoveryKey": "Réinitialiser la clé de récupération", + "pleaseEnter6Digits": "Veuillez entrer le code à 6 chiffres pour activer le verouillage de l'application.", + "disableAppLock": "Désactiver le verrouillage de l'application", + "disableAppLockAreYouSure": "Êtes vous sûr de vouloir désactiver le verrouillage de l'application ?", + "enableBiometrics": "Activer l'authentification biométrique", + "disableBiometrics": "Désactiver l'authentification biométrique", + "biometricsDescription": "Avec l'authentification biométrique, vous pouvez déverrouillee l'application avec votre visage ou votre empreinte digitale. Les possibilités dépendent de votre appareil.", + "useAppLock": "Utiliser le verrouillage de l'application", + "unlockWithBiometrics": "Déverrouiller avec l'authentification biométrique", + "resetPin": "Réinitialiser le code pin", + "forwardCountMessages": "Transférer {count, plural, =1{le message} other{{count}les messages}} ?", + "@forwardCountMessages": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "clientWellKnownInformation": "Informations Well-Known du client :", + "attribution": "Attribution", + "support": "Soutenir", + "blur": "Flou :", + "opacity": "Opacité :", + "editImage": "Éditer l'image", + "@editImage": { + "type": "String", + "placeholders": {} + }, + "rotateLeft": "Tourner vers la gauche", + "@rotateLeft": { + "type": "String", + "placeholders": {} + }, + "rotateRight": "Tourner vers la droite", + "@rotateRight": { + "type": "String", + "placeholders": {} + }, + "mirror": "Mirroir", + "@mirror": { + "type": "String", + "placeholders": {} + }, + "save": "Sauvegarder", + "@save": { + "type": "String", + "placeholders": {} + }, + "draw": "Dessiner", + "@draw": { + "type": "String", + "placeholders": {} + }, + "undo": "Défaire", + "@undo": { + "type": "String", + "placeholders": {} + }, + "clear": "Effacer", + "@clear": { + "type": "String", + "placeholders": {} + }, + "eraser": "Gomme", + "@eraser": { + "type": "String", + "placeholders": {} + }, + "crop": "Rogner", + "@crop": { + "type": "String", + "placeholders": {} + }, + "loadingMessages": "Chargement des messages...", + "buildDoesNotSupportFirebase": "Cette version ne supporte pas firebase cloud messaging.", + "unableToRegisterDeviceForFirebase": "Impossible d'enregistrer l'appareil sur firebase cloud messaging.", + "unifiedPushDistributors": "Distributeurs Unified Push :", + "doubleTapToReact": "Double-tappez pour réagir", + "doubleTapToReactDescription": "Double-tappez sur un message pour réagir au lieu de sélectionner du texte", + "doubleTapReaction": "Réaction du double appuis", + "sendingFilesDoNotExit": "Envoi de {count} fichiers... Veuillez de pas quitter !", + "@sendingFilesDoNotExit": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "compressingVideo": "Compression de la vidéo...", + "shareCrashReports": "Partager le rapport de crash", + "shareCrashReportsDescription": "Partage automatiquement les rapports de crash avec les developers ?", + "activeCall": "Appel actif", + "countActiveCallMembers": "{count} membres actifs dans l'appel", + "@countActiveCallMembers": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "enterCall": "Entrer dans l'appel", + "videoCallsBetaWarning": "Les appels vidéos sont une fonctionnalité en beta. Il peut y avoir des bugs ou des comportements inattendus. Nous serons heureux d'entendre vos retours.", + "noDevicesFound": "Aucun appareil trouvé", + "incomingCall": "Appel entrant", + "videoCall": "Appel vidéo", + "voiceCall": "Appel vocal", + "missedCall": "Appel manqué", + "callBack": "Rappeler", + "hangUp": "Raccrocher", + "waitingForParticipant": "En attente de participants...", + "decline": "Décliner", + "startCall": "Démarrer l'appel", + "selectCamera": "Sélectionner une caméra", + "selectMicrophone": "Sélectionner un micro", + "selectSpeaker": "Sélectionner une sortie audio", + "toggleMicrophone": "Activer le microphone", + "toggleCamera": "Activer la caméra", + "startScreensharing": "Commencer le partage d'écran", + "stopScreensharing": "Arrêter le partage d'écran", + "raiseHand": "Lever la main", + "stopRaiseHand": "Baisser la main", + "preferSpeaker": "Sortie audio favorite", + "unexpectedErrorOccurded": "Malheuresement, une erreur est survenue : {msg}", + "@unexpectedErrorOccurded": { + "placeholders": { + "msg": { + "type": "String" + } + } + }, + "accountsAndSettings": "Comptes et paramètres", + "@accountsAndSettings": { + "type": "String", + "placeholders": {} + }, + "incomingCallFrom": "Appel entrant de {user}", + "@incomingCallFrom": { + "placeholders": { + "user": { + "type": "String" + } + } + } +} diff --git a/lib/l10n/intl_ga.arb b/lib/l10n/intl_ga.arb new file mode 100644 index 0000000..7032e6f --- /dev/null +++ b/lib/l10n/intl_ga.arb @@ -0,0 +1,2834 @@ +{ + "you": "Tú", + "@you": { + "type": "String", + "placeholders": {} + }, + "yes": "Tá", + "@yes": { + "type": "String", + "placeholders": {} + }, + "warning": "Rabhadh!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "verified": "Deimhnithe", + "@verified": { + "type": "String", + "placeholders": {} + }, + "unpin": "Bain biorán", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Córas", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "submit": "Cuir isteach", + "@submit": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Conas atá tú inniu?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "status": "Staid", + "@status": { + "type": "String", + "placeholders": {} + }, + "skip": "Léim", + "@skip": { + "type": "String", + "placeholders": {} + }, + "share": "Roinn", + "@share": { + "type": "String", + "placeholders": {} + }, + "settings": "Socruithe", + "@settings": { + "type": "String", + "placeholders": {} + }, + "send": "Seol", + "@send": { + "type": "String", + "placeholders": {} + }, + "security": "Slándáil", + "@security": { + "type": "String", + "placeholders": {} + }, + "search": "Cuardaigh", + "@search": { + "type": "String", + "placeholders": {} + }, + "reply": "Freagair", + "@reply": { + "type": "String", + "placeholders": {} + }, + "remove": "Bain", + "@remove": { + "type": "String", + "placeholders": {} + }, + "reject": "Diúltaigh", + "@reject": { + "type": "String", + "placeholders": {} + }, + "reason": "Fáth", + "@reason": { + "type": "String", + "placeholders": {} + }, + "privacy": "Príobháideacht", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "pin": "Biorán", + "@pin": { + "type": "String", + "placeholders": {} + }, + "password": "Pasfhocal", + "@password": { + "type": "String", + "placeholders": {} + }, + "participant": "Rannpháirtí", + "@participant": { + "type": "String", + "placeholders": {} + }, + "directChats": "Comhráite Díreacha", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Scrios an teachtaireacht", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Scrios an cuntas", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "createNewSpace": "Spás nua", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "countParticipants": "{count} rannpháirtithe", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "or": "Nó", + "@or": { + "type": "String", + "placeholders": {} + }, + "ok": "Ceart go leor", + "@ok": { + "type": "String", + "placeholders": {} + }, + "notifications": "Fógraí", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "no": "Níl", + "@no": { + "type": "String", + "placeholders": {} + }, + "next": "Ar Aghaidh", + "@next": { + "type": "String", + "placeholders": {} + }, + "moderator": "Modhnóir", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "messages": "Teachtaireachtaí", + "@messages": { + "type": "String", + "placeholders": {} + }, + "mention": "Luaigh", + "@mention": { + "type": "String", + "placeholders": {} + }, + "logout": "Logáil amach", + "@logout": { + "type": "String", + "placeholders": {} + }, + "login": "Logáil isteach", + "@login": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Solas", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "leave": "Fág", + "@leave": { + "type": "String", + "placeholders": {} + }, + "invited": "Le cuireadh", + "@invited": { + "type": "String", + "placeholders": {} + }, + "ignore": "Tabhair neamhaird ar", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "help": "Cabhair", + "@help": { + "type": "String", + "placeholders": {} + }, + "groups": "Grúpaí", + "@groups": { + "type": "String", + "placeholders": {} + }, + "group": "Grúpa", + "@group": { + "type": "String", + "placeholders": {} + }, + "forward": "Seol ar aghaidh", + "@forward": { + "type": "String", + "placeholders": {} + }, + "encryption": "Criptiúchán", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Criptithe", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "edit": "Cuir in eagar", + "@edit": { + "type": "String", + "placeholders": {} + }, + "devices": "Gléasanna", + "@devices": { + "type": "String", + "placeholders": {} + }, + "delete": "Scrios", + "@delete": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "configureChat": "Cumraigh comhrá", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "commandInvalid": "Ordú neamhbhailí", + "@commandInvalid": { + "type": "String" + }, + "commandHint_send": "Seol téacs", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_me": "Déan cur síos ort féin", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "clearArchive": "Glan an cartlann", + "chatDetails": "Sonraí comhrá", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Cúltaca comhrá", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "D'athraigh {username} abhatár an chomhrá", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changeDeviceName": "Athraigh ainm an ghléis", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "Ní féidir an URI {uri} a oscailt", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "cancel": "Cealaigh", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "blocked": "Bactha", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "blockDevice": "Bac Gléas", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "Chuir {username} cosc ar {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "banned": "Coiscthe", + "@banned": { + "type": "String", + "placeholders": {} + }, + "banFromChat": "Toirmisc ón gcomhrá", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "sendOnEnter": "Seol ar iontráil", + "archive": "Cartlann", + "@archive": { + "type": "String", + "placeholders": {} + }, + "appLock": "Bac aip", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "anyoneCanJoin": "Is féidir le aon duine dul isteach", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "D'fhreagair {senderName} an glao", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "all": "Gach", + "@all": { + "type": "String", + "placeholders": {} + }, + "alias": "ailias", + "@alias": { + "type": "String", + "placeholders": {} + }, + "admin": "Riarthóir", + "@admin": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "Cuir go spás", + "addEmail": "Cuir ríomhphoist", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} criptithe deireadh go deireadh gníomhachtaithe", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Cuntas", + "@account": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 Ghlac {username} leis an gcuireadh", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "accept": "Glac", + "@accept": { + "type": "String", + "placeholders": {} + }, + "about": "Faoi", + "@about": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Glac leis an iarratas fíoraithe seo ó {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "areYouSureYouWantToLogout": "An bhfuil tú cinnte gur mhaith leat logáil amach?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "An bhfuil tú cinnte?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "An bhfuil cead ag úsáideoirí aoi páirt a ghlacadh?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 thug {username} cuireadh do {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "guestsCanJoin": "Is féidir le haíonna páirt a ghlacadh", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "guestsAreForbidden": "Tá cosc ar aíonna", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Grúpa le {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "groupIsPublic": "Tá an grúpa poiblí", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Ón gcuireadh", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Gearrchód emote neamhbhailí!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Tá iomaite ann cheana féin!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Cuir in eagar abhatár an tseomra", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Cuir ailiasanna an tseomra in eagar", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Cuir freastalaí blocáilte in eagar", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Leibhéal ceada réamhshocraithe d'úsáideoirí nua", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "unblockDevice": "Díbhlocáil Gléas", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Tugadh cuireadh don theagmháil a thar isteach sa grúpa", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Cuir na huimhreacha i gcomparáid le do thoil", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "compareEmojiMatch": "Cuir na emojis i gcomparáid le do thoil", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "commandMissing": "Ní ordú é {command}.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "commandHint_react": "Seol freagra mar fhreagairt", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_op": "Socraigh leibhéal cumhachta an úsáideora áirithe (réamhshocrú: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_myroomnick": "Socraigh d'ainm taispeána don seomra seo", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_myroomavatar": "Cuir do phictiúr don seomra seo (le mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_kick": "Bain an t-úsáideoir áirithe den seomra seo", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_join": "Téigh isteach sa seomra áirithe", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_ban": "Cuir cosc ar an úsáideoir áirithe ón seomra seo", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_invite": "Cuir cosc ar an úsáideoir áirithe ón seomra seo", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "chooseAStrongPassword": "Roghnaigh pasfhocal láidir", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "Truaillíodh an criptiú", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Athraigh ainm an ghrúpa", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changedTheRoomInvitationLink": "D'athraigh {username} nasc an chuiridh", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "D'athraigh {username} ailiasanna an tseomra", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "D'athraigh {username} a n-abhatár", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "D'athraigh {username} na rialacha ceangail go: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "D'athraigh {username} na rialacha ceangail", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "D'athraigh {username} infheictheacht na staire go: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "D'athraigh {username} infheictheacht na staire", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "D'athraigh {username} a n-ainm taispeána go: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "D'athraigh {username} na ceadanna comhrá", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "autoplayImages": "Seinn greamáin agus straoiseog beoite go huathoibríoch", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "createdTheChat": "💬 chruthaigh {username} an comhrá", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "copyToClipboard": "Cóipeáil ar an ghearrthaisce", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Cóipeáilte ar an ghearrthaisce", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "commandHint_plain": "Seol téacs neamhfhoirmithe", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_leave": "Fág an seomra seo", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_html": "Seol téacs HTML-formáidithe", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "changeYourAvatar": "Athraigh do abhatár", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Athraigh do stíl", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Athraigh an freastalaí baile", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Glórphost", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Tosaigh Fíorú", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "unmuteChat": "Neamhciúnaigh comhrá", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Folaigh imeachtaí anaithnide", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Gléas anaithnid", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Tá siad céanna", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Ainm an spáis", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Cód foinseach", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "shareLocation": "Roinn suíomh", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "setStatus": "Cuir stádas", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Seol físeán", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Seol teachtaireachtaí", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Seol íomhá", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Seol comhad", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendAudio": "Seol fuaim", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Sábháil comhad", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Leagan seomra", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Tuairiscigh teachtaireacht", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "redactMessage": "Bain teachtaireacht amach", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Seomraí Poiblí", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Aisfháil pasfhocail", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Pasfhocal dearmadta", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Oscail ceamara", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "obtainingLocation": "ag Aimsiú an suíomh…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Gan cead", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "newChat": "Comhrá nua", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Ciúnaigh comhrá", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Lódáil níos mó…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "joinRoom": "Téigh isteach sa seomra", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "isTyping": "ag clóscríobh", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Tabhair cuireadh do theagmháil", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Úsáideoirí a dtugann tú neamhaird orthu", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Ó tar isteach", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fontSize": "Méid cló", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Tosaigh criptiú", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Cuir ainm taispeána in eagar", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "Gníomhach faoi láthair", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Comhrá folamh", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Gearrchód straoiseoige", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Íoslódáil comhad", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "changePassword": "Athraigh an pasfhocal", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Dorcha", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "create": "Cruthaigh", + "@create": { + "type": "String", + "placeholders": {} + }, + "copy": "Cóipeáil", + "@copy": { + "type": "String", + "placeholders": {} + }, + "close": "Dún", + "@close": { + "type": "String", + "placeholders": {} + }, + "chats": "Comhráite", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chat": "Comhrá", + "@chat": { + "type": "String", + "placeholders": {} + }, + "scanQrCode": "Scan cód QR", + "inviteText": "Thug {username} cuireadh duit chuig FluffyChat.\n1. Tabhair cuairt ar fluffychat.im agus a shuiteáil an app\n2. Cláraigh nó sínigh isteach\n3. Oscail an nasc cuirí:\n {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "noMatrixServer": "Níl {server1} freastalaí Matrix. Úsáid {server2} ina áit sin?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "noGoogleServicesWarning": "Is cosúil nach bhfuil Firebase Cloud Messaging ar fáil ar do ghléas. Chun fógraí brú a fháil fós, molaimid ntfy a shuiteáil. Le ntfy nó soláthraí Unified Push eile is féidir leat fógraí brú a fháil ar bhealach atá slán ó thaobh sonraí. Is féidir leat ntfy a íoslódáil ón PlayStore nó ó F-Droid.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Ní féidir leat criptiú a ghníomhachtú ach a luaithe nach bhfuil an seomra inrochtana go poiblí a thuilleadh.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Níor aimsíodh aon straoiseoga. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Gan aon nasc leis an bhfreastalaí", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Iarratas fíoraithe nua!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Teachtaireacht nua in FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Logáil isteach chuig {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "locationPermissionDeniedNotice": "Diúltaíodh cead suímh. Deonaigh dóibh le do thoil go mbeidh tú in ann do shuíomh a roinnt.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "Tá seirbhísí suímh díchumasaithe. Cuir ar a gcumas le do thoil a bheith in ann do shuíomh a roinnt.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "loadingPleaseWait": "Ag lódáil… Fan, le do thoil.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Lódáil {count} níos mó rannpháirtithe", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "leftTheChat": "Fágadh an comhrá", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Gníomhach deireanach: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "kickFromChat": "Caith é amach as an comhrá", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 chiceáil {username} {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 chiceáil {username} agus chuir sé cosc ar {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "joinedTheChat": "Tháinig 👋 {username} isteach sa chomhrá", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Úsáideoirí le cuireadh amháin", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Tabhair cuireadh do theagmháil chuig {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "incorrectPassphraseOrKey": "Pasfhrása nó eochair téarnaimh mícheart", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Chliceáil mé ar an nasc", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "Tharraing {username} an cuireadh do {targetName} siar", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "errorObtainingLocation": "Earráid maidir le suíomh a fháil: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Cuir isteach seoladh ríomhphoist", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "Chuir {senderName} deireadh leis an nglao", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "encryptionNotEnabled": "Ní chumasaítear criptiú", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Ní bheidh in ann an criptiú a dhíchumasú níos mó. An bhfuil tú cinnte?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Cumasaigh pacáiste straoiseoige go huilíoch", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Athraíodh an t-ainm taispeána", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "deactivateAccountWarning": "Díghníomhachtaeoidh sé seo do chuntas úsáideora. Ní féidir é seo a chealú! An bhfuil tú cinnte?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Níorbh fhéidir teachtaireacht a dhíchriptiú: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "contentHasBeenReported": "Tuairiscíodh an t-ábhar do lucht riaracháin an fhreastalaí", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "commandHint_unban": "Cuir deireadh an cosc den úsáideoir áirithe ón seomra seo", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "changedTheGuestAccessRulesTo": "D'athraigh {username} na rialacha maidir le rochtain aoi chuig: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "D'athraigh {username} na rialacha rochtana aoi", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "badServerLoginTypesException": "Tá na cineálacha logála isteach seo ar fáil faoin freastalaí baile:\n{serverVersions}\nAch níl ach na ceann seo ar fáil faoin aip seo:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "askSSSSSign": "Chun a bheith in ann an duine eile a shíniú, cuir isteach do phasfhrása stóir sábháilte nó d'eochair téarnaimh.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "D'eochair phoiblí", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Cuireadh cosc ort ón gcomhrá seo", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Níl tú ag glacadh páirte sa chomhrá seo a thuilleadh", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Scríobh teachtaireacht…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Leis na seoltaí seo is féidir leat do phasfhocal a athshlánú.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Cén fáth ar mhaith leat é seo a thuairisciú?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Cé a bhfuil cead aige/aici dul isteach sa ghrúpa seo", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Cé atá in ann an gníomh a dhéanamh", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "D'fhíoraigh tú go rathúil!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "userLeftTheChat": "🚪 D'fhág {username} an comhrá", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userAndUserAreTyping": "Tá {username} agus {username2} ag clóscríobh…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userAndOthersAreTyping": "tá {username} agus {count} daoine eile ag clóscríobh…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "unknownEncryptionAlgorithm": "Algartam criptithe anaithnid", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "Chuir {username} deireadh an cosc {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "tryToSendAgain": "Déan iarracht a sheoladh arís", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "An iomarca iarratas. Bain triail eile as níos déanaí!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Níl siad céanna", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "Roinn {username} a suíomh", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "setAsCanonicalAlias": "Socraigh mar phríomh-ailias", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "sentCallInformations": "Sheol {senderName} faisnéis maidir le glaonna", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 sheol {username} físeán", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 sheol {username} greamán", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ sheol {username} pictiúr", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "replaceRoomWithNewerVersion": "Cuir leagan seomra níos nuaí in ionad an tseomra", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Bain d'abhatár", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Cuir deireadh an cosc ón gcomhrá", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Bain gach gléas eile", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "Dhiúltaigh {username} don chuireadh", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactedAnEvent": "Rinne {username} cinsire imeacht", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "pleaseFollowInstructionsOnWeb": "Lean na treoracha ar an suíomh gréasáin agus tapáil \"ar aghaidh\".", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Cuir isteach d'ainm úsáideora le do thoil", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Cuir isteach do uap le do thoil", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Iontráil do phasfhocal le do thoil", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Cliceáil ar an nasc sa ríomhphost agus ansin lean ar aghaidh.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Roghnaigh paschód le do thoil", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Athraíodh an pasfhocal", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "pasfhrása nó eochair téarnaimh", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "openInMaps": "Oscail i léarscáileanna", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Oscail an aip chun teachtaireachtaí a léamh", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Úps, chuaigh rud éigin mícheart …", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Hoips! Ar an drochuair, tharla earráid nuair a bhí na fógraí brú á mbunú.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Tá Cúltaca Eochair Ar Líne cumasaithe", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "Tá {count} úsáideoirí ag clóscríobh…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "noRoomsFound": "Níor aimsíodh aon seomraí…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "Níor chuir tú bealach leis do phasfhocal a aisghabháil fós.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Sheolamar ríomhphost chugat", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Ag fanacht le comhpháirtí glacadh leis na huimhreacha …", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Ag fanacht le comhpháirtí glacadh leis na straoiseoga…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Ag fanacht le comhpháirtí glacadh leis an iarratas…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Infheicthe do gach duine", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Infheicthe do na rannpháirtithe go léir", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Infheictheacht stair na comhrá", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Ag fíorú cuntas eile", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "userSentUnknownEvent": "Sheol {username} imeacht {type}", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "userIsTyping": "Tá {username} ag clóscríobh…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "unknownEvent": "Imeacht anaithnid '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "synchronizingPleaseWait": "Ag sioncrónú... Fan, le do thoil.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "startedACall": "Thosaigh {senderName} glao", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "spaceIsPublic": "Tá an spás poiblí", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "sentAnAudio": "🎤 sheol {username} fuaim", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAFile": "📁 sheol {username} comhad", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sendAsText": "Seol mar théacs", + "@sendAsText": { + "type": "String" + }, + "sendAMessage": "Seol teachtaireacht", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Uasghrádaíodh an seomra", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "addAccount": "Breisigh cuntas", + "commandHint_create": "Cruthaigh comhrá grúpa folamh\nÚsáid --no-encryption chun criptiúchán a dhíchumasú", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "link": "Nasc", + "commandHint_clearcache": "Glan an taisce", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "repeatPassword": "Scríobh an pasfhocal arís", + "fileHasBeenSavedAt": "Sábháladh an comhad ag {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "editBundlesForAccount": "Cuir cuachta in eagar don chuntas seo", + "globalChatId": "Aitheantas comhrá domhanda", + "sender": "Seoltóir", + "noOneCanJoin": "Ní féidir le duine ar bith páirt a ghlacadh", + "noOtherDevicesFound": "Níor aimsíodh aon ghléas eile", + "inviteGroupChat": "📨 Cuireadh chuig comhrá grúpa", + "knocking": "Cnagadh", + "addChatOrSubSpace": "Cuir comhrá nó fo-spás leis", + "thisDevice": "An gléas seo:", + "formattedMessages": "Teachtaireachtaí formáidithe", + "verifyOtherDevice": "🔐 Fíoraigh gléas eile", + "commandHint_ignore": "Déan neamhaird d'aitheantas na maitríse sonraithe", + "completedKeyVerification": "{sender} fíorú eochair críochnaithe", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "changeTheCanonicalRoomAlias": "Athraigh an príomhsheoladh comhrá poiblí", + "importEmojis": "Iompórtáil Emoji", + "commandHint_dm": "Cuir tús le comhrá díreach\nÚsáid --no-cription chun criptiúchán a dhíchumasú", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "invalidServerName": "Ainm freastalaí neamhbhailí", + "addToBundle": "Cuir le bundle", + "redactedBy": "Arna chur in eagar ag {username}", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "markAsRead": "Marcáil mar léite", + "searchForUsers": "Cuardaigh @users...", + "removeFromBundle": "Bain as an mbeart seo", + "reactedWith": "D'fhreagair {sender} le {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 Thug {user} cuireadh duit", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "doNotShowAgain": "Ná taispeáin arís", + "pleaseEnterANumber": "Iontráil uimhir níos mó ná 0", + "unbanUserDescription": "Beidh an t-úsáideoir in ann dul isteach sa chomhrá arís má dhéanann siad iarracht.", + "pleaseEnterYourCurrentPassword": "Iontráil do phasfhocal reatha le do thoil", + "newPassword": "Pasfhocal nua", + "sendReadReceipts": "Seol admhálacha léite", + "formattedMessagesDescription": "Taispeáin ábhar saibhir teachtaireachta cosúil le téacs trom ag baint úsáide as marcáil síos.", + "verifyOtherUser": "🔐 Fíoraigh úsáideoir eile", + "jump": "Léim", + "reportErrorDescription": "😭 Ó, a mhac go deo. Chuaigh rud éigin mícheart. Más mian leat, is féidir leat an fabht seo a thuairisciú do na forbróirí.", + "invalidInput": "Ionchur neamhbhailí!", + "kickUserDescription": "Ciceáiltear an t-úsáideoir as an gcomhrá ach níl cosc air. I gcomhráite poiblí, is féidir leis an úsáideoir teacht ar ais ag am ar bith.", + "commandHint_sendraw": "Seol json amh", + "leaveEmptyToClearStatus": "Fág folamh chun do stádas a ghlanadh.", + "pleaseChooseAStrongPassword": "Roghnaigh pasfhocal láidir", + "joinSpace": "Glac páirt sa spás", + "initAppError": "Tharla earráid agus an feidhmchlár á thosú", + "requestedKeyVerification": "D'iarr {sender} fíorú eochrach", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "incomingMessages": "Teachtaireachtaí isteach", + "emojis": "Emojis", + "reportUser": "Déan tuairisc ar úsáideoir", + "custom": "Saincheaptha", + "supposedMxid": "Ba cheart go mbeadh sé seo {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "commandHint_markasgroup": "Marcáil mar ghrúpa", + "newSpace": "Spás nua", + "confirmMatrixId": "Deimhnigh d’ID Maitrís chun do chuntas a scriosadh.", + "confirmEventUnpin": "An bhfuil tú cinnte an t-imeacht a dhíphionnáil go buan?", + "hugContent": "Tugann {senderName} barróg duit", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "unread": "Neamhléite", + "noChatsFoundHere": "Níor aimsíodh aon chomhrá anseo fós. Cuir tús le comhrá nua le duine éigin tríd an gcnaipe thíos a úsáid. ⤵️", + "messageInfo": "Eolas teachtaireachta", + "unsupportedAndroidVersionLong": "Éilíonn an ghné seo leagan Android níos nuaí. Seiceáil le haghaidh nuashonruithe nó tacaíocht Lineage OS.", + "youKicked": "👞 Chiceáil tú {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "Unbanned tú {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "knock": "Cnoc Mhuire", + "countFiles": "Comhaid {count}", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "disableEncryptionWarning": "Ar chúiseanna slándála ní féidir leat criptiú a dhíchumasú i gcomhrá, áit ar cumasaíodh é roimhe seo.", + "sorryThatsNotPossible": "Tá brón orm... nach féidir a dhéanamh", + "reopenChat": "Comhrá a athoscailt", + "noBackupWarning": "Rabhadh! Gan cúltaca comhrá a chumasú, caillfidh tú rochtain ar do theachtaireachtaí criptithe. Moltar go mór an cúltaca comhrá a chumasú ar dtús sula logálann tú amach.", + "fileIsTooBigForServer": "Ní féidir seol! Ní thacaíonn an freastalaí ach le ceangaltáin suas le {max}.", + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "jumpToLastReadMessage": "Léim go dtí an teachtaireacht léite is déanaí", + "readUpToHere": "Léigh suas go dtí seo", + "openLinkInBrowser": "Oscail nasc sa bhrabhsálaí", + "wrongPinEntered": "Tháinig biorán mícheart isteach! Bain triail eile as i {seconds} soicind...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "archiveRoomDescription": "Bogfar an comhrá go dtí an chartlann. Beidh úsáideoirí eile in ann a fheiceáil gur fhág tú an comhrá.", + "removeDevicesDescription": "Beidh tú logáilte amach as an ngléas seo agus ní bheidh tú in ann teachtaireachtaí a fháil a thuilleadh.", + "roomUpgradeDescription": "Déanfar an comhrá a athchruthú ansin leis an leagan seomra nua. Cuirfear in iúl do gach rannpháirtí go gcaithfidh siad aistriú chuig an gcomhrá nua. Is féidir leat tuilleadh eolais a fháil faoi leaganacha seomra ag https://spec.matrix.org/latest/rooms/", + "banUserDescription": "Beidh cosc ar an úsáideoir ón gcomhrá agus ní bheidh sé in ann dul isteach sa chomhrá arís go dtí go mbeidh siad gan chosc.", + "makeAdminDescription": "Nuair a dhéanann tú an riarachán úsáideora seo, b'fhéidir nach mbeidh tú in ann é seo a chealú mar go mbeidh na ceadanna céanna acu agus atá agat.", + "learnMore": "Faigh tuilleadh eolais", + "yourGlobalUserIdIs": "Is é d'aitheantas úsáideora domhanda: ", + "noUsersFoundWithQuery": "Ar an drochuair ní fhéadfaí aon úsáideoir a aimsiú le \"{query}\". Seiceáil le do thoil an ndearna tú typo.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "searchChatsRooms": "Cuardaigh #chats, @users...", + "createGroupAndInviteUsers": "Cruthaigh grúpa agus tabhair cuireadh d'úsáideoirí", + "groupCanBeFoundViaSearch": "Is féidir teacht ar ghrúpa trí chuardach", + "wrongRecoveryKey": "Tá brón orm... Ní cosúil gurb é seo an eochair aisghabhála ceart.", + "databaseMigrationBody": "Fan, le do thoil. B'fhéidir go dtógfaidh sé seo nóiméad.", + "select": "Roghnaigh", + "passwordsDoNotMatch": "Ní mheaitseálann pasfhocail", + "searchIn": "Cuardaigh i gcomhrá \"{chat}\"...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "passwordIsWrong": "Tá do phasfhocal iontrála mícheart", + "files": "Comhaid", + "sessionLostBody": "Cailltear do sheisiún. Tuairiscigh an earráid seo do na forbróirí ag {url}. Is í an teachtaireacht earráide: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "restoreSessionBody": "Déanann an aip iarracht anois do sheisiún a chur ar ais ón gcúltaca. Tuairiscigh an earráid seo do na forbróirí ag {url}. Is í an teachtaireacht earráide: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "verifyOtherUserDescription": "Má fhíoraíonn tú úsáideoir eile, is féidir leat a bheith cinnte go bhfuil a fhios agat cé leis a bhfuil tú ag scríobh i ndáiríre. 💪\n\nNuair a thosaíonn tú fíorú, feicfidh tú féin agus an t-úsáideoir eile aníos san aip. Ansin feicfidh tú sraith emojis nó uimhreacha a chaithfidh tú a chur i gcomparáid lena chéile.\n\nIs é an bealach is fearr chun é seo a dhéanamh ná bualadh le chéile nó glao físe a thosú. 👭", + "sendTypingNotificationsDescription": "Is féidir le rannpháirtithe eile i gcomhrá a fheiceáil nuair atá teachtaireacht nua á clóscríobh agat.", + "verifyOtherDeviceDescription": "Nuair a fhíoraíonn tú gléas eile, is féidir leis na gléasanna sin eochracha a mhalartú, do shlándáil fhoriomlán a mhéadú. 💪 Nuair a thosaíonn tú fíorú, beidh preabfhuinneog le feiceáil san aip ar an dá ghléas. Ansin feicfidh tú sraith emojis nó uimhreacha a chaithfidh tú a chur i gcomparáid lena chéile. Is fearr an dá ghléas a bheith áisiúil sula dtosaíonn tú ar an bhfíorú. 🤳", + "acceptedKeyVerification": "{sender} glacadh le fíorú eochair", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "canceledKeyVerification": "{sender} cealaithe fíorú eochrach", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "commandHint_unignore": "Unignore an ID maitrís tugtha", + "goToSpace": "Téigh go dtí an spás: {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "markAsUnread": "Marcáil mar gan léamh", + "moderatorLevel": "{level} - Modhnóir", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "adminLevel": "{level} - Riarachán", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "inviteOtherUsers": "Tabhair cuireadh d'úsáideoirí eile chuig an gcomhrá seo", + "changeTheChatPermissions": "Athraigh na ceadanna comhrá", + "changeTheVisibilityOfChatHistory": "Athraigh infheictheacht stair an chomhrá", + "chatPermissionsDescription": "Sainmhínigh cén leibhéal cumhachta is gá le haghaidh gníomhartha áirithe sa chomhrá seo. De ghnáth bíonn na leibhéil chumhachta 0, 50 agus 100 ag déanamh ionadaíochta d'úsáideoirí, do mhodhnóirí agus do riarthóirí, ach is féidir aon ghrádú a dhéanamh.", + "changelog": "ChangelogName", + "sendCanceled": "Cealaíodh seoladh", + "loginWithMatrixId": "Logáil isteach le Matrix-ID", + "calculatingFileSize": "Méid an chomhaid á ríomh...", + "oneOfYourDevicesIsNotVerified": "Ní fhíoraítear ceann de do ghléasanna", + "noticeChatBackupDeviceVerification": "Nóta: Nuair a nascann tú do ghléasanna go léir leis an gcúltaca comhrá, déantar iad a fhíorú go huathoibríoch.", + "continueText": "Lean ar aghaidh", + "blur": "Doiléirigh:", + "opacity": "Teimhneacht:", + "setWallpaper": "Socraigh cúlbhrat", + "manageAccount": "Bainistigh cuntas", + "noContactInformationProvided": "Ní sholáthraíonn an freastalaí aon fhaisnéis teagmhála bhailí", + "contactServerAdmin": "Déan teagmháil le admin an fhreastalaí", + "contactServerSecurity": "Déan teagmháil le slándáil an fhreastalaí", + "supportPage": "Leathanach tacaíochta", + "name": "Ainm", + "version": "Leagan", + "website": "Suíomh Gréasáin", + "messagesStyle": "Teachtaireachtaí:", + "setColorTheme": "Socraigh téama datha:", + "openGallery": "Oscail gailearaí", + "users": "Úsáideoirí", + "youBannedUser": "Chuir tú cosc ar {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "user": "Úsáideoir", + "databaseMigrationTitle": "Tá an bunachar sonraí optamaithe", + "hasKnocked": "🚪 Tá {user} tar éis cnagadh", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "report": "tuairisc", + "invite": "Tabhair cuireadh", + "publicSpaces": "Spásanna poiblí", + "whyIsThisMessageEncrypted": "Cén fáth nach féidir an teachtaireacht seo a léamh?", + "pinMessage": "Bioráin chuig an seomra", + "dehydrate": "Easpórtáil seisiún agus gléas wipe", + "commandHint_markasdm": "Marcáil mar sheomra teachtaireachta dírí don ID Maitrís tugtha", + "googlyEyesContent": "Seolann {senderName} súile googly chugat", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_cuddle": "Seol cuddle", + "commandHint_hug": "Seol barróg", + "encryptThisChat": "Criptigh an comhrá seo", + "importNow": "Iompórtáil anois", + "sendTypingNotifications": "Seol fógraí clóscríofa", + "chatPermissions": "Ceadanna comhrá", + "emoteKeyboardNoRecents": "Beidh mothúcháin a úsáideadh le déanaí le feiceáil anseo ...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "chatDescriptionHasBeenChanged": "Athraíodh cur síos ar an gcomhrá", + "pushNotificationsNotAvailable": "Níl fógraí brú ar fáil", + "changeGeneralChatSettings": "Athraigh socruithe ginearálta comhrá", + "sendRoomNotifications": "Seol fógraí @room", + "changeTheDescriptionOfTheGroup": "Athraigh an cur síos ar an gcomhrá", + "aboutHomeserver": "Maidir le {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "cuddleContent": "Cuireann {senderName} do chudacht", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "noMoreChatsFound": "Níor aimsíodh a thuilleadh comhráite...", + "space": "Spás", + "redactedByBecause": "Athbhreithnithe ag {username} mar: \"{reason}\"", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "setChatDescription": "Socraigh cur síos ar an gcomhrá", + "time": "Am", + "removeFromSpace": "Bain as spás", + "unsupportedAndroidVersion": "Leagan Android gan tacaíocht", + "usersMustKnock": "Ní mór d'úsáideoirí cnag a chur ar", + "storeSecurlyOnThisDevice": "Stóráil go daingean ar an ngléas seo", + "userLevel": "{level} - Úsáideoir", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "updateInstalled": "🎉 Nuashonraigh {version} suiteáilte!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "serverInformation": "Eolas freastalaí:", + "createGroup": "Cruthaigh grúpa", + "noChatDescriptionYet": "Níl aon chur síos ar an gcomhrá cruthaithe fós.", + "shareInviteLink": "Roinn an nasc cuireadh", + "passwordRecoverySettings": "Socruithe athshlánaithe pasfhocal", + "youKickedAndBanned": "🙅 Chiceáil tú agus chuir tú cosc ar {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "publicChatAddresses": "Seoltaí comhrá poiblí", + "createNewAddress": "Cruthaigh seoladh nua", + "groupName": "Ainm an ghrúpa", + "bundleName": "Ainm an bheartáin", + "wasDirectChatDisplayName": "Comhrá folamh (bhí {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "oneClientLoggedOut": "Tá duine de do chliaint logáilte amach", + "unverified": "Neamhfhíoraithe", + "youRejectedTheInvitation": "Dhiúltaigh tú don chuireadh", + "youHaveWithdrawnTheInvitationFor": "Tharraing tú siar an cuireadh do {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 Thug tú cuireadh do {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "storeInAndroidKeystore": "Stóráil i Android KeyStore", + "storeInAppleKeyChain": "Stóráil i Apple KeyChain", + "newSpaceDescription": "Ligeann spásanna duit do chomhráite a chomhdhlúthú agus pobail phríobháideacha nó phoiblí a thógáil.", + "chatCanBeDiscoveredViaSearchOnServer": "Is féidir comhrá a aimsiú tríd an gcuardach ar {server}", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "nothingFound": "Níor aimsíodh aon rud...", + "searchMore": "Cuardaigh tuilleadh...", + "gallery": "Gailearaí", + "importFromZipFile": "Iompórtáil ó chomhad .zip", + "exportEmotePack": "Easpórtáil Emote pacáiste mar .zip", + "replace": "Ionadaigh", + "appLockDescription": "Cuir glas ar an aip nuair nach bhfuil sé in úsáid le cód bioráin", + "swipeRightToLeftToReply": "Svaidhpeáil ar dheis ar chlé chun freagra a thabhairt", + "commandHint_discardsession": "Scrios an seisiún", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "block": "Bloc", + "blockListDescription": "Is féidir leat bac a chur ar úsáideoirí atá ag cur isteach ort. Ní bheidh tú in ann teachtaireachtaí nó cuireadh seomra ar bith a fháil ó na húsáideoirí ar do liosta bloc pearsanta.", + "blockUsername": "Déan neamhaird de ainm úsáideora", + "tryAgain": "Bain triail eile as", + "optionalRedactReason": "(Roghnach) An chúis leis an teachtaireacht seo a chur in eagar...", + "dehydrateWarning": "Ní féidir an gníomh seo a chealú. Cinntigh go stórálann tú an comhad cúltaca go sábháilte.", + "hydrate": "Athchóirigh ó chomhad cúltaca", + "commandHint_googly": "Seol roinnt súile googly", + "notAnImage": "Ní comhad íomhá é.", + "isReadyForKeyVerification": "Tá {sender} réidh le haghaidh fíorú eochair", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "Thosaigh {sender} fíorú eochrach", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "stickers": "Greamáin", + "discover": "Faigh amach", + "unreadChatsInApp": "{appname}: {unread} comhráite gan léamh", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "noDatabaseEncryption": "Ní thacaítear le criptiú bunachar sonraí ar an ardán seo", + "thereAreCountUsersBlocked": "Faoi láthair tá bac curtha ar úsáideoirí {count}.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "sendReadReceiptsDescription": "Is féidir le rannpháirtithe eile i gcomhrá a fheiceáil nuair a bhíonn teachtaireacht léite agat.", + "doesNotSeemToBeAValidHomeserver": "Ní cosúil gur freastalaí baile comhoiriúnach é. URL mícheart?", + "youJoinedTheChat": "Chuaigh tú isteach sa chomhrá", + "youAcceptedTheInvitation": "👍 Ghlac tú leis an gcuireadh", + "accessAndVisibility": "Rochtain agus infheictheacht", + "accessAndVisibilityDescription": "Cé a bhfuil cead aige páirt a ghlacadh sa chomhrá seo agus conas is féidir an comhrá a aimsiú.", + "calls": "Glaonna", + "customEmojisAndStickers": "Emojis agus greamáin saincheaptha", + "customEmojisAndStickersBody": "Cuir leis nó roinn emojis nó greamáin saincheaptha is féidir a úsáid in aon chomhrá.", + "chatDescription": "Cur síos ar an gcomhrá", + "hideRedactedMessages": "Folaigh teachtaireachtaí curtha in eagar", + "hideRedactedMessagesBody": "Má athghníomhaíonn duine éigin teachtaireacht, ní bheidh an teachtaireacht seo le feiceáil sa chomhrá a thuilleadh.", + "hideInvalidOrUnknownMessageFormats": "Folaigh formáidí teachtaireachta neamhbhailí nó anaithnid", + "blockedUsers": "Úsáideoirí bactha", + "redactMessageDescription": "Athrófar an teachtaireacht do gach rannpháirtí sa chomhrá seo. Ní féidir é seo a chealú.", + "noKeyForThisMessage": "Féadfaidh sé seo tarlú má seoladh an teachtaireacht sular shínigh tú isteach ar do chuntas ag an ngléas seo.\n\nIs féidir freisin gur chuir an seoltóir bac ar do ghléas nó go ndeachaigh rud éigin mícheart leis an nasc idirlín.\n\nAn bhfuil tú in ann an teachtaireacht a léamh ar sheisiún eile? Ansin is féidir leat an teachtaireacht a aistriú uaidh! Téigh go Socruithe > Gléasanna agus cinntigh go bhfuil do ghléasanna fíoraithe a chéile. Nuair a osclaíonn tú an seomra an chéad uair eile agus an dá sheisiún sa tulra, déanfar na heochracha a tharchur go huathoibríoch.\n\nNár mhaith leat na heochracha a chailleadh agus tú ag logáil amach nó ag aistriú gléasanna? Déan cinnte go bhfuil an cúltaca comhrá cumasaithe agat sna socruithe.", + "boldText": "Téacs trom", + "italicText": "Téacs iodálach", + "strikeThrough": "Stailc tríd", + "addLink": "Cuir nasc leis", + "pleaseFillOut": "Líon amach le do thoil", + "invalidUrl": "URL neamhbhailí", + "unableToJoinChat": "Ní féidir páirt a ghlacadh sa chomhrá. B’fhéidir go bhfuil an comhrá dúnta cheana féin ag an bpáirtí eile.", + "compress": "Comhbhrúigh", + "sendImages": "Seol {count} íomhá", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "appWantsToUseForLoginDescription": "Ligeann tú leis seo don aip agus don suíomh Gréasáin faisnéis a roinnt fút.", + "synchronizingPleaseWaitCounter": " Ag sioncronú… ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "appWantsToUseForLogin": "Úsáid '{server}' chun logáil isteach", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "open": "Oscail", + "waitingForServer": "Ag fanacht leis an bhfreastalaí...", + "previous": "Roimhe Seo", + "otherPartyNotLoggedIn": "Níl an páirtí eile logáilte isteach faoi láthair agus mar sin ní féidir leo teachtaireachtaí a fháil!", + "contentNotificationSettings": "Socruithe fógra inneachair", + "generalNotificationSettings": "Socruithe ginearálta fógra", + "roomNotificationSettings": "Socruithe fógra seomra", + "userSpecificNotificationSettings": "Socruithe fógra sainiúla don úsáideoir", + "otherNotificationSettings": "Socruithe fógra eile", + "notificationRuleContainsUserName": "Tá Ainm Úsáideora ann", + "notificationRuleMaster": "Balbhaigh gach fógra", + "notificationRuleMasterDescription": "Sáraíonn sé gach riail eile agus díchumasaítear gach fógra.", + "notificationRuleSuppressNotices": "Bain Teachtaireachtaí Uathoibrithe", + "notificationRuleSuppressNoticesDescription": "Sochtann sé fógraí ó chliaint uathoibrithe amhail róbónna.", + "notificationRuleInviteForMe": "Tabhair cuireadh Do Mhise", + "notificationRuleMemberEvent": "Imeacht Ball", + "notificationRuleMemberEventDescription": "Sochtann fógraí le haghaidh imeachtaí ballraíochta.", + "notificationRuleIsUserMention": "Luaigh Úsáideoir", + "notificationRuleIsUserMentionDescription": "Cuireann sé sin in iúl don úsáideoir nuair a luaitear go díreach iad i dteachtaireacht.", + "notificationRuleContainsDisplayName": "Tá Ainm Taispeána ann", + "notificationRuleIsRoomMention": "Luaigh Seomra", + "notificationRuleIsRoomMentionDescription": "Cuireann sé sin in iúl don úsáideoir nuair a luaitear seomra.", + "notificationRuleRoomnotif": "Fógra Seomra", + "notificationRuleRoomnotifDescription": "Cuireann sé seo in iúl don úsáideoir nuair a bhíonn '@room' i dteachtaireacht.", + "notificationRuleTombstone": "Leac uaighe", + "notificationRuleTombstoneDescription": "Cuireann sé seo in iúl don úsáideoir faoi theachtaireachtaí díghníomhaithe seomra.", + "notificationRuleReactionDescription": "Sochtann fógraí le haghaidh frithghníomhartha.", + "notificationRuleRoomServerAcl": "Freastalaí Seomra ACL", + "notificationRuleRoomServerAclDescription": "Sochtann sé fógraí do liostaí rialaithe rochtana freastalaí seomra (ACL).", + "notificationRuleSuppressEdits": "Cuir na hEagarthóirí ar ceal", + "notificationRuleSuppressEditsDescription": "Sochtann fógraí le haghaidh teachtaireachtaí curtha in eagar.", + "notificationRuleCall": "Glaoigh", + "notificationRuleCallDescription": "Cuireann sé an t-úsáideoir ar an eolas faoi ghlaonna.", + "notificationRuleEncryptedRoomOneToOne": "Seomra Duine le Duine Criptithe", + "notificationRuleRoomOneToOne": "Seomra duine le duine", + "notificationRuleRoomOneToOneDescription": "Cuireann sé seo in iúl don úsáideoir faoi theachtaireachtaí i seomraí duine le duine.", + "notificationRuleMessage": "Teachtaireacht", + "notificationRuleMessageDescription": "Cuireann sé seo in iúl don úsáideoir faoi theachtaireachtaí ginearálta.", + "notificationRuleEncrypted": "Criptithe", + "notificationRuleJitsi": "Jitsi", + "notificationRuleJitsiDescription": "Cuireann sé seo in iúl don úsáideoir faoi imeachtaí giuirléidí Jitsi.", + "notificationRuleServerAcl": "Seachtaigh Freastalaí ACL Imeachtaí", + "more": "Tuilleadh", + "newChatRequest": "📩 Iarratas comhrá nua", + "shareKeysWith": "Roinn na heochracha le...", + "allDevices": "Gach gléasanna", + "crossVerifiedDevicesIfEnabled": "Gléasanna trasfhíoraithe má tá siad cumasaithe", + "crossVerifiedDevices": "Feistí trasfhíoraithe", + "unknownPushRule": "Riail bhrú anaithnid '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "notificationRuleReaction": "Imoibriú", + "notificationRuleEncryptedDescription": "Cuireann sé seo in iúl don úsáideoir faoi theachtaireachtaí i seomraí criptithe.", + "notificationRuleContainsUserNameDescription": "Cuireann sé sin in iúl don úsáideoir nuair a bhíonn a ainm úsáideora i dteachtaireacht.", + "notificationRuleInviteForMeDescription": "Cuireann sé seo ar an eolas don úsáideoir nuair a thugtar cuireadh dó/di go seomra.", + "deletePushRuleCanNotBeUndone": "Má scriosann tú an socrú fógra seo, ní féidir é seo a chealú.", + "notificationRuleContainsDisplayNameDescription": "Cuireann sé sin in iúl don úsáideoir nuair a bhíonn a ainm taispeána i dteachtaireacht.", + "notificationRuleEncryptedRoomOneToOneDescription": "Cuireann sé seo in iúl don úsáideoir faoi theachtaireachtaí i seomraí duine le duine criptithe.", + "notificationRuleServerAclDescription": "Sochtann fógraí le haghaidh imeachtaí Freastalaí ACL.", + "shareKeysWithDescription": "Cad iad na gléasanna ar cheart muinín a chur iontu ionas gur féidir leo do chuid teachtaireachtaí a léamh i gcomhráite criptithe?", + "verifiedDevicesOnly": "Gléasanna fíoraithe amháin", + "takeAPhoto": "Glac grianghraf", + "recordAVideo": "Taifead físeán", + "notSupportedOnThisDevice": "Ní thacaítear leis ar an ngléas seo", + "optionalMessage": "Teachtaireacht (Roghnach)…", + "enterNewChat": "Cuir isteach comhrá nua", + "commandHint_roomupgrade": "Uasghrádaigh an seomra seo go dtí an leagan seomra a thugtar", + "approve": "Ceadaigh", + "youHaveKnocked": "Bhuail tú", + "pleaseWaitUntilInvited": "Fan anois, le do thoil, go dtí go dtabharfaidh duine éigin ón seomra cuireadh duit.", + "checkList": "Liosta seiceála", + "countInvited": "cuireadh chuig {count}", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "sentVoiceMessage": "🎙️ {duration} - Teachtaireacht ghutha ó {sender}", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "displayNavigationRail": "Taispeáin ráille nascleanúna ar fhóin phóca", + "commandHint_logout": "Logáil amach as do ghléas reatha", + "commandHint_logoutall": "Logáil amach gach gléas gníomhach", + "customReaction": "Imoibriú saincheaptha", + "moreEvents": "Tuilleadh imeachtaí", + "declineInvitation": "Diúltaigh don chuireadh", + "noMessagesYet": "Gan aon teachtaireachtaí fós", + "longPressToRecordVoiceMessage": "Brúigh go fada chun teachtaireacht gutha a thaifeadadh.", + "pause": "Sos", + "resume": "Atosú", + "removeFromSpaceDescription": "Bainfear an comhrá as an spás ach beidh sé fós le feiceáil i do liosta comhrá.", + "countChats": "comhráite {chats}", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "spaceMemberOf": "Ball spáis de {spaces}", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "Is féidir le ball spáis de {spaces} cnagadh", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "startPoll": "Tosaigh pobalbhreith", + "endPoll": "Deireadh leis an pobalbhreith", + "answersVisible": "Freagraí le feiceáil", + "pollQuestion": "Ceist pobalbhreithe", + "answerOption": "Rogha freagartha", + "addAnswerOption": "Cuir rogha freagra leis", + "allowMultipleAnswers": "Ceadaigh freagraí iolracha", + "pollHasBeenEnded": "Tá deireadh leis an pobalbhreith", + "countVotes": "{count, plural, =1{Vóta amháin} other{{count} vótaí}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "answersWillBeVisibleWhenPollHasEnded": "Beidh freagraí le feiceáil nuair a bheidh an pobalbhreith thart", + "replyInThread": "Freagra sa snáithe", + "countReplies": "{count, plural, =1{Freagra amháin} other{{count} freagraí}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "thread": "Snáithe", + "backToMainChat": "Ar ais chuig an bpríomhchomhrá", + "saveChanges": "Sábháil athruithe", + "createSticker": "Cruthaigh greamán nó emoji", + "useAsSticker": "Úsáid mar ghreamán", + "useAsEmoji": "Úsáid mar emoji", + "stickerPackNameAlreadyExists": "Tá ainm an phacáiste greamán ann cheana féin", + "newStickerPack": "Pacáiste greamán nua", + "stickerPackName": "Ainm an phacáiste greamán", + "attribution": "Atribution", + "skipChatBackup": "Seachain cúltaca comhrá", + "skipChatBackupWarning": "An bhfuil tú cinnte? Mura gcumasaíonn tú an cúltaca comhrá, d’fhéadfá rochtain ar do theachtaireachtaí a chailleadh má athraíonn tú do ghléas.", + "changedTheChatDescription": "D'athraigh {username} cur síos an chomhrá", + "changedTheChatName": "D'athraigh {username} ainm an chomhrá", + "noMoreResultsFound": "Ní bhfuarthas aon torthaí eile", + "chatSearchedUntil": "Comhrá a cuardaíodh go dtí {time}", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "federationBaseUrl": "URL Bonn Cónaidhme", + "clientWellKnownInformation": "Faisnéis atá ar eolas ag an gcliant:", + "baseUrl": "Bun-URL", + "identityServer": "Freastalaí Aitheantais:", + "versionWithNumber": "Leagan: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "Logaí", + "advancedConfigs": "Cumraíochtaí Ardleibhéil", + "advancedConfigurations": "Cumraíochtaí ardleibhéil", + "signIn": "Sínigh isteach", + "createNewAccount": "Cruthaigh cuntas nua", + "signUpGreeting": "Tá FluffyChat díláraithe! Roghnaigh freastalaí inar mian leat do chuntas a chruthú agus déanaimis é!", + "signInGreeting": "An bhfuil cuntas agat i Matrix cheana féin? Fáilte ar ais! Roghnaigh do fhreastalaí baile agus sínigh isteach.", + "theProcessWasCanceled": "Cuireadh an próiseas ar ceal.", + "join": "Téigh i", + "searchOrEnterHomeserverAddress": "Cuardaigh nó cuir isteach seoladh an fhreastalaí baile", + "matrixId": "Aitheantas Maitrís", + "setPowerLevel": "Socraigh leibhéal cumhachta", + "makeModerator": "Déan modhnóir", + "makeAdmin": "Déan riarthóir", + "removeModeratorRights": "Bain cearta an mhodhnóra", + "removeAdminRights": "Bain cearta riarthóra", + "powerLevel": "Leibhéal cumhachta", + "setPowerLevelDescription": "Sainmhíníonn leibhéil chumhachta cad a cheadaítear do bhall a dhéanamh sa seomra seo agus is gnách go mbíonn siad idir 0 agus 100.", + "owner": "Úinéir", + "mute": "Balbhaigh", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "createNewChat": "Cruthaigh comhrá nua", + "reset": "Athshocraigh", + "supportFluffyChat": "Tacaigh le FluffyChat", + "support": "Tacaíocht", + "setLowPriority": "Socraigh tosaíocht íseal", + "unsetLowPriority": "Díshuiteáil tosaíocht íseal", + "playSoundOnNotification": "Seinn fuaim ar fhógra", + "addTag": "Cuir clib leis", + "removeTag": "Bain an chlib", + "tagName": "Ainm an chlib", + "createNewTag": "Cruthaigh clib nua", + "discardEdits": "Tá athruithe neamhshábháilte agat. Ar mhaith leat do chuid eagarthóireachtaí a chaitheamh amach?", + "@discardEdits": { + "type": "String", + "placeholders": {} + }, + "showMore": "Taispeáin níos mó", + "showLess": "Taispeáin níos lú", + "hideRoomsInSpaces": "Folaigh seomraí atá i spás", + "possibleByYou": "Níorbh fhéidir an scaoileadh seo a dhéanamh ach amháin a bhuíochas le do thacaíocht. Tá FluffyChat fós saor in aisce, foinse oscailte, agus dírithe go hiomlán ar an bpobal.", + "showThumbnailsInTimeline": "Taispeáin mionsamhlacha d'íomhánna agus físeáin", + "appSubtitle": "Cumarsáid [maitrís] Shlán", + "appDescription": "Cumarsáid chriptithe thar an líonra díláraithe [maitrís] ar bhealach éasca agus inrochtana do gach duine.", + "interactiveVerification": "Fíorú idirghníomhach", + "interactiveVerificationDescription": "Má tá sibh in aice le chéile nó má bhíonn sibh ag cumarsáid trí chainéal slán, is féidir libh gach gléas a fhíorú ag an am céanna trí uimhir slándála nó emoji a chur i gcomparáid.", + "countUnverifiedDevices": "{count} gléasanna neamhfhíoraithe sa chomhrá.", + "@countUnverifiedDevices": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "encryptedMessage": "Teachtaireacht chriptithe", + "unencryptedMessage": "Teachtaireacht neamhchriptithe", + "publicKey": "Eochair phoiblí: {key}", + "@publicKey": { + "type": "String", + "placeholders": { + "key": { + "type": "String" + } + } + }, + "deviceIdentityKey": "Eochair aitheantais gléis", + "messageCanOnlyBeReadByUser": "Tá do theachtaireacht criptithe ó cheann ceann agus ní féidir ach leis an úsáideoir seo í a léamh:", + "messageCanOnlyBeReadByUsers": "Tá do theachtaireacht criptithe ó cheann ceann agus ní féidir ach leis na húsáideoirí seo í a léamh:", + "restoreBootstrapEmptyDevicesDescription": "Cuir isteach do phasfhocal nó d’eochair aisghabhála le do thoil chun an gléas seo a fhíorú agus rochtain a fháil ar chúltaca do theachtaireachta criptithe.", + "@restoreBootstrapEmptyDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "restoreBootstrapDevicesDescription": "Roghnaigh ceann de do ghléasanna eile le do thoil, chun an seisiún seo a fhíorú:", + "@restoreBootstrapDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "resetAccount": "Athshocraigh cuntas", + "@resetAccount": { + "type": "String", + "placeholders": {} + }, + "restoreCryptoIdentity": "Athchóirigh Céannacht Cripte", + "@restoreCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "resetCryptoIdentity": "Athshocraigh Céannacht Chripte", + "@resetCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "setUpCryptoIdentity": "Socraigh Céannacht Chripte", + "@setUpCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "waitingForKeys": "Ag fanacht le heochracha... Coinnigh an gléas eile gníomhach le do thoil.", + "@waitingForKeys": { + "type": "String", + "placeholders": {} + }, + "noKeysTransmitted": "Níor tarchuireadh aon eochracha. Déan iarracht arís.", + "@noKeysTransmitted": { + "type": "String", + "placeholders": {} + }, + "unlock": "Díghlasáil", + "@unlock": { + "type": "String", + "placeholders": {} + }, + "openFile": "Oscail comhad", + "@openFile": { + "type": "String", + "placeholders": {} + }, + "resetAccountWarning": "Nuair a athshocraíonn tú do chuntas caillfidh tú rochtain ar do sheantheachtaireachtaí go deo. Ní mór do ghléasanna reatha go léir a fhíorú arís. Ná déan an gníomh seo ach amháin nuair nach bhfuil aon ghléasanna eile fágtha agat chun do sheisiún a fhíorú agus nuair a bheidh d’eochair aisghabhála agus d’fhrása faire caillte agat!", + "@resetAccountWarning": { + "type": "String", + "placeholders": {} + }, + "newPassphraseDescription": "Úsáideann FluffyChat criptiú ó cheann ceann go ceann. Chun nach gcaillfidh tú do theachtaireachtaí, roghnaigh frása faire láidir le do chéannacht chripte agus cúltaca do theachtaireachta criptithe a dhaingniú.", + "@newPassphraseDescription": { + "type": "String", + "placeholders": {} + }, + "newPassphrase": "Pasfrása nua", + "@newPassphrase": { + "type": "String", + "placeholders": {} + }, + "repeatPassphrase": "Athdhéan an frása faire", + "@repeatPassphrase": { + "type": "String", + "placeholders": {} + }, + "passphrasesMatch": "Tá frásaí faire ag teacht le chéile", + "@passphrasesMatch": { + "type": "String", + "placeholders": {} + }, + "passphraseLengthRequirement": "12 charachtar ar a laghad ar fhad.", + "@passphraseLengthRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseUpperAndLowerCaseRequirement": "Tá carachtair mhóra agus bheaga ann.", + "@passphraseUpperAndLowerCaseRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseSpecialCharactersRequirement": "Tá carachtair speisialta ann.", + "@passphraseSpecialCharactersRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseNumberRequirement": "Tá uimhir amháin ann.", + "@passphraseNumberRequirement": { + "type": "String", + "placeholders": {} + }, + "storeRecoveryKeyDescription": "Scríobh síos d’eochair aisghabhála le go mbeidh tú in ann do theachtaireachtaí criptithe agus d’aitheantas cripte a athchóiriú.", + "@storeRecoveryKeyDescription": { + "type": "String", + "placeholders": {} + }, + "saveAsFile": "Sábháil mar chomhad", + "@saveAsFile": { + "type": "String", + "placeholders": {} + }, + "youAreReadyToStart": "Tá tú réidh le tosú!", + "noUserKeyFound": "Níor aimsíodh aon eochair úsáideora", + "@noUserKeyFound": { + "type": "String", + "placeholders": {} + }, + "knownSince": "Ar a dtugtar ó: {date}", + "@knownSince": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + } + } + }, + "unsignedDevice": "Gléas neamhshínithe", + "@unsignedDevice": { + "type": "String", + "placeholders": {} + }, + "signedDevice": "Gléas sínithe", + "@signedDevice": { + "type": "String", + "placeholders": {} + }, + "noCurve25519KeyFound": "Níor aimsíodh eochair curve25519", + "@noCurve25519KeyFound": { + "type": "String", + "placeholders": {} + }, + "messageNotDecryptable": "Ní féidir an teachtaireacht a dhíchriptiú", + "today": "Inniu", + "sending": "Ag seoladh", + "generatingThumbnail": "Ag giniúint mionsamhail", + "encrypting": "Criptiú", + "uploading": "Ag uaslódáil", + "edited": "(eagarthóireacht déanta)", + "couldNotBeSent": "Níorbh fhéidir a sheoladh", + "yesterday": "Inné", + "resetRecoveryKey": "Athshocraigh eochair aisghabhála", + "pleaseEnter6Digits": "Cuir isteach 6 dhigit le do thoil chun an glas aip a chumasú.", + "disableAppLock": "Díchumasaigh glasáil aipeanna", + "disableAppLockAreYouSure": "An bhfuil tú cinnte gur mian leat glas na haipe a dhíchumasú?", + "enableBiometrics": "Cumasaigh fíordheimhniú bithmhéadrach", + "disableBiometrics": "Díchumasaigh fíordheimhniú bithmhéadrach", + "biometricsDescription": "Le fíordheimhniú bithmhéadrach is féidir leat an aip a dhíghlasáil le d’aghaidh nó le do mhéarlorg. Braitheann na cumais ar do ghléas.", + "useAppLock": "Úsáid glas aip", + "unlockWithBiometrics": "Díghlasáil le fíordheimhniú bithmhéadrach", + "resetPin": "Athshocraigh biorán", + "forwardCountMessages": "Ar aghaidh {count, plural, =1{teachtaireacht amháin} other{{count} teachtaireachtaí}}?", + "@forwardCountMessages": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "editImage": "Cuir íomhá in eagar", + "@editImage": { + "type": "String", + "placeholders": {} + }, + "rotateLeft": "Rothlaigh ar chlé", + "@rotateLeft": { + "type": "String", + "placeholders": {} + }, + "rotateRight": "Rothlaigh ar dheis", + "@rotateRight": { + "type": "String", + "placeholders": {} + }, + "mirror": "Scáthán", + "@mirror": { + "type": "String", + "placeholders": {} + }, + "save": "Sábháil", + "@save": { + "type": "String", + "placeholders": {} + }, + "draw": "Tarraing", + "@draw": { + "type": "String", + "placeholders": {} + }, + "undo": "Cuir ar ceal", + "@undo": { + "type": "String", + "placeholders": {} + }, + "clear": "Glan", + "@clear": { + "type": "String", + "placeholders": {} + }, + "eraser": "Scriosán", + "@eraser": { + "type": "String", + "placeholders": {} + }, + "crop": "Barr", + "@crop": { + "type": "String", + "placeholders": {} + }, + "loadingMessages": "Ag lódáil teachtaireachtaí...", + "buildDoesNotSupportFirebase": "Ní thacaíonn an tógáil seo le teachtaireachtaí scamall firebase.", + "unableToRegisterDeviceForFirebase": "Ní féidir gléas a chlárú le haghaidh teachtaireachtaí scamall firebase.", + "unifiedPushDistributors": "Dáileoirí Brú Aontaithe:", + "doubleTapToReact": "Tapáil faoi dhó le freagairt", + "doubleTapToReactDescription": "Tapáil faoi dhó ar theachtaireacht le freagairt in ionad téacs a roghnú", + "doubleTapReaction": "Imoibriú tapála faoi dhó", + "sendingFilesDoNotExit": "Ag seoladh {count} comhad... Ná scoir le do thoil!", + "@sendingFilesDoNotExit": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "compressingVideo": "Ag comhbhrú físeáin...", + "shareCrashReports": "Comhroinn tuairiscí tuairteála", + "shareCrashReportsDescription": "An bhfuil tú ag iarraidh tuairiscí tuairteála a roinnt go huathoibríoch leis na forbróirí?", + "countActiveCallMembers": "{count} baill ghníomhacha glaonna", + "@countActiveCallMembers": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "enterCall": "Cuir isteach glao", + "videoCallsBetaWarning": "Is gné béite iad glaonna físe. D’fhéadfadh fabhtanna nó iompraíocht gan choinne a bheith ann. Bheimis sásta d’aiseolas a chloisteáil.", + "noDevicesFound": "Níor aimsíodh aon fheistí", + "incomingCall": "Glao isteach", + "videoCall": "Glao físe", + "voiceCall": "Glao gutha", + "missedCall": "Glao caillte", + "callBack": "Glaoigh ar ais", + "hangUp": "Croch suas", + "waitingForParticipant": "Ag fanacht leis an rannpháirtí...", + "decline": "Diúltaigh", + "startCall": "Tosaigh glao", + "selectCamera": "Roghnaigh ceamara", + "selectMicrophone": "Roghnaigh micreafón", + "selectSpeaker": "Roghnaigh cainteoir", + "toggleMicrophone": "Athraigh an micreafón", + "toggleCamera": "Ceamara a scoránaigh", + "startScreensharing": "Tosaigh ag comhroinnt scáileáin", + "stopScreensharing": "Stop comhroinnt scáileáin", + "raiseHand": "Ardaigh lámh", + "stopRaiseHand": "Stop ag ardú láimhe", + "accountsAndSettings": "Cuntais agus socruithe", + "@accountsAndSettings": { + "type": "String", + "placeholders": {} + }, + "preferSpeaker": "Is fearr leat cainteoir", + "unexpectedErrorOccurded": "Ar an drochuair, tharla earráid gan choinne: {msg}", + "@unexpectedErrorOccurded": { + "placeholders": { + "msg": { + "type": "String" + } + } + }, + "incomingCallFrom": "Glao isteach ó {user}", + "@incomingCallFrom": { + "placeholders": { + "user": { + "type": "String" + } + } + } +} diff --git a/lib/l10n/intl_gl.arb b/lib/l10n/intl_gl.arb new file mode 100644 index 0000000..3f46fc4 --- /dev/null +++ b/lib/l10n/intl_gl.arb @@ -0,0 +1,2788 @@ +{ + "@@locale": "gl", + "@@last_modified": "2021-08-14 12:41:10.040321", + "about": "Acerca de", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Aceptar", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} aceptou o convite", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Conta", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} activou a cifraxe extremo-a-extremo", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "Engadir email", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "admin": "Admin", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "alias", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Todos", + "@all": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} respondeu á chamada", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Calquera pode unirse", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "Bloqueo da app", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "archive": "Arquivo", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Poden entrar as usuarias convidadas?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Tes a certeza?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Tes a certeza de querer saír?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Para poder asinar a outra persoa, escribe a túa frase de paso ou chave de recuperación.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Aceptar a solicitude de verificación de {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "autoplayImages": "Reproducir automáticamente adhesivos e emotes", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "badServerLoginTypesException": "O servidor soporta as seguintes formas de conexión:\n{serverVersions}\nPero esta app só soporta:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "banFromChat": "Vetar na conversa", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Vetada", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} vetou a {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": "Non se pode abrir o URI {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changeDeviceName": "Cambiar nome do dispositivo", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} cambiou o avatar da conversa", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} mudou os permisos da conversa", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} cambiou o nome público a: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} mudou as regras de acceso para convidadas", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} mudou as regras de acceso para convidadas a: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} mudou a visibilidade do historial", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} mudou a visibilidade do historial a: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} mudou as regras de acceso", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} mudou as regras de acceso a: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} mudou o avatar", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} mudou os alias da sala", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} mudou a ligazón de convite", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Mudar contrasinal", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Mudar de servidor de inicio", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Cambiar o estilo", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Mudar o nome do grupo", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Cambia o avatar", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "A cifraxe está estragada", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Conversa", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Copia de apoio", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Detalles da conversa", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Conversas", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Escolle un contrasinal forte", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Baleirar arquivo", + "close": "Pechar", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "Vetar a usuaria indicada desta sala", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_html": "Enviar texto con formato HTML", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Convidar á usuaria a esta sala", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "Unirte á sala indicada", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "Eliminar a usuaria indicada desta sala", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "Saír desta sala", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "Conta algo sobre ti", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_myroomavatar": "Establece a túa imaxe para esta sala (por mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "Establece o teu nome público para esta sala", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "Establecer o nivel de responsabilidade da usuaria (por defecto: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "Enviar texto sen formato", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "Enviar resposta como reacción", + "@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": "Retirar veto á usuaria para esta sala", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandInvalid": "Comando non válido", + "@commandInvalid": { + "type": "String" + }, + "commandMissing": "{command} non é un comando.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "compareEmojiMatch": "Compara estes emojis", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Compara estes números", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Configurar conversa", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "O contacto foi convidado ao grupo", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "O contido foi denunciado á administración do servidor", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Copiado ao portapapeis", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Copiar", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Copiar ao portapapeis", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Non se descifrou a mensaxe: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count} participantes", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Crear", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} creou a conversa", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "createNewSpace": "Novo espazo", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "Actualmente activo", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Escuro", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Esto desactivará a conta. Esto non ten volta atrás. Estás segura?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Nivel de permisos por defecto para novas usuarias", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "Eliminar", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Eliminar conta", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Eliminar mensaxe", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Dispositivos", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Conversas Directas", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "O nome público mudou", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Descargar ficheiro", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "Editar", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Editar servidores bloqueados", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Editar nome público", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Editar alias da sala", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Editar avatar da sala", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Xa existe ese emote!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Atallo do emote non é válido!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Atallo de Emote", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Conversa baleira", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Activar paquete emote globalmente", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Activar cifraxe", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Non poderás desactivar a cifraxe posteriormente, tes certeza?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Cifrado", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Cifraxe", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "A cifraxe non está activada", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} rematou a chamada", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Escribe un enderezo de email", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Erro ao obter a localización: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "fontSize": "Tamaño da letra", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "Reenviar", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Desde que se una", + "@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 con {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Non se permiten convidadas", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Permítense convidadas", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} retirou o convite para {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Axuda", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Agochar eventos descoñecidos", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignore": "Ignorar", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Usuarias ignoradas", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Premín na ligazón", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Frase de paso ou chave de recuperación incorrecta", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Convidar contacto", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Convidar contacto a {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "Convidado", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username} convidou a {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Só usuarias convidadas", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} convidoute a FluffyChat.\n1. Visita fluffychat.im e instala a app\n2. Crea unha conta ou Accede\n3. Abre a ligazón do convite: \n {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "está escribindo", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} uníuse á conversa", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Unirse á sala", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username} expulsou a {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} expulsou e vetou a {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Expulsar da conversa", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Última actividade: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Saír", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Deixar a conversa", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Claro", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Cargar {count} participantes máis", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "Cargando... Agarda.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Cargar máis…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "Os servizos de localización están desactivados. Actívaos para poder compartir a localización.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "Permiso de localización denegado. Concede este permiso para poder compartir a localización.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "login": "Acceder", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Entrar en {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Pechar sesión", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Mención", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "Mensaxes", + "@messages": { + "type": "String", + "placeholders": {} + }, + "moderator": "Moderadora", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Acalar conversa", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Nova conversa", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Nova mensaxe en FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Nova solicitude de verificación!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "Seguinte", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "Non", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Sen conexión co servidor", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Non hai emotes. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Só podes activar a cifraxe tan pronto como a sala non sexa públicamente accesible.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Semella que non tes Firebase Cloud Messaging dispoñible no teu dispositivo. Para recibir notificacións push recomendamos que instales ntfy. Con ntfy ou outro provedor Unified Push podes recibir notificacións push de xeito seguro. Podes descargar ntfy desde a PlayStore ou F-Droid.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} non é un servidor matrix, usar {server2} no seu lugar?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "noPasswordRecoveryDescription": "Aínda non engaiches ningún xeito de recuperar o contrasinal.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Sen permiso", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Non se atoparon salas…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Notificacións", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} usuarias están escribindo…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "obtainingLocation": "Obtendo a localización…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "ok": "Ok", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Copia de Apoio en liña das Chaves activada", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Vaites! Desgraciadamente algo fallou ao configurar as notificacións push.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Ooooi, algo fallou…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Abrir a app e ler mensaxes", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Abrir cámara", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "openInMaps": "Abrir en mapas", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "or": "Ou", + "@or": { + "type": "String", + "placeholders": {} + }, + "participant": "Participante", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "frase de paso ou chave de recuperación", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Contrasinal", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Contrasinal esquecido", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Cambiouse o contrasinal", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Recuperación do contrasinal", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Fixar", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Escolle un código de acceso", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Preme na ligazón do email e segue as instrucións.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Escribe o teu contrasinal", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Escribe o teu pin", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Escribe o teu nome de usuaria", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Segue as instruccións do sitio web e toca en seguinte.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "Privacidade", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Salas públicas", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "Razón", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} editou un evento", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactMessage": "Editar mensaxe", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reject": "Rexeitar", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} rexeitou o convite", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Quitar", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Quitar todos os outros dispositivos", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Retirar veto na conversa", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Elimina o avatar", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Substituír sala pola nova versión", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "Responder", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Denunciar mensaxe", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "A sala foi actualizada", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Versión da sala", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Gardar ficheiro", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "search": "Buscar", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "Seguridade", + "@security": { + "type": "String", + "placeholders": {} + }, + "send": "Enviar", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Enviar unha mensaxe", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Enviar como texto", + "@sendAsText": { + "type": "String" + }, + "sendAudio": "Enviar audio", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Enviar ficheiro", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Enviar imaxe", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Enviar mensaxes", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Enviar vídeo", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username} enviou un ficheiro", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username} enviou un audio", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username} enviou unha imaxe", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} enviou un adhesivo", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} enviou un vídeo", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} enviou información da chamada", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setAsCanonicalAlias": "Establecer como alias principal", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "setStatus": "Establecer estado", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Axustes", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Compartir", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} compartiu a súa localización", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "shareLocation": "Compartir localización", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "skip": "Saltar", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Código fonte", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "O Espazo é público", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Nome do Espazo", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} iniciou unha chamada", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "status": "Estado", + "@status": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "¿Que tal estás hoxe?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Enviar", + "@submit": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Sincronizando... Agarda.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Sistema", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Non concordan", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Concordan", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Demasiadas solicitudes. Inténtao máis tarde!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Inténtao outra vez", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} retirou o veto a {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Desbloquear dispositivo", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Dispositivo descoñecido", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Algoritmo de cifraxe descoñecido", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Evento descoñecido '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Reactivar notificacións", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Desafixar", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} e {count} máis están escribindo…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} e {username2} están escribindo…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} está escribindo…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪 {username} deixou a conversa", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} enviou un evento {type}", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verified": "Verificado", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Comezar verificación", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Verificaches correctamente!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Verificando a outra conta", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Visibilidade do historial da conversa", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Visible para todas as participantes", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Visible para todas", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Mensaxe de voz", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Agardando a que a outra parte acepte a solicitude…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Agardando a que a outra parte acepte as emoticonas…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Agardando a que a outra parte acepte os números…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Aviso!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Enviamosche un email", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Quen pode realizar determinada acción", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Quen se pode unir a este grupo", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Por que queres denunciar esto?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Con estos enderezos podes recuperar o contrasinal.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Escribe unha mensaxe…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Si", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Ti", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Xa non participas desta conversa", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Foches vetada nesta conversa", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "A túa chave pública", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "Engadir ao espazo", + "scanQrCode": "Escanear código QR", + "sendOnEnter": "Enter para enviar", + "addAccount": "Engadir conta", + "oneClientLoggedOut": "Un dos teus clientes foi desconectado", + "link": "Ligazón", + "unverified": "Sen verificar", + "repeatPassword": "Repite o contrasinal", + "messageInfo": "Info da mensaxe", + "time": "Hora", + "sender": "Remitente", + "openGallery": "Galería pública", + "removeFromSpace": "Retirar do espazo", + "commandHint_discardsession": "Descartar sesión", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_create": "Crear un grupo de conversa baleiro\nUsa --no-encryption para desactivar a cifraxe", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_clearcache": "Baleirar caché", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_dm": "Iniciar unha charla directa\nUsa --no-encryption para desactivar a cifraxe", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "markAsRead": "Marcar como lido", + "reportUser": "Denunciar usuaria", + "emojis": "Emojis", + "unsupportedAndroidVersionLong": "Esta característica require unha vesión máis recente de Android. Mira se hai actualizacións ou soporte de LineageOS.", + "unsupportedAndroidVersion": "Version de Android non soportada", + "reactedWith": "{sender} reaccionou con {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "pinMessage": "Fixar na sala", + "confirmEventUnpin": "Tes a certeza de querer desafixar o evento?", + "bundleName": "Nome do feixe", + "editBundlesForAccount": "Editar os feixes desta conta", + "addToBundle": "Engadir ao feixe", + "removeFromBundle": "Eliminar deste feixe", + "youRejectedTheInvitation": "Rexeitaches o convite", + "youBannedUser": "Vetaches a {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 {user} convidoute", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youJoinedTheChat": "Unícheste á conversa", + "youAcceptedTheInvitation": "👍 Aceptaches o convite", + "youHaveWithdrawnTheInvitationFor": "Retiraches o convite para {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 Convidaches a {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKicked": "👞 Expulsaches a {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKickedAndBanned": "🙅 Expulsaches e vetaches a {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "Retiraches o veto a {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "storeInAndroidKeystore": "Gardar en Android KeyStore", + "storeInAppleKeyChain": "Gardar en Apple KeyChain", + "storeSecurlyOnThisDevice": "Gardar de xeito seguro no dispositivo", + "users": "Usuarias", + "countFiles": "{count} ficheiros", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "hydrate": "Restablecer desde copia de apoio", + "dehydrateWarning": "Esta acción non é reversible. Pon coidado en gardar o ficheiro de apoio.", + "dehydrate": "Exportar sesión e eliminar dispositivo", + "user": "Usuaria", + "custom": "Personal", + "confirmMatrixId": "Confirma o teu ID Matrix para poder eliminar a conta.", + "supposedMxid": "Debería ser {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "commandHint_markasdm": "Marcar como sala de mensaxe directa para o ID Matrix indicado", + "commandHint_markasgroup": "Marcar como grupo", + "whyIsThisMessageEncrypted": "Por que non podo ler esta mensaxe?", + "noKeyForThisMessage": "Pode ser que a mensaxe fose enviada antes de que ti accedeses á túa conta neste dispositivo.\n\nTamén é posible que a remitente non validase o teu dispositivo ou tamén que algo fallase na conexión a internet.\n\nPodes ler a mensaxe noutro dispositivo? Entón podes transferila desde el! Vai a Axustes > Dispositivos e comproba que tes tódolos dispositivos verificados. Entón cando abras a sala a próxima vez a sincronización realizarase e as chaves transmitiranse automáticamente.\n\nNon desexas perder as chaves cando pechas sesión ou cambias de dispositivo? Comproba nos axustes que activaches a copia de apoio das conversas.", + "newSpace": "Novo espazo", + "doNotShowAgain": "Non mostrar outra vez", + "commandHint_googly": "Envía uns ollos desos grandes", + "googlyEyesContent": "{senderName} enviouche uns ollos grandes", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "cuddleContent": "{senderName} mándache un achuche", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_cuddle": "Envía un agarimo", + "commandHint_hug": "Envía un abrazo", + "hugContent": "{senderName} abrázate", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "encryptThisChat": "Cifrar esta conversa", + "disableEncryptionWarning": "Por razóns de seguridade non podes desactivar a cifraxe dunha conversa onde foi activada previamente.", + "sorryThatsNotPossible": "Lamentámolo... iso non é posible", + "newSpaceDescription": "Os Espazos permítenche consolidar as túas conversas e construir comunidades públicas ou privadas.", + "wasDirectChatDisplayName": "Conversa baleira (era {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "reopenChat": "Reabrir conversa", + "noOtherDevicesFound": "Non se atopan outros dispositivos", + "noBackupWarning": "Aviso! Se non activas a copia de apoio da conversa, perderás o acceso ás túas mensaxes cifradas. É moi recomendable activar a copia de apoio da conversa antes de pechar a sesión.", + "fileIsTooBigForServer": "Non se puido enviar! O servidor só permite anexos que non superen {max}.", + "fileHasBeenSavedAt": "Gardouse o ficheiro en {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "jumpToLastReadMessage": "Ir á última mensaxe lida", + "readUpToHere": "Lin ate aquí", + "openLinkInBrowser": "Abrir ligazón no navegador", + "jump": "Ir alá", + "report": "informar", + "reportErrorDescription": "😭 Vaia! Algo fallou. Se queres, podes informar do problema ás persoas desenvolvedoras.", + "notAnImage": "Non é un ficheiro de imaxe.", + "importNow": "Importar agora", + "importEmojis": "Importar Emojis", + "importFromZipFile": "Importar desde ficheiro .zip", + "exportEmotePack": "Exportar paquete Emote como .zip", + "replace": "Substituír", + "sendTypingNotifications": "Permitir ver que estás escribindo", + "createGroup": "Crear grupo", + "messagesStyle": "Mensaxes:", + "shareInviteLink": "Comparte ligazón de convite", + "setColorTheme": "Cor do decorado:", + "tryAgain": "Intentar outra vez", + "optionalRedactReason": "(Optativo) Razón para editar a mensaxe...", + "redactedBy": "Editada por {username}", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactedByBecause": "Editada por {username} debido a: \"{reason}\"", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "redactMessageDescription": "A mensaxe vai ser editada para todas as participantes na conversa. Non ten volta atrás.", + "invite": "Convidar", + "chatPermissions": "Permisos da conversa", + "chatDescription": "Descrición da conversa", + "chatDescriptionHasBeenChanged": "Cambiou a descrición da conversa", + "noChatDescriptionYet": "Aínda non se escribeu a descrición da conversa.", + "invalidServerName": "Nome de servidor non válido", + "setChatDescription": "Escribir descrición da conversa", + "inviteGroupChat": "📨 Convidar a conversa en grupo", + "emoteKeyboardNoRecents": "Os emotes usados recentemente aparecerán aquí...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "banUserDescription": "Vaise vetar a usuaria na conversa e non poderá entrar outra vez ata que se retire o veto.", + "removeDevicesDescription": "Vas pechar a sesión neste dispositivo e xa non poderás recibir mensaxes nel.", + "unbanUserDescription": "A usuaria vai poder entrar outra vez na conversa se quere.", + "pushNotificationsNotAvailable": "Non están dispoñibles as notificacións push", + "makeAdminDescription": "Cando convirtas a esta usuaria en admin non poderás desfacer a acción xa que terá os mesmos permisos ca ti.", + "archiveRoomDescription": "Vaise mover a charla ao arquivo. Outras usuarias poderán ver que saíches da conversa.", + "invalidInput": "Contido non válido!", + "hasKnocked": "🚪 {user} petou na porta", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "wrongPinEntered": "PIN incorrecto! Inténtao outra vez en {seconds} segundos...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "learnMore": "Saber máis", + "roomUpgradeDescription": "Vaise recrear a charla coa nova versión da sala. Todas as participantes recibirán unha notificación para que cambien á nova charla. Podes ler máis información acerca das versións das salas en https://spec.matrix.org/latest/rooms/", + "pleaseEnterANumber": "Escribe un número maior de cero", + "kickUserDescription": "A usuaria foi expulsada pero non vetada. En conversas públicas a usuaria pode volver cando queira.", + "createGroupAndInviteUsers": "Crear un grupo e convidar usuarias", + "groupCanBeFoundViaSearch": "O grupo pódese atopar ao buscar", + "noUsersFoundWithQuery": "Lamentamos non atopar ningunha usuaria con \"{query}\". Comproba se está ben escrito.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "yourGlobalUserIdIs": "O teu ID-usuaria global é: ", + "groupName": "Nome do grupo", + "searchChatsRooms": "Buscar #conversas, @usuarias...", + "commandHint_sendraw": "Enviar json sen editar", + "wrongRecoveryKey": "Desculpa... non semella ser o xeito correcto de recuperar a chave.", + "blockListDescription": "Podes bloquear usuarias que che molesten. Non recibirás mensaxes nin convites para salas procedentes das usuarias da túa lista persoal de bloqueo.", + "blockedUsers": "Usuarias bloqueadas", + "block": "Bloquear", + "blockUsername": "Ignorar identificador", + "thisDevice": "Este dispositivo:", + "publicSpaces": "Espazos públicos", + "passwordIsWrong": "O contrasinal escrito non é correcto", + "pleaseEnterYourCurrentPassword": "Escribe o contrasinal actual", + "nothingFound": "Non atopamos nada...", + "newPassword": "Novo contrasinal", + "passwordsDoNotMatch": "Os contrasinais non concordan", + "select": "Escolle", + "pleaseChooseAStrongPassword": "Elixe un contrasinal forte", + "addChatOrSubSpace": "Engadir charla ou sub espazo", + "leaveEmptyToClearStatus": "Deixa baleiro para limpar o teu estado.", + "joinSpace": "Únete ao espazo", + "searchForUsers": "Buscar @persoas...", + "databaseMigrationTitle": "Base de datos optimizada", + "databaseMigrationBody": "Agarda, podería levarnos un pouco.", + "initAppError": "Houbo un fallo ao iniciar a app", + "sessionLostBody": "Estragouse a túa sesión. Por favor informa deste fallo ás desenvolvedoras en {url}. A mensaxe do erro é: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "restoreSessionBody": "A app vai intentar restablecer a sesión desde a copia de apoio. Por favor informa deste erro ás desenvolvedoras en {url}. A mensaxe do erro é: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "sendReadReceipts": "Enviar confirmación de lectura", + "sendReadReceiptsDescription": "Outras participantes na conversa poden ver cando liches unha mensaxe.", + "formattedMessages": "Mensaxes con formato", + "verifyOtherDevice": "🔐 Verificar outro dispositivo", + "verifyOtherUser": "🔐 Verificar outra usuaria", + "verifyOtherDeviceDescription": "Ao verificar outro dispositivo estás compartindo as chaves, aumentando a túa seguridade 💪. Ao iniciar a verificación aparecerá unha xanela emerxente nos dous dispositivos. Nesa xanela verás varios emojis ou números que tes que comparar entre eles. O mellor xeito de facelo é ter os dous dispositivos contigo cando inicias o proceso de verificación. 🤳", + "canceledKeyVerification": "{sender} desbotou a verificación da chave", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "{sender} xa pode verificar a chave", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "sendTypingNotificationsDescription": "As outras participantes da conversa poden ver cando estás a escribir unha mensaxe.", + "formattedMessagesDescription": "Mostrar texto enriquecido nas mensaxes como letra grosa usando markdown.", + "verifyOtherUserDescription": "Se verificas a outra usuaria, podes ter a certeza de que sabes con quen estás a conversar. 💪\n\nAo iniciar a verificación, ti mais a outra usuaria veredes unha xanela emerxente na app onde aparecerán varios emojis ou números que teredes que comparar entre vós.\n\nO mellor xeito de facelo é en persoa o cunha chamada de vídeo. 👭", + "requestedKeyVerification": "{sender} solicitou verificar a chave", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "acceptedKeyVerification": "{sender} aceptou a verificación da chave", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "completedKeyVerification": "{sender} completou a verificación da chave", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "{sender} comezou coa verificación da chave", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "incomingMessages": "Mensaxes recibidas", + "stickers": "Adhesivos", + "discover": "Descubrir", + "commandHint_ignore": "Ignorar o ID matrix indicado", + "commandHint_unignore": "Non ignorar o ID matrix indicado", + "unreadChatsInApp": "{appname}: {unread} charlas sen ler", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "noDatabaseEncryption": "Nesta plataforma non temos soporte para cifrar a base de datos", + "accessAndVisibility": "Acceso e Visibilidade", + "accessAndVisibilityDescription": "Quen pode unirse a esta charla e de que xeito e como poden atopala.", + "customEmojisAndStickers": "Emojis personais e adhesivos", + "calls": "Chamadas", + "hideRedactedMessages": "Agochar mensaxes editadas", + "hideRedactedMessagesBody": "Se alguén corrixe unha mensaxe entón esta xa non será visible na charla.", + "hideInvalidOrUnknownMessageFormats": "Agochar formatos de mensaxe non válidos ou descoñecidos", + "usersMustKnock": "As usuarias teñen que pedir entrar", + "knocking": "A solicitar", + "chatCanBeDiscoveredViaSearchOnServer": "A charla pode ser atopada ao buscar en {server}", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "createNewAddress": "Crear novos enderezos", + "appLockDescription": "Bloquear a app cun código PIN cando non a uses", + "globalChatId": "ID Global da charla", + "customEmojisAndStickersBody": "Engade ou comparte emojis personais e adhesivos que poden usarse nas charlas.", + "passwordRecoverySettings": "Axustes de recuperación do contrasinal", + "knock": "Solicitar acceso", + "noOneCanJoin": "Ninguén pode unirse", + "thereAreCountUsersBlocked": "Agora mesmo hai {count} usuarias bloqueadas.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "publicChatAddresses": "Enderezos públicos da charla", + "searchIn": "Buscar na conversa \"{chat}\"...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "searchMore": "Buscar máis...", + "gallery": "Galería", + "files": "Ficheiros", + "swipeRightToLeftToReply": "Despraza hacia a esquerda para responder", + "noMoreChatsFound": "Non se atopan máis charlas…", + "unread": "Sen ler", + "space": "Espazo", + "goToSpace": "Ir ao espazo: {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "markAsUnread": "Marcar como non lido", + "userLevel": "{level} - Usuaria", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "moderatorLevel": "{level} - Moderadora", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "adminLevel": "{level} - Administradora", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeGeneralChatSettings": "Cambiar os axustes xerais da charla", + "inviteOtherUsers": "Convidar a outras usuarias a esta charla", + "changeTheChatPermissions": "Cambiar os permisos na charla", + "changeTheVisibilityOfChatHistory": "Cambiar a visibilidade do historial da charla", + "changeTheCanonicalRoomAlias": "Cambiar o enderezo público principal da charla", + "sendRoomNotifications": "Enviar notificacións a @room", + "changeTheDescriptionOfTheGroup": "Cambiar a descrición da charla", + "changelog": "Novidades na versión", + "chatPermissionsDescription": "Define que nivel de permisos son necesarios para realizar certas accións nesta charla. Os niveis de permiso 0, 50 e 100 normalmente representan, usuarias, moderadoras e administradoras, pero son posibles outras escalas.", + "updateInstalled": "🎉 Instalouse a actualización a {version}!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "sendCanceled": "Cancelouse o envío", + "noChatsFoundHere": "Aínda non hai conversas. Comeza a conversar con alguén premendo no botón de abaixo. ⤵️", + "loginWithMatrixId": "Acceder co ID-Matrix", + "doesNotSeemToBeAValidHomeserver": "Non semella ser un servidor de inicio compatible. É o URL correcto?", + "calculatingFileSize": "Calculando o tamaño do ficheiro…", + "oneOfYourDevicesIsNotVerified": "Un dos teus dispositivos non está verificado", + "noticeChatBackupDeviceVerification": "Nota: Cando conectas todos os teus dispositivos á copia de apoio da conversa quedan verificados automaticamente.", + "blur": "Néboa:", + "opacity": "Opacidade:", + "contactServerSecurity": "Contacto con Seguridade do servidor", + "aboutHomeserver": "Sobre {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "setWallpaper": "Establecer fondo", + "manageAccount": "Xestionar conta", + "noContactInformationProvided": "O servidor non proporciona información de contacto válida", + "contactServerAdmin": "Contacto con Admin do servidor", + "supportPage": "Páxina de axuda", + "serverInformation": "Información do servidor:", + "name": "Nome", + "version": "Versión", + "website": "Páxina web", + "continueText": "Continuar", + "italicText": "Cursiva", + "strikeThrough": "Riscar", + "pleaseFillOut": "Por favor completa", + "invalidUrl": "URL non válido", + "boldText": "Resaltar texto", + "addLink": "Engadir ligazón", + "unableToJoinChat": "Non se puido acceder. Pode que a outra parte xa pechase a conversa.", + "sendImages": "Enviar {count} imaxe", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "compress": "Comprimir", + "previous": "Anterior", + "otherPartyNotLoggedIn": "A outra parte non está conectada neste momento e pode que non reciba as mensaxes!", + "open": "Abrir", + "appWantsToUseForLogin": "Usar '{server}' para acceder", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "contentNotificationSettings": "Axustes de notificación de contido", + "generalNotificationSettings": "Axustes xerais das notificacións", + "roomNotificationSettings": "Axustes de notificacións da sala", + "userSpecificNotificationSettings": "Axustes de notificación específicos da usuaria", + "otherNotificationSettings": "Outros axustes das notificacións", + "notificationRuleContainsUserName": "Contén nome de usuaria", + "notificationRuleContainsUserNameDescription": "Informa á usuaria cando unha mensaxe contén o seu identificador.", + "notificationRuleMaster": "Acalar todas as notificacións", + "notificationRuleSuppressNotices": "Suprimir mensaxes automatizadas", + "notificationRuleSuppressNoticesDescription": "Suprime as notificacións desde clientes automatizados como os robots.", + "notificationRuleInviteForMe": "Teño un convite", + "notificationRuleInviteForMeDescription": "Informa á usuaria de que recibeu o convite para unha sala.", + "notificationRuleMemberEvent": "Eventos dos participantes", + "notificationRuleIsUserMention": "Mención da usuaria", + "notificationRuleIsUserMentionDescription": "Informa cando se menciona explícitamente a usuaria nunha mensaxe.", + "notificationRuleContainsDisplayName": "Contén o nome público", + "notificationRuleContainsDisplayNameDescription": "Informa á usuaria cando unha mensaxe contén o seu nome público.", + "notificationRuleIsRoomMention": "Mención da sala", + "notificationRuleIsRoomMentionDescription": "Informa á usuaria cando hai unha mención da sala.", + "notificationRuleRoomnotif": "Notificación da sala", + "notificationRuleRoomnotifDescription": "Informa á usuaria cando unha mensaxe contén '@room'.", + "notificationRuleTombstone": "Lápida", + "notificationRuleTombstoneDescription": "Informa á usuaria sobre a desactivación de mensaxes na sala.", + "notificationRuleReaction": "Reacción", + "notificationRuleReactionDescription": "Omite as notificacións sobre reaccións.", + "notificationRuleRoomServerAcl": "ACL da servidor da sala", + "notificationRuleRoomServerAclDescription": "Omite notificacións para as listas de control de acceso (ACL) do servidor da sala.", + "notificationRuleSuppressEdits": "Omite edicións", + "notificationRuleSuppressEditsDescription": "Omite as notificacións sobre mensaxes editadas.", + "notificationRuleCall": "Chamada", + "notificationRuleCallDescription": "Informa á usuaria sobre as chamadas.", + "notificationRuleEncryptedRoomOneToOne": "Sala cifrada conversa persoal", + "notificationRuleEncryptedRoomOneToOneDescription": "Informa á usuaria sobre mensaxes cifradas en salas de conversa persoal.", + "notificationRuleRoomOneToOne": "Sala de conversa persoal", + "notificationRuleRoomOneToOneDescription": "Informa á usuaria sobre mensaxes en salas de conversa persoal.", + "notificationRuleMessage": "Mensaxe", + "notificationRuleMessageDescription": "Informa á usuaria sobre mensaxes xenéricas.", + "notificationRuleEncrypted": "Salas cifradas", + "notificationRuleEncryptedDescription": "Informa á usuaria sobre mensaxes en salas cifradas.", + "notificationRuleJitsiDescription": "Informa á usuaria sobre eventos do widget Jitsi.", + "notificationRuleServerAcl": "Omite eventos do sevidor ACL", + "notificationRuleJitsi": "Jitsi", + "notificationRuleServerAclDescription": "Omite notificación sobre eventos do servidor ACL.", + "unknownPushRule": "Regra push descoñecida '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "deletePushRuleCanNotBeUndone": "Se omites este axuste de notificacións non poderás desfacer a acción.", + "more": "Máis", + "newChatRequest": "📩 Nova solicitude de conversa", + "shareKeysWith": "Compartir chaves con…", + "shareKeysWithDescription": "En que dispositivos se pode confiar e poden ler as túas conversas cifradas?", + "allDevices": "Todos os dispositivos", + "crossVerifiedDevicesIfEnabled": "Dispositivos verificados se está activado", + "crossVerifiedDevices": "Dispositivos verificados", + "verifiedDevicesOnly": "Só dispositivos verificados", + "waitingForServer": "Agardando polo servidor…", + "notificationRuleMasterDescription": "Sobrescribe todas as outras regras e desactiva todas as notificacións.", + "appWantsToUseForLoginDescription": "Por tanto permites que a app e o sitio web compartan información sobre ti.", + "notificationRuleMemberEventDescription": "Suprime as notificacións dos eventos de participación.", + "synchronizingPleaseWaitCounter": " Sincronizando…({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "optionalMessage": "(Optativo) mensaxe…", + "notSupportedOnThisDevice": "Non compatible co dispositivo", + "takeAPhoto": "Facer foto", + "recordAVideo": "Gravar vídeo", + "enterNewChat": "Entrar na nova conversa", + "commandHint_roomupgrade": "Actualizar esta sala á versión de sala indicada", + "approve": "Aprobar", + "pleaseWaitUntilInvited": "Agora agarda a que alguén da sala te convide a entrar.", + "youHaveKnocked": "Petaches á porta", + "sentVoiceMessage": "🎙️ {duration} - Mensaxe de voz de {sender}", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "countInvited": "{count} convidadas", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "commandHint_logoutall": "Fechar a sesión en todos os dispositivos activos", + "commandHint_logout": "Fechar a sesión no dispositivo actual", + "moreEvents": "Máis eventos", + "customReaction": "Reacción personalizada", + "declineInvitation": "Rexeitar o convite", + "noMessagesYet": "Aínda non hai mensaxes", + "checkList": "Comprobar lista", + "displayNavigationRail": "Mostrar carril de navegación nos móbiles", + "longPressToRecordVoiceMessage": "Pulsación longa para gravar mensaxe de voz.", + "pause": "Deter", + "resume": "Continuar", + "removeFromSpaceDescription": "Vaise quitar a conversa do espazo pero seguirá aparecendo na túa lista de conversas.", + "countChats": "{chats} conversas", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "spaceMemberOf": "Participa no espazo {spaces}", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "Os membros de {spaces} poden petar á porta", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "startPoll": "Publicar enquisa", + "endPoll": "Finalizar enquisa", + "answersVisible": "Resultados visibles", + "pollQuestion": "Pregunta da enquisa", + "answerOption": "Opción de resposta", + "addAnswerOption": "Engadir opción", + "allowMultipleAnswers": "Permitir varias respostas", + "pollHasBeenEnded": "Rematou a enquisa", + "countVotes": "{count, plural, =1{Un voto} other{{count} votos}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "answersWillBeVisibleWhenPollHasEnded": "As respostas son visibles ao finalizar a enquisa", + "replyInThread": "Responder ao fío", + "countReplies": "{count, plural, =1{Unha resposta} other{{count} respostas}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "thread": "Fío", + "backToMainChat": "Volver á conversa principal", + "attribution": "Atribución", + "saveChanges": "Gardar cambios", + "createSticker": "Crear adhesivo ou emoji", + "useAsSticker": "Usar como adhesivo", + "useAsEmoji": "Usar como emoji", + "stickerPackNameAlreadyExists": "Xa existe ese nome de paquete de adhesivos", + "newStickerPack": "Novo paquete de adhesivos", + "stickerPackName": "Nome do paquete de adhesivos", + "skipChatBackup": "Omitir copia da conversa", + "skipChatBackupWarning": "Tes certeza? A non activar a copia de apoio da conversa poderías perder o acceso ás mensaxes se cambias de dispositivo.", + "changedTheChatDescription": "{username} cambiou a descrición da sala", + "changedTheChatName": "{username} cambiou o nome da sala", + "noMoreResultsFound": "Non hai máis resultados", + "chatSearchedUntil": "Buscouse na conversa ata {time}", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "federationBaseUrl": "URL base para federación", + "clientWellKnownInformation": "Información Client-Well-Known:", + "baseUrl": "URL base", + "identityServer": "Servidor de identidade:", + "versionWithNumber": "Versión: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "Rexistros", + "advancedConfigs": "Axustes avanzados", + "advancedConfigurations": "Configuracións avanzadas", + "signIn": "Acceder", + "createNewAccount": "Crear nova conta", + "signUpGreeting": "FluffyChat é descentralizada! Elixe un servidor para crear a conta e xa podes utilizar a app!", + "signInGreeting": "Xa tes unha conta en Matrix? Benvida! Selecciona o teu servidor de orixe e accede.", + "theProcessWasCanceled": "Desbotouse o proceso.", + "join": "Unirse", + "searchOrEnterHomeserverAddress": "Busca ou escribe o enderezo do servidor de inicio", + "matrixId": "ID en Matrix", + "setPowerLevel": "Establecer responsabilidade", + "makeModerator": "Facer moderadora", + "makeAdmin": "Facer admin", + "removeModeratorRights": "Retirar permiso de moderación", + "removeAdminRights": "Retirar permiso de administración", + "powerLevel": "Nivel responsabilidade", + "setPowerLevelDescription": "Os niveis de responsabilidade definen o que pode facer unha usuaria na sala, normalmente varía de 0 a 100.", + "owner": "Propietaria", + "mute": "Acalar", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "createNewChat": "Crear nova conversa", + "reset": "Restablecer", + "supportFluffyChat": "Apoia a FluffyChat", + "support": "Axuda", + "setLowPriority": "Establecer prioridade baixa", + "unsetLowPriority": "Non establecer prioridade baixa", + "playSoundOnNotification": "Reproducir son coas notificacións", + "addTag": "Engadir etiqueta", + "removeTag": "Retirar etiqueta", + "tagName": "Nome da etiqueta", + "createNewTag": "Crear nova etiqueta", + "discardEdits": "Ten cambios sen gardar. Desbotar a edición?", + "@discardEdits": { + "type": "String", + "placeholders": {} + }, + "showMore": "Mostrar máis", + "showLess": "Mostrar menos", + "hideRoomsInSpaces": "Ocultar salas que están nun espazo", + "possibleByYou": "Esta versión foi posible grazas ao teu apoio. FluffyChat segue sendo libre, de código aberto e dirixida pola comunidade.", + "showThumbnailsInTimeline": "Mostrar miniaturas das imaxes e vídeos", + "appSubtitle": "Comunicación Segura en [matrix]", + "appDescription": "Comunícate de xeito cifrado na rede descentralizada [matrix], dunha forma doada e accesible para todas as persoas.", + "interactiveVerification": "Verificación interactiva", + "interactiveVerificationDescription": "Se estades unha a carón da outra ou tedes outra canle segura de comunicación entón podedes verificar os vosos dispositivos comparando os números de seguridade ou emojis.", + "countUnverifiedDevices": "{count} dispositivos na conversa non verificados.", + "@countUnverifiedDevices": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "encryptedMessage": "Mensaxe cifrada", + "unencryptedMessage": "Mensaxe sen cifrar", + "messageCanOnlyBeReadByUser": "A túa mensaxe está cifrada de extremo a extremo e só a pode ler a usuaria:", + "messageCanOnlyBeReadByUsers": "A túa mensaxe está cifrada de extremo a extremo e só a poden ler estas usuarias:", + "publicKey": "Clave pública: {key}", + "@publicKey": { + "type": "String", + "placeholders": { + "key": { + "type": "String" + } + } + }, + "deviceIdentityKey": "Clave de identidade do dispositivo", + "restoreBootstrapEmptyDevicesDescription": "Por favor escribe a túa frase de paso ou a clave de recuperación para verificar este dispositivo e ter acceso á copia de apoio cifrada das mensaxes.", + "@restoreBootstrapEmptyDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "restoreBootstrapDevicesDescription": "Por favor elixe un dos outros teus dispositivos, para verificar esta sesión:", + "@restoreBootstrapDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "resetAccount": "Restablecer a conta", + "@resetAccount": { + "type": "String", + "placeholders": {} + }, + "restoreCryptoIdentity": "Restablecer identidade criptográfica", + "@restoreCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "resetCryptoIdentity": "Reiniciar identidade criptográfica", + "@resetCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "setUpCryptoIdentity": "Establecer identidade criptográfica", + "@setUpCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "waitingForKeys": "Agardando polas claves… mantén o outro dispositivo activo.", + "@waitingForKeys": { + "type": "String", + "placeholders": {} + }, + "noKeysTransmitted": "Non se transmitiron as claves. Volve a intentalo.", + "@noKeysTransmitted": { + "type": "String", + "placeholders": {} + }, + "unlock": "Desbloquear", + "@unlock": { + "type": "String", + "placeholders": {} + }, + "openFile": "Abrir ficheiro", + "@openFile": { + "type": "String", + "placeholders": {} + }, + "resetAccountWarning": "Cando reinicias a conta perdes o acceso ás mensaxes antigas para sempre. Todos os teus dispositivos actuais deberán verificarse novamente. Considera realizar esta acción só se non tes outros dispositivos desde onde poder verificar a sesión e se perdeches a clave de recuperación e a frase de paso!", + "@resetAccountWarning": { + "type": "String", + "placeholders": {} + }, + "newPassphraseDescription": "FluffyChat utiliza cifraxe de extremo a extremo. Para non perder as mensaxes elixe unha frase de paso forte para protexer a túa identidade criptográfica e a túa copia de apoio de mensaxes cifradas.", + "@newPassphraseDescription": { + "type": "String", + "placeholders": {} + }, + "newPassphrase": "Nova frase de paso", + "@newPassphrase": { + "type": "String", + "placeholders": {} + }, + "repeatPassphrase": "Repetir a frase de paso", + "@repeatPassphrase": { + "type": "String", + "placeholders": {} + }, + "passphrasesMatch": "As frases de paso concordan", + "@passphrasesMatch": { + "type": "String", + "placeholders": {} + }, + "passphraseLengthRequirement": "12 caracteres como mínimo.", + "@passphraseLengthRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseUpperAndLowerCaseRequirement": "Contén maiúsculas e minúsculas.", + "@passphraseUpperAndLowerCaseRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseSpecialCharactersRequirement": "Contén caracteres especiais.", + "@passphraseSpecialCharactersRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseNumberRequirement": "Contén un número.", + "@passphraseNumberRequirement": { + "type": "String", + "placeholders": {} + }, + "storeRecoveryKeyDescription": "Garda nun lugar seguro a clave de recuperación para poder restablecer as túas mensaxes cifradas e a túa identidade criptográfica.", + "@storeRecoveryKeyDescription": { + "type": "String", + "placeholders": {} + }, + "saveAsFile": "Gardar como ficheiro", + "@saveAsFile": { + "type": "String", + "placeholders": {} + }, + "youAreReadyToStart": "Todo preparado para comezar!", + "noUserKeyFound": "Non se atopa a clave da usuaria", + "@noUserKeyFound": { + "type": "String", + "placeholders": {} + }, + "knownSince": "Coñecido desde: {date}", + "@knownSince": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + } + } + }, + "unsignedDevice": "Dispositivo non asinado", + "@unsignedDevice": { + "type": "String", + "placeholders": {} + }, + "signedDevice": "Dispositivo asinado", + "@signedDevice": { + "type": "String", + "placeholders": {} + }, + "noCurve25519KeyFound": "Non se atopa a clave curve25519", + "@noCurve25519KeyFound": { + "type": "String", + "placeholders": {} + }, + "messageNotDecryptable": "Mensaxe non descifrable", + "today": "Hoxe", + "sending": "Enviando", + "generatingThumbnail": "Creando a miniatura", + "encrypting": "Cifrando", + "uploading": "Subindo", + "edited": "(editada)", + "couldNotBeSent": "Non se puido enviar", + "yesterday": "Onte", + "resetRecoveryKey": "Restablecer clave de recuperación", + "pleaseEnter6Digits": "Escribe os 6 díxitos para activar o bloqueo da app.", + "disableAppLock": "Desactivar bloqueo da app", + "disableAppLockAreYouSure": "Tes certeza de querer desactivar o bloqueo da app?", + "enableBiometrics": "Activar a autenticación biométrica", + "disableBiometrics": "Desactivar autenticación biométrica", + "biometricsDescription": "Coa autenticación biométrica podes desbloquear a app coa face ou a impresión dactilar. As opcións dependen do teu dispositivo.", + "useAppLock": "Usar bloqueo da app", + "unlockWithBiometrics": "Desbloquear con autenticación biométrica", + "resetPin": "Restablecer PIN", + "forwardCountMessages": "Reenviar {count, plural, =1{unha mensaxe} other{{count} mensaxes}}?", + "@forwardCountMessages": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "editImage": "Editar imaxe", + "@editImage": { + "type": "String", + "placeholders": {} + }, + "rotateLeft": "Rotar á esquerda", + "@rotateLeft": { + "type": "String", + "placeholders": {} + }, + "rotateRight": "Rotar á dereita", + "@rotateRight": { + "type": "String", + "placeholders": {} + }, + "mirror": "Espello", + "@mirror": { + "type": "String", + "placeholders": {} + }, + "save": "Gardar", + "@save": { + "type": "String", + "placeholders": {} + }, + "draw": "Debuxar", + "@draw": { + "type": "String", + "placeholders": {} + }, + "undo": "Desfacer", + "@undo": { + "type": "String", + "placeholders": {} + }, + "clear": "Limpar", + "@clear": { + "type": "String", + "placeholders": {} + }, + "eraser": "Borrar", + "@eraser": { + "type": "String", + "placeholders": {} + }, + "crop": "Recortar", + "@crop": { + "type": "String", + "placeholders": {} + }, + "loadingMessages": "Cargando mensaxes…", + "buildDoesNotSupportFirebase": "Esta versión non é compatible con firebase cloud messaging.", + "unableToRegisterDeviceForFirebase": "Non se puido rexistrar o dispositivo en firebase cloud messaging.", + "unifiedPushDistributors": "Distribuidores Unified Push:", + "doubleTapToReact": "Doble toque para reaccionar", + "doubleTapToReactDescription": "Fai doble toque nunha mensaxe para engadir reacción no lugar de seleccionar o texto", + "doubleTapReaction": "Reacción con doble toque", + "sendingFilesDoNotExit": "Enviando {count} ficheiros… Non saias!", + "@sendingFilesDoNotExit": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "compressingVideo": "Comprimindo o vídeo…", + "shareCrashReports": "Compartir informe dos fallos", + "shareCrashReportsDescription": "Compartir de xeito automático coas desenvolvedoras os informes dos fallos", + "countActiveCallMembers": "{count} participantes na chamada activa", + "@countActiveCallMembers": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "enterCall": "Entrar na chamada", + "videoCallsBetaWarning": "As chamadas de vídeo son unha función en probas. Podería haber fallos ou comportamentos non agardados. Apreciamos que nos contes que tal funcionan.", + "noDevicesFound": "Non se atopan dispositivos" +} diff --git a/lib/l10n/intl_he.arb b/lib/l10n/intl_he.arb new file mode 100644 index 0000000..714f6af --- /dev/null +++ b/lib/l10n/intl_he.arb @@ -0,0 +1,2053 @@ +{ + "@@last_modified": "2021-08-14 12:41:10.036931", + "about": "אודות", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "קבל", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "{username} קיבל את ההזמנה", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "חשבון", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "{username} הפעיל הצפנה מקצה לקצה", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "admin": "מנהל", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "כינוי", + "@alias": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} ענה לשיחה", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "כל אחד יכול להצטרף", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "archive": "ארכיון", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "האם משתמשים אורחים מורשים להצטרף", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "האם אתה בטוח?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "כדי שתוכל לחתום על משתמש אחר , הזן את הסיסמה שלך או את מפתח השחזור.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "לקבל בקשת אימות זו מ- {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "שנה סיסמא", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "appLock": "נעילת אפליקציה", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "cancel": "ביטול", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "addEmail": "הוסף מייל", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "all": "הכל", + "@all": { + "type": "String", + "placeholders": {} + }, + "banned": "חסום", + "@banned": { + "type": "String", + "placeholders": {} + }, + "sendOnEnter": "שלח בכניסה", + "badServerLoginTypesException": "שרת הבית תומך בסוגי הכניסה:\n{serverVersions}\nאבל אפליקציה זו תומכת רק ב:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} שינה את כללי הגישה לאורחים ל: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} שינה את כללי ההצטרפות", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} שינה את קישור ההזמנה", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "repeatPassword": "כתוב שוב את הסיסמה", + "areYouSureYouWantToLogout": "האם אתה בטוח שברצונך לצאת?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "chat": "צ׳אט", + "@chat": { + "type": "String", + "placeholders": {} + }, + "autoplayImages": "הפעל אוטומטית מדבקות ואנימציות מונפשים", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "banFromChat": "צאט חסום", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} חסם את {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "חסום מכשיר", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "חסום", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "לא ניתן לפתוח את ה-URI {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changeDeviceName": "שנה את שם המכשיר", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} שינה את האווטאר של הצ'אט", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} שינה את הרשאות הצ'אט", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} שינה את שם התצוגה שלו ל: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} שינה את כללי הגישה לאורחים", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} שינה את נראות ההיסטוריה", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} שינה את נראות ההיסטוריה ל: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} שינה את כללי ההצטרפות ל: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} שינה את האווטאר שלו", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} שינה את כינוי החדר", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changeTheHomeserver": "שנה את שרת הבית", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "שנה את הסגנון שלך", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "שנה את שם הקבוצה", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "שינוי האווטאר שלך", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "ההצפנה נפגמה", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "גיבוי צ'אט", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "חסום את המשתמש הנתון מהחדר הזה", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_clearcache": "נקה מטמון", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_create": "צור צ'אט קבוצתי ריק\nהשתמש ב--no-encryption כדי להשבית את ההצפנה", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_discardsession": "התעלם מהסשן", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_dm": "התחל צ'אט ישיר\nהשתמש ב--no-encryption כדי להשבית את ההצפנה", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_html": "שלח טקסט בתבנית HTML", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "הזמן את המשתמש הנתון לחדר זה", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "הצטרף לחדר הנתון", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "הסר את המשתמש הנתון מהחדר הזה", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "עזוב את החדר הזה", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "תאר את עצמך", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "chatDetails": "פרטי צ'אט", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "צ'אטים", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "בחר סיסמה חזקה", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "נקה ארכיון", + "close": "סגור", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_myroomavatar": "הגדר את התמונה שלך לחדר זה (על ידי mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "הגדר את שם התצוגה שלך עבור חדר זה", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "addToSpace": "הוסף לחלל", + "commandHint_unban": "בטל את החסימה של המשתמש הנתון מהחדר הזה", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "countParticipants": "{count} משתתפים", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "צור", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "{username} יצר את הצ'אט", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "currentlyActive": "פעיל כעת", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "כהה", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "defaultPermissionLevel": "רמת הרשאת ברירת מחדל", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "מחק חשבון", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "מחק הודעה", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "התקנים", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "צ'אטים ישירים", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "הורד קובץ", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "ערוך", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "ערוך את שם התצוגה", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "ערוך כינויים לחדר", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "אימוט כבר קיים!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "צ'אט ריק", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "encrypted": "מוצפן", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "enterAnEmailAddress": "הזן כתובת דואר אלקטרוני", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "fontSize": "גודל גופן", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "העבר", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "מהצטרפות", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "מההזמנה", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "הקבוצה ציבורית", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groupWith": "קבוצה עם {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "אורחים אסורים", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "אורחים יכולים להצטרף", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "משתמשים שהתעלמו מהם", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "ביטוי סיסמה או מפתח שחזור שגויים", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "הזמן איש קשר", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "invited": "הזמין", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "{username} הזמין את {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "משתמשים מוזמנים בלבד", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} הזמין אותך ל-FluffyChat.\n1. התקן את FluffyChat: https://fluffychat.im\n2. הירשם או היכנס\n3. פתח את קישור ההזמנה: {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "מקליד/ה…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "{username} הצטרף לצ'אט", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "הצטרף לחדר", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "{username} בעט ב {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "{username} בעט וחסם {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "בעיטה מהצ'אט", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "פעילות אחרונה: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leftTheChat": "עזב את הצ'אט", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "loadingPleaseWait": "טוען אנא המתן.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "טען עוד…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "שירותי המיקום מושבתים. אנא הפעל אותם כדי לשתף את המיקום שלך.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "copy": "העתק", + "@copy": { + "type": "String", + "placeholders": {} + }, + "commandHint_send": "שלח טקסט", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_op": "הגדרת רמת צריכת החשמל של המשתמש הנתון (ברירת מחדל: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "שלח טקסט לא מעוצב", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "שלח תשובה כתגובה", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "createNewSpace": "חלל חדש", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "אפשר הצפנה", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "הזמן איש קשר אל {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "פעולה זו תשבית את חשבון המשתמש שלך. אי אפשר לבטל את זה! האם אתה בטוח?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "group": "קבוצה", + "@group": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "שם התצוגה השתנה", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "ערוך שרתים חסומים", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "עריכת אווטאר של חדר", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} סיים את השיחה", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "groups": "קבוצות", + "@groups": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "לא תוכל לבטל את ההצפנה יותר. האם אתה בטוח?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encryption": "הצפנה", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "שגיאה בהשגת מיקום: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "hasWithdrawnTheInvitationFor": "{username} ביטל את ההזמנה עבור {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "encryptionNotEnabled": "ההצפנה אינה מופעלת", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "הסתר אירועים לא ידועים", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "טען {count} משתתפים נוספים", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "ignore": "התעלם", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "לחצתי על הקישור", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "leave": "לעזוב", + "@leave": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "בהיר", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "delete": "מחיקה", + "@delete": { + "type": "String", + "placeholders": {} + }, + "configureChat": "קביעת תצורה של צ'אט", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "איש הקשר הוזמן לקבוצה", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "התוכן דווח למנהלי השרת", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "הועתק ללוח הגזירים", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "commandInvalid": "הפקודה אינה חוקית", + "@commandInvalid": { + "type": "String" + }, + "commandMissing": "{command} אינו פקודה.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "compareEmojiMatch": "השווה וודא שהאימוג'י הבאים תואמים לאלו של המכשיר השני:", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "השווה וודא שהמספרים הבאים תואמים לאלה של המכשיר השני:", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "העתק ללוח", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "לא ניתן לפענח הודעה: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "help": "עזרה", + "@help": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "הרשאת המיקום נדחתה. אנא אפשר את היכולת לשתף את מיקומך.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "login": "כניסה", + "@login": { + "type": "String", + "placeholders": {} + }, + "moderator": "מנחה", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "newChat": "צ'אט חדש", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "בקשת אימות חדשה!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "הבא", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "לא", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "אין חיבור לשרת", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "אתה יכול להפעיל הצפנה רק כשהחדר כבר לא נגיש לציבור.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "לא נמצאו חדרים…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "התראות", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} משתמשים מקלידים…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "obtainingLocation": "משיג מיקום…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "גיבוי מפתח מקוון מופעל", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "אופס! למרבה הצער, אירעה שגיאה בעת הגדרת התראות.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "אופס, משהו השתבש…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "פתח את האפליקציה לקריאת הודעות", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "oneClientLoggedOut": "אחד מהמכשירים שלך התנתק", + "addAccount": "הוסף חשבון", + "editBundlesForAccount": "ערוך חבילות עבור חשבון זה", + "participant": "משתתף", + "@participant": { + "type": "String", + "placeholders": {} + }, + "password": "סיסמה", + "@password": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "אנא לחץ על הקישור במייל ולאחר מכן המשך.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "addToBundle": "הוסף לחבילה", + "passphraseOrKey": "ביטוי סיסמה או מפתח שחזור", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "שכחתי סיסמה", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "הסיסמה שונתה", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "שחזור סיסמה", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "אנא בחר קוד גישה", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "נא הזן את הסיסמה שלך", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "אנא הזן את קוד הpin שלך", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pin": "קוד pin", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "אנא הזן שם משתמש", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "הודעה חדשה ב-FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "נראה שאין לך שירותי גוגל בטלפון שלך. זו החלטה טובה לפרטיות שלך! כדי לקבל התרעות ב- FluffyChat אנו ממליצים להשתמש https://microg.org/ או https://unifiedpush.org/.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} אינו שרת מטריקס, השתמש ב-{server2} במקום זאת?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "noPasswordRecoveryDescription": "עדיין לא הוספת דרך לשחזר את הסיסמה שלך.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "bundleName": "שם החבילה", + "removeFromBundle": "הסר מחבילה זו", + "openInMaps": "פתיחה במפות", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "link": "קישור", + "logout": "יציאה", + "@logout": { + "type": "String", + "placeholders": {} + }, + "muteChat": "השתקת הצ'אט", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "scanQrCode": "סרוק קוד QR", + "noPermission": "אין הרשאה", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "or": "או", + "@or": { + "type": "String", + "placeholders": {} + }, + "logInTo": "היכנס אל {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "mention": "הזכיר", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "הודעות", + "@messages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "פתח מצלמה", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "notAnImage": "הקובץ אינו תמונה.", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@reply": { + "type": "String", + "placeholders": {} + }, + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@warning": { + "type": "String", + "placeholders": {} + }, + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "@goToSpace": { + "type": "String", + "space": {} + }, + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@videoCall": { + "type": "String", + "placeholders": {} + }, + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "@remove": { + "type": "String", + "placeholders": {} + }, + "@writeAMessage": { + "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" + } + } + }, + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "@unpin": { + "type": "String", + "placeholders": {} + }, + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "@reason": { + "type": "String", + "placeholders": {} + }, + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@submit": { + "type": "String", + "placeholders": {} + }, + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@yes": { + "type": "String", + "placeholders": {} + }, + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "@verified": { + "type": "String", + "placeholders": {} + }, + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "@send": { + "type": "String", + "placeholders": {} + }, + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "@sendAsText": { + "type": "String" + }, + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "@emoteSettings": { + "type": "String", + "placeholders": {} + }, + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@skip": { + "type": "String", + "placeholders": {} + }, + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "@status": { + "type": "String", + "placeholders": {} + }, + "@verifyStart": { + "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": {} + }, + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "@you": { + "type": "String", + "placeholders": {} + }, + "@search": { + "type": "String", + "placeholders": {} + }, + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@waitingPartnerNumbers": { + "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": {} + }, + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "@settings": { + "type": "String", + "placeholders": {} + }, + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@reject": { + "type": "String", + "placeholders": {} + }, + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@visibleForEveryone": { + "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" + } + } + }, + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@share": { + "type": "String", + "placeholders": {} + }, + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@privacy": { + "type": "String", + "placeholders": {} + }, + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@ok": { + "type": "String", + "placeholders": {} + }, + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@unbanFromChat": { + "type": "String", + "placeholders": {} + } +} \ No newline at end of file diff --git a/lib/l10n/intl_hi.arb b/lib/l10n/intl_hi.arb new file mode 100644 index 0000000..394f47b --- /dev/null +++ b/lib/l10n/intl_hi.arb @@ -0,0 +1,1849 @@ +{ + "remove": "निकालना", + "@remove": { + "type": "String", + "placeholders": {} + }, + "importFromZipFile": ".zip फ़ाइल से आयात करें", + "repeatPassword": "पासवर्ड दोहराएं", + "exportEmotePack": "इमोट पैक को .zip के रूप में निर्यात करें", + "importEmojis": "इमोजी आयात करें", + "notAnImage": "कोई छवि फ़ाइल नहीं।", + "importNow": "अभी आयात करें", + "replace": "बदलें", + "about": "हमारे बारे में", + "aboutHomeserver": "{homeserver} की जानकारी", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "accept": "स्वीकार करें", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} ने निमंत्रण स्वीकार किया", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "अकाउंट", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} ने एंड-टू-एंड एन्क्रिप्शन चालू किया", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "ईमेल ऐड करें", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "confirmMatrixId": "कृपया अपना अकाउंट हटाने के लिए अपनी मैट्रिक्स आईडी की पुष्टि करें।", + "supposedMxid": "यह {mxid} होना चाहिए", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "@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": {} + }, + "@admin": { + "type": "String", + "placeholders": {} + }, + "@directChats": { + "type": "String", + "placeholders": {} + }, + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "@close": { + "type": "String", + "placeholders": {} + }, + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "@reply": { + "type": "String", + "placeholders": {} + }, + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "@removeYourAvatar": { + "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" + } + } + }, + "@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": {} + }, + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@invited": { + "type": "String", + "placeholders": {} + }, + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "@warning": { + "type": "String", + "placeholders": {} + }, + "@password": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@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": {} + }, + "@reason": { + "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" + } + } + }, + "@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" + } + } + }, + "@edit": { + "type": "String", + "placeholders": {} + }, + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "@passwordHasBeenChanged": { + "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" + } + } + }, + "@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" + } + } + }, + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "@help": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@delete": { + "type": "String", + "placeholders": {} + }, + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@moderator": { + "type": "String", + "placeholders": {} + }, + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "@ok": { + "type": "String", + "placeholders": {} + }, + "@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" + }, + "@commandInvalid": { + "type": "String" + }, + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@newChat": { + "type": "String", + "placeholders": {} + }, + "@notifications": { + "type": "String", + "placeholders": {} + }, + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "@emoteSettings": { + "type": "String", + "placeholders": {} + }, + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "@mention": { + "type": "String", + "placeholders": {} + }, + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "@withTheseAddressesRecoveryDescription": { + "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": {} + }, + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "@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" + }, + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "@status": { + "type": "String", + "placeholders": {} + }, + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "@joinRoom": { + "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" + }, + "@cancel": { + "type": "String", + "placeholders": {} + }, + "@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" + }, + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@search": { + "type": "String", + "placeholders": {} + }, + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@logout": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@messages": { + "type": "String", + "placeholders": {} + }, + "@login": { + "type": "String", + "placeholders": {} + }, + "@waitingPartnerNumbers": { + "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": {} + }, + "@settings": { + "type": "String", + "placeholders": {} + }, + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@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" + } + } + }, + "@privacy": { + "type": "String", + "placeholders": {} + }, + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@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": {} + }, + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + } +} \ No newline at end of file diff --git a/lib/l10n/intl_hr.arb b/lib/l10n/intl_hr.arb new file mode 100644 index 0000000..91c9055 --- /dev/null +++ b/lib/l10n/intl_hr.arb @@ -0,0 +1,2479 @@ +{ + "@@locale": "hr", + "@@last_modified": "2021-08-14 12:41:10.025984", + "about": "Informacije", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Prihvati", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} je prihvatio/la poziv", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Račun", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} je aktivirao/la obostrano šifriranje", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "Dodaj e-mail adresu", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "admin": "Administrator", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "pseudonim", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Svi", + "@all": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} je odgovorio/la na poziv", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Svatko se može pridružiti", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "Zaključavanje programa", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "archive": "Arhiv", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Smiju li se gosti pridružiti?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Stvarno to želiš?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Stvarno se želiš odjaviti?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Za potpisivanje druge osobe, upiši svoju sigurnosnu lozinku ili ključ za oporavak.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Prihvatiti ovaj zahtjev za potvrđivanje od {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "badServerLoginTypesException": "Homeserver podržava vrste prijave:\n{serverVersions}\nMeđutim ovaj program podržava samo:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "banFromChat": "Isključi iz chata", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Isključen", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} je isključio/la {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Blokiraj uređaj", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "Blokirano", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "Odustani", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "URI adresa {uri} se ne može otvoriti", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changeDeviceName": "Promijeni ime uređaja", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} je promijenio/la avatar chata", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} je promijenio/la dozvole chata", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} je promijenio/la svoje prikazno ime u: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} je promijenio/la pravila pristupa za goste", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} je promijenio/la pravila pristupa za goste u: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} je promijenio/la vidljivost kronologije", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} je promijenio/la vidljivost kronologije u: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} je promijenio/la pravila pridruživanja", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} je promijenio/la pravila pridruživanja u: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} je promijenio/la svoj avatar", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} je promijenio/la pseudonime soba", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} je promijenio/la poveznicu poziva", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Promijeni lozinku", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Promijeni domaći server", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Promijeni tvoj stil", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Promijeni ime grupe", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Promijeni svoj avatar", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "Šifriranje je oštećeno", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Chat", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Sigurnosna kopija chata", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Detalji chata", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Chatovi", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Odaberi snažnu lozinku", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Isprazni arhiv", + "close": "Zatvori", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "Isključi navedenog korisnika iz ove sobe", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_html": "Pošalji HTML formatirani tekst", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Pozovi navedenog korisnika u ovu sobu", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "Pridruži se navedenoj sobi", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "Ukloni navedenog korisnika iz ove sobe", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "Napusti ovu sobu", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "Opiši se", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_myroomavatar": "Postavi svoju sliku za ovu sobu (mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "Postavi svoje ime za ovu sobu", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "Postavi razinu prava navedenog korisnika (standardno: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "Pošalji neformatirani tekst", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "Pošalji odgovor kao reakciju", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_send": "Pošalji tekst", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_unban": "Ponovo uključi navedenog korisnika u ovu sobu", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandInvalid": "Naredba nevaljana", + "@commandInvalid": { + "type": "String" + }, + "commandMissing": "{command} nije naredba.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "compareEmojiMatch": "Usporedi emoji sličice", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Usporedi brojeve", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Konfiguriraj chat", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Kontakt je pozvan u grupu", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "Sadržaj je prijavljen administratorima servera", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Kopirano u međuspremnik", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Kopiraj", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Kopiraj u međuspremnik", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Neuspjelo dešifriranje poruke: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count, plural, =1{1 sudionik} few{{count} sudionika} other{{count} sudionika}}", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Stvori", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} je stvorio/la chat", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "createNewSpace": "Novi prostor", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "Trenutačno aktivni", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Tamna", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Ovo će nepovratno deaktivirati tvoj korisnički račun. Stvarno to želiš?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Standardna razina dozvole za nove korisnike", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "Izbriši", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Izbriši račun", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Izbriši poruku", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Uređaji", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Izravni chatovi", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Prikazno ime je promijenjeno", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Preuzmi datoteku", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "Uredi", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Uredi blokirane servere", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Uredi prikazano ime", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Uredi pseudonime sobe", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Uredi avatar sobe", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Emotikon već postoji!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Neispravna kratica emotikona!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Kratica emotikona", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Prazan chat", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Aktiviraj paket emotikona globalno", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Aktiviraj šifriranje", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Više nećeš moći deaktivirati šifriranje. Stvarno to želiš?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Šifrirano", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Šifriranje", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Šifriranje nije aktivirano", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} je završio/la poziv", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Upiši e-mail adresu", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "fontSize": "Veličina fonta", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "Proslijedi", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Od pridruživanja", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Od poziva", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Grupiraj", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "Grupa je javna", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "Grupe", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Grupa s {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Gosti su zabranjeni", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Gosti se mogu pridružiti", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} je povukao/la poziv za {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Pomoć", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Sakrij nepoznate događaje", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignore": "Zanemari", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Zanemareni korisnici", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Pritisnuo/la sam poveznicu", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Neispravna lozinka ili ključ za obnavljanje", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Pozovi kontakt", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Pozovi kontakt u {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "Pozvan/a", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username} je pozvao/la {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Samo pozvani korisnici", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} te je pozvao/la u FluffyChat. \n1. Posjeti strnicu fluffychat.im i instaliraj aplikaciju \n2. Registriraj ili prijavi se \n3. Otvori poveznicu poziva: \n {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "tipka …", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} se pridružio/la chatu", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Pridruži se sobi", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username} je izbacio/la {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} je izbacio/la i isključio/la {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Izbaci iz chata", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Zadnja aktivnost: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Napusti", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Napustio/la je chat", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Svijetla", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Učitaj još {count} sudionika", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "Učitava se … Pričekaj.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Učitaj još …", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "login": "Prijava", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Prijavi se na {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Odjava", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Spominjanje", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "Poruke", + "@messages": { + "type": "String", + "placeholders": {} + }, + "moderator": "Voditelj", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Isključi zvuk chata", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Novi chat", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Nova poruka u FluffyChatu", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Novi zahtjev za potvrđivanje!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "Dalje", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "Ne", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Ne postoji veza sa serverom", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Nema emotikona. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Šifriranje možeš aktivirati samo nakon što soba više nije javno dostupna.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "Još nisi dodao/la način za obnavljanje lozinke.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Bez dozvole", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Nema soba …", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Obavijesti", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} korisnika tipkaju …", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "ok": "U redu", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Internetski ključ sigurnosnih kopija je aktiviran", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Ups! Nažalost se dogodila greška prilikom postavljanja automatskog primanja obavijesti.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Ups, dogodila se greška …", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Za čitanje poruka, otvori program", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Otvori kameru", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "or": "Ili", + "@or": { + "type": "String", + "placeholders": {} + }, + "participant": "Sudionik", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "tajni izraz ili ključ za obnavljanje", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Lozinka", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Zaboravljena lozinka", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Lozinka je promijenjena", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Obnavljanje lozinke", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Prikvači", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Odaberi lozinku", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Pritisni poveznicu u e-mailu i zatim nastavi.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Upiši svoju lozinku", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Upiši svoj pin", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Upiši svoje korisničko ime", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Slijedi upute na web-stranici i dodirni „Dalje”.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "Privatnost", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Javne sobe", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "Razlog", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} je preuredio/la događaj", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactMessage": "Ispravi poruku", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reject": "Odbij", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} je odbio/la poziv", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Ukloni", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Ukloni sve druge uređaje", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Ponovo uključi u chat", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Ukloni svoj avatar", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Zamijeni sobu s novom verzijom", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "Odgovori", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Prijavi poruku", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Soba je nadograđena", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Verzija sobe", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Spremi datoteku", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "search": "Traži", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "Sigurnost", + "@security": { + "type": "String", + "placeholders": {} + }, + "send": "Pošalji", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Pošalji poruku", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Pošalji kao tekst", + "@sendAsText": { + "type": "String" + }, + "sendAudio": "Pošalji audio datoteku", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Pošalji datoteku", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Pošalji sliku", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Pošalji poruke", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Pošalji video datoteku", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username} ja poslao/la datoteku", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username} ja poslao/la audio snimku", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username} ja poslao/la sliku", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} je poslao/la naljepnicu", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} je poslao/la video", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} je poslao/la podatke poziva", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setAsCanonicalAlias": "Postavi kao glavni pseudonim", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "setStatus": "Postavi stanje", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Postavke", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Dijeli", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} je dijelio/la svoje mjesto", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "skip": "Preskoči", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Izvorni kȏd", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "Prostor je javan", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Ime prostora", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} ja započeo/la poziv", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "status": "Stanje", + "@status": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Kako si danas?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Pošalji", + "@submit": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Sinkronizira se … Pričekaj.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Sustav", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Ne poklapaju se", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Poklapaju se", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Previše zahtjeva. Pokušaj ponovo kasnije!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Pokušaj ponovo poslati", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} je ponovo uključio/la {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Deblokiraj uređaj", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Nepoznat uređaj", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Nepoznat algoritam šifriranja", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Nepoznat događaj '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Uključi zvuk chata", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Otkvači", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} i još {count} korisnika tipkaju …", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} i {username2} tipkaju …", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} tipka …", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪 {username} je napustio/la chat", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} ja poslao/la {type} događaj", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verified": "Potvrđeno", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Pokreni potvrđivanje", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Uspješno si potvrdio/la!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Potvrđivanje drugog računa", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Vidljivost povijesti chata", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Vidljivo za sve sudionike", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Vidljivo za sve", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Glasovna poruka", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Čeka se na sugovornika da prihvati zahtjev …", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Čeka se na sugovornika da prihvati emoji …", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Čeka se na sugovornika da prihvati brojeve …", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Upozorenje!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Poslali smo ti e-mail", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Tko može izvršiti koju radnju", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Tko se smije pridružiti grupi", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Zašto želiš ovo prijaviti?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Lozinku možeš obnoviti pomoću ovih adresa.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Napiši poruku …", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Da", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Ti", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Više ne sudjeluješ u ovom chatu", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Isključen/a si iz ovog chata", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Tvoj javni ključ", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "shareLocation": "Dijeli lokaciju", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "Lokacijske dozvole su odbijene. Za dijeljenje tvoje lokacije dozvoli ih.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "Lokacijske usluge su deaktivirane. Za dijeljenje tvoje lokacije aktiviraj ih.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "obtainingLocation": "Dohvaćanje lokacije …", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Greška u dohvaćanju lokacije: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "openInMaps": "Otvori u kartama", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} nije matrix server. Da li umjesto njega koristiti {server2}?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "autoplayImages": "Automatski pokreni animirane naljepnice i emotikone", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "addToSpace": "Dodaj u prostor", + "scanQrCode": "Snimi QR kod", + "sendOnEnter": "Pošalji pritiskom tipke enter", + "link": "Poveznica", + "bundleName": "Ime paketa", + "removeFromBundle": "Ukloni iz ovog paketa", + "addToBundle": "Dodaj u paket", + "editBundlesForAccount": "Uredi pakete za ovaj račun", + "addAccount": "Dodaj račun", + "oneClientLoggedOut": "Jedan od tvojih klijenata je odjavljen", + "unverified": "Nepotvrđeno", + "repeatPassword": "Ponovi lozinku", + "messageInfo": "Informacija poruke", + "sender": "Pošiljatelj", + "openGallery": "Otvori galeriju", + "time": "Vrijeme", + "removeFromSpace": "Ukloni iz prostora", + "commandHint_clearcache": "Isprazni predmemoriju", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_create": "Stvori prazan grupni chat\nKoristi --no-encryption za deaktiviranje šifriranja", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_discardsession": "Odbaci sesiju", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_dm": "Započni izravni chat\nKoristi --no-encryption za deaktiviranje šifriranja", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "markAsRead": "Označi kao pročitano", + "reportUser": "Prijavi korisnika", + "unsupportedAndroidVersion": "Nepodržana Android verzija", + "unsupportedAndroidVersionLong": "Ova funkcija zahtijeva noviju verziju Androida. Provjeri, postoje li nove verzije ili podrška za Lineage OS.", + "youKickedAndBanned": "🙅 Izbacio/la i isključio/la si korisnika {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "dehydrateWarning": "Ovo je nepovratna radnja. Spremi datoteku sigurnosne kopije na sigurno mjesto.", + "emojis": "Emojiji", + "storeSecurlyOnThisDevice": "Spremi sigurno na ovom uređaju", + "countFiles": "Broj datoteka: {count}", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "reactedWith": "{sender} je reagirao/la sa {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "pinMessage": "Prikvači na sobu", + "confirmEventUnpin": "Stvarno želiš trajno otkvačiti događaj?", + "youRejectedTheInvitation": "Odbio/la si poziv", + "youJoinedTheChat": "Pridružio/la si se chatu", + "youAcceptedTheInvitation": "👍 Prihvatio/la si poziv", + "youHaveWithdrawnTheInvitationFor": "Povukao/la si poziv za korisnika {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 {user} te je pozvao/la", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 Pozvao/la si korisnika {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKicked": "👞 Izbacio/la si korisnika {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "Ponovo si uključio/la korisnika {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "dehydrate": "Izvezi sesiju i izbriši uređaj", + "storeInAndroidKeystore": "Spremi u Android KeyStore", + "hydrate": "Obnovi pomoću sigurnosne kopije", + "users": "Korisnici", + "youBannedUser": "Isključio/la si korisnika {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "storeInAppleKeyChain": "Spremi u Apple KeyChain", + "user": "Korisnik", + "custom": "Prilagođeno", + "fileHasBeenSavedAt": "Datoteka je spremljena u {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "fileIsTooBigForServer": "Neuspjelo slanje! Server podržava samo priloge do {max}.", + "jumpToLastReadMessage": "Skoči na zadnju pročitanu poruku", + "commandHint_markasdm": "Označi kao sobu za izravnu razmjenu poruka za zadani Matrix ID", + "commandHint_markasgroup": "Označi kao grupu", + "doNotShowAgain": "Nemoj više prikazivati", + "readUpToHere": "Pročitaj do ovdje", + "wasDirectChatDisplayName": "Prazan chat (zvao se {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "noBackupWarning": "Upozorenje! Bez aktiviranja spremanja sigurnosne kopije chata, izgubit ćeš pristup tvojim šifriranim porukama. Preporučujemo spremanje sigurnosne kopije chata prije odjave.", + "noOtherDevicesFound": "Nijedan drugi uređaj nije pronađen", + "whyIsThisMessageEncrypted": "Zašto nije moguće čitati ovu poruku?", + "jump": "Skoči", + "newSpaceDescription": "Prostori omogućuju konsolidiranje tvojih chatova i izgradnju privatne ili javne zajednice.", + "encryptThisChat": "Šifiraj ovaj chat", + "commandHint_hug": "Pošalji grljenje", + "commandHint_googly": "Pošalji kotrljajuće oči", + "commandHint_cuddle": "Pošalji maženje", + "confirmMatrixId": "Za brisanje tvog računa potvrdi svoj Matrix ID.", + "supposedMxid": "Trebao bi biti {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "newSpace": "Novi prostor", + "sorryThatsNotPossible": "Žao nam je … to nije moguće", + "disableEncryptionWarning": "Iz sigurnosnih razloga ne možeš deaktivirati šifriranje u chatu u kojem je prije bilo aktivirano.", + "googlyEyesContent": "{senderName} ti šalje kotrljajuće oči", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "cuddleContent": "{senderName} te mazi", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "hugContent": "{senderName} te grli", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "noKeyForThisMessage": "To se može dogoditi ako je poruka poslana prije prijave na tvoj račun na ovom uređaju.\n\nTakođer je moguće da je pošiljatelj blokirao tvoj uređaj ili je došlo do greške s internetskom vezom.\n\nMožeš li pročitati poruku na jednoj drugoj sesiji? U tom slučaju možeš prenijeti poruku iz nje! Idi na Postavke > Uređaji i uvjeri se da su se tvoji uređaji međusobno potvrdili. Kada sljedeći put otvoriš sobu i obje sesije su u prednjem planu, ključevi će se automatski prenijeti.\n\nNe želiš izgubiti ključeve kada se odjaviš ili zamijeniš uređaje? Aktiviraj spremanje sigurnosne kopije chata u postavkama.", + "reopenChat": "Ponovo otvori chat", + "openLinkInBrowser": "Otvori poveznicu u pregledniku", + "report": "prijavi", + "reportErrorDescription": "😭 Joj! Dogodila se greška. Pokušaj ponovo kasnije. Ako želiš, grešku možeš prijaviti programerima.", + "notAnImage": "Nije slikovna datoteka.", + "importNow": "Uvezi sada", + "importEmojis": "Uvezi emoji slike", + "importFromZipFile": "Uvezi iz .zip datoteke", + "replace": "Zamijeni", + "exportEmotePack": "Izvezi paket emotikona kao .zip", + "sendTypingNotifications": "Šalji obavijesti o tipkanju", + "setColorTheme": "Postavi boju teme:", + "tryAgain": "Pokušaj ponovo", + "messagesStyle": "Poruke:", + "chatDescription": "Opis chata", + "invalidServerName": "Neispravno ime servera", + "chatPermissions": "Dozvole za chat", + "setChatDescription": "Postavi opis rzgovora", + "redactedBy": "Preuređeno od {username}", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "optionalRedactReason": "(Opcionalno) Razlog za redigiranje ove poruke …", + "redactedByBecause": "Preuređeno od {username} zbog: „{reason}”", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "redactMessageDescription": "Poruka će se redigirati za sve sudionike u ovoj konverzaciji. To je nepovratna radnja.", + "inviteGroupChat": "📨 Pozivnica u grupni chat", + "noChatDescriptionYet": "Opis chata još nije stvoren.", + "chatDescriptionHasBeenChanged": "Opis chata je promijenjen", + "shareInviteLink": "Dijeli poveznicu za poziv", + "emoteKeyboardNoRecents": "Ovdje će se pojaviti nedavno korišteni emotikoni …", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "createGroup": "Stvori grupu", + "invite": "Pozovi", + "invalidInput": "Neispravan unos!", + "wrongPinEntered": "Unesen je pogrešan PIN! Pokušaj ponovo za {seconds} s …", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "hasKnocked": "🚪 {user} je pokucao/la", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "pleaseEnterANumber": "Upiši broj veći od 0", + "pushNotificationsNotAvailable": "Automatsko slanje obavijesti nije dostupno", + "learnMore": "Saznaj više", + "createGroupAndInviteUsers": "Stvori grupu i pozovi korisnike", + "blockedUsers": "Blokirani korisnici", + "groupCanBeFoundViaSearch": "Grupa se može pronaći putem pretrage", + "block": "Blokiraj", + "yourGlobalUserIdIs": "Tvoj globalni korisnički ID je: ", + "commandHint_sendraw": "Pošalji neobrađeni json", + "wrongRecoveryKey": "Oprosti … čini se da ovo nije ispravan ključ za obnavljanje.", + "blockUsername": "Zanemari korisničko ime", + "groupName": "Ime grupe", + "databaseMigrationTitle": "Baza podataka je optimirana", + "searchChatsRooms": "Traži #chats, @users …", + "databaseMigrationBody": "Pričekaj. Ovo može potrajati.", + "formattedMessages": "Formatirane poruke", + "incomingMessages": "Dolazne poruke", + "passwordsDoNotMatch": "Lozinke se ne poklapaju", + "accessAndVisibility": "Pristup i vidljivost", + "calls": "Pozivi", + "customEmojisAndStickers": "Prilagođeni emojiji i naljepnice", + "customEmojisAndStickersBody": "Dodaj ili dijeli prilagođene emojije ili naljepnice koje se mogu koristiti u bilo kojem chatu.", + "accessAndVisibilityDescription": "Tko se smije pridružiti ovom chatu i kako se chat može otkriti.", + "stickers": "Naljepnice", + "discover": "Otkrij", + "formattedMessagesDescription": "Prikaži formatirani sadržaj poruke poput podebljanog teksta koristeći markdown.", + "nothingFound": "Ništa nije pronađeno...", + "select": "Odaberi", + "newPassword": "Nova lozinka", + "unbanUserDescription": "Korisnik će se ponovo moći pridružiti chatu ako pokuša.", + "publicSpaces": "Javni prostori", + "thisDevice": "Ovaj uređaj:", + "pleaseEnterYourCurrentPassword": "Upiši svoju trenutačnu lozinku", + "passwordIsWrong": "Tvoja upisana lozinka je kriva", + "initAppError": "Dogodila se greška prilikom inicijaliziranja aplikacije", + "hideRedactedMessagesBody": "Ako netko redigira poruku, ta poruka više neće biti vidljiva u chatu.", + "kickUserDescription": "Korisnik je izbačen iz chata, ali nije isključen. U javnim chatovima se korisnik može ponovo pridružiti u bilo kojem trenutku.", + "addChatOrSubSpace": "Dodaj chat ili podpodručje", + "appLockDescription": "Kada je ne koristiš, zaključaj aplikaciju s PIN kodom", + "globalChatId": "Globalni ID chata", + "hideRedactedMessages": "Sakrij redigirane poruke", + "hideInvalidOrUnknownMessageFormats": "Sakrij nevažeće ili nepoznate formate poruka", + "passwordRecoverySettings": "Postavke za obnavljanje lozinke", + "usersMustKnock": "Korisnici moraju pokucati", + "noOneCanJoin": "Nitko se ne može pridružiti", + "knock": "Pokucaj", + "knocking": "Kucanje", + "chatCanBeDiscoveredViaSearchOnServer": "Chat se može otkriti pretraživanjem servera {server}", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "searchForUsers": "Traži @users...", + "pleaseChooseAStrongPassword": "Odaberi snažnu lozinku", + "joinSpace": "Pridruži se prostoru", + "publicChatAddresses": "Adrese javnih chatova", + "createNewAddress": "Stvori novu adresu", + "verifyOtherUser": "🔐 Potvrdi drugog korisnika", + "sendTypingNotificationsDescription": "Drugi sudionici u chatu mogu vidjeti kada tipkaš novu poruku.", + "sendReadReceiptsDescription": "Drugi sudionici u raygovoru mogu vidjeti kada pročitaš poruku.", + "searchIn": "Traži u chatu „{chat}”...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "searchMore": "Traži više...", + "gallery": "Galerija", + "files": "Datoteke", + "verifyOtherDevice": "🔐 Potvrdi drugi uređaj", + "unreadChatsInApp": "{appname}: Broj nepročitanih chatova: {unread}", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "commandHint_ignore": "Zanemari navedeni matrix ID", + "blockListDescription": "Možeš blokirati korisnike koji te ometaju. Nećeš moći primati poruke ili pozivnice za sobe od korisnika koji se nalaze u tvom osobnom popisu blokiranih.", + "isReadyForKeyVerification": "{sender} je spreman/na za potvrđivanje ključa", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "banUserDescription": "Korisnik će biti isključen iz chata i moći će ponovo prisustvovati chatu kada ga se ponovo uključi.", + "sessionLostBody": "Tvoja je sesija izgubljena. Prijavi ovu grešku programerima na {url}. Poruka o grešci glasi: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "completedKeyVerification": "{sender} je završio/la potvrđivanje ključa", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "archiveRoomDescription": "Chat će se premjestiti u arhivu. Drugi korisnici će moći vidjeti da si napustio/la chat.", + "removeDevicesDescription": "Bit ćeš odjavljen/a s ovog uređaja i više nećeš moći primati poruke.", + "noUsersFoundWithQuery": "Nažalost nije pronađen nijedan korisnik s „{query}”. Provjeri točnost upisa.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "restoreSessionBody": "Aplikacija sada pokušava obnoviti tvoju sesiju iz sigurnosne kopije. Prijavi ovu grešku programerima na {url}. Poruka o grešci glasi: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "requestedKeyVerification": "{sender} je zatražio/la potvrđivanje ključa", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "roomUpgradeDescription": "Chat će se tada ponovo stvoriti s novom verzijom sobe. Svi sudionici će biti obaviješteni da se moraju prebaciti na novi chat. Više o verzijama soba možeš saznati na https://spec.matrix.org/latest/rooms/", + "noGoogleServicesWarning": "Čini se da Firebase Cloud Messaging nije dostupan na tvom uređaju. Za daljnje primanje push obavijesti, preporučujemo da instaliraš ntfy. S ntfy ili drugim pružateljem Unified Push usluge možeš primati push obavijesti na podatkovno siguran način. Ntfy možeš preuzeti s PlayStorea ili s F-Droida.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "verifyOtherDeviceDescription": "Kada potvrdiš jedan drugi uređaj, ti uređaji mogu razmjenjivati ključeve, povećavajući tvoju ukupnu sigurnost. 💪 Kada pokreneš provjeru, pojavit će se skočni prozor u aplikaciji na oba uređaja. Tamo ćeš tada vidjeti niz emojija ili brojeve koje moraš međusobno usporediti. Najbolje je imati oba uređaja pri ruci prije nego što započneš provjeru. 🤳", + "verifyOtherUserDescription": "Ako potvrdiš jednog drugog korisnika, možeš biti siguran/na da znaš kome zapravo pišeš. 💪\n\nKada pokreneš provjeru, vi i drugi korisnik vidjet ćete skočni prozor u aplikaciji. Tamo ćeš tada vidjeti niz emojija ili brojeve koje morate međusobno usporediti.\n\nNajbolji način za to je da se nađete zajedno ili započnete videopoziv. 👭", + "makeAdminDescription": "Nakon postavljanja ovog korisnika kao administratora, to možda nećeš moći poništiti jer će on tada imati iste dozvole kao i ti.", + "leaveEmptyToClearStatus": "Ostavi prazno za brisanje tvog stanja.", + "sendReadReceipts": "Šalji potvrde o čitanju", + "acceptedKeyVerification": "{sender} je prihvatio/la potvrđivanje ključa", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "canceledKeyVerification": "{sender} je prekinuo/la potvrđivanje ključa", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "{sender} je pokrenuo/la potvrđivanje ključa", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "commandHint_unignore": "Poništi zanemarivanje navedenog matrix ID-a", + "noDatabaseEncryption": "Šifriranje baze podataka nije podržano na ovoj platformi", + "thereAreCountUsersBlocked": "Broj trenutačno blokiranih korisnika: {count}.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "swipeRightToLeftToReply": "Za odgovaranje povuci prstom zdesna ulijevo", + "aboutHomeserver": "Informacije o {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "commandHint_roomupgrade": "Nadogradi ovu sobu na zadanu verziju sobe", + "noMoreChatsFound": "Nema više chatova …", + "noChatsFoundHere": "Ovdje još nisu pronađeni chatovi. Započni novi chat s nekime pomoću donjeg gumba. ⤵️", + "unread": "Nepročitano", + "space": "Prostor", + "changedTheChatDescription": "{username} je promijenio/la opis chata", + "changedTheChatName": "{username} je promijenio/la ime chata", + "checkList": "Kontrolni popis", + "countInvited": "Broj pozvanih: {count}", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "sendImages": "Pošalji {count} sliku", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "synchronizingPleaseWaitCounter": " Sinkronizacija … ({percentage} %)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "goToSpace": "Idi u prostor: {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "markAsUnread": "Označi kao nepročitano", + "userLevel": "{level} – Korisnik", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "moderatorLevel": "{level} – Moderator", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "adminLevel": "{level} – Administrator", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeGeneralChatSettings": "Promijeni opće postavke chata", + "inviteOtherUsers": "Pozovi druge korisnike u ovaj chat", + "changeTheChatPermissions": "Promijeni dozvole za chat", + "changeTheVisibilityOfChatHistory": "Promijeni vidljivost povijesti chatova", + "changeTheCanonicalRoomAlias": "Promijeni glavnu adresu javnog chata", + "sendRoomNotifications": "Pošalji @room obavijesti", + "changeTheDescriptionOfTheGroup": "Promijeni opis chata", + "chatPermissionsDescription": "Definiraj razine dozvola koja su potrebna za određene radnje u ovom chatu. Razine dozvola 0, 50 i 100 obično predstavljaju korisnike, moderatore i administratore, ali je moguća svaka gradacija.", + "updateInstalled": "🎉 Aktualizirana verzija {version} je instalirana!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "changelog": "Dnevnik promjena", + "sendCanceled": "Slanje je prekinuto", + "loginWithMatrixId": "Prijava pomoću Matrix-ID-a", + "doesNotSeemToBeAValidHomeserver": "Čini se da nije kompatibilan homeserver. Pogrešan URL?", + "calculatingFileSize": "Izračunavanje veličine datoteke …", + "oneOfYourDevicesIsNotVerified": "Jedan od tvojih uređaja nije potvrđen", + "noticeChatBackupDeviceVerification": "Napomena: Kada spojiš sve svoje uređaje na sigurnosnu kopiju chata, oni se automatski potvrđuju.", + "continueText": "Nastavi", + "blur": "Zamućenost:", + "opacity": "Neprozirnost:", + "setWallpaper": "Postavi sliku pozadine", + "manageAccount": "Upravljaj računom", + "noContactInformationProvided": "Server ne pruža nikoje valjane kontakt podatke", + "contactServerAdmin": "Kontaktiraj administratora servera", + "contactServerSecurity": "Kontaktiraj zadužene za sigurnost servera", + "supportPage": "Stranica podrške", + "serverInformation": "Podaci servera:", + "name": "Ime", + "version": "Verzija", + "website": "Web-stranica", + "compress": "Komprimiraj", + "boldText": "Podebljani tekst", + "italicText": "Kurzivni tekst", + "strikeThrough": "Precrtano", + "pleaseFillOut": "Ispuni", + "invalidUrl": "Neispravan URL", + "addLink": "Dodaj poveznicu", + "unableToJoinChat": "Neuspjelo pridruživanje chatu. Možda je druga strana već zatvorila konverzaciju.", + "previous": "Prethodni", + "otherPartyNotLoggedIn": "Druga strana trenutačno nije prijavljena i stoga ne može primati poruke!", + "appWantsToUseForLogin": "Koristi '{server}' za prijavu", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "appWantsToUseForLoginDescription": "Ovime dopuštaš aplikaciji i web-stranici da dijele podatke o tebi.", + "open": "Otvori", + "waitingForServer": "Čekanje na server …", + "newChatRequest": "📩 Novi zahtjev za chat", + "contentNotificationSettings": "Postavke obavijesti o sadržaju", + "generalNotificationSettings": "Opće postavke obavijesti", + "roomNotificationSettings": "Postavke obavijesti sobe", + "userSpecificNotificationSettings": "Koriničke postavke obavijesti", + "otherNotificationSettings": "Druge postavke obavijesti", + "notificationRuleContainsUserName": "Sadrži korisničko ime", + "notificationRuleContainsUserNameDescription": "Obavještava korisnika kada poruka sadrži njegovo korisničko ime.", + "notificationRuleMaster": "Isključi sve obavijesti", + "notificationRuleMasterDescription": "Nadjačava sva druga pravila i deaktivira sve obavijesti.", + "notificationRuleSuppressNotices": "Isključi automatizirane poruke", + "notificationRuleSuppressNoticesDescription": "Isključi obavijesti od automatiziranih klijenata poput botova.", + "notificationRuleInviteForMe": "Poziv za mene", + "notificationRuleInviteForMeDescription": "Obavještava korisnika kada je pozvan u sobu.", + "notificationRuleMemberEvent": "Događaj člana", + "notificationRuleMemberEventDescription": "Isključi obavijesti o događajima članstva.", + "notificationRuleIsUserMention": "Spominjanje korisnika", + "notificationRuleIsUserMentionDescription": "Obavještava korisnika kada je izravno spomenut u poruci.", + "notificationRuleContainsDisplayName": "Sadrži prikazano ime", + "notificationRuleContainsDisplayNameDescription": "Obavještava korisnika kada poruka sadrži njegovo prikazano ime.", + "notificationRuleIsRoomMention": "Spominjanje sobe", + "notificationRuleIsRoomMentionDescription": "Obavještava korisnika kad se spomene soba.", + "notificationRuleRoomnotif": "Obavijest o sobi", + "notificationRuleRoomnotifDescription": "Obavještava korisnika kada poruka sadrži „@room“.", + "notificationRuleTombstone": "Nadgrobni spomenik", + "notificationRuleTombstoneDescription": "Obavještava korisnika o porukama o deaktivaciji sobe.", + "notificationRuleReaction": "Reakcija", + "notificationRuleReactionDescription": "Isključi obavijesti za reakcije.", + "notificationRuleRoomServerAcl": "Kontrolni popis za pristup serveru sobe", + "notificationRuleRoomServerAclDescription": "Isključi obavijesti o kontrolnim popisima za pristup serveru sobe (ACL).", + "notificationRuleSuppressEdits": "Isključi uređivanja", + "notificationRuleSuppressEditsDescription": "Isključi obavijesti za uređene poruke.", + "notificationRuleCall": "Poziv", + "notificationRuleCallDescription": "Obavještava korisnika o pozivima.", + "notificationRuleEncryptedRoomOneToOne": "Šifrirana soba jedan-na-jedan", + "notificationRuleEncryptedRoomOneToOneDescription": "Obavještava korisnika o porukama u šifriranim sobama jedan-na-jedan.", + "notificationRuleRoomOneToOne": "Soba jedan-na-jedan", + "notificationRuleRoomOneToOneDescription": "Obavještava korisnika o porukama u sobama jedan-na-jedan.", + "notificationRuleMessage": "Poruka", + "notificationRuleMessageDescription": "Obavještava korisnika o općim porukama.", + "notificationRuleEncrypted": "Šifrirano", + "notificationRuleEncryptedDescription": "Obavještava korisnika o porukama u šifriranim sobama.", + "notificationRuleJitsi": "Jitsi", + "notificationRuleJitsiDescription": "Obavještava korisnika o događajima Jitsi widgeta.", + "notificationRuleServerAcl": "Isključi događaje kontrole pristupa servera (ACL)", + "notificationRuleServerAclDescription": "Isključi obavijesti za kontrolne popise za pristup (ACL).", + "unknownPushRule": "Nepoznato push pravilo '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "sentVoiceMessage": "🎙️ {duration} – Glasovna poruka od {sender}", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "deletePushRuleCanNotBeUndone": "Brisanje postavki obavijesti je nopovratna radnja.", + "more": "Više", + "shareKeysWith": "Dijeli ključeve s …", + "shareKeysWithDescription": "Kojim se uređajima treba vjerovati za čitanje tvojih poruka u šifriranim chatovima?", + "allDevices": "Svi uređaji", + "crossVerifiedDevicesIfEnabled": "Unakrsno potvrđeni uređaji, ako je uključeno", + "crossVerifiedDevices": "Unakrsno potvrđeni uređaji", + "verifiedDevicesOnly": "Samo potvrđeni uređaji", + "takeAPhoto": "Snimi sliku", + "recordAVideo": "Snimi video", + "optionalMessage": "(Opcionalna) poruka …", + "notSupportedOnThisDevice": "Nije podržano na ovom uređaju", + "enterNewChat": "Upiši novi chat", + "approve": "Odobri", + "youHaveKnocked": "Pokucao/la si", + "pleaseWaitUntilInvited": "Sad pričekaj, dok te netko iz sobe ne pozove.", + "commandHint_logout": "Odjavi tvoj trenutačni uređaj", + "commandHint_logoutall": "Odjavi sve aktivne uređaje", + "displayNavigationRail": "Prikaži navigacijsku traku na mobilnom uređaju", + "customReaction": "Prilagođena reakcija", + "moreEvents": "Više događaja", + "declineInvitation": "Odbij poziv", + "noMessagesYet": "Još nema poruka", + "longPressToRecordVoiceMessage": "Pritisni dugo za snimanje glasovne poruke.", + "pause": "Pauza", + "resume": "Nastavi", + "removeFromSpaceDescription": "Chat će se ukloniti iz prostora, ali će se i dalje pojaviti na tvom popisu chatova.", + "countChats": "Broj chatova: {chats}", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "spaceMemberOf": "Član {spaces} prostora", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "Član {spaces} prostora smije pokucati", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "startPoll": "Početak ankete", + "endPoll": "Kraj ankete", + "answersVisible": "Odgovori vidljivi", + "pollQuestion": "Pitanje u anketi", + "answerOption": "Opcija za odgovor", + "addAnswerOption": "Dodaj opciju za odgovor", + "allowMultipleAnswers": "Dopusti više odgovora", + "pollHasBeenEnded": "Anketa je završena", + "countVotes": "{count, plural, =1{Jedan glas} few{{count} glasa} other{{count} glasova}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "answersWillBeVisibleWhenPollHasEnded": "Odgovori će biti vidljivi nakon završetka ankete", + "replyInThread": "Odgovori u temi", + "countReplies": "{count, plural, =1{Jedan odgovor} few{{count} odgovora} other{{count} odgovora}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "thread": "Tema", + "backToMainChat": "Natrag na glavni chat", + "saveChanges": "Spremi promjene", + "createSticker": "Stvori naljepnicu ili emoji", + "useAsSticker": "Koristi kao naljepnicu", + "useAsEmoji": "Koristi kao emoji", + "stickerPackNameAlreadyExists": "Ime paketa naljepnica već postoji", + "newStickerPack": "Novi paket naljepnica", + "stickerPackName": "Ime paketa naljepnica", + "attribution": "Atribucija", + "skipChatBackup": "Preskoči sigurnosno kopiranje chata", + "skipChatBackupWarning": "Sigurno? Bez aktiviranja sigurnosne kopije chata možeš izgubiti pristup svojim porukama ako promijeniš uređaj.", + "noMoreResultsFound": "Nema više rezultata", + "chatSearchedUntil": "Chat je pretražen do {time}", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "federationBaseUrl": "Osnovni URL federacije", + "clientWellKnownInformation": "Dobro poznate informacije o klijentu:", + "baseUrl": "Osnovni URL", + "identityServer": "Server identiteta:", + "versionWithNumber": "Verzija: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "Zapisi", + "advancedConfigs": "Napredne konfiguracije", + "advancedConfigurations": "Napredne konfiguracije", + "matrixId": "Matrix ID" +} diff --git a/lib/l10n/intl_hu.arb b/lib/l10n/intl_hu.arb new file mode 100644 index 0000000..2d4e79a --- /dev/null +++ b/lib/l10n/intl_hu.arb @@ -0,0 +1,2431 @@ +{ + "@@locale": "hu", + "@@last_modified": "2021-08-14 12:41:10.016566", + "about": "Névjegy", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Elfogad", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} elfogadta a meghívást", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Fiók", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} aktiválta a végpontok közötti titkosítást", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "admin": "Adminisztrátor", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "álnév", + "@alias": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} válaszolt a hívásra", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Bárki csatlakozhat", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "archive": "Archívum", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Csatlakozhatnak-e vendégek", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Biztos benne?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "A másik fél igazolásához meg kell adnia a biztonságos tároló jelmondatát vagy a visszaállítási kulcsotát.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Elfogadja {username} hitelesítési kérelmét?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "banFromChat": "Kitiltás a csevegésből", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Kitiltva", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} kitiltva {targetName} által", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Eszköz blokkolása", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "cancel": "Mégse", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "changeDeviceName": "Eszköznév módosítása", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} módosította a csevegési profilképét", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} módosította a csevegési engedélyeket", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} módosította a megjelenített nevét erre: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} módosította a vendégek hozzáférési szabályokat", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} módosította a vendégek hozzáférési szabályait a következőre: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} módosította az előzmények láthatóságát", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} módosította az előzmények láthatóságát a következőre: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} módosított a csatlakozási szabályokat", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} módosította a csatlakozási szabályokat a következőre: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} módosította a profilképét", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} módosította a szoba álneveit", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} módosította a meghívó hivatkozást", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Jelszó módosítása", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Matrix-kiszolgáló váltás", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Stílusának módosítása", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Csoport nevének módosítása", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "A titkosítás megsérült", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Csevegés", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Csevegés részletei", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Válasszon egy erős jelszót", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "close": "Bezár", + "@close": { + "type": "String", + "placeholders": {} + }, + "compareEmojiMatch": "Kérem, hasonlítsa össze a hangulatjeleket", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Kérem, hasonlítsa össze a számokat", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Kapcsolat meghívásra került a csoportba", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Vágólapra másolva", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Másolás", + "@copy": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Nem sikerült visszafejteni az üzenetet: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count} résztvevő", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Létrehoz", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} csevegést hozott létre", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "currentlyActive": "Jelenleg aktív", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Sötét", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Ez deaktiválja a felhasználói fiókját. Ez nem vonható vissza! Biztos benne?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "delete": "Törlés", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Fiók törlése", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Üzenet törlése", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Eszközök", + "@devices": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "A megjelenítési név megváltozott", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Fájl letöltése", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Megjelenítési név szerkesztése", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "A hangulatjel már létezik!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Érvénytelen hangulatjel rövidkód!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Hangulatjel rövidkód", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Üres csevegés", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Hangulatjel csomag engedélyezése globálisan", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Többé nem fogja tudni kikapcsolni a titkosítást. Biztos benne?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encryption": "Titkosítás", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Titkosítás nem engedélyezve", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} befejezte a hívást", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "forward": "Továbbítás", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Csatlakozás óta", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Meghívás óta", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Csoport", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "A csoport nyilvános", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Csoport {displayname}-al", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "A vendégek nem engedélyezettek", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Csatlakozhatnak vendégek", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} visszavonta {targetName} meghívását", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Súgó", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Ismeretlen események elrejtése", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Figyelmen kívül hagyott felhasználók", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Hibás jelmondat vagy visszaállítási kulcs", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Ismerős meghívása", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Ismerős meghívása a(z) {groupName} csoportba", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "Meghívott", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username} meghívta {targetName} felhasználót", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Csak meghívott felhasználók", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} meghívta a FluffyChat-be.\n1. Keresse fel a fluffychat.im oldalt, és telepítse az alkalmazást \n2. Regisztráljon vagy jelentkezzen be \n3. Nyissa meg a meghívó linket: \n {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "épp gépel…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} csatlakozott a csevegéshez", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Csatlakozás a szobához", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username} kirúgta {targetName}-t", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} kirúgta és kitiltotta {targetName}-t", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Kirúgás a csevegésből", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Utoljára aktív: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Elhagy", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Elhagyta a csevegést", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Világos", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "További {count} résztvevő betöltése", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "Betöltés… Kérem, várjon.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Továbbiak betöltése…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "login": "Bejelentkezés", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Bejelentkezés a(z) {homeserver} Matrix-kiszolgálóra", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Kijelentkezés", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Megemlítés", + "@mention": { + "type": "String", + "placeholders": {} + }, + "moderator": "Moderátor", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Csevegés némítása", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Új FluffyChat üzenet", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Új hitelesítési kérelem!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "no": "Nem", + "@no": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Nem találhatóak hangulatjelek. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Úgy tűnik a Firebase Cloud Messaging nem elérhető a készülékén. Ha mégis push értesítéseket kíván kapni, javasoljuk a ntfy telepítését. A ntfy vagy más egyéb Egyesített Push szolgáltató esetében úgy kaphat értesítést, hogy adatai biztonságban maradnak. Letöltheti a ntfy-t a PlayStore-ból, vagy F-Droid-ról is.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Nincs engedély", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Nem találhatóak szobák…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "ok": "Ok", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Online kulcsmentés engedélyezve", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Hoppá, valami hiba lépett fel…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Alkalmazás megnyitása az üzenetek elolvasásához", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Kamera megnyitása", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "jelmondat vagy visszaállítási kulcs", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Jelszó", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "A jelszó módosításra került", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "pin": "Rögzítés", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Kérem, adja meg jelszavát", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Kérem, adja meg a felhasználónevét", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "privacy": "Adatvédelem", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Nyilvános szobák", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} szerkesztett egy eseményt", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "reject": "Elutasít", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} elutasította a meghívást", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Eltávolítás", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Minden más eszköz eltávolítása", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Csevegés kitiltás feloldása", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "reply": "Válasz", + "@reply": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "A szoba frissítésre került", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "send": "Küldés", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Üzenet küldése", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAudio": "Hangüzenet küldése", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Fájl küldése", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Kép küldése", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Videó küldése", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username} küldött egy fájlt", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username} hangüzenetet küldött", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username} képet küldött", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} matricát küldött", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} videót küldött", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} hívásinformációt küldött", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setStatus": "Állapot beállítása", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Beállítások", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Megosztás", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} megosztotta a pozícióját", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "skip": "Kihagy", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Forráskód", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} hívást indított", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "statusExampleMessage": "Hogy érzi magát a mai napon?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Beküldés", + "@submit": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Rendszer", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Nem egyezőek", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Egyezőek", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Újraküldés megpróbálása", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} feloldotta {targetName} kitiltását", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Eszköz blokkolás feloldása", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Ismeretlen eszköz", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Ismeretlen titkosítási algoritmus", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Ismeretlen esemény: '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Csevegés némítás feloldása", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Rögzítés megszüntetése", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} és {count} másik résztvevő gépel…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} és {username2} gépel…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} gépel…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪 {username} elhagyta a csevegést", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} felhasználó {type} eseményt küldött", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verifyStart": "Hitelesítés megkezdése", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Sikeres hitelesítés!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Másik fiók hitelesítése", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Csevegési előzmény láthatósága", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Minden résztvevő számára látható", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Bárki számára látható", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Hangüzenet", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Várakozás a partnerre, hogy elfogadja a kérést…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Várakozás a partnerre, hogy elfogadja a hangulatjelet…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Várakozás a partnerre, hogy elfogadja a számokat…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Figyelem!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Ki csatlakozhat a csoporthoz", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Írjon egy üzenetet…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Igen", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Ön", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Immáron nem vesz részt ebben a csevegésben", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Kitiltották ebből a csevegésből", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Ezekkel a címekkel vissza tudja állítani a jelszavát.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Küldtünk Önnek egy emailt", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Jelszó visszaállítás", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "Még nem adott meg semmilyen módszert a jelszava visszaállítására.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Rákattintottam a linkre", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "enterAnEmailAddress": "Adjon meg egy email címet", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Titkosított", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "edit": "Szerkeszt", + "@edit": { + "type": "String", + "placeholders": {} + }, + "directChats": "Privát Csevegések", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "repeatPassword": "Jelszó ismétlése", + "addEmail": "E-mail-cím hozzáadása", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "all": "Összes", + "@all": { + "type": "String", + "placeholders": {} + }, + "autoplayImages": "Animált matricák és hangulatjelek automatikus lejátszása", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "sendOnEnter": "Küldés Enterrel", + "cantOpenUri": "Nem sikerült a következő URI megnyitása: {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changeYourAvatar": "Profilkép módosítása", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "Hozzáadás a térhez", + "areYouSureYouWantToLogout": "Biztosan kijelentkezik?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "badServerLoginTypesException": "A Matrix-kiszolgáló a következő bejelentkezéseket támogatja:\n{serverVersions}\nDe ez az alkalmazást csak ezeket támogatja:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "blocked": "Blokkolva", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "appLock": "Alkalmazás zár", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "commandHint_myroomnick": "Megjelenített nevének hozzárendelése a szobához", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_plain": "Formázatlan szöveg küldése", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_send": "Szöveg küldése", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "contentHasBeenReported": "A tartalom jelentésre került a szerver adminisztrátorok számára", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "commandHint_myroomavatar": "Profilképe hozzárendelése a szobához (mxc URI használatával)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "copyToClipboard": "Vágólapra másolás", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Szoba álnevek szerkesztése", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Szoba-profilkép szerkesztése", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Titkosítás engedélyezése", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "fontSize": "Betűméret", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "groups": "Csoportok", + "@groups": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "A helymeghatározás visszautasításra került. Kérem engedélyezze, hogy meg tudja osztani helyzetét.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "newChat": "Új csevegés", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "scanQrCode": "QR kód beolvasása", + "oopsPushError": "Hoppá! Sajnos hiba lépett fel a push értesítések beállításakor.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "commandHint_create": "Egy üres csevegő csoport létrehozása\nA --no-encryption paraméterrel feloldhatja a titkosítást", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_invite": "Adott felhasználó meghívása ebbe a szobába", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "locationDisabledNotice": "A helymeghatározás ki van kapcsolva. Kérem, kapcsolja be, hogy meg tudja osztani helyzetét.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Csevegés biztonsági mentés", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "ignore": "Figyelmen kívül hagyás", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "next": "Következő", + "@next": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Nem elérhető a szerver", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Csak akkor kapcsolható be a titkosítás, ha a szoba nem nyilvánosan hozzáférhető.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "chats": "Csevegések", + "@chats": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Archívum ürítése", + "commandHint_ban": "Adott felhasználó kitiltása a szobából", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_clearcache": "Gyorsítótár törlése", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_discardsession": "Munkamenet elvetése", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_dm": "Közvetlen csevegés indítása\nA --no-encryption paraméterrel kikapcsolhatja a titkosítást", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_html": "HTML formázott szöveg küldése", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_join": "Csatlakozás a megadott szobához", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "A megadott felhasználó kirúgása a szobából", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "Szoba elhagyása", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandInvalid": "Érvénytelen parancs", + "@commandInvalid": { + "type": "String" + }, + "commandMissing": "{command} nem egy parancs.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "configureChat": "Csevegés konfigurálása", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "createNewSpace": "Új tér", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Alapértelmezett hozzáférési szint új felhasználóknál", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Hiba a helymeghatározáskor: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "messages": "Üzenetek", + "@messages": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} nem egy Matrix szerver, akarja használja a {server2} szervert inkább?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "notifications": "Értesítések", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} felhasználó gépel…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "obtainingLocation": "Tartózkodási hely lekérése…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "commandHint_me": "Írja le magát", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_op": "Az adott felhasználó hozzáférési szintjének megadása (alapértelmezett: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_react": "Válasz küldése reakcióként", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_unban": "Adott felhasználó kitiltásának feloldása a szobához", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "editBlockedServers": "Blokkolt szerverek szerkesztése", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "dehydrate": "Munkamenet exportálása és az eszköz törlése", + "dehydrateWarning": "Ez nem visszavonható. Bizonyosodjon meg róla, hogy biztonságos helyre menti a fájlt.", + "hydrate": "Visszaállítás mentett fájlból", + "link": "Hivatkozás", + "redactMessage": "Üzenet szerkesztése", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Kérem, írja be PIN kódját", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "cuddleContent": "{senderName} hozzád bújik", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_markasgroup": "Jelölés csoportnak", + "addAccount": "Fiók hozzáadása", + "search": "Keresés", + "@search": { + "type": "String", + "placeholders": {} + }, + "commandHint_googly": "Gülüszemek küldése", + "commandHint_cuddle": "Összebújás küldése", + "sendMessages": "Üzenetek küldése", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Üzenet jelentése", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "participant": "Résztvevő", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Elfelejtett jelszó", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Szoba verzió", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "confirmMatrixId": "Kérem, igazolja vissza Matrix ID-jét a fiók törléséhez.", + "or": "Vagy", + "@or": { + "type": "String", + "placeholders": {} + }, + "commandHint_hug": "Ölelés küldése", + "reason": "Indok", + "@reason": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Fájl mentése", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "googlyEyesContent": "{senderName} gülüszemeket küld", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "openInMaps": "Megnyitás térképen", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "security": "Biztonság", + "@security": { + "type": "String", + "placeholders": {} + }, + "notAnImage": "Nem kép fájl.", + "hugContent": "{senderName} megölel", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "jumpToLastReadMessage": "Az utoljára olvasott üzenethez ugrás", + "reportErrorDescription": "😭 Sajnos, valami félresiklott. Ha kívánja, jelezheti a bugot a fejlesztőknek.", + "removeYourAvatar": "Profilképének törlése", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "unsupportedAndroidVersion": "Nem támogatott Android verzió", + "oneClientLoggedOut": "Az egyik kliense kijelentkezett", + "setColorTheme": "Szín séma beállítása:", + "supposedMxid": "{mxid}-nek kell lennie", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "user": "Felhasználó", + "youAcceptedTheInvitation": "👍 Elfogadta a meghívást", + "youInvitedBy": "📩 {user} jóvoltából kapott meghívást", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "banUserDescription": "A felhasználó kitiltásra kerül a csevegésből, és nem fog tudni visszajönni egészen a kitiltás feloldásáig.", + "removeDevicesDescription": "Ki fog jelentkezni a készülékről, és többé nem fog tudni fogadni üzeneteket.", + "tryAgain": "Próbálja újra", + "youKickedAndBanned": "🙅 Kirúgta és kitiltotta {user}-t", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "unbanUserDescription": "A felhasználó vissza tud jönni a csevegésbe ha akar.", + "pleaseClickOnLink": "Kérem, kattintson a linkre az emailben, és folytassa a műveletet.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "youRejectedTheInvitation": "Visszautasította a meghívást", + "messagesStyle": "Üzenetek:", + "newSpaceDescription": "A terek lehetővé teszik a csevegések konszolidációját, ezáltal létrehozva publikus vagy privát közösségeket.", + "chatDescription": "Csevegés leírás", + "pleaseFollowInstructionsOnWeb": "Kérem, kövesse az instrukciókat az oldalon, és nyomjon a tovább gombra.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "encryptThisChat": "A csevegés titkosítása", + "reopenChat": "Csevegés újranyitása", + "addToBundle": "Hozzáadás fiókcsoporthoz", + "spaceIsPublic": "A tér publikus", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "countFiles": "{count} fájl", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "noKeyForThisMessage": "Akkor fordulhat elő, ha az üzenet az eszközre való bejelentkezés előtt került küldésre.\n\nAz is elképzelhető, hogy a küldő blokkolta az eszközét, vagy valami probléma lépett fel az internet kapcsolatban.\n\nMás helyen látja az üzenetet? Akkor át tudja másolni ide is! Menjen a Beállítások > Eszközök részbe, és győződjön meg róla, hogy az eszközei megerősítették egymást. Legközelebb amikor ezt a szobát megnyitja, és mind a két kliens az előtérben van, akkor szikronizálódni fognak.\n\nNem akarja elveszíteni a kulcsokat amikor kijelentkezik, vagy eszközt cserél? Győződjön meg róla, hogy bekapcsolta a chat mentést a beállításokban.", + "shareLocation": "Pozíció megosztása", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "pushNotificationsNotAvailable": "Push értesítések nem elérhetőek", + "storeInAppleKeyChain": "Tárolás az Apple KeyChain-be", + "replaceRoomWithNewerVersion": "Szoba cserélése egy újabb verzióra", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "invalidServerName": "Hibás szerver név", + "chatPermissions": "Csevegés engedélyek", + "sender": "Küldő", + "storeInAndroidKeystore": "Tárolás az Android KeyStore-ba", + "makeAdminDescription": "Miután a felhasználót aminisztrátorrá lépteti elő, nem fogja tudni visszavonni döntését, mivel azonos jogosultsági szinttel fognak rendelkezni.", + "synchronizingPleaseWait": "Szinkronizálás... Kérem, várjon.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "editBundlesForAccount": "Fiókcsoportok szerkesztése ehhez a fiókhoz", + "whyIsThisMessageEncrypted": "Miért olvashatatlan ez az üzenet?", + "setChatDescription": "Csevegés leírás beállítása", + "spaceName": "Tér név", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "importFromZipFile": "Importálás zip fájlból", + "noOtherDevicesFound": "Nem található más eszköz", + "redactedBy": "{username} által szerkesztve", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "fileIsTooBigForServer": "Nem küldhető el! A szerver csak {max} határig enged csatolmányokat.", + "verified": "Hitelesített", + "@verified": { + "type": "String", + "placeholders": {} + }, + "readUpToHere": "Olvasás idáig", + "optionalRedactReason": "(Választható) A szerkesztés oka...", + "sendAsText": "Küldés szövegként", + "@sendAsText": { + "type": "String" + }, + "archiveRoomDescription": "A csevegés bekerül az archívumba. Más felhasználók látni fogják, hogy elhagyta a csevegést.", + "exportEmotePack": "Emojicsomag exportálása zip-be", + "setAsCanonicalAlias": "Beállítás alapértelmezett álnévként", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Miért kívánja ezt bejelenteni?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "redactedByBecause": "{username} által szerkesztve, mivel: \"{reason}\"", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "youHaveWithdrawnTheInvitationFor": "Visszavonta {user} meghívását", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "pleaseChooseAPasscode": "Kérem, válasszon egy kódot", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "reportUser": "Felhasználó jelentése", + "confirmEventUnpin": "Biztosan végleg le akarja venni a kitűzött eseményt?", + "youInvitedUser": "📩 Meghívta {user}-t", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "fileHasBeenSavedAt": "A fájl mentésre került a következő elérési úton {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "redactMessageDescription": "A társalgásban összes résztvevője számára módosításra kerül az üzenet. Ez nem visszavonható.", + "invalidInput": "Hibás bevitel!", + "yourPublicKey": "A publikus kulcsa", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Túl sok egyidejű kérelem. Kérem próbálja meg később!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "doNotShowAgain": "Ne mutassa újra", + "report": "jelentés", + "status": "Állapot", + "@status": { + "type": "String", + "placeholders": {} + }, + "unverified": "Hitelesítetlen", + "youBannedUser": "Letitotta {user} felhasználót", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "hasKnocked": "🚪 {user} bekopogott", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "openLinkInBrowser": "Hivatkozás megnyitása böngészőben", + "messageInfo": "Üzenet információ", + "disableEncryptionWarning": "Biztonsági okokból nem kapcsolható ki egy korábban bekapcsolt csevegés titkosítás.", + "wrongPinEntered": "Hibás pinkódot adott meg! Próbálja újra {seconds} mp múlva...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "sendTypingNotifications": "Gépelési értesítés megjelenítése", + "inviteGroupChat": "📨 Meghívó a csoportba", + "importEmojis": "Emojik importálása", + "wasDirectChatDisplayName": "Üres csevegés (korábban {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "noChatDescriptionYet": "Még nincs csevegő szoba leírás.", + "removeFromBundle": "Eltávolítás a fiókcsoportból", + "whoCanPerformWhichAction": "Ki milyen műveletet végezhet", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "learnMore": "Tudjon meg többet", + "users": "Felhasználók", + "openGallery": "Galéria megnyitása", + "chatDescriptionHasBeenChanged": "A csevegés leírás megváltozott", + "bundleName": "Fiókcsoport neve", + "removeFromSpace": "Eltávolítás a térről", + "roomUpgradeDescription": "A csevegés újra elkészül az új szoba verzióval. Minden résztvevő értesítést kap, hogy át kell állniuk az új csevegésre. További információkért a szoba verziókról látogasson el a https://spec.matrix.org/latest/rooms/ címre", + "pleaseEnterANumber": "Adjon meg egy 0-nál nagyobb számot", + "youKicked": "👞 Kirúgta {user}-t", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "jump": "Ugrás", + "reactedWith": "{sender} a következőképp reagált: {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "sorryThatsNotPossible": "Ez sajnos nem lehetséges", + "shareInviteLink": "Meghívó link megosztása", + "commandHint_markasdm": "Szoba megjelölése mint közvetlen csevegő szoba az adott Matrix ID-nél", + "emoteKeyboardNoRecents": "A nemrég használt hangulatjelek fognak itt megjelenni...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "youJoinedTheChat": "Becsatlakozott a csevegésbe", + "markAsRead": "Olvasottként megjelölés", + "replace": "Kicserél", + "youUnbannedUser": "Levette a letiltást {user}-ről", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "newSpace": "Új tér", + "emojis": "Hangulatjelek", + "createGroup": "Csoport létrehozása", + "time": "Idő", + "custom": "Egyedi", + "noBackupWarning": "Figyelem! Ha nem kapcsolja be a csevegés mentést, elveszíti a hozzáférést a tikosított üzeneteihez. Erősen ajánlott a csevegés mentés bekapcsolása kijelentkezés előtt.", + "kickUserDescription": "A felhasználó kirúgásra került a csevegésből, de nincs kitiltva. Publikus csevegés esetén a felhasználó bármikor visszatérhet.", + "importNow": "Importálás most", + "pinMessage": "Kitűzés a szobában", + "invite": "Meghívás", + "unsupportedAndroidVersionLong": "Ehhez a funkcióhoz egy újabb Android verzió kell. Kérem ellenőrizze be van e frissítve teljesen készüléke, esetlegesen van e LineageOS támogatás hozzá.", + "storeSecurlyOnThisDevice": "Biztonságos tárolás az eszközön", + "block": "Blokkolás", + "blockedUsers": "Blokkolt felhasználók", + "blockListDescription": "Az Önt zavaró felhasználókat blokkolhatja. A blokkolt listán található felhasználóktól nem tud fogadni üzenetet vagy szoba meghívást.", + "blockUsername": "Felhasználónév ignorálása", + "yourGlobalUserIdIs": "A globális felhasználó-ID-je: ", + "noUsersFoundWithQuery": "\"{query}\"-vel nem található felhasználó. Ellenőrizze nincs e elírás.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "acceptedKeyVerification": "{sender} elfogadta a kulcs megerősítést", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "searchForUsers": "Keressen @felhasználókat...", + "joinSpace": "Csatlakozás a térre", + "publicSpaces": "Nyilvános terek", + "databaseMigrationTitle": "Adatbázis optimalizálva", + "leaveEmptyToClearStatus": "Hagyja üresen a státusz kitörléséhez.", + "pleaseEnterYourCurrentPassword": "Kérem adja meg jelenlegi jelszavát", + "newPassword": "Új jelszó", + "addChatOrSubSpace": "Csevegés vagy al-tér hozzáadása", + "pleaseChooseAStrongPassword": "Kérem válasszon egy erős jelszót", + "passwordsDoNotMatch": "A jelszavak nem egyeznek", + "passwordIsWrong": "Hibás a beírt jelszava", + "thisDevice": "Ez az eszköz:", + "sendTypingNotificationsDescription": "A csevegés többi tagja látja amikor gépel.", + "sendReadReceiptsDescription": "A csevegés többi tagja láthatja, ha olvasta az üzeneteiket.", + "sendReadReceipts": "Olvasási igazolás küldése", + "formattedMessages": "Formázott üzenetek", + "formattedMessagesDescription": "Formázott szöveg - mint például félkövér - megjelenítése \"markdown\"-al.", + "verifyOtherUser": "🔐 Más felhasználó igazolása", + "verifyOtherDevice": "🔐 Más eszköz hitelesítése", + "sessionLostBody": "A munkamenete elvesződött. Kérem jelentse ezt a fejlesztőknek a {url} címen. A hiba szövege a következő: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "restoreSessionBody": "Megpróbálkozunk visszaállítani a munkamenetét egy korábbi mentésből. Kérem jelezze a hibát a fejlesztőknek a {url} címen. A hiba szövege a következő: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "searchChatsRooms": "Keressen #csevegéseket, @felhasználókat...", + "wrongRecoveryKey": "Sajnos, úgy tűnik hibásan adta meg a visszaállítási kulcsot.", + "commandHint_sendraw": "Tiszta json küldése", + "databaseMigrationBody": "Kérem várjon. Ez igénybe vehet valamennyi időt.", + "initAppError": "Hiba lépett fel az app indítása során", + "canceledKeyVerification": "{sender} visszautasította a kulcs megerősítést", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "completedKeyVerification": "{sender} befejezte a kulcs megerősítést", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "{sender} készen áll a kulcs megerősítésre", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "requestedKeyVerification": "{sender} kulcs megerősítést kér", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "{sender} elkezdte a kulcs megerősítést", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "incomingMessages": "Bejövő üzenetek", + "nothingFound": "Nincs találat...", + "select": "Kiválaszt", + "stickers": "Matricák", + "discover": "Felfedezés", + "groupName": "Csoport név", + "createGroupAndInviteUsers": "Hozzon létre egy csoportot és hívjon meg felhasználókat", + "groupCanBeFoundViaSearch": "A csoportokat kereséssel találhatja meg", + "verifyOtherUserDescription": "Ha megerősít egy másik felhasználót, akkor teljesen biztos lehet abban kivel cseveg. 💪\n\nA megerősítési folyamat kezdetekor megjelenik egy felugró ablak mindkettőjüknél. Ekkor egy hangulatjel vagy szám sor összehasonlítási folyamat veszi kezdetét.\n\nA legpraktikusabb módja ennek, hogy találkozzanak, vagy videó hívás során beszéljék meg. 👭", + "verifyOtherDeviceDescription": "Amikor egy másik eszközt hitelesít, az eszközök kulcsokat cserélnek egymás között, ezáltal növelve az összbiztonságot. 💪 Amikor megkezdődik a folyamat, mind a két eszközön megjelenik egy felugró üzenet. Hangulatjelek és számok sorozata fog megjelenni, amit össze tud hasonlítani a két eszközön. Érdemes tehát mind a két eszközt a közelben tartani. 🤳", + "accessAndVisibility": "Hozzáférés és láthatóság", + "accessAndVisibilityDescription": "Ki számára engedélyezett a csevegéshez való csatlakozás, és hogyan találhatja azt meg.", + "calls": "Hívások", + "hideInvalidOrUnknownMessageFormats": "Érvénytelen vagy ismeretlen üzenetformátum elrejtése", + "passwordRecoverySettings": "Jelszó-helyreállítási beállítások", + "noOneCanJoin": "Senki sem csatlakozhat", + "chatCanBeDiscoveredViaSearchOnServer": "Csevegés felfedezhető a {server} szerveren történő kereséssel", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "appLockDescription": "Applikáció zárolása PIN kóddal használaton kívül", + "customEmojisAndStickers": "Egyedi hangulatjelek és matricák", + "customEmojisAndStickersBody": "Egyedi hangulatjelek és matricák hozzáadása, amelyek bármely csevegésben felhasználhatóak.", + "publicChatAddresses": "Nyilvános csevegés címek", + "createNewAddress": "Új cím létrehozása", + "noDatabaseEncryption": "Adatbázis titkosítás nem támogatott ezen a platformon", + "thereAreCountUsersBlocked": "Jelenleg {count} felhasználó van letiltva.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "unreadChatsInApp": "{appname}: {unread} olvasatlan csevegések", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "searchIn": "Keresés a \"{chat}\" csevegésben...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "files": "Fájlok", + "commandHint_unignore": "Adott matrix ID figyelembe vétele", + "globalChatId": "Átfogó csevegő ID", + "hideRedactedMessages": "Szerkesztett üzenetek elrejtése", + "hideRedactedMessagesBody": "Ha valaki szerkeszti az üzenetét, ez az üzenet nem jelenik meg a csevegés során.", + "knocking": "Bekopogás", + "usersMustKnock": "A felhasználóknak be kell kopogniuk", + "knock": "Kopogás", + "searchMore": "További keresés...", + "gallery": "Galéria", + "commandHint_ignore": "Adott matrix ID figyelmen kívül hagyása", + "unread": "Olvasatlan", + "space": "Tér", + "markAsUnread": "Olvasatlannak jelölés", + "moderatorLevel": "{level} - Moderátor", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeGeneralChatSettings": "Általános csevegés beállítások módosítása", + "updateInstalled": "🎉 {version} verziójú frissítés telepítve!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "changelog": "Változásnapló", + "sendCanceled": "Küldés visszavonva", + "noChatsFoundHere": "Itt még nem található csevegés. Kezdjen egy új csevegést valakivel a lenti gomb segítéségvel. ⤵️", + "goToSpace": "Ugrás a {space} térre", + "@goToSpace": { + "type": "String", + "space": {} + }, + "changeTheCanonicalRoomAlias": "Csevegés fő, nyilvános címének változtatása", + "chatPermissionsDescription": "Adja meg milyen erősségi szint kell egyes csevegési művelethez. A 0, 50 és 100-as szintek általában felhasználókat, moderátorokat és adminisztrátorokat jelölnek de bármilyen szintezés lehetséges.", + "userLevel": "{level} - Felhasználó", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "adminLevel": "{level} - Adminisztrátor", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "inviteOtherUsers": "Más felhasználók meghívása a csevegésbe", + "changeTheVisibilityOfChatHistory": "Csevegési előzmények láthatóságának változtatása", + "changeTheChatPermissions": "Csevegés engedélyek változtatása", + "sendRoomNotifications": "@szoba értesítés küldése", + "changeTheDescriptionOfTheGroup": "Csevegés leírásának változtatása", + "swipeRightToLeftToReply": "Húzza balra a válaszoláshoz", + "loginWithMatrixId": "Bejelentkezés Matrix-ID-vel", + "doesNotSeemToBeAValidHomeserver": "Nem tűnik kompatibilisnek a Mátrix-kiszolgálónak. Hibás a hivatkozás?", + "noMoreChatsFound": "Nem található több csevegés...", + "checkList": "Tennivalók listája", + "countInvited": "{count} meghívott", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "sendImages": "{count} kép küldése", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "aboutHomeserver": "Névjegy {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "commandHint_roomupgrade": "Szoba frissítése a megadott szoba verzióra", + "oneOfYourDevicesIsNotVerified": "Egyik készüléke nem hitelesített", + "synchronizingPleaseWaitCounter": " Szinkronizálás… ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "calculatingFileSize": "Fájl méret kalkulálása...", + "contentNotificationSettings": "Tartalom értesítési beállítások", + "generalNotificationSettings": "Átalános értesítési beállítások", + "roomNotificationSettings": "Szoba értesítési beállítások", + "notificationRuleMasterDescription": "Felülír minden más szabályt, és kikapcsolja az összes értesítést.", + "notificationRuleInviteForMe": "Meghívás Számomra", + "notificationRuleMemberEventDescription": "Némítja a tagi események értesítéseit.", + "notificationRuleIsUserMention": "Felhasználó Említése", + "notificationRuleTombstoneDescription": "Értesíti a felhasználót a szoba deaktiválás üzenetekről.", + "notificationRuleCall": "Hívás", + "notificationRuleEncryptedRoomOneToOneDescription": "Értesíti a felhasználót a titkosított négyszemközti szobákban levő üzenetekről.", + "notificationRuleRoomOneToOne": "Négyszemközti Szoba", + "notificationRuleMessage": "Üzenet", + "notificationRuleMessageDescription": "Értesíti a felhasználót az általános üzenetekről.", + "notificationRuleEncrypted": "Titkosított", + "notificationRuleEncryptedDescription": "Értesíti a felhasználót a titkosított szobákban levő üzenetekről.", + "notificationRuleServerAcl": "Némítja a Szerver ACL Eseményeket", + "unknownPushRule": "'{rule}' egy ismeretlen push szabály", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "compress": "Tömörítés", + "boldText": "Félkövér szöveg", + "italicText": "Dőlt szöveg", + "strikeThrough": "Áthúzott", + "appWantsToUseForLogin": "Használja a '{server}' szervert a bejelentkezéshez", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "otherPartyNotLoggedIn": "A másik fél jelenleg nincs bejelentkezve, emiatt nem fogadhat üzeneteket!", + "appWantsToUseForLoginDescription": "Ezennel engedélyezi az applikáció és weboldal számára, hogy információkat gyűjtsön Önről.", + "waitingForServer": "Várakozás a szerverre...", + "open": "Megnyitás", + "notificationRuleSuppressNotices": "Minden automata üzenetet némít", + "notificationRuleSuppressNoticesDescription": "Némít minden automata klienstől érkező értesítést mint például botok.", + "newChatRequest": "📩 Új csevegés kérelem", + "notificationRuleContainsUserNameDescription": "Értesíti a felhasználót, ha az üzenet tartalmazza a nevét.", + "notificationRuleInviteForMeDescription": "Értesíti a felhasználót szoba meghívás esetén.", + "notificationRuleMemberEvent": "Tagi Esemény", + "notificationRuleIsUserMentionDescription": "Értesíti a felhasználót, ha közvetlenül említésre kerül az üzenetben.", + "notificationRuleIsRoomMention": "Szoba Említés", + "notificationRuleIsRoomMentionDescription": "Értesíti a felhasználót szoba említéskor.", + "notificationRuleRoomnotif": "Szoba Értesítés", + "notificationRuleRoomnotifDescription": "Értesíti a felhasználót ha az üzenet tartalmazza a '@szoba' említést.", + "crossVerifiedDevicesIfEnabled": "Kereszt-hitelesített eszközök ha be van kapcsolva", + "crossVerifiedDevices": "Kereszt-hitelesített eszközök", + "serverInformation": "Szerver információ:", + "unableToJoinChat": "Nem csatlakozhat a csevegéshez. Elképzelhető, hogy a másik fél már kilépett.", + "userSpecificNotificationSettings": "Felhasználó specifikus értesítés beállítások", + "otherNotificationSettings": "Egyéb értesítés beállítások", + "notificationRuleContainsUserName": "Felhasználó nevet tartalmaz", + "notificationRuleContainsDisplayName": "Megjelenített Nevet Tartalmaz", + "notificationRuleReaction": "Reakció", + "notificationRuleReactionDescription": "Némítja a reakciók értesítéseit.", + "notificationRuleRoomServerAcl": "Szoba Szerver ACL", + "notificationRuleRoomServerAclDescription": "Némítja a szoba szerver hozzáférési kezelő lista (ACL) értesítéseket.", + "notificationRuleSuppressEdits": "Szerkesztések némítása", + "notificationRuleSuppressEditsDescription": "Némítja a szerkesztett üzenetek értesítéseit.", + "notificationRuleEncryptedRoomOneToOne": "Titkosított Négyszemközti Szoba", + "notificationRuleRoomOneToOneDescription": "Értesíti a felhasználót a négyszemközti szobában levő üzenetekről.", + "notificationRuleJitsi": "Jitsi", + "notificationRuleJitsiDescription": "Értesíti a felhasználót a Jitsi widget eseményekről.", + "sentVoiceMessage": "🎙️ {duration} - {sender}", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "deletePushRuleCanNotBeUndone": "Ha törli ezt az értesítési beállítást, később nem vonható vissza.", + "manageAccount": "Fiók kezelése", + "enterNewChat": "Belépés új csevegésbe", + "blur": "Homályosít:", + "name": "Név", + "continueText": "Folytatás", + "opacity": "Átlátszóság:", + "addLink": "Hivatkozás hozzáadása", + "invalidUrl": "Helytelen hivatkozás", + "setWallpaper": "Háttér beállítás", + "noContactInformationProvided": "A szervertől nem érkezett vissza kapcsolati információ", + "contactServerSecurity": "Kapcsolatfelvétel a szerver biztonsággal", + "contactServerAdmin": "Kapcsolatfelvétel a szerver adminnal", + "supportPage": "Támogatási oldal", + "version": "Verzió", + "verifiedDevicesOnly": "Csak hitelesített eszközök", + "website": "Weboldal", + "pleaseFillOut": "Kérem töltse ki", + "previous": "Előző", + "optionalMessage": "(Választható) üzenet...", + "takeAPhoto": "Készítsen egy fotót", + "recordAVideo": "Vegyen fel egy videót", + "notSupportedOnThisDevice": "Nem támogatott ezen az eszközön", + "noticeChatBackupDeviceVerification": "Megjegyzés: Minden eszköze amit a csevegés mentéshez kapcsol, automatikusan hitelesítésre kerül.", + "notificationRuleMaster": "Minden értesítés némítása", + "notificationRuleContainsDisplayNameDescription": "Értesíti a felhasználót, ha közvetlenül említésre kerül a megjelenített neve az üzenetben.", + "notificationRuleTombstone": "Sírkő", + "shareKeysWithDescription": "Mely eszközök tekinthetőek megbízhatónak, hogy olvashassák a titkosított csevegéseket is?", + "allDevices": "Minden eszköz", + "notificationRuleServerAclDescription": "Némítja a Szerver ACL események értesítéseit.", + "notificationRuleCallDescription": "Értesíti a felhasználót a hívásokról.", + "more": "Több", + "shareKeysWith": "Kulcsok megosztása...", + "approve": "Jóváhagy", + "youHaveKnocked": "Kopogott", + "pleaseWaitUntilInvited": "Kérem várjon, amíg valaki a szobából behívja Önt.", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + } +} \ No newline at end of file diff --git a/lib/l10n/intl_ia.arb b/lib/l10n/intl_ia.arb new file mode 100644 index 0000000..39a0392 --- /dev/null +++ b/lib/l10n/intl_ia.arb @@ -0,0 +1,1992 @@ +{ + "repeatPassword": "Repeter le contrasigno", + "notAnImage": "Non es un file de imagine.", + "remove": "Remover", + "@remove": { + "type": "String", + "placeholders": {} + }, + "importEmojis": "Importar emojis", + "importFromZipFile": "Importar ab un file .zip", + "importNow": "Importar ora", + "exportEmotePack": "Exportar pacchetto de emotes como un .zip", + "replace": "Reimplaciar", + "about": "A proposito de", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Acceptar", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} acceptava tu invitation", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Conto", + "@account": { + "type": "String", + "placeholders": {} + }, + "addEmail": "Adder email", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "supposedMxid": "Isto deberea esser {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "@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": {} + }, + "@admin": { + "type": "String", + "placeholders": {} + }, + "@directChats": { + "type": "String", + "placeholders": {} + }, + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "@close": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "@warning": { + "type": "String", + "placeholders": {} + }, + "@password": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@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" + } + } + }, + "@pickImage": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@reason": { + "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" + } + } + }, + "@help": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@delete": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "@ok": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@notifications": { + "type": "String", + "placeholders": {} + }, + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "@emoteSettings": { + "type": "String", + "placeholders": {} + }, + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "@mention": { + "type": "String", + "placeholders": {} + }, + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "@withTheseAddressesRecoveryDescription": { + "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": {} + }, + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@allChats": { + "type": "String", + "placeholders": {} + }, + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "@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" + }, + "@cancel": { + "type": "String", + "placeholders": {} + }, + "@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" + }, + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@search": { + "type": "String", + "placeholders": {} + }, + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@logout": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@messages": { + "type": "String", + "placeholders": {} + }, + "@login": { + "type": "String", + "placeholders": {} + }, + "@waitingPartnerNumbers": { + "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": {} + }, + "@settings": { + "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": {} + }, + "@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" + } + } + }, + "@privacy": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + } +} \ No newline at end of file diff --git a/lib/l10n/intl_id.arb b/lib/l10n/intl_id.arb new file mode 100644 index 0000000..c228cd8 --- /dev/null +++ b/lib/l10n/intl_id.arb @@ -0,0 +1,2806 @@ +{ + "@@last_modified": "2021-08-14 12:41:10.002360", + "setAsCanonicalAlias": "Atur sebagai alias utama", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Versi ruangan", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "chats": "Obrolan", + "@chats": { + "type": "String", + "placeholders": {} + }, + "blockDevice": "Blokir Perangkat", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Apakah kamu yakin ingin keluar?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Apakah kamu yakin?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "archive": "Arsip", + "@archive": { + "type": "String", + "placeholders": {} + }, + "anyoneCanJoin": "Siapa saja dapat bergabung", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} menjawab panggilan", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "alias": "alias", + "@alias": { + "type": "String", + "placeholders": {} + }, + "admin": "Admin", + "@admin": { + "type": "String", + "placeholders": {} + }, + "account": "Akun", + "@account": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} menerima undangannya", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "accept": "Terima", + "@accept": { + "type": "String", + "placeholders": {} + }, + "about": "Tentang", + "@about": { + "type": "String", + "placeholders": {} + }, + "isTyping": "sedang mengetik", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} mengundang kamu ke FluffyChat. \n1. Kunjungi fluffychat.im dan instal aplikasi\n2. Daftar atau masuk \n3. Buka tautan undangan: \n {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Pengguna yang diundang saja", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username} mengundang {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invited": "Diundang", + "@invited": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Undang kontak ke {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "inviteContact": "Undang kontak", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Frasa sandi atau kunci pemulihan yang salah", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Saya sudah klik tautannya", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Pengguna yang diabaikan", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Sembunyikan peristiwa tidak dikenal", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "help": "Bantuan", + "@help": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} telah mencabut undangan untuk {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "guestsCanJoin": "Tamu bisa bergabung", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "guestsAreForbidden": "Tamu dilarang", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Grup dengan {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "groupIsPublic": "Grup bersifat publik", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "group": "Grup", + "@group": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Dari undangan", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Dari bergabung", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "forward": "Teruskan", + "@forward": { + "type": "String", + "placeholders": {} + }, + "enterAnEmailAddress": "Masukkan alamat email", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} mengakhiri panggilan", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "encryption": "Enkripsi", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Terenkripsi", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Kamu tidak akan bisa menonaktifkan enkripsi. Apakah kamu yakin?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Aktifkan paket emote secara global", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Chat kosong", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Shortcode emote", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Shortcode emote tidak valid!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Emote sudah ada!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Edit alias ruangan", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Edit nama tampilan", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "edit": "Sunting", + "@edit": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Unduh berkas", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Nama tampilan telah diubah", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "directChats": "Chat Langsung", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "devices": "Perangkat", + "@devices": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Hapus pesan", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Hapus akun", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "delete": "Hapus", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deactivateAccountWarning": "Ini akan menonaktifkan akun penggunamu. Ini tidak bisa dibatalkan! Apakah kamu yakin?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{timeOfDay}, {date}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "currentlyActive": "Aktif", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} membuat obrolan ini", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "create": "Buat", + "@create": { + "type": "String", + "placeholders": {} + }, + "countParticipants": "{count, plural, =1{1 peserta} other{{count} peserta}}", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "couldNotDecryptMessage": "Tidak dapat mendekripsikan pesan: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "copyToClipboard": "Salin ke papan klip", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Salin", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Disalin ke papan klip", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Cadangan obrolan", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chat": "Obrolan", + "@chat": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "Enkripsi telah rusak", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Ubah avatarmu", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Ubah nama grup", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Ubah homeserver", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changePassword": "Ubah kata sandi", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changedTheRoomInvitationLink": "{username} mengubah tautan undangan", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} mengubah alias ruangan", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} mengubah avatarnya", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} mengubah aturan bergabung ke: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} mengubah aturan bergabung", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} mengubah visibilitas sejarah ke: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} mengubah visibilitas sejarah", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} mengubah aturan akses tamu ke: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} mengubah aturan akses tamu", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} mengubah nama tampilan ke: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} mengubah izin obrolan", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatAvatar": "{username} mengubah avatar obrolan", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changeDeviceName": "Ganti nama perangkat", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "Tidak bisa membuka URI ini {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "cancel": "Batal", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "blocked": "Diblokir", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} mencekal {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "banned": "Dicekal", + "@banned": { + "type": "String", + "placeholders": {} + }, + "banFromChat": "Cekal dari obrolan", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "sendOnEnter": "Kirim dengan enter", + "badServerLoginTypesException": "Homeserver ini mendukung tipe masuk ini:\n{serverVersions}\nTetapi aplikasi ini mendukung:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "autoplayImages": "Mainkan stiker beranimasi dan emote secara otomatis", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "askVerificationRequest": "Terima permintaan verifikasi dari {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "askSSSSSign": "Untuk dapat menandatangani orang lain, silakan masukkan frasa sandi atau kunci pemulihan penyimpanan aman kamu.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Apakah pengguna tamu diizinkan untuk bergabung?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "Kunci aplikasi", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "all": "Semua", + "@all": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "Tambah ke space", + "addEmail": "Tambah email", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Enkripsi tidak diaktifkan", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Kontak telah diundang ke grup", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Bandingkan angka", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "compareEmojiMatch": "Bandingkan emoji", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "close": "Tutup", + "@close": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Bersihkan arsip", + "chooseAStrongPassword": "Pilih kata sandi yang kuat", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Detail obrolan", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} mengaktifkan enkripsi ujung ke ujung", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "loadingPleaseWait": "Memuat… Mohon tunggu.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Muat {count} anggota", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "leftTheChat": "Keluar dari obrolan", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "leave": "Tinggalkan", + "@leave": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Terakhir aktif: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "kickFromChat": "Keluarkan dari obrolan", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "kickedAndBanned": "🙅 {username} mengeluarkan dan mencekal {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kicked": "👞 {username} mengeluarkan {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "joinRoom": "Bergabung dengan ruangan", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} telah bergabung dengan obrolan", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "loadMore": "Muat lebih banyak…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Tidak ada izin", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "Kamu belum menambahkan cara untuk memulihkan kata sandimu.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Perpesanan Awan Firebase sepertinya tidak tersedia di perangkatmu. Untuk dapat menerima notifikasi dorongan, kami menyarankan memasang ntfy. Dengan ntfy atau penyedia UnifiedPush lainnya, kamu bisa menerima notifikasi dorongan dengan cara yang aman. Kamu bisa mengunduh ntfy dari Play Store atau F-Droid.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Kamu hanya bisa mengaktifkan enkripsi setelah ruangan tidak lagi dapat diakses secara publik.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Tidak ada emote yang ditemukan. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "next": "Lanjut", + "@next": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Permintaan verifikasi baru!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Pesan baru di FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Chat baru", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Bisukan obrolan", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "moderator": "Moderator", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "mention": "Sebutkan", + "@mention": { + "type": "String", + "placeholders": {} + }, + "logout": "Keluar", + "@logout": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Masuk ke {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "login": "Masuk", + "@login": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Tidak ada ruangan yang ditemukan…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "verified": "Terverifikasi", + "@verified": { + "type": "String", + "placeholders": {} + }, + "userLeftTheChat": "🚪 {username} keluar dari obrolan", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "removeYourAvatar": "Hapus avatarmu", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Mohon ikuti petunjuk di situs web dan tekan lanjut.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Ups! Sayangnya, terjadi kesalahan saat mengatur pemberitahuan push.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Cadangan Kunci Online dinyalakan", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "ok": "Ok", + "@ok": { + "type": "String", + "placeholders": {} + }, + "notifications": "Notifikasi", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Kunci publikmu", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Kamu telah dicekal dari obrolan ini", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Kamu tidak berpartisipasi lagi di obrolan ini", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "you": "Kamu", + "@you": { + "type": "String", + "placeholders": {} + }, + "yes": "Ya", + "@yes": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Tulis pesan…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Dengan alamat ini kamu bisa memulihkan kata sandimu.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Kenapa kamu ingin melaporkannya?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Siapa yang dapat bergabung ke grup ini", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Siapa yang dapat melakukan tindakan apa", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Kami mengirim kamu sebuah email", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "warning": "Peringatan!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Menunggu pengguna untuk menerima angka…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Menunggu pengguna untuk menerima emoji…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Menunggu pengguna untuk menerima permintaan…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Pesan suara", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Terlihat untuk semua orang", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Terlihat untuk semua anggota", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Visibilitas sejarah obrolan", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Memverifikasi akun lain", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Kamu berhasil memverifikasi!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Mulai Verifikasi", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "userSentUnknownEvent": "{username} mengirim peristiwa {type}", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "userIsTyping": "{username} sedang mengetik…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userAndUserAreTyping": "{username} dan {username2} sedang mengetik…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userAndOthersAreTyping": "{username} dan {count} lainnya sedang mengetik…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "unpin": "Lepaskan pin", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "unmuteChat": "Bunyikan obrolan", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Peristiwa tidak dikenal '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unknownEncryptionAlgorithm": "Algoritma enkripsi tidak dikenal", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Perangkat tidak dikenal", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unblockDevice": "Hilangkan Pemblokiran Perangkat", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} menghilangkan cekalan {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "tryToSendAgain": "Coba kirim lagi", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Terlalu banyak permintaan. Coba lagi nanti!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Cocok", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Tidak Cocok", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Sistem", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Menyinkronkan... Mohon tunggu.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "submit": "Kirim", + "@submit": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Apa kabar hari ini?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "status": "Status", + "@status": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} memulai panggilan", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "spaceName": "Nama space", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "Space publik", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Kode sumber", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "skip": "Lewat", + "@skip": { + "type": "String", + "placeholders": {} + }, + "shareLocation": "Bagikan lokasi", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} membagikan lokasinya", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "share": "Bagikan", + "@share": { + "type": "String", + "placeholders": {} + }, + "settings": "Pengaturan", + "@settings": { + "type": "String", + "placeholders": {} + }, + "setStatus": "Tetapkan status", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "sentCallInformations": "{senderName} mengirim informasi panggilan", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} mengirim video", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} mengirim stiker", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username} mengirim gambar", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username} mengirim suara", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAFile": "📁 {username} mengirim file", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "security": "Keamanan", + "@security": { + "type": "String", + "placeholders": {} + }, + "search": "Cari", + "@search": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Laporkan pesan", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "reply": "Balas", + "@reply": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Menggantikan ruangan dengan versi baru", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Hilangkan cekalan dari obrolan", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "remove": "Hapus", + "@remove": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} menolak undangannya", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "reject": "Tolak", + "@reject": { + "type": "String", + "placeholders": {} + }, + "redactMessage": "Hapus pesan", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} menghapus sebuah peristiwa", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "pleaseEnterYourPassword": "Mohon masukkan kata sandimu", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Mohon klik tautan di email dan lanjut.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Mohon pilih kode sandi", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pin": "Pin", + "@pin": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Pemulihan kata sandi", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Kata sandi telah diubah", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Lupa kata sandi", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "password": "Kata sandi", + "@password": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "frasa sandi atau kunci pemulihan", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "participant": "Peserta", + "@participant": { + "type": "String", + "placeholders": {} + }, + "or": "Atau", + "@or": { + "type": "String", + "placeholders": {} + }, + "openInMaps": "Buka di peta", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "bundleName": "Nama bundel", + "removeFromBundle": "Hilangkan dari bundel ini", + "addToBundle": "Tambah ke bundel", + "editBundlesForAccount": "Edit bundel untuk akun ini", + "addAccount": "Tambah akun", + "oneClientLoggedOut": "Salah satu klienmu telah keluar", + "openCamera": "Buka kamera", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Buka aplikasi untuk membaca pesan", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Ups, ada yang salah…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "obtainingLocation": "Mendapatkan lokasi…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} pengguna sedang mengetik…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "scanQrCode": "Pindai kode QR", + "noMatrixServer": "{server1} itu bukan server Matrix, gunakan {server2} saja?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "no": "Tidak", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Tidak ada koneksi ke server", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "messages": "Pesan", + "@messages": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "Layanan lokasi dinonaktifkan. Mohon diaktifkan untuk bisa membagikan lokasimu.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "Izin lokasi ditolak. Mohon memberikan izin untuk bisa membagikan lokasimu.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Terang", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "ignore": "Abaikan", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "groups": "Grup", + "@groups": { + "type": "String", + "placeholders": {} + }, + "fontSize": "Ukuran font", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Gagal mendapat lokasi: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "enableEncryption": "Aktifkan enkripsi", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Edit avatar ruangan", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Edit server yang diblokir", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Level izin bawaan untuk pengguna baru", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Gelap", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "createNewSpace": "Space baru", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "Konten telah dilaporkan ke admin server", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Konfigurasi obrolan", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "commandMissing": "{command} bukan sebuah perintah.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "commandInvalid": "Perintah tidak valid", + "@commandInvalid": { + "type": "String" + }, + "commandHint_unban": "Hilangkan cekalan untuk pengguna yang dicantumkan dari ruangan ini", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandHint_send": "Kirim teks", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_react": "Kirim balasan sebagai reaksi", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_plain": "Kirim teks yang tidak diformat", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_op": "Tetapkan tingkat kekuatan pengguna yang dicantum (default: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_myroomnick": "Tetapkan nama tampilanmu untuk ruangan ini", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_myroomavatar": "Tetapkan gambarmu untuk ruangan ini (oleh uri-mxc)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_me": "Jelaskan dirimu", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_leave": "Tinggalkan ruangan ini", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_kick": "Keluarkan pengguna yang dicantum dari ruangan ini", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_join": "Gabung ke ruangan yang dicantum", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_invite": "Undang pengguna yang dicantum ke ruangan ini", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_html": "Kirim teks yang diformat dengan HTML", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_ban": "Cekal pengguna yang dicantumkan dari ruangan ini", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "changeTheme": "Ubah tema", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Kirim video", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Kirim pesan", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Kirim gambar", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Kirim file", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendAudio": "Kirim suara", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Kirim sebagai teks", + "@sendAsText": { + "type": "String" + }, + "sendAMessage": "Kirim pesan", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "send": "Kirim", + "@send": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Simpan file", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Ruangan telah ditingkatkan", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Hapus semua perangkat lain", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "reason": "Alasan", + "@reason": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Ruangan Publik", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "privacy": "Privasi", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Mohon masukkan nama penggunamu", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Masukkan pin", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "link": "Tautan", + "unverified": "Tidak terverifikasi", + "repeatPassword": "Ulangi kata sandi", + "messageInfo": "Informasi pesan", + "time": "Waktu", + "sender": "Pengirim", + "openGallery": "Buka galeri", + "removeFromSpace": "Hilangkan dari space", + "commandHint_clearcache": "Bersihkan tembolok", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_discardsession": "Buang sesi", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_dm": "Mulai sebuah obrolan langsung\nGunakan --no-encryption untuk menonaktifkan enkripsi", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_create": "Buat sebuah grup obrolan kosong\nGunakan --no-encryption untuk menonaktifkan enkripsi", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "markAsRead": "Tandai sebagai dibaca", + "reportUser": "Laporkan pengguna", + "reactedWith": "{sender} bereaksi dengan {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "emojis": "Emoji", + "pinMessage": "Sematkan ke ruangan", + "confirmEventUnpin": "Apakah kamu yakin untuk melepaskan pin peristiwa ini secara permanen?", + "unsupportedAndroidVersionLong": "Fitur ini memerlukan versi Android yang baru. Mohon periksa untuk pembaruan atau dukungan LineageOS.", + "unsupportedAndroidVersion": "Versi Android tidak didukung", + "youInvitedBy": "📩 Kamu telah diundang oleh {user}", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 Kamu mengundang {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKicked": "👞 Kamu mengeluarkan {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKickedAndBanned": "🙅 Kamu mengeluarkan dan mencekal {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youRejectedTheInvitation": "Kamu menolak undangannya", + "youJoinedTheChat": "Kamu bergabung ke obrolan", + "youAcceptedTheInvitation": "👍 Kamu menerima undangannya", + "youBannedUser": "Kamu mencekal {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youHaveWithdrawnTheInvitationFor": "Kamu telah membatalkan undangan untuk {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "Kamu membatalkan cekalan {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "users": "Pengguna", + "storeInAppleKeyChain": "Simpan di Apple KeyChain", + "storeInAndroidKeystore": "Simpan di Android KeyStore", + "storeSecurlyOnThisDevice": "Simpan secara aman di perangkat ini", + "countFiles": "{count} file", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "hydrate": "Pulihkan dari file cadangan", + "dehydrate": "Ekspor sesi dan bersihkan perangkat", + "dehydrateWarning": "Tindakan ini tidak dapat diurungkan. Pastikan kamu telah menyimpan file cadangan dengan aman.", + "custom": "Kustom", + "user": "Pengguna", + "confirmMatrixId": "Mohon konfirmasi ID Matrix Anda untuk menghapus akun Anda.", + "supposedMxid": "Ini seharusnya {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "commandHint_markasdm": "Tandai sebagai ruangan pesan langsung untuk ID Matrix yang ditentukan", + "commandHint_markasgroup": "Tandai sebagai grup", + "noKeyForThisMessage": "Hal ini bisa terjadi jika pesan dikirim sebelum kamu masuk ke akunmu di perangkat ini.\n\nMungkin juga pengirim telah memblokir perangkatmu atau ada yang tidak beres dengan koneksi internet.\n\nApakah kamu bisa membaca pesan pada sesi lain? Maka kamu bisa mentransfer pesan dari sesi tersebut! Buka Pengaturan > Perangkat dan pastikan bahwa perangkat Anda telah ditandatangani secara silang. Ketika kamu membuka ruangan di lain waktu dan kedua sesi berada di latar depan, kunci akan ditransmisikan secara otomatis.\n\nApakah kamu tidak mau kehilangan kunci saat keluar atau berpindah perangkat? Pastikan bahwa kamu telah mengaktifkan cadangan obrolan dalam pengaturan.", + "whyIsThisMessageEncrypted": "Mengapa pesan ini tidak bisa dibaca?", + "newSpace": "Space baru", + "doNotShowAgain": "Jangan tampilkan lagi", + "hugContent": "{senderName} memeluk kamu", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "googlyEyesContent": "{senderName} mengirim mata googly", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "cuddleContent": "{senderName} berpelukan dengan kamu", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_googly": "Kirim mata googly", + "commandHint_hug": "Kirim pelukan", + "commandHint_cuddle": "Kirim berpelukan", + "wasDirectChatDisplayName": "Obrolan kosong (sebelumnya {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "newSpaceDescription": "Fitur space bisa membantu untuk memisahkan obrolanmu dan membuat komunitas pribadi atau publik.", + "sorryThatsNotPossible": "Maaf... itu tidak mungkin", + "encryptThisChat": "Enkripsi obrolan ini", + "disableEncryptionWarning": "Demi keamanan kamu tidak bisa menonaktifkan enkripsi dalam sebuah obrolan di mana sebelumbya sudah diaktifkan.", + "reopenChat": "Buka obrolan lagi", + "noBackupWarning": "Peringatan! Tanpa mengaktifkan cadangan percakapan, kamu akan kehilangan akses ke pesan terenkripsimu. Disarankan untuk mengaktifkan cadangan percakapan terlebih dahulu sebelum keluar dari akun.", + "noOtherDevicesFound": "Tidak ada perangkat lain yang ditemukan", + "fileIsTooBigForServer": "Tidak dapat mengirim! Server hanya mendukung lampiran sampai dengan {max}.", + "fileHasBeenSavedAt": "Berkas telah disimpan di {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "jumpToLastReadMessage": "Pergi ke pesan terakhir dibaca", + "readUpToHere": "Baca sampai sini", + "jump": "Lompat", + "openLinkInBrowser": "Buka tautan dalam peramban", + "report": "laporkan", + "reportErrorDescription": "😭 Aduh. Ada yang salah. Jika kamu mau, kamu bisa melaporkan kutu ini kepada para pengembang.", + "notAnImage": "Bukan berkas gambar.", + "importNow": "Impor sekarang", + "importFromZipFile": "Impor dari berkas .zip", + "exportEmotePack": "Ekspor paket Emote sebagai .zip", + "replace": "Ganti", + "importEmojis": "Impor Emoji", + "sendTypingNotifications": "Kirim notifikasi pengetikan", + "createGroup": "Buat grup", + "tryAgain": "Coba ulang", + "messagesStyle": "Pesan:", + "shareInviteLink": "Bagikan tautan undangan", + "invalidServerName": "Nama server tidak valid", + "chatPermissions": "Perizinan obrolan", + "chatDescription": "Deskripsi obrolan", + "chatDescriptionHasBeenChanged": "Deskripsi obrolan diubah", + "noChatDescriptionYet": "Deskripsi obrolan belum dibuat.", + "redactMessageDescription": "Pesan akan dihilangkan untuk semua anggota dalam percakapan ini. Ini tidak dapat diurungkan.", + "optionalRedactReason": "(Opsional) Alasan menghilangkan pesan ini...", + "redactedBy": "Dihilangkan oleh {username}", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactedByBecause": "Dihilangkan oleh {username} karena: \"{reason}\"", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "setChatDescription": "Lihat deskripsi obrolan", + "setColorTheme": "Atur tema warna:", + "invite": "Undang", + "inviteGroupChat": "📨 Undangan percakapan grup", + "emoteKeyboardNoRecents": "Emote yang telah digunakan akan muncul di sini...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "invalidInput": "Masukan tidak valid!", + "wrongPinEntered": "PIN yang dimasukkan salah! Coba lagi dalam {seconds} detik...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "banUserDescription": "Pengguna akan dicekal dari percakapan dan tidak akan dapat memasuki percakapan lagi sampai dibatalkan cekalannya.", + "removeDevicesDescription": "Kamu akan dikeluarkan dari perangkat ini dan tidak akan dapat menerima pesan lagi.", + "unbanUserDescription": "Pengguna akan dapat memasuki percakapannya lagi jika dicoba.", + "pushNotificationsNotAvailable": "Notifikasi dorongan tidak tersedia", + "makeAdminDescription": "Setelah kamu membuat pengguna ini admin, kamu tidak akan dapat mengurungkan ini karena penggunanya akan memiliki perizinan yang sama seperti kamu.", + "archiveRoomDescription": "Percakapan akan dipindahkan ke arsip. Pengguna lain akan melihat bahwa kamu telah meninggalkan percakapan.", + "hasKnocked": "🚪 {user} telah dikeluarkan", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "learnMore": "Pelajari lebih lanjut", + "roomUpgradeDescription": "Percakapannya akan dibuat ulang dengan versi ruangan yang baru. Semua anggota akan diberi tahu bahwa mereka harus ganti ke percakapan yang baru. Kamu bisa mempelajari lebih lanjut tentang versi ruangan di https://spec.matrix.org/latest/rooms/", + "pleaseEnterANumber": "Silakan masukkan angka lebih dari 0", + "kickUserDescription": "Pengguna ini dikeluarkan dari percakapan tetapi tidak dicekal. Dalam percakapan publik, penggunanya dapat bergabung ulang kapan pun.", + "groupCanBeFoundViaSearch": "Grup dapat dicari melalui pencarian", + "groupName": "Nama grup", + "wrongRecoveryKey": "Maaf... ini sepertinya bukan kunci pemulihan yang benar.", + "addChatOrSubSpace": "Tambahkan percakapan atau subspace", + "pleaseChooseAStrongPassword": "Silakan pilih kata sandi yang kuat", + "joinSpace": "Bergabung ke space", + "acceptedKeyVerification": "{sender} menerima verifikasi kunci", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "canceledKeyVerification": "{sender} membatalkan verifikasi kunci", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "{sender} siap untuk verifikasi kunci", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "verifyOtherDevice": "🔐 Verifikasi perangkat lain", + "requestedKeyVerification": "{sender} meminta verifikasi kunci", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "{sender} memulai verifikasi kunci", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "formattedMessagesDescription": "Tampilkan konten pesan kaya seperti teks tebal menggunakan Markdown.", + "noUsersFoundWithQuery": "Sayangnya tidak ada pengguna yang dapat ditemukan dengan \"{query}\". Silakan periksa jika ada tipo.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "passwordIsWrong": "Kata sandi yang kamu masukkan salah", + "searchChatsRooms": "Cari #percakapan, @pengguna...", + "createGroupAndInviteUsers": "Buat sebuah grup dan undang pengguna", + "pleaseEnterYourCurrentPassword": "Silakan masukkan kata sandimu saat ini", + "passwordsDoNotMatch": "Kata sandi tidak cocok", + "sendTypingNotificationsDescription": "Anggota lain dalam percakapan dapat melihat ketika kamu sedang mengetik sebuah pesan baru.", + "sendReadReceipts": "Kirim laporan dibaca", + "formattedMessages": "Pesan yang diformat", + "verifyOtherUser": "🔐 Verifikasi pengguna lain", + "sessionLostBody": "Sesimu hilang. Silakan laporkan kesalahan ini kepada pengembang di {url}. Pesan kesalahannya adalah: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "restoreSessionBody": "Aplikasi sekarang mencoba memulihkan sesimu dari cadangan. Silakan laporkan kesalahan ini kepada pengembang di {url}. Pesan kesalahannya adalah: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "publicSpaces": "Space publik", + "commandHint_sendraw": "Kirim JSON mentah", + "sendReadReceiptsDescription": "Anggota lain dalam percakapan dapat melihat ketika kamu membaca sebuah pesan.", + "block": "Blokir", + "blockedUsers": "Pengguna yang terblokir", + "blockListDescription": "Kamu bisa memblokir pengguna yang sedang menganggumu. Kamu tidak akan mendapatkan pesan atau undangan ruangan dari pengguna dalam daftar blokiran pribadimu.", + "blockUsername": "Abaikan nama pengguna", + "stickers": "Stiker", + "discover": "Jelajahi", + "yourGlobalUserIdIs": "ID pengguna globalmu adalah: ", + "select": "Pilih", + "nothingFound": "Tidak ada yang ditemukan...", + "thisDevice": "Perangkat ini:", + "newPassword": "Kata sandi baru", + "incomingMessages": "Pesan masuk", + "databaseMigrationTitle": "Basis data sudah dioptimalkan", + "searchForUsers": "Cari @pengguna...", + "completedKeyVerification": "{sender} menyelesaikan verifikasi kunci", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "databaseMigrationBody": "Silakan tunggu. Ini dapat membutuhkan beberapa waktu.", + "leaveEmptyToClearStatus": "Tinggalkan kosong untuk menghapus statusmu.", + "initAppError": "Terjadi kesalahan saat init aplikasi", + "verifyOtherDeviceDescription": "Saat kamu memverifikasi perangkat lain, perangkat tersebut dapat bertukar kunci, sehingga meningkatkan keamananmu secara keseluruhan. 💪 Saat Anda memulai verifikasi, sebuah pemberitahuan akan muncul di aplikasi pada kedua perangkat. Di situ kemudian akan melihat serangkaian emoji atau angka yang harus dibandingkan satu sama lain. Sebaiknya siapkan kedua perangkat sebelum kamu memulai verifikasi. 🤳", + "verifyOtherUserDescription": "Jika kamu memverifikasi pengguna lain, kamu bisa yakin bahwa kamu tahu kepada siapa sebenarnya kamu menulis pesan kepadanya. 💪\n\nSaat kamu memulai verifikasi, kamu dan pengguna lain akan melihat pemberitahuan di aplikasi. Di sana kemudian akan melihat serangkaian emoji atau angka yang harus dibandingkan satu sama lain.\n\nCara terbaik untuk melakukannya adalah dengan bertemu secara langsung atau memulai panggilan video. 👭", + "commandHint_ignore": "Abaikan ID Matrix yang diberikan", + "commandHint_unignore": "Batalkan pengabaian ID Matrix yang diberikan", + "unreadChatsInApp": "{appname}: {unread} obrolan belum dibaca", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "noDatabaseEncryption": "Enkripsi basis data tidak didukung di platform ini", + "customEmojisAndStickersBody": "Tambakan atau bagikan emoji atau stiker kustom yang dapat digunakan dalam obrolan apa pun.", + "hideRedactedMessages": "Sembunyikan pesan yang dihapus", + "appLockDescription": "Kunci aplikasi ketika tidak digunakan dengan kode PIN", + "accessAndVisibility": "Akses dan keterlihatan", + "globalChatId": "ID obrolan global", + "accessAndVisibilityDescription": "Siapa yang diperbolehkan bergabung ke obrolan ini dan bagaimana obrolannya dapat ditemukan.", + "calls": "Panggilan", + "customEmojisAndStickers": "Emoji dan stiker kustom", + "hideRedactedMessagesBody": "Jika seseorang menghapus pesan, pesannya tidak akan terlihat lagi dalam obrolan.", + "hideInvalidOrUnknownMessageFormats": "Sembunyikan format pesan yang tidak valid atau tidak diketahui", + "passwordRecoverySettings": "Pengaturan pemulihan kata sandi", + "usersMustKnock": "Pengguna harus mengetuk", + "noOneCanJoin": "Tidak ada siapa pun yang dapat bergabung", + "knock": "Ketuk", + "knocking": "Mengetuk", + "chatCanBeDiscoveredViaSearchOnServer": "Obrolan dapat ditemukan melalui pencarian di {server}", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "thereAreCountUsersBlocked": "Saat ini ada {count} pengguna yang diblokir.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "publicChatAddresses": "Alamat obrolan umum", + "createNewAddress": "Buat alamat baru", + "swipeRightToLeftToReply": "Usap dari kanan ke kiri untuk membalas", + "searchMore": "Cari lebih banyak...", + "gallery": "Galeri", + "searchIn": "Cari dalam obrolan \"{chat}\"...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "files": "Berkas", + "sendCanceled": "Pengiriman dibatalkan", + "noChatsFoundHere": "Belum ada chat di sini. Mulai chat baru dengan seseorang menggunakan tombol di bawah. ⤵️", + "markAsUnread": "Tandai sebagai belum dibaca", + "goToSpace": "Pergi ke space: {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "changeTheChatPermissions": "Ubah perizinan chat", + "changeTheCanonicalRoomAlias": "Ubah alamat chat publik utama", + "changeTheVisibilityOfChatHistory": "Ubah keterlihatan riwayat chat", + "changeTheDescriptionOfTheGroup": "Ubah deskripsi chat", + "calculatingFileSize": "Menghitung ukuran berkas...", + "userLevel": "{level} - Pengguna", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "adminLevel": "{level} - Admin", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "moderatorLevel": "{level} - Moderator", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeGeneralChatSettings": "Ubah pengaturan chat umum", + "loginWithMatrixId": "Masuk dengan ID Matrix", + "doesNotSeemToBeAValidHomeserver": "Sepertinya bukan homeserver yang kompatibel. URL salah?", + "unread": "Tidak dibaca", + "space": "Space", + "noMoreChatsFound": "Tidak ada chat lagi yang ditemukan...", + "changelog": "Catatan perubahan", + "sendRoomNotifications": "Kirim notifikasi @room", + "updateInstalled": "🎉 Pembaruan {version} terpasang!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "inviteOtherUsers": "Undang pengguna lain ke chat ini", + "chatPermissionsDescription": "Tentukan tingkat kekuasaan yang diperlukan untuk tindakan tertentu dalam chat ini. Tingkat kekuasaan 0, 50 dan 100 biasanya mewakili pengguna, moderator dan admin, tetapi gradasi apa pun dimungkinkan.", + "oneOfYourDevicesIsNotVerified": "Salah satu perangkat Anda tidak terverifikasi", + "noticeChatBackupDeviceVerification": "Catatan: Ketika Anda menghubungkan semua perangkat Anda ke cadangan chat, mereka akan diverifikasi secara otomatis.", + "continueText": "Lanjutkan", + "aboutHomeserver": "Tentang {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "blur": "Buram:", + "contactServerAdmin": "Hubungi admin server", + "opacity": "Opasitas:", + "setWallpaper": "Atur later belakang", + "serverInformation": "Informasi server:", + "noContactInformationProvided": "Server tidak menyediakan informasi kontak valid apa pun", + "supportPage": "Laman dukungan", + "version": "Versi", + "website": "Situs Web", + "manageAccount": "Kelola akun", + "contactServerSecurity": "Hubungi keamanan server", + "name": "Nama", + "strikeThrough": "Coret", + "pleaseFillOut": "Silakan isi", + "addLink": "Tambahkan tautan", + "invalidUrl": "URL tidak valid", + "boldText": "Teks tebal", + "italicText": "Teks miring", + "unableToJoinChat": "Tidak dapat bergabung dalam chat. Mungkin pihak lain telah menutup percakapan.", + "sendImages": "Kirim {count} gambar", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "compress": "Kompres", + "contentNotificationSettings": "Pengaturan notifikasi konten", + "generalNotificationSettings": "Pengaturan notifikasi umum", + "roomNotificationSettings": "Pengaturan notifikasi ruangan", + "userSpecificNotificationSettings": "Pengaturan notifikasi spesifik pengguna", + "otherNotificationSettings": "Pengaturan notifikasi lainnya", + "notificationRuleContainsUserName": "Berisi Nama Pengguna", + "notificationRuleContainsUserNameDescription": "Memberi tahu pengguna ketika pesan memiliki nama penggunanya.", + "notificationRuleMaster": "Bisukan semua notifikasi", + "notificationRuleMasterDescription": "Menimpa peraturan lainnya dan menonaktifkan semua notifikasi.", + "notificationRuleSuppressNotices": "Dimakan Pesan Terautomasi", + "notificationRuleSuppressNoticesDescription": "Mendiamkan notifikasi dari klien terautomasi seperti bot.", + "notificationRuleInviteForMe": "Undang untuk Aku", + "notificationRuleInviteForMeDescription": "Memberi tahu pengguna ketika diundang ke ruangan.", + "notificationRuleMemberEvent": "Peristiwa Anggota", + "notificationRuleMemberEventDescription": "Mendiamkan notifikasi peristiwa keanggotaan.", + "notificationRuleIsUserMention": "Sebutan Pengguna", + "notificationRuleIsUserMentionDescription": "Memberi tahu pengguna ketika disebut secara langsung dalam pesan.", + "notificationRuleContainsDisplayName": "Berisi Nama Tampilan", + "notificationRuleIsRoomMention": "Sebutan Ruangan", + "notificationRuleIsRoomMentionDescription": "Memberi tahu pengguna ketika ada sebutan ruangan.", + "notificationRuleRoomnotif": "Notifikasi Ruangan", + "notificationRuleRoomnotifDescription": "Memberi tahu pengguna ketika pesan berisi '@room'.", + "notificationRuleTombstone": "Nisan", + "notificationRuleTombstoneDescription": "Memberi tahu pengguna tentang pesan deaktivasi ruangan.", + "notificationRuleReaction": "Reaksi", + "notificationRuleReactionDescription": "Mendiamkan notifikasi reaksi.", + "notificationRuleRoomServerAcl": "ACL Server Ruangan", + "notificationRuleRoomServerAclDescription": "Mendiamkan notifikasi daftar kontrol akses server ruangan (ACL).", + "notificationRuleSuppressEdits": "Diamkan Penyuntingan", + "notificationRuleSuppressEditsDescription": "Mendiamkan notifikasi pesan tersunting.", + "notificationRuleCall": "Panggilan", + "notificationRuleCallDescription": "Memberi tahu pengguna tentang panggilan.", + "notificationRuleEncryptedRoomOneToOne": "Ruangan Terenkripsi Satu ke Satu", + "notificationRuleEncryptedRoomOneToOneDescription": "Memberi tahu pengguna tentang pesan dalam ruangan satu ke satu.", + "notificationRuleRoomOneToOne": "Ruangan Satu ke Satu", + "notificationRuleRoomOneToOneDescription": "Memberi tahu pengguna tentang pesan dalam ruangan satu ke satu.", + "notificationRuleMessage": "Pesan", + "notificationRuleMessageDescription": "Memberi tahu pengguna tentang pesan umum.", + "notificationRuleEncrypted": "Terenkripsi", + "notificationRuleEncryptedDescription": "Memberi tahu pengguna tentang pesan dalam ruangan terenkripsi.", + "notificationRuleJitsi": "Jitsi", + "notificationRuleJitsiDescription": "Memberi tahu pengguna tentang peristiwa widget Jitsi.", + "notificationRuleServerAcl": "Diamkan Peristiwa ACL Server", + "notificationRuleServerAclDescription": "Mendiamkan notifikasi peristiwa ACL server.", + "unknownPushRule": "Aturan dorongan '{rule}' tidak diketahui", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "deletePushRuleCanNotBeUndone": "Jika kamu menghapus pengaturan notifikasi ini, maka tidak dapat diurungkan.", + "more": "Tambahan", + "newChatRequest": "📩 Permintaan pesan baru", + "allDevices": "Semua perangkat", + "crossVerifiedDevices": "Perangkat terverifikasi silang", + "waitingForServer": "Menunggu server...", + "notificationRuleContainsDisplayNameDescription": "Memberi tahu pengguna ketika pesan berisi nama tampilannya.", + "shareKeysWith": "Bagikan kunci dengan...", + "synchronizingPleaseWaitCounter": " Sinkronisasi… ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "shareKeysWithDescription": "Perangkat apa saja yang dipercayai supaya mereka bisa membaca bersama dengan pesanmu dalam obrolan terenkripsi?", + "verifiedDevicesOnly": "Perangkat terverifikasi saja", + "crossVerifiedDevicesIfEnabled": "Verifikasi silang perangkat jika diaktifkan", + "previous": "Sebelumnya", + "otherPartyNotLoggedIn": "Pihak lain belum masuk dan tidak dapat menerima pesan!", + "appWantsToUseForLogin": "Gunakan '{server}' untuk masuk", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "appWantsToUseForLoginDescription": "Anda memperbolehkan aplikasi dan situs web membagikan informasi tentang Anda.", + "open": "Buka", + "takeAPhoto": "Ambil foto", + "recordAVideo": "Rekam video", + "optionalMessage": "Pesan (opsional)...", + "notSupportedOnThisDevice": "Tidak didukung pada perangkat ini", + "enterNewChat": "Masuk ke obrolan baru", + "commandHint_roomupgrade": "Tingkatkan ruangan ini ke versi ruangan yang ditentukan", + "pleaseWaitUntilInvited": "Silakan menunggu sampai seseorang dari ruangan mengundang Anda.", + "approve": "Terima", + "youHaveKnocked": "Anda telah mengetuk", + "sentVoiceMessage": "🎙️ {duration} - Pesan suara dari {sender}", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "checkList": "Ceklis", + "countInvited": "{count} diundang", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "commandHint_logout": "Keluar dari perangkatmu saat ini", + "commandHint_logoutall": "Keluarkan semua perangkat aktif", + "displayNavigationRail": "Tampilkan jalur navigasi pada ponsel", + "customReaction": "Reaksi khusus", + "moreEvents": "Peristiwa tambahan", + "declineInvitation": "Tolak undangan", + "noMessagesYet": "Belum ada pesan", + "longPressToRecordVoiceMessage": "Tekan lama untuk merekam pesan suara.", + "pause": "Jeda", + "resume": "Lanjut", + "changedTheChatDescription": "{username} mengubah deskripsi obrolan", + "changedTheChatName": "{username} mengubah nama obrolan", + "removeFromSpaceDescription": "Obrolan akan dihapus dari space tetapi masih muncul di daftar obrolan Anda.", + "countChats": "{chats} obrolan", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "spaceMemberOf": "Anggota space dari {spaces}", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "Anggota space dari {spaces} dapat mengetuk", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "startPoll": "Mulai polling", + "endPoll": "Akhiri polling", + "answersVisible": "Jawaban terlihat", + "pollQuestion": "Pertanyaan polling", + "answerOption": "Opsi jawaban", + "addAnswerOption": "Tambah opsi jawaban", + "allowMultipleAnswers": "Izinkan beberapa jawaban", + "pollHasBeenEnded": "Polling telah diakhiri", + "countVotes": "{count, plural, =1{Satu suara} other{{count} suara}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "answersWillBeVisibleWhenPollHasEnded": "Jawaban akan terlihat saat polling telah diakhiri", + "replyInThread": "Balas dalam thread", + "countReplies": "{count, plural, =1{Satu balasan} other{{count} balasan}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "thread": "Thread", + "backToMainChat": "Kembali ke obrolan utama", + "saveChanges": "Simpan perubahan", + "createSticker": "Buat stiker atau emoji", + "useAsSticker": "Gunakan sebagai stiker", + "useAsEmoji": "Gunakan sebagai emoji", + "stickerPackNameAlreadyExists": "Nama paket stiker sudah ada", + "newStickerPack": "Paket stiker baru", + "stickerPackName": "Nama paket stiker", + "attribution": "Atribusi", + "skipChatBackup": "Lewati cadangan obrolan", + "skipChatBackupWarning": "Anda yakin? Tanpa mengaktifkan cadangan obrolan, Anda mungkin kehilangan akses ke pesan Anda jika Anda mengganti perangkat.", + "noMoreResultsFound": "Tidak ada hasil lagi yang ditemukan", + "chatSearchedUntil": "Obrolan dicari hingga {time}", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "federationBaseUrl": "URL Dasar Federasi", + "clientWellKnownInformation": "Informasi Client-Well-Known:", + "baseUrl": "URL Dasar", + "identityServer": "Server Identitas:", + "versionWithNumber": "Versi: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "Log", + "advancedConfigs": "Konfigurasi Lanjutan", + "advancedConfigurations": "Konfigurasi lanjutan", + "signIn": "Masuk", + "createNewAccount": "Buat akun baru", + "signUpGreeting": "FluffyChat terdesentralisasi! Pilih server tempat Anda ingin membuat akun dan mari kita mulai!", + "signInGreeting": "Anda sudah memiliki akun di Matrix? Selamat datang kembali! Pilih homeserver Anda dan masuk.", + "theProcessWasCanceled": "Proses dibatalkan.", + "join": "Bergabung", + "searchOrEnterHomeserverAddress": "Cari atau masukkan alamat homeserver", + "matrixId": "Matrix ID", + "setPowerLevel": "Atur level kekuasaan", + "makeModerator": "Jadikan moderator", + "makeAdmin": "Jadikan admin", + "removeModeratorRights": "Hapus hak moderator", + "removeAdminRights": "Hapus hak admin", + "powerLevel": "Level kekuasaan", + "setPowerLevelDescription": "Level kekuasaan menentukan apa yang boleh dilakukan seorang anggota di ruangan ini dan biasanya berkisar antara 0 hingga 100.", + "owner": "Pemilik", + "mute": "Bisukan", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "createNewChat": "Buat obrolan baru", + "reset": "Atur ulang", + "supportFluffyChat": "Dukung FluffyChat", + "support": "Dukungan", + "setLowPriority": "Atur prioritas rendah", + "unsetLowPriority": "Batalkan prioritas rendah", + "playSoundOnNotification": "Putar suara saat notifikasi", + "addTag": "Tambah tag", + "removeTag": "Hapus tag", + "tagName": "Nama tag", + "createNewTag": "Buat tag baru", + "discardEdits": "Anda memiliki perubahan yang belum disimpan. Buang suntingan Anda?", + "@discardEdits": { + "type": "String", + "placeholders": {} + }, + "showMore": "Tampilkan lebih banyak", + "showLess": "Tampilkan lebih sedikit", + "hideRoomsInSpaces": "Sembunyikan room yang berada dalam sebuah space", + "possibleByYou": "Rilis ini hanya dapat terwujud berkat dukungan Anda. FluffyChat tetap gratis, open-source, dan sepenuhnya digerakkan oleh komunitas.", + "showThumbnailsInTimeline": "Tampilkan thumbnail gambar dan video", + "appSubtitle": "Komunikasi [matrix] yang aman", + "appDescription": "Berkomunikasi secara terenkripsi melalui jaringan [matrix] terdesentralisasi dengan cara yang mudah dan dapat diakses oleh semua orang.", + "interactiveVerification": "Verifikasi interaktif", + "interactiveVerificationDescription": "Jika Anda berada bersebelahan atau berkomunikasi melalui saluran yang aman, Anda dapat memverifikasi semua perangkat sekaligus dengan membandingkan nomor keamanan atau emoji.", + "countUnverifiedDevices": "{count} perangkat yang belum diverifikasi di dalam chat.", + "@countUnverifiedDevices": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "encryptedMessage": "Pesan terenkripsi", + "unencryptedMessage": "Pesan tidak terenkripsi", + "messageCanOnlyBeReadByUser": "Pesan Anda terenkripsi end-to-end dan hanya dapat dibaca oleh pengguna ini:", + "messageCanOnlyBeReadByUsers": "Pesan Anda terenkripsi end-to-end dan hanya dapat dibaca oleh para pengguna ini:", + "publicKey": "Kunci publik: {key}", + "@publicKey": { + "type": "String", + "placeholders": { + "key": { + "type": "String" + } + } + }, + "deviceIdentityKey": "Kunci identitas perangkat", + "restoreBootstrapEmptyDevicesDescription": "Silakan masukkan passphrase atau recovery key Anda untuk memverifikasi perangkat ini dan mendapatkan akses ke cadangan pesan terenkripsi Anda.", + "@restoreBootstrapEmptyDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "restoreBootstrapDevicesDescription": "Silakan pilih salah satu perangkat Anda yang lain untuk memverifikasi sesi ini:", + "@restoreBootstrapDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "resetAccount": "Reset akun", + "@resetAccount": { + "type": "String", + "placeholders": {} + }, + "restoreCryptoIdentity": "Pulihkan Identitas Kripto", + "@restoreCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "resetCryptoIdentity": "Reset Identitas Kripto", + "@resetCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "setUpCryptoIdentity": "Siapkan Identitas Kripto", + "@setUpCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "waitingForKeys": "Menunggu kunci... Harap tetap aktifkan perangkat lainnya.", + "@waitingForKeys": { + "type": "String", + "placeholders": {} + }, + "noKeysTransmitted": "Tidak ada kunci yang dikirim. Silakan coba lagi.", + "@noKeysTransmitted": { + "type": "String", + "placeholders": {} + }, + "unlock": "Buka kunci", + "@unlock": { + "type": "String", + "placeholders": {} + }, + "openFile": "Buka file", + "@openFile": { + "type": "String", + "placeholders": {} + }, + "resetAccountWarning": "Saat Anda mereset akun, Anda akan kehilangan akses ke pesan lama Anda selamanya. Semua perangkat Anda saat ini perlu diverifikasi kembali. Lakukan tindakan ini hanya jika Anda tidak memiliki perangkat lain lagi untuk memverifikasi sesi Anda dan Anda telah kehilangan recovery key serta passphrase Anda!", + "@resetAccountWarning": { + "type": "String", + "placeholders": {} + }, + "newPassphraseDescription": "FluffyChat menggunakan enkripsi end-to-end. Agar tidak kehilangan pesan Anda, silakan pilih passphrase yang kuat untuk mengamankan identitas kripto Anda dan cadangan pesan terenkripsi Anda.", + "@newPassphraseDescription": { + "type": "String", + "placeholders": {} + }, + "newPassphrase": "Passphrase baru", + "@newPassphrase": { + "type": "String", + "placeholders": {} + }, + "repeatPassphrase": "Ulangi passphrase", + "@repeatPassphrase": { + "type": "String", + "placeholders": {} + }, + "passphrasesMatch": "Passphrase cocok", + "@passphrasesMatch": { + "type": "String", + "placeholders": {} + }, + "passphraseLengthRequirement": "Panjang minimal 12 karakter.", + "@passphraseLengthRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseUpperAndLowerCaseRequirement": "Mengandung huruf besar dan huruf kecil.", + "@passphraseUpperAndLowerCaseRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseSpecialCharactersRequirement": "Mengandung karakter khusus.", + "@passphraseSpecialCharactersRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseNumberRequirement": "Mengandung satu angka.", + "@passphraseNumberRequirement": { + "type": "String", + "placeholders": {} + }, + "storeRecoveryKeyDescription": "Harap catat recovery key Anda agar dapat memulihkan pesan terenkripsi dan identitas kripto Anda.", + "@storeRecoveryKeyDescription": { + "type": "String", + "placeholders": {} + }, + "saveAsFile": "Simpan sebagai file", + "@saveAsFile": { + "type": "String", + "placeholders": {} + }, + "youAreReadyToStart": "Anda siap untuk memulai!", + "noUserKeyFound": "Tidak ditemukan kunci pengguna", + "@noUserKeyFound": { + "type": "String", + "placeholders": {} + }, + "knownSince": "Diketahui sejak: {date}", + "@knownSince": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + } + } + }, + "unsignedDevice": "Perangkat tanpa tanda tangan", + "@unsignedDevice": { + "type": "String", + "placeholders": {} + }, + "signedDevice": "Perangkat bertanda tangan", + "@signedDevice": { + "type": "String", + "placeholders": {} + }, + "noCurve25519KeyFound": "Tidak ditemukan kunci curve25519", + "@noCurve25519KeyFound": { + "type": "String", + "placeholders": {} + }, + "messageNotDecryptable": "Pesan tidak dapat didekripsi", + "editImage": "Edit gambar", + "@editImage": { + "type": "String", + "placeholders": {} + }, + "rotateLeft": "Putar ke kiri", + "@rotateLeft": { + "type": "String", + "placeholders": {} + }, + "rotateRight": "Putar ke kanan", + "@rotateRight": { + "type": "String", + "placeholders": {} + }, + "mirror": "Cermin", + "@mirror": { + "type": "String", + "placeholders": {} + }, + "save": "Simpan", + "@save": { + "type": "String", + "placeholders": {} + }, + "draw": "Gambar", + "@draw": { + "type": "String", + "placeholders": {} + }, + "undo": "Batalkan", + "@undo": { + "type": "String", + "placeholders": {} + }, + "clear": "Hapus", + "@clear": { + "type": "String", + "placeholders": {} + }, + "eraser": "Penghapus", + "@eraser": { + "type": "String", + "placeholders": {} + }, + "crop": "Potong", + "@crop": { + "type": "String", + "placeholders": {} + }, + "today": "Hari Ini", + "sending": "Mengirim", + "generatingThumbnail": "Membuat thumbnail", + "encrypting": "Mengenkripsi", + "uploading": "Mengunggah", + "edited": "(diedit)", + "couldNotBeSent": "Tidak dapat dikirim", + "yesterday": "Kemarin", + "resetRecoveryKey": "Setel ulang kunci pemulihan", + "pleaseEnter6Digits": "Masukkan 6 digit untuk mengaktifkan kunci aplikasi.", + "disableAppLock": "Nonaktifkan kunci aplikasi", + "disableAppLockAreYouSure": "Apakah Anda yakin ingin menonaktifkan kunci aplikasi?", + "enableBiometrics": "Aktifkan autentikasi biometrik", + "disableBiometrics": "Nonaktifkan autentikasi biometrik", + "biometricsDescription": "Dengan autentikasi biometrik, Anda dapat membuka kunci aplikasi dengan wajah atau sidik jari. Kemampuan ini bergantung pada perangkat Anda.", + "useAppLock": "Gunakan kunci aplikasi", + "unlockWithBiometrics": "Buka kunci dengan autentikasi biometrik", + "resetPin": "Setel ulang PIN", + "forwardCountMessages": "Teruskan {count, plural, =1{satu pesan} other{{count} pesan}}?", + "@forwardCountMessages": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingMessages": "Memuat pesan...", + "buildDoesNotSupportFirebase": "Build ini tidak mendukung Firebase Cloud Messaging.", + "unableToRegisterDeviceForFirebase": "Tidak dapat mendaftarkan perangkat untuk Firebase Cloud Messaging.", + "unifiedPushDistributors": "Distributor Unified Push:", + "doubleTapToReact": "Ketuk dua kali untuk bereaksi", + "doubleTapToReactDescription": "Ketuk dua kali pada pesan untuk bereaksi alih-alih memilih teks", + "doubleTapReaction": "Reaksi ketuk dua kali", + "sendingFilesDoNotExit": "Mengirim {count} file... Jangan keluar!", + "@sendingFilesDoNotExit": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "compressingVideo": "Mengompresi video...", + "shareCrashReports": "Bagikan laporan kerusakan", + "shareCrashReportsDescription": "Otomatis membagikan laporan kerusakan kepada pengembang?", + "countActiveCallMembers": "{count} anggota panggilan aktif", + "@countActiveCallMembers": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "enterCall": "Masuk ke panggilan", + "videoCallsBetaWarning": "Panggilan video adalah fitur beta. Mungkin terdapat bug atau perilaku yang tidak terduga. Kami akan sangat menghargai umpan balik Anda.", + "noDevicesFound": "Tidak ada perangkat yang ditemukan", + "incomingCall": "Panggilan masuk", + "videoCall": "Panggilan video", + "voiceCall": "Panggilan suara", + "missedCall": "Panggilan terlewat", + "callBack": "Telpon balik", + "hangUp": "Tutup panggilan", + "waitingForParticipant": "Menunggu peserta...", + "decline": "Tolak", + "startCall": "Mulai panggilan", + "selectCamera": "Pilih kamera", + "selectMicrophone": "Pilih mikrofon", + "selectSpeaker": "Pilih pengeras suara", + "toggleMicrophone": "Alihkan mikrofon", + "toggleCamera": "Alihkan kamera", + "startScreensharing": "Mulai berbagi layar", + "stopScreensharing": "Hentikan berbagi layar", + "raiseHand": "Angkat tangan", + "stopRaiseHand": "Turunkan tangan", + "preferSpeaker": "Utamakan pengeras suara" +} diff --git a/lib/l10n/intl_ie.arb b/lib/l10n/intl_ie.arb new file mode 100644 index 0000000..5eac4ba --- /dev/null +++ b/lib/l10n/intl_ie.arb @@ -0,0 +1,2013 @@ +{ + "group": "Gruppe", + "@group": { + "type": "String", + "placeholders": {} + }, + "close": "Cluder", + "@close": { + "type": "String", + "placeholders": {} + }, + "admin": "Administrator", + "@admin": { + "type": "String", + "placeholders": {} + }, + "chats": "Conversationes", + "@chats": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Copiat al Paperiere", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Copiar al Paperiere", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "countParticipants": "{count} participantes", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "createNewSpace": "Crear un spacie", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "Activ actualmen", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deleteAccount": "Destructer li conto", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Remover li missage", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Modificar blocat servitores", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "fontSize": "Dimension de fonde", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Pro adhesion", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Pro invitation", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "Gruppe es public", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "help": "Auxilie", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Celar ínconosset evenimentes", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Ignorat usatores", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "invitedUsersOnly": "Solmen invitat usatores", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "login": "Aperter li session", + "@login": { + "type": "String", + "placeholders": {} + }, + "isTyping": "tippa…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinRoom": "Adherer al chambre", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Cargar plu…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Ultim activité: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "mention": "Mentionar", + "@mention": { + "type": "String", + "placeholders": {} + }, + "next": "Sequent", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "No", + "@no": { + "type": "String", + "placeholders": {} + }, + "ok": "OK", + "@ok": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Assurdar li conversation", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Crear un conversation", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Nov demanda de verification!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "scanQrCode": "Scannar un code QR", + "noRoomsFound": "Null chambres trovat…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "openInMaps": "Aperter in mappas", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "password": "Contrasigne", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Li contrasigne esset obliviat", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Reganiar li contrasigne", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "redactMessage": "Redacter li missage", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Gardar li file", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Inviar missages", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Inviar video", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "shareLocation": "Partir un localisation", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Nómine de spacie", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "unblockDevice": "Deblocar li aparate", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Ínconosset aparate", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Voce-missage", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "messageInfo": "Information pri li missage", + "openGallery": "Aperter li galerie", + "reportUser": "Raportar li usator", + "countFiles": "{count} files", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "all": "Omni", + "@all": { + "type": "String", + "placeholders": {} + }, + "create": "Crear", + "@create": { + "type": "String", + "placeholders": {} + }, + "copy": "Copiar", + "@copy": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Obscur", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "messages": "Missages", + "@messages": { + "type": "String", + "placeholders": {} + }, + "remove": "Remover", + "@remove": { + "type": "String", + "placeholders": {} + }, + "notifications": "Notificationes", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "reply": "Responder", + "@reply": { + "type": "String", + "placeholders": {} + }, + "delete": "Remover", + "@delete": { + "type": "String", + "placeholders": {} + }, + "search": "Sercha", + "@search": { + "type": "String", + "placeholders": {} + }, + "devices": "Aparates", + "@devices": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Lucid", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "edit": "Redacter", + "@edit": { + "type": "String", + "placeholders": {} + }, + "security": "Securitá", + "@security": { + "type": "String", + "placeholders": {} + }, + "settings": "Parametres", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Partir", + "@share": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Del sistema", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "submit": "Inviar", + "@submit": { + "type": "String", + "placeholders": {} + }, + "unpin": "Defixar", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "verified": "Verificat", + "@verified": { + "type": "String", + "placeholders": {} + }, + "warning": "Avise!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "yes": "Yes", + "@yes": { + "type": "String", + "placeholders": {} + }, + "time": "Hora", + "sender": "Autor", + "custom": "Personalisat", + "emojis": "Emoji", + "users": "Usatores", + "user": "Usator", + "forward": "Avan", + "@forward": { + "type": "String", + "placeholders": {} + }, + "groups": "Gruppes", + "@groups": { + "type": "String", + "placeholders": {} + }, + "ignore": "Ignorar", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "invited": "Invitat", + "@invited": { + "type": "String", + "placeholders": {} + }, + "leave": "Forlassar", + "@leave": { + "type": "String", + "placeholders": {} + }, + "or": "O", + "@or": { + "type": "String", + "placeholders": {} + }, + "link": "Ligament", + "participant": "Participante", + "@participant": { + "type": "String", + "placeholders": {} + }, + "reason": "Cause", + "@reason": { + "type": "String", + "placeholders": {} + }, + "pin": "Fixar", + "@pin": { + "type": "String", + "placeholders": {} + }, + "privacy": "Privatie", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "reject": "Refuser", + "@reject": { + "type": "String", + "placeholders": {} + }, + "repeatPassword": "Repetir li contrasigne", + "addEmail": "Adjunter e-post", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "changePassword": "Cambiar li contrasigne", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Vacuar li archive", + "commandHint_clearcache": "Vacuar li cache", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_send": "Inviar li textu", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "configureChat": "Configurar li conversation", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "directChats": "Direct conversationes", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Activar li ciffration", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Descargar li file", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Curt-code de emotion", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Vacui conversation", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Raportar li missage", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Sin permission", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Aperter li cámera", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Inviar un file", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Inviar un image", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Corresponde", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "anyoneCanJoin": "Alquí posse adherer se", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "obtainingLocation": "Obtenente li localisation…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "addAccount": "Adjunter un conto", + "publicRooms": "Public chambres", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Iniciar li verification", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Version del chambre", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "sendAudio": "Inviar audio", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "setStatus": "Assignar li statu", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Code de fonte", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "about": "Pri", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Acceptar", + "@accept": { + "type": "String", + "placeholders": {} + }, + "confirmMatrixId": "Ples confirmar vor Matrix ID por destructer vor conto.", + "addToSpace": "Adjunter al spacie", + "askVerificationRequest": "Esque acceptar ti demanda de verification de {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "autoplayImages": "Automaticmen reproducter animat images", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "sendOnEnter": "Inviar per Enter", + "blocked": "Blocat", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "blockDevice": "Blocar li aparate", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "changeDeviceName": "Cambiar li nómine de aparate", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Cambiar li hem-servitor", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "chat": "Conversation", + "@chat": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Cambiar vor avatar", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Archive de conversation", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Detallies del conversation", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "commandHint_me": "Ples descrir vos", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_leave": "Forlassar ti chambre", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandInvalid": "Comande es ínvalid", + "@commandInvalid": { + "type": "String" + }, + "banFromChat": "Bannir del conversation", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Cambiar li stil", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "commandHint_markasgroup": "Marcar quam gruppe", + "bannedUser": "{username} ha bannit {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "commandHint_html": "Inviar contenete HTML", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_plain": "Inviar textu sin formate", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "editRoomAliases": "Modificar pseudonimos del chambre", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Emotion ja existe!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Modificar li avatar del chambre", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Gruppe con {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "invitedUser": "{username} invitat {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "leftTheChat": "Surtit ex li conversation", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "loadingPleaseWait": "Cargante... ples atender.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "{username} ha acceptat li invitation", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "supposedMxid": "To deve esser {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "areYouSureYouWantToLogout": "Esque vu vole cluder li session?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "badServerLoginTypesException": "Li hem-servitor supporta ti tipes de autentication:\n{serverVersions}\nMa ti-ci application supporta solmen:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "cantOpenUri": "Ne successat aperter li adresse {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "account": "Conto", + "@account": { + "type": "String", + "placeholders": {} + }, + "alias": "pseudonim", + "@alias": { + "type": "String", + "placeholders": {} + }, + "archive": "Archive", + "@archive": { + "type": "String", + "placeholders": {} + }, + "banned": "Bannit", + "@banned": { + "type": "String", + "placeholders": {} + }, + "cancel": "Anullar", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Ciffrat", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Ciffration", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "moderator": "Moderator", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "newSpace": "Crear un spacie", + "logout": "Cluder li session", + "@logout": { + "type": "String", + "placeholders": {} + }, + "send": "Inviar", + "@send": { + "type": "String", + "placeholders": {} + }, + "you": "Vu", + "@you": { + "type": "String", + "placeholders": {} + }, + "skip": "Omisser", + "@skip": { + "type": "String", + "placeholders": {} + }, + "status": "Statu", + "@status": { + "type": "String", + "placeholders": {} + }, + "unverified": "Ínverificat", + "editDisplayname": "Redacter li visibil nómine", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Invitar un contacte", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Esque vu es cert?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "@goToSpace": { + "type": "String", + "space": {} + }, + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "@writeAMessage": { + "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": {} + }, + "@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" + } + } + }, + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "@changedTheChatPermissions": { + "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" + } + } + }, + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "@sendAsText": { + "type": "String" + }, + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@compareNumbersMatch": { + "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" + } + } + }, + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "@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" + } + } + }, + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "@iHaveClickedOnLink": { + "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" + }, + "@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" + } + } + }, + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@waitingPartnerNumbers": { + "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": {} + }, + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@visibleForEveryone": { + "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" + } + } + }, + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "@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": {} + }, + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + } +} \ No newline at end of file diff --git a/lib/l10n/intl_it.arb b/lib/l10n/intl_it.arb new file mode 100644 index 0000000..e0b22b2 --- /dev/null +++ b/lib/l10n/intl_it.arb @@ -0,0 +1,2554 @@ +{ + "@@last_modified": "2021-08-14 12:41:09.992206", + "about": "Informazioni", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Accetta", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} ha accettato l'invito", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Account", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} ha abilitato la crittografia end to end", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "Aggiungi e-mail", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "admin": "Amministratore", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "alias", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Tutto", + "@all": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} ha risposto alla chiamata", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Tutti possono partecipare", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "Blocco dell'app", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "archive": "Archivia", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Gli utenti ospiti possono partecipare?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Sei sicuro/a?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Sei sicuro/a di voler uscire?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Per far accedere l'altra persona, per favore inserisci la tua frase segreta o chiave di recupero.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Accettare questa richiesta di verifica da {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "badServerLoginTypesException": "L'homeserver supporta i tipi di accesso:\n{serverVersions}\nMa questa applicazione supporta solo:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "banFromChat": "Bandisci dalla chat", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Bandito", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} ha bandito {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Blocca dispositivo", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "Bloccato", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "Annulla", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "changeDeviceName": "Cambia nome dispositivo", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} ha cambiato l'avatar della discussione", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} ha cambiato i permessi della chat", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} ha cambiato nome in: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} ha cambiato le regole di accesso per ospiti", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} ha cambiato le regole di accesso per ospiti con: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} ha cambiato la visibilità della cronologia", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} ha cambiato la visibilità della cronologia in: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} ha cambiato le regole per unirsi", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} ha cambiato le regole per unirsi in: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} ha cambiato il suo avatar", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} ha modificato gli alias della stanza", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} ha cambiato il link di invito", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Cambia la password", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Cambia il server principale", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Cambia il tuo stile", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Cambia il nome del gruppo", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "La crittografia è corrotta", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Chat", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Backup delle discussioni", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Dettagli chat", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Discussioni", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Scegli una password complessa", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "close": "Chiudi", + "@close": { + "type": "String", + "placeholders": {} + }, + "compareEmojiMatch": "Per favore confronta gli emoji", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Per favore confronta i numeri", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Configura la discussione", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Il contatto è stato invitato nel gruppo", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "Il contenuto è stato segnalato agli amministratori del server", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Copiato negli Appunti", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Copia", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Copia negli appunti", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Impossibile decriptare messaggio: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count, plural, =1{1 partecipante} other{{count} partecipanti}}", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Crea", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} ha creato la chat", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "currentlyActive": "Attualmente attivo", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Scuro", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Disabiliterà il tuo account. Non puoi tornare indietro! Sei sicuro/a?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Livello di autorizzazione predefinito per i nuovi utenti", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "Cancella", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Elimina l'account", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Elimina il messaggio", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Dispositivi", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Chat dirette", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Il nominativo è stato cambiato", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Scarica il file", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "Modifica", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Modifica i server bloccati", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Modifica il nominativo", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Modifica l'avatar della stanza", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "L'emote già esiste!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Shortcode emote invalido!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Scorciatoia emote", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Discussione vuota", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Abilita i pacchetti emotes globalmente", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Abilita la crittografia", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Non potrai disabilitare la crittografia in futuro. Sei sicuro?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Crittografato", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Crittografia", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Crittografia non abilitata", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} è entrato in chiamata", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Inserisci un indirizzo e-mail", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "fontSize": "Dimensione carattere", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "Inoltra", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Dall'adesione", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Dall'invito", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Gruppo", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "Il gruppo è pubblico", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "Gruppi", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Gruppo con {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Gli ospiti sono vietati", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Gli ospiti possono partecipare", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} ha ritirato l'invito per {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Aiuto", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Nascondi gli eventi sconosciuti", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignore": "Ignora", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Utenti ignorati", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Ho cliccato sul collegamento", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Frase segrata o chiave di ripristino errate", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Invita contatto", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Invita un contatto a {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "Invitato/a", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username} ha invitato {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Solo utenti invitati", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} ti ha invitato/a a FluffyChat.\n1. Visita fluffychat.im e installa l'applicazione\n2. Iscriviti o accedi\n3. Apri il collegamento di invito: \n {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "sta scrivendo", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} si è unito/a alla chat", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Unisciti alla stanza", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username} ha espulso {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} ha espulso e bandito {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Espelli dalla chat", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Ultima attività: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Abbandona", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Ha lasciato la chat", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Chiaro", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Carica altri {count} partecipanti", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "Caricamento… Attendere prego.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Carica di più…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "login": "Accedi", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Accedi a {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Esci", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Menzione", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "Messaggi", + "@messages": { + "type": "String", + "placeholders": {} + }, + "moderator": "Moderatore", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Silenzia discussione", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Nuova discussione", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Nuovo messaggio in FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Nuova richiesta di verifica!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "Avanti", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "No", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Nessuna connessione al server", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Nessun emote trovato. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Puoi attivare la crittografia solo quando la stanza non è più accessibile pubblicamente.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Firebase Cloud Messaging non sembra essere disponibile sul tuo dispositivo. Per continuare a ricevere notifiche push, ti consigliamo di installare ntfy. Con ntfy o un altro provider Unified Push puoi ricevere notifiche push in modo sicuro per i dati. Puoi scaricare ntfy dal PlayStore o da F-Droid.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "Non hai ancora aggiunto un modo per recuperare la tua password.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Nessuna autorizzazione", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Nessuna stanza trovata…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Notifiche", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} utenti stanno scrivendo…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "ok": "Ok", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Il backup delle chiavi in linea è abilitato", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Ops, qualcosa è andato storto…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Apri l'app per leggere i messaggi", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Apri fotocamera", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "participant": "Partecipante", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "frase segreta o chiave di recupero", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Password", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Password dimenticata", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "La password è stata cambiata", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Recupero della password", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Fissa", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Si prega di scegliere un codice di accesso", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Clicca sul collegamenti nell'e-mail e poi procedi.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Inserisci la tua password", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Inserisci il tuo nome utente", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Segui le istruzioni sul sito web e tocca Avanti.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "Privacy", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Stanze pubbliche", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "Motivo", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} ha eliminato un evento", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactMessage": "Elimina un messaggio", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reject": "Rifiuta", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} ha rifiutato l'invito", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Rimuovi", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Rimuovi tutti gli altri dispositivi", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Rimuovi il ban dalla chat", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Sostituisci la stanza con la versione più recente", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "Rispondi", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Segnala il messaggio", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "La stanza è stata aggiornata", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Versione della stanza", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "search": "Cerca", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "Sicurezza", + "@security": { + "type": "String", + "placeholders": {} + }, + "send": "Invia", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Invia un messaggio", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAudio": "Invia un file audio", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Invia un file", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Invia un'immagine", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Invia messaggi", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Invia un video", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username} ha inviato un file", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username} ha inviato un file audio", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username} ha inviato un'immagine", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} ha inviato un adesivo", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} ha inviato un video", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} ha inviato informazioni sulla chiamata", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setStatus": "Imposta lo stato", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Impostazioni", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Condividi", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} ha condiviso la sua posizione", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "skip": "Ignora", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Codice sorgente", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} ha iniziato una chiamata", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "status": "Stato", + "@status": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Come stai oggi?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Invia", + "@submit": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Sistema", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Non corrispondono", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Corrispondono", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Troppe richieste. Per favore riprova più tardi!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Prova a inviare di nuovo", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} ha rimosso il bando di {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Sblocca il dispositivo", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Dispositivo sconosciuto", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Algoritmo di crittografia sconosciuto", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Evento sconosciuto '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Riattiva l'audio della discussione", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Rimuovi", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} e {count} altri stanno scrivendo…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} e {username2} stanno scrivendo…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} sta scrivendo…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪 {username} ha abbandonato la chat", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} ha inviato un evento {type}", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verified": "Verificato", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Avvia la verifica", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Hai verificato con successo!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Verifica dell'altro account", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Visibilità della cronologia della discussione", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Visibile a tutti i partecipanti", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Visibile a tutti", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Messaggio vocale", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "In attesa che il partner accetti la richiesta…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "In attesa che il partner accetti l'emoji…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "In attesa che il partner accetti i numeri…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Attenzione!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Ti abbiamo inviato un'e-mail", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Chi può eseguire quale azione", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Chi è autorizzato a unirsi a questo gruppo", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Perché vuoi segnalarlo?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Con questi indirizzi puoi recuperare la tua password se necessario.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Scrivi un messaggio…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Sì", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Tu", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Non stai più partecipando a questa chat", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Sei stato/a bandito/a da questa chat", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "La tua chiave pubblica", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "setAsCanonicalAlias": "Imposta come alias principale", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Rimuovi il tuo avatar", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Per favore inserisci il tuo PIN", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "or": "O", + "@or": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Ops! Purtroppo si è verificato un errore durante l'impostazione delle notifiche push.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Modifica gli alias della stanza", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Cancella archivio", + "changeYourAvatar": "Cambia il tuo avatar", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "Aggiungi a uno spazio", + "commandHint_leave": "Abbandona questa stanza", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_ban": "Banna l'utente specificato da questa stanza", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_html": "Invia testo formattato in HTML", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_plain": "Invia testo non formattato", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_send": "Invia testo", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "locationDisabledNotice": "I servizi di localizzazione sono disabilitati. Per favore abilitali per poter condividere la tua posizione.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Salva file", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "openInMaps": "Apri in maps", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "scanQrCode": "Scansiona codice QR", + "addAccount": "Aggiungi account", + "unverified": "Non verificato", + "sendAsText": "Invia come testo", + "@sendAsText": { + "type": "String" + }, + "repeatPassword": "Ripeti password", + "autoplayImages": "Riproduci automaticamente adesivi ed emote animati", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "cantOpenUri": "Impossibile aprire l'URI {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "commandInvalid": "Comando non valido", + "@commandInvalid": { + "type": "String" + }, + "link": "Link", + "shareLocation": "Condividi posizione", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "hugContent": "{senderName} ti abbraccia", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "jumpToLastReadMessage": "Salta all'ultimo messaggio letto", + "obtainingLocation": "Ottengo la posizione…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "commandHint_cuddle": "Invia una coccola", + "reportErrorDescription": "😭 Oh no. Qualcosa è andato storto. Se vuoi, puoi segnalare questo bug agli sviluppatori.", + "unsupportedAndroidVersion": "Versione di Android non supportata", + "oneClientLoggedOut": "Uno dei tuoi client è stato disconnesso", + "setColorTheme": "Imposta tema colore:", + "commandHint_create": "Crea una chat di gruppo vuota\nUtilizza --no-encryption per disattivare la criptazione", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "supposedMxid": "Dovrebbe essere {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "user": "Utente", + "youAcceptedTheInvitation": "👍 Hai accettato l'invito", + "noMatrixServer": "{server1} non è un server matrix, vuoi invece usare {server2}?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 Sei stato invitato/a da {user}", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "banUserDescription": "L'utente sarà bannato dalla chat e non sarà in grado di rientrare finché non verrà sbannato.", + "removeDevicesDescription": "Sarai disconnesso da questo dispositivo e non potrai più ricevere messaggi.", + "tryAgain": "Riprova", + "youKickedAndBanned": "🙅 Hai rimosso e bannato {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "unbanUserDescription": "L'utente potrà rientrare nella chat.", + "sendOnEnter": "Invia quando premi Invio", + "youRejectedTheInvitation": "Hai rifiutato l'invito", + "messagesStyle": "Messaggi:", + "newSpaceDescription": "Gli spazi ti permettono di consolidare le tue chat e di creare comunità private o pubbliche.", + "chatDescription": "Descrizione della chat", + "encryptThisChat": "Cifra questa chat", + "reopenChat": "Riapri la chat", + "addToBundle": "Aggiungi al bundle", + "spaceIsPublic": "Lo spazio è pubblico", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "countFiles": "{count} file", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "noKeyForThisMessage": "Questo può accadere se il messaggio è stato inviato prima che hai fatto l'accesso in questo dispositivo.\n\nÈ anche possibile che il mittente abbia bloccato il tuo dispositivo o che qualcosa sia andato storto con la tua connessione ad internet.\n\nSei in grado di leggere il messaggio su altre sessioni? Allora puoi trasferire il messaggio da lì! Vai su Impostazioni > Dispositivi e verifica che i tuoi dispositivi siano verificati l'un l'altro. Quando aprirai la stanza la prossima volta ed entrambe le sessioni sono in primo piano, le chiavi saranno trasmesse automaticamente.\n\nNon vuoi perdere le chiavi quando ti disconnetti o cambi dispositivo? Assicurati di aver attivato il backup delle chat nelle impostazioni.", + "commandHint_markasgroup": "Segna come gruppo", + "errorObtainingLocation": "Errore cercando di ottenere la posizione: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "pushNotificationsNotAvailable": "Notifiche push non disponibili", + "storeInAppleKeyChain": "Salva nel portachiavi di Apple", + "hydrate": "Ripristina dal file di backup", + "invalidServerName": "Nome server non valido", + "chatPermissions": "Permessi della chat", + "sender": "Mittente", + "storeInAndroidKeystore": "Salva nel KeyStore di Android", + "makeAdminDescription": "Una volta che fai questo utente amministratore, potresti non essere in grado di rimuoverlo, in quanto avrà i tuoi stessi privilegi.", + "synchronizingPleaseWait": "Sincronizzazione... Attendere prego.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "commandHint_clearcache": "Pulisci cache", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "editBundlesForAccount": "Modifica i bundle per questo account", + "whyIsThisMessageEncrypted": "Perché questo messaggio è illeggibile?", + "setChatDescription": "Imposta la descrizione della chat", + "spaceName": "Nome dello spazio", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "importFromZipFile": "Importa da file .zip", + "dehydrateWarning": "Questa azione non può essere annullata. Assicurarsi di aver salvato il file di backup.", + "noOtherDevicesFound": "Nessun altro dispositivo trovato", + "redactedBy": "Rimosso da {username}", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "fileIsTooBigForServer": "Impossibile inviare! Il server supporta solo allegati fino a {max}.", + "readUpToHere": "Letto fino a qui", + "optionalRedactReason": "(Opzionale) Ragione per rimuovere questo messaggio...", + "dehydrate": "Esporta la sessione e cancella il dispositivo", + "locationPermissionDeniedNotice": "Permesso per accedere alla posizione negato. Per favore concedilo per essere in grado di condividere la tua posizione.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "archiveRoomDescription": "Questa chat sarà archiviata. Gli altri utenti saranno in grado di vedere che hai abbandonato la chat.", + "exportEmotePack": "Esporta pack di Emote come .zip", + "redactedByBecause": "Rimosso da {username} per: \"{reason}\"", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "youHaveWithdrawnTheInvitationFor": "Hai revocato l'invito per {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "reportUser": "Segnala utente", + "confirmEventUnpin": "Sei sicuro di voler permanentemente sfissare l'evento?", + "youInvitedUser": "📩 Hai invitato {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "fileHasBeenSavedAt": "Il file è stato salvato in {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "commandMissing": "{command} non è un comando.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "redactMessageDescription": "Questo messaggio sarà rimosso per tutti i partecipanti di questa conversazione. Questa operazione non può essere annullata.", + "commandHint_discardsession": "Scarta sessione", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "invalidInput": "Contenuto non valido!", + "commandHint_myroomnick": "Imposta il nome visualizzato per questa stanza", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "doNotShowAgain": "Non mostrare più", + "report": "segnala", + "googlyEyesContent": "{senderName} ti ha inviato degli occhi finti", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "youBannedUser": "Hai bannato {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "commandHint_myroomavatar": "Importa la foto profilo per questa stanza ( mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "hasKnocked": "🚪 {user} ha bussato", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "openLinkInBrowser": "Apri il collegamento nel browser", + "commandHint_react": "Rispondi con una reazione", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_me": "Descriviti", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "messageInfo": "Informazioni del messaggio", + "disableEncryptionWarning": "Per motivi di sicurezza non puoi disabilitare la crittografia in una chat, se era stata abilitata in precedenza.", + "wrongPinEntered": "È stato inserito il pin sbagliato! Riprova tra {seconds} secondi...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "sendTypingNotifications": "Invia notifiche di scrittura", + "inviteGroupChat": "📨 Invita a una chat di gruppo", + "commandHint_kick": "Rimuovi l'utente fornito da questa stanza", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "createNewSpace": "Nuovo spazio", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "commandHint_unban": "Sbanna l'utente fornito da questa stanza", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "importEmojis": "Importa Emoji", + "wasDirectChatDisplayName": "Chat vuota (era {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "noChatDescriptionYet": "La descrizione della chat non è ancora stata creata.", + "removeFromBundle": "Rimuovi da questo bundle", + "confirmMatrixId": "Per eliminare il tuo account, conferma il tuo Matrix ID.", + "learnMore": "Scopri di più", + "notAnImage": "Non è un file immagine.", + "users": "Utenti", + "openGallery": "Apri la galleria", + "chatDescriptionHasBeenChanged": "Descrizione della chat cambiata", + "bundleName": "Nome del bundle", + "removeFromSpace": "Rimuovi dallo spazio", + "commandHint_op": "Imposta il livello di privilegi dell'utente specificato (predefinito: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_join": "Unisciti alla stanza fornita", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "roomUpgradeDescription": "Questa chat sarà ricreata con la nuova versione della stanza. Tutti i partecipanti saranno avvertiti che devono passare alla nuova chat. Puoi leggere di più riguardo le versioni delle stanze su https://spec.matrix.org/latest/rooms/", + "commandHint_invite": "Invia l utente fornito in questa stanza", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "pleaseEnterANumber": "Per favore inserisci un numero maggiore di 0", + "youKicked": "👞 Hai rimosso {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "jump": "Salta", + "reactedWith": "{sender} ha reagito con {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "sorryThatsNotPossible": "Scusa... questo non è possibile", + "shareInviteLink": "Condividi link d'invito", + "commandHint_markasdm": "Contrassegna questo Matrix ID come stanza di messaggi diretti", + "cuddleContent": "{senderName} ti coccola", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "emoteKeyboardNoRecents": "Le emoticon recentemente usate appariranno qui...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "youJoinedTheChat": "Sei entrato/a nella chat", + "markAsRead": "Segna come letto", + "commandHint_dm": "Avvia una chat diretta\nUsa --no-encryption per disabilitare la crittografia", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_hug": "Invia un abbraccio", + "replace": "Sostituisci", + "youUnbannedUser": "Hai sbannato {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "newSpace": "Nuovo spazio", + "emojis": "Emoji", + "commandHint_googly": "Invia degli occhi finti", + "createGroup": "Crea gruppo", + "time": "Tempo", + "custom": "Personalizzato", + "noBackupWarning": "Attenzione! Senza abilitare il backup della chat, perderai l'accesso ai tuoi messaggi crittografati. Si consiglia vivamente di abilitare il backup della chat prima di disconnettersi.", + "kickUserDescription": "L'utente è stato rimosso, ma non bannato. Nelle chat pubbliche, l'utente potrà rientrare quando vuole.", + "importNow": "Importa ora", + "pinMessage": "Fissa alla stanza", + "invite": "Invitare", + "unsupportedAndroidVersionLong": "Questa funzionalità richiede una versione di Android più recente. Si prega di verificare la presenza di aggiornamenti o supporto per Lineage OS.", + "storeSecurlyOnThisDevice": "Salva in modo sicuro su questo dispositivo", + "blockListDescription": "Puoi bloccare gli utenti che ti disturbano. Non sarai più in grado di ricevere messaggi o inviti alle stanze dalle persone che hai bloccato.", + "blockedUsers": "Utenti bloccati", + "blockUsername": "Nome utente da ignorare", + "createGroupAndInviteUsers": "Crea un gruppo e invita gli utenti", + "groupCanBeFoundViaSearch": "Il gruppo può essere cercato", + "noUsersFoundWithQuery": "Sfortunatamente non è stato trovato nessun utente con \"{query}\". Per favore controlla se hai fatto un errore di battitura.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "block": "Blocca", + "yourGlobalUserIdIs": "Il tuo ID dell'utente globale è: ", + "commandHint_sendraw": "Manda un json grezzo", + "wrongRecoveryKey": "Mi dispiace... questa non sembra essere la chiave di recupero corretta.", + "groupName": "Nome gruppo", + "databaseMigrationTitle": "Il database è ottimizzato", + "searchChatsRooms": "Cerca per #chat, @utenti...", + "databaseMigrationBody": "Attendere prego. L'operazione potrebbe richiedere un momento.", + "addChatOrSubSpace": "Aggiungi chat o sottospazio", + "publicSpaces": "Spazio pubblico", + "pleaseEnterYourCurrentPassword": "Per favore inserisci la tua password attuale", + "passwordIsWrong": "La password inserita è sbagliata", + "select": "Seleziona", + "newPassword": "Nuova password", + "pleaseChooseAStrongPassword": "Per favore scegli una password forte", + "thisDevice": "Questo dispositivo:", + "verifyOtherUser": "🔐 Verifica altro utente", + "verifyOtherUserDescription": "Se verifichi un altro utente, puoi essere certo di sapere a chi stai realmente scrivendo. 💪\n\nQuando inizi una verifica, tu e l'altro utente vedrete un popup nell'app. Lì vedrai una serie di emoji o numeri che dovrai confrontare tra loro.\n\nIl modo migliore per farlo è incontrarsi o avviare una videochiamata. 👭", + "verifyOtherDevice": "🔐 Verifica altro dispositivo", + "verifyOtherDeviceDescription": "Quando verifichi un altro dispositivo, questi dispositivi possono scambiarsi le chiavi, aumentando la tua sicurezza complessiva. 💪 Quando inizi una verifica, apparirà un popup nell'app su entrambi i dispositivi. Lì vedrai una serie di emoji o numeri che dovrai confrontare tra loro. È meglio avere entrambi i dispositivi a portata di mano prima di iniziare la verifica. 🤳", + "discover": "Scopri", + "leaveEmptyToClearStatus": "Lascia vuoto per cancellare il tuo stato.", + "incomingMessages": "Messaggi in arrivo", + "noChatsFoundHere": "Nessuna chat trovata. Inizia una nuova chat con qualcuno usando il pulsante qui sotto. ⤵️", + "unread": "Non letti", + "space": "Spazio", + "knock": "Bussa", + "hideInvalidOrUnknownMessageFormats": "Nascondi formati di messaggi non validi o sconosciuti", + "swipeRightToLeftToReply": "Scorri da destra a sinistra per rispondere", + "globalChatId": "ID chat globale", + "appLockDescription": "Blocca l'app con un codice PIN quando non è in uso", + "noOneCanJoin": "Nessuno può unirsi", + "usersMustKnock": "Gli utenti devono bussare", + "accessAndVisibility": "Accesso e visibilità", + "accessAndVisibilityDescription": "Chi è autorizzato a partecipare a questa chat e come è possibile scoprirla.", + "calls": "Chiamate", + "customEmojisAndStickers": "Emoji e adesivi personalizzati", + "customEmojisAndStickersBody": "Aggiungi o condividi emoji o adesivi personalizzati che possono essere utilizzati in qualsiasi chat.", + "hideRedactedMessages": "Mostra i messaggi rimossi", + "hideRedactedMessagesBody": "Se qualcuno rimuove un messaggio, il messaggio non sarà più visibile nella chat.", + "passwordRecoverySettings": "Impostazioni di recupero password", + "noMoreChatsFound": "Non sono state trovate altre chat...", + "stickers": "Adesivi", + "searchMore": "Cerca di più...", + "sessionLostBody": "La tua sessione è andata persa. Segnala questo errore agli sviluppatori all'indirizzo {url}. Il messaggio di errore è: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "formattedMessagesDescription": "Visualizza contenuti di messaggi complessi, come testo in grassetto, utilizzando il markdown.", + "canceledKeyVerification": "{sender} ha annullato la verifica della chiave", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "chatPermissionsDescription": "Definisci quale livello di privilegi è necessario per determinate azioni in questa chat. I livelli di privilegi 0, 50 e 100 rappresentano solitamente utenti, moderatori e amministratori, ma qualsiasi valore intermedio è possibile.", + "passwordsDoNotMatch": "Le password non corrispondono", + "initAppError": "Si è verificato un errore durante l'inizializzazione dell'app", + "startedKeyVerification": "{sender} ha avviato la verifica della chiave", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "chatCanBeDiscoveredViaSearchOnServer": "La chat può essere trovata tramite la ricerca su {server}", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "unreadChatsInApp": "{appname}: {unread} chat non lette", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "thereAreCountUsersBlocked": "Al momento ci sono {count} utenti bloccati.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "nothingFound": "Non è stato trovato nulla...", + "joinSpace": "Unisciti allo spazio", + "commandHint_ignore": "Ignora il Matrix ID fornito", + "commandHint_unignore": "Ignora il Matrix ID specificato", + "noDatabaseEncryption": "La crittografia del database non è supportata su questa piattaforma", + "knocking": "Bussare", + "sendReadReceipts": "Invia ricevute di lettura", + "publicChatAddresses": "Indirizzi di chat pubblici", + "createNewAddress": "Crea un nuovo indirizzo", + "searchIn": "Cerca nella chat \"{chat}\"...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "gallery": "Galleria", + "formattedMessages": "Messaggi formattati", + "files": "File", + "restoreSessionBody": "L'app ora tenta di ripristinare la sessione dal backup. Segnala questo errore agli sviluppatori all'indirizzo {url}. Il messaggio di errore è: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "acceptedKeyVerification": "{sender} ha accettato la verifica della chiave", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "completedKeyVerification": "{sender} ha completato la verifica della chiave", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "{sender} è pronto per la verifica della chiave", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "searchForUsers": "Cerca @utenti...", + "sendTypingNotificationsDescription": "Gli altri partecipanti alla chat possono vedere quando stai scrivendo un nuovo messaggio.", + "sendReadReceiptsDescription": "Gli altri partecipanti alla chat possono vedere quando hai letto un messaggio.", + "requestedKeyVerification": "{sender} ha richiesto la verifica della chiave", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "changeTheChatPermissions": "Cambia i permessi della chat", + "changeTheVisibilityOfChatHistory": "Cambia la visibilità della cronologia chat", + "changeTheCanonicalRoomAlias": "Cambia l'indirizzo principale della chat pubblica", + "sendRoomNotifications": "Invia notifiche alla @stanza", + "sendCanceled": "Invio annullato", + "calculatingFileSize": "Calcolo della dimensione del file...", + "oneOfYourDevicesIsNotVerified": "Uno dei tuoi dispositivi non è verificato", + "noticeChatBackupDeviceVerification": "Nota: quando colleghi tutti i tuoi dispositivi al backup della chat, vengono verificati automaticamente.", + "moderatorLevel": "{level} - Moderatore", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeTheDescriptionOfTheGroup": "Cambia la descrizione della chat", + "updateInstalled": "🎉 Aggiornamento {version} installato!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "inviteOtherUsers": "Invita altri utenti a questa chat", + "userLevel": "{level} - Utente", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "adminLevel": "{level} - Amministratore", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeGeneralChatSettings": "Modifica le impostazioni generali della chat", + "loginWithMatrixId": "Accedi con il Matrix ID", + "changelog": "Registro delle modifiche", + "doesNotSeemToBeAValidHomeserver": "Non sembra essere un homeserver compatibile. URL sbagliato?", + "goToSpace": "Vai allo spazio: {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "markAsUnread": "Contrassegna come non letto", + "aboutHomeserver": "Informazioni su {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "continueText": "Continua", + "blur": "Sfocatura:", + "opacity": "Opacità:", + "setWallpaper": "Imposta sfondo", + "manageAccount": "Gestisci account", + "noContactInformationProvided": "Il server non fornisce alcuna informazione di contatto valida", + "contactServerAdmin": "Contatta l'amministratore del server", + "contactServerSecurity": "Contatta la sicurezza del server", + "supportPage": "Pagina di supporto", + "serverInformation": "Informazioni sul server:", + "name": "Nome", + "version": "Versione", + "website": "Sito web", + "boldText": "Testo in grassetto", + "italicText": "Testo in corsivo", + "strikeThrough": "Barrato", + "pleaseFillOut": "Si prega di compilare", + "invalidUrl": "URL non valido", + "addLink": "Aggiungi collegamento", + "unableToJoinChat": "Impossibile partecipare alla chat. Forse l'altra parte ha già chiuso la conversazione.", + "sendImages": "Invia {count} immagine", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "compress": "Comprimere", + "contentNotificationSettings": "Impostazioni del contenuto di notifica", + "generalNotificationSettings": "Impostazioni di notifica generale", + "roomNotificationSettings": "Impostazioni di notifica della stanza", + "userSpecificNotificationSettings": "Impostazioni di notifica specifiche dell'utente", + "otherNotificationSettings": "Altre impostazioni di notifica", + "notificationRuleContainsUserName": "Contiene il nome utente", + "notificationRuleContainsUserNameDescription": "Notifica l'utente quando un messaggio contiene il proprio nome utente.", + "notificationRuleMaster": "Silenzia tutte le notifiche", + "notificationRuleMasterDescription": "Sovrascive tutte le altre regole e disabilita tutte le notifiche.", + "notificationRuleSuppressNotices": "Silenziare i messaggi automatizzati", + "notificationRuleSuppressNoticesDescription": "Silenzia le notifiche da client automatizzati come i bot.", + "notificationRuleInviteForMeDescription": "Notifica l'utente quando viene invitato a una stanza.", + "notificationRuleMemberEvent": "Eventi per i membri", + "notificationRuleInviteForMe": "Inviti per me", + "notificationRuleIsUserMentionDescription": "Notifica l'utente quando viene menzionato direttamente in un messaggio.", + "notificationRuleContainsDisplayNameDescription": "Notifica l'utente quando un messaggio contiene il proprio nome visualizzato.", + "notificationRuleIsRoomMention": "Menzioni della stanza", + "notificationRuleIsUserMention": "Menzioni dell'utente", + "notificationRuleRoomnotif": "Notifiche della stanza", + "notificationRuleRoomnotifDescription": "Notifica l'utente quando un messaggio contiene '@room'.", + "notificationRuleTombstone": "Tombstone", + "notificationRuleTombstoneDescription": "Notifica all'utente i messaggi di disattivazione della stanza.", + "notificationRuleReaction": "Reazioni", + "notificationRuleReactionDescription": "Silenzia le notifiche per le reazioni.", + "notificationRuleRoomServerAcl": "ACL del server della stanza", + "notificationRuleRoomServerAclDescription": "Silenzia le notifiche per gli elenchi di controllo degli accessi del server della stanza (ACL).", + "notificationRuleSuppressEdits": "Silenzia le modifiche", + "notificationRuleSuppressEditsDescription": "Silenzia le notifiche per i messaggi modificati.", + "notificationRuleCallDescription": "Notifica all'utente le chiamate.", + "notificationRuleEncryptedRoomOneToOne": "Stanze crittografate One-to-One", + "notificationRuleRoomOneToOne": "Stanze One-to-One", + "notificationRuleRoomOneToOneDescription": "Notifica all'utente i messaggi nelle stanze one-to-one.", + "notificationRuleMessage": "Messaggi", + "notificationRuleMessageDescription": "Notifica all'utente i messaggi generali.", + "notificationRuleEncryptedDescription": "Notifica all'utente i messaggi nelle stanze crittografate.", + "notificationRuleEncrypted": "Crittografate", + "notificationRuleJitsi": "Jitsi", + "notificationRuleJitsiDescription": "Notifica all'utente gli eventi del widget Jitsi.", + "notificationRuleServerAcl": "Silenziare gli eventi ACL del server", + "notificationRuleServerAclDescription": "Silenzia le notifiche per gli eventi ACL del server.", + "unknownPushRule": "Regola push '{rule}' sconosciuta", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "deletePushRuleCanNotBeUndone": "Se si elimina questa impostazione di notifica, questo non può essere annullato.", + "more": "Di più", + "newChatRequest": "📩 Nuova richiesta di chat", + "shareKeysWith": "Condividi le chiavi con...", + "shareKeysWithDescription": "Quali dispositivi dovrebbero essere fidati in modo che possano leggere i tuoi messaggi in chat crittografate?", + "allDevices": "Tutti i dispositivi", + "crossVerifiedDevicesIfEnabled": "Verifica incrociata dei dispositivi, se abilitata", + "crossVerifiedDevices": "Dispositivi con verifica incrociata", + "verifiedDevicesOnly": "Solo dispositivi verificati", + "appWantsToUseForLogin": "Usa '{server}' per accedere", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "open": "Apri", + "appWantsToUseForLoginDescription": "Con la presente consenti all'app e al sito web di condividere informazioni su di te.", + "waitingForServer": "In attesa del server...", + "synchronizingPleaseWaitCounter": " Sincronizzazione… ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "notificationRuleMemberEventDescription": "Silenzia le notifiche per gli eventi dei membri.", + "notificationRuleContainsDisplayName": "Contiene nome visualizzato", + "notificationRuleIsRoomMentionDescription": "Notifica l'utente quando c'è una menzione della stanza.", + "notificationRuleCall": "Chiamate", + "notificationRuleEncryptedRoomOneToOneDescription": "Notifica all'utente i messaggi in stanze crittografate one-to-one.", + "previous": "Precedente", + "otherPartyNotLoggedIn": "L'altra parte non è attualmente connessa e quindi non può ricevere messaggi!", + "takeAPhoto": "Scatta una foto", + "recordAVideo": "Registra un video", + "notSupportedOnThisDevice": "Non supportato su questo dispositivo", + "enterNewChat": "Inizia nuova chat", + "commandHint_roomupgrade": "Aggiorna questa stanza alla versione specificata", + "optionalMessage": "Messaggio (opzionale)...", + "approve": "Approva", + "youHaveKnocked": "Hai bussato", + "pleaseWaitUntilInvited": "Ora attendi, finché qualcuno dalla stanza non ti invita.", + "checkList": "Checklist", + "countInvited": "{count} invitati", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "sentVoiceMessage": "🎙️ {duration} - Messaggio vocale da {sender}", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "commandHint_logout": "Disconnetti questo dispositivo", + "commandHint_logoutall": "Disconnetti tutti i dispositivi attivi", + "displayNavigationRail": "Mostra barra di navigazione su mobile", + "customReaction": "Reazione personalizzata", + "moreEvents": "Altri eventi", + "declineInvitation": "Rifiuta invito", + "noMessagesYet": "Ancora nessun messaggio", + "longPressToRecordVoiceMessage": "Premi a lungo per registrare un messaggio vocale.", + "pause": "Pausa", + "resume": "Riprendi", + "editImage": "Modifica immagine", + "@editImage": { + "type": "String", + "placeholders": {} + }, + "rotateLeft": "Ruota a sinistra", + "@rotateLeft": { + "type": "String", + "placeholders": {} + }, + "rotateRight": "Ruota a destra", + "@rotateRight": { + "type": "String", + "placeholders": {} + }, + "mirror": "Specchia", + "@mirror": { + "type": "String", + "placeholders": {} + }, + "save": "Salva", + "@save": { + "type": "String", + "placeholders": {} + }, + "draw": "Disegna", + "@draw": { + "type": "String", + "placeholders": {} + }, + "undo": "Annulla", + "@undo": { + "type": "String", + "placeholders": {} + }, + "clear": "Ripulisci", + "@clear": { + "type": "String", + "placeholders": {} + }, + "eraser": "Cancellino", + "@eraser": { + "type": "String", + "placeholders": {} + }, + "crop": "Ritaglia", + "@crop": { + "type": "String", + "placeholders": {} + }, + "discardEdits": "Hai dei cambiamenti non salvati. Elimina le tue modifiche?", + "@discardEdits": { + "type": "String", + "placeholders": {} + }, + "changedTheChatDescription": "{username} ha cambiato la descrizione della chat", + "changedTheChatName": "{username} ha cambiato il nome della chat", + "showMore": "Mostra altro", + "showLess": "Mostra meno", + "removeFromSpaceDescription": "La chat verrà rimossa dallo spazio ma apparirà ancora nella tua lista delle chat.", + "countChats": "{chats, plural, =1{1 chat} other{{chats} chats}}", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "spaceMemberOf": "Membro dello spazio {spaces}", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "Membro dello spazio {spaces} può bussare", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "startPoll": "Avvia il sondaggio", + "endPoll": "Finisci il sondaggio", + "answersVisible": "Risposte visibili", + "pollQuestion": "Domanda di sondaggio", + "answerOption": "Opzione di risposta", + "addAnswerOption": "Aggiungi opzione di risposta", + "allowMultipleAnswers": "Consenti risposte multiple", + "pollHasBeenEnded": "Il sondaggio è stato concluso", + "countVotes": "{count, plural, =1{Un voto} other{{count} voti}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "answersWillBeVisibleWhenPollHasEnded": "Le risposte saranno visibili quando il sondaggio sarà terminato", + "replyInThread": "Rispondi in thread", + "countReplies": "{count, plural, =1{Una risposta} other{{count} risposte}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "thread": "Thread", + "backToMainChat": "Torna alla chat principale", + "saveChanges": "Salva modifiche", + "createSticker": "Crea sticker o emoji", + "useAsSticker": "Usa come sticker", + "useAsEmoji": "Usa come emoji", + "stickerPackNameAlreadyExists": "Il nome del pacchetto di stickers esiste già", + "newStickerPack": "Nuovo pacchetto di stickers", + "stickerPackName": "Nome del pacchetto stickers", + "attribution": "Attribuzione", + "skipChatBackup": "Salta backup delle chat", + "skipChatBackupWarning": "Sei sicuro? Senza attivare il backup di chat si può perdere l'accesso ai messaggi se si cambia dispositivo.", + "noMoreResultsFound": "Nessun ulteriore risultato trovato", + "chatSearchedUntil": "Chat ricercata fino a {time}", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "versionWithNumber": "Versione: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "signIn": "Accedi", + "createNewAccount": "Crea un nuovo account", + "signInGreeting": "Hai già un account su Matrix? Bentornato! Seleziona il tuo homeserver e accedi.", + "join": "Unisciti", + "searchOrEnterHomeserverAddress": "Cerca o inserisci l'indirizzo di un homeserver", + "matrixId": "ID Matrix", + "makeModerator": "Rendi moderatore", + "makeAdmin": "Rendi amministratore", + "removeModeratorRights": "Rimuovi i diritti di moderatore", + "removeAdminRights": "Rimuovi i diritti di amministratore", + "powerLevel": "Livello di permesso", + "setPowerLevelDescription": "I livelli di permesso definiscono cosa un membro può fare in questa stanza e di solito variano tra 0 e 100.", + "owner": "Proprietario", + "mute": "Silenzia", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "createNewChat": "Crea una nuova chat", + "supportFluffyChat": "Supporta FluffyChat", + "setLowPriority": "Imposta priorità bassa", + "unsetLowPriority": "Rimuovi priorità bassa", + "playSoundOnNotification": "Riproduci suono per le notifiche", + "addTag": "Aggiungi un'etichetta", + "removeTag": "Rimuovi l'etichetta", + "tagName": "Nome dell'etichetta", + "createNewTag": "Crea una nuova etichetta", + "hideRoomsInSpaces": "Nascondi le stanze che sono in uno spazio" +} diff --git a/lib/l10n/intl_ja.arb b/lib/l10n/intl_ja.arb new file mode 100644 index 0000000..c8e9369 --- /dev/null +++ b/lib/l10n/intl_ja.arb @@ -0,0 +1,2130 @@ +{ + "@@locale": "ja", + "@@last_modified": "2021-08-14 12:41:09.978060", + "about": "このアプリについて", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "承諾する", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍{username}が招待を承諾しました", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "アカウント", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐{username}がエンドツーエンド暗号化を有効にしました", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "Eメールを追加", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "admin": "管理者", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "エイリアス", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "すべて", + "@all": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName}は通話に出ました", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "誰でも参加できる", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "アプリのロック", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "archive": "アーカイブ", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "ゲストユーザーの参加を許可する", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "これでよろしいですか?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "ログアウトしてよろしいですか?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "他の人を署名するためにはパスフレーズやリカバリーキーを入力してください。", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "{username}の検証リクエストを承認しますか?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "badServerLoginTypesException": "ホームサーバーでサポートされているログインタイプ:\n{serverVersions}\nアプリがサポートしているログインタイプ:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "banFromChat": "チャットからBANする", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "BANされています", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username}が{targetName}をBANしました", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "デバイスをブロックする", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "ブロックしました", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "キャンセル", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "changeDeviceName": "デバイス名を変更", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username}がチャットアバターを変更しました", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username}がチャットの権限を変更しました", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username}が表示名を「{displayname}」に変更した", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username}がゲストのアクセスルールを変更しました", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username}がゲストのアクセスルールを{rules}に変更しました", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username}が履歴の表示設定を変更しました", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username}が履歴の表示設定を{rules}に変更しました", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username}が参加ルールを変更しました", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username}が参加ルールを{joinRules}に変更しました", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username}がアバターを変更しました", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username}が部屋のエイリアスを変更しました", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username}が招待リンクを変更しました", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "パスワードを変更", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "ホームサーバーの変更", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "スタイルを変更する", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "グループの名前を変更する", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "暗号が破損しています", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "チャット", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "チャットのバックアップ", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "チャットの詳細", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "チャット", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "強いパスワードを選択してください", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "アーカイブを消去", + "close": "閉じる", + "@close": { + "type": "String", + "placeholders": {} + }, + "compareEmojiMatch": "表示されている絵文字が他のデバイスで表示されているものと一致するか確認してください:", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "表示されている数字が他のデバイスで表示されているものと一致するか確認してください:", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "チャットの設定", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "連絡先に登録された人が招待されました", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "サーバー管理者に通報されました", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "クリップボードにコピーされました", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "コピー", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "クリップボードにコピー", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "メッセージを解読できませんでした: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count}名の参加者", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "作成", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username}がチャットを作成しました", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "currentlyActive": "現在アクティブです", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "ダーク", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "あなたのアカウントを無効化します。この操作は元に戻せません!よろしいですか?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "デフォルトの権限レベル", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "削除", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "アカウントの削除", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "メッセージの削除", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "デバイス", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "ダイレクトチャット", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "表示名が変更されました", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "ファイルのダウンロード", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "編集", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "ブロックしたサーバーを編集", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "表示名を編集", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "ルームエイリアスを編集", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "部屋のアバターを編集する", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Emoteはすでに存在します!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "不正なEmoteショートコード!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Emoteショートコード", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "空のチャット", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "emoteをグローバルに有効にする", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "暗号化を有効にする", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "一度暗号化を有効にするともとに戻せません。よろしいですか?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "暗号化", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "暗号化", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "暗号化されていません", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName}は通話を切断しました", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "メールアドレスを入力してください", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "fontSize": "フォントサイズ", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "転送", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "参加時点から閲覧可能", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "招待時点から閲覧可能", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "グループ", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "グループは公開されています", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "グループ", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupWith": "{displayname}とグループを作成する", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "ゲストは許可されていません", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "ゲストが許可されています", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{targetName}の招待を{username}が取り下げました", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "ヘルプ", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "不明なイベントを非表示にする", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignore": "無視する", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "無視されたユーザー", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "リンクをクリックしました", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "パスフレーズかリカバリーキーが間違っています", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "連絡先から招待する", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "連絡先から{groupName}に招待する", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "招待されました", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username} が {targetName} を招待しました", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "招待されたユーザーのみ", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username}があなたをFluffyChatに招待しました。\n1. FluffyChatをインストール: fluffychat.im \n2. アカウントの作成、またはサインインを行う\n3. 招待リンクを開く\n {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "が入力しています…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} がチャットに参加しました", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "部屋に参加", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username} は {targetName} をキックしました", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} が {targetName} をキックしブロックしました", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "チャットからキックする", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "最終アクティブ: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "退室する", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "退室しました", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "ライト", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "あと{count}名参加者を読み込む", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "読み込み中…お待ちください。", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "更に読み込む…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "login": "ログイン", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "{homeserver}にログインする", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "ログアウト", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "メンション", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "メッセージ", + "@messages": { + "type": "String", + "placeholders": {} + }, + "moderator": "モデレータ", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "チャットのミュート", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "新規チャット", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 FluffyChatに新しいメッセージがあります", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "認証リクエスト!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "次へ", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "いいえ", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "サーバーに接続できません", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Emoteは見つかりませんでした😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "ルームを非公開にした後暗号化を有効にできます。", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "あなたのスマホにはGoogleサービスがないようですね。プライバシーを保護するための良い選択です!プッシュ通知を受け取るには https://microg.org/ または https://unifiedpush.org/ を使うことをお勧めします。", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "パスワードを回復する方法をまだ追加していません。", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "権限がありません", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "部屋は見つかりませんでした…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "通知", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count}人が入力中…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "ok": "OK", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "オンライン鍵バックアップは使用されています", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "おっと、何かがうまくいきませんでした…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "アプリを開いてメッセージを確認してください", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "カメラを開く", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "participant": "参加者", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "パスフレーズかリカバリーキー", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "パスワード", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "パスワードを忘れた", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "パスワードが変更されました", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "パスワードリカバリー", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "ピン", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "パスコードを選んでください", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "メールのリンクから進めてください。", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "パスワードを入力してください", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "PINを入力してください", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "ユーザー名を入力してください", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "ウェブサイトにあるやり方を見てから次をタップしてください。", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "プライバシー", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "公開された部屋", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "理由", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username}がイベントを編集しました", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactMessage": "メッセージを削除", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reject": "拒否", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username}は招待を拒否しました", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "消去", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "他のデバイスをすべて削除", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "チャットからのブロックを解除する", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "部屋を新しいバージョンに変更する", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "返信", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "メッセージを通報", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "部屋はアップグレードされました", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "ルームバージョン", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "search": "検索", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "セキュリティ", + "@security": { + "type": "String", + "placeholders": {} + }, + "send": "送信", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "メッセージを送信", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAudio": "音声の送信", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "ファイルを送信", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "画像の送信", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "メッセージを送る", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "動画を送信", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username}はファイルを送信しました", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username}は音声を送信しました", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username}は画像を送信しました", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username}はステッカーを送信しました", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username}は動画を送信しました", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName}は通話情報を送信しました", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setAsCanonicalAlias": "メインエイリアスに設定", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "setStatus": "ステータスの設定", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "設定", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "共有", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username}は現在地を共有しました", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "skip": "スキップ", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "ソースコード", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName}は通話を開始しました", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "status": "ステータス", + "@status": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "お元気ですか?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "送信", + "@submit": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "システム", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "違います", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "一致しています", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "リクエストが多すぎます。また後で試してみてください!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "送信し直してみる", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username}が{targetName}のBANを解除しました", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "デバイスをブロック解除する", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "未知デバイス", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "未知の暗号化アルゴリズム", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "未知のイベント'{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "チャットをミュート解除する", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "ピンを外す", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username}と他{count}名が入力しています…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username}と{username2}が入力しています…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username}が入力しています…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪 {username}はチャットから退室しました", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username}は{type}イベントを送信しました", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verified": "検証済み", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "確認を始める", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "確認が完了しました!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "他のアカウントを確認中", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "チャット履歴の表示", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "すべての参加者が閲覧可能", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "すべての人が閲覧可能", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "ボイスメッセージ", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "パートナーのリクエスト承諾待ちです…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "パートナーの絵文字承諾待ちです…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "パートナーの数字承諾待ちです…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "警告!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "あなたにメールを送信しました", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "誰がどの操作を実行できるか", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "誰がこのチャットに入れますか", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "これを通報する理由", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "これらのアドレスを使用すると、パスワードを回復することができます。", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "メッセージを入力してください…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "はい", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "あなた", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "あなたはもうこのチャットの参加者ではありません", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "チャットからBANされてしまいました", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "あなたの公開鍵", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "スペースに追加", + "cantOpenUri": "URIが開けません {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "repeatPassword": "パスワードを繰り返そ", + "autoplayImages": "GIFを自動的に再生する", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "sendOnEnter": "Enterで送信", + "changeYourAvatar": "アバタるを変化しする", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "このユーザーを禁止する", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_clearcache": "キャッシュをクリアする", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandInvalid": "コマンドが無効", + "@commandInvalid": { + "type": "String" + }, + "commandHint_create": "空のグループチャットを作成\n暗号化を無効にするには、--no-encryption を使用", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_discardsession": "セッションを破棄", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "confirmMatrixId": "アカウントを削除するには、Matrix IDを確認してください。", + "commandHint_markasgroup": "グループとしてマーク", + "commandHint_join": "指定した部屋に参加", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_send": "テキストを送信", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "hydrate": "バックアップファイルから復元", + "commandHint_html": "HTML形式のテキストを送信", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "指定したユーザーをこの部屋に招待", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandMissing": "{command} はコマンドではありません。", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "oneClientLoggedOut": "クライアントの 1つがログアウトしました", + "addAccount": "アカウントを追加", + "editBundlesForAccount": "このアカウントのバンドルを編集", + "unverified": "未検証", + "sender": "送信者", + "unsupportedAndroidVersionLong": "この機能を利用するには、より新しいAndroidのバージョンが必要です。アップデートまたはLineage OSのサポートをご確認ください。", + "dehydrateWarning": "この操作は元に戻せません。バックアップファイルを安全に保存してください。", + "dehydrate": "セッションのエクスポートとデバイスの消去", + "youBannedUser": "{user} を禁止しました", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youJoinedTheChat": "チャットに参加しました", + "youHaveWithdrawnTheInvitationFor": "{user} への招待を取り下げました", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "users": "ユーザー", + "youRejectedTheInvitation": "招待を拒否しました", + "scanQrCode": "QRコードをスキャン", + "obtainingLocation": "位置情報を取得しています…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "addToBundle": "バンドルに追加", + "removeFromBundle": "このバンドルから削除", + "bundleName": "バンドル名", + "noMatrixServer": "{server1} はMatrixのサーバーではありません。代わりに {server2} を使用しますか?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "link": "リンク", + "or": "または", + "@or": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "アバターを削除する", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "saveFile": "ファイルを保存", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "スペースは公開されています", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "spaceName": "スペース名", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "messageInfo": "メッセージの情報", + "openGallery": "ギャラリーを開く", + "removeFromSpace": "スペースから削除", + "youAcceptedTheInvitation": "👍 招待を承諾しました", + "youUnbannedUser": "{user} の禁止を解除しました", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 {user} から招待されました", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKicked": "👞 {user} をキックしました", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKickedAndBanned": "🙅 {user} をキックしてブロックしました", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "storeInAppleKeyChain": "Apple KeyChainに保存", + "storeInAndroidKeystore": "Android KeyStoreに保存する", + "custom": "カスタム", + "countFiles": "{count}個のファイル", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "storeSecurlyOnThisDevice": "このデバイスに安全に保管する", + "whyIsThisMessageEncrypted": "このメッセージが読めない理由", + "synchronizingPleaseWait": "同期中...お待ちください。", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "emojis": "絵文字", + "markAsRead": "既読にする", + "confirmEventUnpin": "イベントの固定を完全に解除してもよろしいですか?", + "unsupportedAndroidVersion": "サポートされていないAndroidのバージョン", + "user": "ユーザー", + "noBackupWarning": "警告!チャットのバックアップを有効にしないと、暗号化されたメッセージにアクセスできなくなります。ログアウトする前に、まずチャットのバックアップを有効にすることを強くお勧めします。", + "disableEncryptionWarning": "セキュリティ上の理由から、以前は暗号化が有効だったチャットで暗号化を無効にすることはできません。", + "youInvitedUser": "📩 {user} を招待しました", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "reactedWith": "{sender} が {reaction} で反応しました", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "createNewSpace": "新しいスペース", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "reportUser": "ユーザーを報告", + "errorObtainingLocation": "位置情報の取得中にエラーが発生しました: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "pinMessage": "部屋にピン留めする", + "oopsPushError": "おっと!残念ながら、プッシュ通知の設定中にエラーが発生しました。", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "noOtherDevicesFound": "他のデバイスが見つかりません", + "shareLocation": "位置情報の共有", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "time": "時間", + "sendAsText": "テキストとして送信", + "@sendAsText": { + "type": "String" + }, + "commandHint_googly": "ぎょろ目を送る", + "commandHint_hug": "ハグを送る", + "encryptThisChat": "このチャットを暗号化する", + "commandHint_markasdm": "ダイレクトメッセージの部屋としてマークする", + "commandHint_dm": "ダイレクトチャットを開始する\n暗号化を無効にするには、--no-encryptionを使用してください", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_leave": "この部屋を退出", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_myroomavatar": "この部屋の写真を設定する (mxc-uriで)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "この部屋の表示名を設定する", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_plain": "書式設定されていないテキストを送信する", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "リアクションとして返信を送信する", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "locationDisabledNotice": "位置情報サービスが無効になっています。位置情報を共有できるようにするには、位置情報サービスを有効にしてください。", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "位置情報の権限が拒否されました。位置情報を共有できるように許可してください。", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "sorryThatsNotPossible": "申し訳ありません...それは不可能です", + "wasDirectChatDisplayName": "空のチャット (以前は {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "doNotShowAgain": "今後表示しない", + "newSpace": "新しいスペース", + "reopenChat": "チャットを再開する", + "notAnImage": "画像ファイルではありません。", + "aboutHomeserver": "{homeserver} について", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "noMoreChatsFound": "これ以上のチャットが見つかりません…", + "unread": "未読", + "space": "スペース", + "changedTheChatDescription": "{username}がチャットの説明を変更した", + "changedTheChatName": "{username}がチャットの名前を変更した", + "commandHint_kick": "入力のユーザーをこの部屋からキックする", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "countInvited": "{count}人を招待済み", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "createGroup": "グループを作成する", + "emoteKeyboardNoRecents": "最近使われた絵文字がここに表示されます…", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "globalChatId": "グローバルチャットID", + "calls": "通話", + "chatDescription": "チャットの説明", + "chatDescriptionHasBeenChanged": "チャットの説明が変更された", + "block": "ブロック", + "blockedUsers": "ブロック済みのユーザー", + "blockUsername": "ユーザー名を無視する", + "noChatDescriptionYet": "チャットの説明はまだ作成されていません。", + "tryAgain": "再試行", + "messagesStyle": "メッセージ:", + "shareInviteLink": "招待リンクを共有", + "openInMaps": "マップで開く", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "redactedBy": "{username}によって削除済み", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactedByBecause": "{username}によって削除済み。理由:「{reason}」", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "sendImages": "{count}つの画像を送信", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "synchronizingPleaseWaitCounter": " 同期中…({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "importEmojis": "絵文字をインポート", + "importNow": "今すぐインポート", + "importFromZipFile": ".zipファイルからインポート", + "exportEmotePack": "エモートパックを.zipでエクスポート", + "replace": "置き換え", + "commandHint_roomupgrade": "このルームを特定のルームバージョンにアップグレード", + "commandHint_cuddle": "笑顔を送る", + "googlyEyesContent": "{senderName}がギョロ目を送りました", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "cuddleContent": "{senderName}が笑顔を送りました", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "hugContent": "{senderName}がハグしました", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "appLockDescription": "未使用時にアプリをPINコードでロック", + "sendTypingNotifications": "入力通知を送信", + "swipeRightToLeftToReply": "左にスワイプして返信", + "noChatsFoundHere": "ここにはまだチャットがありません。下のボタンを使ってみんなと新しいチャットを始めましょう。⤵️", + "commandHint_unban": "このルームから禁止されたユーザーを解禁する", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "chatPermissions": "チャット権限", + "checkList": "チェックリスト", + "accessAndVisibility": "アクセスと範囲", + "accessAndVisibilityDescription": "誰がこのチャットに参加できて、どのように発見することができるか。", + "customEmojisAndStickers": "カスタム絵文字とステッカー", + "customEmojisAndStickersBody": "どのチャットでも利用可能なカスタム絵文字やステッカーを追加・共有します。", + "hideRedactedMessages": "削除されたメッセージを隠す", + "hideRedactedMessagesBody": "誰かがメッセージを削除した場合、このメッセージはそれ以降チャット内では見えなくなります。", + "hideInvalidOrUnknownMessageFormats": "無効であるか不明なメッセージ形式を隠す", + "blockListDescription": "迷惑なユーザーをブロックすることができます。あなたの個人的なブロックリストに記載されたユーザーは、あらゆるメッセージやルームへの招待を受け取ることができません。", + "invalidServerName": "無効なサーバー名", + "redactMessageDescription": "メッセージはこの会話のすべての参加者から削除されます。これは取り消すことができません。", + "commandHint_op": "ユーザーの権限レベルを付与する(デフォルト:50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "optionalRedactReason": "(オプション)メッセージを削除する理由…", + "passwordRecoverySettings": "パスワードの復元設定", + "setChatDescription": "チャットの説明を設定", + "hasKnocked": "🚪 {user}がノックしました", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "usersMustKnock": "ユーザーはノックする必要があります", + "noOneCanJoin": "誰も参加できません", + "knock": "ノック", + "fileIsTooBigForServer": "送信できません!このサーバーは添付数は{max}個までです。", + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "fileHasBeenSavedAt": "ファイルは {path} に保存されています", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "jumpToLastReadMessage": "最後に閲覧したメッセージまで移動する", + "readUpToHere": "ここまで既読です", + "jump": "移動", + "openLinkInBrowser": "リンクをブラウザで開く", + "reportErrorDescription": "😭 おっと。問題が発生しました。必要があれば、このバグを開発者に報告することができます。", + "setColorTheme": "カラーテーマの設定:", + "invite": "招待", + "inviteGroupChat": "📨 グループチャットへ招待する", + "invalidInput": "無効な入力です!", + "wrongPinEntered": "誤ったPINが入力されました!{seconds}秒後に再試行してください…", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "pleaseEnterANumber": "0以上の数値を入力してください", + "archiveRoomDescription": "チャットはアーカイブに移動されます。他のユーザーはあなたが退出したチャットを見ることができます。", + "roomUpgradeDescription": "チャットは新しい部屋バージョンで再作成されます。全参加者に新しいチャットへ切り替える必要があることが通知されます。部屋バージョンについては https://spec.matrix.org/latest/rooms/ をご覧ください", + "removeDevicesDescription": "このデバイスからログアウトするとメッセージを受け取ることができません。", + "banUserDescription": "ユーザーをチャットからBANすると、BANを解除されるまで再入室することはできません。", + "unbanUserDescription": "ユーザーが再試行時に再入室することができます。", + "pushNotificationsNotAvailable": "プッシュ通知は利用できません", + "learnMore": "詳しく知る", + "yourGlobalUserIdIs": "あなたのグローバルユーザーID: ", + "knocking": "ノックしています", + "searchChatsRooms": "#チャット,@ユーザーで検索…", + "nothingFound": "何も見つかりませんでした…", + "groupName": "グループ名", + "createGroupAndInviteUsers": "グループを作成してユーザーを招待する", + "groupCanBeFoundViaSearch": "グループは検索で見つけることができます", + "commandHint_sendraw": "生のJSONを送信する", + "databaseMigrationTitle": "データベースは最適化されています", + "databaseMigrationBody": "しばらくお待ちください。この操作は時間がかかります。", + "searchForUsers": "@ユーザー で検索…", + "pleaseEnterYourCurrentPassword": "現在のパスワードを入力してください", + "newPassword": "新しいパスワード", + "pleaseChooseAStrongPassword": "強力なパスワードを選択してください", + "markAsUnread": "未読としてマーク", + "userLevel": "{level} - ユーザー", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "moderatorLevel": "{level} - モデレーター", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "adminLevel": "{level} - 管理者", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeGeneralChatSettings": "全体のチャット設定を変更する", + "inviteOtherUsers": "他のユーザーをこのチャットに招待する", + "changeTheChatPermissions": "チャット権限を変更する", + "changeTheDescriptionOfTheGroup": "チャットの説明を変更する", + "updateInstalled": "🎉 アップデート {version} をインストールしました!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "changelog": "変更履歴", + "sendCanceled": "送信を取り消しました", + "loginWithMatrixId": "Matrix-IDでログイン", + "calculatingFileSize": "ファイルサイズを計算しています…", + "oneOfYourDevicesIsNotVerified": "いずれかのデバイスが認証されていません", + "noticeChatBackupDeviceVerification": "注意:すべてのデバイスをチャットのバックアップに接続している場合、それらは自動的に認証されます。", + "continueText": "続ける", + "blur": "ぼかし:", + "opacity": "透過度:", + "setWallpaper": "壁紙を設定する", + "manageAccount": "アカウント管理", + "noContactInformationProvided": "サーバーから有効な連絡先情報が提供されていません", + "supportPage": "サポートページ", + "serverInformation": "サーバー情報:", + "name": "名前", + "version": "バージョン", + "website": "ウェブサイト", + "compress": "圧縮", + "boldText": "太字", + "italicText": "斜体", + "invalidUrl": "無効なURL", + "addLink": "リンクを追加", + "appWantsToUseForLogin": "'{server}' を使用してログインする", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "open": "開く", + "waitingForServer": "サーバーを待機中…", + "newChatRequest": "📩 新しいチャットを要求", + "contentNotificationSettings": "コンテンツ通知設定", + "generalNotificationSettings": "全体通知設定", + "roomNotificationSettings": "部屋通知設定", + "userSpecificNotificationSettings": "ユーザー毎の通知設定", + "otherNotificationSettings": "その他の通知設定", + "notificationRuleContainsUserName": "ユーザー名を含む", + "notificationRuleContainsUserNameDescription": "ユーザー名がメッセージに含まれる場合に通知します。", + "notificationRuleMaster": "すべての通知をミュート", + "notificationRuleSuppressNotices": "自動化されたメッセージを控える", + "notificationRuleSuppressNoticesDescription": "Botのような自動化されたクライアントからの通知を抑制します。", + "notificationRuleInviteForMeDescription": "ユーザーが部屋に招待されたときに通知します。", + "notificationRuleMasterDescription": "全ルールを上書きして通知をすべて無効にします。", + "notificationRuleIsUserMention": "ユーザーの言及", + "notificationRuleIsUserMentionDescription": "ユーザーがメッセージ内で直接言及されたときに通知します。", + "join": "参加", + "today": "今日", + "yesterday": "昨日", + "replyInThread": "スレッドで返信", + "select": "選択" +} \ No newline at end of file diff --git a/lib/l10n/intl_ka.arb b/lib/l10n/intl_ka.arb new file mode 100644 index 0000000..8fd0919 --- /dev/null +++ b/lib/l10n/intl_ka.arb @@ -0,0 +1,1962 @@ +{ + "alias": "მეტსახელი", + "@alias": { + "type": "String", + "placeholders": {} + }, + "appLockDescription": "პინკოდის გამოყენების გარეშე აპლიკაციის ბლოკირება", + "commandHint_hug": "მეგობრული ჩახუტვის გაგზავნა", + "areYouSure": "დარწმუნებული ხართ?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "დარწმუნებული ხართ, რომ გამოსვლა გსურთ?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "hugContent": "{senderName} მეგობრულად გეხუტება", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "askSSSSSign": "სხვა მომხმარებლის დადასტურებლად, გთხოვთ, ჩაწეროთ თქვენი ან საიდუმლო ფრაზა, ან აღდგენის გასაღები.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "autoplayImages": "ანიმირებული სტიკერებისა და ემოჯების ავტომატური ჩართვა", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "banFromChat": "ჩატიდან გაგდება და ბლოკირება", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "დაბლოკილია", + "@banned": { + "type": "String", + "placeholders": {} + }, + "badServerLoginTypesException": "ამ სერვერს აქვს შესვლის მეთოდების მხარდაჭერა:\n{serverVersions}\nმაგრამ ამ აპლიკაციას აქვს მხარდაჭერა მხოლოდ:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "sendOnEnter": "გაგზავნა enter-ის დაჭერისას", + "bannedUser": "{username} დაბლოკა {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "მოწყობილების ბლოკირება", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "დაბლოკილია", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "გაუქმება", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "changedTheHistoryVisibilityTo": "{username} შეცვალა ისტორიის ხილვადობა: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} გაწევრიანების წესები შეცვალა", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} შეცვალა პროფილის ფოტო", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "chat": "ჩატი", + "@chat": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "პროფილის ფოტოს შეცვლა", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "დაშიფვრა დაზიანდა", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "commandHint_discardsession": "სესიის გაუქმება", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_invite": "მოცემული მომხმარებლის მოწვევა ამ ოთახში", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_plain": "არაფორმატირებული ტექსტის გაგზავნა", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_send": "ტექსტის გაგზავნა", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandMissing": "{command} არაა ბრძანება.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "countParticipants": "{count} მონაწილე", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "createGroup": "ჯგუფის შექმნა", + "deactivateAccountWarning": "ეს გააუქმებს თქვენს ანგარიშს. ამის გაუქმება შეუძლებელია. დარწმუნებული ხართ?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "devices": "მოწყობილებები", + "@devices": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "ბნელი", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "chatPermissions": "ჩატის უფლებები", + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "editRoomAliases": "ოთახის მეტსახელების შეცვლა", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "ეს ემოცია უკვე არსებობს!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "ემოციის არასწორი მოკლე კოდი!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "importNow": "დაიმპორტება", + "importEmojis": "ემოჯის დაიმპორტება", + "importFromZipFile": "იმპორტი .zip ფაილიდან", + "exportEmotePack": "ემოციების .zip ფაილში ექსპორტი", + "replace": "ჩანაცვლება", + "accept": "თანხმობა", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username}-მ(ა) მიიღო მოწვევა", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "ანგარიში", + "@account": { + "type": "String", + "placeholders": {} + }, + "addEmail": "ელ.ფოსტის დამატება", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "confirmMatrixId": "გთხოვთ, დაადასტუროთ თქვენი Matrix ID ანგარიშის წაშლისათვის.", + "addToSpace": "სივრცეში დამატება", + "admin": "ადმინი", + "@admin": { + "type": "String", + "placeholders": {} + }, + "all": "ყველა", + "@all": { + "type": "String", + "placeholders": {} + }, + "commandHint_cuddle": "ჩახუტების გაგზავნა", + "answeredTheCall": "{senderName} უპასუხა ზარს", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "ყველას შეუძლია გაწევრიანება", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "აპლიკაციის ბლოკირება", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "archive": "არქივი", + "@archive": { + "type": "String", + "placeholders": {} + }, + "commandHint_googly": "გამოშტერილი თვალების გაგზავნა", + "googlyEyesContent": "{senderName} გამოშტერილ თვალებს გიგზავნის", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "cuddleContent": "{senderName} გეხუტება", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "areGuestsAllowedToJoin": "შეუძლიათ სტუმარ მომხმარებლებს გაწევრება?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "მიიღებთ {username} დადასტურების მოთხოვნას?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sendTypingNotifications": "წერის შეტყობინების გაგზავნა", + "cantOpenUri": "ვერ იხსნება ბმული {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changeDeviceName": "მოწყობილების გადარქმევა", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} ჩატის ფოტო შეცვალა", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} ჩატის უფლებები შეცვალა", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} შეცვალა სტუმრების წვდომის წესები", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} შეცვალა სტუმრების წვდომის წესები: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} შეცვალა ისტორიის ხილვადობა", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} გაწევრიანების წესები შეცვალა: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} ოთახის მეტსახელები შეცვალა", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} მოწვევის ბმული შეცვალა", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "პაროლის შეცვლა", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "სახლის სერვერის შეცვლა", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "სტილის შეცვლა", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "ჯგუფის გადარქმევა", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "ჩატის სარეზერვო საშუალება", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "ჩატის დეტალები", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "ჩატები", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "ძლიერი პაროლი აარჩიეთ", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "არქივის გაწმენდა", + "close": "დახურვა", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_markasgroup": "აღნიშვნა, როგორც ჯგუფის", + "commandHint_ban": "მოცემული მომხმარებლის ბლოკირება ამ ოთახში", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_clearcache": "­ქეშის გაწმენდა", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_join": "მოცემულ ოთახში გაწევრიანება", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "მოცემული მომხმარებლის წაშლა ამ ოთახიდან", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "ამ ოთახიდან გასვლა", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "აღწერეთ თქვენი თავი", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_unban": "ამ ოთახში მომხმარებლისგან ბლოკის მოხსნა", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandInvalid": "არასწორი ბრძანება", + "@commandInvalid": { + "type": "String" + }, + "compareEmojiMatch": "გთხოვთ, შეადაროთ ეს ემოჯი", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "გთხოვთ, შეადაროთ ეს რიცხვები", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "ჩატის კონფიგურაცია", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "კონტაქტი მოწვეული იქნა ჯგუფში", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "კოპირებულია ბუფერში", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "კოპირება", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "კოპირება ბუფერში", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "შეტყობინების გაშიფვრის შეცდომა: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "create": "შექმნა", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} შექმნა ჩატი", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "createNewSpace": "ახალი სივრცე", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "ახლა აქტიურია", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "delete": "წაშლა", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "ანგარიშის წაშლა", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "შეტყობინების წაშლა", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "directChats": "პირდაპირი ჩატები", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "ფაილის ჩატვირთვა", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "რედაქტირება", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "ბლოკირებული სერვერების რედაქტირება", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "ოთახის ფოტოს შეცვლა", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "globalChatId": "გლობალური ჩატის ID", + "repeatPassword": "გაიმეორეთ პაროლი", + "notAnImage": "ფაილი არაა სურათი.", + "remove": "წაშლა", + "@remove": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username}-მ(ა) გააქტიურა end to end დაშიფვრა", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "supposedMxid": "ეს უნდა იყოს {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "about": "შესახებ", + "@about": { + "type": "String", + "placeholders": {} + }, + "changedTheDisplaynameTo": "{username} შეცვალა ნაჩვენები სახელი: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "commandHint_create": "ცარიელი ჯგუფური ჩატის შექმნა\nგამოიყენეთ --no-encryption გაშიფვრის გასათიშად", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_dm": "პირდაპირი ჩატის დაწყება\nგამოიყენეთ --no-encryption გაშიფვრის გასათიშად", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_html": "HTML ფორმატირებული ტექსტის გაგზავნა", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_myroomavatar": "თქვენი ფოტოს დაყენება ამ ოთახისათვის(mxc-uri-ს დახმარებით)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "ამ ოთახისათვის ნაჩვენები სახელის დაყენება", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "მოცემული მომხმარებლისათვის უფლებების დონის დაყენება (ჩვეულებრივ: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_react": "რეაქციის სახით პასუხის გაგზავნა", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "contentHasBeenReported": "ეს კონტენტი გაგზავნილ იქნა სერვერის ადმინისტრატორებთან", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "ნაგულისხმევი უფლების დონე", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "ნაჩვენები სახელი შეიცვალა", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "ნაჩვენები სახელის შეცვლა", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "aboutHomeserver": "{homeserver}-ის შესახებ", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "@reply": { + "type": "String", + "placeholders": {} + }, + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "@encryption": { + "type": "String", + "placeholders": {} + }, + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@invited": { + "type": "String", + "placeholders": {} + }, + "@warning": { + "type": "String", + "placeholders": {} + }, + "@password": { + "type": "String", + "placeholders": {} + }, + "@goToSpace": { + "type": "String", + "space": {} + }, + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@videoCall": { + "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": {} + }, + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "@writeAMessage": { + "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" + } + } + }, + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "@next": { + "type": "String", + "placeholders": {} + }, + "@pleaseFollowInstructionsOnWeb": { + "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": {} + }, + "@no": { + "type": "String", + "placeholders": {} + }, + "@unpin": { + "type": "String", + "placeholders": {} + }, + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@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": {} + }, + "@reason": { + "type": "String", + "placeholders": {} + }, + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "@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": {} + }, + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@submit": { + "type": "String", + "placeholders": {} + }, + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@participant": { + "type": "String", + "placeholders": {} + }, + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "@yes": { + "type": "String", + "placeholders": {} + }, + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "@help": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@moderator": { + "type": "String", + "placeholders": {} + }, + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "@ok": { + "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!" + }, + "@sendAsText": { + "type": "String" + }, + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "@newChat": { + "type": "String", + "placeholders": {} + }, + "@notifications": { + "type": "String", + "placeholders": {} + }, + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "@mention": { + "type": "String", + "placeholders": {} + }, + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@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": {} + }, + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "@forward": { + "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": {} + }, + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "@status": { + "type": "String", + "placeholders": {} + }, + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@encrypted": { + "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": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@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": {} + }, + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "@you": { + "type": "String", + "placeholders": {} + }, + "@search": { + "type": "String", + "placeholders": {} + }, + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "@logout": { + "type": "String", + "placeholders": {} + }, + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@groups": { + "type": "String", + "placeholders": {} + }, + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@messages": { + "type": "String", + "placeholders": {} + }, + "@login": { + "type": "String", + "placeholders": {} + }, + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "@settings": { + "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" + } + } + }, + "@reject": { + "type": "String", + "placeholders": {} + }, + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@visibleForEveryone": { + "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" + } + } + }, + "@privacy": { + "type": "String", + "placeholders": {} + }, + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "@pin": { + "type": "String", + "placeholders": {} + }, + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "@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": {} + } +} \ No newline at end of file diff --git a/lib/l10n/intl_kab.arb b/lib/l10n/intl_kab.arb new file mode 100644 index 0000000..7f5c694 --- /dev/null +++ b/lib/l10n/intl_kab.arb @@ -0,0 +1,2353 @@ +{ + "@@locale": "kab", + "repeatPassword": "Ales awal n uɛeddi", + "notAnImage": "Mačči d afaylu n tugna.", + "remove": "Kkes", + "@remove": { + "type": "String", + "placeholders": {} + }, + "importNow": "Kter tura", + "importEmojis": "Kter imujiten", + "importFromZipFile": "Kter seg ufaylu .zip", + "exportEmotePack": "Sifeḍ akemmus n Izamulen uḥulfu am .zip", + "replace": "Semselsi", + "about": "Ɣef", + "aboutHomeserver": "Ɣef {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "accept": "Qbel", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} yeqbel tinubga", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Amiḍan", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} irmed awgelhen seg yixef ɣer yixef", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "Rnu imayl", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "confirmMatrixId": "Ttxil-ik·im, sentem asulay-ik·im n Matriks akken ad tekkseḍ amiḍan-ik·im.", + "supposedMxid": "A win yufan, ad yili d {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "addToSpace": "Rnu ɣer tallunt", + "admin": "Anedbal", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "Tazaẓlut", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Meṛṛa", + "@all": { + "type": "String", + "placeholders": {} + }, + "commandHint_roomupgrade": "Sali aswir n txxamt-agi ɣer lqem n texxamt i d-yettunefken", + "answeredTheCall": "{senderName} yerra-d i usiwel", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Yal yiwen yezmer ad yettekki", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "Asekkeṛ n usnas", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "appLockDescription": "Sekkeṛ asnas ticki ur tseqdaceḍ ara s tengalt n pin", + "archive": "Aɣbaṛ", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Iseqdacen inebgiwen ttusirgen ad ttekkin", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Tetḥeqqeḍ?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "D tidet tebɣiḍ ad teffɣeḍ?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Iwakken ad teszmeleḍ amdan-nniḍen, ttxil-k·m sekcem tafyirt-ik·im n uḥraz s wudem aɣelsan neɣ tasarut n tririt.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Qbel asuter-agi n usenqed seg {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "banFromChat": "Gdel seg adiwenni", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Yettwagdel", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} yegdel {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Sewḥel ibenk", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "Yettusewḥel", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "Sefsex", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "Ur yezmir ara ad yeldi URl {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changeDeviceName": "Snifel isem n yibenk", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} yesnifel avaṭar n udiwenni", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatDescription": "{username} yesnifel aglam n udiwenni", + "changedTheChatName": "{username} yesnifel isem n udiwenni", + "changedTheChatPermissions": "{username} yesnifel tisirag n udiwenni", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} yesnifel tisirag n udiwenni ɣer: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "chat": "Adiwenni", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Aḥraz n udiwenni", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Ifatusen n udiwenni", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Idiwenniyen", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Fren awal n uɛeddi iǧehden", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Sfeḍ aɣbaṛ", + "close": "Mdel", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_markasdm": "Creḍ d akken taxxamt n yizen usrid i Usulay Matriks i d-yettunefken", + "commandHint_markasgroup": "Creḍ am ugraw", + "commandHint_ban": "Gdel aseqdac i d-ittunefken seg texxamt-agi", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_clearcache": "Sfeḍ tazarkatut", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_create": "Snulfu-d agraw n udiwenni ilem\nSeqdec -- war awgelhen i tukksa n uwgelhen", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_discardsession": "Kkes tiɣimit", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_dm": "Senker adiwenni usrid\nSeqdec --war awgelhen i tukksa n uwgelhen", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_html": "Azen aḍris s umasal HTML", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Snubg aseqdac i d-ittunefken ɣer texxamt-agi", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "Ddu ɣer texxamt i d-ittunefken", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "Kkes aseqdac i d-ittunefken seg texxamt-agi", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "Ffeɣ seg texxamt-a", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "Glem-d iman-ik·im", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_myroomavatar": "Sbadu tawlaft-ik·im i texxamt-a (s mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "Sbadu isem n uskan i texxamt-agi", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "Sbadu aswir n tnezmert n useqdac i d-ittunefken (amezwer: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "createNewSpace": "Tallunt tamaynut", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "Yermed akka tura", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Ubrik", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{timeOfDay}, {date}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Ayagi ad yekkes armed i umiḍan-ik·im n useqdac. Aya ur yezmir ara ad yettwasefsex. Tetḥeqqeḍ s tidet?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Aswir n turagt amezwer i yiseqdacen imaynuten", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "kkes", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "kkes amiḍan", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "kkes izen", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Ibenkan", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Idiwenniyen Usriden", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Isem n uskan yettusnifel", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Sider afaylu", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "Ẓreg", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Ẓreg iqeddacen yettusweḥlen", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "chatPermissions": "Isirigen n Udiwenni", + "encrypted": "Yettwawgelhen", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Awgelhen", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Awgelhen ur yettwarmed ara", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} ifukk asiwel", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Sekcem tansa n yimayl", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Tuccḍa deg wawway n yideg: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "fontSize": "Tiddi n tsefsit", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "Ɣer zdat", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Seg unekcam-is", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Seg tinubga", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Agraw", + "@group": { + "type": "String", + "placeholders": {} + }, + "chatDescription": "Aglam n udiwenni", + "chatDescriptionHasBeenChanged": "Aglam n udiwenni yettwabeddel", + "groupIsPublic": "Agraw d azayez", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "Igrawen", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Agraw s {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "tryAgain": "Ɛreḍ tikkelt-nniḍen", + "invalidServerName": "Isem n uqeddac d armeɣtu", + "invited": "Yettwaɛreḍ", + "@invited": { + "type": "String", + "placeholders": {} + }, + "redactMessageDescription": "Izen ad yettwakkesn i imttekkiyen merra deg udiwenni-agi. Ur tezmireḍ ara ad tesfesxeḍ.", + "optionalRedactReason": "(Afrayan) Sebba n tukksa n izen-agi…", + "invitedUser": "📩 {username} yenced {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Iseqdacen kan yettwaɛerḍen", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "isTyping": "la yettaru…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋{username} yekcem ɣer udiwenni", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Tekki deg texxamt", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞{username} yessuffeɣ-d {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} yessuffeɣ-d udiɣ igdel {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Suffeɣ seg udiwenni", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Yermed i tikkelt taneggarut: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Eǧǧ", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Ffeɣ seg udiwenni", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Aceɛlal", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Sali-d ugar n {count} yimttekkiyen", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dehydrate": "Sifeḍ tiɣimit akked usfaḍ n yibenk", + "dehydrateWarning": "Tigawt-agi ur tezmir ara ad tettwasefsex. Tḥeqqeq belli tesseklaseḍ afaylu n weḥraz.", + "hydrate": "Err-d seg ufaylu n weḥraz", + "loadingPleaseWait": "Asali... Ttxil-k·m arǧu.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Yettwanɣel ɣer tecfawit", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Nɣel", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Nɣel ɣer tecfawit", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Ur izmer ara tukksa n uwgelhen n yizen: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "checkList": "Senqed tabdart", + "countParticipants": "{count} imttekkiyen", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "countInvited": "{count} yettwaɛerḍen", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Snulfu-d", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} yesnulfa-d adiwenni", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "createGroup": "Snulfu-d agraw", + "editDisplayname": "Ẓreg isem n ubeqqeḍ", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Ẓreg avaṭar n texxamt", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Azamul uḥulfu yella yakan!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Tangalt tawezlant n uzamul uḥulfu d tarmeɣtut!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteKeyboardNoRecents": "Izamulen uḥulfu yettwasqedcen melmi kan ad banen dagi…", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "globalChatId": "Asulay n udiwenni amatu", + "accessAndVisibility": "Addaf d twalit", + "accessAndVisibilityDescription": "Anwa i yesɛan turagt ad yernu ɣer udiwenni-agi u amek adiwenni yezmer ad yettwaf.", + "calls": "Isawalen", + "customEmojisAndStickers": "Imujiten yugnen akked tcṛeṭ n tesfift", + "customEmojisAndStickersBody": "Rnu neɣ bḍu imujiten yugnen neɣ tcṛeṭ n tesfift i zemren ad ttwasqedcen deg yal adiwenni.", + "emptyChat": "Adiwenni d ilem", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Sermed akemmus n uzamul uḥulfu s wudem amatu", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Rmed awgelhen", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Ur tettizmireḍ ara ad tessenseḍ awgelhen syagi ɣer zdat. Tetḥeqqeḍ s tidet?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "login": "Anekcam", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Anekcam ɣer {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Tuffɣa", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Abdar", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "Iznan", + "@messages": { + "type": "String", + "placeholders": {} + }, + "messagesStyle": "Iznan:", + "muteChat": "Sgugem adiwenni", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Adiwenni Amaynut", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Izen amaynut deg FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Asuter amaynut n uselken!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "Uḍfir", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "Ala", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Ulac tuqqna ɣer uqeddac", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Tzemreḍ kan ad tesremdeḍ awgelhen akken kan ara tuɣal taxxamt s war anekcum azayez.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Ulac izamulen uḥulfu yettwafen. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} ur yelli d aqeddac matriks, seqdec axir {server2} ?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "shareInviteLink": "Bḍu aseɣwen n tinubga", + "noPasswordRecoveryDescription": "Mazal ur terniḍ ara tarrayt akken ad terreḍ awal-ik·im n uɛeddi.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Ulac tasiregt", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Ulac taxxamt i yettwafen…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Ilɣa", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} n iseqdacen la yettarun…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "obtainingLocation": "Aguccel n wadig…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Ẓreg tizeẓla n taxxamt", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "link": "Aseɣwen", + "or": "Neɣ", + "@or": { + "type": "String", + "placeholders": {} + }, + "participant": "Imttekki", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "tafyirt n uɛeddi neɣ tasarut n tririt", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Awal n uɛeddi", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Awal n uɛeddi yettwattun", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Awal n uɛeddi yettusnifel", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecoverySettings": "Iɣewwaṛen n tririt n wawal n uɛeddi", + "passwordRecovery": "Tiririt n wawal n uɛeddi", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Ttxil-k·m fren tangalt n uɛeddi", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Ma ulac aɣilif, sit ɣef useɣwen yellan deg imayl sakin kemmel.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} akked {count} nniḍen la ad ttarun…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} akked {username2} la ad ttarun…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} la yettaru…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪{username} yeffeɣ seg udiwenni", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} yuzen-d tadyant {type}", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "unverified": "Ur yettwaselken ara", + "verified": "Yettwaselken", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Bdu Aselken", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Yedda uselken-ik·im akken iwata!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Aselken n imiḍanen nniḍen", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Tawalit n uzray n udiwenni", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Yettban i yimttekkiyen meṛṛa", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Yettban i yal yiwen", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Izen n taɣect", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Araǧu n uneblag ad yeqbel asuter…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Araǧu n uneblag ad yeqbel imujit…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Araǧu n uneblag ad yeqbel uṭṭunen…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Ɣur-k·m!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Nuzen-ak-d imayl", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Anwa i izemren ad yexdem anta tigawt", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Anwa i izemren ad yernu ɣer ugraw-agi", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Ayɣer tebɣiḍ ad temleḍ aya?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "S tansiwin-agi i tzemreḍ ad terreḍ awal-ik·im n uɛeddi.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Aru izen…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Ih", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "kečč·em", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Ur mazal ara tettekkaḍ deg udiwenni-a", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Tettwagedleḍ seg udiwenni-agi", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Tasarut-ik·im tazayezt", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "messageInfo": "Talɣut n yizen", + "time": "Akud", + "sender": "Amazan", + "openGallery": "Ldi timidelt", + "removeFromSpace": "Kkes seg tallunt", + "markAsRead": "Creḍ amzun yettwaɣṛa", + "reportUser": "Cetki aseqdac", + "reactedWith": "{sender} err-d s {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "pinMessage": "Senteḍ ɣer texxamt", + "confirmEventUnpin": "Tebɣiḍ ad tekkseḍ s wudem imezgi asenṭed n tadyant-nni?", + "emojis": "Imujiten", + "removeAllOtherDevices": "Kkes akk ibenkan-nniḍen", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Kkes agdal seg udiwenni", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Kkes avaṭar-ik·im", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Semselsi taxxamt s lqem amaynut", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "Err", + "@reply": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Anermis yettwaɛreḍ ɣer ugraw", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "Agbur yettwammel i inedbalen n uqeddac", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Ttekkiɣ ɣef useɣwen", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Tafyirt n uɛeddi neɣ tasarut n tririt d tarameɣtut", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Snubg anermis", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Snubg anermis ɣer {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "noChatDescriptionYet": "Ulac aglam n udiwenni i d-yenulfan yakan.", + "inviteText": "{username} yeɛreḍ-ik·m ɣer FluffyChat.\n1. Rzu ɣer fluffychat.im syin sbedd asnas \n2. Jerred neɣ kcem \n3. Ldi aseɣwen n tinubga: \n {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "configureChat": "Swel adiwenni", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "block": "Iḥder", + "blockedUsers": "Iseqdacen yettusweḥlen", + "blockUsername": "Zgel isem n useqdac", + "loadMore": "Sali-d ugar…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "Imeẓla n wadig nsan. Ma ulac aɣilif, rmed-iten akken ad izmiren ad bḍun ideg-ik·im.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "Tisirag n wadig tettwagdel. Ttxil-k·m efk-asen amek ara bḍun ideg-ik·im.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "scanQrCode": "Semḍen tangalt QR", + "ok": "iH", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Aḥraz n tsarut deg uẓeṭṭa yermed", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "unread": "Ur yettwaɣri ara", + "sendOnEnter": "Azen ɣef Kcem", + "space": "Tallunt", + "oopsPushError": "Ayhu! nesḥissif, teḍra-d tuccḍa deg usbadu n yilɣa usriden.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Ihuh, yella wayen ur neddi ara…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Ldi asnas akken ad teɣreḍ iznan", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Ldi takamiṛat", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "moreEvents": "Ugar n ineḍruyen", + "declineInvitation": "Agi tinnubga", + "noMessagesYet": "Ulac iznan akka tura", + "longPressToRecordVoiceMessage": "Asiti aɣezzfan i usekles n yizen n taɣect.", + "pause": "Serǧu", + "resume": "Kemmel", + "removeFromSpaceDescription": "Adiwenni ad yettwakkes seg tallunt maca mazal ad yettban deg tebdart-ik·im n udiwenni.", + "countChats": "{chats} idiwenniyen", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "spaceMemberOf": "Aɛeggal n tallunt n {spaces}", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "startPoll": "Senker tafrent", + "endPoll": "Eg taggara n tafrent", + "answersVisible": "Tiririyin yettbanen", + "pollQuestion": "Isteqsiyen n tefrent", + "answerOption": "tanefrunt n tririt", + "addAnswerOption": "Rnu tanefrunt n tririt", + "allowMultipleAnswers": "Sireg aget n tiririyin", + "pollHasBeenEnded": "Tafrent tfukk", + "answersWillBeVisibleWhenPollHasEnded": "Tiririyin ad banent ticki tafrent tfukk", + "replyInThread": "Err deg udras udiwenni", + "thread": "Adras udiwenni", + "oneOfYourDevicesIsNotVerified": "iwen seg ibenkan-ik·im ur yettusenqed ara", + "noticeChatBackupDeviceVerification": "Tamawt: Mi ara teqqneḍ akk ibenkan-ik·im ɣer weḥraz udiwenni, ttusneqden s wudem awurman.", + "continueText": "Ddu", + "blur": "Asluɣu:", + "opacity": "Tiḍullest:", + "setWallpaper": "Sbadu tugna ugilal", + "manageAccount": "Sefrek amiḍan", + "noContactInformationProvided": "Aqeddac ur yezmir ara ad d-yefk talɣut n unermis tameɣtut", + "contactServerAdmin": "Nermes anedbal n uqeddac", + "contactServerSecurity": "Taɣellist uqeddac n unermis", + "supportPage": "Asebter n tallalt", + "serverInformation": "Talɣut n uqeddac:", + "name": "Isem", + "version": "Lqem", + "website": "Asmel Web", + "compress": "Sekussem", + "boldText": "Aḍris azuran", + "italicText": "Aḍris uknan", + "strikeThrough": "Yettwajeṛṛeḍ", + "pleaseFillOut": "Ttxil-k·m, ččar", + "invalidUrl": "url armeɣtu", + "addLink": "Rnu aseɣwen", + "unableToJoinChat": "Ur yezmir ara ad yernu ɣer udiwenni. Ahat aseqdac n udiwenni-agi imdel-it yakan.", + "previous": "Uzwir", + "otherPartyNotLoggedIn": "Aḥric nniḍen ur yeqqin ara akka tura, ihi ur yezmir ara ad d-yeṭṭef iznan!", + "appWantsToUseForLogin": "Seqdec '{server}' akken ad teqqneḍ", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "open": "Ldi", + "waitingForServer": "Araǧu n uqeddac...", + "newChatRequest": "📩 Asuter n udiwenni amaynut", + "contentNotificationSettings": "Iɣewwaṛen n telɣut n ugbur", + "generalNotificationSettings": "Iɣewwaren imuta n ilɣa", + "roomNotificationSettings": "Iɣewwaṛen n telɣut n texxamt", + "userSpecificNotificationSettings": "Iɣewwaṛen n telɣut n useqdac", + "otherNotificationSettings": "Iɣewwaṛen-nniḍen n telɣut", + "notificationRuleContainsUserName": "Yegber isem n useqdac", + "notificationRuleContainsUserNameDescription": "Azen tilɣa i useqdac ma yella yizen yegber isem-is useqdac.", + "notificationRuleMaster": "Sgugem akk tilɣa", + "notificationRuleMasterDescription": "Ad isemselsi akk ilugan-nniḍen sakin ad sexsi akk tilɣa.", + "notificationRuleSuppressNotices": "Kkes iznan s wudem awurman", + "notificationRuleSuppressNoticesDescription": "Kkes ilɣa seg imsaɣen iwurmanen am yiṛubuten.", + "notificationRuleInviteForMe": "Asnubget i nekk", + "notificationRuleInviteForMeDescription": "Azen ilɣa i useqdac ticki yettwaɛreḍ ɣer texxamt.", + "notificationRuleMemberEvent": "Tadyant i yiɛeggalen", + "notificationRuleIsUserMention": "Abdar n useqdac", + "notificationRuleIsUserMentionDescription": "Azen ilɣa i useqdac ma yella yettwabder s srid deg yizen.", + "notificationRuleContainsDisplayName": "Yegber Isem n ubeqqeḍ", + "notificationRuleContainsDisplayNameDescription": "Azen ilɣa i useqdac ma yella yizen yegber Isem-is n ubeqqeḍ.", + "notificationRuleIsRoomMention": "Abdar n Texxamt", + "notificationRuleIsRoomMentionDescription": "Azen ilɣa i useqdac ticki yella ubdar n texxamt.", + "badServerLoginTypesException": "Aqeddac agejdan issefrak anawen n tuqqna:\n{serverVersions}\nMaca asnas-agi issefrak kan:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "sendTypingNotifications": "Azen alɣu ttaruɣ", + "swipeRightToLeftToReply": "Zuɣer seg uyeffus ɣer uzelmaḍ akken ad d-terreḍ", + "noMoreChatsFound": "Ulac ugar n idiwenniyen yettwafen…", + "noChatsFoundHere": "Ur d-nufi ula d yiwen n udiwenni da. Bdu adiwenni akked yiwen s useqdec n tqeffalt ukessar-a. ⤵️", + "youRejectedTheInvitation": "Tugiḍ tinnubga", + "youJoinedTheChat": "Tekcemeḍ ɣer udiwenni", + "youAcceptedTheInvitation": "👍 Tqebleḍ tinubga", + "youBannedUser": "Tgedleḍ {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youHaveWithdrawnTheInvitationFor": "Tekkseḍ tinnubga i {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 Tettwaɛerḍeḍ sɣur {user}", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 Tɛerḍeḍ-d {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKicked": "👞 Tegliḍ s rrkel {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKickedAndBanned": "🙅 Tegliḍ s rrkel u tgedleḍ {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "Tekkseḍ agdel n {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "hasKnocked": "🚪{user} yesṭebṭbed", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "usersMustKnock": "Iseqdacen yessefk ad sṭebṭben", + "noOneCanJoin": "Yiwen ur yezmir ad d-yernu", + "users": "Iseqdacen", + "storeInAndroidKeystore": "Sekles deg Android KeyStore", + "storeInAppleKeyChain": "Sekles deg uzrar n tsura n Apple", + "storeSecurlyOnThisDevice": "Ḥrez s wudem aɣelsan ɣef yibenk-a", + "countFiles": "{count} n yifuyla", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "user": "Aseqdac", + "custom": "Yugnen", + "whyIsThisMessageEncrypted": "Acuɣer izen-agi ur yettwaɣri ara?", + "send": "Azen", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Azen izen", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Azen am uḍris", + "@sendAsText": { + "type": "String" + }, + "sendAudio": "Azen ameslaw", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Azen afaylu", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Azen tugna", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendImages": "Azen {count} n tugna(iwin)", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "sendMessages": "Azen iznan", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Azen avidyu", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username} yuzen afaylu", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username} yuzen ameslaw", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username} yuzen tugna", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} yuzen ticṛeṭ n tesfift", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} yuzen tavidyut", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} yuzen talɣut n usiwel", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setAsCanonicalAlias": "Sbadu-t d tazaẓlut tagejdant", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "noOtherDevicesFound": "Ulac ibenkan nniḍen yettwafen", + "fileIsTooBigForServer": "Ur izmir ara ad yazen! Aqeddac yessefrak kan ifuyla imeddayen almi ɣer {max}.", + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "fileHasBeenSavedAt": "Afaylu yettwasekles deg {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "jumpToLastReadMessage": "Ddu ɣer yizen aneggaru yettwaɣen", + "readUpToHere": "Ɣeṛ dagi", + "jump": "Neggez", + "openLinkInBrowser": "Ldi aseɣwen deg yiminig", + "reportErrorDescription": "😭 Uhu. Yella kra n wugur ay yellan. Ma tebɣiḍ, tzemreḍ ad tazneḍ aneqqis-a i yineflayen.", + "report": "aneqqis", + "setColorTheme": "Sbadu asentel n yini:", + "invite": "Snubget", + "inviteGroupChat": "📨Snubget ɣer udiwenni n ugraw", + "invalidInput": "Anekcam d armeɣtu!", + "wrongPinEntered": "Tettwasekcem tangalt PIN d armeɣtut! Ɛreḍ tikkelt nniḍen deg {seconds} n tasinin…", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "pleaseEnterANumber": "Ma ulac aɣilif sekcem amḍan yugaren 0", + "unknownEncryptionAlgorithm": "Alguritm n uwgelhen d arussin", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Tadyant tarussint '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Kkes asgugem i udiwenni", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unsupportedAndroidVersion": "Lqem Android ur yettwasefrak ara", + "unsupportedAndroidVersionLong": "Tamahilt-a tesra lqem Android tamaynut. Ttxil-k·m senqed ileqman neɣ asefrak n Lineage OS.", + "status": "Addad", + "@status": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Amek telliḍ ass-a?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Ceyyeɛ", + "@submit": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Amtawi... Ttxil-k·m arǧu.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWaitCounter": " Amtawi… ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "systemTheme": "Anagraw", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Ur mṣadan ara", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "mṣadan", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Deqs n tuttriwin. Ttxil-k·m, ɛreḍ tikelt nniḍen ticki!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Ɛreḍ ad tazneḍ tikkelt nniḍen", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} yekkes agdek n {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Kkes asewḥel n yibenk", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Ibenk arussin", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "skip": "Zgel", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Tangalt taɣbalutt", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "Tallunt d tazayezt", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Isem n tallunt", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} yebda-d asiwel", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "newSpace": "Tallunt tamaynut", + "verifiedDevicesOnly": "Ibenkan yettwasneqden kan", + "optionalMessage": "(D afrayan) izen…", + "notSupportedOnThisDevice": "Ur itteddu ara deg yibenk-agi", + "approve": "Sqbel", + "enterNewChat": "Sekcem adiwenni amaynut", + "pleaseWaitUntilInvited": "Ttxil-k·m, rǧu arma yeɛreḍ-ik-id yiwen seg texxamt.", + "commandHint_logout": "Senser seg yibenk-ik·im amiran", + "commandHint_logoutall": "Senser akk ibenkan urmiden", + "displayNavigationRail": "Sken afeggag n yinig deg uziraz", + "customReaction": "Tasedmirt yugnen", + "backToMainChat": "Uɣal ɣer udiwenni agejdan", + "createSticker": "Snulfu-d ticṛeṭ n tesfift neɣ imujiten", + "useAsSticker": "Seqdec am tcṛeṭ n tesfift", + "useAsEmoji": "Seqdec am imujit", + "stickerPackNameAlreadyExists": "Isem ukemmus n tcṛeṭ n tesfift yella yakan", + "newStickerPack": "Akemmus n tcṛeṭ n tesfift", + "stickerPackName": "Isem ukemmus n tcṛeṭ n tesfift", + "skipChatBackup": "Zgel aḥraz n udiwenni", + "skipChatBackupWarning": "tetḥeqqeḍ? S war armad n weḥraz n udiwenni, tzemreḍ ad tesruḥeḍ anekcum ɣer yiznan-ik·im ma tbeddeleḍ ibenk-ik·im.", + "noMoreResultsFound": "Ulac ugar n igmaḍ yettwafen", + "clientWellKnownInformation": "Talɣut yettwasnen ɣef umsaɣ:", + "advancedConfigs": "Tawila leqqayen", + "advancedConfigurations": "Tawila tinaẓiyin", + "signUpGreeting": "FluffyChat d araslemmes! Fren aqeddac anda tebɣiḍ ad ternuḍ amiḍan-ik·im, u yyaw ad neddu!", + "signInGreeting": "Tesɛiḍ yakan amiḍan deg Matriks? Anṣuf yes-k·m tikkelt niḍen! Fren aqeddac-ik·im, u tkecmeḍ.", + "theProcessWasCanceled": "Tettwasefsex ukala-nni.", + "searchOrEnterHomeserverAddress": "Nadi neɣ sekcem tansa n uqeddac agejdan", + "setPowerLevel": "Sbadu aswir n tezmert", + "removeAdminRights": "Kkes izerfan n unedbal", + "powerLevel": "Aswir n tezmert", + "help": "Tallelt", + "@help": { + "type": "String", + "placeholders": {} + }, + "privacy": "Tabaḍnit", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "reason": "Taɣẓint", + "@reason": { + "type": "String", + "placeholders": {} + }, + "reject": "Aggi", + "@reject": { + "type": "String", + "placeholders": {} + }, + "search": "Nadi", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "Taɣellist", + "@security": { + "type": "String", + "placeholders": {} + }, + "settings": "Iɣewwaren", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Bḍu", + "@share": { + "type": "String", + "placeholders": {} + }, + "unpin": "Kkes anṭaḍ", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "knock": "Sqeṛbeb", + "knocking": "Sqeṛbeb", + "select": "Fren", + "gallery": "Timidelt", + "files": "Ifuyla", + "discover": "Snirem", + "changelog": "Aɣmis n ibeddilen", + "notificationRuleCall": "Asiwel", + "notificationRuleMessage": "Izen", + "notificationRuleEncrypted": "Yettwawgelhen", + "notificationRuleJitsi": "Jitsi", + "more": "Ugar", + "logs": "Iɣmisen", + "join": "Ttekki", + "owner": "Amli", + "changePassword": "Asnifel n wawal n uɛeddi", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "commandHint_send": "Azen aḍris", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "addAccount": "Rnu amiḍan", + "redactMessage": "Kkes izen", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Sekles afaylu", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "setStatus": "Sbadu addad", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "shareLocation": "Bḍu adig", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "learnMore": "Issin ugar", + "groupName": "Isem n ugraw", + "newPassword": "Awal n uɛeddi amaynut", + "thisDevice": "Ibenk-a:", + "searchMore": "Nadi ugar…", + "allDevices": "Akk ibenkan", + "saveChanges": "Sekles ibeddilen", + "baseUrl": "URL n taffa", + "identityServer": "Aseqdac n tmagit:", + "versionWithNumber": "Lqem: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "signIn": "Qqen", + "matrixId": "Asulay ID Matrix", + "makeAdmin": "Err-it d anedbal", + "openInMaps": "Ldi-t deg maps", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "encryptThisChat": "Wgelhen adiwenni-a", + "searchForUsers": "Nadi iseqdacen…", + "createNewAddress": "Snulfu-d tansa tamaynut", + "adminLevel": "{level} - Tadbelt", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "loginWithMatrixId": "Tuqqna s usulay ID n Matrix", + "calculatingFileSize": "Asiḍen n tiddi n ufaylu...", + "shareKeysWith": "Bḍu tisura akked…", + "takeAPhoto": "Ṭṭef tawlaft", + "recordAVideo": "Sekles tavidyut", + "createNewAccount": "Snulfu-d amiḍan amaynut", + "pleaseEnterYourPassword": "Ma ulac aɣilif, sekcem-d awal-ik n uɛeddi", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "doNotShowAgain": "Ur t-id-sskan ara tikkelt nniḍen", + "passwordsDoNotMatch": "Awalen n uɛeddi mgarraden", + "searchIn": "Nadi deg udiwenni \"{chat}\"...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "pleaseEnterYourPin": "Ttxil-k·m sekcem tangalt-ik·im pin", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Ma ulac aɣilif sekcem isem n useqdac", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Ma ulac aɣilif, ḍfeṛ iwellihen n usmel web sakin sit ɣef uḍfir.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Tixxamin tizuyaz", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} yugi tinnubga-nni", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "reportMessage": "Mmel-d izen", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Taxxamt tettwaleqqem", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Lqem n texxamt", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "setChatDescription": "Sbadu aglam n udiwenni", + "sharedTheLocation": "{username} yebḍa adig-is", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "notificationRuleRoomnotif": "Alɣu n texxamt", + "notificationRuleRoomnotifDescription": "Azen alɣu i useqdec mi ara yelli yizen yegber '@room'.", + "notificationRuleTombstoneDescription": "Azen alɣu i useqdec ɣef yiznan n usens n texxamt.", + "notificationRuleReaction": "Tasedmirt", + "notificationRuleReactionDescription": "Kkes ilɣa i tsedmirin.", + "notificationRuleSuppressEdits": "Kkes Asiẓreg", + "notificationRuleSuppressEditsDescription": "Kkes ilɣa i yeznan yettwaẓergen.", + "notificationRuleCallDescription": "Azen alɣu i useqdac ɣef isawalen.", + "notificationRuleEncryptedRoomOneToOne": "Taxxamt yettwawgelhen s wudem n yiwen ɣer yiwen", + "notificationRuleRoomOneToOne": "Taxxamt s wudem n yiwen ɣer yiwen", + "userLevel": "{level} - Aseqdac", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "@goToSpace": { + "type": "String", + "space": {} + }, + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "passwordIsWrong": "Ur iṣeḥḥa ara wawal-ik n uɛeddi i d-teskecmeḍ", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "createNewChat": "Snulfu-d adiwenni amaynut", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "tagName": "Isem n tebzimt", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "@moderator": { + "type": "String", + "placeholders": {} + }, + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "@commandInvalid": { + "type": "String" + }, + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "addTag": "Rnu tabzimt", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "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." + }, + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "pleaseChooseAStrongPassword": "Ttxil, fren awal n uɛeddi iǧehden, ma ulac aɣilif", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "removeTag": "Kkes tabzimt", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "@pin": { + "type": "String", + "placeholders": {} + }, + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "showMore": "Sken-d ugar", + "publicKey": "Tasarut tazayazt: {key}", + "@publicKey": { + "type": "String", + "placeholders": { + "key": { + "type": "String" + } + } + } +} \ No newline at end of file diff --git a/lib/l10n/intl_ko.arb b/lib/l10n/intl_ko.arb new file mode 100644 index 0000000..0054c96 --- /dev/null +++ b/lib/l10n/intl_ko.arb @@ -0,0 +1,2398 @@ +{ + "@@last_modified": "2021-08-14 12:41:09.975135", + "about": "소개", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "수락", + "@accept": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "URI {uri}를 열 수 없습니다", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "chats": "채팅", + "@chats": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "이 방에서 주어진 유저 영구 추방하기", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_html": "HTML 형식의 문자 보내기", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "주어진 유저 이 룸에 초대하기", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_leave": "이 룸 나가기", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "자신을 소개하세요", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_plain": "형식이 지정되지 않은 문자 보내기", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_send": "문자 보내기", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_unban": "주어진 유저를 이 방에서 영구추방 해제하기", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "loadMore": "더 불러오기…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "{count}명의 참가자 더 표시", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "lightTheme": "라이트", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "help": "도움", + "@help": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "게스트가 참가할 수 있음", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "groups": "그룹 채팅", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "그룹 채팅 공개", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "group": "그룹 채팅", + "@group": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "초대받은 후부터", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "참가시점 이후로", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "forward": "전달", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fontSize": "폰트 크기", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "enterAnEmailAddress": "이메일 주소 입력", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} 이 통화를 종료했습니다", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "encryptionNotEnabled": "암호화가 비활성화됨", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "encryption": "암호화", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encrypted": "암호화됨", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "당신은 다시 암호화를 비활성화할 수 없습니다. 확실한가요?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "암호화 사용", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "이모트 팩 항상 사용하기", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "빈 채팅", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "이모트 단축키", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "올바르지 않은 이모트 단축키!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "이모트가 이미 존재합니다!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "방 아바타 수정", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "방 별명 수정", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "표시 이름 수정", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "edit": "수정", + "@edit": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "파일 다운로드", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "표시 이름이 변경되었습니다", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "devices": "기기", + "@devices": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "메시지 삭제", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "계정 삭제", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "delete": "삭제", + "@delete": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "새로 참가하는 유저들의 기본 권한 레벨", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "deactivateAccountWarning": "이것은 당신의 계정을 비활성화할 것입니다. 이것은 되돌릴 수 없습니다! 확실한가요?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "현재 활동 중", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "createNewSpace": "새로운 스페이스", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username}님이 채팅을 생성함", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "create": "생성", + "@create": { + "type": "String", + "placeholders": {} + }, + "countParticipants": "{count} 참여자", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "couldNotDecryptMessage": "메시지 복호화할 수 없음: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "copyToClipboard": "클립보드에 복사", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "복사", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "클립보드에 복사됨", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "콘텐츠가 서버 운영자에게 신고되었습니다", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "연락처가 채팅에 초대되었습니다", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "configureChat": "채팅 설정", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "아래의 숫자가 일치하는지 비교하세요", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "compareEmojiMatch": "아래의 이모지가 일치하는지 비교하세요", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "commandMissing": "{command} 는 명령어가 아닙니다.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "commandInvalid": "잘못된 명령어", + "@commandInvalid": { + "type": "String" + }, + "commandHint_react": "답장 반응으로 보내기", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_op": "주어진 유저의 권한 레벨 설정 (기본:50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_myroomnick": "이 방의 표시 이름 설정하기", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_myroomavatar": "이 방의 사진 설정하기 (by mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_kick": "주어진 유저 방에서 삭제하기", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_join": "주어진 방 참가하기", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "close": "닫기", + "@close": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "저장 지우기", + "chooseAStrongPassword": "안전한 비밀번호를 설정하세요", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "채팅 정보", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "채팅 백업", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chat": "채팅", + "@chat": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "암호화가 손상되었습니다", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "아바타 바꾸기", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "채팅의 이름 바꾸기", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "스타일 바꾸기", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "홈서버 바꾸기", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changePassword": "비밀번호 바꾸기", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changedTheRoomInvitationLink": "{username}님이 초대 링크를 바꿈", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username}님이 방 별명을 바꿈", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username}님이 자신의 아바타를 바꿈", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username}님이 참가 규칙을 {joinRules} 로 바꿈", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username}님이 참가 규칙을 바꿈", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username}님이 대화 기록 설정을 {rules} 로 바꿈", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username}님이 대화 기록 설정을 변경함", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username}님이 게스트 접근 규칙을 {rules} 로 변경함", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username}님이 게스트 접근 규칙을 변경함", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username}님이 닉네임을 '{displayname}' 로 바꿈", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username}님이 채팅 권한을 바꿈", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatAvatar": "{username}님이 채팅 아바타를 바꿈", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changeDeviceName": "기기 이름 바꾸기", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "cancel": "취소", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "blocked": "차단됨", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "blockDevice": "기기 차단", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username}님이 {targetName}님을 영구 추방함", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "banned": "영구 추방됨", + "@banned": { + "type": "String", + "placeholders": {} + }, + "banFromChat": "채팅에서 영구 추방", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "sendOnEnter": "엔터로 보내기", + "badServerLoginTypesException": "홈서버가 지원하는 로그인 유형:\n{serverVersions}\n하지만 이 앱에서 지원하는 것은:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "autoplayImages": "자동으로 움직이는 스티커와 이모트 재생", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "askVerificationRequest": "{username}님의 인증 요청을 수락할까요?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "askSSSSSign": "다른 사람을 서명하기 위해서, 저장 비밀번호나 복구 키를 입력해주세요.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "로그아웃하고 싶은 것이 확실한가요?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "확실한가요?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "게스트 유저의 참가 여부", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "archive": "저장", + "@archive": { + "type": "String", + "placeholders": {} + }, + "appLock": "앱 잠금", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "anyoneCanJoin": "누구나 참가할 수 있음", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName}님이 전화에 응답했습니다", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "alias": "별명", + "@alias": { + "type": "String", + "placeholders": {} + }, + "admin": "운영자", + "@admin": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "스페이스에 추가", + "addEmail": "이메일 추가", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username}님이 종단간 암호화를 활성화함", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "계정", + "@account": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username}님이 초대를 수락함", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "ignore": "무시", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "알 수 없는 이벤트 숨기기", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username}님이 {targetName}님에 대한 초대를 철회함", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "guestsAreForbidden": "게스트가 들어올 수 없음", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "groupWith": "{displayname}님과의 그룹", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "errorObtainingLocation": "위치 얻는 중 오류: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "editBlockedServers": "차단된 서버 수정", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "directChats": "다이렉트 채팅", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "darkTheme": "다크", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "yes": "확인", + "@yes": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "메시지 작성…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "이 주소로 당신의 비밀번호를 복구할 수 있습니다.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "왜 이것을 신고하려고 하나요?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "참가 제한 설정", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "누가 어떤 행동을 할 수 있는지", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "우리가 당신에게 이메일을 보냈습니다", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "warning": "경고!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "상대가 숫자를 수락하길 기다리는 중…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "상대가 이모지를 수락하길 기다리는 중…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "상대가 요청을 수락하길 기다리는 중…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "음성 메시지", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "모두에게 보임", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "모든 참가자에게 보임", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "다른 계정 확인 중", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "성공적으로 확인했어요!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "확인 시작", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verified": "확인됨", + "@verified": { + "type": "String", + "placeholders": {} + }, + "userLeftTheChat": "🚪 {username}님이 채팅을 나감", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userIsTyping": "{username}님이 입력 중…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userAndUserAreTyping": "{username}님과 {username2}님이 입력 중…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userAndOthersAreTyping": "{username}님 + {count}명이 입력 중…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "unpin": "고정 해제", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "알 수 없는 암호화 알고리즘", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unblockDevice": "기기 차단 해제", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "pin": "고정", + "@pin": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "비밀번호 복구", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "비밀번호 까먹음", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "password": "비밀번호", + "@password": { + "type": "String", + "placeholders": {} + }, + "participant": "참여자", + "@participant": { + "type": "String", + "placeholders": {} + }, + "openInMaps": "지도에서 열기", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "addAccount": "계정 추가", + "openCamera": "카메라 열기", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "앱을 열어서 메시지를 읽으세요", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "앗, 무언가가 잘못되었습니다…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "앗! 안타깝게도, 푸시 알림을 설정하는 중 오류가 발생했습니다.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "ok": "확인", + "@ok": { + "type": "String", + "placeholders": {} + }, + "obtainingLocation": "위치 얻는 중…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count}명이 입력 중…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "notifications": "알림", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "noPermission": "권한 없음", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "scanQrCode": "QR 코드 스캔", + "noMatrixServer": "{server1}은 matrix 서버가 아닙니다, {server2}를 대신 사용할까요?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "next": "다음", + "@next": { + "type": "String", + "placeholders": {} + }, + "logInTo": "{homeserver} 에 로그인", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "login": "로그인", + "@login": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "위치 권한이 거부되었습니다. 위치를 공유하기 위해서 허용해주세요.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "위치 서비스가 비활성화되었습니다. 위치를 공유하려면 활성화시켜주세요.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "no": "아니요", + "@no": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "새로운 확인 요청!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 FluffyChat에서 새로운 메시지", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "새 채팅", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "muteChat": "채팅 음소거", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "messages": "메시지", + "@messages": { + "type": "String", + "placeholders": {} + }, + "mention": "멘션", + "@mention": { + "type": "String", + "placeholders": {} + }, + "logout": "로그아웃", + "@logout": { + "type": "String", + "placeholders": {} + }, + "all": "모두", + "@all": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "당신의 공개 키", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "당신은 이 채팅에서 영구 추방되었습니다", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "당신은 더 이상 이 채팅에 참여하지 않습니다", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "you": "당신", + "@you": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "대화 기록 설정", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "userSentUnknownEvent": "{username}님이 {type} 이벤트 보냄", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "unmuteChat": "음소거 해제", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "알 수 없는 이벤트 '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unknownDevice": "알 수 없는 기기", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username}님이 {targetName}님에대한 영구추방을 해제함", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "tryToSendAgain": "다시 보내도록 시도", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "너무 많은 요청. 잠시 후에 다시 시도해주세요!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "일치합니다", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "일치하지 않습니다", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "시스템", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "동기화 중... 기다려주세요.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "submit": "제출", + "@submit": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "오늘은 어떤 기분인가요?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "status": "상태", + "@status": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} 가 통화 시작함", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "spaceName": "스페이스 이름", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "스페이스 공개", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "마지막 활동: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "ignoredUsers": "무시된 사용자", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "비밀번호를 골라주세요", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "비밀번호가 변경됨", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "비밀번호나 복구 키", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "or": "이나", + "@or": { + "type": "String", + "placeholders": {} + }, + "bundleName": "번들 이름", + "removeFromBundle": "이 번들에서 삭제", + "addToBundle": "번들에 추가", + "editBundlesForAccount": "이 계정의 번들 수정", + "oneClientLoggedOut": "당신의 클라이언트 중 하나가 로그아웃 됨", + "onlineKeyBackupEnabled": "온라인 키 백업이 활성화됨", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "아무 방도 발견되지 않았어요…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "당신은 비밀번호를 복구할 방법을 추가하지 않았습니다.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "이 휴대폰에 Firebase Cloud Messaging 서비스가 없는 것 같습니다. FluffyChat에서 푸시 알림을 받으려면 ntfy 사용을 추천합니다. ntfy 혹은 다른 푸시 알림 제공자를 사용하면 알림을 보안적인 방법으로 받을 수 있습니다. ntfy는 PlayStore와 F-Droid에서 설치 가능합니다.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "당신은 방이 공개적으로 접근 가능하지 않을 때만 암호화를 켤 수 있습니다.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "이모트 발견되지 않음. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "서버에 연결 없음", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "moderator": "관리자", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "loadingPleaseWait": "로딩 중... 기다려 주세요.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "채팅을 나갔습니다", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "leave": "나가기", + "@leave": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "소스 코드", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "skip": "스킵", + "@skip": { + "type": "String", + "placeholders": {} + }, + "shareLocation": "위치 보내기", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username}님이 위치를 공유함", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "share": "공유", + "@share": { + "type": "String", + "placeholders": {} + }, + "settings": "설정", + "@settings": { + "type": "String", + "placeholders": {} + }, + "setStatus": "상태 설정", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "setAsCanonicalAlias": "주 별명으로 설정", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "sentCallInformations": "{senderName} 이 통화 정보 보냄", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username}님이 영상을 보냄", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sendMessages": "메시지 보내기", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendImage": "이미지 보내기", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendFile": "파일 보내기", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendAudio": "오디오 보내기", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "텍스트로 보내기", + "@sendAsText": { + "type": "String" + }, + "sendAMessage": "메시지 보내기", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "send": "보내기", + "@send": { + "type": "String", + "placeholders": {} + }, + "security": "보안", + "@security": { + "type": "String", + "placeholders": {} + }, + "search": "검색", + "@search": { + "type": "String", + "placeholders": {} + }, + "saveFile": "파일 저장", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "방 버전", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "방이 업그레이드되었습니다", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "reason": "이유", + "@reason": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "공개 방", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "privacy": "프라이버시", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "웹사이트의 가이드를 따르고 다음 버튼을 눌러주세요.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "유저 이름을 입력해주세요", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "PIN을 입력해주세요", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "비밀번호를 입력해주세요", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "joinRoom": "방 참가하기", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username}님이 채팅에 참가함", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "isTyping": "입력 중…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username}님이 당신을 FluffyChat에 초대했습니다.\n1. FluffyChat 설치: https://fluffychat.im \n2. 가입하거나 로그인 \n3. 초대 링크 열기: \n {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "invitedUsersOnly": "초대된 유저만", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username}님이 {targetName}님을 초대함", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invited": "초대됨", + "@invited": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "연락처를 {groupName}에 초대", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "inviteContact": "연락처 초대", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "올바르지 않은 복구 키나 비밀번호", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "링크를 클릭했어요", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "sentASticker": "😊 {username}님이 스티커를 보냄", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username}님이 사진을 보냄", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username}님이 오디오를 보냄", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAFile": "📁 {username}님이 파일을 보냄", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sendVideo": "영상 보내기", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "메시지 신고", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "reply": "답장", + "@reply": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "방 새로운 버전으로 대체하기", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "아바타 지우기", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "채팅에서 영구추방 해제됨", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "모든 다른 기기에서 지우기", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "remove": "지우기", + "@remove": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username}님이 초대를 거절함", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "reject": "거절", + "@reject": { + "type": "String", + "placeholders": {} + }, + "redactMessage": "메시지 지우기", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username}님이 이벤트를 지움", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "pleaseClickOnLink": "이메일의 링크를 클릭하고 진행해주세요.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "kickFromChat": "채팅에서 추방", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "kickedAndBanned": "🙅 {username}님이 {targetName}님을 추방하고 차단함", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kicked": "👞 {username}님이 {targetName}님을 추방함", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "link": "링크", + "unverified": "확인되지 않음", + "time": "시간", + "openGallery": "갤러리 열기", + "sender": "발신자", + "messageInfo": "메시지 정보", + "repeatPassword": "비밀번호 다시 입력", + "removeFromSpace": "스페이스에서 삭제", + "commandHint_discardsession": "세션 삭제", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_dm": "다이렉트 채팅 시작\t\n--no-encryption을 사용해 암호화 비활성화", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_clearcache": "캐시 지우기", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_create": "빈 그룹 채팅을 생성\n--no-encryption을 사용해 암호화를 비활성화", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "markAsRead": "읽음으로 표시하기", + "reportUser": "유저 신고", + "reactedWith": "{sender}가 {reaction}로 반응함", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "confirmEventUnpin": "이벤트를 영구적으로 고정 해제할 것이 확실한가요?", + "pinMessage": "방에 고정", + "emojis": "이모지", + "unsupportedAndroidVersion": "지원되지 않는 안드로이드 버전", + "unsupportedAndroidVersionLong": "이 기능은 새로운 안드로이드 버전을 요구합니다. Lineage OS 지원이나 업데이트를 확인해주세요.", + "confirmMatrixId": "계정을 삭제하려면 Matrix ID를 입력해 주세요.", + "commandHint_googly": "왕눈이 눈알 보내기", + "googlyEyesContent": "{senderName} 님이 왕눈이 눈알을 보냈습니다", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_markasgroup": "그룹 채팅으로 만들기", + "dehydrate": "세션을 내보내고 기기 초기화 하기", + "dehydrateWarning": "이 동작은 되돌릴 수 없습니다. 백업 파일을 꼭 안전하게 보관하세요.", + "hugContent": "{senderName}님이 당신을 허그합니다", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "jumpToLastReadMessage": "마지막으로 읽은 메시지로 이동", + "commandHint_cuddle": "미소 보내기", + "reportErrorDescription": "😭 이런. 무언가 잘못되었습니다. 원한다면, 개발자에게 버그를 신고할 수 있습니다.", + "setColorTheme": "색상 테마 설정:", + "supposedMxid": "{mxid} 이어야 함", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "user": "유저", + "youAcceptedTheInvitation": "👍 초대를 수락했습니다", + "youInvitedBy": "📩 {user}님에 의해 초대되었습니다", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "banUserDescription": "유저는 채팅에서 영구 추방되며 추방 해제 전까지 채팅을 다시 입력할 수 없습니다.", + "removeDevicesDescription": "이 기기에서 로그아웃되며 더 이상 메시지를 받을 수 없습니다.", + "tryAgain": "다시 시도하기", + "youKickedAndBanned": "🙅 {user}님을 영구 추방했습니다", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "unbanUserDescription": "유저가 다시 채팅을 입력할 수 있습니다.", + "youRejectedTheInvitation": "초대를 거부했습니다", + "messagesStyle": "메세지:", + "newSpaceDescription": "스페이스를 사용하면 채팅을 통합하고 비공개 또는 공개 커뮤니티를 구축할 수 있습니다.", + "chatDescription": "채팅 설명", + "encryptThisChat": "이 채팅을 암호화", + "reopenChat": "채팅 다시 열기", + "countFiles": "{count}개의 파일", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "noKeyForThisMessage": "이것은 이 메시지가 당신이 이 기기를 서명하기 전에 발송되었기 때문에 일어났을 수 있습니다.\n\n이것은 또한 발송자가 당신의 기기를 차단하였거나 혹은 인터넷 연결이 잘못되었을 수 있습니다.\n\n다른 세션에서 이 메시지를 읽을 수 있나요? 그렇다면 그 메시지를 옮길 수 있습니다! 설정 > 기기로 가서 기기를 서로 증명하세요. 다음번에 방을 열었을 때 두 세션이 모두 작동중이라면, 키가 자동으로 옮겨질것입니다.\n\n로그아웃하거나 기기를 바꿀 때 키를 잃고싶지 않으신가요? 설정에서 채팅 백업을 사용중인지 확인하세요.", + "pushNotificationsNotAvailable": "푸시 알림 사용 불가", + "storeInAppleKeyChain": "Apple KeyChain에 저장하기", + "hydrate": "백업 파일로부터 가져오기", + "invalidServerName": "잘못된 서버 이름", + "chatPermissions": "채팅 권한", + "storeInAndroidKeystore": "Android KeyStore에 저장하기", + "makeAdminDescription": "유저를 한 번 관리자로 만들면, 당신과 같은 권한을 가지기때문에 권한 회수가 불가능합니다.", + "whyIsThisMessageEncrypted": "왜 이 메시지를 읽을 수 없나요?", + "setChatDescription": "채팅 설명 설정", + "importFromZipFile": ".zip 파일에서 불러오기", + "noOtherDevicesFound": "다른 기기 발견되지 않음", + "redactedBy": "{username}님이 삭제함", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "fileIsTooBigForServer": "전송에 실패했습니다. 서버는 {max}가 넘는 파일을 지원하지 않습니다.", + "readUpToHere": "여기까지 읽음", + "optionalRedactReason": "(선택) 이 메시지를 편집하는 이유...", + "archiveRoomDescription": "채팅이 보관함으로 이동합니다. 다른 유저들은 당신이 떠난다는것을 볼 수 있습니다.", + "exportEmotePack": ".zip 파일로 이모트 내보내기", + "redactedByBecause": "{username}님이 삭제함. 사유: \"{reason}\"", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "youHaveWithdrawnTheInvitationFor": "{user}님에 대한 초대를 철회함", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 {user}님을 초대했습니다", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "fileHasBeenSavedAt": "{path}에 파일 저장됨", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "redactMessageDescription": "메시지는 이 대화의 모든 참여자에게 삭제될 것 입니다. 되돌릴 수 없습니다.", + "invalidInput": "잘못된 입력!", + "doNotShowAgain": "다시 보지 않기", + "report": "신고", + "youBannedUser": "{user}님을 영구 추방함", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "hasKnocked": "🚪 {user}님이 참가를 요청했습니다", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "openLinkInBrowser": "브라우저에서 링크 열기", + "disableEncryptionWarning": "보안상의 이유로 암호화가 활성화된 채팅에서 암호화를 비활성화 할 수 없습니다.", + "wrongPinEntered": "잘못된 pin입니다! {seconds}초 후에 다시 시도하세요...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "sendTypingNotifications": "입력 알림 보내기", + "inviteGroupChat": "📨 그룹 채팅에 초대", + "importEmojis": "이모지 불러오기", + "wasDirectChatDisplayName": "빈 채팅 (전 {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "noChatDescriptionYet": "채팅 설명이 아직 추가되지 않음.", + "learnMore": "더 알아보기", + "notAnImage": "이미지 파일이 아닙니다.", + "users": "유저", + "chatDescriptionHasBeenChanged": "채팅 설명 변경됨", + "roomUpgradeDescription": "채팅이 새로운 방 버전으로 다시 생성됩니다. 모든 참가자는 새로운 채팅으로 전환해야합니다. https://spec.matrix.org/latest/rooms/ 에서 방 버전에 대해 자세히 알아볼 수 있습니다.", + "pleaseEnterANumber": "0보다 큰 숫자를 입력하세요", + "youKicked": "👞 {user}님을 추방했습니다", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "jump": "점프", + "sorryThatsNotPossible": "죄송합니다...그것은 불가능합니다", + "shareInviteLink": "초대 링크 공유", + "commandHint_markasdm": "Matrix ID를 위한 다이렉트 메시지 방으로 표시", + "cuddleContent": "{senderName} 님이 당신에게 미소짓습니다", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "emoteKeyboardNoRecents": "최근 사용한 이모트가 여기 나타납니다...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "youJoinedTheChat": "채팅에 참가하였습니다", + "commandHint_hug": "허그 보내기", + "replace": "대체", + "youUnbannedUser": "{user}님의 영구 추방을 해제했습니다", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "newSpace": "새 스페이스", + "createGroup": "새 그룹 채팅", + "custom": "커스텀", + "noBackupWarning": "경고! 채팅 백업을 켜지 않을경우, 당신은 암호화된 메시지에 대한 접근권한을 잃을것 입니다. 로그아웃 하기 전에 채팅을 백업하는것이 강력히 권장됩니다.", + "kickUserDescription": "유저는 채팅에서 추방되지만 영구 추방되지 않습니다. 공개 채팅의 경우, 언제든 유저가 다시 참가할 수 있습니다.", + "importNow": "지금 불러오기", + "invite": "초대", + "storeSecurlyOnThisDevice": "이 기기에 안전하게 저장", + "blockUsername": "유저 이름 무시", + "block": "차단", + "blockedUsers": "차단된 유저", + "groupName": "그룹 채팅 이름", + "commandHint_sendraw": "raw json 전송", + "pleaseChooseAStrongPassword": "강력한 비밀번호를 사용하세요", + "addChatOrSubSpace": "채팅 또는 하위 스페이스 추가", + "databaseMigrationBody": "잠시만 기다리세요. 시간이 걸릴 수 있습니다.", + "select": "선택", + "joinSpace": "스페이스 참가", + "formattedMessagesDescription": "마크다운을 이용한 볼드등의 서식이 있는 메시지를 봅니다.", + "completedKeyVerification": "{sender}가 키 검증을 완료함", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "canceledKeyVerification": "{sender}가 키 검증을 취소함", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "createGroupAndInviteUsers": "그룹 채팅을 생성하고 유저를 초대", + "passwordsDoNotMatch": "비밀번호가 일치하지 않습니다", + "passwordIsWrong": "비밀번호가 틀립니다", + "thisDevice": "이 기기:", + "sendReadReceipts": "읽음 확인 보내기", + "sendReadReceiptsDescription": "채팅의 다른 참가자들이 당신이 메시지를 읽었는지 볼 수 있습니다.", + "verifyOtherUser": "🔐 다른 유저 확인", + "searchChatsRooms": "#chats, @users 검색...", + "groupCanBeFoundViaSearch": "검색으로 그룹 채팅을 찾을 수 있음", + "restoreSessionBody": "앱이 백업에서 세션을 복원하려 시도중입니다. {url} 에서 개발자에게 오류를 신고하세요. 오류 메시지는 다음과 같습니다: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "acceptedKeyVerification": "{sender}가 키 검증을 수락함", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "wrongRecoveryKey": "죄송합니다... 올바른 복구키가 아닌것 같습니다.", + "newPassword": "새 비밀번호", + "searchForUsers": "@users 검색...", + "leaveEmptyToClearStatus": "비워서 상태를 지우세요.", + "commandHint_ignore": "주어진 matrix ID를 무시", + "commandHint_unignore": "주어진 matrix ID 무시 해제", + "blockListDescription": "당신은 당신을 방해하는 유저들을 차단할 수 있습니다. 당신은 당신의 개인 차단 목록에 있는 어떠한 유저의 메시지와 방 초대도 받지 않을것 입니다.", + "sessionLostBody": "세션을 잃었습니다. {url} 에서 개발자에게 오류를 신고하세요. 오류 메시지는 다음과 같습니다: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "yourGlobalUserIdIs": "글로벌 유저 ID: ", + "noUsersFoundWithQuery": "안타깝게도 \"{query}\"로 유저를 찾을 수 없습니다. 오타가 없는지 확인하십시오.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "nothingFound": "아무것도 찾지 못했습니다...", + "databaseMigrationTitle": "데이터베이스가 최적화됨", + "pleaseEnterYourCurrentPassword": "현재 비밀번호 입력", + "publicSpaces": "공개 스페이스들", + "initAppError": "앱 초기화중 오류 발생", + "sendTypingNotificationsDescription": "채팅의 다른 참가자들이 당신이 새 메시지를 입력중인것을 볼 수 있습니다.", + "formattedMessages": "형식이 지정된 메시지", + "verifyOtherDevice": "🔐 다른 기기를 확인", + "verifyOtherUserDescription": "다른 유저를 확인하면, 당신은 당신이 누구에게 말하고있는지 알 수 있습니다. 💪\n\n확인을 시작할 때, 다른 유저는 앱에서 팝업을 볼 수 있습니다. 당신은 그런 다음 서로 비교해야 이모지 또는 숫자의 목록을 볼 수 있습니다.\n\n이 작업을 수행하는 가장 좋은 방법은 직접 만나거나 영상통화를 하는것입니다. 👭", + "verifyOtherDeviceDescription": "다른 장치를 확인하면, 장치와 키를 교환하고, 전반적인 보안을 증가시킵니다. 💪 확인을 시작하면 팝업은 두 장치에 나타납니다. 그런 다음 서로 비교해야 이모지 또는 숫자의 목록를 볼 수 있습니다. 확인을 시작하기 전에 모든 장치를 준비하세요. 🤳", + "isReadyForKeyVerification": "{sender}가 키 검증 준비를 완료함", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "requestedKeyVerification": "{sender}가 키 검증을 요청함", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "{sender}가 키 검증을 시작함", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "incomingMessages": "메시지 수신함", + "stickers": "스티커", + "discover": "탐색", + "unreadChatsInApp": "{appname}: {unread}개의 읽지 않은 채팅", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "appLockDescription": "앱을 사용하지 않을 때 pin으로 잠금", + "calls": "전화", + "globalChatId": "글로벌 채팅 ID", + "customEmojisAndStickers": "커스텀 이모지와 스티커", + "accessAndVisibilityDescription": "채팅에 참가 할 수 있는 사람과 채팅을 볼 수 있는 범위", + "accessAndVisibility": "채팅 가입과 대화 기록", + "customEmojisAndStickersBody": "모든 채팅에서 사용할 수있는 커스텀 이모지와 스티커를 추가하거나 공유합니다.", + "hideRedactedMessages": "삭제된 메시지 숨기기", + "hideRedactedMessagesBody": "누군가가 메시지를 삭제하면 메시지를 더 이상 볼 수 없습니다.", + "hideInvalidOrUnknownMessageFormats": "잘못되거나 알 수 없는 메시지 형식 숨김", + "passwordRecoverySettings": "비밀번호 복구 설정", + "knock": "참가 요청", + "usersMustKnock": "유저들이 참가를 허가받아야함", + "knocking": "참가 요청중", + "chatCanBeDiscoveredViaSearchOnServer": "채팅은 {server} 에서 검색하여 찾을 수 있습니다.", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "noOneCanJoin": "아무도 참가할 수 없음", + "thereAreCountUsersBlocked": "{count}명의 차단된 유저가 있습니다.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "noDatabaseEncryption": "데이터베이스 암호화는 이 플랫폼에서 지원되지 않음", + "publicChatAddresses": "공개 채팅 주소", + "createNewAddress": "새 주소 만들기", + "searchMore": "더 검색...", + "files": "파일", + "searchIn": "{chat}에서 검색...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "gallery": "갤러리", + "swipeRightToLeftToReply": "오른쪽에서 왼쪽으로 스와이프해서 답장", + "unread": "읽지 않은", + "space": "스페이스", + "goToSpace": "스페이스로: {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "markAsUnread": "읽지 않음으로 표시", + "noMoreChatsFound": "채팅을 찾을 수 없습니다...", + "moderatorLevel": "{level} - 관리자", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "adminLevel": "{level} - 운영자", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "userLevel": "{level} - 유저", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "noChatsFoundHere": "대화가 발견되지 않았습니다. 아래 버튼을 사용하여 새 대화를 시작해 보세요. ⤵️", + "changeTheVisibilityOfChatHistory": "채팅 기록 표시 여부 바꾸기", + "changeTheCanonicalRoomAlias": "메인 공개 채팅 주소 바꾸기", + "sendCanceled": "전송 최소됨", + "noContactInformationProvided": "서버가 유효한 연락처 정보를 제공하지 않음", + "changeGeneralChatSettings": "일반 채팅 설정 번경하기", + "inviteOtherUsers": "다른 사용자를 이 채팅에 초대하기", + "changeTheChatPermissions": "채팅 권한 바꾸기", + "calculatingFileSize": "파일 크기 계산 중...", + "oneOfYourDevicesIsNotVerified": "당신의 기기 중 하나가 인증되지 않았음", + "noticeChatBackupDeviceVerification": "참고: 모든 기기에 채팅 백업을 설정하면 자동으로 서로 인증됩니다.", + "opacity": "불투명:", + "setWallpaper": "배경화면 설정하기", + "manageAccount": "계정 관리하기", + "aboutHomeserver": "{homeserver}의 대해서", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "contactServerAdmin": "서버 관리자에게 연락하기", + "contactServerSecurity": "서버 보안 관리자에게 연락하기", + "supportPage": "지원 페이지", + "name": "이름", + "serverInformation": "서버 정보:", + "version": "버전", + "website": "웹사이트", + "changeTheDescriptionOfTheGroup": "채팅 설명 바꾸기", + "sendRoomNotifications": "@room 알림 보내기", + "chatPermissionsDescription": "이 채팅에서 특정 작업에 요구할 권한 레벨을 정의합니다. 권한 레벨 0, 50, 100은 일반적으로 유저, 관리자, 운영자를 나타내지만, 모든 숫자가 가능합니다.", + "loginWithMatrixId": "Matrix-ID로 로그인", + "doesNotSeemToBeAValidHomeserver": "호환되는 홈서버가 아닌 것 같습니다. URL을 올바르게 입력됐나요?", + "continueText": "계속하기", + "updateInstalled": "🎉 {version} 업데이트가 설치되었습니다!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "changelog": "변경 기록", + "blur": "블러:", + "sendImages": "이미지 {count}개 보내기", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "italicText": "기울어진 글꼴", + "boldText": "두꺼운 글꼴", + "appWantsToUseForLoginDescription": "웹사이트와 당신에 대한 정보를 공유하게됩니다.", + "appWantsToUseForLogin": "'{server}'로 로그인", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "otherPartyNotLoggedIn": "다른 구성원이 현재 로그인하지 않아 메시지를 수신하지 못합니다!", + "open": "열기", + "unableToJoinChat": "채팅에 참가할 수 없습니다. 다른 구성원이 이미 대화를 종료했을 수 있습니다.", + "compress": "압축", + "invalidUrl": "유효하지 않은 url", + "addLink": "링크 추가", + "strikeThrough": "취소선", + "pleaseFillOut": "작성해주세요", + "previous": "이전", + "newChatRequest": "📩 새 채팅 요청", + "synchronizingPleaseWaitCounter": " 동기화중… ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "waitingForServer": "서버를 기다리는중...", + "contentNotificationSettings": "콘텐츠 알림 설정", + "generalNotificationSettings": "일반 알림 설정", + "roomNotificationSettings": "채팅방 알림 설정", + "otherNotificationSettings": "기타 알림 설정", + "notificationRuleContainsUserName": "유저 이름을 포함함", + "notificationRuleMaster": "모든 알림 음소거", + "notificationRuleContainsUserNameDescription": "메시지가 유저의 이름을 포함할때 알림합니다.", + "notificationRuleMasterDescription": "모든 규칙을 무시하고 모든 알림을 비활성화합니다.", + "notificationRuleSuppressNotices": "자동화된 메시지 무시", + "notificationRuleSuppressNoticesDescription": "봇을 비롯한 자동화된 메시지로부터 발생하는 알림을 무시합니다.", + "notificationRuleInviteForMe": "초대를 받음", + "notificationRuleInviteForMeDescription": "채팅방에 초대받았을 때 알림합니다.", + "notificationRuleMemberEvent": "멤버 이벤트", + "notificationRuleMemberEventDescription": "멤버 이벤트로 발생하는 알림을 무시합니다.", + "notificationRuleIsUserMentionDescription": "유저가 메시지에 멘션됐을 때 알림합니다.", + "notificationRuleContainsDisplayName": "표시 이름을 포함함", + "notificationRuleIsUserMention": "유저가 멘션됨", + "notificationRuleContainsDisplayNameDescription": "메시지에 표시 이름이 포함되면 알림합니다.", + "notificationRuleIsRoomMention": "방 멘션", + "notificationRuleIsRoomMentionDescription": "방 멘션이 있을경우 알림합니다.", + "notificationRuleRoomnotif": "방 알림", + "notificationRuleRoomnotifDescription": "메시지가 '@room'을 포함하면 알림합니다.", + "notificationRuleTombstone": "비활성화", + "notificationRuleTombstoneDescription": "채팅방 비활성화 메시지를 알림합니다.", + "notificationRuleReaction": "반응", + "notificationRuleReactionDescription": "반응으로 발생하는 알림을 무시합니다.", + "notificationRuleRoomServerAcl": "채팅방 서버 ACL", + "notificationRuleRoomServerAclDescription": "채팅방 서버의 접근 권한(ACL)으로부터 오는 알림을 무시합니다.", + "notificationRuleSuppressEdits": "수정 음소거", + "notificationRuleSuppressEditsDescription": "수정된 메시지로부터 오는 알림을 무시합니다.", + "notificationRuleCall": "전화", + "commandHint_roomupgrade": "이 방을 주어진 방 버전으로 업그레이드합니다", + "checkList": "체크리스트", + "countInvited": "{count}초대받은", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + } +} \ No newline at end of file diff --git a/lib/l10n/intl_la.arb b/lib/l10n/intl_la.arb new file mode 100644 index 0000000..7ee681e --- /dev/null +++ b/lib/l10n/intl_la.arb @@ -0,0 +1,138 @@ +{ + "importFromZipFile": "A tabulario zip importare", + "editImage": "Pictura exercere", + "@editImage": { + "type": "String", + "placeholders": {} + }, + "rotateLeft": "Sinistrorsum torquere", + "@rotateLeft": { + "type": "String", + "placeholders": {} + }, + "rotateRight": "Dextrorsum torquere", + "@rotateRight": { + "type": "String", + "placeholders": {} + }, + "save": "Condere", + "@save": { + "type": "String", + "placeholders": {} + }, + "draw": "Pingere", + "@draw": { + "type": "String", + "placeholders": {} + }, + "undo": "Retexere", + "@undo": { + "type": "String", + "placeholders": {} + }, + "clear": "Vacuefacere", + "@clear": { + "type": "String", + "placeholders": {} + }, + "eraser": "Tersus", + "@eraser": { + "type": "String", + "placeholders": {} + }, + "crop": "Secare", + "@crop": { + "type": "String", + "placeholders": {} + }, + "repeatPassword": "Signum repetere", + "notAnImage": "Pictura non est.", + "remove": "Removere", + "@remove": { + "type": "String", + "placeholders": {} + }, + "importNow": "Nunc importare", + "importEmojis": "Emojis importare", + "exportEmotePack": "In tabulario zip exportare", + "replace": "Compensare", + "about": "De", + "aboutHomeserver": "De {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "accept": "Accipere", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} invitationem accepit", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Ratio", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} ab origine ad destinatum per notas scribere incepit", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "Email addere", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "Ad spatium addere", + "admin": "Princeps", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "aliud nomen", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Cuncti", + "@all": { + "type": "String", + "placeholders": {} + }, + "commandHint_cuddle": "Applicatum mittere", + "commandHint_hug": "Complexum mittere", + "cuddleContent": "{senderName} se ad te applicat", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "hugContent": "{senderName} te complecitur", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + } +} diff --git a/lib/l10n/intl_lt.arb b/lib/l10n/intl_lt.arb new file mode 100644 index 0000000..4b3f10e --- /dev/null +++ b/lib/l10n/intl_lt.arb @@ -0,0 +1,1963 @@ +{ + "commandHint_leave": "Palikti pokalbių kambarį", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "cancel": "Atšaukti", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "edit": "Redaguoti", + "@edit": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Atsisiųsti failą", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "about": "Apie", + "@about": { + "type": "String", + "placeholders": {} + }, + "all": "Viskas", + "@all": { + "type": "String", + "placeholders": {} + }, + "changePassword": "Keisti slaptažodį", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "close": "Uždaryti", + "@close": { + "type": "String", + "placeholders": {} + }, + "archive": "Archyvas", + "@archive": { + "type": "String", + "placeholders": {} + }, + "skip": "Praleisti", + "@skip": { + "type": "String", + "placeholders": {} + }, + "share": "Bendrinti", + "@share": { + "type": "String", + "placeholders": {} + }, + "time": "Laikas", + "settings": "Nustatytmai", + "@settings": { + "type": "String", + "placeholders": {} + }, + "sender": "Siuntėjas", + "yes": "Taip", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Jūs", + "@you": { + "type": "String", + "placeholders": {} + }, + "logout": "Atsijungti", + "@logout": { + "type": "String", + "placeholders": {} + }, + "messages": "Žinutės", + "@messages": { + "type": "String", + "placeholders": {} + }, + "scanQrCode": "Nuskanuokite QR kodą", + "ok": "OK", + "@ok": { + "type": "String", + "placeholders": {} + }, + "addAccount": "Pridėti paskyrą", + "or": "Arba", + "@or": { + "type": "String", + "placeholders": {} + }, + "password": "Slaptažodis", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Slaptažodis pakeistas", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Įveskite savo slaptažodį", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Įveskite savo vartotojo vardą", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "reply": "Atsakyti", + "@reply": { + "type": "String", + "placeholders": {} + }, + "blockDevice": "Blokuoti įrenginį", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "Užblokuotas", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Pasirinkite saugų slaptažodį", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Ištrinti žinutę", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Įrenginiai", + "@devices": { + "type": "String", + "placeholders": {} + }, + "fontSize": "Šrifto dydis", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Išvalyti archyvą", + "create": "Sukurti", + "@create": { + "type": "String", + "placeholders": {} + }, + "moderator": "Moderatorius", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Nutildyti pokalbį", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Naujas pokalbis", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Nėra leidimo", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Nerasta kambarių…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Pranešimai", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "obtainingLocation": "Gaunama vieta…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Oi! Deja, nustatant tiesioginius pranešimus įvyko klaida.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Oi, kažkas nutiko ne taip…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Atidarykite programėlę, kad perskaityti žinutes", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "link": "Nuoroda", + "participant": "Dalyvis", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "Slapta frazė arba atkūrimo raktas", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Slaptažodis užmirštas", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Slaptažodžio atkūrimas", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Prisegti", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Pasirinkite slaptą kodą", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Paspauskite nuorodą el. pašte ir tęskite toliau.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Įveskite savo PIN kodą", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Vadovaukitės svetainėje pateiktais nurodymais ir bakstelėkite Toliau.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "Privatumas", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Vieši kambariai", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "Priežastis", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactMessage": "Pašalinti žinutę", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reject": "Atmesti", + "@reject": { + "type": "String", + "placeholders": {} + }, + "remove": "Šalinti", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Pašalinti visus kitus įrenginius", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Pašalinti savo avatarą", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Pakeisti kambarį naujesne versija", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Kambarys buvo atnaujintas", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Kambario versija", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "search": "Ieškoti", + "@search": { + "type": "String", + "placeholders": {} + }, + "accept": "Priimti", + "@accept": { + "type": "String", + "placeholders": {} + }, + "repeatPassword": "Pakartokite slaptažodį", + "addEmail": "Įtraukti el. paštą", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "admin": "Administratorius", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "pseudonimas", + "@alias": { + "type": "String", + "placeholders": {} + }, + "anyoneCanJoin": "Bet kas gali prisijungti", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Ar esate tikri?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Ar tikrai norite atsijungti?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Pakeisti namų serverį", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Keisti savo stilių", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Keisti grupės pavadinimą", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Keisti savo avatarą", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "chat": "Pokalbis", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Pokalbio detalės", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Pokalbiai", + "@chats": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "Užblokuoti vartotoją šiame kambaryje", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_clearcache": "Išvalyti laikiną talpyklą", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_discardsession": "Atmesti sesiją", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_html": "Siųsti tekstą HTML formatu", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Pakviesti vartotoją į šitą kambarį", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "Prisijungti prie nurodyto kambario", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "Pašalinti vartotoja iš šito kambario", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_myroomnick": "Nustatyti savo rodomą vardą šiame kambaryje", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_plain": "Siųsti neformatuotą tekstą", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_send": "Siųsti tekstą", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_unban": "Atblokuoti vartotoją šiame kambaryje", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandInvalid": "Neteisinga komanda", + "@commandInvalid": { + "type": "String" + }, + "configureChat": "Konfigūruoti pokalbį", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Nukopijuota į iškarpinę", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Kopijuoti", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Koipjuoti į iškarpinę", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "Šiuo metu aktyvus", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Tamsi", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "delete": "Ištrinti", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Panaikinti paskyra", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "directChats": "Tiesioginiai pokalbiai", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Užšifruotas", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Šifravimas aktyvuotas", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "enterAnEmailAddress": "Įveskite el. pašto adresą", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "forward": "Toliau", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Nuo prisijungimo", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Nuo pakvietimo", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Grupė", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "Grupė yra vieša", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "Grupės", + "@groups": { + "type": "String", + "placeholders": {} + }, + "guestsAreForbidden": "Svečiams draudžiama", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Svečiai gali prisijungti", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "help": "Pagalba", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Slėpti nežinomus įvykius", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignore": "Ignoruoti", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Ignoruoti vartotojai", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "leave": "Palikti", + "@leave": { + "type": "String", + "placeholders": {} + }, + "mention": "Paminėti", + "@mention": { + "type": "String", + "placeholders": {} + }, + "encryption": "Šifravimas", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Aktyvuoti šifravimą", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Redaguoti blokuotus serverius", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "login": "Prisijungti", + "@login": { + "type": "String", + "placeholders": {} + }, + "sendOnEnter": "Išsiųsti paspaudus Enter", + "banFromChat": "Užblokuoti iš pokalbio", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Užblokuotas", + "@banned": { + "type": "String", + "placeholders": {} + }, + "changeDeviceName": "Pakeisti įrenginio vardą", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Pokalbio atsargine kopija", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "commandHint_me": "Apibūdinkite save", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "displaynameHasBeenChanged": "Rodomas vardas buvo pakeistas", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Redaguoti rodomą vardą", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Redaguoti kambario pseudonimus", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Redaguoti kambario avatarą", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Aš paspaudžiau nuorodą", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Neteisinga slaptafrazė arba atkūrimo raktas", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Pakviesti kontaktą", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "invited": "Pakviestas", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUsersOnly": "Tik pakviesti vartotojai", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "isTyping": "rašo…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinRoom": "Prisijungti prie kambario", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kickFromChat": "Išmesti iš pokalbio", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Paliko pokalbį", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Šviesi", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadingPleaseWait": "Kraunama… Prašome palaukti.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Rodyti daugiau…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Nauja žinutė FluffyChat'e", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Nauja patvirtinimo užklausa!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "Toliau", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "Ne", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Nėra ryšio su serveriu", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Programinis kodas", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "Erdvė yra vieša", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Erdvės pavadinimas", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "status": "Būsena", + "@status": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Kaip sekasi šiandien?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Pateikti", + "@submit": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Sinchronizuojama… Prašome palaukti.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Pradėti patvirtinimą", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Jūs sėkmingai patvirtinote!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Patvirtinama kita paskyra", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Pokalbių istorijos matomumas", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Matoma visiems dalyviams", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Laukiama, kol dalyvis priims užklausą…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Rašyti žinutę…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Jūs nebedalyvaujate šiame pokalbyje", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Jums buvo uždrausta dalyvauti šiame pokalbyje", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "messageInfo": "Žinutės informacija", + "removeFromSpace": "Pašalinti iš erdvės", + "security": "Apsauga", + "@security": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Siųsti kaip tekstą", + "@sendAsText": { + "type": "String" + }, + "sendAudio": "Siųsti garso įrašą", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Siųsti paveiksliuką", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Sųsti bylą", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Siųsti žinutes", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Siųsti video", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "setAsCanonicalAlias": "Nustatyti kaip pagrindinį slapyvardį", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "setStatus": "Nustatyti būseną", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "shareLocation": "Bendrinti vietą", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Sistema", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "unblockDevice": "Atblokuoti įrenginį", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Nežinomas šifravimo algoritmas", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unmuteChat": "Įjungti pokalbio garsą", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Atsegti", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "unverified": "Nepatvirtinta", + "verified": "Patvirtinta", + "@verified": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Jūsų viešasis raktas", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "account": "Paskyra", + "@account": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "Pridėti prie erdvės", + "appLock": "Programos užraktas", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Ar svečiams leidžiama prisijungti", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "Šifravimas buvo sugadintas", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "compareEmojiMatch": "Palyginkite jaustukus", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Palyginkite skaičius", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Kontaktas buvo pakviestas į grupę", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "Apie turinį pranešta serverio administratoriams", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "createNewSpace": "Nauja erdvė", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "deactivateAccountWarning": "Tai deaktyvuos jūsų vartotojo paskyrą. Tai negali būti atšaukta! Ar jūs tuo tikri?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Numatytasis teisių lygis", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Šifravimo nebegalėsite išjungti. Ar jūs tuo tikri?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "send": "Siųsti", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Siųsti žinutę", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Per daug užklausų. Pabandykite dar kartą vėliau!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Laukiama, kol dalyvis priims jaustukus…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Laukiama, kol dalyvis priims skaičius…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Įspėjimas!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Išsiuntėme jums el. laišką", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Kas gali atlikti kokį veiksmą", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Kam leidžiama prisijungti prie šios grupės", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Kodėl norite apie tai pranešti?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Naudodami šiuos adresus galite atkurti savo slaptažodį.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "openGallery": "Atverti galeriją", + "unknownDevice": "Nežinomas įrenginys", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Balso žinutė", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Matoma visiems", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Pabandykite išsiųsti dar kartą", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "Vietos leidimas atmestas. Suteikite leidimą kad galėtumėte bendrinti savo vietą.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Šifravimą galite suaktyvinti tik tada, kai kambarys nebebus viešai pasiekiamas.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Nerasta jaustukų. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Atrodo, kad jūsų telefone nėra Google Services. Tai geras sprendimas jūsų privatumui! Norėdami gauti tiesioginius pranešimus FluffyChat, rekomenduojame naudoti https://microg.org/ arba https://unifiedpush.org/.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "Dar nepridėjote slaptažodžio atkūrimo būdo.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "oneClientLoggedOut": "Vienas iš jūsų klientų atsijungė", + "onlineKeyBackupEnabled": "Internetinė atsarginė raktų kopija įjungta", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Atidarykite kamerą", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "editBundlesForAccount": "Redaguoti šios paskyros paketus", + "addToBundle": "Pridėti prie paketų", + "removeFromBundle": "Pašalinkite iš šio paketo", + "bundleName": "Paketo vardas", + "redactedAnEvent": "{username} pašalino įvykį", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "rejectedTheInvitation": "{username} atmetė kvietimą", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "unbanFromChat": "Atblokuoti pokalbyje", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Pranešti apie žinutę", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Išsaugoti failą", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username} atsiuntė failą", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username} atsiuntė garso įrašą", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} atsiuntė lipduką", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sharedTheLocation": "{username} bendrino savo vietą", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "startedACall": "{senderName} pradėjo skambutį", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "theyDontMatch": "Jie nesutampa", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Jie sutampa", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} atblokavo {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unknownEvent": "Nežinomas įvykis '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "userAndOthersAreTyping": "{username} ir dar {count} kiti rašo…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} ir {username2} rašo…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} rašo…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} išsiuntė {type} įvykį", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "reportUser": "Pranešti apie vartotoją", + "reactedWith": "{sender} sureagavo su {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "unsupportedAndroidVersion": "Nepalaikoma Android versija", + "acceptedTheInvitation": "👍 {username} priėmė kvietimą", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "activatedEndToEndEncryption": "🔐 {username} aktyvavo visapusį šifravimą", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "answeredTheCall": "{senderName} atsiliepė į skambutį", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "askVerificationRequest": "Priimti šią patvirtinimo užklausą iš {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "badServerLoginTypesException": "Namų serveris palaiko šiuos prisijungimo tipus:\n{serverVersions}\nTačiau ši programa palaiko tik:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "bannedUser": "{username} užblokavo {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} pakeitė istorijos matomumą", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} pakeitė istorijos matomumą į: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "commandHint_create": "Sukurti tuščią grupinį pokalbį\nNaudokite --no-encryption kad išjungti šifravimą", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_dm": "Pradėti tiesioginį pokalbį\nNaudokite --no-encryption kad išjungti šifravimą", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_myroomavatar": "Nustatyti savo nuotrauką šiame kambaryje (su mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_op": "Nustatyti naudotojo galios lygį (numatytasis: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_react": "Siųsti atsakymą kaip reakciją", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandMissing": "{command} nėra komanda.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "couldNotDecryptMessage": "Nepavyko iššifruoti pranešimo: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count} dalyviai", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "createdTheChat": "💬 {username} sukūrė pokalbį", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "emptyChat": "Tuščias pokalbis", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Jaustukas jau egzistuoja!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Neteisingas jaustuko trumpasis kodas!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Jaustuko trumpasis kodas", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Įgalinti jaustukų paketą visur", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} baigė skambutį", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "errorObtainingLocation": "Klaida nustatant vietą: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "groupWith": "Grupė su {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "hasWithdrawnTheInvitationFor": "{username} atšaukė {targetName} kvietimą", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "inviteContactToGroup": "Pakviesti kontaktą į {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invitedUser": "📩 {username} pakvietė {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "inviteText": "{username} pakvietė jus prisijungti prie FluffyChat. \n1. Įdiekite FluffyChat: https://fluffychat.im \n2. Prisiregistruokite arba prisijunkite \n3. Atidarykite pakvietimo nuorodą: {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "joinedTheChat": "👋 {username} prisijungė prie pokalbio", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "kicked": "👞 {username} išmetė {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} išmetė ir užblokavo {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "lastActiveAgo": "Paskutinis aktyvumas: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "loadCountMoreParticipants": "Įkelti dar {count} dalyvius", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "logInTo": "Prisijungti prie {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "cantOpenUri": "Nepavyksta atidaryti URI {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changedTheChatAvatar": "{username} pakeitė pokalbio avatarą", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} pakeitė pokalbių leidimus", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} pakeitė rodomą vardą į: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} pakeitė svečio prieigos taisykles", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} pakeitė svečio prieigos taisykles į: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} pakeitė prisijungimo taisykles", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} pakeitė prisijungimo taisykles į: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} pakeitė savo avatarą", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} pakeitė kambario pseudonimus", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} pakeitė pakvietimo nuorodą", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "pinMessage": "Prisegti prie kambario", + "confirmEventUnpin": "Ar tikrai norite visam laikui atsegti įvykį?", + "emojis": "Jaustukai", + "unsupportedAndroidVersionLong": "Šiai funkcijai reikalinga naujesnė Android versija. Patikrinkite, ar nėra naujinimų arba Lineage OS palaikymo.", + "youRejectedTheInvitation": "Jūs atmetėte kvietimą", + "youJoinedTheChat": "Jūs prisijungėte prie pokalbio", + "youAcceptedTheInvitation": "👍 Jūs priėmėte kvietimą", + "youBannedUser": "Jūs užblokavote {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youHaveWithdrawnTheInvitationFor": "Jūs atšaukėte kvietimą {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 Jus pakvietė {user}", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKicked": "👞 Jūs išmetėte {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 Pakvietėte {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKickedAndBanned": "🙅 Jūs išmetėte ir užblokavote {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "Jūs atblokavote {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "locationDisabledNotice": "Vietos nustatymo paslaugos yra išjungtos. Kad galėtumėte bendrinti savo buvimo vietą, įjunkite jas.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} nėra Matrix serveris, ar vietoj jo naudoti {server2}?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "numUsersTyping": "{count} vartotojai rašo…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "openInMaps": "Atidaryti žemėlapiuose", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "sentAPicture": "🖼️ {username} atsiuntė nuotrauką", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} atsiuntė vaizdo įrašą", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} išsiuntė skambučio informaciją", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪 {username} paliko pokalbį", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "markAsRead": "Žymėti kaip skaitytą", + "askSSSSSign": "Kad galėtumėte prijungti kitą asmenį, įveskite savo saugyklos slaptafrazę arba atkūrimo raktą.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "autoplayImages": "Automatiškai leisti animuotus lipdukus ir jaustukus", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "commandHint_markasdm": "Pažymėti kaip tiesioginio pokalbio kambarį", + "dehydrateWarning": "Šio veiksmo negalima atšaukti. Įsitikinkite, kad saugiai saugote atsarginę kopiją.", + "commandHint_markasgroup": "Pažymėti kaip grupę", + "storeInAppleKeyChain": "Saugoti Apple raktų grandinėje", + "newSpace": "Nauja erdvė", + "user": "Vartotojas", + "custom": "Pasirinktinis", + "confirmMatrixId": "Norėdami ištrinti savo paskyrą, patvirtinkite savo Matrix ID.", + "supposedMxid": "Tai turėtų būti {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "dehydrate": "Eksportuoti sesiją ir išvalyti įrenginį", + "hydrate": "Atkurti iš atsarginės kopijos failo", + "countFiles": "{count} failai", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "users": "Vartotojai", + "storeSecurlyOnThisDevice": "Saugiai laikyti šiame prietaise", + "storeInAndroidKeystore": "Saugoti Android raktų saugykloje", + "noKeyForThisMessage": "Taip gali atsitikti, jei žinutė buvo išsiųsta prieš prisijungiant prie paskyros šiame prietaise.\n\nTaip pat gali būti, kad siuntėjas užblokavo jūsų prietaisą arba kažkas sutriko su interneto ryšiu.\n\nAr galite perskaityti žinutę kitoje sesijoje? Tada galite perkelti žinutę iš jos! Eikite į Nustatymai > Prietaisai ir įsitikinkite, kad jūsų prietaisai patvirtino vienas kitą. Kai kitą kartą atidarysite kambarį ir abi sesijos bus pirmame plane, raktai bus perduoti automatiškai.\n\nNenorite prarasti raktų atsijungdami arba keisdami įrenginius? Įsitikinkite, kad nustatymuose įjungėte pokalbių atsarginę kopiją.", + "whyIsThisMessageEncrypted": "Kodėl ši žinutė neperskaitoma?", + "hugContent": "{senderName} jus apkabina", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_cuddle": "Siųskite glebimą", + "appLockDescription": "Užrakinti programą, kai jos naudojama, nustatant PIN kodą", + "importFromZipFile": "Importuoti iš .zip failo", + "aboutHomeserver": "Apie {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "exportEmotePack": "Eksportuoti jaustukų paketą kaip .zip", + "googlyEyesContent": "{senderName} siunčia jums išsipūtusias akutes", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "importEmojis": "Importuoti jaustukus", + "notAnImage": "Nėra vaizdo failas.", + "cuddleContent": "{senderName} jus glėbia", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_roomupgrade": "Atnaujinkite šį kambarį iki nurodytos kambario versijos", + "commandHint_hug": "Siųskite apkabinimą", + "replace": "Pakeisti", + "commandHint_googly": "Siųskite išsipūtusias akutes", + "importNow": "Importuoti dabar", + "yesterday": "vakar", + "edited": "(redaguota)", + "uploading": "Įkeliamas", + "encrypting": "Šifruojamas", + "generatingThumbnail": "Generuojama miniatiūra", + "sending": "Siunčiama", + "today": "šiandien", + "youAreReadyToStart": "Esate pasirengę pradėti!", + "saveAsFile": "Išsaugoti kaip failą", + "@saveAsFile": { + "type": "String", + "placeholders": {} + }, + "unlock": "Atrakinti", + "@unlock": { + "type": "String", + "placeholders": {} + }, + "openFile": "Atverti failą", + "@openFile": { + "type": "String", + "placeholders": {} + }, + "resetAccountWarning": "Atkūrus paskyrą, prarasite prieigą prie senų pranešimų visam laikui. Visus šiuo metu naudojamus įrenginius reikės patvirtinti iš naujo. Šį veiksmą atlikite tik tuo atveju, jei nebeliko jokių kitų įrenginių, kuriais būtų galima patvirtinti sesaną, ir praradote atkūrimo raktą bei slaptafrazę!", + "@resetAccountWarning": { + "type": "String", + "placeholders": {} + }, + "newPassphraseDescription": "„FluffyChat“ naudoja visapusišką šifravimą. Kad neprarastumėte savo žinučių, pasirinkite saugią slaptafrazę, kuri apsaugos jūsų kriptografinę tapatybę ir užšifruotą žinučių atsarginę kopiją.", + "@newPassphraseDescription": { + "type": "String", + "placeholders": {} + }, + "newPassphrase": "Nauja slaptafrazė", + "@newPassphrase": { + "type": "String", + "placeholders": {} + }, + "repeatPassphrase": "Pakartokite slaptafrazę", + "@repeatPassphrase": { + "type": "String", + "placeholders": {} + }, + "passphrasesMatch": "Slaptafrazės sutampa", + "@passphrasesMatch": { + "type": "String", + "placeholders": {} + }, + "editImage": "Redaguoti vaizdą", + "@editImage": { + "type": "String", + "placeholders": {} + }, + "decline": "Atmesti", + "waitingForParticipant": "Laukiama dalyvio...", + "incomingCall": "Gaunamas skambutis", + "enterCall": "Įeiti į skambutį", + "allow": "Leisti", + "deny": "Atmesti", + "save": "Išsaugoti", + "@save": { + "type": "String", + "placeholders": {} + }, + "draw": "Piešti", + "@draw": { + "type": "String", + "placeholders": {} + }, + "clear": "Valyti", + "@clear": { + "type": "String", + "placeholders": {} + }, + "versionWithNumber": "Versija: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "Žurnalai", + "baseUrl": "Pradinis URL", + "identityServer": "Identifikavimo serveris:", + "matrixId": "„Matrix“ ID" +} diff --git a/lib/l10n/intl_lv.arb b/lib/l10n/intl_lv.arb new file mode 100644 index 0000000..f7db800 --- /dev/null +++ b/lib/l10n/intl_lv.arb @@ -0,0 +1,2807 @@ +{ + "hugContent": "{senderName} apskauj Tevi", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "darkTheme": "Tumšs", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "paroles vārdkopa vai atkopes atslēga", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Lūgums ievadīt savu paroli", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Tās sakrīt", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "jumpToLastReadMessage": "Pārlēkt uz pēdējo izlasīto ziņu", + "obtainingLocation": "Iegūst atrašanās vietu…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "commandHint_cuddle": "Nosūtīt samīļojienu", + "chats": "Tērzēšanas", + "@chats": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Nezināma ierīce", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Emocijas īskods", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Šifrēšanu var iespējot tikai tad, kad istaba vairs nav publiski pieejama.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "admin": "Pārvaldītājs", + "@admin": { + "type": "String", + "placeholders": {} + }, + "reportErrorDescription": "😭 Ak nē! Kaut kas nogāja greizi. Ja ir vēlēšanas, par šo nepilnību var ziņot izstrādātājiem.", + "directChats": "Tiešās tērzēšanas", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Uzaicināt kontaktpersonu {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "addAccount": "Pievienot kontu", + "close": "Aizvērt", + "@close": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Konfigurēt tērzēšanu", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "reply": "Atbildēt", + "@reply": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "Pašreiz darbīgi", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Noņemt savu attēlu", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "unsupportedAndroidVersion": "Neatbalstīta Android versija", + "blockDevice": "Liegt ierīci", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "commandHint_html": "Nosūtīt ar HTML formatētu tekstu", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "youAreNoLongerParticipatingInThisChat": "Tu vairs nepiedalies šajā tērzēšanā", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "encryption": "Šifrēšana", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "oneClientLoggedOut": "Viens no klientiem ir atteicies", + "unsupportedAndroidVersionLong": "Šai iespējai ir nepieciešama jaunāka Android versija. Lūgums pārbaudīt atjauninājumus vai Lineage OS atbalstu.", + "kicked": "👞 {username} izmeta {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "changeTheNameOfTheGroup": "Mainīt kopas nosaukumu", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} nomainīja tērzēšanas attēlu", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "verifySuccess": "Apliecināšana bija sekmīga.", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Nosūtīt datni", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Jauns apliecināšanas pieprasījums.", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "sentAPicture": "🖼️ {username} nosūtīja attēlu", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "invited": "Uzaicināts", + "@invited": { + "type": "String", + "placeholders": {} + }, + "changedTheDisplaynameTo": "{username} nomainīja savu attēlojamo vārdu uz '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "setColorTheme": "Iestatīt krāsu izskatu:", + "commandHint_create": "Izveidot tukšu kopas tērzēšanu\nLai atspējotu šifrēšanu, jāizmanto --no-encryption", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "warning": "Uzmanību!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "password": "Parole", + "@password": { + "type": "String", + "placeholders": {} + }, + "supposedMxid": "Tam būtu jābūt {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "editDisplayname": "Labot attēlojamo vārdu", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "user": "Lietotājs", + "roomVersion": "Istabas versija", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username} nosūtīja datni", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "youAcceptedTheInvitation": "👍 Tu pieņēmi uzaicinājumu", + "banFromChat": "Izslēgt no tērzēšanas", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} nav Matrix serveris, tā vietā izmantot {server2}?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "userAndOthersAreTyping": "{username} un {count} citi raksta…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "youInvitedBy": "📩 {user} Tevi uzaicināja", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "userIsTyping": "{username} raksta…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "openAppToReadMessages": "Atvērt lietotni, lai lasītu ziņas", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "sentAVideo": "🎥 {username} nosūtīja video", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "banUserDescription": "Lietotājam tiks liegta piekļuve tērzēšanai, un vairs nevarēs vēlreiz pievienoties tērzēšanai, līdz liegums tiks atcelts.", + "inviteContact": "Uzaicināt kontaktpersonu", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Lai varētu parakstīt otru cilvēku, lūgums ievadīt savu drošo krātuves paroles vārdkopu vai atkopes atslēgu.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Gaida, līdz biedrs apstiprinās pieprasījumu…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "remove": "Noņemt", + "@remove": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Rakstīt ziņu…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Mainīt izskatu", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "removeDevicesDescription": "Tu tiksi izrakstīts no šīs ierīces un vairs nevarēsi saņemt ziņas.", + "countParticipants": "{count, plural, zero{{count} dalībnieku} one{{count} dalībnieks} other{{count} dalībnieki}}", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "tryAgain": "Jāmēģina vēlreiz", + "areGuestsAllowedToJoin": "Vai vieslietotāji drīkst pievienoties?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "blocked": "Liegta", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "youKickedAndBanned": "🙅 Izraidīji {user} un liedzi piekļuvi", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "unbanUserDescription": "Lietotājs varēs atkal pievienoties tērzēšanai, ja mēģinās.", + "userAndUserAreTyping": "{username} un {username2} raksta…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "pleaseClickOnLink": "Lūgums klikšķināt uz saites e-pastā un tad turpināt.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Saglabāt datni", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "sendOnEnter": "Nosūtīt ar Enter", + "answeredTheCall": "{senderName} atbildēja uz zvanu", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "youRejectedTheInvitation": "Tu noraidīji uzaicinājumu", + "messagesStyle": "Ziņas:", + "couldNotDecryptMessage": "Nevarēja atšifrēt ziņu: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Tikai uzaicināti lietotāji", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "link": "Saite", + "newSpaceDescription": "Vietas ļauj apvienot tērzēšanas un veidot privātas vai publiskas kopienas.", + "chatDescription": "Tērzēšanas apraksts", + "next": "Nākamais", + "@next": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Lūgums sekot norādēm tīmekļvietnē un piesist \"Nākamais\".", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "changedTheGuestAccessRules": "{username} nomainīja viesu piekļuves nosacījumus", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "editRoomAliases": "Labot istabu aizstājvārdus", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "encryptThisChat": "Šifrēt šo tērzēšanu", + "publicRooms": "Publiskas istabas", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "No uzaicinājuma", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Nosūtīt ziņas", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Nepareiza paroles vārdkopa vai atkopes atslēga", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "reopenChat": "Atkārtoti atvērt tērzēšanu", + "create": "Izveidot", + "@create": { + "type": "String", + "placeholders": {} + }, + "no": "Nē", + "@no": { + "type": "String", + "placeholders": {} + }, + "alias": "aizstājvārds", + "@alias": { + "type": "String", + "placeholders": {} + }, + "unpin": "Atspraust", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "addToBundle": "Pievienot komplektam", + "reportMessage": "Ziņot par ziņu", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "Vieta ir publiska", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "all": "Viss", + "@all": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Noņemt visas pārējās ierīces", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unblockDevice": "Atslēgt ierīci", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "countFiles": "{count} datnes", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "noKeyForThisMessage": "Tā var notikt, ja ziņa tika nosūtīta, pirms pieteicies savā kontā šajā ierīcē.\n\nIr arī iespējams, ka sūtītājs noliedza Tavu ierīci vai kaut kas nogāja greizi ar interneta savienojumu.\n\nVai ziņas ir lasāmas citā sesijā? Tad Tu vari pārsūtīt ziņu no tās. Jādodas uz Iestatījumi > Ierīces un jāpārliecinās, ka ierīces viena otru ir apliecinājušas. Kad nākamreiz atvērsi istabu un abas sesijas būs priekšplānā, atslēgas tiks automātiski pārsūtītas.\n\nVai nevēlies zaudēt atslēgas, kad atsakies vai maini ierīces? Jāpārliecinās, ka iestatījumos ir iespējota tērzēšanu rezerves kopija.", + "enableEncryptionWarning": "Vairs nebūs iespējams atspējot šifrēšanu. Vai tiešām to darīt?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} uzaicināja pievienoties FluffyChat.\n1. Jāapmeklē fluffychat.im un jāuzstāda lietotne \n2. Jāizveido konts vai jāpiesakās \n3. Jāatver uzaicinājuma saite: \n {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "shareLocation": "Kopīgot atrašanās vietu", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "reason": "Iemesls", + "@reason": { + "type": "String", + "placeholders": {} + }, + "commandHint_markasgroup": "Atzīmēt kā kopu", + "errorObtainingLocation": "Kļūda atrašanās vietas iegūšanā: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "pushNotificationsNotAvailable": "Pašpiegādes paziņojumi nav pieejami", + "passwordRecovery": "Paroles atkope", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "storeInAppleKeyChain": "Glabāt Apple KeyChain", + "replaceRoomWithNewerVersion": "Aizvietot istabu ar jaunāku versiju", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "hydrate": "Atjaunot no rezerves kopijas datnes", + "invalidServerName": "Nederīgs servera nosaukums", + "chatPermissions": "Tērzēšanas atļaujas", + "voiceMessage": "Balss ziņa", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "badServerLoginTypesException": "Mājasserveris nodrošina pieteikšanās veidus:\n{serverVersions}\nSavukārt, šī lietotne atbalsta tikai:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "cantOpenUri": "Nevar atvērt adresi {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "sender": "Sūtītājs", + "storeInAndroidKeystore": "Glabāt Android KeyStore", + "lastActiveAgo": "Pēdējoreiz tiešsaistē: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} nomainīja viesu piekļuves nosacījumus uz {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "weSentYouAnEmail": "Mēs nosūtīja e-pasta ziņu", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "makeAdminDescription": "Tiklīdz šis lietotājs tiks padarīts par pārvaldītāju, to vairs nevarēs atdarīt, jo tad tam būs tādas pašas atļaujas kā Tev.", + "edit": "Labot", + "@edit": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Ielādēt vēl…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Netika atrasta neviena emocija. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Sinhronizē... Lūgums uzgaidīt.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Parole tikai nomainīta", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "commandHint_clearcache": "Iztīrīt kešatmiņu", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "loadingPleaseWait": "Ielādē... Lūgums uzgaidīt.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "copy": "Ievietot starpliktuvē", + "@copy": { + "type": "String", + "placeholders": {} + }, + "editBundlesForAccount": "Labot šī konta komplektus", + "enableEncryption": "Iespējot šifrēšanu", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "whyIsThisMessageEncrypted": "Kādēļ šī ziņa ir nelasāma?", + "rejectedTheInvitation": "{username} noraidīja uzaicinājumu", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "setChatDescription": "Iestatīt tērzēšanas aprakstu", + "userLeftTheChat": "🚪 {username} pameta tērzēšanu", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "spaceName": "Vietas nosaukums", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "importFromZipFile": "Ievietot no .zip datnes", + "or": "Vai", + "@or": { + "type": "String", + "placeholders": {} + }, + "dehydrateWarning": "Šī darbība nav atdarāma. Jānodrošina, ka rezerves kopijas datne tiek droši uzglabāta.", + "noOtherDevicesFound": "Netika atrastas citas ierīces", + "whoIsAllowedToJoinThisGroup": "Kuram ir ļauts pievienoties šai kopai", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Tukša tērzēšana", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "storeSecurlyOnThisDevice": "Droši uzglabāt šajā ierīcē", + "chatBackup": "Tērzēšanu rezerves kopēšana", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "redactedBy": "Laboja {username}", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "submit": "Iesniegt", + "@submit": { + "type": "String", + "placeholders": {} + }, + "unmuteChat": "Atcelt tērzēšanas apklusināšanu", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} izveidoja tērzēšanu", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactedAnEvent": "{username} laboja notikumu", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "autoplayImages": "Automātiski atskaņot animētas uzlīmes un emocijas", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "compareEmojiMatch": "Lūgums salīdzināt emocijzīmes", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "participant": "Dalībnieks", + "@participant": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Pieteikties {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "yes": "Jā", + "@yes": { + "type": "String", + "placeholders": {} + }, + "changedTheRoomAliases": "{username} nomainīja istabas aizstājvārdus", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "fileIsTooBigForServer": "Nevar nosūtīt. Serveris nodrošina pielikums līdz {max}.", + "help": "Palīdzība", + "@help": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Tērzēšanas izvērsums", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "changedTheHistoryVisibilityTo": "{username} nomainīja vēstures redzamību uz {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "leftTheChat": "Pameta tērzēšanu", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "verified": "Apliecināta", + "@verified": { + "type": "String", + "placeholders": {} + }, + "repeatPassword": "Atkārtot paroli", + "setStatus": "Iestatīt stāvokli", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Kopa ar {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "delete": "Izdzēst", + "@delete": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Jauna ziņa FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "readUpToHere": "Izlasīts līdz šejienei", + "downloadFile": "Lejupielādēt datni", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "changedTheJoinRulesTo": "{username} nomainīja pievienošanās nosacījumus uz {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} nomainīja tērzēšanas atļaujas", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "moderator": "Moderators", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "optionalRedactReason": "(Pēc izvēles) Ziņas labošanas iemesls...", + "acceptedTheInvitation": "👍 {username} pieņēma uzaicinājumu", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "waitingPartnerEmoji": "Gaida, līdz biedrs apstiprinās emocijzīmes…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "Šifrēšana tika bojāta", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Mēģināt nosūtīt vēlreiz", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Viesi var pievienoties", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "ok": "Labi", + "@ok": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Ievietot starpliktuvē", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "dehydrate": "Izgūt sesiju un iztīrīt ierīci", + "locationPermissionDeniedNotice": "Atrašanās vietas atļauja noliegta. Lūgums nodrošināt to, lai būtu iespējams kopīgot savu atrašanās vietu.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "send": "Nosūtīt", + "@send": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} atsauca uzaicinājumu {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "visibleForAllParticipants": "Redzama visiem dalībniekiem", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Istabas netika atrastas…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "banned": "Izslēgts", + "@banned": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Nosūtīt kā tekstu", + "@sendAsText": { + "type": "String" + }, + "archiveRoomDescription": "Tērzēšana tiks pārvietota uz arhīvu. Citi lietotāji redzēs, ka pameti tērzēšanu.", + "exportEmotePack": "Izgūt emociju paku kā .zip", + "account": "Konts", + "@account": { + "type": "String", + "placeholders": {} + }, + "commandInvalid": "Nederīga komanda", + "@commandInvalid": { + "type": "String" + }, + "setAsCanonicalAlias": "Iestatīt kā galveno aizstājvārdu", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Kādēļ vēlies ziņot par šo?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "Atrašanās vietas pakalpojumi ir atspējoti. Lūgums tos iespējot, lai būtu iespējams kopīgot savu atrašanās vietu.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "changedTheRoomInvitationLink": "{username} nomainīja uzaicinājuma saiti", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "newChat": "Jauna tērzēšana", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "notifications": "Paziņojumi", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "commandHint_plain": "Nosūtīt neformatētu tekstu", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "openCamera": "Atvērt kameru", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "guestsAreForbidden": "Viesi nav ļauti", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "mention": "Pieminēt", + "@mention": { + "type": "String", + "placeholders": {} + }, + "openInMaps": "Atvērt kartēs", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Ar šīm adresēm var atjaunot savu paroli.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Emocija jau pastāv!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "redactedByBecause": "Laboja {username}, jo: \"{reason}\"", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "isTyping": "raksta", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "youHaveWithdrawnTheInvitationFor": "Tu atsauci {user} uzaicinājumu", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "chat": "Tērzēšana", + "@chat": { + "type": "String", + "placeholders": {} + }, + "group": "Kopa", + "@group": { + "type": "String", + "placeholders": {} + }, + "leave": "Pamest", + "@leave": { + "type": "String", + "placeholders": {} + }, + "skip": "Izlaist", + "@skip": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Istaba tika atjaunināta", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Iespējot kā vispārēju emociju paku", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Vai tiešām?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Lūgums izvēlēties piekļuves kodu", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "Vēl nav pievienots paroles atjaunošanas veids.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "changedTheProfileAvatar": "{username} nomainīja savu attēlu", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "reportUser": "Ziņot par lietotāju", + "sharedTheLocation": "{username} kopīgoja savu atrašanās vietu", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "commandHint_send": "Nosūtīt tekstu", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "onlineKeyBackupEnabled": "Tiešsaistes atslēgas rezerves kopēšana ir iespējota", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} atcēla {targetName} piekļuves liegumu", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "confirmEventUnpin": "Vai tiešām neatgriezeniski atspraust šo notikumu?", + "youInvitedUser": "📩 Tu uzaicināji {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} izmeta {targetName} un liedza piekļuvi", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "noConnectionToTheServer": "Nav savienojuma ar serveri", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "fileHasBeenSavedAt": "Datne tika saglabāta {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "addToSpace": "Pievienot vietai", + "unbanFromChat": "Atcelt liegumu tērzēšanā", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "commandMissing": "{command} nav komanda.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "redactMessageDescription": "Ziņa tiks labota visiem šīs sarunas dalībniekiem. To nevar atdarīt.", + "redactMessage": "Labot ziņu", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "forward": "Pārsūtīt", + "@forward": { + "type": "String", + "placeholders": {} + }, + "commandHint_discardsession": "Atmest sesiju", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "invalidInput": "Nederīga ievade.", + "about": "Par", + "@about": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Jāizvēlas droša parole", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Tava publiskā atslēga", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Pārāk daudz pieprasījumu. Lūdzu, vēlāk mēģini vēlreiz!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username} uzaicināja {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Izmest no tērzēšanas", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "commandHint_myroomnick": "Iestatīt savu attēlojamo vārdu šajā istabā", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "noPermission": "Nav atļaujas", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "doNotShowAgain": "Vairs nerādīt", + "activatedEndToEndEncryption": "🔐 {username} iespējoja pilnīgu šifrēšanu", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "report": "Ziņot", + "status": "Stāvoklis", + "@status": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Lūgums salīdzināt skaitļus", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "Kopa ir publiska", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Uzsākt apliecināšanu", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "joinRoom": "Pievienoties istabai", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "unverified": "Neapliecināta", + "sentCallInformations": "{senderName} nosūtīja informāciju par zvanu", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "googlyEyesContent": "{senderName} sūta izbolītas acis", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "youBannedUser": "Tu {user} liedzi piekļuvi", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "theyDontMatch": "Tās nesakrīt", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Tev tika liegta piekļuve šai tērzēšanai", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Attēlojamais vārds tika nomainīts", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "sentAnAudio": "🎤 {username} nosūtīja skaņu", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "editRoomAvatar": "Labot istabas attēlu", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Šifrēta", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "commandHint_leave": "Pamest šo istabu", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_myroomavatar": "Iestatīt savu attēlu šajā istabā (ar mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "cancel": "Atcelt", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "hasKnocked": "🚪 {user} pieklauvēja", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "openLinkInBrowser": "Atvērt saiti pārlūkā", + "clearArchive": "Iztīrīt arhīvu", + "appLock": "Lietotnes aizslēgšana", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "commandHint_react": "Nosūtīt atbildi kā reakciju", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "changedTheHistoryVisibility": "{username} mainīja vēstures redzamību", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "commandHint_me": "Apraksti sevi", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "pleaseEnterYourUsername": "Lūgums ievadīt savu lietotājvārdu", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "messageInfo": "Informācija par ziņu", + "disableEncryptionWarning": "Drošības iemeslu dēļ tērzēšanā nevar atspējot šifrēšanu, ja tā ir pirms tam ir bijusi iespējota.", + "encryptionNotEnabled": "Šifrēšana nav iespējota", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "wrongPinEntered": "Ievadīts nepareizs PIN. Jāmēģina vēlreiz pēc {seconds} sekundēm...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "sendTypingNotifications": "Nosūtīt rakstīšanas paziņojumus", + "lightTheme": "Gaišs", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "inviteGroupChat": "📨 Uzaicinājums uz kopas tērzēšanu", + "verifyTitle": "Apliecina citu kontu", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "enterAnEmailAddress": "Jāievada e-pasta adrese", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "commandHint_kick": "Noņemt norādīto lietotāju no šīs istabas", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "copiedToClipboard": "Ievietots starpliktuvē", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "createNewSpace": "Jauna vieta", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "commandHint_unban": "Atcelt norādītā lietotāja izslēgšanu no šīs istabas", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "unknownEncryptionAlgorithm": "Nezināms šifrēšanas algoritms", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "Izslēgt norādīto lietotāju no šīs istabas", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "importEmojis": "Ievietot emocijzīmes", + "wasDirectChatDisplayName": "Tukša tērzēšana (bija {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "noChatDescriptionYet": "Tērzēšanas apraksts vēl nav izveidots.", + "defaultPermissionLevel": "Noklusējuma atļauju līmenis jauniem lietotājiem", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "removeFromBundle": "Noņemt no šī komplekta", + "numUsersTyping": "{count} lietotāji raksta…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "fontSize": "Fonta izmērs", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Kurš var veikt kādas darbības", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "confirmMatrixId": "Lūgums apliecināt savu Matrix Id, lai varētu izdzēst savu kontu.", + "learnMore": "Uzzināt vairāk", + "iHaveClickedOnLink": "Es uzklikšķināju uz saites", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "you": "Tu", + "@you": { + "type": "String", + "placeholders": {} + }, + "notAnImage": "Nav attēla datne.", + "users": "Lietotāji", + "openGallery": "Atvērt galeriju", + "chatDescriptionHasBeenChanged": "Tērzēšanas apraksts ir mainījies", + "search": "Meklēt", + "@search": { + "type": "String", + "placeholders": {} + }, + "bundleName": "Komplekta nosaukums", + "removeFromSpace": "Noņemt no vietas", + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "commandHint_op": "Iestatīt norādītā lietotāja pilnvaru līmeni (noklusējums: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_join": "Pievienoties norādītajai istabai", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "sourceCode": "Pirmkods", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "roomUpgradeDescription": "Tērzēšana tad tiks atkārtoti izveidota ar jauno istabas versiju. Visiem dalībniekiem tiks paziņots, ka viņiem ir jāpārslēdzas uz jauno tērzēšanu. Vairāk par istabu versijām var atrast https://spec.matrix.org/latest/rooms/", + "commandHint_invite": "Uzaicināt norādīto lietotāju šajā istabā", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "userSentUnknownEvent": "{username} nosūtīja notikumu {type}", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "scanQrCode": "Nolasīt kvadrātkodu", + "logout": "Atteikties", + "@logout": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterANumber": "Lūgums ievadīt skaitli lielāku par 0", + "contactHasBeenInvitedToTheGroup": "Kontaktpersona tika uzaicināta kopā", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "youKicked": "👞 Tu izraidīji {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "areYouSureYouWantToLogout": "Vai tiešām atteikties?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "changedTheJoinRules": "{username} nomainīja pievienošanās nosacījumus", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "jump": "Pārlēkt", + "groups": "Kopas", + "@groups": { + "type": "String", + "placeholders": {} + }, + "reactedWith": "{sender} atsaucās ar {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "bannedUser": "{username} izslēdza {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "sorryThatsNotPossible": "Atvaino! Tas nav iespējams", + "oopsSomethingWentWrong": "Ak vai! Kaut kas nogāja greizi…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Ielādēt vēl {count} dalībniekus", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "shareInviteLink": "Kopīgot uzaicinājuma saiti", + "commandHint_markasdm": "Atzīmēt kā tiešo ziņu istabu norādītajam Matrix Id", + "cuddleContent": "{senderName} samīļo Tevi", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "askVerificationRequest": "Pieņemt apliecināšanas pieprasījumu no {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "messages": "Ziņas", + "@messages": { + "type": "String", + "placeholders": {} + }, + "login": "Pieteikties", + "@login": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Gaida, līdz biedrs apstiprinās skaitļus…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Izskatās, ka Firebase mākoņziņojumapmaiņa nav pieejama šajā ierīcē. Lai joprojām saņemtu pašpiegādes paziņojumus, mēs iesakām uzstādīt ntfy. Ar ntfy vai citu UnifiedPush nodrošinātāju ir iespējams saņemt pašpiegādes paziņojumus drošā veidā. ntfy var lejupielādēt no Play Store vai F-Droid.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "addEmail": "Pievienot e-pasta adresi", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "emoteKeyboardNoRecents": "Nesen izmantotās emocijas parādīsies šeit...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} uzsāka zvanu", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "emoteInvalid": "Nederīgs emocijas īskods.", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Sistēmas", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Izdzēst ziņu", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Tērzēšanas vēstures redzamība", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "settings": "Iestatījumi", + "@settings": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Mainīt mājasserveri", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "youJoinedTheChat": "Tu pievienojies tērzēšanai", + "changeDeviceName": "Mainīt ierīces nosaukumu", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Aizmirsta parole", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Kā Tev šodien klājas?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "security": "Drošība", + "@security": { + "type": "String", + "placeholders": {} + }, + "markAsRead": "Atzīmēt kā lasītu", + "sendAudio": "Nosūtīt skaņu", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sentASticker": "😊 {username} nosūtīja uzlīmi", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "commandHint_dm": "Uzsākt tiešu tērzēšanu\nLai atspējotu šifrēšanu, jāizmanto --no-encryption", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_hug": "Nosūtīt apskāvienu", + "replace": "Aizstāt", + "reject": "Noraidīt", + "@reject": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Labot liegtos serverus", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Ak vai! Diemžēl atgadījās kļūda pašpiegādes paziņojumu iestatīšanas laikā.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "youUnbannedUser": "Tu atcēli {user} piekļuves liegumu", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Tas atspējos Tavu lietotāja kontu. To nevar atdarīt. Vai tiešām?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "archive": "Arhīvs", + "@archive": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} pievienojās tērzēšanai", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "visibleForEveryone": "Redzama visiem", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "newSpace": "Jauna vieta", + "changePassword": "Nomainīt paroli", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "devices": "Ierīces", + "@devices": { + "type": "String", + "placeholders": {} + }, + "accept": "Pieņemt", + "@accept": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Nezināms notikums '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "emojis": "Emocijzīmes", + "pleaseEnterYourPin": "Lūgums ievadīt savu PIN", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "share": "Kopīgot", + "@share": { + "type": "String", + "placeholders": {} + }, + "commandHint_googly": "Nosūtīt izbolītu acu pāri", + "createGroup": "Izveidot kopu", + "privacy": "Privātums", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Mainīt savu attēlu", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Nosūtīt attēlu", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "time": "Laiks", + "contentHasBeenReported": "Par saturu tika ziņos servera pārvaldītājiem", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "custom": "Pielāgots", + "noBackupWarning": "Uzmanību! Bez tērzēšanu rezerves kopiju veidošanas iespējošanas tiks zaudēta piekļuve savām šifrētajām ziņām. Ir ļoti ieteicams iespējot tērzēšanu rezerves kopiju veidošanu pirms atteikšanās.", + "fromJoining": "No pievienošanās", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Nosūtīt video", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "kickUserDescription": "Lietotājs ir izmests no tērzēšanas, bet piekļuve nav liegta. Publiskās tērzēšanās lietotājs var atkārtoti pievienoties jebkurā laikā.", + "sendAMessage": "Nosūtīt ziņu", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "pin": "Piespraust", + "@pin": { + "type": "String", + "placeholders": {} + }, + "importNow": "Ievietot tagad", + "deleteAccount": "Izdzēst kontu", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "pinMessage": "Piespraust istabai", + "muteChat": "Apklusināt tērzēšanu", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "invite": "Uzaicināt", + "anyoneCanJoin": "Ikviens var pievienoties", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} beidza zvanu", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "appLockDescription": "Aizslēgt lietotni, kad tā netiek izmantota, ar PIN kodu", + "globalChatId": "Vispārējais tērzēšanas Id", + "accessAndVisibilityDescription": "Kam ir ļauts pievienoties šai tērzēšanai un kā tērzēšana var tikt atklāta.", + "customEmojisAndStickers": "Pielāgotas emocijzīmes un uzlīmes", + "customEmojisAndStickersBody": "Pievienot vai kopīgot pielāgotas emocijzīmes vai uzlīmes, kas var tikt izmantotas jebkurā tērzēšanā.", + "hideInvalidOrUnknownMessageFormats": "Paslēpt nederīgus vai nezināmus ziņu formātus", + "blockUsername": "Neņemt vērā lietotājvārdu", + "accessAndVisibility": "Piekļuve un redzamība", + "calls": "Zvani", + "hideRedactedMessages": "Paslēpt labošanas ziņas", + "hideRedactedMessagesBody": "Ja kāds labo ziņu, tā vairs nebūs redzama tērzēšanā.", + "blockListDescription": "Ir iespējams liegt traucējošus lietotājus. Nebūs iespējams saņem jebkādas ziņas vai uzaicinājumus uz istabām no lietotājiem, kas ir personīgajā liegumu sarakstā.", + "wrongRecoveryKey": "Atvaino... Nešķiet, ka šī būtu pareiza atkopes atslēga.", + "block": "Liegt", + "passwordRecoverySettings": "Paroles atkopes iestatījumi", + "blockedUsers": "Liegtie lietotāji", + "searchForUsers": "Meklēt @lietotājus...", + "pleaseEnterYourCurrentPassword": "Lūgums ievadīt savu pašreizējo paroli", + "publicSpaces": "Publiskas vietas", + "joinSpace": "Pievienoties vietai", + "createGroupAndInviteUsers": "Izveidot kopu un uzaicināt lietotājus", + "groupCanBeFoundViaSearch": "Kopu var atrast meklēšanā", + "commandHint_sendraw": "Nosūtīt neapstrādātu JSON", + "newPassword": "Jauna parole", + "sendReadReceipts": "Nosūtīt lasīšanas atskaites", + "verifyOtherUser": "🔐 Apliecināt otru lietotāju", + "verifyOtherDevice": "🔐 Apliecināt otru ierīci", + "yourGlobalUserIdIs": "Vispārējais lietotāja Id ir: ", + "select": "Atlasīt", + "initAppError": "Atgadījās kļūda lietotnes sāknēšanas laikā", + "formattedMessages": "Formatētas ziņas", + "canceledKeyVerification": "{sender} atcēla atslēgas apliecināšanu", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "completedKeyVerification": "{sender} pabeidza atslēgas apliecināšanu", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "requestedKeyVerification": "{sender} pieprasīja atslēgas apliecināšanu", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "{sender} uzsāka atslēgas apliecināšanu", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "incomingMessages": "Ienākošās ziņas", + "isReadyForKeyVerification": "{sender} ir gatavs atslēgas apliecināšanai", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "commandHint_unignore": "Atcelt norādītā Matrix Id neņemšanu vērā", + "commandHint_ignore": "Neņemt vērā norādīto Matrix Id", + "searchChatsRooms": "Meklēt #tērzēšanas, @lietotājus...", + "groupName": "Kopas nosaukums", + "knock": "Pieklauvēt", + "stickers": "Uzlīmes", + "usersMustKnock": "Lietotājiem jāpieklauvē", + "noOneCanJoin": "Neviens nevar pievienoties", + "knocking": "Klauvē", + "chatCanBeDiscoveredViaSearchOnServer": "Tērzēšana var tikt atklāta ar meklēšanu {server}", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "nothingFound": "Nekas netika atrasts...", + "databaseMigrationTitle": "Datubāze ir optimizēta", + "leaveEmptyToClearStatus": "Atstāt tukšu, lai notīrītu savu stāvokli.", + "pleaseChooseAStrongPassword": "Lūgums izvēlēties spēcīgu paroli", + "passwordIsWrong": "Ievadītā parole ir nepareiza", + "thisDevice": "Šī ierīce:", + "acceptedKeyVerification": "{sender} apstiprināja atslēgas apliecināšanu", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "noDatabaseEncryption": "Šajā platformā datubāzes šifrēšana netiek nodrošināta", + "databaseMigrationBody": "Lūgums uzgaidīt. Tas var aizņemt kādu brīdi.", + "passwordsDoNotMatch": "Paroles nesakrīt", + "publicChatAddresses": "Publiskas tērzēšanas adreses", + "createNewAddress": "Izveidot jaunu adresi", + "discover": "Atklāt", + "unreadChatsInApp": "{appname}: {unread} nelasītas tērzēšanas", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "addChatOrSubSpace": "Pievienot tērzēšanu vai apakškopienu", + "formattedMessagesDescription": "Attēlot bagātinātu ziņu saturu, piemēram, ar Markdown iezīmētu treknrakstu.", + "sessionLostBody": "Sesija ir zaudēta. Lūgums ziņot par šo kļūdu izstrādātājiem {url}. Kļūdas ziņojums ir: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "verifyOtherUserDescription": "Ar cita lietotāja apliecināšanu vari pārliecināties, ka zini, kam Tu tiešām raksti. 💪\n\nKad uzsāc apliecināšanu, Tu un otrs lietotājs lietotnē redzēs uznirstošo logu. Tajā jūs redzēsiet dažādas emocijzīmes vai skaitļus, kas ir jāsalīdzina savā starpā.\n\nLabākais veids, kā to izdarīt, ir satikties vai uzsākt videozvanu. 👭", + "sendTypingNotificationsDescription": "Citi tērzēšanas dalībnieki var redzēt, kad raksti jaunu ziņu.", + "noUsersFoundWithQuery": "Diemžēl ar \"{query}\" netika atrasts neviens lietotājs. Lūgums pārbaudīt, vai ir pieļauta drukas kļūda.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "restoreSessionBody": "Lietotne tagad mēģina atjaunot sesiju no rezerves kopijas. Lūgums ziņot par šo kļūdu izstrādātājiem {url}. Kļūdas ziņojums ir: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "sendReadReceiptsDescription": "Citi tērzēšanas dalībnieki var redzēt, kad izlasīji ziņu.", + "thereAreCountUsersBlocked": "Šobrīd ir liegti {count, plural, zero{{count} lietotāju} one{{count} lietotājs} other{{count} lietotāji}}.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "verifyOtherDeviceDescription": "Kad apliecini citu ierīci, šīs ierīces var apmainīt atslēgas, palielinot vispārējo drošību. 💪 Pēc apliecināšanas uzsākšanas abās ierīcēs lietotnē parādīsies uznirstošais logs. Tajā būs redzamas dažādas emocijzīmes vai skaitļi, kas jāsalīdzina abās ierīcēs. Vislabāk, ja abas ierīces ir pieejamas, pirms tiek uzsākta apliecināšana. 🤳", + "swipeRightToLeftToReply": "Pavilkt no labās puses uz kreiso, lai atbildētu", + "searchIn": "Meklēt tērzēšanā \"{chat}\"...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "searchMore": "Meklēt vairāk...", + "gallery": "Galerija", + "files": "Datnes", + "sendCanceled": "Sūtīšana atcelta", + "noChatsFoundHere": "Šeit vēl nav tērzēšanu. Jauna saruna ar kādu ir uzsākama ar zemāk esošo pogu. ⤵️", + "moderatorLevel": "{level} - Moderators", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "adminLevel": "{level} - Pārvaldītājs", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeTheVisibilityOfChatHistory": "Mainīt tērzēšanas vēstures redzamību", + "changeTheCanonicalRoomAlias": "Mainīt tērzēšanas galveno publisko adresi", + "sendRoomNotifications": "Sūtīt @istaba paziņojumus", + "changeTheDescriptionOfTheGroup": "Mainīt tērzēšanas aprakstu", + "userLevel": "{level} - Lietotājs", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "goToSpace": "Doties uz vietu: {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "changeGeneralChatSettings": "Mainīt vispārējos tērzēšanas iestatījumus", + "inviteOtherUsers": "Uzaicināt šajā tērzēšanā citus lietotājus", + "changeTheChatPermissions": "Mainīt tērzēšanas atļaujas", + "chatPermissionsDescription": "Noteikt, kurš spēka līmenis ir nepieciešams noteiktām darbībām šajā tērzēšanā. Spēka līmeņi 0, 50 un 100 parasti atbilst lietotājiem, moderatoriem un pārvaldītājiem, bet ir iespējams jebkāds iedalījums.", + "doesNotSeemToBeAValidHomeserver": "Neizskatās pēc saderīga mājasservera. Nepareizs URL?", + "loginWithMatrixId": "Pieteikties ar Matrix-Id", + "updateInstalled": "🎉 Atjauninājums {version} uzstādīts!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "changelog": "Izmaiņu žurnāls", + "noMoreChatsFound": "Vairs netika atrasta neviena tērzēšana...", + "unread": "Nelasītas", + "space": "Vieta", + "markAsUnread": "Atzīmēt kā nelasītu", + "calculatingFileSize": "Aprēķina datnes lielumu...", + "oneOfYourDevicesIsNotVerified": "Viena no ierīcēm nav apliecināta", + "noticeChatBackupDeviceVerification": "Piezīme: kad visas ierīces tiek savienotas ar tērzēšanu rezerves kopiju, tās tiek automātiski apliecinātas.", + "continueText": "Turpināt", + "blur": "Aizmiglojums:", + "setWallpaper": "Iestatīt ekrāntapeti", + "opacity": "Necaurredzamība:", + "manageAccount": "Pārvaldīt kontu", + "noContactInformationProvided": "Serveris nesniedz nekādu derīgu saziņas informāciju", + "serverInformation": "Informācija par serveri:", + "aboutHomeserver": "Par {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "contactServerAdmin": "Sazināties ar servera pārvaldītāju", + "contactServerSecurity": "Sazināties ar servera drošības uzturētājiem", + "supportPage": "Atbalsta lapa", + "name": "Nosaukums", + "version": "Versija", + "website": "Tīmekļvietne", + "boldText": "Teksts treknrakstā", + "strikeThrough": "Pārsvītrots", + "invalidUrl": "Nederīgs URL", + "addLink": "Pievienot saiti", + "italicText": "Teksts slīprakstā", + "pleaseFillOut": "Lūgums aizpildīt", + "sendImages": "Nosūtīt {count} attēlu(s)", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "compress": "Saspiest", + "unableToJoinChat": "Nevarēja pievienoties tērzēšanai. Varbūt otra puse jau ir aizvērusi sarunu.", + "appWantsToUseForLoginDescription": "Ar šo tiek ļauts lietotnei un tīmekļvietnei kopīgot informāciju par Tevi.", + "synchronizingPleaseWaitCounter": " Sinhronizē... ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "previous": "Iepriekšējais", + "otherPartyNotLoggedIn": "Otra puse pašlaik nav pieteikusies un tādēļ nevar saņemt ziņas.", + "appWantsToUseForLogin": "Izmantot '{server}', lai pieteiktos", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "open": "Atvērt", + "waitingForServer": "Gaida serveri...", + "notificationRuleContainsDisplayNameDescription": "Paziņo lietotājam, kad ziņa satur viņa attēlojamo vārdu.", + "notificationRuleServerAcl": "Apspiest servera ACL notikumus", + "notificationRuleSuppressNoticesDescription": "Apspiež paziņojumus no automatizētiem klientiem, piemēram, robotprogrammatūras.", + "notificationRuleInviteForMeDescription": "Paziņo lietotājam, kad viņš ir uzaicināts pievienoties istabai.", + "generalNotificationSettings": "Vispārēji paziņojumu iestatījumi", + "otherNotificationSettings": "Citi paziņojumu iestatījumi", + "notificationRuleContainsUserName": "Saturs lietotāja vārdu", + "notificationRuleMasterDescription": "Aizvieto visas pārējās kārtulas un atspējo visus paziņojumus.", + "notificationRuleInviteForMe": "Uzaicinājums man", + "notificationRuleMemberEvent": "Dalībnieka notikums", + "notificationRuleMemberEventDescription": "Apspiež paziņojums par dalības notikumiem.", + "notificationRuleIsUserMentionDescription": "Paziņo lietotājam, kad viņš ziņā ir tieši pieminēts.", + "notificationRuleIsRoomMention": "Istabas pieminēšana", + "notificationRuleRoomnotif": "Istabas paziņojums", + "notificationRuleReaction": "Reakcija", + "notificationRuleRoomServerAcl": "Istabas servera ACL", + "notificationRuleCall": "Zvans", + "notificationRuleCallDescription": "Paziņo lietotājam par zvaniem.", + "deletePushRuleCanNotBeUndone": "Ja tiek izdzēsts šis paziņojuma iestatījums, to nevar atsaukt.", + "more": "Vairāk", + "roomNotificationSettings": "Istabu paziņojumu iestatījumi", + "notificationRuleEncrypted": "Šifrēts", + "notificationRuleJitsi": "Jitsi videozvani", + "notificationRuleIsUserMention": "Lietotāja pieminēšana", + "notificationRuleIsRoomMentionDescription": "Paziņo lietotājam, kad tiek pieminēta istaba.", + "notificationRuleMessageDescription": "Paziņo lietotājam par vispārējām ziņām.", + "notificationRuleServerAclDescription": "Apspiež notikumus par servera ACL notikumiem.", + "notificationRuleReactionDescription": "Apspiež paziņojums par reakcijām.", + "unknownPushRule": "Nezināma pašpiegādes kārtula '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "newChatRequest": "📩 Jauns tērzēšanas pieprasījums", + "notificationRuleContainsUserNameDescription": "Paziņo lietotājam, kad ziņa satur viņa lietotājvārdu.", + "notificationRuleRoomnotifDescription": "Paziņo lietotājam, kad ziņa satur \"@istaba\".", + "notificationRuleEncryptedRoomOneToOneDescription": "Paziņo lietotājam par ziņām šifrētās viens pret viens istabās.", + "notificationRuleRoomServerAclDescription": "Apspiež paziņojumus par istabas servera piekļuves kontroles sarakstiem (ACL).", + "contentNotificationSettings": "Satura paziņojumu iestatījumi", + "notificationRuleContainsDisplayName": "Satur attēlojamo vārdu", + "notificationRuleRoomOneToOne": "Viens pret viens istaba", + "notificationRuleJitsiDescription": "Paziņo lietotājam par Jitsi logrīka notikumiem.", + "notificationRuleSuppressEditsDescription": "Apspiež paziņojumus par labotām ziņām.", + "notificationRuleTombstone": "Kapakmens", + "notificationRuleTombstoneDescription": "Paziņo lietotājam par istabu aizvēršanas ziņām.", + "notificationRuleSuppressEdits": "Apspiest labojumus", + "notificationRuleEncryptedRoomOneToOne": "Šifrēta viens pret viens istaba", + "notificationRuleRoomOneToOneDescription": "Paziņo lietotājam par ziņām viens pret viens istabās.", + "notificationRuleMessage": "Ziņa", + "notificationRuleEncryptedDescription": "Paziņo lietotājam par ziņām šifrētās istabās.", + "userSpecificNotificationSettings": "Lietotāja paziņojumu iestatījumi", + "notificationRuleMaster": "Apklusināt visus paziņojumus", + "notificationRuleSuppressNotices": "Apspiest automātiskās ziņas", + "crossVerifiedDevices": "Savstarpēji apliecinātas ierīces", + "shareKeysWith": "Kopīgot atslēgas ar...", + "shareKeysWithDescription": "Kurām ierīcēm vajadzētu uzticēties, lai tajās varētu lasīt ziņas šifrētajās tērzēšanās?", + "allDevices": "Visas ierīces", + "crossVerifiedDevicesIfEnabled": "Savstarpēji apliecinātas ierīces, ja iespējots", + "verifiedDevicesOnly": "Tikai apliecinātas ierīces", + "optionalMessage": "(Pēc izvēles) Ziņojums...", + "takeAPhoto": "Uzņemt attēlu", + "recordAVideo": "Ierakstīt video", + "notSupportedOnThisDevice": "Šajā ierīcē nav atbalstīts", + "enterNewChat": "Ieiet jaunajā tērzēšanā", + "commandHint_roomupgrade": "Uzlabot šo istabu uz norādīto istabas versiju", + "youHaveKnocked": "Tu pieklauvēji", + "pleaseWaitUntilInvited": "Lūgums tagad uzgaidīt, līdz kāds no istabas uzaicinās Tevi.", + "approve": "Apstiprināt", + "checkList": "Pārbaužu saraksts", + "countInvited": "{count} uzaicināti", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "sentVoiceMessage": "🎙️ {duration} - Balss ziņa no {sender}", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "commandHint_logout": "Atteikties pašreizējā ierīcē", + "commandHint_logoutall": "Atteikties visās izmantotajās ierīcēs", + "displayNavigationRail": "Rādīt pārvietošanās sliedi viedierīcēs", + "customReaction": "Pielāgota reakcija", + "moreEvents": "Vairāk notikumu", + "declineInvitation": "Noraidīt uzaicinājumu", + "noMessagesYet": "Vēl nav ziņu", + "longPressToRecordVoiceMessage": "Ilga piespiešana, lai ierakstītu balss ziņu.", + "pause": "Apturēt", + "resume": "Atsākt", + "removeFromSpaceDescription": "Tērzēšana tiks noņemta no vietas, bet tā joprojām būs redzama tērzēšanu sarakstā.", + "countChats": "{chats} tērzēšanas", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "spaceMemberOf": "{spaces} dalībnieks", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "{spaces} dalībnieks var pieklauvēt", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "startPoll": "Sākt aptauju", + "endPoll": "Noslēgt aptauju", + "answersVisible": "Atbildes ir redzamas", + "pollQuestion": "Aptaujas jautājums", + "answerOption": "Atbildes iespēja", + "addAnswerOption": "Pievienot atbildes iespēju", + "allowMultipleAnswers": "Atļaut vairākas atbildes", + "pollHasBeenEnded": "Aptauja ir noslēgusies", + "countVotes": "{count, plural, =0{{count} balsu} =1{{count} balss} other{{count} balsis}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "answersWillBeVisibleWhenPollHasEnded": "Atbildes būs redzams, kad aptauja noslēgsies", + "replyInThread": "Atbildēt pavedienā", + "countReplies": "{count, plural, =0{{count} atbilžu} =1{{count} atbilde} other{{count} atbildes}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "thread": "Pavediens", + "backToMainChat": "Atgriezties galvenajā tērzēšanā", + "saveChanges": "Saglabāt izmaiņas", + "createSticker": "Izveidot uzlīmi vai emocijzīmi", + "useAsSticker": "Izmantot kā uzlīmi", + "useAsEmoji": "Izmantot kā emocijzīmi", + "stickerPackNameAlreadyExists": "Uzlīmju pakas nosaukums jau pastāv", + "newStickerPack": "Jauna uzlīmju paka", + "stickerPackName": "Uzlīmju pakas nosaukums", + "attribution": "Piedēvējums", + "skipChatBackup": "Izlaist tērzēšanu rezerves kopēšanu", + "skipChatBackupWarning": "Vai tiešām? Bez tērzēšanu rezerves kopēšanas var tikt zaudēta piekļuve savām ziņām, kad tiks mainīta ierīce.", + "changedTheChatDescription": "{username} nomainīja tērzēšanas aprakstu", + "changedTheChatName": "{username} nomainīja tērzēšanas nosaukumu", + "noMoreResultsFound": "Vairs nekas netika atrasts", + "chatSearchedUntil": "Tērzēšanā meklēts līdz {time}", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "federationBaseUrl": "Federācijas pamata URL", + "clientWellKnownInformation": "Client-Well-Known informācija:", + "baseUrl": "Pamata URL", + "identityServer": "Identitāšu serveris:", + "versionWithNumber": "Versija: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "Žurnāli", + "advancedConfigs": "Izvērsta konfigurācijas", + "advancedConfigurations": "Izvērstas konfigurācijas", + "theProcessWasCanceled": "Darbība tika atcelta.", + "signIn": "Pieteikties", + "createNewAccount": "Izveidot jaunu kontu", + "signUpGreeting": "FluffyChat ir decentralizēta. Jāatlasa serveris, kurā ir vēlēšanās izveidot savu kontu, un aiziet!", + "signInGreeting": "Jau ir Matrix konts? Laipni lūdzam atpakaļ! Jāatlasa savs mājasserveris un jāpiesakās.", + "reset": "Atiestatīt", + "createNewTag": "Izveidot jaunu birku", + "join": "Pievienoties", + "createNewChat": "Izveidot jaunu tērzēšanu", + "makeModerator": "Padarīt par satura pārraudzītāju", + "tagName": "Birkas nosaukums", + "setPowerLevelDescription": "Tiesību līmeņi nosaka, ko dalībniekam ir ļauts darīt šajā istabā, un parasti ir starp 0 un 100.", + "matrixId": "Matrix Id", + "support": "Atbalstīt", + "setPowerLevel": "Iestatīt tiesību līmeni", + "mute": "Apklusināt", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "removeModeratorRights": "Noņemt satura pārraudzītāja tiesības", + "addTag": "Pievienot birku", + "removeAdminRights": "Noņemt pārvaldītāja tiesības", + "owner": "Īpašnieks", + "powerLevel": "Tiesību līmenis", + "playSoundOnNotification": "Atskaņot paziņojuma skaņu", + "makeAdmin": "Padarīt par pārvaldītāju", + "searchOrEnterHomeserverAddress": "Meklēt vai ievadīt mājasservera adresi", + "unsetLowPriority": "Noņemt zemu svatīgumu", + "setLowPriority": "Iestatīt zemu svarīgumu", + "removeTag": "Noņemt birku", + "supportFluffyChat": "Atbalstīt FluffyChat", + "discardEdits": "Ir nesaglabātas izmaiņas. Atmest labojumus?", + "@discardEdits": { + "type": "String", + "placeholders": {} + }, + "possibleByYou": "Šis laidiens bija iespējams pateicoties Tavam atbalstam. FluffyChat joprojām ir brīva, atvērta pirmkoda un pilnībā kopienas virzīta.", + "hideRoomsInSpaces": "Paslēpt istabas, kas ir vietā", + "showThumbnailsInTimeline": "Rādīt attēlu un video sīktēlus", + "appSubtitle": "Droša [matrix] saziņa", + "appDescription": "Šifrēta saziņa decentralizētā [matrix] tīklā visiem vienkāršā un pieejamā veidā.", + "interactiveVerification": "Mijiedarbīga apliecināšana", + "interactiveVerificationDescription": "Ja esat viens otram blakus vai sazināties drošā veidā, tad varat apliecināt visas ierīces uzreiz ar drošības skaitļa vai emocijzīmju salīdzināšanu.", + "countUnverifiedDevices": "Tērzēšanā ir {count, plural, zero{{count} neapliecinātu ierīču} one{{count} neapliecināta ierīce} other{{count} neapliecinātas ierīces}}.", + "@countUnverifiedDevices": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "encryptedMessage": "Šifrēta ziņa", + "unencryptedMessage": "Nešifrēta ziņa", + "publicKey": "Publiskā atslēga: {key}", + "@publicKey": { + "type": "String", + "placeholders": { + "key": { + "type": "String" + } + } + }, + "deviceIdentityKey": "Ierīces identificēšanas atslēga", + "showMore": "Parādīt vairāk", + "showLess": "Rādīt mazāk", + "messageCanOnlyBeReadByUser": "Ziņojums ir pilnībā šifrēts, un to var izlasīt tikai šis lietotājs:", + "messageCanOnlyBeReadByUsers": "Ziņojums ir pilnībā šifrēts, un to var izlasīt tikai šie lietotāji:", + "unlock": "Atslēgt", + "@unlock": { + "type": "String", + "placeholders": {} + }, + "openFile": "Atvērt datni", + "@openFile": { + "type": "String", + "placeholders": {} + }, + "repeatPassphrase": "Atkārtot paroles vārdkopu", + "@repeatPassphrase": { + "type": "String", + "placeholders": {} + }, + "passphrasesMatch": "Paroles vārdkopas sakrīt", + "@passphrasesMatch": { + "type": "String", + "placeholders": {} + }, + "passphraseLengthRequirement": "Vismaz 12 rakstzīmes gara.", + "@passphraseLengthRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseUpperAndLowerCaseRequirement": "Satur lielos un mazos burtus.", + "@passphraseUpperAndLowerCaseRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseSpecialCharactersRequirement": "Satur īpašas rakstzīmes.", + "@passphraseSpecialCharactersRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseNumberRequirement": "Satur vismaz vienu ciparu.", + "@passphraseNumberRequirement": { + "type": "String", + "placeholders": {} + }, + "messageNotDecryptable": "Ziņojums nav atšifrējams", + "today": "Šodien", + "sending": "Sūta", + "generatingThumbnail": "Veido sīktēlu", + "encrypting": "Šifrē", + "uploading": "Augšupielādē", + "edited": "(labots)", + "couldNotBeSent": "Nevarēja nosūtīt", + "yesterday": "Vakar", + "resetRecoveryKey": "Atiestatīt atkopes atslēgu", + "resetAccount": "Atiestatīt kontu", + "@resetAccount": { + "type": "String", + "placeholders": {} + }, + "saveAsFile": "Saglabāt kā datni", + "@saveAsFile": { + "type": "String", + "placeholders": {} + }, + "unsignedDevice": "Neapstiprināta ierīce", + "@unsignedDevice": { + "type": "String", + "placeholders": {} + }, + "signedDevice": "Apstiprināta ierīce", + "@signedDevice": { + "type": "String", + "placeholders": {} + }, + "noCurve25519KeyFound": "Curve25519 atslēga nav atrasta", + "@noCurve25519KeyFound": { + "type": "String", + "placeholders": {} + }, + "pleaseEnter6Digits": "Lūdzu, ievadiet 6 ciparus, lai iespējotu lietotnes aizslēgšanu.", + "disableAppLock": "Atspējot lietotnes aizslēgšanu", + "disableAppLockAreYouSure": "Vai tiešām vēlaties atspējot lietotnes aizslēgšanu?", + "enableBiometrics": "Iespējot biometrisko autentifikāciju", + "disableBiometrics": "Atspējot biometrisko autentifikāciju", + "biometricsDescription": "Ar biometrisko autentifikāciju jūs variet atslēgt lietotni ar savu seju vai pirksta nospiedumu. Iespējas ir atkarīgas no jūsu konkrētās ierīces.", + "useAppLock": "Izmantot lietotnes aizslēgšanu", + "unlockWithBiometrics": "Atslēgt ar biometrisko autentificēšanos", + "resetPin": "Atiestatīt PIN", + "unifiedPushDistributors": "Vienotās pašpiegādes nodrošinātāji:", + "editImage": "Labot attēlu", + "@editImage": { + "type": "String", + "placeholders": {} + }, + "rotateLeft": "Pagriezt pa kreisi", + "@rotateLeft": { + "type": "String", + "placeholders": {} + }, + "rotateRight": "Pagriezt pa labi", + "@rotateRight": { + "type": "String", + "placeholders": {} + }, + "mirror": "Spoguļot", + "@mirror": { + "type": "String", + "placeholders": {} + }, + "save": "Saglabāt", + "@save": { + "type": "String", + "placeholders": {} + }, + "draw": "Zīmēt", + "@draw": { + "type": "String", + "placeholders": {} + }, + "undo": "Atdarīt", + "@undo": { + "type": "String", + "placeholders": {} + }, + "clear": "Notīrīt", + "@clear": { + "type": "String", + "placeholders": {} + }, + "eraser": "Dzēšgumija", + "@eraser": { + "type": "String", + "placeholders": {} + }, + "crop": "Apcirpt", + "@crop": { + "type": "String", + "placeholders": {} + }, + "restoreBootstrapEmptyDevicesDescription": "Lūgums ievadīt savu paroles vārdkopu vai atkopes atslēgu, lai apliecinātu šo ierīci un iegūtu piekļuvi savai šifrēto ziņu rezerves kopijai.", + "@restoreBootstrapEmptyDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "restoreBootstrapDevicesDescription": "Lūgums izvēlēties vienu no savām citām ierīcēm, lai apliecinātu šo sesiju:", + "@restoreBootstrapDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "restoreCryptoIdentity": "Atjaunot Crypto identitāti", + "@restoreCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "resetCryptoIdentity": "Atiestatīt Crypto identitāti", + "@resetCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "setUpCryptoIdentity": "Iestatīt Crypto identitāti", + "@setUpCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "waitingForKeys": "Gaida atslēgas… Lūgums nodrošināt otras ierīces darbību.", + "@waitingForKeys": { + "type": "String", + "placeholders": {} + }, + "noKeysTransmitted": "Nav pārsūtīta neviena atslēga. Lūgums mēģināt vēlreiz.", + "@noKeysTransmitted": { + "type": "String", + "placeholders": {} + }, + "newPassphraseDescription": "FluffyChat izmanto pilnīgu šifrēšanu. Lai nezaudētu savas ziņas, lūgums izvēlēties drošu paroles vārdkopu, lai aizsargātu savu kripto identitāti un šifrēto ziņu rezerves kopiju.", + "@newPassphraseDescription": { + "type": "String", + "placeholders": {} + }, + "newPassphrase": "Jauna paroles vārdkopa", + "@newPassphrase": { + "type": "String", + "placeholders": {} + }, + "storeRecoveryKeyDescription": "Lūgums pierakstīt savu atkopes atslēgu, lai turpmāk varētu atjaunot savas šifrētās ziņas un kripto identitāti.", + "@storeRecoveryKeyDescription": { + "type": "String", + "placeholders": {} + }, + "youAreReadyToStart": "Vari sākt!", + "noUserKeyFound": "Nav atrasta neviena lietotāja atslēga", + "@noUserKeyFound": { + "type": "String", + "placeholders": {} + }, + "knownSince": "Zināms kopš: {date}", + "@knownSince": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + } + } + }, + "forwardCountMessages": "Pārvirzīt {count, plural, zero{{count} ziņas} one{{count} ziņu} other {{count} ziņas}}?", + "@forwardCountMessages": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingMessages": "Ielādē ziņas…", + "buildDoesNotSupportFirebase": "Šis būvējums neatbalsta Firebase mākoņziņapmaiņu.", + "unableToRegisterDeviceForFirebase": "Nav iespējams reģistrēt ierīci Firebase ziņapmaiņai.", + "decline": "Noraidīt", + "videoCallsBetaWarning": "Video zvani pašreiz ir beta iespēja. Tajos var būt nepilnības vai neparedzēta uzvedība. Mēs būsim priecīgi par atsauksmēm.", + "noDevicesFound": "Nav atrasta neviena ierīce", + "incomingCall": "Ienākošs zvans", + "waitingForParticipant": "Gaida dalībnieku…", + "compressingVideo": "Saspiež video…", + "doubleTapToReact": "Divkāršs piesitiens, lai atsauktos", + "doubleTapToReactDescription": "Divkāršs piesitiens ziņai, lai atsauktos, nevis iezīmētu tekstu", + "doubleTapReaction": "Atsaukšanās ar divkāršu piesišanu", + "shareCrashReports": "Kopīgot avāriju ziņojumus", + "shareCrashReportsDescription": "Automātiski kopīgot avāriju ziņojumus ar izstrādātājiem?", + "shareCrashReportsPrompt": "Automātiski kopīgot avāriju ziņojumus ar izstrādātājiem? Vairāk par to, kādi dati tiek kopīgoti, var uzzināt {url}.", + "@shareCrashReportsPrompt": { + "placeholders": { + "url": { + "type": "String" + } + } + }, + "allow": "Atļaut", + "deny": "Noraidīt", + "activeCall": "Notiekošs zvans", + "countActiveCallMembers": "{count, plural, zero{{count} zvanā esoši dalībnieki} one{{count} zvanā esošs dalībnieks} other{{count} zvanā esoši dalībnieki}}", + "@countActiveCallMembers": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "enterCall": "Pievienoties zvanam", + "accountsAndSettings": "Konti un iestatījumi", + "@accountsAndSettings": { + "type": "String", + "placeholders": {} + }, + "videoCall": "Video zvans", + "voiceCall": "Balss zvans", + "missedCall": "Neatbildēts zvans", + "callBack": "Atzvanīt", + "hangUp": "Beigt zvanu", + "startCall": "Zvanīt", + "selectCamera": "Atlasīt kameru", + "selectMicrophone": "Atlasīt mikrofonu", + "selectSpeaker": "Atlasīt skaļruni", + "toggleMicrophone": "Pārslēg mikrofonu", + "toggleCamera": "Pārslēgt kameru", + "startScreensharing": "Sākt ekrāna kopīgošanu", + "stopScreensharing": "Apturēt ekrāna kopīgošanu", + "raiseHand": "Pacelt roku", + "stopRaiseHand": "Nolaist roku", + "unexpectedErrorOccurded": "Diemžēl atgadījās neparedzēta kļūda: {msg}", + "@unexpectedErrorOccurded": { + "placeholders": { + "msg": { + "type": "String" + } + } + }, + "incomingCallFrom": "Ienākošs zvans no {user}", + "@incomingCallFrom": { + "placeholders": { + "user": { + "type": "String" + } + } + } +} diff --git a/lib/l10n/intl_nb.arb b/lib/l10n/intl_nb.arb new file mode 100644 index 0000000..849f87c --- /dev/null +++ b/lib/l10n/intl_nb.arb @@ -0,0 +1,2815 @@ +{ + "@@last_modified": "2021-08-14 12:41:09.967351", + "about": "Om", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Godta", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} godtok invitasjonen", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Konto", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "{username} skrudde på ende-til-ende-kryptering", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "admin": "Administrator", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "alias", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Alle", + "@all": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} besvarte anropet", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Hvem som helst kan delta", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "Programlås", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "archive": "Arkiv", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Kan gjester bli med?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Er du sikker?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Er du sikker på at du vil logge ut?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "For å kunne signere den andre personen, skriv inn ditt sikre lagerpassord eller gjenopprettingsnøkkel.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Godta denne bekreftelsesforespørselen fra {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "banFromChat": "Bannlys fra sludring", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Bannlyst", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} bannlyste {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Blokker enhet", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "cancel": "Avbryt", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "changeDeviceName": "Endre enhetsnavn", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} endret sludreavatar", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} endret sludretilgangene", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} endret visningsnavn til: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} endret gjestetilgangsreglene", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} endret gjestetilgangsregler til: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} endret historikksynlighet", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} endret historikksynlighet til: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} endret tilgangsreglene", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} endret tilgangsreglene til: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} endret avataren sin", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} endret rom-aliasene", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} endret invitasjonslenken", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Endre passord", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Endre hjemmetjener", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Endre din stil", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Endre gruppens navn", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "Krypteringen er skadet", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Sludring", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Sludringssikkerhetskopi", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Sludringsdetaljer", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Velg et sterkt passord", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "close": "Lukk", + "@close": { + "type": "String", + "placeholders": {} + }, + "compareEmojiMatch": "Sammenlign og forsikre at følgende emojiene samsvarer med de på den andre enheten", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Sammenlign og forsikre at følgende tall samsvarer med de på den andre enheten", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Sett opp sludring", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Kontakt invitert til gruppen", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "Innholdet har blitt rapportert til tjeneradministratorene", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Kopiert til utklippstavle", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Kopier", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Kopier til utklippstavle", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Kunne ikke dekryptere melding: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count, plural, =1{1 deltaker} other{{count} deltakere}}", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Opprett", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "{username} opprettet sludringen", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "currentlyActive": "Aktiv nå", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Mørk", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{timeOfDay}, {date}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Dette vil skru av din brukerkonto for godt, og kan ikke angres! Er du sikker?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Forvalgt tilgangsnivå", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "Slett", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Slett konto", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Slett melding", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Enheter", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Direktesludringer", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Visningsnavn endret", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Last ned fil", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "Rediger", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Rediger blokkerte tjenere", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Rediger visningsnavn", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Rediger romavatar", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Smilefjeset finnes allerede!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Ugyldig smilefjes-kode!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Smilefjes-kode", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Tom sludring", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Skru på smilefjespakke for hele programmet", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Skru på kryptering", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Du vil ikke kunne skru av kryptering lenger. Er du sikker?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Kryptert", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Kryptering", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Kryptering er ikke påskrudd", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} avsluttet samtalen", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Skriv inn en e-postadresse", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "fontSize": "Skriftstørrelse", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "Videre", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Fra å ta del", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Fra invitasjonen", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Gruppe", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "Gruppen er offentlig", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "Grupper", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Gruppe med {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Gjester forbudt", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Gjester kan ta del", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} har trukket tilbake invitasjonen til {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Hjelp", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Skjul ukjente hendelser", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignore": "Ignorer", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Ignorerte brukere", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Jeg har klikket på lenken", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Feilaktig passord eller gjenopprettingsnøkkel", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Inviter kontakt", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Inviter kontakt til {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "Invitert", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "{username} inviterte {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Kun inviterte brukere", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} har invitert deg til FluffyChat. \n1. Installer FluffyChat: https://fluffychat.im \n2. Registrer deg eller logg inn \n3. Åpne invitasjonslenken: \n {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "skriver", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "{username}ble med i samtalen", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Ta del i rom", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "{username} kastet ut {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "{username} kastet ut og bannlyste {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Kast ut av sludringen", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Sist aktiv: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Forlat", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Forlat sludringen", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Lys", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Last inn {count} deltagere til", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "Laster inn… Vent.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Last inn mer…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "login": "Logg inn", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Logg inn på {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Logg ut", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Nevn", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "Meldinger", + "@messages": { + "type": "String", + "placeholders": {} + }, + "moderator": "Moderator", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Forstum sludring", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Ny sludring", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "Ny melding i FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Ny bekreftelsesforespørsel!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "Neste", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "Nei", + "@no": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Fant ingen smilefjes. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Firebase Cloud Messaging ser ikke ut til å være tilgjengelig på enheten din. For å fortsatt kunne motta push-varsler, anbefaler vi at du installerer ntfy. Med ntfy eller en annen UnifiedPush-leverandør kan du motta push-varsler på en datasikker måte. Du kan laste ned ntfy fra Play Store eller F-Droid.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "Du har ikke lagt til en måte å gjenopprette passordet ditt på.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Ingen tilgang", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Fant ingen rom …", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Merknader", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} brukere skriver …", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "ok": "Ok", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Nettbasert sikkerhetskopiering av nøkler på", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Oida, noe gikk galt …", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Åpne programmet for å lese meldinger", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Åpne kamera", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "participant": "Deltager", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "Passord eller gjenopprettingsnøkkel", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Passord", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Passord glemt", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Passord endret", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Passordgjenoppretting", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Fest", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Klikk på lenken i e-posten og fortsett.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Skriv inn passordet ditt", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Skriv inn brukernavnet ditt", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Følg instruksen på nettsiden og trykk på «Neste».", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "Personvern", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Offentlige rom", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "Grunn", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} har trukket tilbake en hendelse", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "reject": "Avslå", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} avslo invitasjonen", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Fjern", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Fjern alle andre enheter", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Opphev bannlysning", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Erstatt rom med nyere versjon", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "Svar", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Rapporter melding", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Rommet har blitt oppgradert", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "search": "Søk", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "Sikkerhet", + "@security": { + "type": "String", + "placeholders": {} + }, + "send": "Send", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Send en melding", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAudio": "Send lyd", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Send fil", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Send bilde", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Send meldinger", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Send video", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "{username} sendte en fil", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "{username} sendte lyd", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "{username} sendte et bilde", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "{username} sendte et klistremerke", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "{username} sendte en video", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} sendte anropsinfo", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setStatus": "Angi status", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Innstilinger", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Del", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} delte posisjonen", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "skip": "Hopp over", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Kildekode", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} startet en samtale", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "status": "Status", + "@status": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Hvordan har du det i dag?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Send inn", + "@submit": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "System", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Samsvarer ikke", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Samsvarer", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "For mange forespørsler. Prøv igjen senere!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Prøv å sende igjen", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} opphevet bannlysning av {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Opphev blokkering av enhet", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Ukjent enhet", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Ukjent krypteringsalgoritme", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Ukjent hendelse '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Opphev forstumming av sludring", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Løsne", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} og {count} andre skriver…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} og {username2} skriver…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} skriver…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "{username} har forlatt sludringen", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} sendte en {type}-hendelse", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verifyStart": "Start bekreftelse", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Du har bekreftet!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Bekrefter annen konto", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Sludrehistorikkens synlighet", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Synlig for alle deltagere", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Synlig for alle", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Lydmelding", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Venter på at samtalepartner skal godta tallene …", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Advarsel!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Du har fått en e-post", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Hvem kan utføre hvilken handling", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Hvem tillates å ta del i denne gruppen", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Hvorfor ønsker du å rapportere dette?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Med disse adressene kan du gjenopprette passordet ditt hvis du trenger det.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Skriv en melding …", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Ja", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Deg", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Du deltar ikke lenger i denne sludringen", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Du har blitt bannlyst fra denne sludringen", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Din offentlige nøkkel", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Ingen tilkobling til tjeneren", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "addEmail": "Legg til e-post", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "repeatPassword": "Gjenta passord", + "addToSpace": "Legg til romgruppe", + "autoplayImages": "Automatisk spill av animerte stickers og emojis", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "badServerLoginTypesException": "Denne hjemme serveren støtter følgende innloggings-typer:\n{serverVersions}\nMen denne applikasjonen støtter kun:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "sendOnEnter": "Trykk på enter for å sende", + "blocked": "Blokkert", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "Kan ikke åpne URI {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changeYourAvatar": "Bytt profilbilde", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "notAnImage": "Ikke en bildefil.", + "importNow": "Importer nå", + "hugContent": "{senderName} klemmer deg", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "space": "Romgruppe", + "cuddleContent": "{senderName} koser med deg", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "appLockDescription": "Lås appen med en PIN-kode når den ikke er i bruk", + "replace": "Erstatt", + "noMoreChatsFound": "Ingen flere chatter funnet ...", + "confirmMatrixId": "Bekreft Matrix-IDen din for å slette kontoen din.", + "unread": "Ulest", + "aboutHomeserver": "Om {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "commandHint_hug": "Send en klem", + "markAsRead": "Marker som lest", + "openLinkInBrowser": "Åpne lenke i nettleser", + "passwordsDoNotMatch": "Passordene stemmer ikke overens", + "encryptThisChat": "Krypter denne chatten", + "doNotShowAgain": "Ikke vis igjen", + "notificationRuleContainsUserName": "Inneholder brukernavn", + "notificationRuleMaster": "Demp alle varslinger", + "verified": "Verifisert", + "@verified": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Lagre fil", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "shareLocation": "Del lokasjon", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Synkroniserer … Vent litt.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "reopenChat": "Gjenåpne chat", + "changeTheDescriptionOfTheGroup": "Endre beskrivelsen til chatten", + "inviteOtherUsers": "Inviter andre brukere til denne chatten", + "open": "Åpne", + "waitingForServer": "Venter på server...", + "notificationRuleJitsi": "Jitsi", + "takeAPhoto": "Ta et bilde", + "setChatDescription": "Sett chat beskrivelse", + "openGallery": "Åpne galleri", + "pushNotificationsNotAvailable": "Push-varsler er ikke tilgjengelige", + "gallery": "Galleri", + "moderatorLevel": "{level} - Moderator", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "adminLevel": "{level} - Admin", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "updateInstalled": "🎉 Oppdatering {version} installert!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "calculatingFileSize": "Beregner filstørrelse...", + "continueText": "Fortsett", + "serverInformation": "Serverinformasjon:", + "previous": "Forrige", + "name": "Navn", + "version": "Versjon", + "invalidUrl": "Ugyldig url", + "notificationRuleReaction": "Reaksjon", + "notificationRuleMessage": "Melding", + "notificationRuleEncrypted": "Kkryptert", + "more": "Mer", + "passwordIsWrong": "Det inntastede passordet ditt er feil", + "manageAccount": "Administrer konto", + "nothingFound": "Ingenting funnet...", + "incomingMessages": "Innkommende meldinger", + "changelog": "Endringslogg", + "contactServerAdmin": "Kontakt serveradministrator", + "setWallpaper": "Sett bakgrunnsbilde", + "unsupportedAndroidVersion": "Usupportert Android-versjon", + "youJoinedTheChat": "Du har blitt med i chatten", + "youRejectedTheInvitation": "Du har avvist invitasjonen", + "formattedMessages": "Formaterte meldinger", + "allDevices": "Alle enheter", + "learnMore": "Lær mer", + "sorryThatsNotPossible": "Beklager... det er ikke mulig", + "markAsUnread": "Marker som ulest", + "addLink": "Legg til lenke", + "synchronizingPleaseWaitCounter": " Synkroniserer… ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "unverified": "Ikke verifisert", + "thisDevice": "Denne enheten:", + "removeYourAvatar": "Fjern din avatar", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "importFromZipFile": "Importer fra .zip-fil", + "select": "Velg", + "databaseMigrationTitle": "Databasen er optimalisert", + "newPassword": "Nytt passord", + "files": "Filer", + "searchIn": "Søk i chatten «{chat}»...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "approve": "Godkjenn", + "goToSpace": "Gå til romgruppe: {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "userLevel": "{level} - Bruker", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "oneOfYourDevicesIsNotVerified": "En av dine enheter er ikke verifisert", + "website": "Nettside", + "boldText": "Fet skrift", + "pleaseFillOut": "Vennligst fyll ut", + "importEmojis": "Importer emojier", + "supposedMxid": "Denne bør være {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "commandHint_roomupgrade": "Oppgrader dette rommet til den gitte romversjonen", + "passwordRecoverySettings": "Innstillinger for gjenoppretting av passord", + "pleaseChooseAPasscode": "Vennligst velg en passordkode", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Oppgi din PIN-kode", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "globalChatId": "Global chat-ID", + "chatPermissions": "Chat tillatelser", + "commandHint_invite": "Inviter den gitte brukeren til dette rommet", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "Bli med i det gitte rommet", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "chats": "Chatter", + "@chats": { + "type": "String", + "placeholders": {} + }, + "discover": "Oppdag", + "thereAreCountUsersBlocked": "Akkurat nå er det {count} blokkerte brukere.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "sendCanceled": "Sending avbrutt", + "loginWithMatrixId": "Logg på med Matrix ID", + "shareInviteLink": "Del invitasjonslenke", + "scanQrCode": "Skann QR-kode", + "messagesStyle": "Meldinger:", + "hydrate": "Gjenopprett fra sikkerhetskopifil", + "oneClientLoggedOut": "En av klientene dine har blitt logget ut", + "addAccount": "Legg til konto", + "openInMaps": "Åpne i kart", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "link": "Lenke", + "or": "Eller", + "@or": { + "type": "String", + "placeholders": {} + }, + "custom": "Egendefinert", + "user": "Bruker", + "users": "Brukere", + "countInvited": "{count} inviterte", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "createGroup": "Opprett gruppe", + "editRoomAliases": "Rediger rom aliaser", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "accessAndVisibility": "Tilgang og synlighet", + "hideInvalidOrUnknownMessageFormats": "Skjul ugyldige eller ukjente meldingsformater", + "block": "Blokkér", + "blockedUsers": "Blokkerte brukere", + "tryAgain": "Prøv igjen", + "invalidServerName": "Ugyldig servernavn", + "messageInfo": "Meldingsinformasjon", + "time": "Tid", + "sender": "Avsender", + "reportUser": "Rapporter bruker", + "youHaveWithdrawnTheInvitationFor": "Du har trukket tilbake invitasjonen for {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youAcceptedTheInvitation": "👍 Du har akseptert invitasjonen", + "youBannedUser": "Du stengte ute {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "chatDescriptionHasBeenChanged": "Chatbeskrivelsen er endret", + "whyIsThisMessageEncrypted": "Hvorfor er denne meldingen uleselig?", + "yourGlobalUserIdIs": "Din globale bruker-ID er: ", + "searchChatsRooms": "Søk etter #chatter, @brukere...", + "groupName": "Gruppenavn", + "createGroupAndInviteUsers": "Opprett en gruppe og inviter brukere", + "invite": "Inviter", + "wrongPinEntered": "Feil PIN-kode oppgitt! Prøv igjen om {seconds} sekunder...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "sendAsText": "Send som tekst", + "@sendAsText": { + "type": "String" + }, + "sendImages": "Send {count} bilde", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "accessAndVisibilityDescription": "Hvem som har lov til å bli med i denne chatten og hvordan chatten kan oppdages.", + "calls": "Anrop", + "customEmojisAndStickers": "Egendefinerte emojier og klistremerker", + "oopsPushError": "Oops! Dessverre oppsto det en feil under oppsettet av push-varsler.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "obtainingLocation": "Henter sted …", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "noDatabaseEncryption": "Databasekryptering støttes ikke på denne plattformen", + "changeGeneralChatSettings": "Endre generelle chatinnstillinger", + "changeTheChatPermissions": "Endre chattillatelsene", + "youInvitedBy": "📩 Du har blitt invitert av {user}", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 Du inviterte {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKicked": "👞 You sparket ut {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKickedAndBanned": "🙅 Du sparket og stengte ute {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "countFiles": "{count} filer", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "noOtherDevicesFound": "Ingen andre enheter funnet", + "fileIsTooBigForServer": "Kan ikke sende! Serveren støtter bare vedlegg opptil {max}.", + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "fileHasBeenSavedAt": "Filen er lagret på {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "jumpToLastReadMessage": "Hopp til sist leste melding", + "blur": "Uskarphet:", + "opacity": "Ugjennomsiktighet:", + "noContactInformationProvided": "Serveren oppgir ingen gyldig kontaktinformasjon", + "supportPage": "Supportside", + "compress": "Komprimer", + "italicText": "Kursiv tekst", + "strikeThrough": "Gjennomstreking", + "youUnbannedUser": "Du opphevet utestengelsen av {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "disableEncryptionWarning": "Av sikkerhetshensyn kan du ikke deaktivere kryptering i en chat der det har vært aktivert tidligere.", + "readUpToHere": "Lest frem til her", + "jump": "Hopp", + "reportErrorDescription": "😭 Å nei. Noe gikk galt. Hvis du ønsker det, kan du rapportere denne feilen til utviklerne.", + "invalidInput": "Ugyldig inndata!", + "pleaseEnterANumber": "Vennligst skriv inn et tall større enn 0", + "archiveRoomDescription": "Chatten vil bli flyttet til arkivet. Andre brukere vil kunne se at du har forlatt chatten.", + "removeDevicesDescription": "Du vil bli logget ut av denne enheten og vil ikke lenger kunne motta meldinger.", + "setColorTheme": "Angi fargetema:", + "inviteGroupChat": "📨 Invitasjon til gruppechat", + "pleaseChooseAStrongPassword": "Vennligst velg et sterkt passord", + "publicChatAddresses": "Offentlige chatadresser", + "createNewAddress": "Opprett ny adresse", + "initAppError": "Det oppsto en feil under oppstart av appen", + "sendReadReceipts": "Send lesebekreftelser", + "searchMore": "Søk mer...", + "shareKeysWithDescription": "Hvilke enheter bør man stole på, slik at de kan lese meldingene dine i krypterte chatter?", + "crossVerifiedDevicesIfEnabled": "Kryssbekreftede enheter hvis dette er aktivert", + "crossVerifiedDevices": "Kryssverifiserte enheter", + "verifiedDevicesOnly": "Bare verifiserte enheter", + "recordAVideo": "Ta opp en video", + "optionalMessage": "(Valgfritt) melding...", + "notSupportedOnThisDevice": "Ikke støttet på denne enheten", + "enterNewChat": "Bli med i ny chat", + "pleaseWaitUntilInvited": "Vennligst vent nå, til noen fra rommet inviterer deg.", + "notificationRuleSuppressNoticesDescription": "Demper varsler fra automatiserte klienter som roboter.", + "notificationRuleInviteForMe": "Inviter for meg", + "notificationRuleInviteForMeDescription": "Varsler bruker når en blir invitert til et rom.", + "newChatRequest": "📩 Ny chatforespørsel", + "appWantsToUseForLogin": "Bruk '{server}' for å logge inn", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "appWantsToUseForLoginDescription": "Du gir herved tillatelse til at appen og nettstedet deler informasjon om deg.", + "exportEmotePack": "Eksporter smilefjes som .zip-fil", + "noUsersFoundWithQuery": "Dessverre ble ingen bruker funnet med \"{query}\". Sjekk om du har skrevet feil.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "chatCanBeDiscoveredViaSearchOnServer": "Chatten kan oppdages via søket på {server}", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "leaveEmptyToClearStatus": "La stå tomt for å slette statusen din.", + "searchForUsers": "Søk etter @brukere...", + "pleaseEnterYourCurrentPassword": "Skriv inn ditt nåværende passord", + "databaseMigrationBody": "Vent litt. Dette kan ta et øyeblikk.", + "wrongRecoveryKey": "Beklager ... dette ser ikke ut til å være riktig gjenopprettingsnøkkel.", + "declineInvitation": "Avslå invitasjon", + "restoreSessionBody": "Appen prøver nå å gjenopprette økten din fra sikkerhetskopien. Rapporter denne feilen til utviklerne på {url}. Feilmeldingen er: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "noMessagesYet": "Ingen meldinger enda", + "notificationRuleMasterDescription": "Overstyrer alle andre regler og deaktiverer alle varsler.", + "notificationRuleSuppressNotices": "Undertrykk automatiserte meldinger", + "startedKeyVerification": "{sender} startet nøkkelverifisering", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "stickers": "Stickers", + "commandHint_ignore": "Ignorer den oppgitte matrix IDen", + "commandHint_unignore": "Opphev ignorering av den gitte matrix IDen", + "unreadChatsInApp": "{appname}: {unread} uleste chatter", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "changeTheVisibilityOfChatHistory": "Endre synligheten til chatloggen", + "changeTheCanonicalRoomAlias": "Endre hovedadressen til den offentlige chatten", + "sendRoomNotifications": "Send en @room varsling", + "formattedMessagesDescription": "Vis rikt meldingsinnhold som fet skrift ved hjelp av markdown.", + "verifyOtherUser": "🔐 Verifiser annen bruker", + "verifyOtherDevice": "🔐 Verifiser annen enhet", + "sendTypingNotificationsDescription": "Andre deltakere i en chat kan se når du skriver en ny melding.", + "sendReadReceiptsDescription": "Andre deltakere i en chat kan se når du har lest en melding.", + "commandHint_logout": "Logg av din nåværende enhet", + "commandHint_logoutall": "Logg ut alle aktive enheter", + "resume": "Gjenoppta", + "unknownPushRule": "Ukjent push-regel '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "sentVoiceMessage": "🎙️ {duration} – Talemelding fra {sender}", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "deletePushRuleCanNotBeUndone": "Hvis du sletter denne varslingsinnstillingen, kan du ikke angre dette.", + "shareKeysWith": "Del nøkler med...", + "canceledKeyVerification": "{sender} avbrøt nøkkelverifisering", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "completedKeyVerification": "{sender} fullførte nøkkelverifisering", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "{sender} er klar for nøkkelverifisering", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "requestedKeyVerification": "{sender} har bedt om nøkkelverifisering", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "notificationRuleEncryptedRoomOneToOne": "Kryptert rom én-til-én", + "notificationRuleEncryptedRoomOneToOneDescription": "Varsler brukeren om meldinger i krypterte en-til-en-rom.", + "notificationRuleRoomOneToOne": "Rom én-til-én", + "customEmojisAndStickersBody": "Legg til eller del tilpassede emojier eller klistremerker som kan brukes i hvilken som helst chat.", + "errorObtainingLocation": "Feil ved henting av posisjon: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "chatDescription": "Chat beskrivelse", + "hideRedactedMessages": "Skjul redigerte meldinger", + "hideRedactedMessagesBody": "Hvis noen redigerer en melding, vil ikke denne meldingen lenger være synlig i chatten.", + "blockListDescription": "Du kan blokkere brukere som forstyrrer deg. Du vil ikke kunne motta meldinger eller rominvitasjoner fra brukerne på din personlige blokkeringsliste.", + "blockUsername": "Ignorer brukernavn", + "noChatDescriptionYet": "Ingen chatbeskrivelse er opprettet ennå.", + "redactMessageDescription": "Meldingen vil bli redigert for alle deltakerne i denne samtalen. Dette kan ikke angres.", + "optionalRedactReason": "(Valgfritt) Årsak til redigering av denne meldingen...", + "locationDisabledNotice": "Lokasjonstjenester er deaktivert. Vennligst aktiver dem for at du skal kunne dele posisjonen din.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "Lokasjonstillatelse nektet. Gi dem tillatelse til å dele din lokasjon.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "dehydrate": "Eksporter økten og slett enheten", + "dehydrateWarning": "Denne handlingen kan ikke angres. Sørg for at du lagrer sikkerhetskopifilen på en trygg måte.", + "noEncryptionForPublicRooms": "Du kan bare aktivere kryptering på rom som ikke er offentlig tilgjengelig.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} er ingen matrix-server, bruk {server2} i stedet?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "roomNotificationSettings": "Innstillinger for romvarsler", + "userSpecificNotificationSettings": "Brukerspesifikke varslingsinnstillinger", + "otherNotificationSettings": "Andre varslingsinnstillinger", + "contentNotificationSettings": "Innstillinger for innholdsvarslinger", + "generalNotificationSettings": "Generelle varslingsinnstillinger", + "notificationRuleContainsUserNameDescription": "Varsler bruker når en melding inneholder ens brukernavn.", + "removeFromSpace": "Fjern fra romgruppe", + "reactedWith": "{sender} reagerte med {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "pinMessage": "Fest til rommet", + "emojis": "Emojier", + "unsupportedAndroidVersionLong": "Denne funksjonen krever en nyere Android-versjon. Se etter oppdateringer eller støtte for Lineage OS.", + "notificationRuleRoomnotifDescription": "Varsler brukeren når en melding inneholder ‘@room’.", + "notificationRuleTombstoneDescription": "Varsler brukeren om meldinger om deaktivering av rom.", + "notificationRuleReactionDescription": "Demper varsler for reaksjoner.", + "notificationRuleSuppressEdits": "Demp redigeringer", + "clearArchive": "Tøm arkivet", + "commandHint_markasgroup": "Merk som gruppe", + "commandHint_ban": "Utesteng den gitte brukeren fra dette rommet", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_clearcache": "Tøm cache", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "doesNotSeemToBeAValidHomeserver": "Ser ikke ut til å være en kompatibel hjemmeserver. Feil URL?", + "notificationRuleIsUserMentionDescription": "Varsler brukeren når de er direkte nevnt i en melding.", + "notificationRuleContainsDisplayName": "Inneholder visningsnavn", + "notificationRuleContainsDisplayNameDescription": "Varsler brukeren når en melding inneholder ens visningsnavnet.", + "notificationRuleIsUserMention": "Brukeromtale", + "notificationRuleIsRoomMention": "Romomtale", + "commandHint_me": "Beskriv deg selv", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_myroomavatar": "Angi bilde for dette rommet (med mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "Angi visningsnavnet ditt for dette rommet", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_plain": "Send uformatert tekst", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "Send svar som en reaksjon", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_send": "Send tekst", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_unban": "Opphev utestengelsen til den gitte brukeren fra dette rommet", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandInvalid": "Ugyldig kommando", + "@commandInvalid": { + "type": "String" + }, + "commandMissing": "{command} er ikke en kommando.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "checkList": "Sjekkliste", + "createNewSpace": "Ny romgruppe", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "emoteKeyboardNoRecents": "Nylig brukte emotes vil vises her ...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "unableToJoinChat": "Kan ikke bli med i chatten. Kanskje den andre parten allerede har lukket samtalen.", + "otherPartyNotLoggedIn": "Den andre parten er ikke logget inn og kan derfor ikke motta meldinger!", + "notificationRuleIsRoomMentionDescription": "Varsler brukeren når det er en romomtale.", + "notificationRuleRoomnotif": "Romvarsel", + "notificationRuleCall": "Anrop", + "notificationRuleCallDescription": "Varsler brukeren om anrop.", + "waitingPartnerAcceptRequest": "Venter på at partneren skal godta forespørselen…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Venter på at partneren skal godta emojien…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "noOneCanJoin": "Ingen kan bli med", + "commandHint_html": "Send HTML-formatert tekst", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_kick": "Fjern den gitte brukeren fra dette rommet", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "Forlat dette rommet", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_discardsession": "Forkast økten", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_dm": "Start en direkte chat\nBruk --no-encryption for å deaktivere kryptering", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_create": "Opprett en tom gruppechat\nBruk --no-encryption for å deaktivere kryptering", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "redactedBy": "Redigert av {username}", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactedByBecause": "Redigert av {username} fordi: «{reason}»", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "redactMessage": "Rediger melding", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Rom versjon", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "newSpace": "Ny romgruppe", + "wasDirectChatDisplayName": "Tom chat (var {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "removeFromSpaceDescription": "Chatten blir fjernet fra romgruppen, men vises fortsatt i chatlisten din.", + "countChats": "{chats} chats", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "banUserDescription": "Brukeren vil bli utestengt fra chatten og vil ikke kunne delta i chatten igjen før utestengelsen er opphevet.", + "unbanUserDescription": "Brukeren vil kunne gå inn i chatten igjen hvis vedkommende prøver.", + "kickUserDescription": "Brukeren blir kastet ut av chatten, men ikke utestengt. I offentlige chatter kan brukeren bli med på nytt når som helst.", + "sendTypingNotifications": "Send varsler ved skriving", + "swipeRightToLeftToReply": "Sveip fra høyre mot venstre for å svare", + "storeInAndroidKeystore": "Lagre i Android KeyStore", + "storeInAppleKeyChain": "Lagre i Apple nøkkelring", + "storeSecurlyOnThisDevice": "Lagre sikkert på denne enheten", + "acceptedKeyVerification": "{sender} godtok nøkkelverifisering", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "notificationRuleMessageDescription": "Varsler brukeren om generelle meldinger.", + "notificationRuleSuppressEditsDescription": "Demper varsler for redigerte meldinger.", + "notificationRuleEncryptedDescription": "Varsler brukeren om meldinger i krypterte rom.", + "notificationRuleRoomServerAcl": "Romserverens tilgangskontrolliste", + "notificationRuleRoomOneToOneDescription": "Varsler brukeren om meldinger i én-til-én-rom.", + "notificationRuleJitsiDescription": "Varsler brukeren om hendelser i Jitsi-widgeten.", + "customReaction": "Egendefinert reaksjon", + "pause": "Pause", + "longPressToRecordVoiceMessage": "Langt trykk for å spille inn talemelding.", + "startPoll": "Start avstemning", + "endPoll": "Avslutt avstemning", + "answersVisible": "Svar synlige", + "addAnswerOption": "Legg til svaralternativ", + "answerOption": "Svaralternativ", + "allowMultipleAnswers": "Tillat flere svar", + "pollHasBeenEnded": "Avstemningen er avsluttet", + "roomUpgradeDescription": "Chatten vil deretter bli gjenskapt med den nye romversjonen. Alle deltakere vil bli varslet om at de må bytte til den nye chatten. Du kan finne ut mer om romversjoner på https://spec.matrix.org/latest/rooms/", + "groupCanBeFoundViaSearch": "Gruppen kan finnes via søk", + "commandHint_sendraw": "Send raw json", + "replyInThread": "Svar i tråden", + "sessionLostBody": "Sesjonen din er tapt. Vennligst rapporter denne feilen til utviklerne på {url}. Feilmeldingen er: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "noticeChatBackupDeviceVerification": "Merk: Når du kobler alle enhetene dine til chat-sikkerhetskopien, blir de automatisk bekreftet.", + "notificationRuleTombstone": "Gravstein", + "answersWillBeVisibleWhenPollHasEnded": "Svarene vil være synlige når avstemningen er avsluttet", + "thread": "Tråd", + "backToMainChat": "Tilbake til hovedchatten", + "saveChanges": "Lagre endringer", + "skipChatBackup": "Hopp over sikkerhetskopiering av chat", + "commandHint_googly": "Send noen googly-eyes", + "commandHint_cuddle": "Send en kos", + "googlyEyesContent": "{senderName} sender deg googly-eyes", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "noChatsFoundHere": "Ingen chatter her. Bruk knappen under for å starte en ny samtale. ⤵️", + "changedTheChatDescription": "{username} endret beskrivelsen av chatten", + "changedTheChatName": "{username} endret navnet på chatten", + "commandHint_markasdm": "Marker som rom for direktemeldinger for den angitte Matrix-IDen", + "setAsCanonicalAlias": "Angi som hovedalias", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "Romgruppen er offentlig", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Navn på romgruppe", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "useAsEmoji": "Bruk som emoji", + "stickerPackNameAlreadyExists": "Klistremerkepakken finnes allerede", + "newStickerPack": "Ny klistremerkepakke", + "stickerPackName": "Navn på klistremerkepakke", + "addToBundle": "Legg til i pakke", + "removeFromBundle": "Fjern fra denne pakken", + "bundleName": "Navn på pakke", + "noBackupWarning": "Advarsel! Hvis du ikke aktiverer sikkerhetskopiering av chatten, vil du miste tilgangen til dine krypterte meldinger. Det anbefales sterkt å aktivere sikkerhetskopiering før du logger ut.", + "commandHint_op": "Angi makt-nivå for valgt bruker (standard: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "editBundlesForAccount": "Rediger pakker for denne kontoen", + "makeAdminDescription": "Når du gjør denne brukeren til administrator, kan du kanskje ikke omgjøre det senere. Brukeren vil da få de samme rettighetene som deg.", + "joinSpace": "Bli med i romgruppe", + "publicSpaces": "Offentlige romgrupper", + "verifyOtherUserDescription": "Hvis du verifiserer en annen bruker, kan du være trygg på at du vet hvem du faktisk skriver med. 💪\n\nNår du starter en verifisering, vil både du og den andre brukeren se et popup-vindu i appen. Der vil dere se en serie emojier eller tall som dere må sammenligne med hverandre.\n\nDen beste måten å gjøre dette på er å møtes ansikt til ansikt eller starte en videosamtale. 👭", + "verifyOtherDeviceDescription": "Når du verifiserer en annen enhet, kan disse enhetene utveksle nøkler, noe som øker den generelle sikkerheten din. 💪 Når du starter en verifisering, vil det dukke opp et popup-vindu i appen på begge enhetene. Der vil du se en serie emojier eller tall som du må sammenligne med hverandre. Det er best å ha begge enhetene forhånden før du starter verifiseringen. 🤳", + "clientWellKnownInformation": "Velkjent informasjon om klienten:", + "baseUrl": "Base URL", + "identityServer": "Identitetsserver:", + "versionWithNumber": "Versjon: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "Logger", + "advancedConfigs": "Avanserte innstillinger", + "advancedConfigurations": "Avanserte innstillinger", + "createSticker": "Lag sticker eller emoji", + "useAsSticker": "Bruk som sticker", + "pollQuestion": "Spørsmål til avstemning", + "hasKnocked": "🚪{user} har banket på", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "usersMustKnock": "Brukere må banke på", + "knock": "Bank på", + "notificationRuleRoomServerAclDescription": "Skjuler varsler for tilgangskontrollister (ACL) for romservere.", + "displayNavigationRail": "Vis navigasjonsfelt på mobil", + "attribution": "Kreditering", + "skipChatBackupWarning": "Er du sikker? Uten sikkerhetskopi av chattene kan du miste meldingene dine hvis du bytter enhet.", + "noMoreResultsFound": "Ingen flere treff", + "federationBaseUrl": "Federation Base URL", + "notificationRuleServerAclDescription": "Skjuler varslinger for Server ACL-hendelser.", + "notificationRuleServerAcl": "Skjul Server ACL-hendelser", + "notificationRuleMemberEventDescription": "Skjuler varslinger for medlemsskapshendelser.", + "youHaveKnocked": "Du har banket på", + "moreEvents": "Flere hendelser", + "contactServerSecurity": "Kontakt sikkerhetsansvarlig for serveren", + "notificationRuleMemberEvent": "Medlemshendelse", + "spaceMemberOfCanKnock": "Et medlem av romgruppen {spaces} kan banke på", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "countVotes": "{count, plural, =1{En stemme} other{{count} stemmer}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "countReplies": "{count, plural, =1{Et svar} other{{count} svar}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "chatSearchedUntil": "Søkte i chatten frem til {time}", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "spaceMemberOf": "Romgruppemedlem av {spaces}", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "confirmEventUnpin": "Er du sikker på at du vil løsne hendelsen permanent?", + "newSpaceDescription": "Romgrupper lar deg samle chattene dine og bygge private eller offentlige fellesskap.", + "chatPermissionsDescription": "Definer hvilket tilgangsnivå som kreves for bestemte handlinger i denne chatten. Nivåene 0, 50 og 100 representerer vanligvis brukere, moderatorer og administratorer, men alle mellomtrinn er mulige.", + "knocking": "Banker på", + "noKeyForThisMessage": "Dette kan skje hvis meldingen ble sendt før du logget inn på kontoen din på denne enheten.\n\nDet er også mulig at senderen har blokkert enheten din, eller at noe gikk galt med internettforbindelsen.\n\nEr du i stand til å lese meldingen i en annen sesjon? Da kan du overføre meldingen fra den! Gå til Innstillinger > Enheter og sørg for at enhetene dine har verifisert hverandre. Neste gang du åpner rommet og begge sesjonene er i forgrunnen, vil nøklene bli overført automatisk.\n\nVil du unngå å miste nøklene når du logger ut eller bytter enhet? Sørg for at du har aktivert sikkerhetskopiering av chat i innstillingene.", + "report": "rapportere", + "addChatOrSubSpace": "Legg til chat eller under-romgruppe", + "signIn": "Logg på", + "createNewAccount": "Opprett ny konto", + "signUpGreeting": "FluffyChat er desentralisert! Velg en server der du vil opprette kontoen din, så kjører vi på!", + "signInGreeting": "Har du allerede en Matrix-konto? Velkommen tilbake! Velg hjemmeserveren din og logg inn.", + "theProcessWasCanceled": "Prosessen ble avbrutt.", + "join": "Bli med", + "searchOrEnterHomeserverAddress": "Søk eller angi adresse til hjemmeserver", + "matrixId": "Matrix ID", + "setPowerLevel": "Angi styrkenivå", + "makeModerator": "Gjør til moderator", + "makeAdmin": "Gjør til admin", + "removeModeratorRights": "Fjern moderator-rettigheter", + "removeAdminRights": "Fjern admin-rettigheter", + "powerLevel": "Styrkenivå", + "setPowerLevelDescription": "Styrkenivåer definerer hva et medlem har lov til å gjøre i dette rommet, og varierer vanligvis mellom 0 og 100.", + "owner": "Eier", + "mute": "Demp", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "createNewChat": "Opprett ny chat", + "reset": "Nullstill", + "supportFluffyChat": "Støtt FluffyChat", + "support": "Støtte", + "setLowPriority": "Sett lav prioritet", + "unsetLowPriority": "Fjern lav prioritet", + "playSoundOnNotification": "Spill av lyd ved varsling", + "addTag": "Legg til emneknagg", + "removeTag": "Fjern emneknagg", + "tagName": "Navn på emneknagg", + "createNewTag": "Opprett ny emneknagg", + "discardEdits": "Du har endringer som ikke er lagret. Vil du forkaste endringene?", + "@discardEdits": { + "type": "String", + "placeholders": {} + }, + "showMore": "Vis mer", + "showLess": "Vis mindre", + "hideRoomsInSpaces": "Skjul rom som er med i en romgruppe", + "possibleByYou": "Denne versjonen var bare mulig takket være din støtte. FluffyChat forblir gratis, har åpen kildekode og er helt fellesskapsdrevet.", + "showThumbnailsInTimeline": "Vis miniatyrbilder av bilder og videoer", + "appSubtitle": "Sikker [matrix]-kommunikasjon", + "appDescription": "Kommuniser kryptert over det desentraliserte [matrix]-nettverket på en enkel og tilgjengelig måte for alle.", + "interactiveVerification": "Interaktiv verifisering", + "interactiveVerificationDescription": "Hvis dere står ved siden av hverandre eller kommuniserer via en sikker kanal, kan dere verifisere alle enhetene samtidig ved å sammenligne et sikkerhetsnummer eller emojier.", + "countUnverifiedDevices": "{count} uverifiserte enheter i chatten.", + "@countUnverifiedDevices": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "encryptedMessage": "Kryptert melding", + "unencryptedMessage": "Ukryptert melding", + "messageCanOnlyBeReadByUser": "Din melding er ende-til-ende kryptert og kan bare leses av denne brukeren:", + "messageCanOnlyBeReadByUsers": "Din melding er ende-til-ende kryptert og kan bare leses av disse brukerne:", + "publicKey": "Offentlig nøkkel: {key}", + "@publicKey": { + "type": "String", + "placeholders": { + "key": { + "type": "String" + } + } + }, + "deviceIdentityKey": "Enhetens identitetsnøkkel", + "restoreBootstrapEmptyDevicesDescription": "Vennligst oppgi passfrasen eller gjenopprettingsnøkkelen din for å verifisere denne enheten og få tilgang til den krypterte sikkerhetskopien av meldingene dine.", + "@restoreBootstrapEmptyDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "restoreBootstrapDevicesDescription": "Vennligst velg en av de andre enhetene dine for å verifisere denne sesjonen:", + "@restoreBootstrapDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "resetAccount": "Tilbakestill kontoen", + "@resetAccount": { + "type": "String", + "placeholders": {} + }, + "waitingForKeys": "Venter på nøkler... Vennligst hold den andre enheten aktiv.", + "@waitingForKeys": { + "type": "String", + "placeholders": {} + }, + "noKeysTransmitted": "Ingen nøkler overført. Vennligst prøv igjen.", + "@noKeysTransmitted": { + "type": "String", + "placeholders": {} + }, + "unlock": "Lås opp", + "@unlock": { + "type": "String", + "placeholders": {} + }, + "openFile": "Åpne fil", + "@openFile": { + "type": "String", + "placeholders": {} + }, + "newPassphraseDescription": "FluffyChat bruker ende-til-ende-kryptering. For å ikke miste meldingene dine, vennligst velg et sterkt passord for å sikre din kryptografiske identitet og din krypterte sikkerhetskopi av meldinger.", + "@newPassphraseDescription": { + "type": "String", + "placeholders": {} + }, + "newPassphrase": "Ny passfrase", + "@newPassphrase": { + "type": "String", + "placeholders": {} + }, + "repeatPassphrase": "Gjenta passfrase", + "@repeatPassphrase": { + "type": "String", + "placeholders": {} + }, + "passphrasesMatch": "Passfrasene matcher", + "@passphrasesMatch": { + "type": "String", + "placeholders": {} + }, + "passphraseLengthRequirement": "Minst 12 tegn langt.", + "@passphraseLengthRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseUpperAndLowerCaseRequirement": "Inneholder store og små bokstaver.", + "@passphraseUpperAndLowerCaseRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseSpecialCharactersRequirement": "Inneholder spesialtegn.", + "@passphraseSpecialCharactersRequirement": { + "type": "String", + "placeholders": {} + }, + "editImage": "Rediger bilde", + "@editImage": { + "type": "String", + "placeholders": {} + }, + "rotateLeft": "Roter til venstre", + "@rotateLeft": { + "type": "String", + "placeholders": {} + }, + "rotateRight": "Roter til høyre", + "@rotateRight": { + "type": "String", + "placeholders": {} + }, + "mirror": "Speil", + "@mirror": { + "type": "String", + "placeholders": {} + }, + "save": "Lagre", + "@save": { + "type": "String", + "placeholders": {} + }, + "draw": "Tegn", + "@draw": { + "type": "String", + "placeholders": {} + }, + "undo": "Angre", + "@undo": { + "type": "String", + "placeholders": {} + }, + "clear": "Tøm", + "@clear": { + "type": "String", + "placeholders": {} + }, + "eraser": "Viskelær", + "@eraser": { + "type": "String", + "placeholders": {} + }, + "crop": "Beskjær", + "@crop": { + "type": "String", + "placeholders": {} + }, + "resetAccountWarning": "Når du tilbakestiller kontoen din, mister du tilgangen til de gamle meldingene dine for alltid. Alle dine nåværende enheter må verifiseres på nytt. Du bør bare utføre denne handlingen dersom du ikke har noen andre enheter igjen til å verifisere økten din, og du har mistet gjenopprettingsnøkkelen og passordfrasen din!", + "@resetAccountWarning": { + "type": "String", + "placeholders": {} + }, + "passphraseNumberRequirement": "Inneholder ett tall.", + "@passphraseNumberRequirement": { + "type": "String", + "placeholders": {} + }, + "storeRecoveryKeyDescription": "Vennligst skriv ned gjenopprettingsnøkkelen din for å kunne gjenopprette de krypterte meldingene dine og din kryptoidentitet.", + "@storeRecoveryKeyDescription": { + "type": "String", + "placeholders": {} + }, + "saveAsFile": "Lagre som en fil", + "@saveAsFile": { + "type": "String", + "placeholders": {} + }, + "youAreReadyToStart": "Nå er du klar til å starte!", + "restoreCryptoIdentity": "Forny kryptoidentitet", + "@restoreCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "resetCryptoIdentity": "Tilbakestill kryptoidentitet", + "@resetCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "setUpCryptoIdentity": "Sett opp kryptoidentitet", + "@setUpCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "noUserKeyFound": "Ingen brukernøkkel funnet", + "@noUserKeyFound": { + "type": "String", + "placeholders": {} + }, + "knownSince": "Kjent siden: {date}", + "@knownSince": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + } + } + }, + "unsignedDevice": "Usignert enhet", + "@unsignedDevice": { + "type": "String", + "placeholders": {} + }, + "signedDevice": "Signert enhet", + "@signedDevice": { + "type": "String", + "placeholders": {} + }, + "noCurve25519KeyFound": "Ingen Curve25519-nøkkel funnet", + "@noCurve25519KeyFound": { + "type": "String", + "placeholders": {} + }, + "messageNotDecryptable": "Meldingen kan ikke dekrypteres", + "today": "I dag", + "sending": "Sender", + "generatingThumbnail": "Genererer miniatyrbilde", + "encrypting": "Krypterer", + "uploading": "Laster opp", + "edited": "(redgiert)", + "couldNotBeSent": "Kunne ikke sendes", + "yesterday": "I går", + "resetRecoveryKey": "Tilbakestill gjenopprettingsnøkkel", + "pleaseEnter6Digits": "Skriv inn 6 sifre for å aktivere applåsen.", + "disableAppLock": "Deaktiver applåsen", + "disableAppLockAreYouSure": "Er du sikker på at du ønsker å deaktivere applåsen?", + "enableBiometrics": "Aktiver biometrisk autentisering", + "disableBiometrics": "Deaktiver biometrisk autentisering", + "biometricsDescription": "Med biometrisk autentisering kan du låse opp appen med ansiktet ditt eller fingeravtrykket ditt. Hvilke funksjoner som er tilgjengelige, avhenger av enheten din.", + "useAppLock": "Aktiver applås", + "unlockWithBiometrics": "Lås opp med biometrisk autentisering", + "resetPin": "Tilbakestill PIN", + "forwardCountMessages": "Videresend {count, plural, =1{en melding} other{{count} meldinger}}?", + "@forwardCountMessages": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingMessages": "Laster meldinger...", + "buildDoesNotSupportFirebase": "Denne versjonen støtter ikke Firebase Cloud Messaging.", + "unableToRegisterDeviceForFirebase": "Kan ikke registrere enheten for Firebase Cloud Messaging.", + "unifiedPushDistributors": "UnifiedPush-distributører:", + "doubleTapToReact": "Dubbelttrykk for å reagere", + "doubleTapToReactDescription": "Dobbelt-trykk på en melding for å reagere i stedet for å merke tekst", + "doubleTapReaction": "Reaksjon ved dobbelttrykk", + "videoCallsBetaWarning": "Videosamtaler er en betafunksjon. Det kan forekomme feil eller uventet oppførsel. Vi vil gjerne høre tilbakemeldingene dine.", + "sendingFilesDoNotExit": "Sender {count} filer... Ikke avslutt!", + "@sendingFilesDoNotExit": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "compressingVideo": "Komprimerer video...", + "shareCrashReports": "Del krasjrapporter", + "shareCrashReportsDescription": "Dele automatisk krasjrapporter med utviklerne?", + "shareCrashReportsPrompt": "Vil du dele krasjrapporter automatisk med utviklerne? Les mer på {url} om hvilke data som deles.", + "@shareCrashReportsPrompt": { + "placeholders": { + "url": { + "type": "String" + } + } + }, + "allow": "Tillat", + "deny": "Avvis", + "enterCall": "Bli med i samtale", + "noDevicesFound": "Ingen enheter funnet", + "incomingCall": "Innkommende samtale", + "waitingForParticipant": "Venter på deltakere...", + "decline": "Avslå", + "videoCall": "Videosamtale", + "voiceCall": "Talesamtale", + "missedCall": "Tapte anrop", + "callBack": "Ring tilbake", + "hangUp": "Legg på", + "startCall": "Start samtale", + "selectCamera": "Velg kamera", + "selectMicrophone": "Velg mikrofon", + "selectSpeaker": "Velg høytaler", + "toggleMicrophone": "Slå på/av mikrofon", + "toggleCamera": "Slå på/av kamera", + "startScreensharing": "Start skjermdeling", + "stopScreensharing": "Avslutt skjermdeling", + "raiseHand": "Hev hånden", + "stopRaiseHand": "Senk hånden" +} diff --git a/lib/l10n/intl_nl.arb b/lib/l10n/intl_nl.arb new file mode 100644 index 0000000..5d2f563 --- /dev/null +++ b/lib/l10n/intl_nl.arb @@ -0,0 +1,2827 @@ +{ + "@@last_modified": "2021-08-14 12:41:09.955292", + "about": "Over ons", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Accepteren", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} heeft de uitnodiging geaccepteerd", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Account", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} heeft eind-tot-eindversleuteling geactiveerd", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "Email toevoegen", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "Aan space toevoegen", + "admin": "Beheerder", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "alias", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Alle", + "@all": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} heeft de oproep beantwoord", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Iedereen kan toetreden", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "App-vergrendeling", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "archive": "Archief", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Mogen gasten deelnemen?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Weet je het zeker?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Weet je zeker dat je wilt uitloggen?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Voer je beveiligde opslag wachtwoordzin of herstelsleutel in om de andere persoon te kunnen ondertekenen.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Accepteer je dit verificatieverzoek van {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "autoplayImages": "Automatisch geanimeerde stickers en emoticons afspelen", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "badServerLoginTypesException": "De homeserver ondersteunt de login types:\n{serverVersions}\nMaar deze app ondersteunt alleen:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "banFromChat": "Van chat verbannen", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Verbannen", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} verbant {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Apparaat blokkeren", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "Geblokkeerd", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "Annuleren", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "Kan de URI {uri} niet openen", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changeDeviceName": "Apparaatnaam wijzigen", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} heeft de chatavatar gewijzigd", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} heeft de chatrechten gewijzigd", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username}'s naam is nu '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} heeft de toegangsregels voor gasten gewijzigd", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} heeft de gastenregels gewijzigd in: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} heeft de zichtbaarheid van de geschiedenis gewijzigd", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} heeft de zichtbaarheid van de geschiedenis gewijzigd in: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} heeft de toetredingsregels gewijzigd", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} heeft de toetredingsregels gewijzigd in: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username}'s avatar is gewijzigd", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} heeft de chat aliassen gewijzigd", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} heeft de uitnodigingslink gewijzigd", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Wachtwoord wijzigen", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Homeserver wijzigen", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Je stijl veranderen", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Groepsnaam wijzigen", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Jouw avatar veranderen", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "De versleuteling is beschadigd", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Chat", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Chatback-up", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Chatdetails", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Chats", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Kies een sterk wachtwoord", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Archief wissen", + "close": "Sluiten", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "Persoon uit deze chat verbannen", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_html": "Tekst met HTML-opmaak versturen", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Persoon in deze chat uitnodigen", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "Toetreden tot de vermelde chat", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "Persoon uit deze chat verwijderen", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "Deze chat verlaten", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "Beschrijf jezelf", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_myroomavatar": "Jouw avatar voor deze chat instellen (met mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "Jouw naam voor deze chat instellen", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "Rechtenniveau van de persoon instellen (standaard: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "Niet-opgemaakte tekst versturen", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "Antwoord als reactie versturen", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_send": "Tekst versturen", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_unban": "Persoon weer in deze chat toestaan", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandInvalid": "Opdracht ongeldig", + "@commandInvalid": { + "type": "String" + }, + "commandMissing": "{command} is geen opdracht.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "compareEmojiMatch": "Vergelijk de emoji's", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Vergelijk de cijfers", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Chat configureren", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Contact is voor de groep uitgenodigd", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "De inhoud is gerapporteerd aan de serverbeheerders", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Gekopieerd naar klembord", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Bericht kopiëren", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Kopieer naar klembord", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Kan het bericht niet ontsleutelen: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count, plural, =1{1 persoon} other{{count} personen}}", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Aanmaken", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} heeft de chat gemaakt", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "createNewSpace": "Maak nieuwe space aan", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "Momenteel actief", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Donker", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Hierdoor wordt je account gedeactiveerd. Dit kan niet ongedaan gemaakt worden! Weet je het zeker?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Standaard rechten-niveau voor nieuwe personen", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "Verwijderen", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Account verwijderen", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Bericht verwijderen", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Apparaten", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Directe chats", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "De naam is gewijzigd", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Bestand downloaden", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "Wijzig", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Geblokkeerde servers wijzigen", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Naam wijzigen", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Chat aliassen wijzigen", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Chat avatar wijzigen", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Emoticon bestaat al!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Ongeldige emoticon korte code!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Emoticon korte code", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Lege chat", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Emoticonpakket overal inschakelen", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Versleuteling inschakelen", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Je kunt de versleuteling hierna niet meer uitschakelen. Weet je het zeker?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Versleuteld", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Versleuteling", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Versleuteling is niet ingeschakeld", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} heeft de oproep beëindigd", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Voer een emailadres in", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Locatie ophalen fout: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "fontSize": "Lettergrootte", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "Stuur door", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Vanaf toetreden", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Vanaf uitnodiging", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Groep", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "Groep is publiek", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "Groepen", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Groep met {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Gasten zijn verboden", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Gasten kunnen deelnemen", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} heeft de uitnodiging voor {targetName} ingetrokken", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Help", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Onbekende gebeurtenissen verbergen", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignore": "Negeer", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Genegeerde personen", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Ik heb op de link geklikt", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Onjuiste wachtwoordzin of herstelsleutel", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Contact uitnodigen", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Contact voor {groupName} uitnodigen", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "Uitgenodigd", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username} heeft {targetName} uitgenodigd", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Alleen uitgenodigde personen", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} heeft je uitgenodigd voor FluffyChat.\n1. Bezoek https://fluffychat.im en installeer de app\n2. Registreer of log in\n3. Open deze uitnodigingslink:\n{link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "is aan het typen", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} is toegetreden tot de chat", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Toetreden tot de chat", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username} heeft {targetName} verwijderd", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} heeft {targetName} verwijderd en verbannen", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Uit chat verwijderen", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Laatst actief: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Chat verlaten", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Verliet de chat", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Licht", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Laad nog {count} personen", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "Bezig met laden… Even geduld.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Meer laden…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "Locatievoorzieningen is uitgeschakeld. Zet dit eerst aan om je locatie te delen.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "Locatie toegang is geweigerd. Geef toegang om de locatie delen-functie te gebruiken.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "login": "Inloggen", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Inloggen bij {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Uitloggen", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Vermeld", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "Berichten", + "@messages": { + "type": "String", + "placeholders": {} + }, + "moderator": "Moderator", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Chat dempen", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Nieuwe chat", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Nieuw bericht in FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Nieuw verificatieverzoek!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "Volgende", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "Nee", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Geen verbinding met de server", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Geen emoticons gevonden. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Je kunt de versleuteling pas activeren zodra de chat niet meer publiek toegankelijk is.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Firebase Cloud Messaging lijkt niet beschikbaar op je apparaat. Om pushmeldingen te krijgen, adviseren we om ntfy te installeren. Met ntfy of een andere Unified Push-provider kun je pushmeldingen ontvangen op een veilige manier. Je kunt ntfy downloaden in de PlayStore of F-Droid.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} is geen Matrix-server, wil je {server2} gebruiken?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "noPasswordRecoveryDescription": "Je hebt nog geen manier toegevoegd om je wachtwoord te herstellen.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Geen toestemming", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Geen chats gevonden …", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Meldingen", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} personen typen…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "obtainingLocation": "Locatie ophalen…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "ok": "Ok", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Online sleutelback-up is ingeschakeld", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Oeps! Helaas is er een fout opgetreden bij het instellen van de pushmeldingen.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Oeps, er ging iets mis…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Open app om de berichten te lezen", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Camera openen", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "openInMaps": "In kaarten openen", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "or": "Of", + "@or": { + "type": "String", + "placeholders": {} + }, + "participant": "Deelnemer", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "wachtwoordzin of herstelsleutel", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Wachtwoord", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Wachtwoord vergeten", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Wachtwoord gewijzigd", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Wachtwoordherstel", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Pin", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Kies een toegangscode", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Klik op de link in de email en ga dan verder.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Voer jouw wachtwoord in", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Voer je pincode in", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Voer je inlognaam in", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Volg de instructies op de website en tik op volgende.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "Privacy", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Publieke chats", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "Reden", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} heeft een event verwijderd", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactMessage": "Aangepast bericht", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reject": "Afwijzen", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} heeft de uitnodiging afgewezen", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Verwijder", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Verwijder alle andere apparaten", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Verbanning opheffen", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Jouw avatar verwijderen", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Kamerversie upgraden", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "Antwoord", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Bericht rapporteren", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Chat is geüpgrade", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Kamerversie", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Bestand opslaan", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "search": "Zoeken", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "Beveiliging", + "@security": { + "type": "String", + "placeholders": {} + }, + "send": "Verstuur", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Stuur een bericht", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Als tekst versturen", + "@sendAsText": { + "type": "String" + }, + "sendAudio": "Audio versturen", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Bestand versturen", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Afbeelding versturen", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Berichten versturen", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Video versturen", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username} heeft een bestand verzonden", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username} heeft een audio verzonden", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username} heeft een afbeelding verzonden", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} heeft een sticker verzonden", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} heeft een video verzonden", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} heeft oproepgegevens verzonden", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setAsCanonicalAlias": "Als hoofdalias instellen", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "setStatus": "Status instellen", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Instellingen", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Delen", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} heeft deze locatie gedeeld", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "shareLocation": "Locatie delen", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "skip": "Overslaan", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Broncode", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "Space is publiek", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Spacenaam", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} heeft een oproep gestart", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "status": "Status", + "@status": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Hoe gaat het met jouw vandaag?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Indienen", + "@submit": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Synchroniseren... Even geduld.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Systeem", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Ze komen niet overeen", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Ze komen overeen", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Te veel verzoeken. Probeer het later nog eens!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Probeer nogmaals te verzenden", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} heeft verbanning {targetName} ongedaan gemaakt", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Deblokkeer apparaat", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Onbekend apparaat", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Onbekend versleutelingsalgoritme", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Onbekend evenement '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Dempen uitschakelen", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Pin losmaken", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} en {count} anderen zijn aan het typen …", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} en {username2} zijn aan het typen …", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} is aan het typen …", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪 {username} is vertrokken uit de chat", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} heeft een {type} -gebeurtenis gestuurd", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verified": "Geverifieerd", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Verificatie starten", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Je bent succesvol geverifieerd!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Ander account verifiëren", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Chatgeschiedenis zichtbaarheid", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Zichtbaar voor alle personen", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Zichtbaar voor iedereen", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Spraakbericht versturen", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Wachten tot partner het verzoek accepteert …", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Wachten tot je partner de emoji accepteert…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Wachten tot partner de nummers accepteert …", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Waarschuwing!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "We hebben je een email gestuurd", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Wie kan welke actie uitvoeren", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Wie mag deelnemen aan deze groep", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Waarom wil je dit rapporteren?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Met deze adressen kun je je wachtwoord herstellen.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Schrijf een bericht…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Ja", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Jij", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Je neemt niet langer deel aan deze chat", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Je bent verbannen uit deze chat", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Je publieke sleutel", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "scanQrCode": "QR-code scannen", + "sendOnEnter": "Verstuur met enter", + "oneClientLoggedOut": "Één van jouw apparaten is uitgelogd", + "bundleName": "Bundelnaam", + "removeFromBundle": "Van bundel verwijderen", + "addToBundle": "Aan bundel toevoegen", + "editBundlesForAccount": "Bundels voor dit account wijzigen", + "addAccount": "Account toevoegen", + "link": "Link", + "unverified": "Niet geverifieerd", + "repeatPassword": "Wachtwoord herhalen", + "messageInfo": "Berichtinfo", + "time": "Tijd", + "sender": "Afzender", + "openGallery": "Galerij openen", + "removeFromSpace": "Uit de space verwijderen", + "commandHint_clearcache": "Cache wissen", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_create": "Maak een lege groepschat\nGebruik --no-encryption om de versleuteling uit te schakelen", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_dm": "Start een directe chat\nGebruik --no-encryption om de versleuteling uit te schakelen", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_discardsession": "Sessie weggooien", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "markAsRead": "Markeer als gelezen", + "reportUser": "Persoon rapporteren", + "reactedWith": "{sender} reageerde met {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "pinMessage": "Maak vast aan chat", + "emojis": "Emoji's", + "unsupportedAndroidVersion": "Niet-ondersteunde Android-versie", + "unsupportedAndroidVersionLong": "Voor deze functie is een nieuwe Android-versie verplicht. Controleer je updates of Lineage OS-ondersteuning.", + "confirmEventUnpin": "Weet je zeker dat je de gebeurtenis definitief wilt losmaken?", + "youAcceptedTheInvitation": "👍 Je hebt de uitnodiging geaccepteerd", + "youRejectedTheInvitation": "Je hebt de uitnodiging afgewezen", + "youJoinedTheChat": "Je bent toegetreden tot de chat", + "youBannedUser": "Je hebt {user} verbannen", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youHaveWithdrawnTheInvitationFor": "Je hebt de uitnodiging voor {user} ingetrokken", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 Je bent uitgenodigd door {user}", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 Je hebt {user} uitgenodigd", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKicked": "👞 Je hebt {user} weggestuurd", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKickedAndBanned": "🙅 Je hebt weggestuurd en verbannen {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "Je hebt de ban op {user} opgeheven", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "users": "Personen", + "storeInAndroidKeystore": "In Android KeyStore opslaan", + "storeInAppleKeyChain": "In Apple KeyChain opslaan", + "storeSecurlyOnThisDevice": "Veilig opslaan op dit apparaat", + "dehydrate": "Sessie exporteren en apparaat wissen", + "dehydrateWarning": "Deze actie kan niet ongedaan worden gemaakt. Zorg ervoor dat je het back-upbestand veilig opslaat.", + "hydrate": "Herstellen vanuit back-upbestand", + "countFiles": "{count} bestanden", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "user": "Persoon", + "custom": "Aangepast", + "confirmMatrixId": "Bevestig jouw Matrix-ID om je account te verwijderen.", + "supposedMxid": "Dit moet {mxid} zijn", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "commandHint_markasdm": "Markeer als privé-chat voor de Matrix-ID", + "commandHint_markasgroup": "Markeer als groep", + "whyIsThisMessageEncrypted": "Waarom is dit bericht onleesbaar?", + "noKeyForThisMessage": "Dit kan gebeuren als het bericht is verzonden voordat je bij je account op dit apparaat hebt aangemeld.\n\nHet is ook mogelijk dat de afzender je apparaat heeft geblokkeerd of dat er iets mis is gegaan met de internetverbinding.\n\nKan je het bericht wel lezen in een andere sessie? Dan kan je het bericht daarvandaan overzetten! Ga naar Instellingen > Apparaten en zorg ervoor dat je apparaten elkaar hebben geverifieerd. Wanneer je de chat de volgende keer opent en beide sessies op de voorgrond staan, zullen de sleutels automatisch worden verzonden.\n\nWil je de sleutels niet verliezen als je uitlogt of van apparaat wisselt? Zorg er dan voor dat je de chatback-up hebt aangezet in de instellingen.", + "newSpace": "Space aanmaken", + "doNotShowAgain": "Niet meer tonen", + "googlyEyesContent": "{senderName} stuurt je wiebelogen", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_googly": "Wiebel-ogen versturen", + "commandHint_cuddle": "Een knuffel versturen", + "commandHint_hug": "Een knuffel versturen", + "cuddleContent": "{senderName} knuffelt je", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "hugContent": "{senderName} omhelst je", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "wasDirectChatDisplayName": "Lege chat (was {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "disableEncryptionWarning": "Om veiligheidsredenen kun je versleuteling niet uitschakelen in een chat, waar deze eerder is ingeschakeld.", + "sorryThatsNotPossible": "Sorry, dat is niet mogelijk", + "reopenChat": "Chat heropenen", + "encryptThisChat": "Versleutel deze chat", + "newSpaceDescription": "Met spaces kun je je chats samenvoegen en privé- of publieke community's bouwen.", + "noOtherDevicesFound": "Geen andere apparaten gevonden", + "noBackupWarning": "Waarschuwing! Zonder de chatback-up in te schakelen, verlies je de toegang tot je versleutelde berichten. Het is sterk aanbevolen om eerst de chatback-up in te schakelen voordat je uitlogt.", + "fileIsTooBigForServer": "Kan niet verzenden! De server ondersteunt alleen bijlages tot {max}.", + "fileHasBeenSavedAt": "Het bestand is opgeslagen op {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "jumpToLastReadMessage": "Spring naar het laatst gelezen bericht", + "readUpToHere": "Lees tot hier", + "jump": "Spring", + "openLinkInBrowser": "Link in browser openen", + "notAnImage": "Geen afbeeldingsbestand.", + "importNow": "Nu importeren", + "importEmojis": "Emoji's importeren", + "importFromZipFile": "Uit zip-bestand importeren", + "exportEmotePack": "Emote-pakket als zip exporteren", + "replace": "Vervang", + "report": "Rapporteer", + "reportErrorDescription": "😭 Oh nee. Er is iets misgegaan. Probeer het later nog eens. Als je wilt, kun je de bug rapporteren aan de ontwikkelaars.", + "sendTypingNotifications": "Toon 'aan het typen'-meldingen", + "chatPermissions": "Chatrechten", + "chatDescription": "Onderwerp", + "chatDescriptionHasBeenChanged": "Onderwerp gewijzigd", + "noChatDescriptionYet": "Nog geen onderwerp gemaakt.", + "tryAgain": "Opnieuw proberen", + "redactMessageDescription": "Het bericht zal worden aangepast voor alle deelnemers in dit gesprek. Dit kan niet ongedaan gemaakt worden.", + "redactedByBecause": "Aangepast door {username}, reden: \"{reason}\"", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "createGroup": "Groep aanmaken", + "optionalRedactReason": "(Optioneel) Reden voor aanpassing van dit bericht...", + "invalidServerName": "Foute servernaam", + "messagesStyle": "Berichten:", + "shareInviteLink": "Uitnodigingslink delen", + "redactedBy": "Aangepast door {username}", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "setChatDescription": "Onderwerp instellen", + "setColorTheme": "Kleurthema instellen:", + "invite": "Uitnodigen", + "inviteGroupChat": "📨 Groeps-chat uitnodiging", + "emoteKeyboardNoRecents": "Recent gebruikte emoticons zullen hier verschijnen...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "invalidInput": "Ongeldige invoer!", + "wrongPinEntered": "Verkeerde pin ingevoerd! Probeer het nog eens over {seconds} seconden...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "banUserDescription": "De persoon zal worden verbannen van de chat en kan niet meer toetreden totdat de verbanning is opgeheven.", + "removeDevicesDescription": "Je wordt op dit apparaat uitgelogd en zal niet langer in staat zijn om berichten te ontvangen.", + "unbanUserDescription": "De persoon zal weer in staat zijn om de chat te betreden als ze het proberen.", + "pushNotificationsNotAvailable": "Pushmeldingen zijn niet beschikbaar", + "makeAdminDescription": "Wanneer je deze persoon beheerder maakt kun je dit niet ongedaan maken als jullie dezelfde rechten hebben.", + "archiveRoomDescription": "De chat zal naar het archief worden verplaatst. Andere personen zullen in staat zijn te zien dat je de chat hebt verlaten.", + "hasKnocked": "🚪 {user} heeft geklopt", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "learnMore": "Lees meer", + "roomUpgradeDescription": "De chat zal dan opnieuw gemaakt worden met de nieuwe kamerversie. Alle deelnemers worden geïnformeerd dat ze moeten overstappen naar de nieuwe chat. Je kan meer lezen over kamerversies op https://spec.matrix.org/latest/rooms/", + "pleaseEnterANumber": "Vul een getal in groter dan 0", + "kickUserDescription": "De persoon is verwijderd uit de chat, maar is niet verbannen. In publieke chats kan de persoon op elk moment opnieuw deelnemen.", + "joinSpace": "Toetreden tot de space", + "block": "Blokkeren", + "blockedUsers": "Geblokkeerde personen", + "searchChatsRooms": "Zoek #chats, @personen...", + "swipeRightToLeftToReply": "Veeg van rechts naar links om te reageren", + "calls": "Oproepen", + "customEmojisAndStickers": "Aangepaste emoji's en stickers", + "accessAndVisibilityDescription": "Wie mag toetreden tot deze chat en hoe de chat ontdekt kan worden.", + "customEmojisAndStickersBody": "Voeg toe of deel aangepaste emoji's en stickers die in elke chat gebruikt kunnen worden.", + "hideRedactedMessages": "Verwijderde berichten verbergen", + "hideRedactedMessagesBody": "Als iemand een bericht verwijdert is dit bericht niet meer zichtbaar in de chat.", + "hideInvalidOrUnknownMessageFormats": "Ongeldige of onbekende berichtformaten verbergen", + "passwordRecoverySettings": "Wachtwoordherstel-instellingen", + "knock": "Klop", + "noOneCanJoin": "Niemand kan deelnemen", + "yourGlobalUserIdIs": "Je Matrix-ID is: ", + "appLockDescription": "Vergendel de app wanneer het niet gebruikt wordt met een pincode", + "globalChatId": "Globale chat ID", + "accessAndVisibility": "Toegang en zichtbaarheid", + "publicSpaces": "Publieke spaces", + "blockUsername": "Negeer inlognaam", + "publicChatAddresses": "Publieke chat adressen", + "createNewAddress": "Creëer nieuw adres", + "noMoreChatsFound": "Geen chats gevonden...", + "knocking": "Kloppen", + "space": "Space", + "unread": "Ongelezen", + "groupName": "Groepsnaam", + "changeGeneralChatSettings": "Algemene chat instellingen wijzigen", + "searchForUsers": "Zoek @personen...", + "searchMore": "Zoek meer...", + "groupCanBeFoundViaSearch": "Groep kan gevonden worden via zoeken", + "searchIn": "Zoek in chat \"{chat}\"...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "files": "Bestanden", + "unreadChatsInApp": "{appname}: {unread} ongelezen chats", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "noDatabaseEncryption": "Database versleuteling is niet ondersteund op dit platform", + "thereAreCountUsersBlocked": "Momenteel zijn er {count} personen geblokkeerd.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "markAsUnread": "Als ongelezen markeren", + "userLevel": "{level} - Persoon", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "moderatorLevel": "{level} - Moderator", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "adminLevel": "{level} - Beheerder", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "stickers": "Stickers", + "nothingFound": "Niets gevonden...", + "gallery": "Galerij", + "incomingMessages": "Inkomende berichten", + "discover": "Ontdek", + "commandHint_ignore": "Negeer de gegeven Matrix-ID", + "noChatsFoundHere": "Hier zijn nog geen chats. Begin een nieuwe chat met iemand door op de onderstaande knop te klikken. ⤵️", + "unableToJoinChat": "Kan niet toetreden tot de chat. Misschien heeft de andere partij het gesprek al afgesloten.", + "aboutHomeserver": "Over {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "boldText": "Vet gedrukte tekst", + "italicText": "Cursieve tekst", + "strikeThrough": "Doorhalen", + "pleaseFillOut": "Vul alsjeblieft in", + "invalidUrl": "Ongeldige url", + "addLink": "Koppeling toevoegen", + "compress": "Comprimeren", + "previous": "Vorige", + "otherPartyNotLoggedIn": "De andere partij is momenteel niet ingelogd en kan daarom geen berichten ontvangen!", + "blockListDescription": "Je kunt personen blokkeren die je lastig vallen. Je kan dan geen berichten meer ontvangen of chat uitnodigingen krijgen van de personen op je blokkeerlijst.", + "sendImages": "Stuur {count} afbeelding(en)", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "website": "Website", + "usersMustKnock": "Personen moeten kloppen", + "noUsersFoundWithQuery": "Helaas kan er geen persoon gevonden worden met \"{query}\". Controleer of je een typfout hebt gemaakt.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "createGroupAndInviteUsers": "Maak groep en nodig personen uit", + "chatCanBeDiscoveredViaSearchOnServer": "Chat kan worden gevonden via een zoekopdracht op {server}", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "wrongRecoveryKey": "Helaas... dit lijkt niet de correcte herstelsleutel.", + "synchronizingPleaseWaitCounter": " Synchroniseren… ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "databaseMigrationTitle": "Database is geoptimaliseerd", + "databaseMigrationBody": "Een ogenblik. Dit kan even duren.", + "commandHint_sendraw": "Stuur kale json", + "passwordIsWrong": "Je ingevoerde wachtwoord is fout", + "newPassword": "Nieuw wachtwoord", + "pleaseChooseAStrongPassword": "Kies a.j.b. een sterk wachtwoord", + "select": "Selecteer", + "leaveEmptyToClearStatus": "Laat leeg om jouw status te herstellen.", + "addChatOrSubSpace": "Voeg chat of subspace toe", + "pleaseEnterYourCurrentPassword": "Vul je huidige wachtwoord in", + "passwordsDoNotMatch": "Wachtwoorden komen niet overeen", + "thisDevice": "Dit apparaat:", + "contentNotificationSettings": "Contentmelding instellingen", + "roomNotificationSettings": "Kamermelding instellingen", + "userSpecificNotificationSettings": "Persoon specifieke melding instellingen", + "otherNotificationSettings": "Andere melding instellingen", + "notificationRuleContainsUserName": "Bevat naam van persoon", + "notificationRuleContainsUserNameDescription": "Stuur een melding als een bericht je inlognaam vermeld.", + "notificationRuleMaster": "Alle meldingen uitschakelen", + "notificationRuleMasterDescription": "Overschrijf alle andere regels en schakel alle meldingen uit.", + "notificationRuleMemberEventDescription": "Meldingen voor chat-gebeurtenissen uitschakelen.", + "notificationRuleIsUserMention": "Persoonvermelding", + "initAppError": "Er is een fout opgetreden bij het laden van de app", + "requestedKeyVerification": "{sender} vraagt een sleutelverificatie", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "sessionLostBody": "Je sessie is verlopen. Meldt alsjeblieft deze fout aan de ontwikkelaars via deze link {url}. De foutmelding is: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "sendTypingNotificationsDescription": "Andere deelnemers in de chat kunnen zien wanneer je een bericht aan het typen bent.", + "sendCanceled": "Versturen geannuleerd", + "opacity": "Doorzichtigheid:", + "verifyOtherUserDescription": "Als je een persoon verifieert ben je er zeker van dat je echt met haar contact hebt. 💪\n\nWanneer je een verificatie start ziet de persoon een popup in de app. Hier staat een serie van emoji's of getallen die je met elkaar moet vergelijken.\n\nDe beste manier om dit te doen is in persoon of met een video oproep. 👭", + "changeTheVisibilityOfChatHistory": "Zichtbaarheid van de chat-geschiedenis wijzigen", + "sendRoomNotifications": "@room-meldingen versturen", + "noticeChatBackupDeviceVerification": "Opmerking: Als al je apparaten zijn verbonden met de chat back-up worden ze automatisch geverifieerd.", + "notificationRuleMemberEvent": "Chat-gebeurtenis uitschakelen", + "notificationRuleSuppressNotices": "Automatische berichten uitschakelen", + "setWallpaper": "Achtergrond instellen", + "oneOfYourDevicesIsNotVerified": "Een van jouw apparaten is niet geverifieerd", + "contactServerAdmin": "Contact opnemen met serverbeheerder", + "manageAccount": "Account beheren", + "noContactInformationProvided": "Server geeft geen geldige contactinformatie", + "waitingForServer": "Wachten op server...", + "generalNotificationSettings": "Algemene melding instellingen", + "notificationRuleInviteForMeDescription": "Stuur een melding wanneer je wordt uitgenodigd voor een chat.", + "notificationRuleSuppressNoticesDescription": "Meldingen van automatische accounts zoals bots uitschakelen.", + "notificationRuleInviteForMe": "Persoonlijke uitnodiging", + "inviteOtherUsers": "Personen voor deze chat uitnodigen", + "changeTheChatPermissions": "Chatrechten wijzigen", + "changeTheCanonicalRoomAlias": "Standaard publiek chat-adres wijzigen", + "blur": "Vervaag:", + "isReadyForKeyVerification": "{sender} is klaar voor de sleutelverificatie", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "{sender} start een sleutelverificatie", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "acceptedKeyVerification": "{sender} accepteerde de sleutelverificatie", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "canceledKeyVerification": "{sender} annuleerde de sleutelverificatie", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "goToSpace": "Ga naar space: {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "contactServerSecurity": "Contact opnemen met serverbeveiliger", + "newChatRequest": "📩 Nieuw chat verzoek", + "updateInstalled": "🎉 Update {version} geïnstalleerd!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "changelog": "Wijzigingengeschiedenis", + "loginWithMatrixId": "Inloggen met Matrix-ID", + "calculatingFileSize": "Bestandsgrootte berekenen...", + "version": "Versie", + "supportPage": "Supportpagina", + "serverInformation": "Server-informatie:", + "name": "Naam", + "verifyOtherDeviceDescription": "Een geverifieerd ander apparaat zorgt ervoor dat de apparaten sleutels uitwisselen, wat je beveiliging versterkt. 💪 Als je de verificatie start verschijnt er een popup op beide apparaten. Hier staat een reeks emoji's of getallen die je met elkaar moet vergelijken. Het is handig om beide apparaten bij de hand te hebben voordat je de verificatie start. 🤳", + "commandHint_unignore": "Herstel de negeerde Matrix-ID", + "restoreSessionBody": "De app probeert nu je sessie te herstellen van een back-up. Meldt alsjeblieft deze fout aan de ontwikkelaars via deze link {url}. De foutmelding is: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "sendReadReceipts": "Leesbevestigingen versturen", + "formattedMessages": "Opgemaakte berichten", + "chatPermissionsDescription": "Stel het gewenste rechten-niveau in voor bepaalde acties in deze chat. Het rechten-niveau 0, 50 en 100 zijn gebruikelijk voor deelnemer, moderator en beheerder, maar elke verdeling is mogelijk.", + "changeTheDescriptionOfTheGroup": "Onderwerp wijzigen", + "sendReadReceiptsDescription": "Andere deelnemers van de chat kunnen zien of je een bericht hebt gelezen.", + "formattedMessagesDescription": "Geef rijke berichtinhoud weer zoals vetgedrukte tekst met markdown.", + "verifyOtherUser": "🔐 Persoon verifiëren", + "verifyOtherDevice": "🔐 Ander apparaat verifiëren", + "doesNotSeemToBeAValidHomeserver": "Dit lijkt geen ondersteunde server. Verkeerde URL?", + "continueText": "Doorgaan", + "appWantsToUseForLogin": "Inloggen met '{server}'", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "appWantsToUseForLoginDescription": "Hierbij sta je toe dat de app en website informatie over je delen.", + "open": "Open", + "completedKeyVerification": "{sender} ronde de sleutelverificatie af", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "notificationRuleContainsDisplayName": "Bevat de naam", + "notificationRuleIsUserMentionDescription": "Stuur een melding als je direct genoemd wordt in een bericht.", + "notificationRuleContainsDisplayNameDescription": "Stuur een melding als je genoemd wordt in een bericht.", + "notificationRuleIsRoomMention": "Kamervermelding", + "notificationRuleIsRoomMentionDescription": "Stuur een melding als er een kamervermelding is.", + "notificationRuleRoomnotif": "Kamermelding", + "notificationRuleRoomnotifDescription": "Stuur een melding als een bericht '@room' bevat.", + "notificationRuleTombstone": "Sluitingsbericht", + "notificationRuleReaction": "Reactie", + "notificationRuleRoomServerAcl": "Kamer Server ACL", + "notificationRuleTombstoneDescription": "Stuur een melding bij een chat-sluitingsbericht.", + "notificationRuleReactionDescription": "Meldingen voor reacties uitschakelen.", + "notificationRuleRoomServerAclDescription": "Meldingen voor kamer server toegangscontrolelijst (ACL) uitschakelen.", + "notificationRuleSuppressEdits": "Bewerkingen uitschakelen", + "notificationRuleCall": "Oproep", + "notificationRuleSuppressEditsDescription": "Meldingen voor bewerkte berichten uitschakelen.", + "notificationRuleEncryptedRoomOneToOneDescription": "Stuur een melding bij berichten in versleutelde een-op-een chats.", + "notificationRuleEncryptedRoomOneToOne": "Versleutelde een-op-een chat", + "notificationRuleRoomOneToOne": "Een-op-een chat", + "notificationRuleMessage": "Bericht", + "notificationRuleEncrypted": "Versleuteld", + "notificationRuleRoomOneToOneDescription": "Stuur een melding bij berichten in een-op-een chats.", + "notificationRuleMessageDescription": "Stuur een melding bij algemene berichten.", + "notificationRuleJitsi": "Jitsi", + "notificationRuleEncryptedDescription": "Stuur een melding bij berichten in versleutelde chats.", + "notificationRuleJitsiDescription": "Stuur een melding bij Jitsi widget-gebeurtenissen.", + "unknownPushRule": "Onbekende notificatieregel '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "notificationRuleServerAcl": "Server ACL-gebeurtenissen uitschakelen", + "notificationRuleServerAclDescription": "Meldingen over server ACL-gebeurtenissen uitschakelen.", + "more": "Meer", + "enterNewChat": "Nieuwe chat openen", + "crossVerifiedDevices": "Kruislings geverifieerde apparaten", + "allDevices": "Alle apparaten", + "shareKeysWithDescription": "Welke apparaten moeten vertrouwd worden zodat ze je berichten kunnen lezen in versleutelde chats?", + "verifiedDevicesOnly": "Alleen geverifieerde apparaten", + "crossVerifiedDevicesIfEnabled": "Kruislings geverifieerde apparaten als ingeschakeld", + "shareKeysWith": "Deel sleutels met...", + "notificationRuleCallDescription": "Stuur een melding bij oproepen.", + "deletePushRuleCanNotBeUndone": "Als je deze melding-instelling verwijderd, kan dit niet ongedaan gemaakt worden.", + "takeAPhoto": "Foto maken", + "recordAVideo": "Video opnemen", + "optionalMessage": "(Optioneel) bericht...", + "notSupportedOnThisDevice": "Niet ondersteund op dit apparaat", + "commandHint_roomupgrade": "Upgradeer deze chat naar de aangegeven kamerversie", + "pleaseWaitUntilInvited": "Wacht even alsjeblieft tot iemand van de chat je uitnodigt.", + "approve": "Goedkeuren", + "youHaveKnocked": "Je hebt geklopt", + "sentVoiceMessage": "🎙️ {duration} - Spraakbericht van {sender}", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "countInvited": "{count} uitgenodigd", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "checkList": "Checklist", + "commandHint_logout": "Uw huidige apparaat uitloggen", + "commandHint_logoutall": "Alle actieve apparaten uitloggen", + "displayNavigationRail": "Navigatiebalk op mobiel tonen", + "moreEvents": "Meer gebeurtenissen", + "customReaction": "Aangepaste reactie", + "declineInvitation": "Uitnodiging afwijzen", + "noMessagesYet": "Nog geen berichten", + "longPressToRecordVoiceMessage": "Lang drukken om een spraakbericht op te nemen.", + "pause": "Pauzeer", + "resume": "Hervat", + "removeFromSpaceDescription": "De chat zal worden verwijderd uit de space, maar blijft in je chats.", + "countChats": "{chats} chats", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "spaceMemberOf": "{spaces} personen in space", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "{spaces} personen in space kunnen kloppen", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "startPoll": "Peiling starten", + "endPoll": "Peiling beëindigen", + "answersVisible": "Zichtbaar invullen", + "pollQuestion": "Peiling vraag", + "answerOption": "Antwoord optie", + "addAnswerOption": "Antwoord optie toevoegen", + "allowMultipleAnswers": "Meerdere antwoorden toestaan", + "pollHasBeenEnded": "Peiling is geëindigd", + "countVotes": "{count, plural, =1{Één stem} other{{count} stemmen}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "answersWillBeVisibleWhenPollHasEnded": "Antwoorden zullen zichtbaar zijn wanneer de peiling is geëindigd", + "replyInThread": "Antwoord in gesprek", + "countReplies": "{count, plural, =1{Één antwoord} other{{count} antwoorden}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "thread": "Gesprek", + "backToMainChat": "Terug naar hoofdchat", + "saveChanges": "Wijzigingen opslaan", + "createSticker": "Sticker of emoji maken", + "useAsSticker": "Gebruik als sticker", + "useAsEmoji": "Gebruik als emoji", + "stickerPackNameAlreadyExists": "Stickerpakketnaam bestaat al", + "newStickerPack": "Nieuw stickerpakket", + "stickerPackName": "Stickerpakketnaam", + "attribution": "Toeschrijving", + "skipChatBackup": "Chatback-up overslaan", + "skipChatBackupWarning": "Weet je het zeker? Zonder chat back-up verlies je toegang tot je berichten als je van apparaat wisselt.", + "changedTheChatDescription": "{username} heeft het onderwerp gewijzigd", + "changedTheChatName": "{username} heeft de chatnaam gewijzigd", + "noMoreResultsFound": "Geen resultaten meer gevonden", + "chatSearchedUntil": "Chat doorzocht tot {time}", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "federationBaseUrl": "Federatie Basis URL", + "clientWellKnownInformation": "Client-Well-Known Informatie:", + "baseUrl": "Basis URL", + "identityServer": "Identiteit Server:", + "versionWithNumber": "Versie: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "Logs", + "advancedConfigs": "Geavanceerde configuratie", + "advancedConfigurations": "Geavanceerde configuraties", + "signIn": "Log in", + "createNewAccount": "Registreer nieuw account", + "signUpGreeting": "FluffyChat is decentraal! Kies een server waar je wil voor jouw account en laten we gaan!", + "signInGreeting": "Heb je al een Matrix account? Welkom terug! Kies jouw server en log in.", + "theProcessWasCanceled": "Het proces is geannuleerd.", + "join": "Deelnemen", + "searchOrEnterHomeserverAddress": "Zoek of voer serveradres in", + "matrixId": "Matrix-ID", + "setPowerLevel": "Rechtenniveau instellen", + "makeModerator": "Maak moderator", + "makeAdmin": "Maak beheerder", + "removeModeratorRights": "Verwijder moderator-rechten", + "removeAdminRights": "Verwijder beheerder-rechten", + "powerLevel": "Rechtenniveau", + "setPowerLevelDescription": "Rechtenniveau's definiëren wat een persoon mag doen in deze chat en variëren meestal tussen 0 en 100.", + "owner": "Eigenaar", + "mute": "Demp", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "createNewChat": "Creëer nieuw chat", + "reset": "Resetten", + "supportFluffyChat": "FluffyChat steunen", + "support": "Steunen", + "setLowPriority": "Lage prioriteit instellen", + "unsetLowPriority": "Lage prioriteit uitschakelen", + "playSoundOnNotification": "Meldingsgeluid afspelen", + "addTag": "Tag toevoegen", + "removeTag": "Tag verwijderen", + "tagName": "Tagnaam", + "createNewTag": "Nieuwe tag maken", + "discardEdits": "Je hebt wijzigingen die nog niet zijn opgeslagen. Wil je de wijzigingen ongedaan maken?", + "@discardEdits": { + "type": "String", + "placeholders": {} + }, + "hideRoomsInSpaces": "Kamers in een space verbergen", + "possibleByYou": "Deze versie was alleen mogelijk dankzij jullie steun. FluffyChat blijft gratis, open source en volledig door de community gedreven.", + "showThumbnailsInTimeline": "Miniatuurafbeeldingen van foto’s en video’s weergeven", + "appSubtitle": "Veilige [matrix]-communicatie", + "appDescription": "Communiceer op een eenvoudige en voor iedereen toegankelijke manier via het gedecentraliseerde [matrix]-netwerk.", + "interactiveVerification": "Interactieve verificatie", + "interactiveVerificationDescription": "Als jullie naast elkaar zitten of via een beveiligd kanaal communiceren, kun je alle apparaten in één keer verifiëren door een beveiligingscode of emoji’s te vergelijken.", + "countUnverifiedDevices": "{count} niet-geverifieerde apparaten in de chat.", + "@countUnverifiedDevices": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "encryptedMessage": "Versleuteld bericht", + "unencryptedMessage": "Niet-versleuteld bericht", + "publicKey": "Publieke sleutel: {key}", + "@publicKey": { + "type": "String", + "placeholders": { + "key": { + "type": "String" + } + } + }, + "deviceIdentityKey": "Apparaatidentificatiesleutel", + "showMore": "Toon meer", + "showLess": "Toon minder", + "messageCanOnlyBeReadByUser": "Je bericht is eind-tot-eind versleuteld en kan alleen gelezen worden door deze persoon:", + "messageCanOnlyBeReadByUsers": "Je bericht eind-tot-eind versleuteld en kan alleen gelezen worden door deze personen:", + "restoreBootstrapEmptyDevicesDescription": "Voer je wachtwoordzin of herstelsleutel in om dit apparaat te verifiëren en krijg toegang tot je berichten back-up.", + "@restoreBootstrapEmptyDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "restoreBootstrapDevicesDescription": "Kies een van je andere apparaten om deze sessie te verifiëren:", + "@restoreBootstrapDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "resetAccount": "Account resetten", + "@resetAccount": { + "type": "String", + "placeholders": {} + }, + "restoreCryptoIdentity": "Crypto-identiteit herstellen", + "@restoreCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "resetCryptoIdentity": "Crypto-identiteit resetten", + "@resetCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "setUpCryptoIdentity": "Crypto-identiteit instellen", + "@setUpCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "waitingForKeys": "Wachten op sleutels... Houd het andere apparaat alsjeblieft actief.", + "@waitingForKeys": { + "type": "String", + "placeholders": {} + }, + "noKeysTransmitted": "Er zijn geen sleutels verzonden. Probeer het opnieuw.", + "@noKeysTransmitted": { + "type": "String", + "placeholders": {} + }, + "unlock": "Ontgrendelen", + "@unlock": { + "type": "String", + "placeholders": {} + }, + "openFile": "Bestand openen", + "@openFile": { + "type": "String", + "placeholders": {} + }, + "resetAccountWarning": "Als je je account reset, verlies je voor altijd de toegang tot je oude berichten. Alle huidige apparaten moeten ook opnieuw geverifieerd worden. Voer deze actie alleen uit als je geen andere apparaten meer hebt om je sessie mee te verifiëren én je je herstelsleutel en wachtwoordzin kwijt bent!", + "@resetAccountWarning": { + "type": "String", + "placeholders": {} + }, + "newPassphraseDescription": "FluffyChat gebruikt eind-tot-eind versleuteling. Om je berichten niet te verliezen, kies alsjeblieft een sterke wachtwoordzin. Hiermee beveilig je je crypto-identiteit en je versleutelde berichten back-up.", + "@newPassphraseDescription": { + "type": "String", + "placeholders": {} + }, + "newPassphrase": "Nieuwe wachtwoordzin", + "@newPassphrase": { + "type": "String", + "placeholders": {} + }, + "repeatPassphrase": "Herhaal wachtwoordzin", + "@repeatPassphrase": { + "type": "String", + "placeholders": {} + }, + "passphrasesMatch": "Wachtwoordzinnen komen overeen", + "@passphrasesMatch": { + "type": "String", + "placeholders": {} + }, + "passphraseLengthRequirement": "Minstens 12 tekens lang.", + "@passphraseLengthRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseUpperAndLowerCaseRequirement": "Bevat hoofdletter en kleine letters.", + "@passphraseUpperAndLowerCaseRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseSpecialCharactersRequirement": "Bevat speciale tekens.", + "@passphraseSpecialCharactersRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseNumberRequirement": "Bevat een nummer.", + "@passphraseNumberRequirement": { + "type": "String", + "placeholders": {} + }, + "storeRecoveryKeyDescription": "Let op, bewaar je herstelsleutel zorgvuldig zodat je je versleutelde berichten en crypto-identiteit kan herstellen.", + "@storeRecoveryKeyDescription": { + "type": "String", + "placeholders": {} + }, + "saveAsFile": "Bewaar als bestand", + "@saveAsFile": { + "type": "String", + "placeholders": {} + }, + "youAreReadyToStart": "Je bent klaar om te beginnen!", + "noUserKeyFound": "Geen persoonssleutel gevonden", + "@noUserKeyFound": { + "type": "String", + "placeholders": {} + }, + "knownSince": "Bekend sinds: {date}", + "@knownSince": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + } + } + }, + "unsignedDevice": "Apparaat zonder verificatie", + "@unsignedDevice": { + "type": "String", + "placeholders": {} + }, + "signedDevice": "Geverifieerd apparaat", + "@signedDevice": { + "type": "String", + "placeholders": {} + }, + "noCurve25519KeyFound": "Geen curve25519-sleutel gevonden", + "@noCurve25519KeyFound": { + "type": "String", + "placeholders": {} + }, + "messageNotDecryptable": "Bericht niet te ontsleutelen", + "today": "Vandaag", + "sending": "Verzenden", + "generatingThumbnail": "Miniatuur-afbeelding genereren", + "encrypting": "Versleutelen", + "uploading": "Uploaden", + "edited": "(bewerkt)", + "couldNotBeSent": "Kan niet worden gestuurd", + "yesterday": "Gisteren", + "resetRecoveryKey": "Herstelsleutel resetten", + "pleaseEnter6Digits": "Voer 6 getallen in om de app-vergrendeling in te schakelen.", + "disableAppLock": "App-vergrendeling uitschakelen", + "disableAppLockAreYouSure": "Weet je zeker dat je de app-vergrendeling wilt uitschakelen?", + "enableBiometrics": "Biometrische authenticatie inschakelen", + "disableBiometrics": "Biomedische authenticatie uitschakelen", + "biometricsDescription": "Met biometrische authenticatie kan je de app ontgrendelen met je gezicht of vingerafdruk. De mogelijkheden hangen af van je apparaat.", + "useAppLock": "App-vergrendeling gebruiken", + "unlockWithBiometrics": "Met biometrische authenticatie ontgrendelen", + "resetPin": "Pincode resetten", + "forwardCountMessages": "{count, plural, =1{Een bericht} other{{count} berichten}} doorsturen?", + "@forwardCountMessages": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "editImage": "Afbeelding wijzigen", + "@editImage": { + "type": "String", + "placeholders": {} + }, + "rotateLeft": "Linksom draaien", + "@rotateLeft": { + "type": "String", + "placeholders": {} + }, + "rotateRight": "Rechtsom draaien", + "@rotateRight": { + "type": "String", + "placeholders": {} + }, + "mirror": "Spiegelen", + "@mirror": { + "type": "String", + "placeholders": {} + }, + "save": "Opslaan", + "@save": { + "type": "String", + "placeholders": {} + }, + "draw": "Tekenen", + "@draw": { + "type": "String", + "placeholders": {} + }, + "undo": "Herstel", + "@undo": { + "type": "String", + "placeholders": {} + }, + "clear": "Ongedaan maken", + "@clear": { + "type": "String", + "placeholders": {} + }, + "eraser": "Gummen", + "@eraser": { + "type": "String", + "placeholders": {} + }, + "crop": "Bijsnijden", + "@crop": { + "type": "String", + "placeholders": {} + }, + "loadingMessages": "Berichten laden...", + "buildDoesNotSupportFirebase": "Deze versie ondersteunt geen firebase cloud messaging.", + "unableToRegisterDeviceForFirebase": "Niet in staat om het apparaat te registreren voor firebase cloud messaging.", + "unifiedPushDistributors": "Unified Push diensten:", + "accountsAndSettings": "Accounts en instellingen", + "@accountsAndSettings": { + "type": "String", + "placeholders": {} + }, + "sendingFilesDoNotExit": "{count} bestanden sturen... Even geduld ajb!", + "@sendingFilesDoNotExit": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "compressingVideo": "Video comprimeren...", + "doubleTapToReact": "Dubbele tik om te reageren", + "doubleTapToReactDescription": "Dubbele tik op een bericht om te reageren of tekst te selecteren", + "doubleTapReaction": "Dubbele tik reactie", + "shareCrashReports": "Foutmeldingen delen", + "shareCrashReportsDescription": "Automatisch foutmeldingen delen met de ontwikkelaars?", + "countActiveCallMembers": "{count} actieve oproep deelnemers", + "@countActiveCallMembers": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "enterCall": "Oproep opnemen", + "videoCallsBetaWarning": "Video oproepen zijn een beta functie. Er zijn mogelijk fouten of onverwachte reacties. We horen graag je feedback.", + "noDevicesFound": "Geen apparaten gevonden", + "incomingCall": "Inkomende oproep", + "videoCall": "Video oproepen", + "voiceCall": "Spraakoproep", + "missedCall": "Oproep gemist", + "callBack": "Terugbellen", + "hangUp": "Ophangen", + "waitingForParticipant": "Wachten op deelnemer...", + "decline": "Weigeren", + "startCall": "Start een oproep", + "selectCamera": "Camera selecteren", + "selectMicrophone": "Microfoon selecteren", + "selectSpeaker": "Speaker selecteren", + "toggleMicrophone": "Microfoon aan/uit", + "toggleCamera": "Camera aan/uit", + "startScreensharing": "Schermdelen starten", + "stopScreensharing": "Schermdelen stoppen", + "raiseHand": "Hand opsteken", + "stopRaiseHand": "Hand omlaag", + "preferSpeaker": "Voorkeur aan speaker", + "unexpectedErrorOccurded": "Helaas is er een onverwachte fout opgetreden: {msg}", + "@unexpectedErrorOccurded": { + "placeholders": { + "msg": { + "type": "String" + } + } + }, + "incomingCallFrom": "Inkomende oproep van {user}", + "@incomingCallFrom": { + "placeholders": { + "user": { + "type": "String" + } + } + } +} diff --git a/lib/l10n/intl_pl.arb b/lib/l10n/intl_pl.arb new file mode 100644 index 0000000..c711c43 --- /dev/null +++ b/lib/l10n/intl_pl.arb @@ -0,0 +1,2711 @@ +{ + "@@locale": "pl", + "@@last_modified": "2021-08-14 12:41:09.943634", + "about": "O", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Akceptuj", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} zaakceptował(a) zaproszenie", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Konto", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} aktywował(a) szyfrowanie od końca do końca", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "Dodaj adres email", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "admin": "Administrator", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "alias", + "@alias": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} odebrał/-a połączenie", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Każdy może dołączyć", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "archive": "Archiwum", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Czy goście mogą dołączyć?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Czy na pewno?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Czy na pewno chcesz się wylogować?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Aby zalogować inną osobę, proszę wpisać hasło przechowywania lub klucz odzyskiwania.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Zaakceptować tą prośbę weryfikacji od {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "badServerLoginTypesException": "Serwer obsługuje typy logowania:\n{serverVersions}\nAle ta aplikacja obsługuje tylko:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "banFromChat": "Ban w czacie", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Zbanowany/-a", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} zbanował/-a {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Zablokuj urządzenie", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "Zablokowane", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "Anuluj", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "changeDeviceName": "Zmień nazwę urządzenia", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} zmienił/-a zdjęcie profilowe", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} zmienił(a) uprawnienia w czacie", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} zmienił(a) swoją nazwę wyświetlaną na '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} zmienił(a) zasady dostępu dla gości", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} zmienił(a) zasady dostępu dla gości na {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} zmienił(a) widoczność historii", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} zmienił(a) widoczność historii na {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} zmienił(a) zasady wejścia", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} zmienił(a) zasady wejścia na {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} zmienił(a) zdjęcie profilowe", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} zmienił(a) alias pokoju", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} zmienił(a) link z zaproszeniem do pokoju", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Zmień hasło", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Zmień serwer domyślny", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Zmień swój styl", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Zmień nazwę grupy", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "Szyfrowanie zostało uszkodzone", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Czat", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Kopia zapasowa czatów", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Szczegóły czatu", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Czaty", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Wybierz silne hasło", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Wyczyść archiwum", + "close": "Zamknij", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "Zbanuj użytkownika w tym pokoju", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_html": "Wyślij tekst sformatowany w HTML", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Zaproś użytkownika do pokoju", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "Dołącz do podanego pokoju", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "Usuń tego użytkownika z tego pokoju", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "Opuść ten pokój", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "Opisz siebie", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_myroomavatar": "Ustaw swoje zdjęcie w tym pokoju (przez mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "Ustaw swoją nazwę wyświetlaną w tym pokoju", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "Ustaw poziom uprawnień tego użytkownika (domyślnie: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "Wyślij niesformatowany tekst", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "Wyślij odpowiedź jako reakcję", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_send": "Wyślij tekst", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_unban": "Odbanuj użytkownika w tym pokoju", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandInvalid": "Nieprawidłowe polecenie", + "@commandInvalid": { + "type": "String" + }, + "commandMissing": "{command} nie jest poleceniem.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "compareEmojiMatch": "Porównaj emoji", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Porównaj cyfry", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Kontakt został zaproszony do grupy", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Skopiowano do schowka", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Kopiuj", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Skopiuj do schowka", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Nie można odszyfrować wiadomości: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count} uczestników", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Stwórz", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} utworzył/-a czat", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "currentlyActive": "Obecnie aktywny/-a", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Ciemny", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date} {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "To zdezaktywuje twoje konto. To jest nieodwracalne! Na pewno chcesz to zrobić?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "delete": "Usuń", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Usuń konto", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Usuń wiadomość", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Urządzenia", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Czaty bezpośrednie", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Nazwa wyświetlana została zmieniona", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Pobierz plik", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "Edytuj", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Edytuj nazwę wyświetlaną", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Zmień aliasy pokoju", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Emotikon już istnieje!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Nieprawidłowy kod emotikonu!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Skrócony kod emotikonu", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Pusty czat", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Włącz paczkę emotikonów globalnie", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Nie będziesz już mógł wyłączyć szyfrowania. Jesteś pewny?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Szyfrowane", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Szyfrowanie", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Szyfrowanie nie jest włączone", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} zakończył/-a połączenie", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Wpisz adres e-mail", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "forward": "Przekaż", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Od dołączenia", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Od zaproszenia", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Grupa", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "Grupa jest publiczna", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Grupa z {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Goście są zakazani", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Goście mogą dołączyć", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} wycofał/-a zaproszenie dla {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Pomoc", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Ukryj nieznane wdarzenia", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Ignorowani użytkownicy", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Nacisnąłem na link", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Złe hasło bezpieczeństwa lub klucz odzyskiwania", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Zaproś kontakt", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Zaproś kontakty do {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "Zaproszono", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username} zaprosił/-a {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Tylko zaproszeni użytkownicy", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} zaprosił/-a Cię do FluffyChat.\n1. Odwiedź fluffychat.im i zainstaluj aplikację\n2. Zarejestuj się lub zaloguj\n3. Otwórz link zaproszenia:\n{link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "pisze…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} dołączył/-a do czatu", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Dołącz do pokoju", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username} wyrzucił/-a {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} wyrzucił/-a i zbanował/-a {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Wyrzuć z czatu", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Ostatnio widziano {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Opuść", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Opuścił/-a czat", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Jasny", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Załaduj jeszcze {count} uczestników", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "Ładowanie… Proszę czekać.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Załaduj więcej…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "login": "Zaloguj się", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Zaloguj się do {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Wyloguj się", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Wzmianka", + "@mention": { + "type": "String", + "placeholders": {} + }, + "moderator": "Moderator", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Wycisz czat", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Nowa rozmowa", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Nowa wiadomość we FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Nowa prośba o weryfikację!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "Dalej", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "Nie", + "@no": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Możesz aktywować szyfrowanie dopiero kiedy pokój nie będzie publicznie dostępny.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Wygląda na to, że Twoje urządzenie nie obsługuje Firebase Cloud Messaging. Aby wciąż otrzymywać powiadomienia push, zalecamy istalację ntfy. Używając ntfy lub inengo zunifikowanego dostawcy powiadomień push, możesz bezpiecznie otrzymywać takowe powiadomienia. Ntfy można pobrać ze sklepu Google Play Store lub z F-Droid.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "Nie dodałeś/-aś jeszcze sposobu odzyskiwania swojego hasła.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Brak uprawnień", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Nie znaleziono pokojów…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Powiadomienia", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Ojej! Coś poszło nie tak…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Otwórz aplikację by odczytać wiadomości", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Otwórz aparat", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "password": "Hasło", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Hasło zostało zmienione", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "pin": "Przypnij", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Wprowadź swoje hasło", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Wpisz swoją nazwę użytkownika", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Wykonaj instrukcje na stronie internetowej i naciśnij „dalej”.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Publiczne pokoje", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} usunął/-ęła zdarzenie", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "rejectedTheInvitation": "{username} odrzucił/-a zaproszenie", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Usuń", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Usuń wszystkie inne urządzenia", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Odbanuj w czacie", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "reply": "Odpowiedz", + "@reply": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Wersja pokoju", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "send": "Wyślij", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Wyślij wiadomość", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Wyślij plik", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Wyślij obraz", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username} wysłał/-a plik", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username} wysłał/-a plik dżwiękowy", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username} wysłał/-a zdjęcie", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} wysłał/-a naklejkę", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} wysłał/-a film", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "setAsCanonicalAlias": "Ustaw jako główny alias", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "setStatus": "Ustaw status", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Ustawienia", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Udostępnij", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} udostępnił/-a swoją lokalizację", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sourceCode": "Kod żródłowy", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Jak się masz dziś?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Synchronizowanie… Proszę czekać.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "System", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Spróbuj wysłać ponownie", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} odbanował/-a {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unknownDevice": "Nieznane urządzenie", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Nieznany algorytm szyfrowania", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Nieznane zdarzenie '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Wyłącz wyciszenie", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Odepnij", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} oraz {count} pozostałych pisze…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} i {username2} piszą…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} pisze…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪 {username} opuścił/-a czat", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} wysłał/-a zdarzenie {type}", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verified": "Zweryfikowane", + "@verified": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Widoczność historii czatu", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Widoczny dla wszystkich użytkowników", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Widoczne dla każdego", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Wiadomość głosowa", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Kto może dołączyć do tej grupy", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Napisz wiadomość…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Tak", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Ty", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Nie uczestniczysz już w tym czacie", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Zostałeś/-aś zbanowany/-a w tym czacie", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "ignore": "Ignoruj", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Brak połączenia z serwerem", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "obtainingLocation": "Uzyskiwanie lokalizacji…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "addAccount": "Dodaj konto", + "or": "Lub", + "@or": { + "type": "String", + "placeholders": {} + }, + "participant": "Uczestnik", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Nie pamiętam hasła", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Proszę kliknij w odnośnik wysłany w wiadomości e-mail, aby kontynuować.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Usuń swoje zdjęcie", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Zamień pokój na nowszą wersję", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Zgłoś wiadomość", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Zapisz plik", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "security": "Bezpieczeństwo", + "@security": { + "type": "String", + "placeholders": {} + }, + "search": "Szukaj", + "@search": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Wyślij jako tekst", + "@sendAsText": { + "type": "String" + }, + "sendAudio": "Wyślij dźwięk", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Wyślij wiadomości", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Wyślij film", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} rozpoczął/-ęła rozmowę", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "yourPublicKey": "Twój klucz publiczny", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Odzyskiwanie hasła", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "openInMaps": "Otwórz w mapach", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "link": "Link", + "roomHasBeenUpgraded": "Pokój został zaktualizowany", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "repeatPassword": "Powtórz hasło", + "all": "Wszystkie", + "@all": { + "type": "String", + "placeholders": {} + }, + "appLock": "Blokada aplikacji", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Zgadzają się", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "sendOnEnter": "Wyślij enterem", + "autoplayImages": "Automatycznie odtwarzaj animowane naklejki i emotikony", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "cantOpenUri": "Nie można otworzyć linku {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "configureChat": "Konfiguruj czat", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "Usługi lokalizacji są wyłączone. Proszę włącz je aby móc udostępnić swoją lokalizację.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "oneClientLoggedOut": "Jedno z twoich urządzeń zostało wylogowane", + "privacy": "Prywatność", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Nie zgadzają się", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "Treść została zgłoszona administratorom serwera", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Edytuj zdjęcie pokoju", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "fontSize": "Rozmiar czcionki", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "groups": "Grupy", + "@groups": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "Brak uprawnień. Proszę zezwól aplikacji na dostęp do lokalizacji aby móc ją udostępnić.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "messages": "Wiadomości", + "@messages": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Podaj swój pin", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "reason": "Powód", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactMessage": "Usuń wiadomość", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Dzięki tym adresom możesz odzyskać swoje hasło.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "Ustaw jako publiczną", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "shareLocation": "Udostępnij lokalizację", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "skip": "Pomiń", + "@skip": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Nazwa przestrzeni", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "scanQrCode": "Skanuj kod QR", + "createNewSpace": "Nowa przestrzeń", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "Dodaj do przestrzeni", + "changeYourAvatar": "Zmień swoje zdjęcie", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "commandHint_clearcache": "Wyczyść pamięć podręczną", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_create": "Stwórz pusty czat\nUżyj --no-encryption by wyłączyć szyfrowanie", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_dm": "Rozpocznij czat bezpośredni\nUżyj --no-encryption by wyłączyć szyfrowanie", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "editBlockedServers": "Edytuj zablokowane serwery", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Włącz szyfowanie", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Domyślny poziom uprawnień dla nowych użytkowników", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "ok": "Ok", + "@ok": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Ojej! Wystąpił błąd podczas ustawiania powiadomień push.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "reject": "Odrzuć", + "@reject": { + "type": "String", + "placeholders": {} + }, + "status": "Status", + "@status": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Zbyt wiele żądań. Proszę spróbować później!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "commandHint_discardsession": "Odrzuć sesję", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "warning": "Uwaga!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "messageInfo": "Informacje o wiadomości", + "time": "Czas", + "waitingPartnerAcceptRequest": "Oczekiwanie na zaakceptowanie prośby przez drugą osobę…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Oczekiwanie na zaakceptowanie emoji przez drugą osobę…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Wybierz kod dostępu", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "unblockDevice": "Odblokuj urządzenie", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Dlaczego chcesz to zgłosić?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "removeFromSpace": "Usuń z przestrzeni", + "errorObtainingLocation": "Błąd w ustalaniu lokalizacji: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} wysłał/-a informacje o połączeniu", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "verifyStart": "Rozpocznij weryfikację", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Pomyślnie zweryfikowano!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Weryfikowanie innego konta", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Oczekiwanie na zaakceptowanie numerów przez drugą osobę…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "sender": "Nadawca", + "openGallery": "Otwórz galerię", + "hydrate": "Przywracanie z pliku kopii zapasowej", + "noMatrixServer": "{server1} nie jest serwerem Matriksa, czy chcesz zamiast niego użyć {server2}?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "numUsersTyping": "{count} użytkowników pisze…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "onlineKeyBackupEnabled": "Kopia zapasowa kluczy online jest włączona", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "submit": "Odeślij", + "@submit": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Wysłaliśmy Ci wiadomość e-mail", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "unverified": "Niezweryfikowane", + "whoCanPerformWhichAction": "Kto może wykonywać jakie czynności", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "reportUser": "Zgłoś użytkownika", + "markAsRead": "Oznacz jako przeczytane", + "passphraseOrKey": "fraza dostępu lub klucz odzyskiwania", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "supposedMxid": "To powinno być {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "commandHint_markasdm": "Oznacz jako pokój wiadomości bezpośrednich dla podanego Matrix ID", + "confirmMatrixId": "Potwierdź swój identyfikator Matrix w celu usunięcia konta.", + "commandHint_markasgroup": "Oznacz jako grupę", + "noEmotesFound": "Nie znaleziono żadnych emotikonów. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "dehydrate": "Eksportuj sesję i wymaż urządzenie", + "dehydrateWarning": "Tego nie można cofnąć. Upewnij się, że plik kopii zapasowej jest bezpiecznie przechowywany.", + "unsupportedAndroidVersion": "Nieobsługiwana wersja systemu Android", + "pinMessage": "Przypnij do pokoju", + "confirmEventUnpin": "Czy na pewno chcesz trwale odpiąć wydarzenie?", + "youJoinedTheChat": "Dołączono do czatu", + "user": "Użytkownik", + "custom": "Własne", + "newSpace": "Nowa przestrzeń", + "fileIsTooBigForServer": "Nie udało się wysłać! Ten serwer obsługuje załączniki o maksymalnej wielkości {max}.", + "youBannedUser": "Zbanowałeś/-aś {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "users": "Użytkownicy", + "countFiles": "{count} plików", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "noOtherDevicesFound": "Nie znaleziono innych urządzeń", + "encryptThisChat": "Zaszyfruj ten czat", + "disableEncryptionWarning": "Ze względów bezpieczeństwa nie można wyłączyć szyfrowania w czacie, w którym zostało ono wcześniej włączone.", + "noKeyForThisMessage": "Może się to zdarzyć, jeśli wiadomość została wysłana przed zalogowaniem się na to konto na tym urządzeniu.\n\nMożliwe jest również, że nadawca zablokował Twoje urządzenie lub coś poszło nie tak z połączeniem internetowym.\n\nJesteś w stanie odczytać wiadomość na innej sesji? W takim razie możesz przenieść z niej wiadomość! Wejdź w Ustawienia > Urządzenia i upewnij się, że Twoje urządzenia zweryfikowały się wzajemnie. Gdy następnym razem otworzysz pokój i obie sesje będą włączone, klucze zostaną przekazane automatycznie.\n\nNie chcesz stracić kluczy podczas wylogowania lub przełączania urządzeń? Upewnij się, że w ustawieniach masz włączoną kopię zapasową czatu.", + "sorryThatsNotPossible": "Przepraszamy... to nie jest możliwe", + "noBackupWarning": "Uwaga! Bez włączenia kopii zapasowej czatu, stracisz dostęp do swoich zaszyfrowanych wiadomości. Zaleca się włączenie kopii zapasowej czatu przed wylogowaniem.", + "commandHint_googly": "Wyślij kręcące się oczka", + "storeInAndroidKeystore": "Przechowaj w Android KeyStore", + "commandHint_cuddle": "Wyślij uścisk", + "googlyEyesContent": "{senderName} wysyła ci kręcące się oczka", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "cuddleContent": "{senderName} cię uściska", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "hugContent": "{senderName} przytula cię", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_hug": "Wyślij przytulasa", + "reactedWith": "{sender} zareagował/-a z {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "emojis": "Emoji", + "unsupportedAndroidVersionLong": "Ta funkcja wymaga nowszej wersji systemu Android. Sprawdź aktualizacje lub wsparcie Lineage OS.", + "youRejectedTheInvitation": "Odrzucono zaproszenie", + "youAcceptedTheInvitation": "👍 Zaakceptowałeś/-aś zaproszenie", + "youHaveWithdrawnTheInvitationFor": "Wycofano zaproszenie dla {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 Zostałeś/-aś zaproszony/-a przez {user}", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 Zaprosiłeś/-aś {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKicked": "👞 Wyrzuciłeś/-aś {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKickedAndBanned": "🙅 Wyrzuciłeś/-aś i zbanowałeś/-aś {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "Odbanowałeś/-aś {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "storeInAppleKeyChain": "Przechowaj w pęku kluczy Apple", + "storeSecurlyOnThisDevice": "Przechowaj bezpiecznie na tym urządzeniu", + "whyIsThisMessageEncrypted": "Dlaczego nie można odczytać tej wiadomości?", + "doNotShowAgain": "Nie pokazuj ponownie", + "wasDirectChatDisplayName": "Pusty czat (wcześniej {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "newSpaceDescription": "Przestrzenie pozwalają na konsolidację czatów i budowanie prywatnych lub publicznych społeczności.", + "reopenChat": "Otwórz ponownie czat", + "fileHasBeenSavedAt": "Plik został zapisany w ścieżce {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "addToBundle": "Dodaj do pakietu", + "bundleName": "Nazwa pakietu", + "editBundlesForAccount": "Edytuj pakiety dla tego konta", + "jumpToLastReadMessage": "Przejdź do ostatnio przeczytanej wiadomości", + "readUpToHere": "Czytaj do tego miejsca", + "jump": "Przejdź", + "removeFromBundle": "Usuń z tego pakietu", + "openLinkInBrowser": "Otwórz link w przeglądarce", + "reportErrorDescription": "😭 O nie! Coś poszło nie tak. Spróbuj ponownie później. Jeśli chcesz, możesz zgłosić ten błąd autorom programu.", + "setColorTheme": "Ustal styl kolorów:", + "tryAgain": "Spróbuj ponownie", + "messagesStyle": "Wiadomości:", + "chatDescription": "Opis czatu", + "invalidServerName": "Nieprawidłowa nazwa serwera", + "chatPermissions": "Uprawnienia w czacie", + "setChatDescription": "Ustaw opis czatu", + "importFromZipFile": "Zaimportuj z pliku .zip", + "redactedBy": "Usunięte przez {username}", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "optionalRedactReason": "(Opcjonalnie) Powód usunięcia tej wiadomości...", + "exportEmotePack": "Eksportuj paczkę emoji jako .zip", + "redactedByBecause": "Usunięte przez {username} z powodu „{reason}”", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "redactMessageDescription": "Wiadomość zostanie usunięta u wszystkich uczestników tej rozmowy. Tego nie można cofnąć.", + "invalidInput": "Nieprawidłowe dane!", + "report": "zgłoś", + "wrongPinEntered": "Wprowadzono nieprawidłowy kod pin! Spróbuj ponownie za {seconds} sekund...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "sendTypingNotifications": "Wysyłaj powiadomienie o pisaniu", + "inviteGroupChat": "📨 Zaproszenie do rozmowy grupowej", + "importEmojis": "Zaimportuj emoji", + "noChatDescriptionYet": "Nie utworzono jeszcze opisu czatu.", + "notAnImage": "To nie jest plik obrazu.", + "chatDescriptionHasBeenChanged": "Zmieniono opis czatu", + "shareInviteLink": "Udostępnij link z zaproszeniem", + "emoteKeyboardNoRecents": "Tutaj pojawiają się ostatnio używane emotikony...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "replace": "Zastąp", + "createGroup": "Utwórz grupę", + "importNow": "Zaimportuj teraz", + "invite": "Zaproszenie", + "block": "Zablokuj", + "blockedUsers": "Zablokowani użytkownicy", + "blockUsername": "Ignoruj użytkownika", + "select": "Zaznacz", + "calls": "Połączenia", + "learnMore": "Dowiedz się więcej", + "groupName": "Nazwa grupy", + "newPassword": "Nowe hasło", + "thisDevice": "To urządzenie:", + "gallery": "Galeria", + "files": "Pliki", + "discover": "Odkrywaj", + "nothingFound": "Nic nie odnaleziono...", + "stickers": "Naklejki", + "noChatsFoundHere": "Nie jeszcze ma żadnych czatów. Wciśnij poniższy przycisk, aby rozpocząć nowy czat. ⤵️", + "hideRedactedMessagesBody": "Usunięte wiadomości nie będą widoczne w czacie.", + "passwordRecoverySettings": "Ustawienia odzyskiwania hasła", + "archiveRoomDescription": "Czat zostanie przeniesiony do archiwum. Pozostali użytkownicy będą mogli zobaczyć, że opuściłeś/-aś czat.", + "yourGlobalUserIdIs": "Twój globalny identyfikator to: ", + "canceledKeyVerification": "{sender} anulował/-a weryfikację kluczy", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "{sender} jest gotowy/-a do weryfikacji kluczy", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "commandHint_ignore": "Ignoruj podany identyfikator Matrix", + "commandHint_unignore": "Przestań ignorować podany identyfikator Matrix", + "changeTheChatPermissions": "Zmień uprawnienia w czacie", + "changelog": "Lista zmian", + "inviteOtherUsers": "Zaproś innych użytkowników do tego czatu", + "blockListDescription": "Możesz zablokować uciążliwych użytkowników. Nie będziesz widzieć ani otrzymywać wiadomości oraz zaproszeń od nich.", + "formattedMessages": "Sformatowane wiadomości", + "banUserDescription": "Użytkownik zostanie zbanowany w czacie i nie będzie w stanie dołączyć do czatu do momentu odbanowania.", + "sendReadReceipts": "Wysyłaj powiadomienia o przeczytaniu wiadomości", + "verifyOtherDevice": "🔐 Zweryfikuj inne urządzenie", + "acceptedKeyVerification": "{sender} zaakceptował/-a weryfikację kluczy", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "databaseMigrationTitle": "Baza danych jest zoptymalizowana", + "hasKnocked": "{user} zapukał-/a", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "userLevel": "{level} - Użytkownik", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeTheVisibilityOfChatHistory": "Zmień widoczność historii czatu", + "sendImages": "Wyślij {count} obrazów", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "knock": "Zapukaj", + "restoreSessionBody": "Aplikacja spróbuje teraz odzyskać Twoją sesję z kopii zapasowej. Prosimy zgłosić ten błąd autorom aplikacji na {url}. Treść błędu to: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "startedKeyVerification": "{sender} rozpoczął/-ęła weryfikację kluczy", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "sendTypingNotificationsDescription": "Pozostali uczestnicy czatu mogą widzieć kiedy piszesz nową wiadomość.", + "sendReadReceiptsDescription": "Pozostali uczestnicy czatu mogą widzieć zobaczyć kiedy przeczytasz wiadomość.", + "noDatabaseEncryption": "Szyfrowanie bazy danych nie jest obsługiwane na tej platformie", + "thereAreCountUsersBlocked": "Obecnie jest {count} zablokowanych użytkowników.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "goToSpace": "Przejdź do przestrzeni {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "markAsUnread": "Oznacz jako nieprzeczytane", + "moderatorLevel": "{level} - Moderator", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "adminLevel": "{level} - Administrator", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "sendRoomNotifications": "Wysyłaj powiadomienia @room", + "chatPermissionsDescription": "Ustal jaki poziom uprawnień jest wymagany dla określonych czynności w czacie. Poziomy uprawnień 0, 50 i 100 zwykle dotyczą odpowiednio użytkowników, moderatorów i administratorów, ale możliwa jest dowolna gradacja.", + "changeTheCanonicalRoomAlias": "Zmień główny publiczny czatu", + "changeTheDescriptionOfTheGroup": "Zmień opis czatu", + "sendCanceled": "Anulowano wysyłanie", + "doesNotSeemToBeAValidHomeserver": "Wydaje się nie być kompatybilnym serwerem domowym. Niepoprawny adres URL?", + "calculatingFileSize": "Obliczanie rozmiaru pliku...", + "blur": "Rozmazanie:", + "opacity": "Przezroczystość:", + "setWallpaper": "Ustaw tapetę", + "manageAccount": "Zarządzaj kontem", + "noContactInformationProvided": "Serwer nie dostarcza żadnych poprawnych danych kontaktowych", + "contactServerAdmin": "Skontaktuj się z administratorem serwera", + "compress": "Skompresuj", + "pleaseFillOut": "Proszę wypełnić", + "invalidUrl": "Niepoprawny adres URL", + "unableToJoinChat": "Nie udało się dołączyć do czatu. Rozmowa mogła zostać zakończona przez drugą stronę.", + "aboutHomeserver": "O {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "updateInstalled": "🎉 Zainstalowano aktualizację do wersji {version}!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "continueText": "Kontynuuj", + "noticeChatBackupDeviceVerification": "Uwaga: Urządzenia dodane do kopii zapasowej czatu automatycznie zostają zweryfikowane.", + "oneOfYourDevicesIsNotVerified": "Jedno z Twoich urządzeń nie jest zweryfikowane", + "supportPage": "Strona obsługi użytkownika", + "serverInformation": "Informacje o serwerze:", + "name": "Nazwa", + "website": "Strona internetowa", + "contactServerSecurity": "Skontaktuj się z działem bezpieczeństwa serwera", + "version": "Wersja", + "accessAndVisibility": "Dostęp i widoczność", + "customEmojisAndStickers": "Własne emotikony i naklejki", + "globalChatId": "Globalny identyfikator czatu", + "accessAndVisibilityDescription": "Kto może dołączyć do tego czatu i w jaki sposób można ten czat znaleźć.", + "customEmojisAndStickersBody": "Dodaj lub podziel się własnymi emotikonami i naklejkami, które będą mogły być użyte w dowolnym czacie.", + "hideRedactedMessages": "Nie pokazuj usuniętych wiadomości", + "hideInvalidOrUnknownMessageFormats": "Ukryj niepoprawne lub nieznane typy wiadomości", + "pushNotificationsNotAvailable": "Powiadomienia push nie są dostępne", + "noUsersFoundWithQuery": "Niestety nie udało się nikogo znaleźć poprzez \"{query}\". Proszę sprawdzić, czy w zapytaniu nie ma literówek.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "chatCanBeDiscoveredViaSearchOnServer": "Czat będzie można znaleźć, szukając na {server}", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "publicSpaces": "Przestrzenie publiczne", + "searchMore": "Szukaj dalej...", + "formattedMessagesDescription": "Używaj Markdown do wyświetlania dodatkowego formatowania w wiadomościach, jak np. pogrubienie tekstu.", + "verifyOtherUser": "🔐 Zweryfikuj innego użytkownika", + "appLockDescription": "Zablokuj aplikację pinem kiedy nie jest używana", + "knocking": "Pukanie", + "pleaseChooseAStrongPassword": "Proszę wybrać silne hasło", + "usersMustKnock": "Użytkownicy muszą zapukać", + "noOneCanJoin": "Nikt nie może dołączyć", + "swipeRightToLeftToReply": "Przeciągnij w lewo, by odpowiedzieć", + "pleaseEnterANumber": "Proszę podać liczbę większą od 0", + "commandHint_sendraw": "Wyślij zwykły json", + "databaseMigrationBody": "Proszę czekać. Może to potrwać chwilę.", + "leaveEmptyToClearStatus": "Pozostaw puste, aby wyczyścić swój status.", + "sessionLostBody": "Twoja sesja została utracona. Prosimy zgłosić ten błąd autorom aplikacji na {url}. Treść błędu to: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "publicChatAddresses": "Adresy publicznych czatów", + "createNewAddress": "Utwórz nowy adres", + "completedKeyVerification": "{sender} zakończył/-a weryfikację kluczy", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "italicText": "Kursywa", + "boldText": "Pogrubienie", + "strikeThrough": "Przekreślenie", + "incomingMessages": "Wiadomości przychodzące", + "loginWithMatrixId": "Zaloguj się identyfikatorem Matrix", + "passwordsDoNotMatch": "Hasła się nie zgadzają", + "unbanUserDescription": "Użytkownik będzie w stanie dołączyć do czatu ponownie.", + "roomUpgradeDescription": "Czat zostanie przeniesiony do pokoju w nowej wersji. Wszyscy użytkownicy zostaną powiadomieni o konieczności dołączenia do nowego czatu. Możesz dowiedzieć się więcej o wersjach pokojów na https://spec.matrix.org/latest/rooms/", + "requestedKeyVerification": "{sender} poprosił/-a o weryfikację kluczy", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "changeGeneralChatSettings": "Zmień ogólne ustawienia czatu", + "verifyOtherUserDescription": "Jeśli zweryfikujesz innego użytkownika, możesz być pewien/-na z kim naprawdę piszesz. 💪\n\nKiedy rozpoczniesz weryfikację, Ty i ta druga osoba zobaczycie okienko dialogowe. Zobaczycie w nim serię emotikonów lub numery do porównania.\n\nNajlepiej potwierdzić ich zgodność osobiście lub przez wideorozmowę. 👭", + "verifyOtherDeviceDescription": "Jeśli zweryfikujesz inne urządzenie, będzie mogło ono wymienić klucze z dotychczasowym, zwiększając ogólne bezpieczeństwo. 💪 Kiedy rozpoczniesz weryfikację, na obu urządzeniach wyświetli się okno dialogowe. Zobaczysz w nim serię emotikonów lub numery do porównania. Najlepiej mieć oba urządzenia pod ręką przed rozpoczęciem weryfikacji. 🤳", + "unreadChatsInApp": "{appname}: {unread} nieprzeczytanych czatów", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "addLink": "Dodaj link", + "unread": "Nieprzeczytane", + "space": "Przestrzeń", + "noMoreChatsFound": "Nie znaleziono więcej czatów...", + "removeDevicesDescription": "Nastąpi wylogowanie z tego urządzenia. Nie będziesz w stanie odbierać na nim wiadomości.", + "makeAdminDescription": "Kiedy użytkownik zostanie adminem, nie będziesz móc tego cofnąć, bo nabierze takich samych uprawnień, jak Ty.", + "searchChatsRooms": "Szukaj #czatów, @użytkowników...", + "createGroupAndInviteUsers": "Utwórz grupę i zaproś użytkowników", + "groupCanBeFoundViaSearch": "Grupa może być znaleziona poprzez wyszukiwanie", + "wrongRecoveryKey": "Niestety to nie wygląda na poprawny klucz odzyskiwania.", + "searchForUsers": "Szukaj @użytkowników...", + "pleaseEnterYourCurrentPassword": "Proszę podać swoje obecne hasło", + "passwordIsWrong": "Podano niepoprawne hasło", + "joinSpace": "Dołącz do przestrzeni", + "addChatOrSubSpace": "Dodaj czat lub podprzestrzeń", + "initAppError": "Wystąpił błąd podczas inicjalizacji aplikacji", + "searchIn": "Szukaj w czacie \"{chat}\"...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "kickUserDescription": "Użytkownik jest wyrzucony z czatu, ale nie zbanowany. Do czatu publicznego może dołączyć ponownie.", + "appWantsToUseForLogin": "Użyj serwera '{server}' do zalogowania się", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "appWantsToUseForLoginDescription": "Niniejszym zezwalasz aplikacji i witrynie na udostępnianie informacji o sobie.", + "open": "Otwórz", + "contentNotificationSettings": "Ustawienia powiadomień o treści", + "generalNotificationSettings": "Ogólne ustawienia powiadomień", + "roomNotificationSettings": "Ustawienia powiadomień w pokoju", + "userSpecificNotificationSettings": "Ustawienia powiadomień dla użytkownika", + "otherNotificationSettings": "Inne ustawienia powiadomień", + "notificationRuleContainsUserName": "Włącz dla wiadomości z nazwą użytkownika", + "notificationRuleContainsUserNameDescription": "Włącza powiadomienia kiedy wiadomość zawiera Twoją nazwę użytkownika.", + "notificationRuleMaster": "Wyłącz wszystkie powiadomienia", + "notificationRuleMasterDescription": "Zastępuje inne reguły i wyłącza wszystkie powiadomienia.", + "notificationRuleSuppressNotices": "Wyłącz dla automatycznych wiadomości", + "notificationRuleSuppressNoticesDescription": "Wyłącza powiadomienia z automatycznych klientów, takich jak boty.", + "notificationRuleInviteForMe": "Włącz dla zaproszeń", + "notificationRuleInviteForMeDescription": "Włącza powiadomienia o zaproszeniach do pokoju.", + "notificationRuleMemberEvent": "Wyłącz dla zmian członkostwa", + "notificationRuleMemberEventDescription": "Wyłącza powiadomienia o zmianach członkostwa w pokoju.", + "notificationRuleIsUserMention": "Włącz dla wzmianek", + "notificationRuleIsUserMentionDescription": "Włącza powiadomienia o byciu wzmiankowanym w wiadomości.", + "notificationRuleContainsDisplayName": "Włącz dla wiadomości z nazwą wyświetlaną", + "notificationRuleContainsDisplayNameDescription": "Włącza powiadomienia o wiadomościach zawierających Twoją nazwę wyświetlaną.", + "notificationRuleIsRoomMention": "Włącz dla wzmianek pokoju", + "notificationRuleIsRoomMentionDescription": "Włącza powiadomienia o wzmiankowaniu całego pokoju.", + "notificationRuleRoomnotif": "Włącz dla powiadomień w pokoju", + "notificationRuleRoomnotifDescription": "Włącza powiadomienia o wiadomościach zawierających „@room”.", + "notificationRuleTombstone": "Włącz dla „nagrobków”", + "notificationRuleTombstoneDescription": "Włącza powiadomienia o komunikatach dezaktywacji pokojów.", + "notificationRuleReaction": "Wyłącz dla reakcji", + "notificationRuleReactionDescription": "Wyłącza powiadomienia o reakcjach.", + "notificationRuleSuppressEdits": "Wyłącz dla edycji", + "notificationRuleSuppressEditsDescription": "Wyłącza powiadomienia o edycjach wiadomości.", + "notificationRuleCall": "Włącz dla połączeń", + "notificationRuleRoomServerAclDescription": "Wyłącza powiadomienia dla list kontroli dostępu (ACL) serwera.", + "notificationRuleRoomServerAcl": "Wyłącz dla list kontroli dostępu serwera", + "notificationRuleEncryptedRoomOneToOne": "Włącz dla szyfrowanych pokojów „jeden na jeden”", + "notificationRuleCallDescription": "Włącza powiadomienia o przychodzących połączeniach.", + "notificationRuleRoomOneToOne": "Włącz dla pokojów „jeden na jeden”", + "notificationRuleRoomOneToOneDescription": "Włącza powiadomienia o wiadomościach w pokojach „jeden na jeden” (one-to-one).", + "notificationRuleMessage": "Włącz dla wiadomości", + "unknownPushRule": "Nieznana reguła: '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "notificationRuleEncryptedRoomOneToOneDescription": "Włącza powiadomienia o wiadomościach w szyfrowanych pokojach „jeden na jeden” (one-to-one).", + "notificationRuleEncrypted": "Włącz dla zaszyfrowanych pokojów", + "notificationRuleJitsi": "Włącz dla Jitsi", + "notificationRuleServerAcl": "Wyłącz dla komunikatów o listach kontroli dostępu serwera", + "notificationRuleJitsiDescription": "Włącza powiadomienia o komunikatach widżetów Jitsi.", + "notificationRuleMessageDescription": "Włącza powiadomienia o ogólnych wiadomościach.", + "notificationRuleEncryptedDescription": "Włącza powiadomienia o wiadomościach w zaszyfrowanych pokojach.", + "notificationRuleServerAclDescription": "Wyłącza powiadomienia o komunikatach o listach kontroli dostępu (ACL) serwera.", + "newChatRequest": "📩 Nowa prośba o czat", + "synchronizingPleaseWaitCounter": " Synchronizowanie… ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "waitingForServer": "Oczekiwanie na serwer...", + "previous": "Poprzedni", + "otherPartyNotLoggedIn": "Druga strona nie jest obecnie zalogowana i dlatego nie może odbierać wiadomości!", + "deletePushRuleCanNotBeUndone": "Jeśli skasujesz to ustawienie powiadomień, nie będzie się dało tego cofnąć.", + "more": "Więcej", + "shareKeysWith": "Udostępnij klucze...", + "crossVerifiedDevicesIfEnabled": "Urządzenia zweryfikowane krzyżowo, jeśli włączone", + "crossVerifiedDevices": "Urządzenia zweryfikowane krzyżowo", + "takeAPhoto": "Zrób zdjęcie", + "recordAVideo": "Nagraj film", + "optionalMessage": "(Opcjonalna) wiadomość...", + "verifiedDevicesOnly": "Tylko zweryfikowane urządzenia", + "shareKeysWithDescription": "Które urządzenia powinny być zaufane, aby mogły odczytywać Twoje wiadomości w zaszyfrowanych czatach?", + "allDevices": "Wszystkie urządzenia", + "notSupportedOnThisDevice": "Niewspierane na tym urządzeniu", + "commandHint_roomupgrade": "Zaktualizuj ten pokój do podanej wersji", + "enterNewChat": "Dołącz do nowego czatu", + "countInvited": "{count} zaproszonych", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "sentVoiceMessage": "🎙️ {duration} - Wiadomość głosowa od: {sender}", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "checkList": "Lista kontrolna", + "approve": "Zaakceptuj", + "youHaveKnocked": "Zapukałeś/-aś", + "pleaseWaitUntilInvited": "Proszę zaczekać na zaproszenie przez kogoś z pokoju.", + "commandHint_logout": "Wyloguj bieżące urządzenie", + "commandHint_logoutall": "Wyloguj wszystkie aktywne urządzenia", + "displayNavigationRail": "Pokazuj pasek nawigacyjny na urządzeniach mobilnych", + "customReaction": "Własna reakcja", + "moreEvents": "Więcej zdarzeń", + "declineInvitation": "Odrzuć zaproszenie", + "changedTheChatDescription": "{username} zmienił(a) opis czatu", + "changedTheChatName": "{username} zmienił(a) nazwę czatu", + "noMessagesYet": "Brak wiadomości", + "longPressToRecordVoiceMessage": "Naciśnij i przytrzymaj, aby nagrać wiadomość głosową.", + "pause": "Pauza", + "resume": "Wznów", + "removeFromSpaceDescription": "Czat zostanie usunięty z pokoju, ale nadal będzie widoczny na liście czatów.", + "countChats": "{chats} czaty", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "createNewTag": "Utwórz nową etykietę", + "spaceMemberOf": "Członek przestrzeni {spaces}", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "Członek przestrzeni {spaces} może kołatać", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "attribution": "Uznanie autorstwa", + "skipChatBackup": "Pomiń kopię zapasową czatów", + "skipChatBackupWarning": "Czy na pewno? Bez włączenia kopii zapasowej czatów możesz stracić dostęp do swoich wiadomości w przypadku zmiany urządzenia.", + "noMoreResultsFound": "Nie znaleziono więcej wyników", + "chatSearchedUntil": "Czat przeszukany do {time}", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "federationBaseUrl": "Podstawowy adres URL federacji", + "clientWellKnownInformation": "Informacje Client-Well-Known:", + "baseUrl": "Podstawowy adres URL", + "identityServer": "Serwer tożsamości:", + "versionWithNumber": "Wersja: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "Logi", + "advancedConfigs": "Konfiguracje zaawansowane", + "advancedConfigurations": "Zaawansowane konfiguracje", + "signIn": "Zaloguj się", + "createNewAccount": "Utwórz nowe konto", + "signUpGreeting": "FluffyChat jest zdecentralizowany! Wybierz serwer, na którym chcesz utworzyć konto i zaczynamy!", + "signInGreeting": "Masz już konto w sieci Matrix? Witaj z powrotem! Wybierz swój serwer macierzysty i zaloguj się.", + "theProcessWasCanceled": "Proces został anulowany.", + "join": "Dołącz", + "searchOrEnterHomeserverAddress": "Wyszukaj lub wprowadź adres serwera macierzystego", + "matrixId": "Identyfikator Matrix", + "setPowerLevel": "Ustaw poziom uprawnień", + "makeModerator": "Mianuj moderatorem", + "makeAdmin": "Mianuj administratorem", + "removeModeratorRights": "Odbierz uprawnienia moderatora", + "removeAdminRights": "Odbierz uprawnienia administratora", + "powerLevel": "Poziom uprawnień", + "setPowerLevelDescription": "Poziomy uprawnień określają, co członek może robić w tym pokoju i zazwyczaj mieszczą się w zakresie od 0 do 100.", + "owner": "Właściciel", + "mute": "Wycisz", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "createNewChat": "Utwórz nowy czat", + "reset": "Resetuj", + "supportFluffyChat": "Wesprzyj FluffyChat", + "support": "Wsparcie", + "setLowPriority": "Ustaw niski priorytet", + "unsetLowPriority": "Cofnij niski priorytet", + "playSoundOnNotification": "Odtwórz dźwięk powiadomienia", + "addTag": "Dodaj znacznik", + "removeTag": "Usuń znacznik", + "tagName": "Nazwa znacznika", + "startPoll": "Rozpocznij ankietę", + "endPoll": "Zakończ ankietę", + "answersVisible": "Widoczne odpowiedzi", + "pollQuestion": "Pytanie ankiety", + "answerOption": "Opcja odpowiedzi", + "addAnswerOption": "Dodaj opcję odpowiedzi", + "allowMultipleAnswers": "Zezwalaj na wiele odpowiedzi", + "pollHasBeenEnded": "Ankieta została zakończona", + "countVotes": "{count, plural, one {{count} głos} few {{count} głosy} many {{count} głosów} other {{count} głosu}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "answersWillBeVisibleWhenPollHasEnded": "Wyniki będą widoczne po zakończeniu ankiety", + "replyInThread": "Odpowiedz w wątku", + "countReplies": "{count, plural, one {{count} odpowiedź} few {{count} odpowiedzi} many {{count} odpowiedzi} other {{count} odpowiedzi}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "thread": "Wątek", + "backToMainChat": "Wróć do czatu głównego", + "saveChanges": "Zapisz zmiany", + "createSticker": "Utwórz naklejkę lub emoji", + "useAsSticker": "Użyj jako naklejki", + "useAsEmoji": "Użyj jako emoji", + "stickerPackNameAlreadyExists": "Paczka naklejek o tej nazwie już istnieje", + "newStickerPack": "Nowa paczka naklejek", + "stickerPackName": "Nazwa paczki naklejek", + "discardEdits": "Masz niezapisane zmiany. Porzucić je?", + "@discardEdits": { + "type": "String", + "placeholders": {} + }, + "showMore": "Pokaż wiecej", + "showLess": "Pokaż mniej", + "hideRoomsInSpaces": "Ukryj pokoje, które są w przestrzeni", + "possibleByYou": "To wydanie było tylko możliwe dzięki twojemu wsparciu. FluffyChat pozostaje darmowe, otwartoźródłowe i w całości oparty na inicjatywie społeczności.", + "showThumbnailsInTimeline": "Wyświetl miniatury zdjęć i filmów", + "appSubtitle": "Bezpieczna komunikacja [matrix]", + "appDescription": "Komunikuj się w sposób zaszyfrowany za pośrednictwem zdecentralizowanej sieci [matrix] – w łatwy i dostępny dla wszystkich sposób.", + "interactiveVerification": "Weryfikacja interaktywna", + "interactiveVerificationDescription": "Jeżeli jesteście obok siebie albo komunikujecie się przez bezpieczny kanał to możecie zweryfikować wszystkie urządzenia naraz przez porównywanie numeru bezpieczeństwa lub emoji.", + "countUnverifiedDevices": "{count} niezweryfikowanych urządzeń w czacie.", + "@countUnverifiedDevices": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "encryptedMessage": "Szyfrowana wiadomość", + "unencryptedMessage": "Nieszyfrowana wiadomość", + "messageCanOnlyBeReadByUser": "Twoja wiadomość jest szyfrowana od początku do końca i może ją odczytać wyłącznie ten użytkownik:", + "messageCanOnlyBeReadByUsers": "Twoja wiadomość jest szyfrowana od początku do końca i mogą ją odczytać wyłącznie następujący użytkownicy:", + "publicKey": "Publiczny klucz: {key}", + "@publicKey": { + "type": "String", + "placeholders": { + "key": { + "type": "String" + } + } + }, + "deviceIdentityKey": "Klucz identyfikacyjny urządzenia", + "restoreBootstrapEmptyDevicesDescription": "Wprowadź hasło lub klucz odzyskiwania, aby zweryfikować to urządzenie i uzyskać dostęp do zaszyfrowanej kopii zapasowej wiadomości.", + "@restoreBootstrapEmptyDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "restoreBootstrapDevicesDescription": "Wybierz jedno ze swoich innych urządzeń, aby zweryfikować tę sesję:", + "@restoreBootstrapDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "resetAccount": "Zresetuj konto", + "@resetAccount": { + "type": "String", + "placeholders": {} + }, + "restoreCryptoIdentity": "Przywróć tożsamość kryptograficzną", + "@restoreCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "resetCryptoIdentity": "Zresetuj tożsamość kryptograficzną", + "@resetCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "setUpCryptoIdentity": "Skonfiguruj tożsamość kryptograficzną", + "@setUpCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "waitingForKeys": "Oczekiwanie na klucze... Proszę pozostawić drugie urządzenie włączone.", + "@waitingForKeys": { + "type": "String", + "placeholders": {} + }, + "noKeysTransmitted": "Nie przesłano żadnych kluczy. Spróbuj ponownie.", + "@noKeysTransmitted": { + "type": "String", + "placeholders": {} + }, + "unlock": "Odblokuj", + "@unlock": { + "type": "String", + "placeholders": {} + }, + "openFile": "Otwórz plik", + "@openFile": { + "type": "String", + "placeholders": {} + }, + "resetAccountWarning": "Po zresetowaniu konta utracisz na zawsze dostęp do starych wiadomości. Wszystkie Twoje obecne urządzenia będą wymagały ponownej weryfikacji. Wykonaj tę czynność tylko wtedy, gdy nie masz już żadnych innych urządzeń, na których można zweryfikować sesję, oraz utraciłeś klucz odzyskiwania i hasło!", + "@resetAccountWarning": { + "type": "String", + "placeholders": {} + }, + "newPassphraseDescription": "FluffyChat korzysta z szyfrowania od końca do końca. Aby nie utracić swoich wiadomości, wybierz silne hasło, które zabezpieczy Twoją tożsamość kryptograficzną oraz zaszyfrowaną kopię zapasową wiadomości.", + "@newPassphraseDescription": { + "type": "String", + "placeholders": {} + }, + "newPassphrase": "Nowa fraza hasłowa", + "@newPassphrase": { + "type": "String", + "placeholders": {} + }, + "repeatPassphrase": "Powtórz frazę hasłową", + "@repeatPassphrase": { + "type": "String", + "placeholders": {} + }, + "passphrasesMatch": "Zgodność fraz hasłowych", + "@passphrasesMatch": { + "type": "String", + "placeholders": {} + }, + "passphraseLengthRequirement": "Co najmniej 12 znaków.", + "@passphraseLengthRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseUpperAndLowerCaseRequirement": "Zawiera wielkie i małe litery.", + "@passphraseUpperAndLowerCaseRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseSpecialCharactersRequirement": "Zawiera znaki specjalne.", + "@passphraseSpecialCharactersRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseNumberRequirement": "Zawiera jedną liczbę.", + "@passphraseNumberRequirement": { + "type": "String", + "placeholders": {} + }, + "storeRecoveryKeyDescription": "Zapisz swój klucz odzyskiwania, aby móc przywrócić zaszyfrowane wiadomości oraz swoją tożsamość kryptograficzną.", + "@storeRecoveryKeyDescription": { + "type": "String", + "placeholders": {} + }, + "saveAsFile": "Zapisz jako plik", + "@saveAsFile": { + "type": "String", + "placeholders": {} + }, + "youAreReadyToStart": "Jesteś gotowy aby rozpocząć!", + "noUserKeyFound": "Nie znaleziono kluczy użytkownika", + "@noUserKeyFound": { + "type": "String", + "placeholders": {} + }, + "knownSince": "Znany od: {date}", + "@knownSince": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + } + } + }, + "unsignedDevice": "Niepodpisane urządzenie", + "@unsignedDevice": { + "type": "String", + "placeholders": {} + }, + "signedDevice": "Podpisane urządzenie", + "@signedDevice": { + "type": "String", + "placeholders": {} + }, + "noCurve25519KeyFound": "Nie znaleziono klucza curve25519", + "@noCurve25519KeyFound": { + "type": "String", + "placeholders": {} + }, + "messageNotDecryptable": "Nie można odszyfrować wiadomości", + "today": "Dzisiaj", + "sending": "Wysyłanie", + "generatingThumbnail": "Tworzenie miniatury", + "encrypting": "Szyfrowanie", + "uploading": "Przesyłanie", + "edited": "(edytowano)", + "couldNotBeSent": "Nie udało się wysłać", + "yesterday": "Wczoraj", + "resetRecoveryKey": "Zresetuj klucz odzyskiwania", + "pleaseEnter6Digits": "Wpisz 6 cyfr aby włączyć blokadę aplikacji.", + "disableAppLock": "Wyłącz blokadę aplikacji", + "disableAppLockAreYouSure": "Czy na pewno chcesz wyłączyć blokadę aplikacji?", + "enableBiometrics": "Włącz uwierzytelnianie biometryczne", + "disableBiometrics": "Wyłącz uwierzytelnianie biometryczne", + "resetPin": "Resetuj pin", + "forwardCountMessages": "Przekazać {count, plural, =1{jedną wiadomość} other {{count} wiadomości}}?", + "@forwardCountMessages": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "unlockWithBiometrics": "Odblokuj za pomocą uwierzytelniania biometrycznego", + "useAppLock": "Użyj blokady aplikacji", + "biometricsDescription": "Za pomocą biometrycznego uwierzytelniania możesz odblokować aplikację za pomocą swojej twarzy lub odsisku palca. Możliwości zależą od twojego urządzenia.", + "doubleTapToReact": "Podwójne dotknięcie, aby zareagować", + "doubleTapToReactDescription": "Podwójne dotknięcie wiadomości reaguje zamiast zaznaczania tekstu", + "doubleTapReaction": "Reakcja podwójnego dotknięcia" +} diff --git a/lib/l10n/intl_pt.arb b/lib/l10n/intl_pt.arb new file mode 100644 index 0000000..524a04f --- /dev/null +++ b/lib/l10n/intl_pt.arb @@ -0,0 +1,2001 @@ +{ + "@@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": { + "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": {} + } +} \ No newline at end of file diff --git a/lib/l10n/intl_pt_BR.arb b/lib/l10n/intl_pt_BR.arb new file mode 100644 index 0000000..1463fa4 --- /dev/null +++ b/lib/l10n/intl_pt_BR.arb @@ -0,0 +1,2501 @@ +{ + "@@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": { + "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", + "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.", + "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", + "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": {} + } +} \ No newline at end of file diff --git a/lib/l10n/intl_pt_PT.arb b/lib/l10n/intl_pt_PT.arb new file mode 100644 index 0000000..8139eb0 --- /dev/null +++ b/lib/l10n/intl_pt_PT.arb @@ -0,0 +1,2204 @@ +{ + "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": { + "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": {} + } +} \ No newline at end of file diff --git a/lib/l10n/intl_ro.arb b/lib/l10n/intl_ro.arb new file mode 100644 index 0000000..1125112 --- /dev/null +++ b/lib/l10n/intl_ro.arb @@ -0,0 +1,2194 @@ +{ + "@@last_modified": "2021-08-14 12:41:09.918296", + "about": "Despre", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Accept", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "{username} a aceptat invitați", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Cont", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "{username} a activat criptarea end-to-end", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "admin": "Administrator", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "poreclă", + "@alias": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} a acceptat apelul", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Oricine se poate alătura", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "archive": "Arhivă", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Vizitatorii \"guest\" se pot alătura", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Ești sigur?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Pentru a putea conecta cealaltă persoană, te rog introdu parola sau cheia ta de recuperare.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Accepți cererea de verificare de la {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "banFromChat": "Interzis din conversație", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Interzis", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} a interzis pe {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Blochează dispozitiv", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "cancel": "Anulează", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "changeDeviceName": "Schimbă numele dispozitiv", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} a schimbat poza conversați", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "commandHint_unban": "Dezinterziceți utilizatorul ales din această cameră", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "devices": "Dispozitive", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Chaturi directe", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} a terminat apelul", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "groupWith": "Grup cu {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "kickFromChat": "Dați afară din chat", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "sentCallInformations": "{senderName} a trimis informație de apel", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "no": "Nu", + "@no": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Trimiteți mesaje", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "submit": "Trimiteți", + "@submit": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "A reușit verificarea!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Mesaj vocal", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "reactedWith": "{sender} a reacționat cu {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "changePassword": "Schimbați parola", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "next": "Următor", + "@next": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Fără conexiune la server", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "Nu ați adăugat încă nici un mod de recuperare pentru parola voastră.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "notifications": "Notificări", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Deschideți aplicația să citiți mesajele", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Deschideți camera", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "share": "Partajați", + "@share": { + "type": "String", + "placeholders": {} + }, + "shareLocation": "Partajați locația", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "skip": "Săriți peste", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Codul surs", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "Spațiul este public", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Numele spațiului", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "unblockDevice": "Debloca dispozitiv", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Dispozitiv necunoscut", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "V-am trimis un email", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Nu mai participați în acest chat", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Cheia voastră publică", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "unsupportedAndroidVersion": "Versiune de Android nesuportat", + "userIsTyping": "{username} tastează…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} a schimbat linkul de invitație", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "chat": "Chat", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chats": "Chaturi", + "@chats": { + "type": "String", + "placeholders": {} + }, + "invited": "Invitat", + "@invited": { + "type": "String", + "placeholders": {} + }, + "login": "Conectați-vă", + "@login": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Backup de cheie online este activat", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "removeFromBundle": "Stergeți din acest pachet", + "participant": "Participant", + "@participant": { + "type": "String", + "placeholders": {} + }, + "openInMaps": "Deschideți pe hartă", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Vă rugăm să introduceți pinul vostru", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "privacy": "Confidențialitate", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "redactMessage": "Redactați mesaj", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Versiunea camerei", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "security": "Securitate", + "@security": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Trimiteți fișier", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "setStatus": "Stabiliți status", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Configurări", + "@settings": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} a retras invitația pentru {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Ajutor", + "@help": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Algoritm de criptare necunoscut", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unmuteChat": "Dezamuțați chat", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Anulează fixarea", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} a ridicat interzicerea lui {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "youBannedUser": "Ați interzis pe {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "fileIsTooBigForServer": "Serverul reportează că fișierul este prea mare să fie trimis.", + "sorryThatsNotPossible": "Scuze... acest nu este posibil", + "enableEncryptionWarning": "Activând criptare, nu mai puteți să o dezactivați în viitor. Sunteți sigur?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "commandMissing": "{command} nu este o comandă.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "status": "Status", + "@status": { + "type": "String", + "placeholders": {} + }, + "you": "Voi", + "@you": { + "type": "String", + "placeholders": {} + }, + "pinMessage": "Fixați în cameră", + "wasDirectChatDisplayName": "Chat gol (a fost {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "pleaseClickOnLink": "Vă rugăm să deschideți linkul din email și apoi să procedați.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "reportUser": "Reportați utilizator", + "encryptionNotEnabled": "Criptare nu e activată", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Camere Publice", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "addToBundle": "Adăugați în pachet", + "theyDontMatch": "Nu sunt asemănători", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "loadingPleaseWait": "Încărcând... Vă rugăm să așteptați.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Sunt asemănători", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "scanQrCode": "Scanați cod QR", + "addAccount": "Adăugați cont", + "confirmEventUnpin": "Sunteți sigur că doriți să anulați permanent fixarea evenimentului?", + "emojis": "Emoji-uri", + "users": "Utilizatori", + "currentlyActive": "Activ acum", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "isTyping": "tastează…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Backup de chat", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "repeatPassword": "Repetați parola", + "changeTheme": "Schimbați tema aplicației", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Ștergeți arhiva", + "commandHint_markasdm": "Marcați ca cameră de mesaje directe", + "commandHint_markasgroup": "Marcați ca grup", + "commandHint_ban": "Interziceți acesul utilizatorului ales din această cameră", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_clearcache": "Ștergeți cache", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_create": "Creați un grup de chat gol\nFolosiți --no-encryption să dezactivați criptare", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_discardsession": "Renunțați sesiunea", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_kick": "Dați afară pe utilizatorul ales din această cameră", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "Renunțați la această cameră", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_myroomavatar": "Alegeți un avatar pentru această cameră (foloșește mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "Alegeți un displayname pentru această cameră", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "Stabiliți nivelul de putere a utilizatorul ales (implicit: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "Trimiteți text simplu/neformatat", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "Trimiteți răspuns ca reacție", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_send": "Trimiteți text", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandInvalid": "Comandă nevalibilă", + "@commandInvalid": { + "type": "String" + }, + "compareEmojiMatch": "Vă rugăm să comparați emoji-urile", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Vă rugăm să comparați numerele", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Dezcriptarea mesajului a eșuat: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "create": "Creați", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬{username} a creat chatul", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "createNewSpace": "Spațiu nou", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "forward": "Înainte", + "@forward": { + "type": "String", + "placeholders": {} + }, + "groups": "Grupuri", + "@groups": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Ascunde evenimente necunoscute", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignore": "Ignorați", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Utilizatori ignorați", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Am făcut click pe link", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Parolă sau cheie de recuperare incorectă", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Invitați contact", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Invitați contact la {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "inviteText": "{username} v-a invitat la FluffyChat.\n1. Instalați FluffyChat: https://fluffychat.im\n2. Înregistrați-vă sau conectați-vă\n3. Deschideți invitația: {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "joinedTheChat": "👋{username} a intrat în chat", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "kicked": "👞{username} a dat afară pe {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "lastActiveAgo": "Ultima dată activ: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Renunțați", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "A plecat din chat", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Luminat", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Încărcați încă mai {count} participanți", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dehydrate": "Exportați sesiunea și ștergeți dispozitivul", + "hydrate": "Restaurați din fișier backup", + "loadMore": "Încarcă mai multe…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "logout": "Deconectați-vă", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Menționați", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "Mesaje", + "@messages": { + "type": "String", + "placeholders": {} + }, + "moderator": "Moderator", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Nu s-a găsit nici un emote. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Criptare nu poate fi activată până când camera este accesibilă public.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Fără permisie", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Nici o cameră nu s-a găsit…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "obtainingLocation": "Obținând locație…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Ups, ceva a eșuat…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "reject": "Respingeți", + "@reject": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Revoca interzicerea din chat", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Camera a fost actualizată", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} a început un apel", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "statusExampleMessage": "Ce faceți?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Prea multe cereri. Vă rugăm să încercați din nou mai tărziu!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Evenimet necunoscut '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "verified": "Verificat", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Începeți verificare", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Vizibilitatea istoria chatului", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Vizibil pentru toți participanți", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Așteptând pe partenerul să accepte emoji-ul…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Așteptând pe partenerul să accepte numerele…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Avertizment!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Cine poate face care acțiune", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Cine se poate alătura la acest grup", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "De ce doriți să reportați acest conținut?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Cu acestea adrese puteți să vă recuperați parola.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Ați fost interzis din acest chat", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "messageInfo": "Info mesajului", + "time": "Timp", + "sender": "Trimițător", + "openGallery": "Deschideți galeria", + "removeFromSpace": "Eliminați din spațiu", + "unsupportedAndroidVersionLong": "Această funcție are nevoie de o versiune de Android mai nouă. Vă rugăm să verificați dacă sunt actualizări sau suport de la Lineage OS.", + "youRejectedTheInvitation": "Ați respins invitația", + "youJoinedTheChat": "Va-ți alăturat la chat", + "youAcceptedTheInvitation": "👍Ați acceptat invitația", + "youHaveWithdrawnTheInvitationFor": "Ați retras invitația pentru {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩Ați fost invitat de {user}", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩Ați invitat pe {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKicked": "👞Ați dat afară pe {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "Ați ridicat interzicerea lui {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "storeInAndroidKeystore": "Stoca în Android KeyStore", + "user": "Utilizator", + "custom": "Personalizat", + "storeSecurlyOnThisDevice": "Stoca sigur pe acest dispozitiv", + "whyIsThisMessageEncrypted": "De ce este acest mesaj ilizibil?", + "newSpace": "Spațiu nou", + "doNotShowAgain": "Nu se mai apară din nou", + "newSpaceDescription": "Spațiile vă permit să vă consolidați chaturile și să stabiliți comunități private sau publice.", + "encryptThisChat": "Criptați acest chat", + "disableEncryptionWarning": "Pentru motive de securitate, nu este posibil să dezactivați criptarea unui chat în care criptare este activată.", + "noBackupWarning": "Avertisment! Fără să activați backup de chat, veți pierde accesul la mesajele voastre criptate. E foarte recomandat să activați backup de chat înainte să vă deconectați.", + "noOtherDevicesFound": "Nu s-a găsit alte dispozitive", + "fileHasBeenSavedAt": "Fișierul a fost salvat la {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "jump": "Săriți", + "report": "reportați", + "jumpToLastReadMessage": "Săriți la ultimul citit mesaj", + "guestsCanJoin": "Musafiri pot să se alăture", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "fontSize": "Mărimea fontului", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "De la alăturare", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "De la invitația", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Grup", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "Grupul este public", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "guestsAreForbidden": "Musafiri sunt interziși", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "kickedAndBanned": "🙅{username} a dat afară și a interzis pe {targetName} din cameră", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "dehydrateWarning": "Această actiune nu poate fi anulată. Asigurați-vă că păstrați fișierul backup.", + "joinRoom": "Alăturați la cameră", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Conectați-vă la {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "locationDisabledNotice": "Servicile de locație sunt dezactivate. Vă rugăm să le activați să împărțiți locația voastră.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Se pare că nu aveți serviciile google pe dispozitivul vostru. Această decizie este bună pentru confidențialitatea voastră! Să primiți notificari push în FluffyChat vă recomandăm https://microg.org/ sau https://unifiedpush.org/.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} nu este server matrix, înlocuiți cu {server2}?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "numUsersTyping": "{count} utilizatori tastează…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "or": "Sau", + "@or": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Așteptând pe partenerul să accepte cererea…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Întunecat", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} sa partajat locația", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "synchronizingPleaseWait": "Sincronizează... Vă rugăm să așteptați.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Sistem", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Încercați să trimiteți din nou", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "userAndUserAreTyping": "{username} și {username2} tastează…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪{username} a plecat din chat", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userAndOthersAreTyping": "{username} și {count} alți tastează…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userSentUnknownEvent": "{username} a trimis un eveniment {type}", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "unverified": "Neverificat", + "verifyTitle": "Verificând celălalt cont", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Vizibil pentru toți", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "readUpToHere": "Citit până aici", + "changedTheHistoryVisibility": "{username} a schimbat vizibilitatea istoriei chatului", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "copy": "Copiați", + "@copy": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Displayname a fost schimbat", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "invitedUsersOnly": "Numai utilizatori invitați", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Configurați chat", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Copiat în clipboard", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "sentAnAudio": "🎤{username} a trimis audio", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAFile": "📁{username} a trimis un fișier", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "locationPermissionDeniedNotice": "Permisiunea locației blocată. Vă rugăm să o dezblocați să împărțiți locația voastră.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "newChat": "Chat nou", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Mesaj nou în FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "sentAPicture": "🖼️ {username} a trimis o poză", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥{username} a trimis un video", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} a trimis un sticker", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "countFiles": "{count} fișiere", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "hugContent": "{senderName} vă îmbrățișează", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "storeInAppleKeyChain": "Stoca în Apple KeyChain", + "addEmail": "Adăugați email", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "confirmMatrixId": "Vă rugăm să confirmați Matrix ID-ul vostru să ștergeți contul vostru.", + "cuddleContent": "{senderName} vă îmbrățișează", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "supposedMxid": "ID-ul ar trebuii să fie {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "commandHint_html": "Trimiteți text format ca HTML", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "addToSpace": "Adăugați la spațiu", + "commandHint_hug": "Trimiteți o îmbrățișare", + "badServerLoginTypesException": "Homeserver-ul suportă următoarele feluri de login:\n{serverVersions}\nDar această aplicație suportă numai:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} a schimbat regulile pentru acesul musafirilor la: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} a schimbat regulile de alăturare la: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "cantOpenUri": "Nu se poate deschide URI-ul {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} s-a schimbat displayname la: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} a schimbat regulile pentru acesul musafirilor", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changeTheHomeserver": "Schimbați homeserver-ul", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "Conținutul a fost reportat la administratori serverului", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Detalii de chat", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "commandHint_dm": "Porniți un chat direct\nFolosiți --no-encryption să dezactivați criptare", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_me": "Descrieți-vă", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "contactHasBeenInvitedToTheGroup": "Contactul a fost invitat la grup", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Copiați în clipboard", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "countParticipants": "{count} participanți", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "delete": "Ștergeți", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deactivateAccountWarning": "Această acțiune va dezactiva contul vostru. Nu poate fi anulat! Sunteți sigur?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Ștergeți contul", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Nivel de permisiuni implicită", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Ștergeți mesajul", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Descărcați fișierul", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Activați pachet de emote global", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Editați servere blocate", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Shortcode de emote nevalibil!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "edit": "Editați", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Schimbați pseudonimele camerei", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Chat gol", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Activați criptare", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Criptat", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Schimbați displayname", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Schimbați avatarul din cameră", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Emote deja există!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Shortcode de emote", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "encryption": "Criptare", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "enterAnEmailAddress": "Introduceți o adresă email", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Obținerea locației a eșuat: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "ok": "Ok", + "@ok": { + "type": "String", + "placeholders": {} + }, + "youKickedAndBanned": "🙅Ați dat afară și interzis pe {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "noKeyForThisMessage": "Această chestie poate să se întâmple când mesajul a fost trimis înainte să vă conectați contul cu acest dispozitiv.\n\nO altă explicație ar fi dacă trimițătorul a blocat dispozitivul vostru sau ceva s-a întâmplat cu conexiunea la internet\n\nPuteți să citiți mesajul în o altă seșiune? Atunci puteți să transferați mesajul de acolo! Mergeți la Configurări > Dispozitive și verificați că dispozitivele s-au verificat. Când deschideți camera în viitor și ambele seșiune sunt în foreground, cheile va fi transmise automat. \n\nDoriți să îți păstrați cheile când deconectați sau schimbați dispozitive? Fiți atenți să activați backup de chat în configurări.", + "sendAsText": "Trimiteți ca text", + "@sendAsText": { + "type": "String" + }, + "reportErrorDescription": "Ceva a eșuat. Vă rugăm să încercați din nou mai tărziu. Dacă doriți, puteți să reportați problema la dezvoltatori.", + "openLinkInBrowser": "Deschideți linkul în browser", + "send": "Trimiteți", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Trimiteți un mesaj", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAudio": "Trimiteți audio", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Trimiteți video", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Trimiteți imagine", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "setAsCanonicalAlias": "Stabiliți ca pseudonimul primar", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Scrieți un mesaj…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Da", + "@yes": { + "type": "String", + "placeholders": {} + }, + "markAsRead": "Marcați ca citit", + "oopsPushError": "Ups! Din păcate, o eroare s-a întâmplat cu stabilirea de notificări push.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "oneClientLoggedOut": "Unul dintre clienților voștri a fost deconectat", + "editBundlesForAccount": "Editați pachetele pentru acest cont", + "bundleName": "Numele pachetului", + "link": "Link", + "passphraseOrKey": "frază de acces sau cheie de recuperare", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Parolă", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Parola uitată", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Parola a fost schimbată", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Recuperare parolei", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Fixați", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Vă rugăm să alegeți un passcode", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Vă rugăm să introduceți parola voastră", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Vă rugăm să introduceți username-ul vostru", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Vă rugăm să urmați instrucțiunele pe website și apoi să apăsați pe următor.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "reason": "Motiv", + "@reason": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} a respins invitația", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactedAnEvent": "{username} a redactat un eveniment", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "removeAllOtherDevices": "Eliminați toate celelalte dispozitive", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Ștergeți avatarul", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Înlocuiți camera cu versiune mai nouă", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "Răspundeți", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Raportați mesajul", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Salvați fișierul", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "search": "Căutați", + "@search": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Amuțați chatul", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "autoplayImages": "Anima automatic stickere și emote animate", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "sendOnEnter": "Trimite cu tasta enter", + "changedTheChatPermissions": "{username} a schimbat permisiunile chatului", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "invitedUser": "📩{username} a invitat {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "newVerificationRequest": "Cerere de verificare nouă!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "remove": "Eliminați", + "@remove": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "Criptarea a fost corupată", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Alegeți o parolă robustă", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "commandHint_cuddle": "Trimiteți o îmbrățișare", + "googlyEyesContent": "{senderName} v-a trimis ochi googly", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "areYouSureYouWantToLogout": "Sunteți sigur că doriți să vă deconectați?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "changedTheRoomAliases": "{username} a schimbat pseudonimele camerei", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changeYourAvatar": "Schimbați avatarul vostru", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "commandHint_join": "Alăturați-vă la camera alesă", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_invite": "Invitați utilizatorul ales la această cameră", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "changeTheNameOfTheGroup": "Schimbați numele grupului", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "commandHint_googly": "Trimiteți câțiva ochi googly", + "all": "Toate", + "@all": { + "type": "String", + "placeholders": {} + }, + "blocked": "Blocat", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "changedTheJoinRules": "{username} a schimbat regulile de alăturare", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} s-a schimbat avatarul", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "appLock": "Lacăt aplicație", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "changedTheHistoryVisibilityTo": "{username} a schimbat vizibilitatea istoriei chatului la: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "close": "Închideți", + "@close": { + "type": "String", + "placeholders": {} + }, + "reopenChat": "Deschide din nou chatul", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "@goToSpace": { + "type": "String", + "space": {} + }, + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "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" + } + } + }, + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@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" + } + } + } +} \ No newline at end of file diff --git a/lib/l10n/intl_ru.arb b/lib/l10n/intl_ru.arb new file mode 100644 index 0000000..0dd1f0a --- /dev/null +++ b/lib/l10n/intl_ru.arb @@ -0,0 +1,2690 @@ +{ + "@@locale": "ru", + "@@last_modified": "2021-08-14 12:41:09.903021", + "about": "О проекте", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Принять", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} принял(а) приглашение", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Учётная запись", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} активировал(а) сквозное шифрование", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "Добавить электронную почту", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "admin": "Администратор", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "псевдоним", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Все", + "@all": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} ответил(а) на звонок", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Каждый может присоединиться", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "Блокировка приложения", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "archive": "Архив", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Разрешено ли гостям присоединяться?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Вы уверены?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Вы действительно хотите выйти?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Для подписи ключа другого пользователя, пожалуйста, введите вашу парольную фразу или ключ восстановления.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Принять этот запрос подтверждения от {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "autoplayImages": "Автоматически воспроизводить анимированные стикеры и эмодзи", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "badServerLoginTypesException": "Домашний сервер поддерживает следующие типы входа в систему:\n{serverVersions}\nНо это приложение поддерживает только:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "banFromChat": "Заблокировать в чате", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Заблокирован(а)", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} заблокировал(а) {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Заблокировать устройство", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "Заблокировано", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "Отмена", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "Не удается открыть URI {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changeDeviceName": "Изменить имя устройства", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} изменил(а) аватар чата", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} изменил(а) права доступа к чату", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} изменил(а) отображаемое имя на '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} изменил(а) правила гостевого доступа", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} изменил(а) правила гостевого доступа на {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} изменил(а) видимость истории", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} изменил(а) видимость истории на {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} изменил(а) правила присоединения", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} изменил(а) правила присоединения на {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} изменил(а) аватар", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} изменил(а) псевдонимы комнаты", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} изменил(а) ссылку для приглашения", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Изменить пароль", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Изменить домашний сервер", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Персонализация", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Изменить название группы", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Изменить свой аватар", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "Шифрование было повреждено", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Чат", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Резервное копирование чата", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Детали чата", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Чаты", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Выберите надёжный пароль", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Очистить архив", + "close": "Закрыть", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "Заблокировать данного пользователя в этой комнате", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_html": "Отправить текст формата HTML", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Пригласить данного пользователя в эту комнату", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "Присоединиться к данной комнате", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "Удалить данного пользователя из этой комнаты", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "Покинуть эту комнату", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "Опишите себя", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_myroomavatar": "Установите свою фотографию для этой комнаты (автор: mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "Задайте отображаемое имя для этой комнаты", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "Установить уровень прав данного пользователя (по умолчанию: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "Отправить неотформатированный текст", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "Отправить ответ как реакцию", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_send": "Отправить текст", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_unban": "Разблокировать данного пользователя в этой комнате", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandInvalid": "Недопустимая команда", + "@commandInvalid": { + "type": "String" + }, + "commandMissing": "{command} не является командой.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "compareEmojiMatch": "Сравните эмодзи", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Сравните числа", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Настроить чат", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Контакт был приглашен в группу", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "О контенте было сообщено администраторам сервера", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Скопировано в буфер обмена", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Копировать", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Скопировать в буфер обмена", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Не удалось расшифровать сообщение: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count} участника(ов)", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Создать", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} создал(а) чат", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "createNewSpace": "Новое пространство", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "В настоящее время активен(а)", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Тёмная", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{timeOfDay}, {date}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Это деактивирует вашу учётную запись пользователя. Данное действие не может быть отменено! Вы уверены?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Уровень разрешений по умолчанию для новых пользователей", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "Удалить", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Удалить аккаунт", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Удалить сообщение", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Устройства", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Личные чаты", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Отображаемое имя было изменено", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Скачать файл", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "Редактировать", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Редактировать заблокированные серверы", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Отображаемое имя", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Редактировать псевдонимы комнаты", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Изменить аватар комнаты", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Эмодзи уже существует!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Недопустимый код эмодзи!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Код эмодзи", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Пустой чат", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Включить набор эмодзи глобально", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Включить шифрование", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Вы больше не сможете отключить шифрование. Вы уверены?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Зашифровано", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Шифрование", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Шифрование не включено", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} завершил(а) звонок", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Введите адрес электронной почты", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Ошибка получения местоположения: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "fontSize": "Размер шрифта", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "Переслать", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "С момента присоединения", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "С момента приглашения", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Группа", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "Публичная группа", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "Группы", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Группа с {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Гости не могут присоединиться", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Гости могут присоединиться", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} отозвал(а) приглашение для {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Помощь", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Скрыть неизвестные события", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignore": "Игнорировать", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Игнорируемые пользователи", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Я перешёл по ссылке", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Неверный пароль или ключ восстановления", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Пригласить контакт", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Пригласить контакт в {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "Приглашён", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username} пригласил(а) {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Только приглашённым пользователям", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} пригласил(а) вас в FluffyChat. \n1. Посетите https://fluffychat.im и установите приложение \n2. Зарегистрируйтесь или войдите \n3. Откройте ссылку приглашения: \n {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "печатает…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} присоединился(ась) к чату", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Присоединиться к комнате", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username} выгнал(а) {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} выгнал(а) и заблокировал(а) {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Выгнать из чата", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Последнее посещение: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Покинуть", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Покинуть чат", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Светлая", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadingPleaseWait": "Загрузка... Пожалуйста, подождите.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Загрузить больше…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "Службы определения местоположения отключены. Включите их, чтобы иметь возможность обмениваться информацией о своем местоположении.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "Разрешение на определение местоположения отклонено. Пожалуйста, предоставьте это разрешение, чтобы иметь возможность делиться своим местоположением.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "login": "Войти", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Войти в {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Выйти", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Упомянуть", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "Сообщения", + "@messages": { + "type": "String", + "placeholders": {} + }, + "moderator": "Модератор", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Отключить уведомления", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Новый чат", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Новое сообщение во FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Новый запрос на подтверждение!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "Далее", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "Нет", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Нет соединения с сервером", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Эмодзи не найдены 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Вы можете активировать шифрование только тогда, когда комната перестает быть общедоступной.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Похоже, у вас нет служб Google на вашем телефоне. Это хорошее решение для вашей конфиденциальности! Для получения push-уведомлений во FluffyChat мы рекомендуем использовать ntfy. С ntfy или другим провайдером единых уведомлений вы можете получать push-уведомления безопасным способом передачи данных. Скачать ntfy можно из F-Droid или из Play Маркета.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} не является matrix-сервером, использовать {server2} вместо него?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "noPasswordRecoveryDescription": "Вы ещё не добавили способ восстановления пароля.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Нет прав доступа", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Комнаты не найдены…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Уведомления", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} пользователей печатают…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "obtainingLocation": "Получение местоположения…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "ok": "Ок", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Резервное копирование ключей на сервере включено", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Ой! К сожалению, при настройке push-уведомлений произошла ошибка.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Ой, что-то пошло не так…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Откройте приложение для чтения сообщений", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Открыть камеру", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "openInMaps": "Открыть на картах", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "or": "Или", + "@or": { + "type": "String", + "placeholders": {} + }, + "participant": "Участник", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "пароль или ключ восстановления", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Пароль", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Забыли пароль", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Пароль был изменён", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Восстановление пароля", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Закрепить", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Пожалуйста, выберите код доступа", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Пожалуйста, нажмите на ссылку в электронной почте, для того чтобы продолжить.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Пожалуйста, введите ваш пароль", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Пожалуйста, введите свой пин-код", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Пожалуйста, введите имя пользователя", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Следуйте инструкциям на веб-сайте и нажмите «Далее».", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "Конфиденциальность", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Публичные комнаты", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "Причина", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} отредактировал(а) событие", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactMessage": "Отредактировать сообщение", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reject": "Отказать", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} отклонил(а) приглашение", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Удалить", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Удалить все другие устройства", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Разблокировать в чате", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Удалить свой аватар", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Заменить комнату более новой версией", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "Ответить", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Сообщить о сообщении", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Комната обновлена", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Версия комнаты", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Сохранить файл", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "search": "Поиск", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "Безопасность", + "@security": { + "type": "String", + "placeholders": {} + }, + "send": "Прислать", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Отправить сообщение", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Отправить как текст", + "@sendAsText": { + "type": "String" + }, + "sendAudio": "Отправить аудио", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Отправить файл", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Отправить изображение", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Отправить сообщения", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Отправить видео", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username} отправил(а) файл", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username} отправил(а) аудио", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username} отправил(а) изображение", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} отправил(а) стикер", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} отправил(а) видео", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} отправил(а) информацию о звонке", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setAsCanonicalAlias": "Установить как основной псевдоним", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "setStatus": "Задать статус", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Настройки", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Поделиться", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} поделился(ась) местоположением", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "shareLocation": "Поделиться местоположением", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "skip": "Пропустить", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Исходный код", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "Публичное пространство", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Название пространства", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} начал(а) звонок", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "status": "Статус", + "@status": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Как у вас сегодня дела?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Отправить", + "@submit": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Синхронизация… Пожалуйста, подождите.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Системная", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Они не совпадают", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Они совпадают", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Слишком много запросов. Пожалуйста, повторите попытку позже!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Попробуйте отправить ещё раз", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} разблокировал(а) {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Разблокировать устройство", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Неизвестное устройство", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Неизвестный алгоритм шифрования", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Неизвестное событие '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Включить уведомления", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Открепить", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} и еще {count} печатают…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} и {username2} печатают…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} печатает…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪 {username} покинул(а) чат", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} отправил(а) событие типа \"{type}\"", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verified": "Проверено", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Начать проверку", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Вы успешно проверены!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Проверка другой учётной записи", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Видимость истории чата", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Видима для всех участников", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Видна всем", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Отправить голосовое сообщение", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Жду, когда партнер примет запроc…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Жду, когда партнер примет эмодзи…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "В ожидании партнёра, чтобы принять числа…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Предупреждение!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Мы отправили вам электронное письмо", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Кто и какое действие может выполнять", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Кому разрешено вступать в эту группу", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Почему вы хотите сообщить об этом?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "По этим адресам вы можете восстановить свой пароль.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Напишите сообщение…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Да", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Вы", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Вы больше не участвуете в этом чате", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Вы были заблокированы в этом чате", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Ваш открытый ключ", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "Добавить в пространство", + "scanQrCode": "Сканировать QR-код", + "sendOnEnter": "Отправлять по Enter", + "bundleName": "Название пакета", + "removeFromBundle": "Удалить из этого пакета", + "addToBundle": "Добавить в пакет", + "editBundlesForAccount": "Изменить пакеты для этой учетной записи", + "addAccount": "Добавить учетную запись", + "link": "Ссылка", + "oneClientLoggedOut": "Один из ваших клиентов вышел", + "unverified": "Не проверено", + "commandHint_clearcache": "Очистить кэш", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_discardsession": "Удалить сеанс", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_dm": "Начните личный чат\nИспользуйте --no-encryption, чтобы отключить шифрование", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "messageInfo": "Информация о сообщении", + "openGallery": "Открыть галерею", + "removeFromSpace": "Удалить из пространства", + "commandHint_create": "Создайте пустой групповой чат\nИспользуйте --no-encryption, чтобы отключить шифрование", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "sender": "Отправитель", + "time": "Время", + "repeatPassword": "Повторите пароль", + "markAsRead": "Отметить как прочитанное", + "reportUser": "Сообщить о пользователе", + "reactedWith": "{sender} реагирует с {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "emojis": "Эмодзи", + "unsupportedAndroidVersion": "Неподдерживаемая версия Android", + "unsupportedAndroidVersionLong": "Для этой функции требуется более новая версия Android. Проверьте наличие обновлений или поддержку Lineage OS.", + "pinMessage": "Прикрепить к комнате", + "confirmEventUnpin": "Вы уверены, что хотите навсегда открепить событие?", + "youRejectedTheInvitation": "Вы отклонили приглашение", + "youAcceptedTheInvitation": "👍 Вы приняли приглашение", + "youUnbannedUser": "Вы разблокировали {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youJoinedTheChat": "Вы присоединились к чату", + "youKickedAndBanned": "🙅 Вы выгнали и заблокировали {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 Вы пригласили {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKicked": "👞 Вы выгнали {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youHaveWithdrawnTheInvitationFor": "Вы отозвали приглашение для {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youBannedUser": "Вы заблокировали {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 Вы были приглашены {user}", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "users": "Пользователи", + "storeSecurlyOnThisDevice": "Сохранить на этом устройстве", + "storeInAndroidKeystore": "Сохранить в Android KeyStore", + "storeInAppleKeyChain": "Сохранить в Apple KeyChain", + "user": "Пользователь", + "confirmMatrixId": "Пожалуйста, подтвердите Matrix ID, чтобы удалить свою учётную запись.", + "supposedMxid": "Это должно быть {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "custom": "Пользовательское", + "hydrate": "Восстановить из файла резервной копии", + "dehydrate": "Экспорт сеанса и очистка устройства", + "dehydrateWarning": "Это действие не может быть отменено. Убедитесь, что вы безопасно сохранили файл резервной копии.", + "newSpace": "Новое пространство", + "commandHint_markasdm": "Пометить как комнату личных сообщений", + "commandHint_markasgroup": "Пометить как группу", + "whyIsThisMessageEncrypted": "Почему это сообщение нечитаемо?", + "noKeyForThisMessage": "Это может произойти, если сообщение было отправлено до того, как вы вошли в свою учетную запись на данном устройстве.\n\nТакже возможно, что отправитель заблокировал ваше устройство или что-то пошло не так с интернет-соединением.\n\nВы можете прочитать сообщение на другой сессии? Тогда вы можете перенести сообщение с неё! Перейдите в Настройки > Устройства и убедитесь, что ваши устройства проверили друг друга. Когда вы откроете комнату в следующий раз и обе сессии будут открыты, ключи будут переданы автоматически.\n\nВы не хотите потерять ключи при выходе из системы или переключении устройств? Убедитесь, что вы включили резервное копирование чата в настройках.", + "fileIsTooBigForServer": "Отправка не удалась! Сервер поддерживает только вложения размером до {max}.", + "sorryThatsNotPossible": "Извините... это невозможно", + "openLinkInBrowser": "Открыть ссылку в браузере", + "fileHasBeenSavedAt": "Файл сохранён в {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "commandHint_cuddle": "Отправить объятия", + "readUpToHere": "Непрочитанное", + "commandHint_hug": "Отправить обнимашки", + "cuddleContent": "{senderName} нежно обнимает вас", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "hugContent": "{senderName} обнимает Вас", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "jump": "Перейти", + "doNotShowAgain": "Не показывать снова", + "newSpaceDescription": "Пространства позволяют объединять Ваши чаты и создавать частные или общедоступные сообщества.", + "disableEncryptionWarning": "В целях безопасности Вы не можете отключить шифрование в чате, где оно было включено.", + "noBackupWarning": "Внимание! Без резервного копиирования, Вы потеряете доступ к своим зашифрованным сообщениям. Крайне рекомендуется включить резервное копирование перед выходом.", + "noOtherDevicesFound": "Другие устройства не найдены", + "reportErrorDescription": "😭 О, нет. Что-то пошло не так. При желании вы можете сообщить об этой ошибке разработчикам.", + "report": "пожаловаться", + "jumpToLastReadMessage": "Последнее прочитанное сообщение", + "wasDirectChatDisplayName": "Пустой чат (был {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "encryptThisChat": "Зашифровать этот чат", + "reopenChat": "Открыть чат заново", + "commandHint_googly": "Отправить выпученные глаза", + "notAnImage": "Это не изображение.", + "importNow": "Импортировать сейчас", + "importEmojis": "Импортировать эмодзи", + "importFromZipFile": "Импортировать из .zip файла", + "exportEmotePack": "Экспортировать набор эмодзи как .zip", + "replace": "Заменить", + "googlyEyesContent": "{senderName} выпучил глаза", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "sendTypingNotifications": "Отправлять уведомления о наборе текста", + "createGroup": "Создать группу", + "tryAgain": "Повторите попытку", + "chatPermissions": "Права в чате", + "chatDescription": "Описание чата", + "chatDescriptionHasBeenChanged": "Описание чата изменено", + "noChatDescriptionYet": "Описание чата не создано.", + "invalidServerName": "Недопустимое имя сервера", + "optionalRedactReason": "(Необязательно) Причина редактирования...", + "redactMessageDescription": "Сообщение будет отредактировано для всех участников. Это необратимо.", + "messagesStyle": "Сообщения:", + "shareInviteLink": "Поделиться приглашением", + "redactedBy": "{username} отредактировал это событие", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactedByBecause": "{username} отредактировал это событие. Причина: \"{reason}\"", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "setChatDescription": "Установить описание чата", + "setColorTheme": "Цветовая тема:", + "invite": "Пригласить", + "inviteGroupChat": "📨 Вас пригласили в групповой чат", + "invalidInput": "Недопустимый ввод!", + "wrongPinEntered": "Wrong pin entered! Try again in {seconds} seconds...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "emoteKeyboardNoRecents": "Недавно использованные эмодзи появятся здесь...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "banUserDescription": "Заблокированные в чате пользователи не смогут перезайти в чат, пока они не будут разблокированны.", + "removeDevicesDescription": "Вы выйдете с этого устройства и больше не будете получать сообщения.", + "unbanUserDescription": "Пользователь сможет при желании зайти в чат снова.", + "pushNotificationsNotAvailable": "Push-уведомления недоступны", + "makeAdminDescription": "Как только вы назначите этого пользователя администратором, вы не сможете этого отменить, так как их права доступа и ваши будут одинаковы.", + "archiveRoomDescription": "Чат переместится в архив. Другим пользователям будет видно, что вы вышли из чата.", + "hasKnocked": "🚪 {user} постучался", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "learnMore": "Узнать больше", + "roomUpgradeDescription": "Затем чат будет воссоздан с новой версией комнаты. Все участники будут уведомлены о необходимости перейти в новый чат. Вы можете узнать больше о версиях комнат на https://spec.matrix.org/latest/rooms/", + "pleaseEnterANumber": "Пожалуйста введите число больше 0", + "kickUserDescription": "Пользователь будет изгнан из чата, но не будет заблокирован. В публичных чатах пользователь может перезайти когда угодно.", + "blockListDescription": "Вы можете заглушить тревожащих вас пользователей. Вы не будете получать сообщения или приглашения в комнату от пользователей из вашего личного чёрного списка.", + "blockedUsers": "Заглушённые пользователи", + "block": "Заглушить", + "blockUsername": "Игнорировать имя пользователя", + "createGroupAndInviteUsers": "Создать и начать приглашать", + "groupCanBeFoundViaSearch": "Группа может быть найдена поиском", + "noUsersFoundWithQuery": "К сожалению пользователей с именем \"{query}\" не найдено. Убедитесь, что вы не совершили опечатку.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "yourGlobalUserIdIs": "Ваш глобальный идентификатор - ", + "commandHint_sendraw": "Отправить сырой json", + "wrongRecoveryKey": "Простите... судя по всему это неверный ключ восстановления.", + "groupName": "Название группы", + "databaseMigrationTitle": "База данных оптимизированна", + "searchChatsRooms": "Поиск #чатов, @людей...", + "databaseMigrationBody": "Пожалуйста, подождите. Это может занять некоторое время.", + "publicSpaces": "Публичные пространства", + "passwordIsWrong": "Вы ввели неверный пароль", + "pleaseEnterYourCurrentPassword": "Пожалуйста, введите свой текущий пароль", + "nothingFound": "Ничего не найдено...", + "newPassword": "Новый пароль", + "passwordsDoNotMatch": "Пароли не совпадают", + "select": "Выбрать", + "pleaseChooseAStrongPassword": "Пожалуйста, подберите сильный пароль", + "leaveEmptyToClearStatus": "Чтобы очистить статус, оставьте поле пустым.", + "joinSpace": "Присоединиться к пространству", + "searchForUsers": "Поиск @пользователей...", + "thisDevice": "Данное устройство:", + "initAppError": "Произошла ошибка при запуске приложения", + "sessionLostBody": "Ваш сеанс утерян. Пожалуйста, сообщите об этой ошибке разработчикам по адресу {url}. Сообщение об ошибке: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "restoreSessionBody": "Приложение пытается восстановить сеанс из резервной копии. Пожалуйста, сообщите об этой ошибке разработчикам по адресу {url}. Сообщение об ошибке: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "addChatOrSubSpace": "Добавить чат или субпространство", + "sendReadReceipts": "Отправка квитанций о прочтении", + "verifyOtherUser": "🔐 Подтвердить другого пользователя", + "verifyOtherDevice": "🔐 Подтвердить другое устройство", + "sendReadReceiptsDescription": "Другие участники чата могут видеть, когда вы прочитали сообщение.", + "verifyOtherUserDescription": "Если вы подтвердите другого пользователя, то вы можете быть уверены зная, кому вы действительно пишете. 💪\n\nКогда вы начинаете подтверждение, вы и другой пользователь увидите всплывающее окно в приложении. Там вы увидите ряд чисел или эмодзи, которые вы должны сравнить друг с другом.\n\nЛучший способ сделать это - встретиться в реальной жизни или по видео звонку. 👭", + "verifyOtherDeviceDescription": "При подтверждении другого устройства эти устройства могут обмениваться ключами, повышая общую безопасность. 💪 При запуске подтверждения в приложении на обоих устройствах появится всплывающее окно. Там вы увидите ряд чисел или эмодзи, которые вы должны сравнить друг с другом. Лучше иметь оба устройства под рукой перед началом проверки. 🤳", + "formattedMessagesDescription": "Отображать содержимое расширенных сообщений, такой как жирный текст, с помощью Markdown.", + "acceptedKeyVerification": "{sender} принял(а) подтверждение ключей", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "canceledKeyVerification": "{sender} отклонил(а) подтверждение ключей", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "sendTypingNotificationsDescription": "Другие участники чата могут видеть, когда вы набираете новое сообщение.", + "formattedMessages": "Форматированные сообщения", + "startedKeyVerification": "{sender} начал(а) подтверждение ключей", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "{sender} готов(а) к подтверждению ключей", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "requestedKeyVerification": "{sender} запросил(а) подтверждение ключей", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "completedKeyVerification": "{sender} завершил(а) подтверждение ключей", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "incomingMessages": "Входящие сообщения", + "stickers": "Стикеры", + "discover": "Исследовать", + "globalChatId": "ID глобального чата", + "customEmojisAndStickersBody": "Добавить или поделиться пользовательскими эмодзи или стикерами, которые могут быть применены в любом чате.", + "knocking": "Стучаться", + "accessAndVisibility": "Доступность и видимость", + "publicChatAddresses": "Адресы публичного чата", + "accessAndVisibilityDescription": "Кому разрешено войти в этот чат и как этот чат может быть обнаружен.", + "noDatabaseEncryption": "Шифрование базы данных не поддерживается на этой платформе", + "appLockDescription": "Заблокировать приложение когда не используется пин код", + "calls": "Звонки", + "customEmojisAndStickers": "Пользовательские эмодзи и стикеры", + "hideRedactedMessages": "Скрыть редактированные сообщения", + "hideInvalidOrUnknownMessageFormats": "Скрыть неправильные или неизвестные форматы сообщения", + "hideRedactedMessagesBody": "Если кто-то редактирует сообщение, оно будет скрыто в чате.", + "passwordRecoverySettings": "Настройки восстановления пароля", + "knock": "Постучаться", + "usersMustKnock": "Пользователи должны постучаться", + "noOneCanJoin": "Никто не может присоединиться", + "chatCanBeDiscoveredViaSearchOnServer": "Чат может быть обнаружен через поиск в {server}", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "createNewAddress": "Создать новый адрес", + "commandHint_ignore": "Игнорировать данный matrix ID", + "commandHint_unignore": "Не игнорировать данный matrix ID", + "searchIn": "Поиск в чате \"{chat}\"...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "searchMore": "Найти еще...", + "gallery": "Галерея", + "files": "Файлы", + "swipeRightToLeftToReply": "Для ответа проведите справа налево", + "userLevel": "{level} - Пользователь", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "moderatorLevel": "{level} - Модератор", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "adminLevel": "{level} - Администратор", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeGeneralChatSettings": "Изменить общие настройки чата", + "changeTheChatPermissions": "Изменить права доступа к чату", + "changeTheDescriptionOfTheGroup": "Изменить описание чата", + "inviteOtherUsers": "Пригласить других пользователей в этот чат", + "changeTheVisibilityOfChatHistory": "Изменить видимость истории чата", + "unread": "Непрочитанные", + "space": "Пространство", + "markAsUnread": "Отметить как непрочитанное", + "goToSpace": "Перейти к пространству: {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "sendCanceled": "Отправка отменена", + "noChatsFoundHere": "Не было найдено ни одного чата. Начать с кем-нибудь новый чат можно, нажав кнопку ниже. ⤵️", + "updateInstalled": "🎉 Обновление {version} успешно установлено!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "changelog": "Список изменений", + "doesNotSeemToBeAValidHomeserver": "Этот домашний сервер выглядит несовместимым. Нет ли в ссылке опечаток?", + "noMoreChatsFound": "Больше чатов не обнаружено...", + "oneOfYourDevicesIsNotVerified": "Одно из ваших устройств не подтверждено", + "chatPermissionsDescription": "Задайте уровень власти, необходимый для совершения определённых действий в этом чате. Уровни власти 0, 50 и 100 обычно означают пользователей, модераторов и администраторов соответственно, но любая градация также возможна.", + "sendRoomNotifications": "Упоминать @room", + "calculatingFileSize": "Вычисление размера файла...", + "noticeChatBackupDeviceVerification": "Примечание: Если вы подключите все свои устройства к резервному копированию чатов, то они автоматически станут подтверждёнными.", + "changeTheCanonicalRoomAlias": "Изменить основной общедоступный адрес чата", + "loginWithMatrixId": "Войти через Matrix ID", + "serverInformation": "Информация о сервере:", + "noContactInformationProvided": "Сервер не предоставляет никакой правдивой контактной информации", + "aboutHomeserver": "О сервере {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "boldText": "Жирный шрифт", + "strikeThrough": "Перечёркнутый", + "pleaseFillOut": "Пожалуйста, заполните", + "invalidUrl": "Неверный url-адрес", + "addLink": "Добавить ссылку", + "italicText": "Italic", + "unableToJoinChat": "Невозможно присоединиться к чату. Возможно, другая сторона уже закончила разговор.", + "continueText": "Продолжить", + "blur": "Размытие:", + "opacity": "Прозрачность:", + "setWallpaper": "Установить обои", + "manageAccount": "Управление аккаунтом", + "contactServerAdmin": "Админ сервера", + "contactServerSecurity": "Безопасность контактов сервера", + "supportPage": "Страница поддержки", + "name": "Имя", + "version": "Версия", + "website": "Сайт", + "sendImages": "Отправить {count} изображение", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "compress": "Сжатие", + "notificationRuleMessage": "Сообщение", + "appWantsToUseForLoginDescription": "Вы позволяете приложению и веб-сайту делиться информацией о вас.", + "newChatRequest": "📩 Запрос нового чата", + "allDevices": "Все устройства", + "roomNotificationSettings": "Настройки уведомлений комнаты", + "notificationRuleContainsUserName": "Содержит имя пользователя", + "notificationRuleMaster": "Отключить все уведомления", + "notificationRuleSuppressNoticesDescription": "Отключить уведомления от автоматизированных клиентов, таких как боты.", + "notificationRuleInviteForMe": "Приглашение для меня", + "notificationRuleMemberEventDescription": "Отключить уведомления о событиях о членстве.", + "notificationRuleIsRoomMention": "Упоминание комнаты", + "notificationRuleReactionDescription": "Отключить уведомления о реакциях.", + "notificationRuleCall": "Звонок", + "notificationRuleSuppressEditsDescription": "Отключить уведомления о отредактированных сообщениях.", + "notificationRuleEncrypted": "Зашифровано", + "more": "Больше", + "synchronizingPleaseWaitCounter": " Синхронизация… ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "appWantsToUseForLogin": "Использовать '{server}' для входа", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "contentNotificationSettings": "Настройки уведомлений по тексту", + "generalNotificationSettings": "Общие настройки уведомлений", + "userSpecificNotificationSettings": "Настроки уведомлений пользователя", + "otherNotificationSettings": "Другие настройки уведомлений", + "notificationRuleContainsUserNameDescription": "Уведомляет пользователя, когда сообщение содержит его имя пользователя.", + "notificationRuleMasterDescription": "Перекрывает все другие правила и отключает все уведомления.", + "notificationRuleSuppressNotices": "Отключить автоматические сообщения", + "notificationRuleIsUserMention": "Упоминание пользователя", + "notificationRuleContainsDisplayName": "Содержит отображаемое имя", + "notificationRuleReaction": "Реакция", + "takeAPhoto": "Снять фото", + "recordAVideo": "Записать видео", + "enterNewChat": "Введите новый чат", + "otherPartyNotLoggedIn": "Другая сторона в настоящее время не вошла в систему и поэтому не может получать сообщения!", + "open": "Открыть", + "waitingForServer": "Ожидание сервера...", + "previous": "Предыдущий", + "notificationRuleCallDescription": "Уведомляет пользователя про звонки.", + "notificationRuleEncryptedRoomOneToOne": "Шифрованная комната «Один на один»", + "notificationRuleEncryptedRoomOneToOneDescription": "Уведомляет пользователя про сообщение в зашифрованных комнатах «Один на один».", + "notificationRuleRoomOneToOne": "Комната «Один на один»", + "commandHint_roomupgrade": "Обновить комнату до указанной версии", + "notificationRuleInviteForMeDescription": "Уведомляет пользователя, когда его приглашают в комнату.", + "unknownPushRule": "Неизвестное правило оповещения '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "checkList": "Контрольный список", + "changedTheChatDescription": "{username} изменил описание чата", + "changedTheChatName": "{username} изменил(а) имя чата", + "notificationRuleMemberEvent": "Мероприятие участника", + "notificationRuleIsUserMentionDescription": "Уведомляет пользователя, когда он упоминается непосредственно в сообщении.", + "notificationRuleContainsDisplayNameDescription": "Уведомляет пользователя, когда сообщение содержит его имя отображения.", + "notificationRuleIsRoomMentionDescription": "Уведомляет пользователя о наличии упоминания о комнате.", + "notificationRuleRoomnotif": "Уведомление о комнате", + "notificationRuleRoomnotifDescription": "Уведомляет пользователя, когда сообщение содержит '@room'.", + "notificationRuleTombstone": "Надгробный камень", + "notificationRuleTombstoneDescription": "Уведомляет пользователя о сообщениях о деактивации комнаты.", + "notificationRuleRoomServerAcl": "ACL сервера комнаты", + "notificationRuleRoomServerAclDescription": "Удаляет уведомления о списках контроля доступа к серверу комнат (ACL).", + "notificationRuleSuppressEdits": "Подавление правки", + "notificationRuleRoomOneToOneDescription": "Уведомляет пользователя о сообщениях в разделах один на один.", + "notificationRuleMessageDescription": "Уведомляет пользователя об общих сообщениях.", + "notificationRuleEncryptedDescription": "Уведомляет пользователя о сообщениях в зашифрованных комнатах.", + "notificationRuleJitsi": "Джици", + "notificationRuleJitsiDescription": "Уведомляет пользователя о событиях виджета Jitsi.", + "notificationRuleServerAcl": "Запретить события ACL сервера", + "notificationRuleServerAclDescription": "Удаляет уведомления о событиях ACL сервера.", + "sentVoiceMessage": "️🎙️ {duration} - Голосовое сообщение от {sender}", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "deletePushRuleCanNotBeUndone": "Если вы удалите эту настройку уведомлений, это невозможно отменить.", + "shareKeysWith": "Поделиться ключами с...", + "shareKeysWithDescription": "Каким устройствам следует доверять, чтобы они могли читать ваши сообщения в зашифрованных чатах?", + "crossVerifiedDevicesIfEnabled": "Кросс-верифицированные устройства, если они включены", + "crossVerifiedDevices": "Кросс-верифицированные устройства", + "verifiedDevicesOnly": "Только проверенные устройства", + "optionalMessage": "(Необязательно) сообщение...", + "notSupportedOnThisDevice": "Не поддерживается на этом устройстве", + "approve": "Утверждать", + "youHaveKnocked": "Вы постучали", + "pleaseWaitUntilInvited": "Пожалуйста, подождите, пока кто-нибудь из комнаты не пригласит вас.", + "commandHint_logout": "Выйти из текущего устройства", + "commandHint_logoutall": "Выйти из всех активных устройств", + "displayNavigationRail": "Показать навигационный рельс на мобильном устройстве", + "customReaction": "Пользовательская реакция", + "moreEvents": "Больше событий", + "declineInvitation": "Отказаться от приглашения", + "noMessagesYet": "Пока нет сообщений", + "longPressToRecordVoiceMessage": "Нажмите длиннее, чтобы записать голосовое сообщение.", + "pause": "Пауза", + "resume": "Продолжить", + "removeFromSpaceDescription": "Чат будет удален из пространства, но все равно появится в вашем списке чатов.", + "countChats": "{chats} чатов", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "spaceMemberOf": "Участник пространства из {spaces}", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "Участник пространства из {spaces} может постучать", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "startPoll": "Начать опрос", + "endPoll": "Завершить опрос", + "answersVisible": "Ответы видны", + "pollQuestion": "Вопрос по опросу", + "answerOption": "Вариант ответа", + "addAnswerOption": "Добавить вариант ответа", + "allowMultipleAnswers": "Разрешить несколько ответов", + "pollHasBeenEnded": "Опрос завершен", + "answersWillBeVisibleWhenPollHasEnded": "Ответы будут видны после завершения опроса", + "replyInThread": "Ответить в ветке", + "thread": "Ветка", + "backToMainChat": "Вернуться в основной чат", + "saveChanges": "Сохранить изменения", + "createSticker": "Создать стикер или эмоджи", + "useAsSticker": "Использовать как стикер", + "useAsEmoji": "Использовать в качестве эмоджи", + "stickerPackNameAlreadyExists": "Имя набора стикеров уже существует", + "newStickerPack": "Новая упаковка стикеров", + "stickerPackName": "Имя упаковки стикеров", + "attribution": "Атрибуция", + "skipChatBackup": "Пропустить резервную копию чата", + "skipChatBackupWarning": "Вы уверены? Без включения резервного копирования чата вы можете потерять доступ к своим сообщениям, если переключите устройство.", + "createNewAccount": "Создать новый аккаунт", + "theProcessWasCanceled": "Процесс был отменен.", + "noMoreResultsFound": "Ничего не найдено", + "countInvited": "{count} приглашенных", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadCountMoreParticipants": "Загрузить ещё {count} участников", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "versionWithNumber": "Версия: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "Архивные записи", + "advancedConfigs": "Расширенные Настройки", + "advancedConfigurations": "Расширенные конфигурации", + "signUpGreeting": "FluffyChat децентрализорован! Выберите сервер, где вы хотите сделать свой аккаунт и заходите!", + "signInGreeting": "У вас есть уже аккаунт в Matrix? Добро пожаловать! Выберите свой сервер и войдите.", + "join": "Присоединиться", + "countFiles": "{count} файлов", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "unreadChatsInApp": "{appname}: {unread} непрочитанных чатов", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "thereAreCountUsersBlocked": "Сейчас {count} пользователей заблокировано.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "countVotes": "{count, plural, =1{Один голос} other{{count} голоса(-ов)}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "countReplies": "{count, plural, =1{Один ответ} other{{count} ответа(-ов)}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "chatSearchedUntil": "Чат индексируется до {time}", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "federationBaseUrl": "Основной URL федерации", + "clientWellKnownInformation": "Client-Well-Known Информация:", + "baseUrl": "URL ссылка базы", + "identityServer": "Сервер профилей:", + "signIn": "Войти", + "searchOrEnterHomeserverAddress": "Искать или ввести адрес сервера", + "matrixId": "Идентификатор Matrix", + "setPowerLevel": "Поставить уровень мощности", + "makeModerator": "Сделать модератором", + "makeAdmin": "Сделать админом", + "removeModeratorRights": "Убрать права у модератора", + "removeAdminRights": "Убрать права админа", + "powerLevel": "Уровень мощности", + "setPowerLevelDescription": "Уровни мощности определяют, что участник может делать в этой комнате и иногда варьируются в диапозоне 0 и 100.", + "owner": "Владелец", + "mute": "Заглушить", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "createNewChat": "Сделать новый чат", + "reset": "Сброс", + "supportFluffyChat": "Поддержать FluffyChat", + "support": "Поддержать", + "setLowPriority": "Установить маленький приоритет", + "unsetLowPriority": "Отменить низкий приоритет", + "playSoundOnNotification": "Проиграть звук, когда уведомления", + "addTag": "Добавить тег", + "removeTag": "Удалить тег", + "tagName": "Название тега", + "createNewTag": "Создать новый тег", + "appSubtitle": "Защитить коммуникацию [matrix]", + "passphrasesMatch": "Кодовые фразы соовпадают", + "@passphrasesMatch": { + "type": "String", + "placeholders": {} + }, + "discardEdits": "У вас есть не внесённые изменения. Отменить внесённые изменения?", + "@discardEdits": { + "type": "String", + "placeholders": {} + }, + "noKeysTransmitted": "Ключи не переданы. Пожалуйста, попробуйте еще раз.", + "@noKeysTransmitted": { + "type": "String", + "placeholders": {} + }, + "showMore": "Показать больше", + "showLess": "Показать меньше", + "possibleByYou": "Этот релиз был только возможен из-за вашей поддержки. FluffyChat остаётся бесплатным, с открытым исходным кодом, и полностью управляется сообществом.", + "hideRoomsInSpaces": "Спрятать комнаты которые в пространстве", + "interactiveVerification": "Интерактивная верификация", + "waitingForKeys": "Ожидание ключей... Пожалуйста оставьте другое устройство активным.", + "@waitingForKeys": { + "type": "String", + "placeholders": {} + }, + "edited": "(изменено)", + "encryptedMessage": "Зашифрованное сообщение", + "unencryptedMessage": "Не зашифрованное сообщение", + "passphraseNumberRequirement": "Имеет одну цифру.", + "@passphraseNumberRequirement": { + "type": "String", + "placeholders": {} + }, + "messageCanOnlyBeReadByUser": "Ваше сообщение зашифровано сквозным шифрованием и только этот пользователь может его прочитать:", + "noUserKeyFound": "Не нашлось ключа пользователя", + "@noUserKeyFound": { + "type": "String", + "placeholders": {} + }, + "publicKey": "Публичный ключ: {key}", + "@publicKey": { + "type": "String", + "placeholders": { + "key": { + "type": "String" + } + } + }, + "deviceIdentityKey": "Ключ идентификации устройства", + "encrypting": "Шифруем", + "couldNotBeSent": "Не возможно отправить", + "restoreBootstrapDevicesDescription": "Пожалуйста выберите одно своё другое устройтво, чтобы верифицировать эту сессию:", + "@restoreBootstrapDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "unlock": "Разблокировать", + "@unlock": { + "type": "String", + "placeholders": {} + }, + "resetAccount": "Сбросить аккаунт", + "@resetAccount": { + "type": "String", + "placeholders": {} + }, + "openFile": "Открыть файл", + "@openFile": { + "type": "String", + "placeholders": {} + }, + "resetAccountWarning": "Когда вы сбрасываете ваш аккаунт, то вы потеряете доступ к вашим старым сообщениям навсегда. Все ваши устройства нужны будут верифицированы опять. Пожалуйста, только делайте это действие, когда у вас нет устройств, чтобы верифицировать вашу сессию и вы потеряли свой ключ восстановления и кодовую фразу!", + "@resetAccountWarning": { + "type": "String", + "placeholders": {} + }, + "newPassphrase": "Новая кодовая фраза", + "@newPassphrase": { + "type": "String", + "placeholders": {} + }, + "repeatPassphrase": "Повторите кодовую фразу", + "@repeatPassphrase": { + "type": "String", + "placeholders": {} + }, + "passphraseLengthRequirement": "Хотя-бы 12 символов.", + "@passphraseLengthRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseUpperAndLowerCaseRequirement": "Имеет прописные и строчные буквы.", + "@passphraseUpperAndLowerCaseRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseSpecialCharactersRequirement": "Имеет специальные символы.", + "@passphraseSpecialCharactersRequirement": { + "type": "String", + "placeholders": {} + }, + "saveAsFile": "Сохранить как файл", + "@saveAsFile": { + "type": "String", + "placeholders": {} + }, + "youAreReadyToStart": "Вы готовы начать!", + "knownSince": "Известен с:{date}", + "@knownSince": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + } + } + }, + "today": "Сегодня", + "sending": "Отправляется", + "generatingThumbnail": "Генерируется миниатюра", + "uploading": "Загружаем", + "yesterday": "Вчера", + "showThumbnailsInTimeline": "Показать миниатюры картинок и видео", + "appDescription": "Общайтесь зашифрованным образом по децентрализованной сети [matrix] простым и доступным для всех способом.", + "interactiveVerificationDescription": "Если вы находитесь рядом с собеседником, либо общаетесь с помощью другого надёжного канала связи, вы можете подтвердить ваши устройства, сравнив ключи шифрования или эмодзи.", + "countUnverifiedDevices": "В этом чате {count} устройств не подтверждены.", + "@countUnverifiedDevices": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "messageCanOnlyBeReadByUsers": "Ваши сообщения защищены сквозным шифрованием, и их могут прочесть только:", + "restoreBootstrapEmptyDevicesDescription": "Пожалуйста, введите код доступа или ключ восстановления, чтобы подтвердить устройство и получить доступ к зашифрованным сообщениям.", + "@restoreBootstrapEmptyDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "restoreCryptoIdentity": "Восстановить крипто-идентичность", + "@restoreCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "resetCryptoIdentity": "Сбросить крипто-идентичность", + "@resetCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "setUpCryptoIdentity": "Настроить крипто-идентичность", + "@setUpCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "newPassphraseDescription": "FluffyChat защищает ваши сообщения сквозным шифрованием. Чтобы не потерять ваши сообщения, пожалуйста, придумайте сильную кодовую фразу, чтобы защитить вашу крипто-идентичность и легко восстанавливать зашифрованные сообщения.", + "@newPassphraseDescription": { + "type": "String", + "placeholders": {} + }, + "storeRecoveryKeyDescription": "Имейте в виду, что ваш ключ восстановления позволяет полностью восстановить ваши зашифрованные сообщения и крипто-идентичность.", + "@storeRecoveryKeyDescription": { + "type": "String", + "placeholders": {} + }, + "unsignedDevice": "Неподтверждённое устройство", + "@unsignedDevice": { + "type": "String", + "placeholders": {} + }, + "signedDevice": "Подтверждённое устройство", + "@signedDevice": { + "type": "String", + "placeholders": {} + }, + "noCurve25519KeyFound": "Ключ Curve25519 не найден", + "@noCurve25519KeyFound": { + "type": "String", + "placeholders": {} + }, + "messageNotDecryptable": "Не удалось расшифровать сообщение" +} \ No newline at end of file diff --git a/lib/l10n/intl_sk.arb b/lib/l10n/intl_sk.arb new file mode 100644 index 0000000..070c56d --- /dev/null +++ b/lib/l10n/intl_sk.arb @@ -0,0 +1,1221 @@ +{ + "@@locale": "sk", + "@@last_modified": "2021-08-14 12:41:09.879987", + "about": "O aplikácii", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Prijať", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "{username} prijali pozvánku", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Účet", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "{username} aktivovali koncové šifrovanie", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "admin": "Administrátor", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "alias", + "@alias": { + "type": "String", + "placeholders": {} + }, + "anyoneCanJoin": "Ktokoľvek sa môže pripojiť", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "archive": "Archivovať", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Môžu sa pripojiť hostia", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Ste si istí?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Na overenie tejto osoby, prosím zadajte prístupovu frázu k \"bezpečému úložisku\" alebo \"klúč na obnovu\".", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Akcepovať žiadosť o verifikáciu od {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "banFromChat": "Zabanovať z chatu", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Zabanovaný", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} zabanoval {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Zakázať zariadenie", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "cancel": "Zrušiť", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} si zmenili svôj avatar", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} zmenili nastavenie oprávnení chatu", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} si zmenili prezývku na: {displayname}", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} zmenili prístupové práva pre hosťov", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} zmenili prístupové práva pro hosťov na: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} zmenili nastavenie viditelnosti histórie chatu", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} zmenili nastavenie viditelnosti histórie chatu na: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} zmenili nastavenie pravidiel pripojenia", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} zmenili nastavenie pravidiel pripojenia na: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} si zmenili profilový obrázok", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} zmenili nastavenie aliasov chatu", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} zmenili odkaz k pozvánke do miestnosti", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changeTheHomeserver": "Zmeniť použitý server", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Zmena štýlu", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Zmeniť názov skupiny", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "Šifrovanie bolo poškodené", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Chat", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Podrobnosti o chate", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Vyberte si silné heslo", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "close": "Zavrieť", + "@close": { + "type": "String", + "placeholders": {} + }, + "compareEmojiMatch": "Porovnajte a uistite sa, že nasledujúce emotikony sa zhodujú na oboch zariadeniach:", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Porovnajte a uistite sa, že nasledujúce čísla sa zhodujú na oboch zariadeniach:", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Kontakt bol pozvaný do skupiny", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Skopírované do schránky", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Kopírovať", + "@copy": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Nebolo možné dešifrovať správu: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count} účastníkov", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Vytvoriť", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "{username} založili chat", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "currentlyActive": "Momentálne prítomní", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Tmavá", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "delete": "Odstrániť", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Odstrániť správu", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Zariadenia", + "@devices": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Prezývka bola zmenená", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Stiahnuť súbor", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Zmeniť prezývku", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Emotikon už existuje!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Nesprávné označenie emotikonu!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Kód emotikonu", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Prázdny chat", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Šifrovanie už nebude možné vypnúť. Ste si tým istí?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encryption": "Šifrovanie", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Šifrovanie nie je aktívne", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "forward": "Preposlať", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Od pripojenia", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Od pozvania", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Skupina", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "Skupina je verejná", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Skupina s {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Hostia sú zakázaní", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Hostia sa môžu pripojiť", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} vzal späť pozvánku pre {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Pomoc", + "@help": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Nesprávna prístupová fráza alebo kľúč na obnovenie", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Pozvať kontakt", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Pozvať kontakt do {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "Pozvanie", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "{username} pozvali {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Len pozvaní používatelia", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} vás pozval na FluffyChat.\n1. Nainštalujte si FluffyChat: https://fluffychat.im\n2. Zaregistrujte sa alebo sa prihláste\n3. Otvorte odkaz na pozvánku: {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "píše…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "{username} sa pripojili do chatu", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "kicked": "{username} vyhodili {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "{username} vyhodili a zabanovali {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Vyhodiť z chatu", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Naposledy prítomní: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Opustiť", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Opustili chat", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Svetlá", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Načítať ďalších {count} účastníkov", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "Načítava sa… Čakajte prosím.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Načítať viac…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "login": "Prihlásiť sa", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Prihlásenie k {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Odhlásiť sa", + "@logout": { + "type": "String", + "placeholders": {} + }, + "moderator": "Moderátor", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Stlmiť chat", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "Nová správa v FluffyChate", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Nová žiadosť o verifikáciu!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Nenašli sa žiadne emotikony. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Zdá sa, že nemáte žiadne služby Googlu v telefóne. To je dobré rozhodnutie pre vaše súkromie! Ak chcete dostávať push notifikácie vo FluffyChat, odporúčame používať microG: https://microg.org/.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Chýba povolenie", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Nenašli sa žiadne miestnosti…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "ok": "ok", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Online záloha kľúčov je zapnutá", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Och! Niečo sa pokazilo…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Na prečítanie správy otvorte aplikáciu", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Otvoriť fotoaparát", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "prístupová fráza alebo kľúč na obnovenie", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Heslo", + "@password": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Prosím zadajte svoje heslo", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Zadajte svoje používateľské meno", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Verejné miestnosti", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} odstránili udalosť", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "reject": "Odmietnuť", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} odmietli pozvánku", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Odstrániť", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Odstráňiť všetky ostatné zariadenia", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Odblokovať", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "reply": "Odpovedať", + "@reply": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Miestnosť bola upgradeovaná", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "send": "Odoslať", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Odoslať správu", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Odoslať súbor", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Odoslať obrázok", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "{username} poslali súbor", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "{username} poslali zvukovú nahrávku", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "{username} poslali obrázok", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "{username} poslali nálepku", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "{username} poslali video", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "setStatus": "Nastaviť status", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Nastavenia", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Zdieľať", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} zdieľa lokáciu", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "skip": "Preskočiť", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Zdrojový kód", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Ako sa dnes máte?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Odoslať", + "@submit": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Systémová farba", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Sa nezhodujú", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Zhodujú sa", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Skúsiť znova odoslať", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} odbanovali {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Odblokovať zariadenie", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Neznáme zariadenie", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Neznámy šifrovací algoritmus", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Neznáma udalosť „{type}“", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Zrušiť stlmenie chatu", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} a {count} dalších píšu…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} a {username2} píšu…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} píše…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "{username} opustili chat", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} poslali udalosť {type}", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verifyStart": "Spustiť verifikáciu", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Verifikácia bola úspešná!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Verifikujem protiľahlý účet", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Viditeľnosť histórie chatu", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Viditeľné pre všetkých účastníkov", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Viditeľné pre každého", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Hlasová správa", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Čaká sa, kým partner prijme požiadavku…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Čaká sa, kým partner prijme emotikon…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Čaká sa na to, kým partner prijme čísla…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Kto môže vstúpiť do tejto skupiny", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Napísať správu…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Áno", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Vy", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Už sa nezúčastňujete tohto chatu", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Máte zablokovaný prístup k tomuto chatu", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "chats": "Čety", + "@chats": { + "type": "String", + "placeholders": {} + }, + "changePassword": "Zmeniť heslo", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeDeviceName": "Zmeniť názov zariadenia", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} prevzal hovor", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "sendAudio": "Poslať zvuk", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "addEmail": "Pridať email", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "appLock": "Uzamknutie aplikácie", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "security": "Bezpečnosť", + "@security": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Nahlásiť správu", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Verzia miestnosti", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Poslať správy", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "joinRoom": "Pripojiť sa k miestnosti", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "badServerLoginTypesException": "Server podporuje tieto typy prihlásenia:\n{serverVersions}\nAle táto aplikácia podporuje iba:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "chatBackup": "Záloha chatov", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "Pridať do priestoru", + "cantOpenUri": "Nemožno otvoriť identifikátor prostriedku {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "repeatPassword": "Zopakujte heslo", + "all": "Všetky", + "@all": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Ste si istí, že sa chcete odhlásiť?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "sendOnEnter": "Odoslať pri vstupe", + "ignoredUsers": "Ignorovaní užívatelia", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "ignore": "Ignorovať", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "search": "Hľadať", + "@search": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Poslať ako text", + "@sendAsText": { + "type": "String" + }, + "sendVideo": "Poslať video", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "importNow": "Importovať teraz", + "editImage": "Upraviť obrázok", + "@editImage": { + "type": "String", + "placeholders": {} + }, + "rotateLeft": "Natočiť vľavo", + "@rotateLeft": { + "type": "String", + "placeholders": {} + }, + "rotateRight": "Natočiť vpravo", + "@rotateRight": { + "type": "String", + "placeholders": {} + } +} diff --git a/lib/l10n/intl_sl.arb b/lib/l10n/intl_sl.arb new file mode 100644 index 0000000..c8469a3 --- /dev/null +++ b/lib/l10n/intl_sl.arb @@ -0,0 +1,1926 @@ +{ + "repeatPassword": "Ponovite geslo", + "about": "O aplikaciji", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Sprejmi", + "@accept": { + "type": "String", + "placeholders": {} + }, + "account": "Račun", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "Uporabnik {username} je aktiviral šifriranje od konca do konca", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "Dodajte e-pošto", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "Dodajte v prostor", + "alias": "vzdevek", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Vse", + "@all": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "Oseba {senderName} je odgovorila na klic", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Pridruži se lahko vsak", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "Zaklepanje aplikacije", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Če želite podpisati drugo osebo, vnesite geslo za varno trgovino ali obnovitveni ključ.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Ali želite sprejeti to zahtevo za preverjanje od {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "autoplayImages": "Samodejno predvajajte animirane nalepke in čustva", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "badServerLoginTypesException": "Domači strežnik podpira vrste prijave:\n{serverVersions}\nToda ta aplikacija podpira samo:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "sendOnEnter": "Pošlji ob vstopu", + "banFromChat": "Prepoved klepeta", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Prepovedano", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} je prepovedan v {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Blokirana naprava", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "Blokirano", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "Prekliči", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "URI-ja {uri} ni mogoče odpreti", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changedTheChatAvatar": "{username} je spremenil avatar za klepet", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} je spremenila dovoljenja za klepet", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} je spremenil svoje prikazno ime v: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} je spremenila pravila dostopa za goste", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} je spremenila pravila dostopa za goste v: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} je spremenil vidnost zgodovine v: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} je spremenil pravila za pridružitev", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} je spremenila pravila pridružitve v: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} je spremenil avatar", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} je spremenil vzdevke sobe", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} je spremenil povezavo za povabilo", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Spremeni geslo", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Spremenite domači strežnik", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Spremenite svoj slog", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Spremenite ime skupine", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Spremenite svoj avatar", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "chat": "Klepet", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Varnostno kopiranje klepeta", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Podrobnosti klepeta", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Klepeti", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Izberite močno geslo", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Počisti arhiv", + "close": "Zapri", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "Izključi določenega uporabnika iz te sobe", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_html": "Pošljite besedilo v obliki HTML", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Povabi danega uporabnika v to sobo", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "Pridružite se dani sobi", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "Odstranite danega uporabnika iz te sobe", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_me": "Opisi sebe", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_myroomavatar": "Nastavite svojo sliko za to sobo", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_op": "Nastavite raven moči danega uporabnika (privzeto: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_react": "Pošljite odgovor kot reakcijo", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_send": "Pošlji besedilo", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_unban": "Prekliči izključitev določenega uporabnika iz te sobe", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandInvalid": "Ukaz ni veljaven", + "@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": "Primerjajte in se prepričajte, da se naslednji emoji ujemajo s tistimi iz druge naprave:", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Primerjajte in se prepričajte, da se naslednje številke ujemajo s številkami druge naprave:", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Konfigurirajte klepet", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "archive": "Arhiv", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Ali si prepričan?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "{username} je sprejel povabilo", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "areYouSureYouWantToLogout": "Ali ste prepričani, da se želite odjaviti?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Ali se lahko gostujoči uporabniki pridružijo", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "admin": "Admin", + "@admin": { + "type": "String", + "placeholders": {} + }, + "changeDeviceName": "Spremenite ime naprave", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheHistoryVisibility": "{username} je spremenila vidnost zgodovine", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "channelCorruptedDecryptError": "Šifriranje je poškodovano", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "Vsebina je bila prijavljena skrbnikom strežnika", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "commandHint_myroomnick": "Nastavite prikazno ime za to sobo", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "contactHasBeenInvitedToTheGroup": "Kontakt je bil povabljen v skupino", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "commandHint_leave": "Zapusti to sobo", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_plain": "Pošlji neformatirano besedilo", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "copiedToClipboard": "Kopirano v odložišče", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Kopiraj", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Kopiraj v odložišče", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Sporočila ni bilo mogoče dešifrirati: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count} udeležencev", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Ustvari", + "@create": { + "type": "String", + "placeholders": {} + }, + "createNewSpace": "Nov prostor", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "Trenutno aktiven", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Temno", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Privzeta raven dovoljenja", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "{username} je ustvaril klepet", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "S tem boste deaktivirali vaš uporabniški račun. Tega ni mogoče razveljaviti! Ali si prepričan?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "@obtainingLocation": { + "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" + } + } + }, + "@reply": { + "type": "String", + "placeholders": {} + }, + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "@encryption": { + "type": "String", + "placeholders": {} + }, + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "@newVerificationRequest": { + "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": {} + }, + "@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": {} + }, + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "@remove": { + "type": "String", + "placeholders": {} + }, + "@writeAMessage": { + "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" + } + } + }, + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "@next": { + "type": "String", + "placeholders": {} + }, + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "@editRoomAliases": { + "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": {} + }, + "@no": { + "type": "String", + "placeholders": {} + }, + "@unpin": { + "type": "String", + "placeholders": {} + }, + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@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": {} + }, + "@reason": { + "type": "String", + "placeholders": {} + }, + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "@edit": { + "type": "String", + "placeholders": {} + }, + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "@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": {} + }, + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@submit": { + "type": "String", + "placeholders": {} + }, + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@participant": { + "type": "String", + "placeholders": {} + }, + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "@yes": { + "type": "String", + "placeholders": {} + }, + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "@help": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@delete": { + "type": "String", + "placeholders": {} + }, + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "@moderator": { + "type": "String", + "placeholders": {} + }, + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "@ok": { + "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!" + }, + "@sendAsText": { + "type": "String" + }, + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "@newChat": { + "type": "String", + "placeholders": {} + }, + "@notifications": { + "type": "String", + "placeholders": {} + }, + "@emoteSettings": { + "type": "String", + "placeholders": {} + }, + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "@mention": { + "type": "String", + "placeholders": {} + }, + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "@withTheseAddressesRecoveryDescription": { + "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" + } + } + }, + "@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": {} + }, + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "@forward": { + "type": "String", + "placeholders": {} + }, + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "@status": { + "type": "String", + "placeholders": {} + }, + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "@joinRoom": { + "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" + } + } + }, + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@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": {} + }, + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "@you": { + "type": "String", + "placeholders": {} + }, + "@search": { + "type": "String", + "placeholders": {} + }, + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "@logout": { + "type": "String", + "placeholders": {} + }, + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@groups": { + "type": "String", + "placeholders": {} + }, + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@messages": { + "type": "String", + "placeholders": {} + }, + "@login": { + "type": "String", + "placeholders": {} + }, + "@waitingPartnerNumbers": { + "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": {} + }, + "@settings": { + "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" + } + } + }, + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "@devices": { + "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" + } + } + }, + "@privacy": { + "type": "String", + "placeholders": {} + }, + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@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": {} + } +} \ No newline at end of file diff --git a/lib/l10n/intl_sq.arb b/lib/l10n/intl_sq.arb new file mode 100644 index 0000000..db0c28e --- /dev/null +++ b/lib/l10n/intl_sq.arb @@ -0,0 +1,1974 @@ +{ + "@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": {} + }, + "@admin": { + "type": "String", + "placeholders": {} + }, + "@directChats": { + "type": "String", + "placeholders": {} + }, + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "@close": { + "type": "String", + "placeholders": {} + }, + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "@reply": { + "type": "String", + "placeholders": {} + }, + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "@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": {} + }, + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@pickImage": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@reason": { + "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" + } + } + }, + "@help": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@delete": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@ok": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@account": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@notifications": { + "type": "String", + "placeholders": {} + }, + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "@emoteSettings": { + "type": "String", + "placeholders": {} + }, + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "@mention": { + "type": "String", + "placeholders": {} + }, + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "@withTheseAddressesRecoveryDescription": { + "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": {} + }, + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@allChats": { + "type": "String", + "placeholders": {} + }, + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "@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" + }, + "@cancel": { + "type": "String", + "placeholders": {} + }, + "@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" + }, + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@search": { + "type": "String", + "placeholders": {} + }, + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@logout": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@messages": { + "type": "String", + "placeholders": {} + }, + "@login": { + "type": "String", + "placeholders": {} + }, + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "@noGoogleServicesWarning": { + "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": {} + }, + "@settings": { + "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" + } + } + }, + "@privacy": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + } +} \ No newline at end of file diff --git a/lib/l10n/intl_sr.arb b/lib/l10n/intl_sr.arb new file mode 100644 index 0000000..e952ea2 --- /dev/null +++ b/lib/l10n/intl_sr.arb @@ -0,0 +1,2107 @@ +{ + "@@last_modified": "2021-08-14 12:41:09.857024", + "about": "О програму", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Прихвати", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "{username} прихвата позивницу", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Налог", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "{username} укључи шифровање с краја на крај", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "Додај е-адресу", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "admin": "Админ", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "алијас", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Сви", + "@all": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} одговори на позив", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "свако може да се придружи", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "Закључавање апликације", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "archive": "Архива", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Да ли је гостима дозвољен приступ", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Сигурни сте?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Заиста желите да се одјавите?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Да бисте могли да пријавите другу особу, унесите своју безбедносну фразу или кључ опоравка.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Прихватате ли захтев за верификацију од корисника {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "badServerLoginTypesException": "Домаћи сервер подржава начине пријаве:\n{serverVersions}\nали ова апликација подржава само:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "banFromChat": "Забрани у ћаскању", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Забрањен", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} забрани корисника {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Блокирај уређај", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "Блокиран", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "Откажи", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "changeDeviceName": "Промени назив уређаја", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} промени аватар ћаскања", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} измени дозволе ћаскања", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} промени приказно име на: „{displayname}“", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} измени правила за приступ гостију", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} измени правила за приступ гостију на: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} измени видљивост историје", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} измени видљивост историје на: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} измени правила приступања", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} измени правила приступања на: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} измени свој аватар", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} измени алијас собе", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} измени везу позивнице", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Измени лозинку", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Промени домаћи сервер", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Измените изглед", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Измени назив групе", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Измените свој аватар", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "Шифровање је покварено", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Ћаскање", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Копија ћаскања", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Детаљи ћаскања", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Ћаскања", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Изаберите јаку лозинку", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Очисти архиву", + "close": "Затвори", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "Блокирај задатог корисника за ову собу", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_html": "Шаљи ХТМЛ обликован текст", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Позови задатог корисника у собу", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "Придружи се наведеној соби", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "Уклони задатог корисника из собе", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "Напусти ову собу", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "Опишите себе", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_myroomnick": "Поставља ваш надимак за ову собу", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "Подеси ниво задатог корисника (подразумевано: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "Шаљи неформатиран текст", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "Шаљи одговор као реакцију", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_send": "Пошаљи текст", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_unban": "Скини забрану задатом кориснику за ову собу", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "compareEmojiMatch": "Упоредите и проверите да су емоџији идентични као на другом уређају:", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Упоредите и проверите да су следећи бројеви идентични као на другом уређају:", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Подешавање ћаскања", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Особа је позвана у групу", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "Садржај је пријављен администраторима сервера", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Копирано у клипборд", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Копирај", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Копирај у клипборд", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Не могу да дешифрујем поруку: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "учесника: {count}", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Направи", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "{username} направи ћаскање", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "currentlyActive": "Тренутно активно", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "тамни", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Ово ће деактивирати ваш кориснички налог. Не може се повратити! Сигурни сте?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Подразумевани ниво приступа", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "Обриши", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Обриши налог", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Брисање поруке", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Уређаји", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Директна ћаскања", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Име за приказ је измењено", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Преузми фајл", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "Уреди", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Уреди блокиране сервере", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Уреди име за приказ", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Уреди алијасе собе", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Уређује аватар собе", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Емоти већ постоји!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Неисправна скраћеница за емоти!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "скраћеница", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "празно ћаскање", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Глобално укључи пакет емотија", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Укључује шифровање", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Шифровање више нећете моћи да искључите. Сигурни сте?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Шифровано", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Шифровање", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Шифровање није укључено", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} заврши позив", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Унесите адресу е-поште", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "fontSize": "Величина фонта", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "Напред", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "од приступања", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "од позивања", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Група", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "Група је јавна", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "Групе", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Група са корисником {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "гости су забрањени", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "гости могу приступити", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} поништи позивницу за корисника {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Помоћ", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Сакриј непознате догађаје", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignore": "Игнориши", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Игнорисани корисници", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Кликнуо сам на везу", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Неисправна фраза или кључ опоравка", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Позивање особа", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Позови особу у групу {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "Позван", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "{username} позва корисника {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "само позвани корисници", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} вас позива у FluffyChat. \n1. Инсталирајте FluffyChat: https://fluffychat.im \n2. Региструјте се или пријавите \n3. Отворите везу позивнице: {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "куца…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "{username} се придружи ћаскању", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Придружи се соби", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "{username} избаци корисника {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "{username} избаци и забрани корисника {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Избаци из ћаскања", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Последња активност: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Напусти", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Напусти ћаскање", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "светли", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Учитај још {count} учесника", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "Учитавам… Сачекајте.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Учитај још…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "login": "Пријава", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Пријава на {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Одјава", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Спомени", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "Поруке", + "@messages": { + "type": "String", + "placeholders": {} + }, + "moderator": "Модератор", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Ућуткај ћаскање", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Ново ћаскање", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "Нова порука — FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Нови захтев за верификацију!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "Следеће", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "Не", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Нема везе са сервером", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Нема емотија. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Шифровање се може активирати након што соба престане да буде јавно доступна.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Чини се да немате Гугл услуге на телефону. То је добра одлука за вашу приватност! Да би се протурале нотификације у FluffyChat, препоручујемо коришћење https://microg.org/ или https://unifiedpush.org/", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "Још нисте одредили начин за опоравак лозинке.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Нема дозвола", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Нисам нашао собе…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Обавештења", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} корисника куца…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "ok": "у реду", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Резерва кључева на мрежи је укључена", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Нажалост, дошло је до грешке при подешавању дотурања обавештења.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Нешто је пошло наопако…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Отворите апликацију да прочитате поруке", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Отвори камеру", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "or": "или", + "@or": { + "type": "String", + "placeholders": {} + }, + "participant": "Учесник", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "фраза или кључ опоравка", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Лозинка", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Заборављена лозинка", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Лозинка је промењена", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Опоравак лозинке", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Закачи", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Изаберите код за пролаз", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Кликните на везу у примљеној е-пошти па наставите.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Унесите своју лозинку", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Унесите свој пин", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Унесите своје корисничко име", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Испратите упутства на веб сајту и тапните на „Следеће“.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "Приватност", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Јавне собе", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "Разлог", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} редигова догађај", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactMessage": "Редигуј поруку", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reject": "Одбиј", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} одби позивницу", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Уклони", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Уклони све остале уређаје", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Уклони изгнанство", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Уклоните свој аватар", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Замени собу новијом верзијом", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "Одговори", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Пријави поруку", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Соба је надограђена", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Верзија собе", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "search": "Претражи", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "Безбедност", + "@security": { + "type": "String", + "placeholders": {} + }, + "send": "Пошаљи", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Пошаљи поруку", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAudio": "Пошаљи аудио", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Пошаљи фајл", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Пошаљи слику", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Слање порука", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Пошаљи видео", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "{username} посла фајл", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "{username} посла аудио", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "{username} посла слику", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "{username} посла налепницу", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "{username} посла видео", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} посла податке о позиву", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setAsCanonicalAlias": "Постави као главни алијас", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "setStatus": "Постави статус", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Поставке", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Подели", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} подели локацију", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "skip": "Прескочи", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Изворни код", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} започе позив", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "status": "Стање", + "@status": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Како сте данас?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Пошаљи", + "@submit": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "системски", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Не поклапају се", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Поклапају се", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Превише упита. Покушајте касније!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Покушај слање поново", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} одблокира корисника {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Одблокирај уређај", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Непознат уређај", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Непознат алгоритам шифровања", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Непознат догађај „{type}“", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Врати обавештења", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Откачи", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} и {count} корисника куцају…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} и {username2} куцају…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} куца…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "{username} напусти ћаскање", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} посла {type} догађај", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verified": "Оверен", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Покрени верификацију", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Успешно сте верификовали!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Верификујем други налог", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Одреди видљивост историје", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "видљиво свим учесницима", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "видљиво свима", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Гласовна порука", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Чекам да саговорник прихвати захтев…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Чекам да саговорник прихвати емоџије…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Чекам да саговорник прихвати бројеве…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Упозорење!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Послали смо вам е-пошту", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "ко може шта да ради", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Ко може да се придружи групи", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Зашто желите ово да пријавите?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Са овим адресама можете опоравити своју лозинку.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "напишите поруку…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Да", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Ви", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Више не учествујете у овом ћаскању", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Забрањено вам је ово ћаскање", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Ваш јавни кључ", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "repeatPassword": "Ponovite lozinku", + "commandHint_cuddle": "Pošalji zagrljaj", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "@goToSpace": { + "type": "String", + "space": {} + }, + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "@sendAsText": { + "type": "String" + }, + "@commandInvalid": { + "type": "String" + }, + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@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." + }, + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "@youUnbannedUser": { + "placeholders": { + "user": { + "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" + } + } + }, + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@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" + } + } + } +} \ No newline at end of file diff --git a/lib/l10n/intl_sv.arb b/lib/l10n/intl_sv.arb new file mode 100644 index 0000000..b773964 --- /dev/null +++ b/lib/l10n/intl_sv.arb @@ -0,0 +1,2707 @@ +{ + "@@last_modified": "2021-08-14 12:41:09.835634", + "about": "Om", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Acceptera", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} accepterade inbjudan", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Konto", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} aktiverade ändpunktskryptering", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "admin": "Admin", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "alias", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Alla", + "@all": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} besvarade samtalet", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Vem som helst kan gå med", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "App-lås", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "archive": "Arkiv", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Får gästanvändare gå med?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Är du säker?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Är du säker på att du vill logga ut?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "För att kunna signera den andra personen, vänligen ange din lösenfras eller återställningsnyckel för säker lagring.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Acceptera denna verifikationsförfrågan från {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "banFromChat": "Bannlys från chatt", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Bannlyst", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} bannlös {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Blockera Enhet", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "cancel": "Avbryt", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "changeDeviceName": "Ändra enhetsnamn", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} ändrade sin chatt-avatar", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} ändrade chatt-rättigheterna", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} ändrade visningsnamnet till: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} ändrade reglerna för gästaccess", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} ändrade reglerna för gästaccess till: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} ändrade historikens synlighet", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} ändrade historikens synlighet till: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} ändrade anslutningsreglerna", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} ändrade anslutningsreglerna till {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} ändrade sin avatar", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} ändrade rummets alias", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} ändrade inbjudningslänken", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Ändra lösenord", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Ändra hemserver", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Ändra din stil", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Ändra namn på gruppen", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "Krypteringen har blivit korrupt", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Chatt", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Chatt-detaljer", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Välj ett starkt lösenord", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "close": "Stäng", + "@close": { + "type": "String", + "placeholders": {} + }, + "compareEmojiMatch": "Vänligen jämför uttryckssymbolerna", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Vänligen jämför siffrorna", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Konfigurera chatt", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Kontakten har blivit inbjuden till gruppen", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "Innehållet har rapporterats till server-admins", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Kopierat till urklipp", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Kopiera", + "@copy": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Kunde ej avkoda meddelande: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count} deltagare", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Skapa", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} skapade chatten", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "currentlyActive": "För närvarande aktiv", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Mörkt", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Detta kommer att avaktivera ditt konto. Det här går inte att ångra! Är du säker?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Standard behörighetsnivå", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "Radera", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Ta bort konto", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Ta bort meddelande", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Enheter", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Direkt chatt", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Visningsnamn har ändrats", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Ladda ner fil", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "Ändra", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "redigera blockerade servrar", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Ändra visningsnamn", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "redigera rumsavatar", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Dekalen existerar redan!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Ogiltig dekal-kod!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Dekal kod", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Tom chatt", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Aktivera dekal-paket globalt", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Aktivera kryptering", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Du kommer inte ha fortsatt möjlighet till att inaktivera krypteringen. Är du säker?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Krypterad", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Kryptering", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Kryptering är ej aktiverad", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} avslutade samtalet", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Ange en e-postaddress", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "forward": "Framåt", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Från att gå med", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Från inbjudan", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Grupp", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "Gruppen är publik", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "Grupper", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Gruppen med {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Gäster är förbjudna", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Gäster kan ansluta", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} har tagit tillbaka inbjudan för {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Hjälp", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Göm okända händelser", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignore": "Ignorera", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Ignorera användare", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Jag har klickat på länken", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Felaktig lösenordsfras eller åsterställningsnyckel", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Bjud in kontakt", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Bjud in kontakt till {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "Inbjuden", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username} bjöd in {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Endast inbjudna användare", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} bjöd in dig till FluffyChat.\n1. Besök fluffychat.im och installera appen\n2. Registrera dig eller logga in\n3. Öppna inbjudningslänk:\n {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "skriver…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} anslöt till chatten", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Anslut till rum", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username} sparkade ut {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} sparkade och bannade {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Sparka från chatt", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Senast aktiv: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Lämna", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Lämnade chatten", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Ljust", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Ladda {count} mer deltagare", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "Laddar... Var god vänta.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Ladda mer…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "login": "Logga in", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Logga in till {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Logga ut", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Nämn", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "Meddelanden", + "@messages": { + "type": "String", + "placeholders": {} + }, + "moderator": "Moderator", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Tysta chatt", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Ny chatt", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Nya meddelanden i FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Ny verifikationsbegäran!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "Nästa", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "Nej", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Ingen anslutning till servern", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Hittade inga dekaler. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "De ser ut som att du inte har google-tjänster på din telefon. Det är ett bra beslut för din integritet! För att få aviseringar i FluffyChat rekommenderar vi att använda https://microg.org/ eller https://unifiedpush.org/ .", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "Du har inte lagt till något sätt för att återställa ditt lösenord än.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Ingen behörighet", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Hittade inga rum…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Aviseringar", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} användare skriver…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "ok": "Ok", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Online Nyckel-backup är aktiverad", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Hoppsan, något gick fel…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Öppna app för att lästa meddelanden", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Öppna kamera", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "participant": "Deltagare", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "lösenord eller återställningsnyckel", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Lösenord", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Glömt lösenord", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Lösenordet har ändrats", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Återställ lösenord", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Nåla fast", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Ange ett lösenord", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Klicka på länken i e-postmeddelandet för att sedan fortsätta.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Ange ditt lösenord", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Ange ditt användarnamn", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Följ instruktionerna på hemsidan och tryck på nästa.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "Integritet", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Publika Rum", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "Anledning", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} redigerade en händelse", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactMessage": "Redigera meddelande", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reject": "Avböj", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} avböjde inbjudan", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Ta bort", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Ta bort alla andra enheter", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Ta bort chatt-blockering", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Ersätt rum med nyare version", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "Svara", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Rapportera meddelande", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Rummet har blivit uppgraderat", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "search": "Sök", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "Säkerhet", + "@security": { + "type": "String", + "placeholders": {} + }, + "send": "Skicka", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Skicka ett meddelande", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAudio": "Skicka ljud", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Skicka fil", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Skicka bild", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Skickade meddelanden", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Skicka video", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username} skickade en fil", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username} skickade ett ljudklipp", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username} skickade en bild", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} skickade ett klistermärke", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} skickade en video", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} skickade samtalsinformation", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setStatus": "Ställ in status", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Inställningar", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Dela", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} delade sin position", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "skip": "Hoppa över", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Källkod", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} startade ett samtal", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "status": "Status", + "@status": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Hur mår du i dag?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Skicka in", + "@submit": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "System", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Dom Matchar Inte", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Dom Matchar", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "För många förfrågningar. Vänligen försök senare!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Försök att skicka igen", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} avbannade {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Avblockera enhet", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Okänd enhet", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Okänd krypteringsalgoritm", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Okänd händelse '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Slå på ljudet för chatten", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Avnåla", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} och {count} andra skriver…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} och {username2} skriver…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} skriver…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪 {username} lämnade chatten", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} skickade en {type} händelse", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verifyStart": "Starta verifiering", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Du har lyckats verifiera!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Verifiera andra konton", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Chatt-historikens synlighet", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Synlig för alla deltagare", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Synlig för alla", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Röstmeddelande", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Väntar på att deltagaren accepterar begäran…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Väntar på att deltagaren accepterar emojien…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Väntar på att deltagaren accepterar nummer…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Varning!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Vi skickade dig ett e-postmeddelande", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Vem kan utföra vilken åtgärd", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Vilka som är tilllåtna att ansluta till denna grupp", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Varför vill du rapportera detta?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Med dessa addresser kan du återställa ditt lösenord.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Skriv ett meddelande…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Ja", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Du", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Du deltar inte längre i denna chatt", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Du har blivit bannad från denna chatt", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Din publika nyckel", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "commandHint_html": "Skicka HTML-formatted text", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_ban": "Bannlys användaren från detta rum", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "clearArchive": "Rensa arkiv", + "chats": "Chatter", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Chatt backup", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Ändra din avatar", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "Kan inte öppna URL {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "blocked": "Blockerad", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "badServerLoginTypesException": "Hemma servern stödjer följande inloggnings typer :\n {serverVersions}\nMen denna applikation stödjer enbart:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "autoplayImages": "Automatisk spela upp animerade klistermärken och emoji", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "addToSpace": "Lägg till i utrymme", + "addEmail": "Lägg till e-post", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "commandHint_myroomavatar": "Sätt din bild för detta rum (by mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_me": "Beskriv dig själv", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_leave": "Lämna detta rum", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_kick": "Ta bort användare från detta rum", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_join": "Gå med i rum", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_invite": "Bjud in användaren till detta rum", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "locationPermissionDeniedNotice": "Plats åtkomst nekad. Var god godkän detta för att kunna dela din plats.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "Platstjänster är inaktiverade. Var god aktivera dom för att kunna dela din plats.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "fontSize": "Textstorlek", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Fel vid erhållande av plats: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "editRoomAliases": "Redigera rum alias", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "createNewSpace": "Nytt utrymme", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Kopiera till urklipp", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "commandMissing": "{command} är inte ett kommando.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "commandInvalid": "Felaktigt kommando", + "@commandInvalid": { + "type": "String" + }, + "commandHint_unban": "Tillåt användare i rummet", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandHint_send": "Skicka text", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_react": "Skicka svar som reaktion", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_plain": "Skicka oformaterad text", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_op": "Sätt användarens kraft nivå ( standard: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_myroomnick": "Sätt ditt användarnamn för rummet", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "noEncryptionForPublicRooms": "Du kan endast aktivera kryptering när rummet inte längre är publikt tillgängligt.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} är inte en matrix server, använd {server2} istället?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "obtainingLocation": "Erhåller plats…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "or": "Eller", + "@or": { + "type": "String", + "placeholders": {} + }, + "openInMaps": "Öppna i karta", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Oj! Tyvärr gick inte aviseringar att slå på.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Synkroniserar… Var god vänta.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Utrymmes namn", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "Utrymme är publikt", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "shareLocation": "Dela plats", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "setAsCanonicalAlias": "Sätt som primärt alias", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Skicka som text", + "@sendAsText": { + "type": "String" + }, + "saveFile": "Spara fil", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Rum version", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Ta bort din avatar", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Ange din pin-kod", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "verified": "Verifierad", + "@verified": { + "type": "String", + "placeholders": {} + }, + "commandHint_create": "Skapa en tom grupp-chatt\nAnvänd --no-encryption för att inaktivera kryptering", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_discardsession": "Kasta bort sessionen", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_dm": "Starta en direkt-chatt\nAnvänd --no-encryption för att inaktivera kryptering", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "oneClientLoggedOut": "En av dina klienter har loggats ut", + "addAccount": "Lägg till konto", + "editBundlesForAccount": "Lägg till paket för detta konto", + "addToBundle": "Utöka paket", + "bundleName": "Paketnamn", + "unverified": "Ej verifierad", + "messageInfo": "Meddelandeinformation", + "time": "Tid", + "sender": "Avsändare", + "removeFromSpace": "Ta bort från utrymme", + "openGallery": "Öppna galleri", + "repeatPassword": "Upprepa lösenord", + "markAsRead": "Markera som läst", + "commandHint_clearcache": "Rensa cache", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "link": "Länk", + "reportUser": "Rapportera användare", + "sendOnEnter": "Skicka med Enter", + "scanQrCode": "Skanna QR-kod", + "removeFromBundle": "Ta bort från paket", + "emojis": "Uttryckssymboler", + "unsupportedAndroidVersion": "Inget stöd för denna version av Android", + "unsupportedAndroidVersionLong": "Denna funktion kräver en senare version av Android.", + "reactedWith": "{sender} reagerade med {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "pinMessage": "Fäst i rum", + "confirmEventUnpin": "Är du säker på att händelsen inte längre skall vara fastnålad?", + "storeSecurlyOnThisDevice": "Lagra säkert på denna enhet", + "youJoinedTheChat": "Du gick med i chatten", + "youAcceptedTheInvitation": "👍 Du accepterade inbjudan", + "youKicked": "👞 Du sparkade ut {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "hugContent": "{senderName} kramar dig", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_markasgroup": "Märk som grupp", + "youHaveWithdrawnTheInvitationFor": "Du har återkallat inbjudan till {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "Du återkallade förbudet för {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "newSpace": "Nytt utrymme", + "googlyEyesContent": "{senderName} skickar dig googly ögon", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "dehydrate": "Exportera sessionen och rensa enheten", + "dehydrateWarning": "Denna åtgärd kan inte ångras. Försäkra dig om att backupen är i säkert förvar.", + "encryptThisChat": "Kryptera denna chatt", + "noBackupWarning": "Varning! Om du inte aktiverar säkerhetskopiering av chattar så tappar du åtkomst till krypterade meddelanden. Det är rekommenderat att du aktiverar säkerhetskopiering innan du loggar ut.", + "noOtherDevicesFound": "Inga andra enheter hittades", + "disableEncryptionWarning": "Av säkerhetsskäl kan du inte stänga av kryptering i en chatt där det tidigare aktiverats.", + "sorryThatsNotPossible": "Det där är inte möjligt", + "confirmMatrixId": "Bekräfta ditt Matrix-ID för att radera ditt konto.", + "supposedMxid": "Detta bör vara {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "commandHint_markasdm": "Märk som rum för direktmeddelanden för det givante Matrix ID", + "user": "Användare", + "storeInAppleKeyChain": "Lagra i Apples nyckelkedja (KeyChain)", + "custom": "Anpassad", + "countFiles": "{count} filer", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "noKeyForThisMessage": "Detta kan hända om meddelandet skickades innan du loggade in på ditt konto i den här enheten.\n\nDet kan också vara så att avsändaren har blockerat din enhet eller att något gick fel med internetanslutningen.\n\nKan du läsa meddelandet i en annan session? I sådana fall kan du överföra meddelandet från den sessionen! Gå till Inställningar > Enhet och säkerställ att dina enheter har verifierat varandra. När du öppnar rummet nästa gång och båda sessionerna är i förgrunden, så kommer nycklarna att överföras automatiskt.\n\nVill du inte förlora nycklarna vid utloggning eller när du byter enhet? Säkerställ att du har aktiverat säkerhetskopiering för chatten i inställningarna.", + "fileIsTooBigForServer": "Gick inte att skicka! Servern stödjer endast bilagor upp till {max}.", + "commandHint_googly": "Skicka några googly ögon", + "commandHint_cuddle": "Skicka en omfamning", + "commandHint_hug": "Skicka en kram", + "users": "Användare", + "cuddleContent": "{senderName} omfamnar dig", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "hydrate": "Återställ från säkerhetskopia", + "youRejectedTheInvitation": "Du avvisade inbjudan", + "youBannedUser": "Du förbjöd {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 Du har blivit inbjuden av {user}", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 Du bjöd in {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKickedAndBanned": "🙅 Du sparkade ut och förbjöd {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "storeInAndroidKeystore": "Lagra i Androids nyckellagring (KeyStore)", + "whyIsThisMessageEncrypted": "Varför kan inte detta meddelande läsas?", + "doNotShowAgain": "Visa inte igen", + "wasDirectChatDisplayName": "Tom chatt (var {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "newSpaceDescription": "Utrymmen möjliggör konsolidering av chattar och att bygga privata eller offentliga gemenskaper.", + "reopenChat": "Återöppna chatt", + "jumpToLastReadMessage": "Hoppa till det senast lästa meddelandet", + "readUpToHere": "Läs upp till hit", + "fileHasBeenSavedAt": "Filen har sparats i {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "reportErrorDescription": "😭 Åh nej. Något gick fel. Om du vill ian du rapportera denna bugg till utvecklarna.", + "setColorTheme": "Välj färgtema:", + "banUserDescription": "Användaren kommer bannlysas från chatten och kommer inte kunna gå med i chatten igen tills bannlysningen avslutas.", + "removeDevicesDescription": "Du kommer att bli utloggad från den här enheten och kommer inte längre kunna få meddelanden.", + "tryAgain": "Försök igen", + "unbanUserDescription": "Användaren kommer kunna gå med i chatten igen om den försöker.", + "messagesStyle": "Meddelanden:", + "chatDescription": "Chattbeskrivning", + "pushNotificationsNotAvailable": "Aviseringar är inte tillgängligt", + "invalidServerName": "Ogiltigt servernamn", + "chatPermissions": "Chatt-behörigheter", + "makeAdminDescription": "När du gör denna användare till administratör kommer du inte kunna ångra det eftersom de kommer ha samma behörigheter som du.", + "setChatDescription": "Ändra chattens beskrivning", + "importFromZipFile": "Importera från .zip-fil", + "redactedBy": "Borttaget av {username}", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "optionalRedactReason": "(Frivilligt) Anledning till att ta bort det här meddelandet…", + "archiveRoomDescription": "Den här chatten kommer flyttas till arkivet. Andra användare kommer kunna se att du har lämnat chatten.", + "exportEmotePack": "Exportera Emote-pack som .zip", + "redactedByBecause": "Borttaget av {username} på grund av: ”{reason}”", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "redactMessageDescription": "Meddelandet kommer tas bort för alla medlemmar i denna konversation. Detta kan inte ångras.", + "invalidInput": "Ogiltig input!", + "report": "rapportera", + "hasKnocked": "{user} har knackat", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "openLinkInBrowser": "Öppna länk i webbläsare", + "wrongPinEntered": "Fel pin-kod inslagen! Försök igen om {seconds} sekunder…", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "sendTypingNotifications": "Skicka skrivnotifikationer", + "inviteGroupChat": "📨 Gruppchattsinbjudan", + "importEmojis": "Importera emojier", + "noChatDescriptionYet": "Ingen chatt-beskrivning än.", + "learnMore": "Lär dig mer", + "notAnImage": "Inte en bildfil.", + "chatDescriptionHasBeenChanged": "Chattbeskrivningen ändrades", + "roomUpgradeDescription": "Chatten kommer då att återskapas med den nya rumversionen. Alla medlemmar kommer bli påminda om att de måste byta till den nya chatten. Du kan läsa mer om rumversioner på https://spec.matrix.org/latest/rooms/", + "pleaseEnterANumber": "Vänligen ange ett nummer större än 0", + "jump": "Hoppa", + "shareInviteLink": "Dela inbjudningslänk", + "emoteKeyboardNoRecents": "Nyligen använda emotes kommer dyka upp här…", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "replace": "Ersätt", + "createGroup": "Skapa grupp", + "kickUserDescription": "Användaren sparkas ut ur chatten men bannlyses inte. I offentliga chattar kan användaren gå med igen när som helst.", + "importNow": "Importera nu", + "invite": "Bjud in", + "blockListDescription": "Du kan blockera användare som stör dig. Du kommer inte få några meddelanden eller rum-inbjudningar från användarna på din personliga blocklista.", + "createGroupAndInviteUsers": "Skapa en grupp och bjud in användare", + "initAppError": "Ett problem skedde när appen initierades", + "thisDevice": "Denna enhet:", + "publicSpaces": "Offentliga utrymmen", + "blockedUsers": "Blockerade användare", + "passwordIsWrong": "Det angivna lösenordet är fel", + "pleaseEnterYourCurrentPassword": "Vänligen skriv ditt nuvarande lösenord", + "groupCanBeFoundViaSearch": "Gruppen kan hittas genom sökning", + "noUsersFoundWithQuery": "Tyvärr kunde ingen användare hittas med ”{query}”. Vänligen kontrollera om du gjort ett stavfel.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "block": "blockera", + "nothingFound": "Inget hittades…", + "yourGlobalUserIdIs": "Ditt globala användar-ID är: ", + "newPassword": "Nytt lösenord", + "passwordsDoNotMatch": "Lösenorden passar inte", + "commandHint_sendraw": "Skicka rå json", + "wrongRecoveryKey": "Tyvärr verkar detta inte vara den korrekta återställningsnyckeln.", + "select": "Ange val", + "sessionLostBody": "Din session är förlorad. Vänligen rapportera detta fel till utvecklarna här: {url}. Felmeddelandet är: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "pleaseChooseAStrongPassword": "Vänligen välj ett starkt lösenord", + "blockUsername": "Ignorera användarnamn", + "addChatOrSubSpace": "Lägg till chatt eller underutrymme", + "groupName": "Gruppnamn", + "leaveEmptyToClearStatus": "Lämna tom för att ta bort din status.", + "joinSpace": "Gå med i utrymme", + "searchForUsers": "Sök efter @användare…", + "restoreSessionBody": "Appen försöker nu få tillbaks din session från backupen. Vänligen rapportera detta problem till utvecklarna här: {url}. Felmeddelandet är: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "databaseMigrationTitle": "Databasen är optimerad", + "searchChatsRooms": "Sök efter #chattar, @användare…", + "databaseMigrationBody": "Var vänlig vänta. Detta kan ta en stund.", + "sendTypingNotificationsDescription": "Andra deltagare i en diskussion kan se när du skriver.", + "formattedMessagesDescription": "Visa formaterat meddelandeinnehåll som fet stil med markdown.", + "verifyOtherUser": "🔐 Verifiera användaren", + "formattedMessages": "Formaterade meddelanden", + "canceledKeyVerification": "{sender} avbröt nyckelverifieringen", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "completedKeyVerification": "{sender} fullbordade nyckelverifieringen", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "requestedKeyVerification": "{sender} begärde nyckelverifiering", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "{sender} påbörjade nyckelverifiering", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "sendReadReceipts": "Skicka läskvitton", + "verifyOtherDevice": "🔐 Verifiera enhet", + "acceptedKeyVerification": "{sender} accepterade nyckelverifieringen", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "incomingMessages": "Inkommande meddelanden", + "verifyOtherUserDescription": "Om du verifierar en användare så kan du vara säker på vem du verkligen skriver till. 💪\n\nNär du påbörjar en verifiering så ser du och den andra användaren en popup-ruta i appen. I den rutan ser du ett antal tecken som du jämför med vad den andra användaren ser.\n\nDet bästa sättet att göra detta är att träffas fysiskt, eller genom att starta ett videosamtal. 👭", + "verifyOtherDeviceDescription": "När du verifierar en enhet så kan era enheter utväxla nycklar, vilket förbättrar säkerheten. 💪 När du påbörjar en verifiering så ser du en popup-ruta på båda enheterna. I den rutan ser du ett antal tecken som du jämför med det som visas på den andra enheten. Det är bäst att ha båda enheterna till hands innan du påbörjar verifieringen. 🤳", + "isReadyForKeyVerification": "{sender} är redo för nyckelverifiering", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "sendReadReceiptsDescription": "Andra deltagare i en diskussion kan se när du läst ett meddelande.", + "stickers": "Klistermärken", + "discover": "Upptäck", + "aboutHomeserver": "Om {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "commandHint_roomupgrade": "Uppgradera detta rum till den givna rumsversionen", + "appLockDescription": "Lås appen när den inte används med en pin-kod", + "swipeRightToLeftToReply": "Svep från höger till vänster för att svara", + "noMoreChatsFound": "Inga fler chattar hittades...", + "noChatsFoundHere": "Inga chattar kunde hittas här ännu. Starta en ny chatt med någon genom att använda knappen nedan. ⤵️", + "unread": "Olästa", + "space": "Utrymme", + "changedTheChatDescription": "{username} ändrade chattens beskrivning", + "changedTheChatName": "{username} ändrade chattens namn", + "checkList": "Att-göra lista", + "countInvited": "{count} inbjudna", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "globalChatId": "Globalt chat-ID", + "accessAndVisibility": "Tillgänglighet och synlighet", + "accessAndVisibilityDescription": "Vem som är tillåten att gå med i chatten och hur chatten kan upptäckas.", + "calls": "Samtal", + "customEmojisAndStickers": "Egna emojis och klistermärken", + "customEmojisAndStickersBody": "Lägg till eller dela egna emojis eller klistermärken som kan användas i alla chattar.", + "hideRedactedMessages": "Dölj tillbakatagna meddelanden", + "hideRedactedMessagesBody": "Om någon tar tillbaka ett meddelande, kommer meddelandet inte längre vara synligt i chatten.", + "hideInvalidOrUnknownMessageFormats": "Dölj ogiltiga eller okända meddelande-format", + "passwordRecoverySettings": "Lösenordsåterställnings-inställningar", + "sendImages": "Skicka {count} bild", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "synchronizingPleaseWaitCounter": " Synkroniserar… ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "usersMustKnock": "Användare måste knacka", + "noOneCanJoin": "Ingen kan gå med", + "knock": "Knacka", + "knocking": "Knackar", + "chatCanBeDiscoveredViaSearchOnServer": "Chatten kan upptäckas via sökfunktionen på {server}", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "publicChatAddresses": "Offentlig chatt-adress", + "createNewAddress": "Skapa ny adress", + "searchIn": "Sök i chatten \"{chat}\"...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "searchMore": "Sök mer...", + "gallery": "Galleri", + "files": "Filer", + "commandHint_ignore": "Ignorera det givna matrix-ID:et", + "commandHint_unignore": "Sluta ignorera det givna matrix-ID:et", + "unreadChatsInApp": "{appname}: {unread} olästa chattar", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "noDatabaseEncryption": "Databaskryptering stöds inte på denna platform", + "thereAreCountUsersBlocked": "Just nu är {count} användare blockade.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "goToSpace": "Gå till utrymme:{space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "markAsUnread": "Markera oläst", + "userLevel": "{level} - Användare", + "@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": "Ändra allmäna chatt-inställningar", + "inviteOtherUsers": "Bjud in andra användare till chatten", + "changeTheChatPermissions": "Ändra chattbehörigheterna", + "changeTheVisibilityOfChatHistory": "Ändra synligheten på chatt-historiken", + "changeTheCanonicalRoomAlias": "Ändra den huvudsakliga offenliga chatt-adressen", + "sendRoomNotifications": "Skicka en @rum notis", + "changeTheDescriptionOfTheGroup": "Ändra beskrivningen på chatten", + "chatPermissionsDescription": "Definiera vilket tillståndsnivå som krävs för vissa handlingar i chatten. Tillståndsnivåerna 0, 50 och 100 representerar ofta användare, moderatorer och admins, men vilken gradering som helst fungerar.", + "updateInstalled": "🎉 Uppdatering {version} installerad!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "changelog": "Ändringslogg", + "sendCanceled": "Skickande avbröts", + "loginWithMatrixId": "Logga in med Matrix-ID", + "doesNotSeemToBeAValidHomeserver": "Verkar inte vara en kompatibel hemserver. Fel URL?", + "calculatingFileSize": "Beräknar filstorlek...", + "oneOfYourDevicesIsNotVerified": "En av dina enheter är inte verifierade", + "noticeChatBackupDeviceVerification": "Notis: När du ansluter alla dina enheter till chatt-backupen, är de automatiskt verifierade.", + "continueText": "Fortsätt", + "blur": "Blurra:", + "opacity": "Opacitet:", + "setWallpaper": "Ställ in bakgrundsbild", + "manageAccount": "Hantera konto", + "noContactInformationProvided": "Servern bistår inte med någon giltig kontaktinformation", + "contactServerAdmin": "Kontakta server-admin", + "contactServerSecurity": "Kontakta server-säkerheten", + "supportPage": "Stödsida", + "serverInformation": "Serverinformation:", + "name": "Namn", + "version": "Version", + "website": "Hemsida", + "compress": "Komprimera", + "boldText": "Fetstilt", + "italicText": "Kursiv", + "strikeThrough": "Genomstryk", + "pleaseFillOut": "Fyll i", + "invalidUrl": "Ogiltig url", + "addLink": "Lägg till länk", + "unableToJoinChat": "Kunde inte gå med i chatten. Kanske har den andra parten redan stängt konversationen.", + "previous": "Föregående", + "otherPartyNotLoggedIn": "Den andra parten är för närvarande inte inloggad, och kan därför inte ta emot meddelanden!", + "appWantsToUseForLogin": "Använd '{server}' för att logga in", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "appWantsToUseForLoginDescription": "Du tillåter härmed appen och hemsidan att dela information om dig.", + "open": "Öppna", + "waitingForServer": "Väntar på server...", + "newChatRequest": "📩 Ny chatt förfrågan", + "contentNotificationSettings": "Innehållsnotis-inställningar", + "generalNotificationSettings": "Allmänna notis-inställningar", + "roomNotificationSettings": "rumsnotis-inställningar", + "userSpecificNotificationSettings": "Användarspecifika notis-inställningar", + "otherNotificationSettings": "Andra notis-inställningar", + "notificationRuleContainsUserName": "Innehåller Användarnamn", + "notificationRuleContainsUserNameDescription": "Avisera användaren när ett meddelande innehåller deras användarnamn.", + "notificationRuleMaster": "Tysta alla notiser", + "notificationRuleMasterDescription": "Åsidosätter alla andra regler och tystar alla notiser.", + "notificationRuleMemberEvent": "Medlemshändelse", + "notificationRuleContainsDisplayName": "Innehåller visningsnamn", + "notificationRuleReaction": "Reaktion", + "notificationRuleCall": "Samtal", + "notificationRuleJitsi": "Jitsi", + "takeAPhoto": "Ta ett foto", + "recordAVideo": "Spela in en video", + "more": "Mer", + "allDevices": "Alla enheter", + "optionalMessage": "(Valfritt) meddelande ...", + "enterNewChat": "Gå med i ny chatt", + "approve": "Godkänn", + "customReaction": "Anpassad reaktion", + "moreEvents": "Fler händelser", + "noMessagesYet": "Inga meddelanden än", + "pause": "Pausa", + "resume": "Fortsätt", + "countChats": "{chats} chattar", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "answerOption": "Svarsalternativ", + "addAnswerOption": "Lägg till svarsalternativ", + "allowMultipleAnswers": "Tillåt flera svar", + "countVotes": "{count, plural, =1{En röst} other{{count} röster}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "replyInThread": "Svara i tråd", + "thread": "Tråd", + "countReplies": "{count, plural, =1{Ett svar} other{{count} svar}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "saveChanges": "Spara ändringar", + "noMoreResultsFound": "Inga fler resultat hittades", + "versionWithNumber": "Version: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "Loggar", + "signIn": "Logga in", + "createNewAccount": "Skapa nytt konto", + "discardEdits": "Du har ändringar som inte sparats. Kasta bort dina ändringar?", + "@discardEdits": { + "type": "String", + "placeholders": {} + }, + "notificationRuleSuppressNotices": "Tysta automatiserade meddelanden", + "notificationRuleSuppressNoticesDescription": "Tystar notiser från automatiserade klienter som robotar.", + "notificationRuleInviteForMe": "Inbjudning till mig", + "notificationRuleInviteForMeDescription": "Meddelar användaren när hen är inbjuden till ett rum.", + "notificationRuleMemberEventDescription": "Tystar notiser för medlemshändelser.", + "notificationRuleIsUserMention": "Användare nämns", + "notificationRuleIsUserMentionDescription": "Meddelar användaren när hen är omnämnd i ett meddelande.", + "notificationRuleContainsDisplayNameDescription": "Meddelar användaren när ett meddelande innehåller hens visningsnamn.", + "notificationRuleIsRoomMention": "Rum nämns", + "notificationRuleIsRoomMentionDescription": "Meddelar användaren när ett rum omnämns.", + "notificationRuleRoomnotif": "Rumsnotis", + "notificationRuleRoomnotifDescription": "Meddelar användaren när ett meddelande innehåller '@room'.", + "notificationRuleTombstone": "Gravsten", + "notificationRuleTombstoneDescription": "Meddelar användaren om rums avaktiveringsmeddelanden.", + "notificationRuleReactionDescription": "Tysta notiser för reaktioner.", + "notificationRuleRoomServerAcl": "Rumserverns tillgångslista", + "notificationRuleRoomServerAclDescription": "Tystar notiser från rumserverns tillgångslista (ACL).", + "notificationRuleSuppressEdits": "Tysta ändringar", + "notificationRuleSuppressEditsDescription": "Tystar notiser för redigerade meddelanden.", + "notificationRuleCallDescription": "Meddelar användaren om samtal.", + "notificationRuleEncryptedRoomOneToOne": "Krypterade rum en-till-en", + "notificationRuleEncryptedRoomOneToOneDescription": "Meddelar användaren om meddelanden i krypterade en-till-en-rum.", + "notificationRuleRoomOneToOne": "Rum en-till-en", + "notificationRuleRoomOneToOneDescription": "Meddelar användaren om meddelanden i en-till-en-rum.", + "notificationRuleMessage": "Meddelande", + "notificationRuleMessageDescription": "Meddelar användaren om allmänna meddelanden.", + "notificationRuleEncrypted": "Krypterade", + "notificationRuleEncryptedDescription": "Meddelar användaren om meddelanden i krypterade rum.", + "notificationRuleJitsiDescription": "Meddelar användaren om Jitsi widget-händelser.", + "notificationRuleServerAcl": "Tysta serverns åtkomstlista", + "notificationRuleServerAclDescription": "Tystar notiser för händelser gällande serverns åtkomstlista.", + "unknownPushRule": "Okänd notisregel '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "sentVoiceMessage": "🎙️ {duration} - Röstmeddelande från {sender}", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "deletePushRuleCanNotBeUndone": "Om du tar bort denna notisinställning kan det inte ångras.", + "shareKeysWith": "Dela nycklar med...", + "shareKeysWithDescription": "Vilka enheter borde litas på så att de kan läsa dina meddelanden i krypterade chattar?", + "crossVerifiedDevicesIfEnabled": "Krossverifierade enheter om aktiverat", + "crossVerifiedDevices": "Krossverifierade enheter", + "verifiedDevicesOnly": "Endast verifierade enheter", + "notSupportedOnThisDevice": "Stöds ej på denna enhet", + "youHaveKnocked": "Du har knackat på", + "pleaseWaitUntilInvited": "Vänligen vänta tills någon från rummet bjuder in dig.", + "commandHint_logout": "Logga ut från din nuvarande enhet", + "commandHint_logoutall": "Logga ut från aktiva enheter", + "displayNavigationRail": "Visa navigationsfält på mobil", + "showMore": "Visa mer", + "showLess": "Visa mindre", + "declineInvitation": "Neka inbjudan", + "longPressToRecordVoiceMessage": "Tryck långt för att spela in röstmeddelande.", + "removeFromSpaceDescription": "Chatten tas bort från platsen men den syns fortfarande i din chattlista.", + "startPoll": "Starta omröstning", + "endPoll": "Avsluta omröstning", + "answersVisible": "Svar synliga", + "pollQuestion": "Omröstningsfråga", + "pollHasBeenEnded": "Omröstningen har avslutats", + "answersWillBeVisibleWhenPollHasEnded": "Svar kommer synas när omröstningen har avslutats", + "backToMainChat": "Tillbaka till huvudchatt", + "createSticker": "Skapa sticker eller emoji", + "useAsSticker": "Använd som sticker", + "useAsEmoji": "Använd som emoji", + "stickerPackNameAlreadyExists": "Stickerpaketets namn är upptaget", + "newStickerPack": "Nytt stickerpaket", + "stickerPackName": "Stickerpaketets namn", + "attribution": "Attribution", + "skipChatBackup": "Hoppa över säkerhetskopiering av chatten", + "skipChatBackupWarning": "Är du säker? Att inte aktivera säkerhetskopiering av chattar kan du förlora tillgången till dina meddelanden om du byter enhet.", + "chatSearchedUntil": "Sökte i chatten fram tills {time}", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "federationBaseUrl": "Federation-bas-URL", + "clientWellKnownInformation": "Information om klienten:", + "baseUrl": "Bas-URL", + "identityServer": "Identitetsserver:", + "advancedConfigs": "Avancerad konfiguration", + "advancedConfigurations": "Avancerade konfigurationer", + "signUpGreeting": "FluffyChat är decentraliserad! Välj en server där du vill skapa ditt konto och kom igång!", + "signInGreeting": "Har du redan ett konto i Matrix? Välkommen tillbaka! Välj din hemserver och logga in.", + "theProcessWasCanceled": "Processen blev avbruten.", + "join": "Gå med", + "searchOrEnterHomeserverAddress": "Sök eller ange hemserver-adress", + "matrixId": "Matrix-ID", + "setPowerLevel": "Ange styrkenivå", + "makeModerator": "Gör till moderator", + "makeAdmin": "Gör till admin", + "removeModeratorRights": "Ta bort moderator-rättigheter", + "removeAdminRights": "Ta bort admin-rättigheter", + "powerLevel": "Styrkenivå", + "setPowerLevelDescription": "Styrkenivåer avgör vad en medlem är tillåten att göra i rummet och är oftast mellan 0 till 100.", + "owner": "Ägare", + "mute": "Tysta", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "createNewChat": "Skapa ny chatt", + "reset": "Återställ", + "supportFluffyChat": "Stöd FluffyChat", + "support": "Stöd", + "setLowPriority": "Sätt låg prioritet", + "unsetLowPriority": "Ta bort låg prioritet", + "playSoundOnNotification": "Spela ljud vid notis", + "addTag": "Lägg till tagg", + "removeTag": "Ta bort tagg", + "tagName": "Taggnamn", + "createNewTag": "Skapa ny tagg", + "hideRoomsInSpaces": "Dölj rum som är i en plats", + "possibleByYou": "Denna utgåva var endast möjlig tack vare ditt stöd. FluffyChat behålls gratis, öppen källkod, och helt gemenskapsdriven.", + "showThumbnailsInTimeline": "Visa förhandsvisning av bilder och videor", + "appSubtitle": "Säker [matrix]-kommunikation", + "appDescription": "Kommunicera krypterat över det decentraliserade [matrix]-nätverket på ett enkelt och tillgängligt sätt för alla.", + "interactiveVerification": "Interaktiv verifikation", + "interactiveVerificationDescription": "Om ni är nära varandra eller kommunicerar genom en säker kanal kan nu verifiera alla enheter samtidigt genom att jämföra ett säkerhetsnummer eller emojis.", + "countUnverifiedDevices": "{count} overifierade enheter i chatten.", + "@countUnverifiedDevices": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "encryptedMessage": "Krypterat meddelande", + "unencryptedMessage": "Okrypterat meddelande", + "messageCanOnlyBeReadByUser": "Ditt meddelande är totalsträckskrypterat och kan endast läsas av denna användare:", + "messageCanOnlyBeReadByUsers": "Ditt meddelande är totalsträckskrypterat och kan endast läsas av följande användare:", + "publicKey": "Offentlig nyckel: {key}", + "@publicKey": { + "type": "String", + "placeholders": { + "key": { + "type": "String" + } + } + }, + "deviceIdentityKey": "Enhetens identitetsnyckel", + "restoreBootstrapEmptyDevicesDescription": "Vänligen ange ditt lösenfras eller återställnings nyckel för att verifiera denna enhet och få tillgång till din krypterade säkerhetskopiering.", + "@restoreBootstrapEmptyDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "restoreBootstrapDevicesDescription": "Vänligen ta upp en av dina andra enheter för att verifiera denna session:", + "@restoreBootstrapDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "resetAccount": "Återställ konto", + "@resetAccount": { + "type": "String", + "placeholders": {} + }, + "restoreCryptoIdentity": "Återställ krypto-identitet", + "@restoreCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "resetCryptoIdentity": "Nollställ krypto-identitet", + "@resetCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "setUpCryptoIdentity": "Ställ in krypto-identitet", + "@setUpCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "waitingForKeys": "Väntar på nycklar... Vänligen behåll den andra enheten aktiv.", + "@waitingForKeys": { + "type": "String", + "placeholders": {} + }, + "noKeysTransmitted": "Inga nycklar överfördes. Vänligen försök igen.", + "@noKeysTransmitted": { + "type": "String", + "placeholders": {} + }, + "unlock": "Lås upp", + "@unlock": { + "type": "String", + "placeholders": {} + }, + "openFile": "Öppna fil", + "@openFile": { + "type": "String", + "placeholders": {} + }, + "resetAccountWarning": "När du återställer ditt konto blir du av med tillgången till dina gamla meddelanden för alltid. Alla dina nuvarande enheter kommer behöva verifiera igen. Gör bara detta om du inte har andra enheter kvar för att verifiera din session och du har blivit av med din återställningsnyckel och lösenfras!", + "@resetAccountWarning": { + "type": "String", + "placeholders": {} + }, + "newPassphraseDescription": "FluffyChat använder helsträckskryptering. För att inte bli av med dina meddelanden, vänligen välj en stark lösenfras för att säkra din krypto-identitet och din krypterade säkerhetskopiering av meddelanden.", + "@newPassphraseDescription": { + "type": "String", + "placeholders": {} + }, + "newPassphrase": "Ny lösenfras", + "@newPassphrase": { + "type": "String", + "placeholders": {} + }, + "repeatPassphrase": "Upprepa lösenfras", + "@repeatPassphrase": { + "type": "String", + "placeholders": {} + }, + "passphrasesMatch": "Lösenfrasarna stämmer överens", + "@passphrasesMatch": { + "type": "String", + "placeholders": {} + }, + "passphraseLengthRequirement": "Åtminstone 12 tecken långt.", + "@passphraseLengthRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseUpperAndLowerCaseRequirement": "Innehåller versaler och gemener.", + "@passphraseUpperAndLowerCaseRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseSpecialCharactersRequirement": "Innehåller specialtecken.", + "@passphraseSpecialCharactersRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseNumberRequirement": "Innehåller ett nummer.", + "@passphraseNumberRequirement": { + "type": "String", + "placeholders": {} + }, + "storeRecoveryKeyDescription": "Vänligen anteckna din återställningsnyckel för att kunna återställa dina krypterade meddelanden och din krypto-identitet.", + "@storeRecoveryKeyDescription": { + "type": "String", + "placeholders": {} + }, + "saveAsFile": "Spara som fil", + "@saveAsFile": { + "type": "String", + "placeholders": {} + }, + "youAreReadyToStart": "Du är redo att komma igång!", + "noUserKeyFound": "Ingen användarnyckel hittat", + "@noUserKeyFound": { + "type": "String", + "placeholders": {} + }, + "knownSince": "Känd sedan: {date}", + "@knownSince": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + } + } + }, + "spaceMemberOf": "Platsmedlem av {spaces}", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "Platsmedlem av {spaces} kan knacka på", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "unsignedDevice": "Osignerad enhet", + "@unsignedDevice": { + "type": "String", + "placeholders": {} + }, + "signedDevice": "Signerad enhet", + "@signedDevice": { + "type": "String", + "placeholders": {} + }, + "noCurve25519KeyFound": "Ingen curve25519-nyckel hittad", + "@noCurve25519KeyFound": { + "type": "String", + "placeholders": {} + }, + "messageNotDecryptable": "Meddelande inte avkrypterbart", + "today": "Idag", + "sending": "Skickar", + "generatingThumbnail": "Genererar förhandsvisning", + "encrypting": "Krypterar", + "uploading": "Laddar upp", + "edited": "(redigerad)", + "couldNotBeSent": "Kunde inte skickas", + "yesterday": "Igår", + "resetRecoveryKey": "Återställ återställningsnyckel", + "pleaseEnter6Digits": "Vänligen ange 6 siffror för att aktivera applåset.", + "disableAppLock": "Avaktivera applås", + "disableAppLockAreYouSure": "Är du säker på att du vill avaktivera applåset?", + "enableBiometrics": "Aktivera biometrisk upplåsning", + "disableBiometrics": "Avaktivera biometrisk upplåsning", + "biometricsDescription": "Med biometrisk upplåsning kan du låsa upp appen med ditt ansikte eller fingeravtryck. Förmågorna beror på din enhet.", + "useAppLock": "Använd applås", + "unlockWithBiometrics": "Lås upp med biometrisk upplåsning", + "resetPin": "Återställ pinkod", + "forwardCountMessages": "Hoppa fram {count, plural, =1{ett meddelande} other{{count} meddelanden}}?", + "@forwardCountMessages": { + "placeholders": { + "count": { + "type": "int" + } + } + } +} diff --git a/lib/l10n/intl_ta.arb b/lib/l10n/intl_ta.arb new file mode 100644 index 0000000..5a3d6a7 --- /dev/null +++ b/lib/l10n/intl_ta.arb @@ -0,0 +1,2754 @@ +{ + "@@last_modified": "2021-08-14 12:41:09.826673", + "acceptedTheInvitation": "👍 {username} அழைப்பை ஏற்றுக்கொண்டது", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "accept": "ஏற்றுக்கொள்", + "@accept": { + "type": "String", + "placeholders": {} + }, + "about": "பற்றி", + "@about": { + "type": "String", + "placeholders": {} + }, + "sendCanceled": "அனுப்புதல் கைவிடப்பட்டது", + "chatDetails": "அரட்டை விவரங்கள்", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "globalChatId": "உலகளாவிய அரட்டை ஐடி", + "accessAndVisibility": "அணுகல் மற்றும் தெரிவுநிலை", + "onlineKeyBackupEnabled": "நிகழ்நிலை விசை காப்புப்பிரதி இயக்கப்பட்டது", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "setStatus": "நிலையை அமைக்கவும்", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "சரிபார்ப்பைத் தொடங்கவும்", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "unsupportedAndroidVersion": "ஆதரிக்கப்படாத ஆண்ட்ராய்டு பதிப்பு", + "commandHint_sendraw": "மூல சாதொபொகு ஐ அனுப்புங்கள்", + "passwordIsWrong": "நீங்கள் உள்ளிட்ட கடவுச்சொல் தவறு", + "completedKeyVerification": "{sender} நிறைவு செய்யப்பட்ட விசை சரிபார்ப்பு", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "incomingMessages": "உள்வரும் செய்திகள்", + "password": "கடவுச்சொல்", + "@password": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "வெற்று அரட்டை", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "encrypted": "குறியாக்கப்பட்டது", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "reject": "நிராகரிக்கவும்", + "@reject": { + "type": "String", + "placeholders": {} + }, + "importNow": "இப்போது இறக்குமதி", + "changedTheChatAvatar": "{username} அரட்டை அவதாரத்தை மாற்றியது", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "chooseAStrongPassword": "வலுவான கடவுச்சொல்லைத் தேர்வுசெய்க", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "commandHint_me": "உங்களை விவரிக்கவும்", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_unban": "இந்த அறையிலிருந்து கொடுக்கப்பட்ட பயனரைத் தடுக்கிறது", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "countParticipants": "{count, plural, =1{1 பங்கேற்பாளர்} other{{count} பங்கேற்பாளர்கள்}}", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "editDisplayname": "காட்சி பெயர் திருத்து", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{targetName} க்கான அழைப்பை {username} திரும்பப் பெற்றுள்ளார்", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "user": "பயனர்", + "optionalRedactReason": "(விரும்பினால்) இந்த செய்தியை மாற்றியமைப்பதற்கான காரணம் ...", + "contactHasBeenInvitedToTheGroup": "குழுவிற்கு தொடர்பு அழைக்கப்பட்டுள்ளது", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "கடவுச்சொல் அல்லது மீட்பு விசை", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "select": "தேர்ந்தெடு", + "compareEmojiMatch": "தயவுசெய்து ஈமோசிகளை ஒப்பிடுக", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "அழைப்பிலிருந்து", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "help": "உதவி", + "@help": { + "type": "String", + "placeholders": {} + }, + "invited": "அழைக்கப்பட்டார்", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUsersOnly": "பயனர்களை மட்டுமே அழைத்தது", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "kickedAndBanned": "🙅 {username} உதைத்து {targetName} ஐத் தடை செய்தார்", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "mention": "குறிப்பு", + "@mention": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "புதிய சரிபார்ப்பு கோரிக்கை!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "shareInviteLink": "இணைப்பைப் பகிரவும்", + "pin": "முள்", + "@pin": { + "type": "String", + "placeholders": {} + }, + "youKickedAndBanned": "🙅 நீங்கள் உதைத்து தடைசெய்துள்ளீர்கள் {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKicked": "👞 {user}ஐ உதைத்துள்ளீர்கள்", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "storeInAppleKeyChain": "ஆப்பிள் கீச்சினில் சேமிக்கவும்", + "searchForUsers": "@Users ஐத் தேடுங்கள் ...", + "pleaseEnterYourCurrentPassword": "உங்கள் தற்போதைய கடவுச்சொல்லை உள்ளிடவும்", + "anyoneCanJoin": "யார் வேண்டுமானாலும் சேரலாம்", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "archive": "காப்பகம்", + "@archive": { + "type": "String", + "placeholders": {} + }, + "banFromChat": "அரட்டையிலிருந்து தடை", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "cancel": "ரத்துசெய்", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "edit": "தொகு", + "@edit": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "நான் இணைப்பைக் சொடுக்கு செய்துள்ளேன்", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "மின்னஞ்சலில் உள்ள இணைப்பைக் சொடுக்கு செய்து தொடரவும்.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "உங்கள் பாணியை மாற்றவும்", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "fontSize": "எழுத்துரு அளவு", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "யூரி {uri} வேலை ஐ திறக்க முடியாது", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "repeatPassword": "கடவுச்சொல்லை மீண்டும் இடு", + "youRejectedTheInvitation": "நீங்கள் அழைப்பை நிராகரித்தீர்கள்", + "confirmMatrixId": "உங்கள் கணக்கை நீக்க உங்கள் மேட்ரிக்ச் ஐடியை உறுதிப்படுத்தவும்.", + "supposedMxid": "இது {mxid} be ஆக இருக்க வேண்டும்", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "commandHint_googly": "சில கூகிள் கண்களை அனுப்பவும்", + "commandHint_cuddle": "ஒரு கசப்பு அனுப்பவும்", + "importEmojis": "ஈமோசிகளை இறக்குமதி", + "exportEmotePack": "எமோட் பேக் .zip என ஏற்றுமதி", + "replace": "மாற்று", + "tryAgain": "மீண்டும் முயற்சிக்கவும்", + "pushNotificationsNotAvailable": "புச் அறிவிப்புகள் கிடைக்கவில்லை", + "blockUsername": "பயனர்பெயரை புறக்கணிக்கவும்", + "chatBackup": "அரட்டை காப்புப்பிரதி", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "send": "அனுப்பு", + "@send": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "அவர்கள் பொருந்தவில்லை", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "செய்திகளை அனுப்பவும்", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "கோப்பைப் பதிவிறக்கவும்", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "createNewSpace": "புதிய இடம்", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "ஒத்திசைத்தல்… தயவுசெய்து காத்திருங்கள்.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "அறியப்படாத குறியாக்க வழிமுறை", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unverified": "சரிபார்க்கப்படாதது", + "unmuteChat": "மாறுதல் அரட்டை", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "பிற கணக்கை சரிபார்க்கிறது", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "பங்கேற்பாளர்கள் அனைவருக்கும் தெரியும்", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "குரல் செய்தி", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "reopenChat": "அரட்டையை மீண்டும் திறக்கவும்", + "formattedMessages": "வடிவமைக்கப்பட்ட செய்திகள்", + "darkTheme": "இருண்ட", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "guestsAreForbidden": "விருந்தினர்கள் தடைசெய்யப்பட்டுள்ளனர்", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "விருந்தினர்கள் சேரலாம்", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "commandHint_invite": "கொடுக்கப்பட்ட பயனரை இந்த அறைக்கு அழைக்கவும்", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_op": "கொடுக்கப்பட்ட பயனரின் ஆற்றல் மட்டத்தை அமைக்கவும் (இயல்புநிலை: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "வடிவமைக்கப்படாத உரையை அனுப்பவும்", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandMissing": "{command} என்பது கட்டளை அல்ல.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "moderator": "மதிப்பீட்டாளர்", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "shareLocation": "இருப்பிடத்தைப் பகிரவும்", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "addEmail": "மின்னஞ்சல் சேர்க்கவும்", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "all": "அனைத்தும்", + "@all": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "ஒளி", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "sendOnEnter": "Enter ஐ அனுப்பவும்", + "dehydrate": "ஏற்றுமதி அமர்வு மற்றும் சாதனத்தை துடைக்கவும்", + "ok": "சரி", + "@ok": { + "type": "String", + "placeholders": {} + }, + "configureChat": "அரட்டையை உள்ளமைக்கவும்", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "isTyping": "தட்டச்சு செய்கிறார்", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} அரட்டையில் சேர்ந்தார்", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "noConnectionToTheServer": "சேவையகத்துடன் எந்த தொடர்பும் இல்லை", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "உணர்ச்சிகள் எதுவும் காணப்படவில்லை. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "அறிவிப்புகள்", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "அச்சச்சோ! துரதிர்ச்டவசமாக, புச் அறிவிப்புகளை அமைக்கும் போது பிழை ஏற்பட்டது.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "அச்சச்சோ, ஏதோ தவறு நடந்தது…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "bundleName": "மூட்டை பெயர்", + "remove": "அகற்று", + "@remove": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "ஒரு செய்தியை அனுப்பவும்", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "இடம் பொது", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "அனைவருக்கும் தெரியும்", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "நாங்கள் உங்களுக்கு ஒரு மின்னஞ்சல் அனுப்பினோம்", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "report": "அறிக்கை", + "verifyOtherDevice": "🔐 பிற சாதனத்தை சரிபார்", + "startedACall": "{senderName} அழைப்பைத் தொடங்கினார்", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} ஒரு {type} நிகழ்வை அனுப்பியது", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verified": "சரிபார்க்கப்பட்டது", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "நீங்கள் வெற்றிகரமாக சரிபார்த்தீர்கள்!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "பங்குதாரர் எண்களை ஏற்றுக்கொள்வதற்காக காத்திருக்கிறார்…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "எச்சரிக்கை!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "pinMessage": "அறைக்கு முள்", + "acceptedKeyVerification": "{sender} ஏற்றுக்கொள்ளப்பட்ட விசை சரிபார்ப்பு", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "copyToClipboard": "இடைநிலைப்பலகைக்கு நகலெடுக்கவும்", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "createGroup": "குழுவை உருவாக்கவும்", + "editBundlesForAccount": "இந்த கணக்கிற்கான மூட்டைகளைத் திருத்தவும்", + "unpin": "மூள்நீக்கு", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "emojis": "ஈமோசிகள்", + "jumpToLastReadMessage": "கடைசி வாசிப்பு செய்திக்கு செல்லவும்", + "commandHint_markasgroup": "குழுவாக குறி", + "commandHint_html": "உஉகுமொ வடிவமைக்கப்பட்ட உரையை அனுப்பவும்", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_kick": "இந்த அறையிலிருந்து கொடுக்கப்பட்ட பயனரை அகற்றவும்", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "deleteMessage": "செய்தியை நீக்கு", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "messageInfo": "செய்தி தகவல்", + "sentAFile": "📁 {username} கோப்பை அனுப்பியுள்ளார்", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "readUpToHere": "இங்கே படிக்கவும்", + "chatDescriptionHasBeenChanged": "அரட்டை விளக்கம் மாற்றப்பட்டது", + "reportMessage": "செய்தி அறிக்கை", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "kickFromChat": "அரட்டையிலிருந்து கிக்", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} ஒரு நிகழ்வை மறுவடிவமைத்தது", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "opacity": "ஒளிபுகாநிலை:", + "blur": "மங்கலானது:", + "setWallpaper": "வால்பேப்பரை அமைக்கவும்", + "statusExampleMessage": "இன்று நீங்கள் எப்படி இருக்கிறீர்கள்?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "பல கோரிக்கைகள். தயவுசெய்து பின்னர் மீண்டும் முயற்சிக்கவும்!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "unblockDevice": "சாதனத்தைத் தடைசெய்க", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "தெரியாத சாதனம்", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "storeSecurlyOnThisDevice": "இந்த சாதனத்தில் பாதுகாப்பாக சேமிக்கவும்", + "noOtherDevicesFound": "வேறு சாதனங்கள் எதுவும் கிடைக்கவில்லை", + "sendRoomNotifications": "ஒரு @room அறிவிப்புகளை அனுப்பவும்", + "reply": "பதில்", + "@reply": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "மற்ற நபரில் கையெழுத்திட, தயவுசெய்து உங்கள் பாதுகாப்பான கடை பாச்ஃபிரேச் அல்லது மீட்பு விசையை உள்ளிடவும்.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "விருந்தினர் பயனர்கள் சேர அனுமதிக்கப்படுகிறார்களா?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "நீங்கள் நிச்சயமாக வெளியேற விரும்புகிறீர்களா?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "aboutHomeserver": "{homeserver} பற்றி", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "swipeRightToLeftToReply": "பதிலளிக்க வலமிருந்து இடமாக ச்வைப் செய்யவும்", + "unread": "படிக்காதது", + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deleteAccount": "கணக்கை நீக்கு", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "noUsersFoundWithQuery": "துரதிர்ச்டவசமாக \"{query}\" உடன் எந்த பயனரையும் காண முடியவில்லை. நீங்கள் ஒரு எழுத்துப்பிழை செய்தீர்களா என்பதை சரிபார்க்கவும்.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "jump": "தாவு", + "yourGlobalUserIdIs": "உங்கள் உலகளாவிய பயனர் ஐடி: ", + "publicSpaces": "பொது இடங்கள்", + "discover": "கண்டுபிடி", + "commandHint_unignore": "கொடுக்கப்பட்ட மேட்ரிக்ச் ஐடியை இணைக்கவும்", + "continueText": "தொடரவும்", + "name": "பெயர்", + "whoCanPerformWhichAction": "எந்த செயலைச் செய்ய முடியும்", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "இந்த குழுவில் சேர யார் அனுமதிக்கப்படுகிறார்கள்", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "இந்த அரட்டையில் நீங்கள் இனி பங்கேற்கவில்லை", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "உங்கள் பொது விசை", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "time": "நேரம்", + "markAsRead": "படித்தபடி குறி", + "reportUser": "பயனர் புகாரளிக்கவும்", + "reactedWith": "{sender} {reaction} உடன் பதிலளித்தார்", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "noOneCanJoin": "யாரும் சேர முடியாது", + "newSpace": "புதிய இடம்", + "wasDirectChatDisplayName": "வெற்று அரட்டை ({oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "openLinkInBrowser": "உலாவியில் திறந்த இணைப்பை திறக்கவும்", + "reportErrorDescription": "😭 ஓ இல்லை. ஏதோ தவறு நடந்தது. நீங்கள் விரும்பினால், இந்த பிழையை டெவலப்பர்களிடம் புகாரளிக்கலாம்.", + "invite": "அழைக்கவும்", + "wrongPinEntered": "தவறான முள் நுழைந்தது! {seconds} விநாடிகளில் மீண்டும் முயற்சிக்கவும் ...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "pleaseEnterANumber": "தயவுசெய்து 0 ஐ விட அதிகமான எண்ணை உள்ளிடவும்", + "kickUserDescription": "பயனர் அரட்டையிலிருந்து வெளியேற்றப்படுகிறார், ஆனால் தடை செய்யப்படவில்லை. பொது அரட்டைகளில், பயனர் எந்த நேரத்திலும் மீண்டும் சேரலாம்.", + "learnMore": "மேலும் அறிக", + "chatCanBeDiscoveredViaSearchOnServer": "{server}", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "bannedUser": "{username} தடைசெய்யப்பட்ட {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "தொகுதி சாதனம்", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "தடுக்கப்பட்டது", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "changeDeviceName": "சாதனத்தின் பெயரை மாற்றவும்", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheDisplaynameTo": "{username} அவற்றின் காட்சி பெயர்: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} விருந்தினர் அணுகல் விதிகளை மாற்றியது", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} அவர்களின் அவதாரத்தை மாற்றியது", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} அறை மாற்றுப்பெயர்களை மாற்றியது", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changeTheNameOfTheGroup": "குழுவின் பெயரை மாற்றவும்", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "chats": "அரட்டைகள்", + "@chats": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "தெளிவான காப்பகம்", + "close": "மூடு", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_create": "வெற்று குழு அரட்டையை உருவாக்கவும்\n குறியாக்கத்தை முடக்க-இல்லை-குறியாக்கத்தைப் பயன்படுத்தவும்", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "compareNumbersMatch": "எண்களை ஒப்பிடுக", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "இடைநிலைப்பலகைக்கு நகலெடுக்கப்பட்டது", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "நகலெடு", + "@copy": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "செய்தியை மறைகுறியாக்க முடியவில்லை: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "create": "உருவாக்கு", + "@create": { + "type": "String", + "placeholders": {} + }, + "chatPermissions": "அரட்டை அனுமதிகள்", + "editRoomAliases": "அறை மாற்றுப்பெயர்களைத் திருத்து", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "அறை அவதார் திருத்து", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "forward": "முன்னோக்கி", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "சேருவதிலிருந்து", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "groupWith": "{displayname} உடன் குழு", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "hideRedactedMessages": "சரிசெய்யப்பட்ட செய்திகளை மறைக்கவும்", + "hideRedactedMessagesBody": "யாராவது ஒரு செய்தியை மாற்றியமைத்தால், இந்த செய்தி இனி அரட்டையில் காணப்படாது.", + "inviteContact": "தொடர்பை அழைக்கவும்", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username} {targetName} ஐ உதைத்தார்", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "lastActiveAgo": "கடைசியாக செயலில்: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leftTheChat": "அரட்டையை விட்டு வெளியேறினார்", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "ஏற்றவும் {count} மேலும் பங்கேற்பாளர்கள்", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dehydrateWarning": "இந்த செயலை செயல்தவிர்க்க முடியாது. காப்புப்பிரதி கோப்பை பாதுகாப்பாக சேமித்து வைக்கவும்.", + "loadMore": "மேலும் ஏற்றவும்…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "logout": "வெளியேற்றம்", + "@logout": { + "type": "String", + "placeholders": {} + }, + "messagesStyle": "செய்திகள்:", + "newMessageInFluffyChat": "Fuf பஞ்சுபோன்ற புதிய செய்தி", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "அறை இனி பகிரங்கமாக அணுக முடியாதவுடன் மட்டுமே நீங்கள் குறியாக்கத்தை செயல்படுத்த முடியும்.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} என்பது மேட்ரிக்ஸ் சர்வர் இல்லை, அதற்கு பதிலாக {server2} ஐ பயன்படுத்தவா?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "noPermission": "இசைவு இல்லை", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "அறைகள் எதுவும் கிடைக்கவில்லை…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} பயனர்கள் தட்டச்சு செய்கிறார்கள்…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "openCamera": "திறந்த கேமரா", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "addAccount": "கணக்கைச் சேர்க்கவும்", + "openInMaps": "வரைபடங்களில் திறந்திருக்கும்", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "link": "இணைப்பு", + "passwordForgotten": "கடவுச்சொல் மறந்துவிட்டது", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "கடவுச்சொல் மாற்றப்பட்டுள்ளது", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "பாச் குறியீட்டைத் தேர்வுசெய்க", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "பொது அறைகள்", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "மற்ற எல்லா சாதனங்களையும் அகற்றவும்", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "அறை மேம்படுத்தப்பட்டுள்ளது", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "அறை பதிப்பு", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "saveFile": "கோப்பை சேமி", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "sentAnAudio": "🎤 {username} ஆடியோவை அனுப்பியுள்ளார்", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username} படத்தை அனுப்பியுள்ளார்", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} ஒரு வீடியோவை அனுப்பியுள்ளார்", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "settings": "அமைப்புகள்", + "@settings": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} அவற்றின் இருப்பிடத்தைப் பகிர்ந்து கொண்டது", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "submit": "சமர்ப்பிக்கவும்", + "@submit": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "மீண்டும் அனுப்ப முயற்சிக்கவும்", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "sendTypingNotifications": "தட்டச்சு அறிவிப்புகளை அனுப்பவும்", + "enterAnEmailAddress": "மின்னஞ்சல் முகவரியை உள்ளிடவும்", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "blockListDescription": "உங்களை தொந்தரவு செய்யும் பயனர்களைத் தடுக்கலாம். உங்கள் தனிப்பட்ட தொகுதி பட்டியலில் பயனர்களிடமிருந்து எந்த செய்திகளையும் அல்லது அறை அழைப்புகளையும் நீங்கள் பெற முடியாது.", + "incorrectPassphraseOrKey": "தவறான கடவுச்சொல் அல்லது மீட்பு விசை", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "loadingPleaseWait": "ஏற்றுகிறது… தயவுசெய்து காத்திருங்கள்.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "no": "இல்லை", + "@no": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "இந்த அரட்டையிலிருந்து உங்களுக்கு தடை விதிக்கப்பட்டுள்ளது", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "databaseMigrationTitle": "தரவுத்தளம் உகந்ததாக உள்ளது", + "usersMustKnock": "பயனர்கள் தட்ட வேண்டும்", + "importFromZipFile": ".சிப் கோப்பிலிருந்து இறக்குமதி", + "activatedEndToEndEncryption": "{username} இறுதி குறியாக்கத்திற்கு செயல்படுத்தப்பட்ட முடிவு", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addToSpace": "விண்வெளியில் சேர்க்கவும்", + "commandHint_hug": "கட்டிப்பிடிக்கவும்", + "cuddleContent": "{senderName} பெயர் you உங்களை கசக்குகிறது", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "hugContent": "{senderName} உங்களை அணைத்துக்கொள்கிறது", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "appLock": "பயன்பாட்டு பூட்டு", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "appLockDescription": "முள் குறியீட்டைக் கொண்டு பயன்படுத்தாதபோது பயன்பாட்டைப் பூட்டவும்", + "googlyEyesContent": "{senderName} உங்களுக்கு கூகிள் கண்களை அனுப்புகிறது", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "areYouSure": "நீங்கள் உறுதியாக இருக்கிறீர்களா?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "{username}பயனர்பெயர் இருந்து இலிருந்து இந்த சரிபார்ப்பு கோரிக்கையை ஏற்றுக்கொள்ளவா?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "autoplayImages": "அனிமேசன் செய்யப்பட்ட ச்டிக்கர்கள் மற்றும் உணர்ச்சிகளை தானாக இயக்கவும்", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "badServerLoginTypesException": "உள்நாட்டு வகைகளை ஓம்சர்வர் ஆதரிக்கிறது:\n {serverVersions}\n ஆனால் இந்த பயன்பாடு மட்டுமே ஆதரிக்கிறது:\n {supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "noChatsFoundHere": "இங்கே அரட்டைகள் எதுவும் காணப்படவில்லை. கீழே உள்ள பொத்தானைப் பயன்படுத்தி ஒருவருடன் புதிய அரட்டையைத் தொடங்கவும். ⤵️", + "space": "இடைவெளி", + "banned": "தடைசெய்யப்பட்டது", + "@banned": { + "type": "String", + "placeholders": {} + }, + "changedTheHistoryVisibilityTo": "{username} வரலாற்று தெரிவுநிலையை மாற்றியது: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} சேர விதிகளை மாற்றியது", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} சேர விதிகளை மாற்றியது: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} அழைப்பிதழ் இணைப்பை மாற்றியது", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "கடவுச்சொல்லை மாற்றவும்", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "ஓம்சர்வரை மாற்றவும்", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "உங்கள் அவதாரத்தை மாற்றவும்", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "குறியாக்கம் சிதைந்துள்ளது", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "அரட்டை", + "@chat": { + "type": "String", + "placeholders": {} + }, + "commandHint_markasdm": "கொடுக்கப்பட்ட மேட்ரிக்சிற்கான நேரடி செய்தி அறையாக குறிக்கவும்", + "commandHint_ban": "கொடுக்கப்பட்ட பயனரை இந்த அறையிலிருந்து தடை செய்யுங்கள்", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_clearcache": "தெளிவான தற்காலிக சேமிப்பு", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_discardsession": "அமர்வை நிராகரிக்கவும்", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_myroomavatar": "இந்த அறைக்கு உங்கள் படத்தை அமைக்கவும் (mxc-uri எழுதியது)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "இந்த அறைக்கு உங்கள் காட்சி பெயரை அமைக்கவும்", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandInvalid": "கட்டளை தவறானது", + "@commandInvalid": { + "type": "String" + }, + "contentHasBeenReported": "உள்ளடக்கம் சேவையக நிர்வாகிகளுக்கு தெரிவிக்கப்பட்டுள்ளது", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} அரட்டையை உருவாக்கினார்", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "currentlyActive": "தற்போது செயலில் உள்ளது", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "deactivateAccountWarning": "இது உங்கள் பயனர் கணக்கை செயலிழக்கச் செய்யும். இதை செயல்தவிர்க்க முடியாது! நீங்கள் உறுதியாக இருக்கிறீர்களா?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "புதிய பயனர்களுக்கான இயல்புநிலை இசைவு நிலை", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "நீக்கு", + "@delete": { + "type": "String", + "placeholders": {} + }, + "devices": "சாதனங்கள்", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "நேரடி அரட்டைகள்", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "காட்சி பெயர் மாற்றப்பட்டுள்ளது", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "தடுக்கப்பட்ட சேவையகங்களைத் திருத்து", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "எமோட் ஏற்கனவே உள்ளது!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "தவறான எமோட் சார்ட்கோட்!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteKeyboardNoRecents": "அண்மைக் காலத்தில் பயன்படுத்தப்பட்ட உணர்ச்சிகள் இங்கே தோன்றும் ...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "accessAndVisibilityDescription": "இந்த அரட்டையில் யார் சேர அனுமதிக்கப்படுகிறார்கள், அரட்டையை எவ்வாறு கண்டுபிடிப்பது.", + "calls": "அழைப்புகள்", + "customEmojisAndStickers": "தனிப்பயன் ஈமோசிகள் மற்றும் ச்டிக்கர்கள்", + "customEmojisAndStickersBody": "எந்தவொரு அரட்டையிலும் பயன்படுத்தக்கூடிய தனிப்பயன் ஈமோசிகள் அல்லது ச்டிக்கர்களைச் சேர்க்கவும் அல்லது பகிரவும்.", + "emoteShortcode": "சார்ட்கோட் எமோட்", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "உலகளவில் எமோட் பேக்கை இயக்கவும்", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "குறியாக்கத்தை இயக்கவும்", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "நீங்கள் இனி குறியாக்கத்தை முடக்க முடியாது. நீங்கள் உறுதியாக இருக்கிறீர்களா?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "குறியாக்கம் இயக்கப்படவில்லை", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "encryption": "குறியாக்கம்", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} அழைப்பை முடித்தார்", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "errorObtainingLocation": "இருப்பிடத்தைப் பெறுவதில் பிழை: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "group": "குழு", + "@group": { + "type": "String", + "placeholders": {} + }, + "chatDescription": "அரட்டை விளக்கம்", + "groupIsPublic": "குழு பொது", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "hideInvalidOrUnknownMessageFormats": "தவறான அல்லது அறியப்படாத செய்தி வடிவங்களை மறைக்கவும்", + "block": "தொகுதி", + "inviteContactToGroup": "{groupName} க்கு தொடர்பை அழை", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "noChatDescriptionYet": "அரட்டை விளக்கம் இதுவரை உருவாக்கப்படவில்லை.", + "invalidServerName": "தவறான சேவையக பெயர்", + "redactMessageDescription": "இந்த உரையாடலில் பங்கேற்பாளர்கள் அனைவருக்கும் செய்தி திருத்தப்படும். இதை செயல்தவிர்க்க முடியாது.", + "invitedUser": "📩 {username} {targetName} அழைக்கப்பட்டார்", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "inviteText": "{username} உங்களை பஞ்சுபோன்றதாக அழைத்தது.\n 1. FulufyChat.im ஐப் பார்வையிட்டு பயன்பாட்டை நிறுவவும்\n 2. பதிவு செய்யுங்கள் அல்லது உள்நுழைக\n 3. அழைப்பிதழ் இணைப்பைத் திறக்கவும்:\n {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "joinRoom": "அறையில் சேரவும்", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "leave": "விடுப்பு", + "@leave": { + "type": "String", + "placeholders": {} + }, + "hydrate": "காப்பு கோப்பிலிருந்து மீட்டமைக்கவும்", + "locationDisabledNotice": "இருப்பிட சேவைகள் முடக்கப்பட்டுள்ளன. தயவுசெய்து உங்கள் இருப்பிடத்தைப் பகிர்ந்து கொள்ள அவர்களுக்கு உதவவும்.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "இருப்பிட இசைவு மறுக்கப்பட்டது. உங்கள் இருப்பிடத்தைப் பகிர்ந்து கொள்ள தயவுசெய்து அவர்களுக்கு வழங்குங்கள்.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "login": "புகுபதிவு", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "{homeserver} இல் உள்நுழைக", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "messages": "செய்திகள்", + "@messages": { + "type": "String", + "placeholders": {} + }, + "muteChat": "முடக்கு அரட்டை", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "புதிய அரட்டை", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "next": "அடுத்தது", + "@next": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "உங்கள் கடவுச்சொல்லை மீட்டெடுப்பதற்கான வழியை நீங்கள் இன்னும் சேர்க்கவில்லை.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "செய்திகளைப் படிக்க பயன்பாட்டைத் திறக்கவும்", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "oneClientLoggedOut": "உங்கள் வாடிக்கையாளர்களில் ஒருவர் உள்நுழைந்துள்ளார்", + "addToBundle": "மூட்டையில் சேர்க்கவும்", + "or": "அல்லது", + "@or": { + "type": "String", + "placeholders": {} + }, + "passwordRecoverySettings": "கடவுச்சொல் மீட்பு அமைப்புகள்", + "passwordRecovery": "கடவுச்சொல் மீட்பு", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "உங்கள் கடவுச்சொல்லை உள்ளிடவும்", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "உங்கள் முள் உள்ளிடவும்", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "உங்கள் பயனர்பெயரை உள்ளிடவும்", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "வலைத்தளத்தின் வழிமுறைகளைப் பின்பற்றி அடுத்து தட்டவும்.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "தனியுரிமை", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "reason": "காரணம்", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactedByBecause": "{username} ஆல் திருத்தப்பட்டது ஏனெனில்: \"{reason}\"", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "rejectedTheInvitation": "{username} அழைப்பை நிராகரித்தது", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "unbanFromChat": "அரட்டையிலிருந்து தடையின்றி", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "உங்கள் அவதாரத்தை அகற்று", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "புதிய பதிப்போடு அறையை மாற்றவும்", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "உரையாக அனுப்பவும்", + "@sendAsText": { + "type": "String" + }, + "sendAudio": "ஆடியோ அனுப்பவும்", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendImage": "படத்தை அனுப்பு", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendImages": "{count} படத்தை அனுப்பு", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "sendVideo": "வீடியோ அனுப்பவும்", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentASticker": "😊 {username} ஒரு ச்டிக்கரை அனுப்பியது", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} அனுப்பப்பட்ட அழைப்பு செய்தி", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setAsCanonicalAlias": "முதன்மையான மாற்றுப்பெயராக அமைக்கவும்", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "setChatDescription": "அரட்டை விளக்கத்தை அமைக்கவும்", + "share": "பங்கு", + "@share": { + "type": "String", + "placeholders": {} + }, + "skip": "தவிர்", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "மூலக் குறியீடு", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "spaceName": "விண்வெளி பெயர்", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "status": "நிலை", + "@status": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "மண்டலம்", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "அவர்கள் பொருந்துகிறார்கள்", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} தடைசெய்யப்படாத {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unknownEvent": "அறியப்படாத நிகழ்வு '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "userAndOthersAreTyping": "{username} மற்றும் {count} மற்றவர்கள் தட்டச்சு செய்கிறார்கள்…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userIsTyping": "{username} தட்டச்சு செய்கிறது…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "waitingPartnerAcceptRequest": "கூட்டாளர் கோரிக்கையை ஏற்றுக்கொள்வதற்காக காத்திருக்கிறார்…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "பங்குதாரர் ஈமோசியை ஏற்றுக்கொள்வதற்காக காத்திருக்கிறார்…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "sender": "அனுப்புநர்", + "openGallery": "திறந்த கேலரி", + "whyDoYouWantToReportThis": "இதை ஏன் புகாரளிக்க விரும்புகிறீர்கள்?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "இந்த முகவரிகள் மூலம் உங்கள் கடவுச்சொல்லை மீட்டெடுக்கலாம்.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "ஒரு செய்தியை எழுதுங்கள்…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "ஆம்", + "@yes": { + "type": "String", + "placeholders": {} + }, + "removeFromSpace": "இடத்திலிருந்து அகற்று", + "confirmEventUnpin": "நிகழ்வை நிரந்தரமாக அவிழ்ப்பது உறுதி?", + "youJoinedTheChat": "நீங்கள் அரட்டையில் சேர்ந்தீர்கள்", + "youAcceptedTheInvitation": "👍 நீங்கள் அழைப்பை ஏற்றுக்கொண்டீர்கள்", + "youBannedUser": "நீங்கள் {user} தடை செய்தீர்கள்", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youHaveWithdrawnTheInvitationFor": "{user}க்கான அழைப்பை திரும்பப் பெற்றுவிட்டீர்கள்", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 நீங்கள் {user} ஆல் அழைக்கப்பட்டுள்ளீர்கள்", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 {user} ஐ அழைத்தீர்கள்", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "நீங்கள் {user} தடைசெய்யவில்லை", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "hasKnocked": "🚪 {user} தட்டியது", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "knock": "தட்டவும்", + "users": "பயனர்கள்", + "storeInAndroidKeystore": "ஆண்ட்ராய்டு கீச்டோரில் சேமிக்கவும்", + "countFiles": "{count} கோப்புகள்", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "custom": "தனிப்பயன்", + "whyIsThisMessageEncrypted": "இந்த செய்தி ஏன் படிக்க முடியாதது?", + "noKeyForThisMessage": "இந்த சாதனத்தில் உங்கள் கணக்கில் கையொப்பமிடுவதற்கு முன்பு செய்தி அனுப்பப்பட்டால் இது நிகழலாம்.\n\n அனுப்புநர் உங்கள் சாதனத்தைத் தடுத்துள்ளார் அல்லது இணைய இணைப்பில் ஏதேனும் தவறு ஏற்பட்டுள்ளது.\n\n மற்றொரு அமர்வில் செய்தியைப் படிக்க முடியுமா? அதிலிருந்து செய்தியை மாற்றலாம்! அமைப்புகள்> சாதனங்களுக்குச் சென்று, உங்கள் சாதனங்கள் ஒருவருக்கொருவர் சரிபார்த்துள்ளன என்பதை உறுதிப்படுத்தவும். அடுத்த முறை நீங்கள் அறையைத் திறக்கும்போது, இரண்டு அமர்வுகளும் முன்னணியில் இருக்கும்போது, விசைகள் தானாகவே அனுப்பப்படும்.\n\n வெளியேறும்போது அல்லது சாதனங்களை மாற்றும்போது விசைகளை இழக்க நீங்கள் விரும்பவில்லையா? அமைப்புகளில் அரட்டை காப்புப்பிரதியை நீங்கள் இயக்கியுள்ளீர்கள் என்பதை உறுதிப்படுத்திக் கொள்ளுங்கள்.", + "doNotShowAgain": "மீண்டும் காட்ட வேண்டாம்", + "newSpaceDescription": "உங்கள் அரட்டைகளை ஒருங்கிணைத்து தனியார் அல்லது பொது சமூகங்களை உருவாக்க இடைவெளிகள் உங்களை அனுமதிக்கிறது.", + "disableEncryptionWarning": "பாதுகாப்பு காரணங்களுக்காக நீங்கள் ஒரு அரட்டையில் குறியாக்கத்தை முடக்க முடியாது, அது இதற்கு முன்பு இயக்கப்பட்டிருக்கிறது.", + "sorryThatsNotPossible": "மன்னிக்கவும் ... அது சாத்தியமில்லை", + "noBackupWarning": "எச்சரிக்கை! அரட்டை காப்புப்பிரதியை இயக்காமல், உங்கள் மறைகுறியாக்கப்பட்ட செய்திகளுக்கான அணுகலை இழப்பீர்கள். வெளியேறுவதற்கு முன் முதலில் அரட்டை காப்புப்பிரதியை இயக்க மிகவும் பரிந்துரைக்கப்படுகிறது.", + "fileIsTooBigForServer": "அனுப்ப முடியவில்லை! சேவையகம் {max} வரை இணைப்புகளை மட்டுமே ஆதரிக்கிறது.", + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "fileHasBeenSavedAt": "கோப்பு {path} இல் சேமிக்கப்பட்டது", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "inviteGroupChat": "📨 குழு அரட்டை அழைப்பு", + "invalidInput": "தவறான உள்ளீடு!", + "archiveRoomDescription": "அரட்டை காப்பகத்திற்கு நகர்த்தப்படும். மற்ற பயனர்கள் நீங்கள் அரட்டையை விட்டுவிட்டீர்கள் என்பதைக் காண முடியும்.", + "removeDevicesDescription": "நீங்கள் இந்த சாதனத்திலிருந்து வெளியேறுவீர்கள், இனி செய்திகளைப் பெற முடியாது.", + "banUserDescription": "பயனர் அரட்டையிலிருந்து தடைசெய்யப்படுவார், மேலும் அவை தடைசெய்யப்படாத வரை மீண்டும் அரட்டையில் நுழைய முடியாது.", + "makeAdminDescription": "இந்த பயனர் நிர்வாகியை நீங்கள் செய்தவுடன், இதை நீங்கள் செயல்தவிர்க்க முடியாமல் போகலாம், ஏனெனில் அவை உங்களைப் போன்ற அதே அனுமதிகளைக் கொண்டிருக்கும்.", + "knocking": "தட்டுதல்", + "searchChatsRooms": "#Chats, Us பயனர்களைத் தேடுங்கள் ...", + "nothingFound": "எதுவும் கிடைக்கவில்லை ...", + "groupName": "குழு பெயர்", + "createGroupAndInviteUsers": "ஒரு குழுவை உருவாக்கி பயனர்களை அழைக்கவும்", + "groupCanBeFoundViaSearch": "தேடல் வழியாக குழுவை காணலாம்", + "wrongRecoveryKey": "மன்னிக்கவும் ... இது சரியான மீட்பு விசையாகத் தெரியவில்லை.", + "databaseMigrationBody": "தயவுசெய்து காத்திருங்கள். இது ஒரு கணம் ஆகலாம்.", + "newPassword": "புதிய கடவுச்சொல்", + "pleaseChooseAStrongPassword": "வலுவான கடவுச்சொல்லைத் தேர்வுசெய்க", + "passwordsDoNotMatch": "கடவுச்சொற்கள் பொருந்தவில்லை", + "joinSpace": "விண்வெளியில் சேரவும்", + "addChatOrSubSpace": "அரட்டை அல்லது துணை இடத்தைச் சேர்க்கவும்", + "initAppError": "பயன்பாட்டைத் தொடங்கும்போது பிழை ஏற்பட்டது", + "sessionLostBody": "உங்கள் அமர்வு தொலைந்துவிட்டது. {url} இல் டெவலப்பர்களிடம் இந்தப் பிழையைப் புகாரளிக்கவும். பிழை செய்தி: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "sendTypingNotificationsDescription": "அரட்டையில் பங்கேற்பாளர்கள் நீங்கள் ஒரு புதிய செய்தியைத் தட்டச்சு செய்யும் போது காணலாம்.", + "sendReadReceiptsDescription": "அரட்டையில் பங்கேற்பாளர்கள் நீங்கள் ஒரு செய்தியைப் படிக்கும்போது பார்க்கலாம்.", + "formattedMessagesDescription": "மார்க் டவுனைப் பயன்படுத்தி தைரியமான உரை போன்ற பணக்கார செய்தி உள்ளடக்கத்தைக் காண்பி.", + "verifyOtherUser": "🔐 மற்ற பயனரை சரிபார்", + "verifyOtherUserDescription": "நீங்கள் மற்றொரு பயனரைச் சரிபார்த்தால், நீங்கள் உண்மையில் யாருக்கு எழுதுகிறீர்கள் என்பது உங்களுக்குத் தெரியும் என்பதை நீங்கள் உறுதியாக நம்பலாம். 💪\n\nநீங்கள் ஒரு சரிபார்ப்பைத் தொடங்கும்போது, நீங்களும் மற்ற பயனரும் பயன்பாட்டில் ஒரு பாப்அப்பைக் காண்பீர்கள். நீங்கள் ஒருவருக்கொருவர் ஒப்பிட வேண்டிய தொடர்ச்சியான ஈமோசிகள் அல்லது எண்களைக் காண்பீர்கள்.\n\nஇதைச் செய்வதற்கான சிறந்த வழி வீடியோ அழைப்பைச் சந்திப்பது அல்லது தொடங்குவது. 👭", + "verifyOtherDeviceDescription": "நீங்கள் மற்றொரு சாதனத்தைச் சரிபார்க்கும்போது, அந்தச் சாதனங்கள் விசைகளைப் பரிமாறிக்கொள்ளலாம், உங்கள் ஒட்டுமொத்த பாதுகாப்பை அதிகரிக்கும். 💪 நீங்கள் ஒரு சரிபார்ப்பைத் தொடங்கும்போது, இரண்டு சாதனங்களிலும் பயன்பாட்டில் ஒரு பாப்அப் தோன்றும். நீங்கள் ஒருவருக்கொருவர் ஒப்பிட வேண்டிய தொடர்ச்சியான ஈமோசிகள் அல்லது எண்களைக் காண்பீர்கள். நீங்கள் சரிபார்ப்பைத் தொடங்குவதற்கு முன்பு இரண்டு சாதனங்களையும் எளிதில் வைத்திருப்பது நல்லது. 🤳", + "canceledKeyVerification": "{sender} ரத்து செய்யப்பட்ட விசை சரிபார்ப்பு", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "விசை சரிபார்ப்பிற்கு {sender} தயாராக உள்ளார்", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "requestedKeyVerification": "{sender} கோரப்பட்ட விசை சரிபார்ப்பு", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "stickers": "ச்டிக்கர்கள்", + "commandHint_ignore": "கொடுக்கப்பட்ட மேட்ரிக்ச் ஐடியை புறக்கணிக்கவும்", + "unreadChatsInApp": "{appname}: {unread} படிக்காத அரட்டைகள்", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "thereAreCountUsersBlocked": "இப்போது {count} பயனர்கள் தடுக்கப்பட்டுள்ளனர்.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "moderatorLevel": "{level} - மதிப்பீட்டாளர்", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "adminLevel": "{level} - நிர்வாகி", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeGeneralChatSettings": "பொது அரட்டை அமைப்புகளை மாற்றவும்", + "inviteOtherUsers": "இந்த அரட்டைக்கு மற்ற பயனர்களை அழைக்கவும்", + "changeTheChatPermissions": "அரட்டை அனுமதிகளை மாற்றவும்", + "changeTheVisibilityOfChatHistory": "அரட்டை வரலாற்றின் தெரிவுநிலையை மாற்றவும்", + "changeTheCanonicalRoomAlias": "முக்கிய பொது அரட்டை முகவரியை மாற்றவும்", + "changeTheDescriptionOfTheGroup": "அரட்டையின் விளக்கத்தை மாற்றவும்", + "chatPermissionsDescription": "இந்த அரட்டையில் சில செயல்களுக்கு எந்த ஆற்றல் நிலை தேவை என்பதை வரையறுக்கவும். 0, 50 மற்றும் 100 ஆற்றல் நிலைகள் பொதுவாக பயனர்கள், மதிப்பீட்டாளர்கள் மற்றும் நிர்வாகிகளைக் குறிக்கின்றன, ஆனால் எந்த தரமும் சாத்தியமாகும்.", + "updateInstalled": "🎉 புதுப்பிப்பு {version} நிறுவப்பட்டது!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "changelog": "மாற்றபதிவு", + "calculatingFileSize": "கோப்பு அளவைக் கணக்கிடுகிறது ...", + "oneOfYourDevicesIsNotVerified": "உங்கள் சாதனங்களில் ஒன்று சரிபார்க்கப்படவில்லை", + "noticeChatBackupDeviceVerification": "குறிப்பு: உங்கள் எல்லா சாதனங்களையும் அரட்டை காப்புப்பிரதியுடன் இணைக்கும்போது, அவை தானாகவே சரிபார்க்கப்படும்.", + "manageAccount": "கணக்கை நிர்வகிக்கவும்", + "noContactInformationProvided": "சேவையகம் எந்த சரியான தொடர்பு தகவலையும் வழங்காது", + "contactServerAdmin": "சேவையக நிர்வாகி தொடர்பு", + "contactServerSecurity": "சேவையக பாதுகாப்பைத் தொடர்பு கொள்ளுங்கள்", + "supportPage": "உதவி பக்கம்", + "serverInformation": "சேவையக தகவல்:", + "version": "பதிப்பு", + "website": "வலைத்தளம்", + "compress": "சுருக்க", + "admin": "நிர்வாகி", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "மாற்றுப்பெயர்", + "@alias": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} அழைப்புக்கு பதிலளித்தார்", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_react": "ஒரு எதிர்வினையாக பதிலை அனுப்பவும்", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_send": "உரையை அனுப்பவும்", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "removeFromBundle": "இந்த மூட்டையிலிருந்து அகற்றவும்", + "redactedBy": "{username} ஆல் திருத்தப்பட்டது", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactMessage": "திருத்தும் செய்தி", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "userAndUserAreTyping": "{username} மற்றும் {username2} தட்டச்சு செய்கின்றன…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪 {username} அரட்டையை விட்டு வெளியேறினார்", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "visibilityOfTheChatHistory": "அரட்டை வரலாற்றின் தெரிவுநிலை", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "you": "நீங்கள்", + "@you": { + "type": "String", + "placeholders": {} + }, + "unsupportedAndroidVersionLong": "இந்த அம்சத்திற்கு புதிய ஆண்ட்ராய்டு பதிப்பு தேவைப்படுகிறது. புதுப்பிப்புகள் அல்லது பரம்பரை OS ஆதரவை சரிபார்க்கவும்.", + "setColorTheme": "வண்ண கருப்பொருள் அமைக்கவும்:", + "roomUpgradeDescription": "அரட்டை பின்னர் புதிய அறை பதிப்பில் மீண்டும் உருவாக்கப்படும். பங்கேற்பாளர்கள் அனைவருக்கும் புதிய அரட்டைக்கு மாற வேண்டும் என்று அறிவிக்கப்படும். அறை பதிப்புகள் பற்றி மேலும் அறிய https://spec.matrix.org/latest/rooms/", + "account": "கணக்கு", + "@account": { + "type": "String", + "placeholders": {} + }, + "groups": "குழுக்கள்", + "@groups": { + "type": "String", + "placeholders": {} + }, + "blockedUsers": "தடுக்கப்பட்ட பயனர்கள்", + "leaveEmptyToClearStatus": "உங்கள் நிலையை அழிக்க காலியாக விடவும்.", + "thisDevice": "இந்த சாதனம்:", + "gallery": "கேலரி", + "files": "கோப்புகள்", + "noDatabaseEncryption": "இந்த மேடையில் தரவுத்தள குறியாக்கம் ஆதரிக்கப்படவில்லை", + "goToSpace": "இடைவெளிக்குச் செல்லுங்கள்: {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "markAsUnread": "படிக்காத எனக் குறிக்கவும்", + "userLevel": "{level} - பயனர்", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "notAnImage": "படக் கோப்பு அல்ல.", + "encryptThisChat": "இந்த அரட்டையை குறியாக்கவும்", + "publicChatAddresses": "பொது அரட்டை முகவரிகள்", + "createNewAddress": "புதிய முகவரியை உருவாக்கவும்", + "boldText": "தைரியமான உரை", + "italicText": "சாய்வு உரை", + "strikeThrough": "ச்ட்ரைகெத்ரோ", + "pleaseFillOut": "தயவுசெய்து நிரப்பவும்", + "invalidUrl": "தவறான முகவரி", + "addLink": "இணைப்பைச் சேர்க்கவும்", + "searchIn": "அரட்டையில் தேடு \"{chat}\"...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "searchMore": "மேலும் தேடு...", + "startedKeyVerification": "{sender} விசை சரிபார்ப்பைத் தொடங்கினார்", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "loginWithMatrixId": "மேட்ரிக்ச்-ஐடியுடன் உள்நுழைக", + "doesNotSeemToBeAValidHomeserver": "இணக்கமான வீட்டுசேவையகம் என்று தெரியவில்லை. தவறான முகவரி?", + "noMoreChatsFound": "இனி அரட்டைகள் கிடைக்கவில்லை ...", + "changedTheChatPermissions": "{username} அரட்டை அனுமதிகளை மாற்றியுள்ளார்", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} விருந்தினர் அணுகல் விதிகளை மாற்றியது: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} வரலாற்று தெரிவுநிலையை மாற்றியது", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "commandHint_join": "கொடுக்கப்பட்ட அறையில் சேரவும்", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_dm": "நேரடி அரட்டையைத் தொடங்கவும்\n குறியாக்கத்தை முடக்க-இல்லை-குறியாக்கத்தைப் பயன்படுத்தவும்", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_leave": "இந்த அறையை விட்டு விடுங்கள்", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "unbanUserDescription": "அவர்கள் முயற்சித்தால் பயனர் மீண்டும் அரட்டையை உள்ளிட முடியும்.", + "restoreSessionBody": "ஆப்ஸ் இப்போது உங்கள் அமர்வை காப்புப்பிரதியிலிருந்து மீட்டெடுக்க முயற்சிக்கிறது. {url} இல் டெவலப்பர்களிடம் இந்தப் பிழையைப் புகாரளிக்கவும். பிழை செய்தி: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "sendReadReceipts": "வாசிப்பு ரசீதுகளை அனுப்பவும்", + "unableToJoinChat": "அரட்டையில் சேர முடியவில்லை. ஒருவேளை மற்ற கட்சி ஏற்கனவே உரையாடலை மூடியிருக்கலாம்.", + "noGoogleServicesWarning": "ஃபயர்பேச் முகில் செய்தி உங்கள் சாதனத்தில் கிடைக்கவில்லை. இன்னும் புச் அறிவிப்புகளைப் பெற, ntfy ஐ நிறுவப் பரிந்துரைக்கிறோம். ntfy அல்லது மற்றொரு ஒருங்கிணைந்த புச் வழங்குநருடன் நீங்கள் தரவு பாதுகாப்பான வழியில் புச் அறிவிப்புகளைப் பெறலாம். நீங்கள் பிளேச்டோரிலிருந்து அல்லது எஃப்-டிராய்டிலிருந்து ntfy ஐ பதிவிறக்கம் செய்யலாம்.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "scanQrCode": "QR குறியீட்டை ச்கேன் செய்யுங்கள்", + "obtainingLocation": "இருப்பிடத்தைப் பெறுதல்…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "participant": "பங்கேற்பாளர்", + "@participant": { + "type": "String", + "placeholders": {} + }, + "search": "தேடல்", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "பாதுகாப்பு", + "@security": { + "type": "String", + "placeholders": {} + }, + "sendFile": "கோப்பு அனுப்பவும்", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "commandHint_roomupgrade": "கொடுக்கப்பட்ட அறை பதிப்பிற்கு இந்த அறையை மேம்படுத்தவும்", + "checkList": "சரிபார்ப்பு பட்டியல்", + "countInvited": "{count} அழைக்கப்பட்டது", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "synchronizingPleaseWaitCounter": " ஒத்திசைத்தல்… ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "previous": "முந்தைய", + "otherPartyNotLoggedIn": "மற்ற கட்சி தற்போது உள்நுழைந்திருக்கவில்லை, எனவே செய்திகளைப் பெற முடியாது!", + "appWantsToUseForLogin": "உள்நுழைய '{server}' ஐப் பயன்படுத்தவும்", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "appWantsToUseForLoginDescription": "உங்களைப் பற்றிய தகவல்களைப் பகிர பயன்பாடு மற்றும் வலைத்தளத்தை இதன்மூலம் அனுமதிக்கிறீர்கள்.", + "open": "திற", + "waitingForServer": "சேவையகத்திற்காக காத்திருக்கிறது ...", + "newChatRequest": "📩 புதிய அரட்டை கோரிக்கை", + "contentNotificationSettings": "உள்ளடக்க அறிவிப்பு அமைப்புகள்", + "generalNotificationSettings": "பொது அறிவிப்பு அமைப்புகள்", + "roomNotificationSettings": "அறை அறிவிப்பு அமைப்புகள்", + "userSpecificNotificationSettings": "பயனர் குறிப்பிட்ட அறிவிப்பு அமைப்புகள்", + "otherNotificationSettings": "பிற அறிவிப்பு அமைப்புகள்", + "notificationRuleContainsUserName": "பயனர் பெயரைக் கொண்டுள்ளது", + "notificationRuleContainsUserNameDescription": "ஒரு செய்தியில் அவற்றின் பயனர்பெயர் இருக்கும்போது பயனருக்கு அறிவிக்கிறது.", + "notificationRuleMaster": "அனைத்து அறிவிப்புகளையும் முடக்குகிறது", + "notificationRuleMasterDescription": "மற்ற எல்லா விதிகளையும் மீறி அனைத்து அறிவிப்புகளையும் முடக்குகிறது.", + "notificationRuleSuppressNotices": "தானியங்கு செய்திகளை அடக்கவும்", + "notificationRuleSuppressNoticesDescription": "போட்ச் போன்ற தானியங்கி வாடிக்கையாளர்களிடமிருந்து அறிவிப்புகளை அடக்குகிறது.", + "notificationRuleInviteForMe": "எனக்கு அழைக்கவும்", + "notificationRuleInviteForMeDescription": "ஒரு அறைக்கு அழைக்கப்படும்போது பயனருக்கு அறிவிக்கிறது.", + "notificationRuleMemberEvent": "உறுப்பினர் நிகழ்வு", + "notificationRuleMemberEventDescription": "உறுப்பினர் நிகழ்வுகளுக்கான அறிவிப்புகளை அடக்குகிறது.", + "notificationRuleIsUserMention": "பயனர் குறிப்பு", + "notificationRuleIsUserMentionDescription": "ஒரு செய்தியில் நேரடியாக குறிப்பிடப்படும்போது பயனருக்கு அறிவிக்கிறது.", + "notificationRuleContainsDisplayName": "காட்சி பெயரைக் கொண்டுள்ளது", + "notificationRuleContainsDisplayNameDescription": "ஒரு செய்தியில் அவற்றின் காட்சி பெயர் இருக்கும்போது பயனருக்கு அறிவிக்கிறது.", + "notificationRuleIsRoomMention": "அறை குறிப்பு", + "notificationRuleIsRoomMentionDescription": "ஒரு அறை குறிப்பு இருக்கும்போது பயனருக்கு அறிவிக்கிறது.", + "notificationRuleRoomnotif": "அறை அறிவிப்பு", + "notificationRuleRoomnotifDescription": "ஒரு செய்தியில் '@room' இருக்கும்போது பயனருக்கு அறிவிக்கிறது.", + "notificationRuleTombstone": "கல்லறை", + "notificationRuleTombstoneDescription": "அறை செயலிழக்கச் செய்திகளைப் பற்றி பயனருக்கு அறிவிக்கிறது.", + "notificationRuleReaction": "எதிர்வினை", + "notificationRuleReactionDescription": "எதிர்வினைகளுக்கான அறிவிப்புகளை அடக்குகிறது.", + "notificationRuleRoomServerAcl": "அறை சேவையகம் ACL", + "notificationRuleRoomServerAclDescription": "அறை சேவையக அணுகல் கட்டுப்பாட்டு பட்டியல்களுக்கான (ACL) அறிவிப்புகளை அடக்குகிறது.", + "notificationRuleSuppressEdits": "திருத்தங்களை அடக்கவும்", + "notificationRuleSuppressEditsDescription": "திருத்தப்பட்ட செய்திகளுக்கான அறிவிப்புகளை அடக்குகிறது.", + "notificationRuleCall": "அழை", + "notificationRuleCallDescription": "அழைப்புகள் பற்றி பயனருக்கு அறிவிக்கிறது.", + "notificationRuleEncryptedRoomOneToOne": "மறைகுறியாக்கப்பட்ட அறை ஒன்றுக்கு ஒன்று", + "notificationRuleEncryptedRoomOneToOneDescription": "மறைகுறியாக்கப்பட்ட ஒன்றுக்கு ஒன்று அறைகளில் செய்திகளைப் பற்றி பயனருக்கு அறிவிக்கிறது.", + "notificationRuleRoomOneToOne": "அறை ஒன்று", + "notificationRuleRoomOneToOneDescription": "ஒருவருக்கு ஒன்று அறைகளில் செய்திகளைப் பற்றி பயனருக்கு அறிவிக்கிறது.", + "notificationRuleMessage": "செய்தி", + "notificationRuleMessageDescription": "பொதுவான செய்திகளைப் பற்றி பயனருக்கு அறிவிக்கிறது.", + "notificationRuleEncrypted": "குறியாக்கப்பட்டது", + "notificationRuleEncryptedDescription": "மறைகுறியாக்கப்பட்ட அறைகளில் செய்திகளைப் பற்றி பயனருக்கு அறிவிக்கிறது.", + "notificationRuleJitsi": "சியோட்ச்", + "notificationRuleJitsiDescription": "சிட்சி விட்செட் நிகழ்வுகளைப் பற்றி பயனருக்கு அறிவிக்கிறது.", + "notificationRuleServerAcl": "சேவையக ACL நிகழ்வுகளை அடக்கவும்", + "notificationRuleServerAclDescription": "சேவையக ACL நிகழ்வுகளுக்கான அறிவிப்புகளை அடக்குகிறது.", + "unknownPushRule": "அறியப்படாத புச் விதி '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "sentVoiceMessage": "🎙️{duration} - {sender} இலிருந்து குரல் செய்தி", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "deletePushRuleCanNotBeUndone": "இந்த அறிவிப்பு அமைப்பை நீங்கள் நீக்கினால், இதை செயல்தவிர்க்க முடியாது.", + "more": "மேலும்", + "shareKeysWith": "விசைகளைப் பகிரவும் ...", + "shareKeysWithDescription": "மறைகுறியாக்கப்பட்ட அரட்டைகளில் உங்கள் செய்திகளுடன் படிக்க எந்த சாதனங்களை நம்ப வேண்டும்?", + "allDevices": "அனைத்து சாதனங்களும்", + "crossVerifiedDevicesIfEnabled": "இயக்கப்பட்டால் சரிபார்க்கப்பட்ட சாதனங்களை குறுக்கு", + "crossVerifiedDevices": "குறுக்கு சரிபார்க்கப்பட்ட சாதனங்கள்", + "verifiedDevicesOnly": "சரிபார்க்கப்பட்ட சாதனங்கள் மட்டுமே", + "takeAPhoto": "புகைப்படம் எடுக்கவும்", + "recordAVideo": "வீடியோவைப் பதிவுசெய்க", + "optionalMessage": "(விரும்பினால்) செய்தி ...", + "notSupportedOnThisDevice": "இந்த சாதனத்தில் ஆதரிக்கப்படவில்லை", + "enterNewChat": "புதிய அரட்டையை உள்ளிடவும்", + "approve": "ஒப்புதல்", + "youHaveKnocked": "நீங்கள் தட்டிவிட்டீர்கள்", + "pleaseWaitUntilInvited": "அறையில் இருந்து யாராவது உங்களை அழைக்கும் வரை தயவுசெய்து இப்போது காத்திருங்கள்.", + "commandHint_logout": "உங்கள் தற்போதைய சாதனத்தை பதிவு செய்க", + "commandHint_logoutall": "அனைத்து செயலில் உள்ள சாதனங்களையும் அனுப்புகிறது", + "displayNavigationRail": "மொபைலில் வழிசெலுத்தல் ரெயிலைக் காட்டு", + "customReaction": "தனிப்பயன் எதிர்வினை", + "moreEvents": "மேலும் நிகழ்வுகள்", + "declineInvitation": "அழைப்பை நிராகரி", + "changedTheChatDescription": "{username} அரட்டை விளக்கத்தை மாற்றியுள்ளார்", + "changedTheChatName": "{username} அரட்டை பெயரை மாற்றியுள்ளார்", + "noMessagesYet": "இதுவரை செய்திகள் இல்லை", + "longPressToRecordVoiceMessage": "குரல் செய்தியை பதிவு செய்ய நீண்ட நேரம் அழுத்தவும்.", + "pause": "இடைநிறுத்தம்", + "resume": "தொடர்", + "removeFromSpaceDescription": "அரட்டை ச்பேசிலிருந்து அகற்றப்படும், ஆனால் உங்கள் அரட்டைப் பட்டியலில் தொடர்ந்து தோன்றும்.", + "countChats": "{chats} பூனைகள்", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "spaceMemberOf": "{spaces} இன் விண்வெளி உறுப்பினர்", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "{spaces} இன் ச்பேச் உறுப்பினர் தட்டலாம்", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "startPoll": "வாக்கெடுப்பைத் தொடங்கவும்", + "endPoll": "முடிவு வாக்கெடுப்பு", + "answersVisible": "பதில்கள் தெரியும்", + "pollQuestion": "கருத்துக்கணிப்பு கேள்வி", + "answerOption": "பதில் விருப்பம்", + "addAnswerOption": "பதில் விருப்பத்தைச் சேர்க்கவும்", + "allowMultipleAnswers": "பல பதில்களை அனுமதிக்கவும்", + "pollHasBeenEnded": "கருத்துக்கணிப்பு முடிந்தது", + "countVotes": "{count, plural, =1{வாக்கு} other{{count} வாக்குகள்}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "answersWillBeVisibleWhenPollHasEnded": "வாக்கெடுப்பு முடிந்ததும் பதில்கள் தெரியும்", + "replyInThread": "இழையில் பதிலளிக்கவும்", + "countReplies": "{count, plural, =1{பதில்} other{{count} பதில்கள்}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "thread": "நூல்", + "backToMainChat": "முதன்மை அரட்டைக்குத் திரும்பு", + "saveChanges": "மாற்றங்களைச் சேமிக்கவும்", + "createSticker": "ச்டிக்கர் அல்லது ஈமோசியை உருவாக்கவும்", + "useAsSticker": "ச்டிக்கராக பயன்படுத்தவும்", + "useAsEmoji": "ஈமோசியாக பயன்படுத்தவும்", + "stickerPackNameAlreadyExists": "ச்டிக்கர் பேக் பெயர் ஏற்கனவே உள்ளது", + "newStickerPack": "புதிய ச்டிக்கர் பேக்", + "stickerPackName": "ச்டிக்கர் பேக் பெயர்", + "attribution": "பண்புக்கூறு", + "skipChatBackup": "அரட்டை காப்புப்பிரதியைத் தவிர்", + "skipChatBackupWarning": "நீங்கள் உறுதியாக இருக்கிறீர்களா? அரட்டை காப்புப்பிரதியை இயக்காமல், உங்கள் சாதனத்தை மாற்றினால், உங்கள் செய்திகளுக்கான அணுகலை இழக்க நேரிடும்.", + "noMoreResultsFound": "மேலும் முடிவுகள் கிடைக்கவில்லை", + "chatSearchedUntil": "அரட்டை {time} வரை தேடப்பட்டது", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "federationBaseUrl": "கூட்டமைப்பு அடிப்படை முகவரி", + "clientWellKnownInformation": "வாடிக்கையாளர் நன்கு அறியப்பட்ட தகவல்:", + "baseUrl": "அடிப்படை முகவரி", + "identityServer": "அடையாள சேவையகம்:", + "versionWithNumber": "பதிப்பு: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "பதிவுகள்", + "advancedConfigs": "மேம்பட்ட கட்டமைப்புகள்", + "advancedConfigurations": "மேம்பட்ட கட்டமைப்புகள்", + "signIn": "விடுபதிகை", + "createNewAccount": "புதிய கணக்கை உருவாக்கவும்", + "signUpGreeting": "மத்தைஅரட்டை பரவலாக்கப்பட்டது! உங்கள் கணக்கை உருவாக்க விரும்பும் சேவையகத்தைத் தேர்ந்தெடுத்து, செல்லலாம்!", + "signInGreeting": "உங்களிடம் ஏற்கனவே அணி இல் கணக்கு உள்ளதா? மீண்டும் வருக! உங்கள் ஓம் சர்வரைத் தேர்ந்தெடுத்து உள்நுழையவும்.", + "theProcessWasCanceled": "செயல்முறை கைவிடப்பட்டது.", + "join": "சேர்", + "searchOrEnterHomeserverAddress": "வீட்டுசேவையக முகவரியைத் தேடவும் அல்லது உள்ளிடவும்", + "matrixId": "மேட்ரிக்ச் அடையாளம்", + "setPowerLevel": "ஆற்றல் அளவை அமை", + "makeModerator": "மதிப்பீட்டாளராக ஆக்குங்கள்", + "makeAdmin": "நிர்வாகியாக்கு", + "removeModeratorRights": "மதிப்பீட்டாளர் உரிமைகளை அகற்று", + "removeAdminRights": "நிர்வாகி உரிமைகளை அகற்று", + "powerLevel": "ஆற்றல் நிலை", + "setPowerLevelDescription": "இந்த அறையில் ஒரு உறுப்பினர் என்ன செய்ய அனுமதிக்கப்படுகிறார் என்பதை அதிகார நிலைகள் வரையறுக்கின்றன மற்றும் பொதுவாக 0 முதல் 100 வரை இருக்கும்.", + "owner": "உரிமையாளர்", + "mute": "முடக்கு", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "createNewChat": "புதிய அரட்டையை உருவாக்கு", + "unlock": "திறக்கவும்", + "@unlock": { + "type": "String", + "placeholders": {} + }, + "editImage": "படத்தை திருத்து", + "@editImage": { + "type": "String", + "placeholders": {} + }, + "rotateLeft": "இடப்புறம் சுழற்று", + "@rotateLeft": { + "type": "String", + "placeholders": {} + }, + "rotateRight": "வலதுபுறம் சுழற்று", + "@rotateRight": { + "type": "String", + "placeholders": {} + }, + "mirror": "கண்ணாடி", + "@mirror": { + "type": "String", + "placeholders": {} + }, + "save": "சேமி", + "@save": { + "type": "String", + "placeholders": {} + }, + "draw": "வரையவும்", + "@draw": { + "type": "String", + "placeholders": {} + }, + "undo": "செயல்தவிர்", + "@undo": { + "type": "String", + "placeholders": {} + }, + "clear": "தெளிவு", + "@clear": { + "type": "String", + "placeholders": {} + }, + "eraser": "அழிப்பான்", + "@eraser": { + "type": "String", + "placeholders": {} + }, + "crop": "பயிர்", + "@crop": { + "type": "String", + "placeholders": {} + }, + "discardEdits": "உங்களிடம் சேமிக்கப்படாத மாற்றங்கள் உள்ளன. உங்கள் திருத்தங்களை நிராகரிக்கவா?", + "@discardEdits": { + "type": "String", + "placeholders": {} + }, + "showMore": "மேலும் காட்டு", + "showLess": "குறைவாகக் காட்டு", + "reset": "மீட்டமை", + "supportFluffyChat": "FluffyChat ஐ ஆதரிக்கவும்", + "support": "உதவி", + "setLowPriority": "குறைந்த முன்னுரிமையை அமைக்கவும்", + "unsetLowPriority": "குறைந்த முன்னுரிமையை அமைக்கவும்", + "playSoundOnNotification": "அறிவிப்பில் ஒலியை இயக்கவும்", + "addTag": "குறியைச் சேர்க்கவும்", + "removeTag": "குறிச்சொல்லை அகற்று", + "tagName": "குறிச்சொல் பெயர்", + "createNewTag": "புதிய குறிச்சொல்லை உருவாக்கவும்", + "hideRoomsInSpaces": "ஒரு இடத்தில் இருக்கும் அறைகளை மறைக்கவும்", + "possibleByYou": "உங்கள் ஆதரவினால் மட்டுமே இந்த வெளியீடு சாத்தியமானது. பஞ்சுபோன்ற அரட்டை இலவசம், திறந்த மூலமானது மற்றும் முழுமையாக சமூகத்தால் இயக்கப்படுகிறது.", + "showThumbnailsInTimeline": "படங்கள் மற்றும் வீடியோக்களின் சிறுபடங்களைக் காட்டு", + "appSubtitle": "பாதுகாப்பான [மேட்ரிக்ச்] தொடர்பு", + "appDescription": "பரவலாக்கப்பட்ட [மேட்ரிக்ச்] நெட்வொர்க்கில் மறைகுறியாக்கப்பட்ட தொடர்பு அனைவருக்கும் எளிதாகவும் அணுகக்கூடியதாகவும் உள்ளது.", + "interactiveVerification": "ஊடாடும் சரிபார்ப்பு", + "interactiveVerificationDescription": "நீங்கள் ஒருவருக்கொருவர் அருகில் இருந்தால் அல்லது பாதுகாப்பான சேனல் மூலம் தொடர்பு கொண்டால், பாதுகாப்பு எண் அல்லது ஈமோசிகளை ஒப்பிடுவதன் மூலம் அனைத்து சாதனங்களையும் ஒரே நேரத்தில் சரிபார்க்கலாம்.", + "countUnverifiedDevices": "அரட்டையில் சரிபார்க்கப்படாத சாதனங்கள் {count}.", + "@countUnverifiedDevices": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "encryptedMessage": "மறைகுறியாக்கப்பட்ட செய்தி", + "unencryptedMessage": "மறைகுறியாக்கப்படாத செய்தி", + "messageCanOnlyBeReadByUser": "உங்கள் செய்தி எண்ட் டு என்ட் என்க்ரிப்ட் செய்யப்பட்டு இந்தப் பயனரால் மட்டுமே படிக்க முடியும்:", + "messageCanOnlyBeReadByUsers": "உங்கள் செய்தி எண்ட் டு என்ட் என்க்ரிப்ட் செய்யப்பட்டு, இந்தப் பயனர்களால் மட்டுமே படிக்க முடியும்:", + "publicKey": "பொது விசை: {key}", + "@publicKey": { + "type": "String", + "placeholders": { + "key": { + "type": "String" + } + } + }, + "deviceIdentityKey": "சாதன அடையாள விசை", + "restoreBootstrapEmptyDevicesDescription": "இந்தச் சாதனத்தைச் சரிபார்க்க உங்கள் கடவுச்சொற்றொடரை அல்லது மீட்பு விசையை உள்ளிடவும் மற்றும் உங்கள் மறைகுறியாக்கப்பட்ட செய்தி காப்புப்பிரதிக்கான அணுகலைப் பெறவும்.", + "@restoreBootstrapEmptyDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "restoreBootstrapDevicesDescription": "இந்த அமர்வைச் சரிபார்க்க, உங்கள் மற்ற சாதனங்களில் ஒன்றைத் தேர்ந்தெடுக்கவும்:", + "@restoreBootstrapDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "resetAccount": "கணக்கை மீட்டமைக்கவும்", + "@resetAccount": { + "type": "String", + "placeholders": {} + }, + "restoreCryptoIdentity": "மறையீட்டு அடையாளத்தை மீட்டெடுக்கவும்", + "@restoreCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "resetCryptoIdentity": "மறையீட்டு அடையாளத்தை மீட்டமைக்கவும்", + "@resetCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "setUpCryptoIdentity": "மறையீட்டு அடையாளத்தை அமைக்கவும்", + "@setUpCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "waitingForKeys": "விசைகளுக்காகக் காத்திருக்கிறது... மற்ற சாதனத்தை செயலில் வைத்திருக்கவும்.", + "@waitingForKeys": { + "type": "String", + "placeholders": {} + }, + "noKeysTransmitted": "விசைகள் எதுவும் அனுப்பப்படவில்லை. மீண்டும் முயற்சிக்கவும்.", + "@noKeysTransmitted": { + "type": "String", + "placeholders": {} + }, + "openFile": "கோப்பை திற", + "@openFile": { + "type": "String", + "placeholders": {} + }, + "resetAccountWarning": "உங்கள் கணக்கை மீட்டமைக்கும்போது, உங்கள் பழைய செய்திகளுக்கான அணுகலை நிரந்தரமாக இழப்பீர்கள். உங்களின் தற்போதைய சாதனங்கள் அனைத்தும் மீண்டும் சரிபார்க்கப்பட வேண்டும். உங்கள் அமர்வைச் சரிபார்க்க வேறு எந்தச் சாதனங்களும் உங்களிடம் இல்லாதபோதும், உங்கள் மீட்பு விசையையும் கடவுச்சொற்றொடரையும் நீங்கள் இழந்திருக்கும்போது மட்டுமே இந்தச் செயலைச் செய்யவும்!", + "@resetAccountWarning": { + "type": "String", + "placeholders": {} + }, + "newPassphraseDescription": "FluffyChat என்ட் டு என்ட் என்க்ரிப்சனைப் பயன்படுத்துகிறது. உங்கள் செய்திகளை இழக்காமல் இருக்க, உங்கள் மறையீட்டு அடையாளத்தையும் மறைகுறியாக்கப்பட்ட செய்தி காப்புப்பிரதியையும் பாதுகாக்க வலுவான கடவுச்சொற்றொடரைத் தேர்வு செய்யவும்.", + "@newPassphraseDescription": { + "type": "String", + "placeholders": {} + }, + "newPassphrase": "புதிய கடவுச்சொற்றொடர்", + "@newPassphrase": { + "type": "String", + "placeholders": {} + }, + "repeatPassphrase": "கடவுச்சொற்றொடரை மீண்டும் செய்யவும்", + "@repeatPassphrase": { + "type": "String", + "placeholders": {} + }, + "passphrasesMatch": "கடவுச்சொற்கள் பொருந்தும்", + "@passphrasesMatch": { + "type": "String", + "placeholders": {} + }, + "passphraseLengthRequirement": "குறைந்தது 12 எழுத்துகள் நீளம்.", + "@passphraseLengthRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseUpperAndLowerCaseRequirement": "பெரிய எழுத்து மற்றும் சிறிய எழுத்துகளைக் கொண்டுள்ளது.", + "@passphraseUpperAndLowerCaseRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseSpecialCharactersRequirement": "சிறப்பு எழுத்துக்களைக் கொண்டுள்ளது.", + "@passphraseSpecialCharactersRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseNumberRequirement": "ஒரு எண்களைக் கொண்டுள்ளது.", + "@passphraseNumberRequirement": { + "type": "String", + "placeholders": {} + }, + "storeRecoveryKeyDescription": "உங்கள் மறைகுறியாக்கப்பட்ட செய்திகளையும் உங்கள் மறையீட்டு அடையாளத்தையும் மீட்டமைக்க, உங்கள் மீட்பு விசையைக் குறித்துக் கொள்ளவும்.", + "@storeRecoveryKeyDescription": { + "type": "String", + "placeholders": {} + }, + "saveAsFile": "கோப்பாக சேமிக்கவும்", + "@saveAsFile": { + "type": "String", + "placeholders": {} + }, + "youAreReadyToStart": "நீங்கள் தொடங்கத் தயாராக உள்ளீர்கள்!", + "noUserKeyFound": "பயனர் விசை எதுவும் இல்லை", + "@noUserKeyFound": { + "type": "String", + "placeholders": {} + }, + "knownSince": "அறியப்பட்டது: {date}", + "@knownSince": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + } + } + }, + "unsignedDevice": "கையொப்பமிடப்படாத சாதனம்", + "@unsignedDevice": { + "type": "String", + "placeholders": {} + }, + "signedDevice": "கையொப்பமிடப்பட்ட சாதனம்", + "@signedDevice": { + "type": "String", + "placeholders": {} + }, + "noCurve25519KeyFound": "வளைவு25519 விசை இல்லை", + "@noCurve25519KeyFound": { + "type": "String", + "placeholders": {} + }, + "messageNotDecryptable": "செய்தியை மறைகுறியாக்க முடியாது", + "today": "இன்று", + "sending": "அனுப்புகிறது", + "generatingThumbnail": "சிறுபடத்தை உருவாக்குகிறது", + "encrypting": "குறியாக்கம்", + "uploading": "பதிவேற்றுகிறது", + "edited": "(திருத்தப்பட்டது)", + "couldNotBeSent": "அனுப்ப முடியவில்லை", + "yesterday": "நேற்று", + "resetRecoveryKey": "மீட்பு விசையை மீட்டமைக்கவும்", + "pleaseEnter6Digits": "ஆப்ச் பூட்டை இயக்க, 6 இலக்கங்களை உள்ளிடவும்.", + "disableAppLock": "பயன்பாட்டு பூட்டை முடக்கு", + "disableAppLockAreYouSure": "ஆப்ச் பூட்டை நிச்சயமாக முடக்க விரும்புகிறீர்களா?", + "enableBiometrics": "பயோமெட்ரிக் அங்கீகாரத்தை இயக்கு", + "disableBiometrics": "பயோமெட்ரிக் அங்கீகாரத்தை முடக்கு", + "biometricsDescription": "பயோமெட்ரிக் அங்கீகாரத்துடன் உங்கள் முகம் அல்லது கைரேகை மூலம் பயன்பாட்டைத் திறக்கலாம். திறன்கள் உங்கள் சாதனத்தைப் பொறுத்தது.", + "useAppLock": "பயன்பாட்டு பூட்டைப் பயன்படுத்தவும்", + "unlockWithBiometrics": "பயோமெட்ரிக் அங்கீகாரத்துடன் திறக்கவும்", + "resetPin": "பின்னை மீட்டமைக்கவும்", + "forwardCountMessages": "{count, plural, =1{செய்தியை} other{{count} செய்திகளை}}அனுப்பவா?", + "@forwardCountMessages": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingMessages": "செய்திகளை ஏற்றுகிறது...", + "buildDoesNotSupportFirebase": "இந்த பில்ட் ஃபயர்பேச் முகில் மெசேசிங்கை ஆதரிக்காது.", + "unableToRegisterDeviceForFirebase": "ஃபயர்பேச் முகில் மெசேசிங்கிற்கான சாதனத்தைப் பதிவு செய்ய முடியவில்லை.", + "unifiedPushDistributors": "ஒருங்கிணைந்த புச் விநியோகச்தர்கள்:" +} diff --git a/lib/l10n/intl_te.arb b/lib/l10n/intl_te.arb new file mode 100644 index 0000000..7a3e330 --- /dev/null +++ b/lib/l10n/intl_te.arb @@ -0,0 +1,1977 @@ +{ + "notAnImage": "ఇమేజ్ ఫైల్ కాదు.", + "repeatPassword": "పాస్‌వర్డ్‌ను పునరావృతం చేయండి", + "remove": "తొలగించు", + "@remove": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@admin": { + "type": "String", + "placeholders": {} + }, + "@directChats": { + "type": "String", + "placeholders": {} + }, + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "@close": { + "type": "String", + "placeholders": {} + }, + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "@reply": { + "type": "String", + "placeholders": {} + }, + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "@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": {} + }, + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "@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": {} + }, + "@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" + } + } + }, + "@pickImage": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@reason": { + "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" + } + } + }, + "@help": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@delete": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@ok": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@account": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@notifications": { + "type": "String", + "placeholders": {} + }, + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "@emoteSettings": { + "type": "String", + "placeholders": {} + }, + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "@mention": { + "type": "String", + "placeholders": {} + }, + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "@withTheseAddressesRecoveryDescription": { + "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": {} + }, + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@allChats": { + "type": "String", + "placeholders": {} + }, + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "@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" + }, + "@cancel": { + "type": "String", + "placeholders": {} + }, + "@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" + }, + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@search": { + "type": "String", + "placeholders": {} + }, + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@logout": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@messages": { + "type": "String", + "placeholders": {} + }, + "@login": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@settings": { + "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" + } + } + }, + "@privacy": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + } +} \ No newline at end of file diff --git a/lib/l10n/intl_th.arb b/lib/l10n/intl_th.arb new file mode 100644 index 0000000..4b3628c --- /dev/null +++ b/lib/l10n/intl_th.arb @@ -0,0 +1,1875 @@ +{ + "hugContent": "{senderName} กอดคุณ", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_cuddle": "ส่งเคล้าเคลียให้", + "admin": "แอดมิน", + "@admin": { + "type": "String", + "placeholders": {} + }, + "supposedMxid": "อันนี้ควรเป็น {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "askSSSSSign": "เพื่อให้สามารถลงนามบุคคลอื่นได้ โปรดป้อนรหัสผ่านร้านค้าที่ปลอดภัยหรือรหัสกู้คืนของคุณ", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "remove": "ลบออก", + "@remove": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "ผู้ใช้ทั่วไปได้รับอนุญาตให้เข้าร่วมหรือไม่", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "sendOnEnter": "ส่งเมื่อกด enter", + "answeredTheCall": "{senderName} รับสายแล้ว", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "alias": "นามแฝง", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "ทั้งหมด", + "@all": { + "type": "String", + "placeholders": {} + }, + "badServerLoginTypesException": "โฮมเซิร์ฟเวอร์รองรับประเภทการเข้าสู่ระบบ:\n{serverVersions}\nแต่แอปนี้รองรับเฉพาะ:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "edit": "แก้ไข", + "@edit": { + "type": "String", + "placeholders": {} + }, + "copy": "คัดลอก", + "@copy": { + "type": "String", + "placeholders": {} + }, + "importFromZipFile": "นำเข้าจากไฟล์ .zip", + "autoplayImages": "เล่นสติ๊กเกอร์และอิโมจิแบบเคลื่อนไหวโดยอัตโนมัติ", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "help": "ช่วยเหลือ", + "@help": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "รายละเอียดแชท", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "repeatPassword": "ใส่รหัสผ่านอีกรอบ", + "delete": "ลบออก", + "@delete": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} ได้รับการชวนแล้ว", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "send": "ส่ง", + "@send": { + "type": "String", + "placeholders": {} + }, + "exportEmotePack": "ส่งอิโมจิแพ็คออกเป็นไฟล์ .zip", + "account": "บัญชี", + "@account": { + "type": "String", + "placeholders": {} + }, + "chat": "แชท", + "@chat": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "คุณแน่ใจไหม?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "เพิ่มไปที่ space", + "about": "เกี่ยวกับ", + "@about": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} เปิดใช้งาน end to end encryption", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "googlyEyesContent": "{senderName} ส่งตากวนๆให้คุณ", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "appLock": "ล็อคแอป", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "sendTypingNotifications": "ส่งการแจ้งเตือนการพิมพ์", + "importEmojis": "นำเข้าอ๊โมจิ", + "confirmMatrixId": "กรุณายืนยัน Matrix ID ของคุณเพื่อลบบัญชีของคุณ", + "notAnImage": "ไม่ใช่ไฟล์รูปภาพ", + "areYouSureYouWantToLogout": "คุณแน่ใจว่าคุณต้องการที่จะออกจากระบบ?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "cuddleContent": "{senderName} เคล้าเคลียคุณ", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "askVerificationRequest": "ยอมรับคำขอยืนยันนี้จาก {username} หรือไม่", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "เพิ่มอีเมล", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "commandHint_hug": "ส่งกอดให้", + "replace": "แทนที่", + "archive": "คลังเก็บ", + "@archive": { + "type": "String", + "placeholders": {} + }, + "accept": "ยอมรับ", + "@accept": { + "type": "String", + "placeholders": {} + }, + "commandHint_googly": "ส่งสายตากวนๆ มาให้หน่อย", + "pin": "ปักหมุด", + "@pin": { + "type": "String", + "placeholders": {} + }, + "importNow": "นำเข้าเลย", + "anyoneCanJoin": "ใครๆ ก็สามารถเข้าร่วมได้", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@close": { + "type": "String", + "placeholders": {} + }, + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "@reply": { + "type": "String", + "placeholders": {} + }, + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "@removeYourAvatar": { + "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" + } + } + }, + "@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": {} + }, + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@invited": { + "type": "String", + "placeholders": {} + }, + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "@warning": { + "type": "String", + "placeholders": {} + }, + "@password": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@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": {} + }, + "@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": {} + }, + "@unpin": { + "type": "String", + "placeholders": {} + }, + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@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": {} + }, + "@reason": { + "type": "String", + "placeholders": {} + }, + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@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" + } + } + }, + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "@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": {} + }, + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@moderator": { + "type": "String", + "placeholders": {} + }, + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "@ok": { + "type": "String", + "placeholders": {} + }, + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "@locationPermissionDeniedNotice": { + "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" + }, + "@commandInvalid": { + "type": "String" + }, + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@newChat": { + "type": "String", + "placeholders": {} + }, + "@notifications": { + "type": "String", + "placeholders": {} + }, + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "@emoteSettings": { + "type": "String", + "placeholders": {} + }, + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "@mention": { + "type": "String", + "placeholders": {} + }, + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "@withTheseAddressesRecoveryDescription": { + "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" + } + } + }, + "@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" + } + } + }, + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "@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" + }, + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "@status": { + "type": "String", + "placeholders": {} + }, + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "@sentCallInformations": { + "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" + }, + "@cancel": { + "type": "String", + "placeholders": {} + }, + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@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" + }, + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@search": { + "type": "String", + "placeholders": {} + }, + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@logout": { + "type": "String", + "placeholders": {} + }, + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@messages": { + "type": "String", + "placeholders": {} + }, + "@login": { + "type": "String", + "placeholders": {} + }, + "@waitingPartnerNumbers": { + "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": {} + }, + "@settings": { + "type": "String", + "placeholders": {} + }, + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "@devices": { + "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" + } + } + }, + "@privacy": { + "type": "String", + "placeholders": {} + }, + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "@sendAMessage": { + "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" + } + } + }, + "@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": {} + } +} \ No newline at end of file diff --git a/lib/l10n/intl_tr.arb b/lib/l10n/intl_tr.arb new file mode 100644 index 0000000..27ae1a8 --- /dev/null +++ b/lib/l10n/intl_tr.arb @@ -0,0 +1,2361 @@ +{ + "@@locale": "tr", + "@@last_modified": "2021-08-14 12:41:09.803728", + "about": "Hakkında", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Kabul et", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} katılma davetini kabul etti", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Hesap", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} uçtan uca şifrelemeyi etkinleştirdi", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "E-posta ekle", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "Alana ekle", + "admin": "Yönetici", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "takma ad", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Tümü", + "@all": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} aramayı yanıtladı", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Herkes katılabilir", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "Uygulama kilidi", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "archive": "Arşiv", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Misafir kullanıcıların katılmasına izin veriliyor mu", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Emin misiniz?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Oturumu açmak istediğinizden emin misiniz?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Diğer kişiyi imzalayabilmek için lütfen güvenli depolama parolanızı veya kurtarma anahtarınızı girin.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "{username} kişisinden gelen bu doğrulama isteği kabul edilsin mi?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "autoplayImages": "Canlandırmalı çıkartmaları ve ifadeleri otomatik olarak oynat", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "badServerLoginTypesException": "Ana sunucu aşağıdaki oturum açma türlerini destekliyor:\n{serverVersions}\nAncak bu uygulama yalnızca aşağıdakileri destekliyor:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "banFromChat": "Sohbetten engelle", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Engellendi", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username}, {targetName} kişisini engelledi", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Aygıtı Engelle", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "Engellendi", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "İptal", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "{uri} URI'si açılamıyor", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changeDeviceName": "Aygıt adını değiştir", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} sohbet avatarını değiştirdi", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} sohbet izinlerini değiştirdi", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} görünen adını '{displayname}' olarak değiştirdi", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} misafir erişim kurallarını değiştirdi", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} misafir erişim kurallarını değiştirdi: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} geçmiş görünürlüğünü değiştirdi", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} geçmiş görünürlüğünü değiştirdi: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} katılım kurallarını değiştirdi", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} katılım kurallarını değiştirdi: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} avatarını değiştirdi", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} oda takma adlarını değiştirdi", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} davet bağlantısını değiştirdi", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Parolayı değiştir", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Ana sunucuyu değiştir", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Tarzınızı değiştirin", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Grubun adını değiştir", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Avatarınızı değiştirin", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "Şifreleme bozuldu", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Sohbet", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Sohbet yedekleme", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Sohbet ayrıntıları", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "Sohbetler", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Güçlü bir parola seçin", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Arşivi temizle", + "close": "Kapat", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "Verilen kullanıcıyı bu odadan yasaklayın", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_html": "HTML biçimli metin gönderin", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Verilen kullanıcıyı bu odaya davet edin", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "Verilen odaya katılın", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "Verilen kullanıcıyı bu odadan kaldırın", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "Bu odadan ayrılın", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "Kendinizi tanımlayın", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_myroomavatar": "Bu oda için resminizi ayarlayın (mxc-uri ile)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "Bu oda için görünen adınızı ayarlayın", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "Verilen kullanıcının güç seviyesini ayarlayın (öntanımlı: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "Biçimlendirilmemiş metin gönderin", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "Tepki olarak yanıt gönderin", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_send": "Metin gönderin", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_unban": "Verilen kullanıcının bu odadaki yasağını kaldırın", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandInvalid": "Komut geçersiz", + "@commandInvalid": { + "type": "String" + }, + "commandMissing": "{command} bir komut değil.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "compareEmojiMatch": "Lütfen emojileri karşılaştırın", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Lütfen sayıları karşılaştırın", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Sohbeti yapılandır", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Kişi gruba davet edildi", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "İçerik, sunucu yöneticilerine bildirildi", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Panoya kopyalandı", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Kopyala", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Panoya kopyala", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Mesajın şifresi çözülemedi: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count} katılımcı", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Oluştur", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} sohbeti oluşturdu", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "createNewSpace": "Yeni alan", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "Şu anda etkin", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Koyu", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Bu, kullanıcı hesabınızı devre dışı bırakacak. Bu geri alınamaz! Emin misiniz?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Yeni kullanıcılar içi öntanımlı izin seviyesi", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "Sil", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Hesabı sil", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Mesajı sil", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Aygıtlar", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Doğrudan Sohbetler", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Görünen ad değiştirildi", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Dosyayı indir", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "Düzenle", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Engellenen sunucuları düzenle", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Görünen adı düzenle", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Oda takma adlarını düzenle", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Oda avatarını düzenle", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "İfade zaten var!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Geçersiz ifade kısa kodu!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "İfade kısa kodu", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Boş sohbet", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "İfade paketini küresel olarak etkinleştir", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Şifrelemeyi etkinleştir", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Artık şifrelemeyi devre dışı bırakamayacaksınız. Emin misiniz?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Şifreli", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Şifreleme", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Şifreleme etkinleştirilmedi", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} aramayı sonlandırdı", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Bir e-posta adresi girin", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Konum alınırken hata oluştu: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "fontSize": "Yazı tipi boyutu", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "İlet", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Katılmadan", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Davetten", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Grup", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "Grup herkese açık", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "Gruplar", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupWith": "{displayname} ile grup", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Misafirlere izin verilmiyor", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Misafirler katılabilir", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username}, {targetName} için daveti geri çekti", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Yardım", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "Bilinmeyen etkinlikleri gizle", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignore": "Yok say", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Yok sayılan kullanıcılar", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Bağlantıya tıkladım", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Yanlış parola veya kurtarma anahtarı", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Kişi davet et", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Kişiyi {groupName} grubuna davet et", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "Davet edildi", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username}, {targetName} kişisini davet etti", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Sadece davet edilen kullanıcılar", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} sizi FluffyChat'e davet etti.\n1. fluffychat.im adresini ziyaret edin ve uygulamayı kurun \n2. Kaydolun veya oturum açın \n3. Davet bağlantısını açın: \n {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "yazıyor…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} sohbete katıldı", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Odaya katıl", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username}, {targetName} kişisini attı", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username}, {targetName} kişisini attı ve engelledi", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Sohbetten at", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Son görülen: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Ayrıl", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Sohbetten ayrıldı", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Açık", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "{count} katılımcı daha yükle", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "Yükleniyor… Lütfen bekleyin.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Daha fazla yükle…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "Konum hizmetleri devre dışı. Lütfen konumunuzu paylaşabilmek için etkinleştirin.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "Konum izni reddedildi. Lütfen konumunuzu paylaşabilmek için izin verin.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "login": "Oturum aç", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "{homeserver} üzerinde oturum aç", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Oturumu kapat", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Bahset", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "Mesajlar", + "@messages": { + "type": "String", + "placeholders": {} + }, + "moderator": "Moderatör", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Sohbeti sessize al", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Yeni sohbet", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 FluffyChat'te yeni mesaj", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Yeni doğrulama isteği!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "İleri", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "Hayır", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Sunucuyla bağlantı yok", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "İfade bulunamadı. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Şifrelemeyi yalnızca oda artık herkese açık olmadığında etkinleştirebilirsiniz.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Görünüşe göre cihazınızda Firebase Cloud Messaging yok. Buna rağmen bildirim almaya devam etmek için ntfy yüklemenizi öneriyoruz. ntfy veya başka bir Unified Push sağlayıcısı ile anlık bildirimlerinizi güvenli bir şekilde alabilirsiniz. ntfy'ı PlayStore veya F-Droid'den indirebilirsiniz.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} matrix sunucusu değil, onun yerine {server2} kullanılsın mı?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "noPasswordRecoveryDescription": "Henüz parolanızı kurtarmak için bir yol eklemediniz.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "İzin yok", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Oda bulunamadı…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Bildirimler", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} kullanıcı yazıyor…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "obtainingLocation": "Konum alınıyor…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "ok": "Tamam", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Çevrim içi anahtar yedekleme etkinleştirildi", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Tüh! Maalesef anlık bildirimlerini ayarlarken bir hata oluştu.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Tüh, bir şeyler yanlış gitti…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Mesajları okumak için uygulamayı aç", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Kamerayı aç", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "openInMaps": "Haritalarda aç", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "or": "Veya", + "@or": { + "type": "String", + "placeholders": {} + }, + "participant": "Katılımcı", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "parola veya kurtarma anahtarı", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Parola", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Parola unutuldu", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Parola değiştirildi", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Parola kurtarma", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Sabitle", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Lütfen bir geçiş kodu seçin", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Lütfen e-postadaki bağlantıya tıklayın ve devam edin.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Lütfen parolanızı girin", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Lütfen PIN kodunuzu girin", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Lütfen kullanıcı adınızı girin", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Lütfen web sitesindeki talimatları izleyin ve \"İleri\" düğmesine dokunun.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "Gizlilik", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Herkese Açık Odalar", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "Neden", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} bir etkinliği düzenledi", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactMessage": "Mesajı düzenle", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reject": "Reddet", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} daveti reddetti", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Kaldır", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Diğer tüm aygıtları kaldır", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Sohbet engelini kaldır", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Avatarınızı kaldırın", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Odayı yeni sürümle değiştir", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "Yanıtla", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Mesajı bildir", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Oda yükseltildi", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Oda sürümü", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Dosyayı kaydet", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "search": "Ara", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "Güvenlik", + "@security": { + "type": "String", + "placeholders": {} + }, + "send": "Gönder", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Bir mesaj gönder", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Metin olarak gönder", + "@sendAsText": { + "type": "String" + }, + "sendAudio": "Ses gönder", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Dosya gönder", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Resim gönder", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Mesajları gönder", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Video gönder", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username} bir dosya gönderdi", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username} bir ses gönderdi", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username} bir resim gönderdi", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} bir çıkartma gönderdi", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} bir video gönderdi", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} arama bilgilerini gönderdi", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setAsCanonicalAlias": "Ana takma ad olarak ayarla", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "setStatus": "Durumu ayarla", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Ayarlar", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Paylaş", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} konumunu paylaştı", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "shareLocation": "Konumu paylaş", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "skip": "Atla", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Kaynak kodları", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "Alan herkese açık", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Alan adı", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} bir arama başlattı", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "status": "Durum", + "@status": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Bugün nasılsınız?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Gönder", + "@submit": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Eşzamanlanıyor… Lütfen bekleyin.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Sistem", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Eşleşmediler", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Eşleştiler", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Çok fazla istek. Lütfen daha sonra tekrar deneyin!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Tekrar göndermeyi deneyin", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username}, {targetName} kişisinin engelini kaldırdı", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Aygıtın Engellemesini Kaldır", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Bilinmeyen aygıt", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Bilinmeyen şifreleme algoritması", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Bilinmeyen etkinlik '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Sohbeti sessizden çıkar", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Sabitlemeyi kaldır", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} ve {count} diğer kişi yazıyor…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} ve {username2} yazıyor…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} yazıyor…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪 {username} sohbetten ayrıldı", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} bir {type} etkinliği gönderdi", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verified": "Doğrulandı", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Doğrulamayı Başlat", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Başarıyla doğrulandı!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Diğer hesap doğrulanıyor", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Sohbet geçmişi görünürlüğü", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Tüm katılımcılar için görünür", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Herkes için görünür", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Sesli mesaj", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Ortağın isteği kabul etmesi bekleniyor…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Ortağın emojiyi kabul etmesi bekleniyor…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Ortağın numaraları kabul etmesi bekleniyor…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Uyarı!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Size bir e-posta gönderdik", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Kim hangi eylemi gerçekleştirebilir", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Bu gruba kimler katılabilir", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Bunu neden bildirmek istiyorsunuz?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Bu adresler ile parolanızı kurtarabilirsiniz.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Bir mesaj yaz…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Evet", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Sen", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Artık bu sohbette katılımcı değilsiniz", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Bu sohbetten engellendiniz", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Ortak anahtarınız", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "scanQrCode": "QR kodunu tarayın", + "sendOnEnter": "Enter tuşu ile gönder", + "bundleName": "Paket adı", + "removeFromBundle": "Bu paketten kaldır", + "addToBundle": "Pakete ekle", + "editBundlesForAccount": "Bu hesap için paketleri düzenle", + "addAccount": "Hesap ekle", + "oneClientLoggedOut": "İstemcilerinizden birinin oturumu kapatıldı", + "link": "Bağlantı", + "unverified": "Doğrulanmadı", + "repeatPassword": "Parolayı tekrarlayın", + "messageInfo": "Mesaj bilgileri", + "time": "Zaman", + "sender": "Gönderen", + "openGallery": "Galeriyi aç", + "removeFromSpace": "Alandan kaldır", + "commandHint_clearcache": "Önbelleği temizleyin", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_dm": "Doğrudan sohbet başlatın\nŞifrelemeyi devre dışı bırakmak için --no-encryption kullanın", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_create": "Boş bir grup sohbeti oluşturun\nŞifrelemeyi devre dışı bırakmak için --no-encryption kullanın", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_discardsession": "Oturumu silin", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "markAsRead": "Okundu olarak işaretle", + "reportUser": "Kullanıcıyı bildir", + "reactedWith": "{sender}, {reaction} ile tepki verdi", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "emojis": "Emojiler", + "unsupportedAndroidVersion": "Desteklenmeyen Android sürümü", + "unsupportedAndroidVersionLong": "Bu özellik daha yeni bir Android sürümü gerektiriyor. Lütfen güncellemelere veya LineageOS desteğine bakın.", + "pinMessage": "Odaya sabitle", + "confirmEventUnpin": "Etkinliğin sabitlemesini kalıcı olarak kaldırmak istediğinizden emin misiniz?", + "youJoinedTheChat": "Sohbete katıldınız", + "youAcceptedTheInvitation": "👍 Daveti kabul ettiniz", + "youKickedAndBanned": "🙅 {user} kullanıcısını attınız ve yasakladınız", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "{user} kullanıcısının yasağını kaldırdınız", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKicked": "👞 {user} kullanıcısını attınız", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youRejectedTheInvitation": "Daveti reddettiniz", + "youHaveWithdrawnTheInvitationFor": "{user} için daveti geri çektiniz", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 {user} tarafından davet edildiniz", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 {user} kullanıcısını davet ettiniz", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youBannedUser": "{user} kullanıcısını yasakladınız", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "storeInAppleKeyChain": "Apple KeyChain'de sakla", + "users": "Kullanıcılar", + "storeInAndroidKeystore": "Android KeyStore'da sakla", + "storeSecurlyOnThisDevice": "Bu aygıtta güvenli bir şekilde sakla", + "countFiles": "{count} dosya", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dehydrate": "Oturumu dışa aktar ve aygıtı sil", + "hydrate": "Yedekleme dosyasından geri yükle", + "dehydrateWarning": "Bu eylem geri alınamaz. Yedekleme dosyasını güvenli bir şekilde sakladığınızdan emin olun.", + "user": "Kullanıcı", + "custom": "Özel", + "confirmMatrixId": "Hesabınızı silmek için lütfen Matrix kimliğinizi doğrulayın.", + "supposedMxid": "Bu {mxid} olmalıdır", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "commandHint_markasgroup": "Grup olarak işaretle", + "commandHint_markasdm": "Verilen Matrix kimliği için doğrudan mesaj odası olarak işaretle", + "whyIsThisMessageEncrypted": "Bu mesaj neden okunamıyor?", + "noKeyForThisMessage": "Bu durum, mesaj siz bu aygıtta hesabınızda oturum açmadan önce gönderildiyse meydana gelebilir.\n\nGönderenin aygıtınızı engellemiş olması veya internet bağlantısında bir sorun olması da mümkündür.\n\nMesajı başka bir oturumda okuyabiliyor musunuz? O zaman mesajı oradan aktarabilirsiniz! Ayarlar > Aygıtlar bölümüne gidin ve aygıtlarınızın birbirini doğruladığından emin olun. Odayı bir sonraki sefer açtığınızda ve her iki oturum da ön planda olduğunda, anahtarlar otomatik olarak iletilecektir.\n\nOturumu kapatırken veya aygıt değiştirirken anahtarları kaybetmek istemiyor musunuz? Ayarlarda sohbet yedeklemesini etkinleştirdiğinizden emin olun.", + "newSpace": "Yeni alan", + "doNotShowAgain": "Tekrar gösterme", + "googlyEyesContent": "{senderName} size şaşkın gözler gönderiyor", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_cuddle": "Kucaklama gönder", + "commandHint_googly": "Şaşkın gözler gönder", + "commandHint_hug": "Sarılma gönder", + "cuddleContent": "{senderName} sizi kucaklıyor", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "hugContent": "{senderName} size sarılıyor", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "wasDirectChatDisplayName": "Boş sohbet ({oldDisplayName} idi)", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "newSpaceDescription": "Alanlar, sohbetlerinizi birleştirmenize ve özel veya genel topluluklar oluşturmanıza olanak tanır.", + "encryptThisChat": "Bu sohbeti şifrele", + "disableEncryptionWarning": "Güvenlik nedeniyle, daha önce etkinleştirildiği bir sohbette şifrelemeyi devre dışı bırakamazsınız.", + "sorryThatsNotPossible": "Üzgünüm... bu mümkün değil", + "reopenChat": "Sohbeti yeniden aç", + "noBackupWarning": "Uyarı! Sohbet yedeklemesini etkinleştirmezseniz, şifrelenen mesajlarınıza erişiminizi kaybedersiniz. Oturumu kapatmadan önce sohbet yedeklemesini etkinleştirmeniz önemle tavsiye edilir.", + "noOtherDevicesFound": "Başka aygıt bulunamadı", + "fileIsTooBigForServer": "Gönderilemiyor! Sunucu yalnızca {max} değerine kadar olan ekleri destekliyor.", + "fileHasBeenSavedAt": "Dosya {path} konumuna kaydedildi", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "jumpToLastReadMessage": "Son okunan mesaja atla", + "readUpToHere": "Buraya kadar oku", + "jump": "Atla", + "openLinkInBrowser": "Bağlantıyı tarayıcıda aç", + "reportErrorDescription": "😭 Olamaz. Bir şeyler yanlış gitti. İsterseniz bu hatayı geliştiricilere bildirebilirsiniz.", + "report": "bildir", + "notAnImage": "Bir resim dosyası değil.", + "importNow": "Şimdi içe aktar", + "importEmojis": "İfadeleri İçe Aktar", + "importFromZipFile": ".zip dosyasından içe aktar", + "exportEmotePack": "İfade paketini .zip olarak dışa aktar", + "replace": "Değiştir", + "sendTypingNotifications": "Yazma bildirimleri gönder", + "messagesStyle": "Mesajlar:", + "createGroup": "Grup oluştur", + "shareInviteLink": "Davet bağlantısını paylaş", + "setColorTheme": "Renk temasını ayarla:", + "tryAgain": "Tekrar deneyin", + "redactMessageDescription": "Bu mesaj bu görüşmedeki herkes için düzenlenecek. Bu işlem geri alınamaz.", + "optionalRedactReason": "(İsteğe bağlı) Bu mesajı düzenleme nedeni…", + "invite": "Davet et", + "chatPermissions": "Sohbet izinleri", + "chatDescription": "Sohbet açıklaması", + "noChatDescriptionYet": "Daha sohbet açıklaması oluşturulmadı.", + "invalidServerName": "Geçersiz sunucu adı", + "redactedBy": "{username} tarafından düzenlendi", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactedByBecause": "{username} tarafından \"{reason}\" nedeniyle düzenlendi", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "setChatDescription": "Sohbet açıklamasını ayarla", + "chatDescriptionHasBeenChanged": "Sohbet açıklaması değişti", + "inviteGroupChat": "📨 Grup sohbetine davet et", + "emoteKeyboardNoRecents": "Son kullanılan ifadeler burada görünecek...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "invalidInput": "Geçersiz giriş!", + "wrongPinEntered": "Yanlış PIN girildi! {seconds} saniye sonra tekrar deneyin...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "banUserDescription": "Kullanıcı sohbetten yasaklanacak ve yasağı kaldırılana kadar sohbete tekrar giremeyecek.", + "removeDevicesDescription": "Bu aygıttan çıkış yapacaksınız ve artık mesaj alamayacaksınız.", + "unbanUserDescription": "Kullanıcı denerse sohbete tekrar girebilecektir.", + "pushNotificationsNotAvailable": "Anlık bildirimler kullanılamıyor", + "makeAdminDescription": "Bu kullanıcıyı yönetici yaptıktan sonra, sizinle aynı izinlere sahip olacağı için bunu geri alamayabilirsiniz.", + "archiveRoomDescription": "Sohbet arşive taşınacak. Diğer kullanıcıları sohbeti terk ettiğinizi görebilecek.", + "hasKnocked": "🚪 {user} tıklattı", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "learnMore": "Daha fazla bilgi", + "roomUpgradeDescription": "Sohbet daha sonra yeni oda sürümüyle yeniden oluşturulacaktır. Tüm katılımcılara yeni sohbete geçmeleri gerektiği bildirilecektir. Oda sürümleri hakkında daha fazla bilgiyi https://spec.matrix.org/latest/rooms/ adresinde bulabilirsiniz.", + "pleaseEnterANumber": "Lütfen 0'dan büyük bir sayı girin", + "kickUserDescription": "Kullanıcı sohbetten atılır ancak yasaklanmaz. Herkese açık sohbetlerde kullanıcı istediği zaman yeniden katılabilir.", + "createGroupAndInviteUsers": "Bir grup oluşturun ve kullanıcıları davet edin", + "groupCanBeFoundViaSearch": "Grup, arama ile bulunabilir", + "noUsersFoundWithQuery": "Ne yazık ki \"{query}\" ile kullanıcı bulunamadı. Lütfen bir yazım hatası yapıp yapmadığınızı kontrol edin.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "yourGlobalUserIdIs": "Genel kullanıcı kimliğiniz: ", + "groupName": "Grup ismi", + "searchChatsRooms": "#sohbetler, @kullanıcılar... için arama yapın", + "blockListDescription": "Sizi rahatsız eden kullanıcıları engelleyebilirsiniz. Kişisel engelleme listenizdeki kullanıcılardan herhangi bir mesaj veya oda daveti alamazsınız.", + "blockedUsers": "Engellenen kullanıcılar", + "block": "Engelle", + "commandHint_sendraw": "Ham JSON gönder", + "wrongRecoveryKey": "Üzgünüm... bu doğru kurtarma anahtarı gibi görünmüyor.", + "blockUsername": "Kullanıcı adını görmezden gel", + "databaseMigrationTitle": "Veri tabanı iyileştirildi", + "databaseMigrationBody": "Lütfen bekleyin. Bu biraz zaman alabilir.", + "pleaseEnterYourCurrentPassword": "Lütfen geçerli parolanızı girin", + "pleaseChooseAStrongPassword": "Lütfen güçlü bir parola seçin", + "addChatOrSubSpace": "Sohbet veya alt alan ekle", + "canceledKeyVerification": "{sender} anahtar doğrulamayı iptal etti", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "joinSpace": "Alana katıl", + "newPassword": "Yeni parola", + "sessionLostBody": "Oturumunuz kayboldu. Lütfen bu hatayı {url} adresinde geliştiricilere bildirin. Hata mesajı: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "thisDevice": "Bu aygıt:", + "formattedMessagesDescription": "Markdown kullanarak kalın metin gibi zengin mesaj içeriğini görüntüle.", + "verifyOtherDevice": "🔐 Diğer aygıtı doğrula", + "searchForUsers": "@kullanıcıları ara...", + "commandHint_ignore": "Verilen matrix kimliğini görmezden gel", + "commandHint_unignore": "Verilen matrix kimliğini görmezden gelmeyi iptal et", + "appLockDescription": "Kullanılmadığında PIN kodu ile uygulamayı kilitle", + "globalChatId": "Genel sohbet kimliği", + "accessAndVisibility": "Erişim ve görünürlük", + "accessAndVisibilityDescription": "Bu sohbete kimlerin katılmasına izin verilir ve sohbet nasıl keşfedilebilir.", + "calls": "Aramalar", + "customEmojisAndStickers": "Özel emojiler ve çıkartmalar", + "customEmojisAndStickersBody": "Herhangi bir sohbette kullanılabilecek özel emojiler veya çıkartmalar ekleyin veya paylaşın.", + "hideRedactedMessages": "Düzenlenen mesajları gizle", + "hideRedactedMessagesBody": "Birisi bir mesajı düzenlerse, bu mesaj artık sohbette görünmeyecektir.", + "passwordRecoverySettings": "Parola kurtarma ayarları", + "knock": "Tıklat", + "knocking": "Tıklat", + "usersMustKnock": "Kullanıcılar tıklatmalı", + "noOneCanJoin": "Kimse katılamaz", + "nothingFound": "Hiçbir şey bulunamadı...", + "sendReadReceiptsDescription": "Sohbetteki diğer katılımcılar bir mesajı okuduğunuzu görebilir.", + "verifyOtherDeviceDescription": "Başka bir aygıtı doğruladığınızda, bu aygıtlar anahtarları değiş tokuş ederek genel güvenliğinizi artırır. 💪 Bir doğrulama başlattığınızda, her iki aygıttaki uygulamada bir açılır pencere görünecektir. Orada birbirleriyle karşılaştırmanız gereken bir dizi emoji veya sayı göreceksiniz. Doğrulamaya başlamadan önce her iki aygıtın da elinizin altında olması en iyisidir. 🤳", + "noDatabaseEncryption": "Veri tabanı şifrelemesi bu platformda desteklenmiyor", + "thereAreCountUsersBlocked": "Şu anda {count} engellenen kullanıcı var.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "publicSpaces": "Herkese açık alanlar", + "initAppError": "Uygulama başlatılırken bir hata oluştu", + "hideInvalidOrUnknownMessageFormats": "Geçersiz veya bilinmeyen mesaj biçimlerini gizle", + "chatCanBeDiscoveredViaSearchOnServer": "Sohbet {server} üzerinde aranarak keşfedilebilir", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "leaveEmptyToClearStatus": "Durumunuzu temizlemek için boş bırakın.", + "select": "Seç", + "passwordsDoNotMatch": "Parolalar eşleşmiyor", + "passwordIsWrong": "Girdiğiniz parola yanlış", + "publicChatAddresses": "Herkese açık sohbet adresleri", + "createNewAddress": "Yeni adres oluştur", + "acceptedKeyVerification": "{sender} anahtar doğrulamayı kabul etti", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "restoreSessionBody": "Uygulama şimdi oturumunuzu yedekten geri yüklemeye çalışıyor. Lütfen bu hatayı {url} adresinde geliştiricilere bildirin. Hata mesajı: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "sendReadReceipts": "Okundu bilgisi gönder", + "completedKeyVerification": "{sender} anahtar doğrulamayı tamamladı", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "sendTypingNotificationsDescription": "Sohbetteki diğer katılımcılar yeni bir mesaj yazdığınızı görebilir.", + "isReadyForKeyVerification": "{sender} anahtar doğrulama için hazır", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "formattedMessages": "Biçimlendirilen mesajlar", + "requestedKeyVerification": "{sender} anahtar doğrulama istedi", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "verifyOtherUser": "🔐 Diğer kullanıcıyı doğrula", + "startedKeyVerification": "{sender} anahtar doğrulama başlattı", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "discover": "Keşfet", + "incomingMessages": "Gelen mesajlar", + "verifyOtherUserDescription": "Başka bir kullanıcıyı doğrularsanız, gerçekten kime yazdığınızı bildiğinizden emin olabilirsiniz. 💪\n\nBir doğrulama başlattığınızda, siz ve diğer kullanıcı uygulamada bir açılır pencere görecektir. Orada birbirinizle karşılaştırmanız gereken bir dizi emoji veya sayı göreceksiniz.\n\nBunu yapmanın en iyi yolu buluşmak veya bir görüntülü arama başlatmaktır. 👭", + "stickers": "Çıkartmalar", + "unreadChatsInApp": "{appname}: {unread} okunmayan sohbet", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "searchIn": "\"{chat}\" sohbeti içinde ara...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "searchMore": "Daha fazla ara...", + "gallery": "Galeri", + "files": "Dosyalar", + "swipeRightToLeftToReply": "Yanıtlamak için sağdan sola kaydır", + "noMoreChatsFound": "Başka sohbet bulunamadı...", + "goToSpace": "Alana git: {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "unread": "Okunmadı", + "markAsUnread": "Okunmadı olarak işaretle", + "space": "Alan", + "inviteOtherUsers": "Diğer kullanıcıları bu sohbete davet et", + "changeTheChatPermissions": "Sohbet izinlerini değiştir", + "changeTheCanonicalRoomAlias": "Ana herkese açık sohbet adresini değiştir", + "sendRoomNotifications": "@oda bildirimleri gönder", + "changeTheDescriptionOfTheGroup": "Sohbetin açıklamasını değiştir", + "userLevel": "{level} - Kullanıcı", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "moderatorLevel": "{level} - Moderatör", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "adminLevel": "{level} - Yönetici", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeGeneralChatSettings": "Genel sohbet ayarlarını değiştir", + "changeTheVisibilityOfChatHistory": "Sohbet geçmişinin görünürlüğünü değiştir", + "chatPermissionsDescription": "Bu sohbette belirli eylemler için hangi güç düzeyinin gerekli olduğunu tanımlayın. 0, 50 ve 100 güç düzeyleri genellikle kullanıcıları, moderatörleri ve yöneticileri temsil eder, ancak herhangi bir derecelendirme mümkündür.", + "changelog": "Değişiklik günlüğü", + "updateInstalled": "🎉 Güncelleme {version} kuruldu!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "sendCanceled": "Gönderme iptal edildi", + "noChatsFoundHere": "Burada henüz sohbet bulunamadı. Aşağıdaki düğmeyi kullanarak biriyle yeni bir sohbet başlatın. ⤵️", + "loginWithMatrixId": "Matrix kimliği ile oturum aç", + "doesNotSeemToBeAValidHomeserver": "Uyumlu bir ana sunucu gibi görünmüyor. Yanlış URL mi?", + "calculatingFileSize": "Dosya boyutu hesaplanıyor...", + "oneOfYourDevicesIsNotVerified": "Aygıtlarınızdan biri doğrulanmadı", + "noticeChatBackupDeviceVerification": "Not: Tüm aygıtlarınızı sohbet yedeklemesine bağladığınızda, otomatik olarak doğrulanırlar.", + "blur": "Blur:", + "opacity": "Şeffaflık:", + "setWallpaper": "Duvar kağıdı seç", + "manageAccount": "Hesabı yönet", + "noContactInformationProvided": "Sunucu geçerli bir iletişim bilgisi sunmadı", + "contactServerAdmin": "Sunucu yöneticisiyle iletişime geçin", + "contactServerSecurity": "Sunucu güvenliğiyle iletişime geçin", + "supportPage": "Destek sayfası", + "name": "İsim", + "version": "Versiyon", + "serverInformation": "Sunucu bilgisi:", + "website": "Web sitesi", + "compress": "Sıkıştırma", + "boldText": "Kalın metin", + "italicText": "İtalik metin", + "strikeThrough": "Üstü çizili", + "pleaseFillOut": "Lütfen doldurun", + "aboutHomeserver": "{homeserver} Hakkında", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "invalidUrl": "Geçersiz url", + "addLink": "Link ekle", + "unableToJoinChat": "Sohbete girilemiyor. Belki başka birileri konuşmayı kapatmış olabilir.", + "continueText": "Devam et", + "sendImages": "{count} görsel gönder", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "commandHint_roomupgrade": "Bu odayı belirtilen oda sürümüne yükseltin", + "checkList": "Kontrol listesi", + "countInvited": "{count} davet edildi", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "synchronizingPleaseWaitCounter": " Senkronize ediliyor… ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + } +} \ No newline at end of file diff --git a/lib/l10n/intl_uk.arb b/lib/l10n/intl_uk.arb new file mode 100644 index 0000000..16a3a0c --- /dev/null +++ b/lib/l10n/intl_uk.arb @@ -0,0 +1,2552 @@ +{ + "@@locale": "uk", + "@@last_modified": "2021-08-14 12:41:09.790615", + "about": "Про застосунок", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Прийняти", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} приймає запрошення", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Обліковий запис", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} активує наскрізне шифрування", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "admin": "Адміністратор", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "псевдонім", + "@alias": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} відповідає на виклик", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Будь-хто може приєднатись", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "archive": "Архів", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Чи дозволено гостям приєднуватись?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Ви впевнені?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Для підпису ключа іншого користувача введіть свою парольну фразу або ключ відновлення.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "Прийняти цей запит на підтвердження від {username}?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "banFromChat": "Заблокувати в бесіді", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Заблоковано", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} блокує {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Заблокувати пристрій", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "cancel": "Скасувати", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} змінює аватар бесіди", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} змінює права доступу бесіди", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} змінює показуване ім'я на: '{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} змінює правила гостьового доступу", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} змінює правила гостьового доступу на: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} змінює видимість історії", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} змінює видимість історії на: {rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} змінює правила приєднання", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} змінює правила приєднання на: {joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} змінює аватар", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} змінює псевдоніми кімнати", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} змінює посилання для запрошення", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changeTheHomeserver": "Змінити домашній сервер", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Змінити стиль", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Змінити назву групи", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "Шифрування було пошкоджено", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Бесіда", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Подробиці бесіди", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Виберіть надійний пароль", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "close": "Закрити", + "@close": { + "type": "String", + "placeholders": {} + }, + "compareEmojiMatch": "Порівняйте емодзі", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Порівняйте цифри", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Контакт був запрошений в групу", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Скопійовано в буфер обміну", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Копіювати", + "@copy": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Помилка розшифрування повідомлення: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count, plural, =1{1 учасник} other{Учасників: {count}}}", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Створити", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} створює бесіду", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "currentlyActive": "Зараз у мережі", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Темний", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{timeOfDay}, {date}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "delete": "Видалити", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Видалити повідомлення", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Пристрої", + "@devices": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Показуване ім'я було змінено", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Завантажити файл", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Змінити показуване ім'я", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Емодзі вже існує!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Неприпустимий короткий код емодзі!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "Короткий код для емодзі", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Порожня бесіда", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Ви більше не зможете вимкнути шифрування. Ви впевнені?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encryption": "Шифрування", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Шифрування вимкнено", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} завершує виклик", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "forward": "Переслати", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "З моменту приєднання", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "З моменту запрошення", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Група", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "Загальнодоступна група", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groupWith": "Група з {displayname}", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Гості не можуть приєднуватись", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Гості можуть приєднуватись", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} відкликає запрошення для {targetName}", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Довідка", + "@help": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Неправильна парольна фраза або ключ відновлення", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Запросити контакт", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Запросити контакт до {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "Запрошено", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username} запрошує {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Лише запрошені користувачі", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} запрошує вас у FluffyChat. \n1. Перейдіть на fluffychat.im й установіть застосунок \n2. Зареєструйтесь або ввійдіть \n3. Відкрийте запрошувальне посилання:\n {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "пише…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} приєднується до бесіди", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "kicked": "👞 {username} вилучає {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} вилучає та блокує {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Вилучити з бесіди", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Остання активність: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Вийти", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Виходить з бесіди", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Світлий", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Завантажити ще {count} учасників", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "Завантаження… Будь ласка, зачекайте.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Завантажити ще…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "login": "Увійти", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "Увійти до {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Вийти", + "@logout": { + "type": "String", + "placeholders": {} + }, + "moderator": "Модератор", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Вимкнути сповіщення", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 Нове повідомлення у FluffyChat", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Новий запит перевірки!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Емодзі не знайдено. 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Схоже, Firebase Cloud Messaging недоступна на вашому пристрої. Щоб отримувати push-сповіщення, радимо встановити ntfy. За допомогою ntfy або іншого постачальника Unified Push ви можете отримувати push-сповіщення у безпечний спосіб. Ви можете завантажити ntfy з PlayStore або з F-Droid.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Немає прав доступу", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Кімнат не знайдено…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "ok": "Гаразд", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Резервне онлайн-копіювання ключів увімкнено", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Халепа, щось пішло не так…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Відкрийте застосунок читання повідомлень", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Відкрити камеру", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "парольна фраза або ключ відновлення", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Пароль", + "@password": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Введіть свій пароль", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Введіть своє ім'я користувача", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Загальнодоступні кімнати", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} змінює подію", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "reject": "Відхилити", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} відхиляє запрошення", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "Вилучити", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "Вилучити всі інші пристрої", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Розблокувати у бесіді", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "reply": "Відповісти", + "@reply": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Кімнату було оновлено", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "send": "Надіслати", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Надіслати повідомлення", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Надіслати файл", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Надіслати зображення", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username} надсилає файл", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username} надсилає аудіо", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username} надсилає зображення", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} надсилає наліпку", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} надсилає відео", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "setStatus": "Указати статус", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Налаштування", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Поділитися", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} ділиться своїм місцеперебуванням", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "skip": "Пропустити", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Джерельний код", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Як справи сьогодні?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Надіслати", + "@submit": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "Системна", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Вони відрізняються", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Вони збігаються", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Спробуйте надіслати ще раз", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} розблоковує {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Розблокувати пристрій", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Невідомий пристрій", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Невідомий алгоритм шифрування", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Невідома подія '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Увімкнути сповіщення", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} та {count} інших пишуть…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} і {username2} пишуть…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} пише…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪 {username} виходить з бесіди", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} надсилає подію {type}", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verifyStart": "Почати перевірку", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Ви успішно перевірені!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Перевірка іншого облікового запису", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Видимість історії бесіди", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Видима для всіх учасників", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Видима для всіх", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Голосове повідомлення", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Очікування прийняття запиту партнером…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Очікування прийняття емодзі партнером…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Очікування прийняття чисел партнером…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Кому дозволено приєднуватися до цієї групи", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Написати повідомлення…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Так", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Ви", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Ви більше не берете участь у цій бесіді", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Ви були заблоковані у цій бесіді", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "notifications": "Сповіщення", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "enterAnEmailAddress": "Введіть адресу е-пошти", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Зашифровано", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Увімкнути набір емодзі глобально", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "edit": "Редагувати", + "@edit": { + "type": "String", + "placeholders": {} + }, + "directChats": "Особисті бесіди", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Видалити обліковий запис", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deactivateAccountWarning": "Це деактивує ваш обліковий запис. Це неможливо скасувати! Ви впевнені?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "changePassword": "Змінити пароль", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeDeviceName": "Змінити назву пристрою", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "or": "Або", + "@or": { + "type": "String", + "placeholders": {} + }, + "setAsCanonicalAlias": "Установити основним псевдонімом", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "verified": "Перевірений", + "@verified": { + "type": "String", + "placeholders": {} + }, + "blocked": "Заблоковано", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "no": "Ні", + "@no": { + "type": "String", + "placeholders": {} + }, + "sendOnEnter": "Надсилати натисканням Enter", + "commandHint_ban": "Заблокувати цього користувача кімнати", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_kick": "Вилучити цього користувача з цієї кімнати", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_myroomavatar": "Встановіть зображення для цієї кімнати (від mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "Укажіть показуване ім'я для цієї кімнати", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandMissing": "{command} не є командою.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "copyToClipboard": "Копіювати до буфера обміну", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "createNewSpace": "Новий простір", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Увімкнути шифрування", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "joinRoom": "Приєднатися до кімнати", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "mention": "Згадати", + "@mention": { + "type": "String", + "placeholders": {} + }, + "next": "Далі", + "@next": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Немає з'єднання з сервером", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "scanQrCode": "Сканувати QR-код", + "noPasswordRecoveryDescription": "Ви ще не додали спосіб відновлення пароля.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} користувачів пишуть…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "oopsPushError": "Дідько! На жаль, сталася помилка під час налаштування push-сповіщень.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Забули пароль", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "redactMessage": "Редагувати повідомлення", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Поскаржитися на повідомлення", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Замінити кімнату новішою версією", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "sendAudio": "Надіслати аудіо", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Ми надіслали вам електронний лист", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "Додати простір", + "roomVersion": "Версія кімнати", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "Мною виконано перехід за посиланням", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} розпочинає виклик", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "appLock": "Блокування застосунку", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "commandInvalid": "Неприпустима команда", + "@commandInvalid": { + "type": "String" + }, + "participant": "Учасник", + "@participant": { + "type": "String", + "placeholders": {} + }, + "addEmail": "Додати е-пошту", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "ignore": "Нехтувати", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "fontSize": "Розмір шрифту", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Ви впевнені, що хочете вийти?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "badServerLoginTypesException": "Домашній сервер підтримує такі типи входу:\n{serverVersions}\nАле цей застосунок підтримує лише:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "all": "Усі", + "@all": { + "type": "String", + "placeholders": {} + }, + "commandHint_join": "Приєднатися до цієї кімнати", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "chats": "Бесіди", + "@chats": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Змінити аватар", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "link": "Посилання", + "security": "Безпека", + "@security": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Помилка під час отримання розташування: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "synchronizingPleaseWait": "Синхронізація… Будь ласка, зачекайте.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} не є сервером matrix, використовувати {server2} натомість?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "reason": "Причина", + "@reason": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Типовий рівень дозволів для нових користувачів", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Надіслати як текст", + "@sendAsText": { + "type": "String" + }, + "saveFile": "Зберегти файл", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "autoplayImages": "Автоматично відтворювати анімовані наліпки та емодзі", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "pleaseChooseAPasscode": "Виберіть код доступу", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Натисніть на посилання в електронному листі, а потім продовжуйте.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "Надсилати повідомлення", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Хто і яку дію може виконувати", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Чому ви хочете поскаржитися?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "messages": "Повідомлення", + "@messages": { + "type": "String", + "placeholders": {} + }, + "newChat": "Нова бесіда", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "groups": "Групи", + "@groups": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Активувати шифрування можна лише тоді, коли кімната більше не буде загальнодоступною.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Резервне копіювання бесіди", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Очистити архів", + "commandHint_html": "Надіслати текст у форматі HTML", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Запросіть цього користувача до цієї кімнати", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_leave": "Вийти з цієї кімнати", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "Опишіть себе", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "hideUnknownEvents": "Сховати невідомі події", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "Нехтувані користувачі", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "obtainingLocation": "Отримання розташування…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "addAccount": "Додати обліковий запис", + "openInMaps": "Відкрити в картах", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Виконайте вказівки вебсайту та торкніться далі.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Надіслати відео", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Вилучити свій аватар", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "unpin": "Відкріпити", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "shareLocation": "Поділитися місцеперебуванням", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Забагато запитів. Спробуйте пізніше!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "За допомогою цих адрес ви можете відновити свій пароль.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "privacy": "Приватність", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "search": "Пошук", + "@search": { + "type": "String", + "placeholders": {} + }, + "sentCallInformations": "{senderName} надсилає відомості про виклик", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "cantOpenUri": "Не вдалося відкрити URI {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "contentHasBeenReported": "Скаргу на вміст надіслано адміністраторам сервера", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "commandHint_op": "Укажіть рівень повноважень цього користувача (типово: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "Надіслати неформатований текст", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "Надіслати відповідь як реакцію", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_send": "Надіслати текст", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_unban": "Розблокувати цього користувача у цій кімнаті", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "configureChat": "Налаштувати бесіду", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Редагувати заблоковані сервери", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Змінити псевдоніми кімнати", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Змінити аватар кімнати", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Пароль змінено", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "Відновлення пароля", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Закріпити", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Будь ласка, введіть свій PIN-код", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Назва простору", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "warning": "Попередження!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Ваш відкритий ключ", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "Простір загальнодоступний", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "status": "Статус", + "@status": { + "type": "String", + "placeholders": {} + }, + "unverified": "Неперевірений", + "locationDisabledNotice": "Служби визначення розташування вимкнені. Увімкніть їх, щоб мати змогу ділитися своїм розташуванням.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "Дозвіл на розташування відхилено. Надайте можливість ділитися своїм розташуванням.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "oneClientLoggedOut": "На одному з ваших клієнтів виконано вихід із системи", + "bundleName": "Назва вузла", + "removeFromBundle": "Вилучити з цього вузла", + "editBundlesForAccount": "Змінити вузол для цього облікового запису", + "addToBundle": "Додати до вузлів", + "repeatPassword": "Повторіть пароль", + "messageInfo": "Відомості про повідомлення", + "time": "Час", + "openGallery": "Відкрити галерею", + "sender": "Відправник", + "removeFromSpace": "Вилучити з простору", + "commandHint_discardsession": "Відкинути сеанс", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_clearcache": "Очистити кеш", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_create": "Створіть порожню групову бесіду\nВикористовуйте --no-encryption, щоб вимкнути шифрування", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_dm": "Початок особистої бесіди\nВикористовуйте --no-encryption, що вимкнути шифрування", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "markAsRead": "Позначити прочитаним", + "reportUser": "Поскаржився на користувача", + "reactedWith": "{sender} реагує з {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "emojis": "Емодзі", + "pinMessage": "Прикріпити в кімнаті", + "confirmEventUnpin": "Ви впевнені, що бажаєте назавжди відкріпити подію?", + "unsupportedAndroidVersion": "Непідтримувана версія Android", + "unsupportedAndroidVersionLong": "Для цієї функції потрібна новіша версія Android. Перевірте наявність оновлень або підтримку Lineage OS.", + "youInvitedBy": "📩 Ви були запрошені {user}", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youAcceptedTheInvitation": "👍 Ви погодилися на запрошення", + "youRejectedTheInvitation": "Ви відхилили запрошення", + "youHaveWithdrawnTheInvitationFor": "Ви відкликали запрошення для {user}", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youBannedUser": "Ви заблокували {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKickedAndBanned": "🙅 Ви вилучили й заблокували {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youJoinedTheChat": "Ви приєдналися до бесіди", + "youKicked": "👞 Ви вилучили {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "Ви розблокували {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 Ви запросили {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "storeInAndroidKeystore": "Зберегти в Android KeyStore", + "storeInAppleKeyChain": "Зберегти в Apple KeyChain", + "storeSecurlyOnThisDevice": "Зберегти безпечно на цей пристрій", + "users": "Користувачі", + "countFiles": "{count} файлів", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "hydrate": "Відновлення з файлу резервної копії", + "dehydrate": "Експортувати сеанс та очистити пристрій", + "dehydrateWarning": "Цю дію не можна скасувати. Переконайтеся, що ви безпечно зберігаєте файл резервної копії.", + "user": "Користувач", + "custom": "Користувацький", + "supposedMxid": "Це має бути {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "confirmMatrixId": "Підтвердьте свій Matrix ID, щоб видалити свій обліковий запис.", + "commandHint_markasgroup": "Позначити групою", + "commandHint_markasdm": "Позначити кімнатою особистого спілкування для надання Matrix ID", + "whyIsThisMessageEncrypted": "Чому це повідомлення нечитабельне?", + "noKeyForThisMessage": "Це може статися, якщо повідомлення було надіслано до того, як ви ввійшли у свій обліковий запис на цьому пристрої.\n\nТакож можливо, що відправник заблокував ваш пристрій або щось пішло не так з під'єднанням до інтернету.\n\nЧи можете ви прочитати повідомлення на іншому сеансі? Тоді ви зможете перенести повідомлення з нього! Перейдіть до Налаштування > Пристрої та переконайтеся, що ваші пристрої перевірили один одного. Коли ви відкриєте кімнату наступного разу й обидва сеанси будуть на активні, ключі будуть передані автоматично.\n\nВи ж не хочете втрачати ключі після виходу або зміни пристроїв? Переконайтеся, що ви ввімкнули резервне копіювання бесід у налаштуваннях.", + "newSpace": "Новий простір", + "doNotShowAgain": "Не показувати знову", + "commandHint_cuddle": "Надіслати пригортайку", + "googlyEyesContent": "{senderName} надсилає вам гугл-очі", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_googly": "Надіслати кілька гугл-очей", + "commandHint_hug": "Надіслати обійми", + "cuddleContent": "{senderName} пригортається до вас", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "hugContent": "{senderName} обіймає вас", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "wasDirectChatDisplayName": "Порожня бесіда (раніше {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "newSpaceDescription": "Простори дозволяють об'єднувати ваші бесіди та створювати приватні або загальнодоступні спільноти.", + "encryptThisChat": "Зашифрувати цю бесіду", + "disableEncryptionWarning": "З міркувань безпеки ви не можете вимкнути шифрування в бесіді, ув якій воно було ввімкнене раніше.", + "sorryThatsNotPossible": "Вибачте... це неможливо", + "reopenChat": "Відновити бесіду", + "noOtherDevicesFound": "Інших пристроїв не знайдено", + "noBackupWarning": "Увага! Якщо ви не ввімкнете резервне копіювання бесіди, ви втратите доступ до своїх зашифрованих повідомлень. Наполегливо радимо ввімкнути резервне копіювання бесіди перед виходом.", + "fileIsTooBigForServer": "Не вдалося надіслати! Сервер підтримує вкладення розміром до {max}.", + "fileHasBeenSavedAt": "Файл збережено в {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "jumpToLastReadMessage": "Перейти до останнього прочитаного повідомлення", + "readUpToHere": "Читати тут", + "jump": "Перейти", + "openLinkInBrowser": "Відкрити посилання у браузері", + "reportErrorDescription": "О, ні. Щось пішло не так. Якщо хочете, можете повідомити про помилку розробникам.", + "report": "повідомити", + "notAnImage": "Не файл зображення.", + "importNow": "Імпортувати зараз", + "importEmojis": "Імпорт емодзі", + "importFromZipFile": "Імпорт з файлу .zip", + "replace": "Замінити", + "exportEmotePack": "Експортувати набір смайликів у форматі .zip", + "sendTypingNotifications": "Надсилати сповіщення про ввід тексту", + "createGroup": "Створити групу", + "messagesStyle": "Повідомлення:", + "shareInviteLink": "Надіслати запрошувальне посилання", + "tryAgain": "Повторіть спробу", + "setColorTheme": "Налаштувати колірну тему:", + "chatPermissions": "Дозволи бесіди", + "chatDescription": "Опис бесіди", + "chatDescriptionHasBeenChanged": "Опис бесіди змінено", + "noChatDescriptionYet": "Опис бесіди ще не створено.", + "invalidServerName": "Недійсна назва сервера", + "optionalRedactReason": "(Необов'язково) Причина редагування цього повідомлення...", + "redactedBy": "Відредаговано {username}", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactedByBecause": "Відредаговано {username}, тому що: \"{reason}\"", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "invite": "Запросити", + "redactMessageDescription": "Повідомлення буде відредаговано для всіх учасників цієї розмови. Це не можна скасувати.", + "setChatDescription": "Налаштувати опис бесіди", + "inviteGroupChat": "📨 Запрошення до групової бесіди", + "emoteKeyboardNoRecents": "Тут з'являться нещодавно використані смайлики...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "invalidInput": "Недійсний ввід!", + "wrongPinEntered": "Введено невірний PIN-код! Спробуйте знову через {seconds} секунд...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "banUserDescription": "Користувача буде заблоковано в бесіді, і він не зможе знову увійти в неї, поки його не буде розблоковано.", + "removeDevicesDescription": "Ви вийдете з цього пристрою і більше не зможете отримувати повідомлення.", + "unbanUserDescription": "Користувач зможе знову увійти в бесіду, якщо спробує.", + "pushNotificationsNotAvailable": "Push-сповіщення недоступні", + "makeAdminDescription": "Після того, як ви зробите цього користувача адміністратором, ви, можливо, не зможете це скасувати, оскільки він матиме ті самі права, що й ви.", + "archiveRoomDescription": "Бесіду буде переміщено до архіву. Інші користувачі зможуть побачити, що ви вийшли з неї.", + "hasKnocked": "🚪{user} стукає до вас", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "learnMore": "Докладніше", + "roomUpgradeDescription": "Після цього бесіду буде відтворено з новою версією кімнати. Усі учасники отримають сповіщення, що їм потрібно перейти до нової бесіди. Ви можете дізнатися більше про версії кімнат на https://spec.matrix.org/latest/rooms/", + "pleaseEnterANumber": "Введіть число більше ніж 0", + "kickUserDescription": "Користувача вигнали з бесіди, але не заблокували. До загальнодоступних бесід користувач може приєднатися будь-коли.", + "blockListDescription": "Ви можете заблокувати користувачів, які вас турбують. Ви не зможете отримувати жодних повідомлень або запрошень до кімнати від користувачів з вашого персонального списку блокування.", + "createGroupAndInviteUsers": "Створити групу та запросити користувачів", + "blockedUsers": "Заблоковані користувачі", + "groupCanBeFoundViaSearch": "Групу можна знайти через пошук", + "noUsersFoundWithQuery": "На жаль, не знайдено жодного користувача з запитом \"{query}\".Перевірте, чи не було допущено помилки.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "block": "Заблокувати", + "yourGlobalUserIdIs": "Ваш глобальний ID користувача: ", + "commandHint_sendraw": "Надіслати необроблений json", + "wrongRecoveryKey": "Вибачте... схоже, це неправильний ключ відновлення.", + "blockUsername": "Ігнорувати ім'я користувача", + "groupName": "Назва групи", + "databaseMigrationTitle": "Базу даних оптимізовано", + "searchChatsRooms": "Пошук для #chats, @users...", + "databaseMigrationBody": "Зачекайте, будь ласка. Це може тривати деякий час.", + "thisDevice": "Цей пристрій:", + "publicSpaces": "Загальнодоступний простір", + "passwordIsWrong": "Введений пароль неправильний", + "pleaseEnterYourCurrentPassword": "Введіть поточний пароль", + "nothingFound": "Нічого не знайдено...", + "newPassword": "Новий пароль", + "passwordsDoNotMatch": "Паролі відрізняються", + "select": "Вибрати", + "pleaseChooseAStrongPassword": "Виберіть надійний пароль", + "addChatOrSubSpace": "Додати бесіду або підпростір", + "leaveEmptyToClearStatus": "Лишіть порожнім, щоб оновити статус.", + "joinSpace": "Приєднатися до простору", + "searchForUsers": "Пошук @користувачів...", + "sessionLostBody": "Ваш сеанс втрачено. Будь ласка, повідомте про цю помилку розробникам за адресою {url}. Текст помилки: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "initAppError": "Виникла помилка під час запуску застосунку", + "restoreSessionBody": "Наразі застосунок намагається відновити ваш сеанс з резервної копії. Будь ласка, повідомте про цю помилку розробникам за адресою {url}. Текст помилки: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "acceptedKeyVerification": "{sender} погоджується звірити ключі", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "canceledKeyVerification": "{sender} скасовує звірення ключів", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "requestedKeyVerification": "{sender} просить звірити ключі", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "sendReadReceiptsDescription": "Інші учасники бесіди бачитимуть, що ви прочитали повідомлення.", + "formattedMessages": "Форматовані повідомлення", + "sendReadReceipts": "Надіслати підтвердження прочитання", + "sendTypingNotificationsDescription": "Інші учасники бесіди бачитимуть, коли ви набираєте нове повідомлення.", + "formattedMessagesDescription": "Показувати розширений вміст повідомлень, наприклад, жирний текст, використовуючи markdown.", + "verifyOtherUser": "🔐 Звірити іншого користувача", + "verifyOtherUserDescription": "Якщо ви звіряєте іншого користувача, ви можете бути впевнені, що знаєте, кому ви насправді пишете. 💪\n\nКоли ви почнете звірення, ви та інший користувач побачите спливне вікно в застосунку. Там ви побачите набір смайликів або чисел, які вам потрібно буде порівняти між собою.\n\nНайкращий спосіб зробити це — зустрітися або розпочати відеовиклик. 👭", + "verifyOtherDeviceDescription": "Коли ви звіряєте інший пристрій, ці пристрої можуть обмінюватися ключами, підвищуючи вашу загальну безпеку. 💪 Коли ви розпочнете звірення, в застосунку на обох пристроях з'явиться спливне вікно. Там ви побачите набір смайликів або чисел, які вам потрібно буде порівняти між собою. Найкраще мати обидва пристрої під рукою перед початком звірення. 🤳", + "verifyOtherDevice": "🔐 Звірити інший пристрій", + "completedKeyVerification": "{sender} завершує звірення ключів", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "{sender} готовий до звірення ключів", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "{sender} розпочинає звірення ключів", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "incomingMessages": "Вхідні повідомлення", + "discover": "Огляд", + "stickers": "Наліпки", + "searchIn": "Пошук у бесіді \"{chat}\"...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "commandHint_ignore": "Ігнорувати цей Matrix ID", + "swipeRightToLeftToReply": "Посунути праворуч або ліворуч, щоб відповісти", + "globalChatId": "Глобальний ID бесіди", + "accessAndVisibility": "Доступ і видимість", + "accessAndVisibilityDescription": "Хто може приєднатися до цієї бесіди і як її можна знайти.", + "calls": "Виклики", + "customEmojisAndStickers": "Власні емодзі та наліпки", + "customEmojisAndStickersBody": "Додавайте або діліться власними емодзі або наліпками, які можна використовувати в будь-якій бесіді.", + "createNewAddress": "Створити нову адресу", + "commandHint_unignore": "Не ігнорувати цей Matrix ID", + "appLockDescription": "Блокувати додаток, коли не використовується PIN-код", + "hideRedactedMessages": "Сховати змінені повідомлення", + "hideRedactedMessagesBody": "Якщо хтось змінить повідомлення, його більше не буде видно в бесіді.", + "hideInvalidOrUnknownMessageFormats": "Сховати недійсні або невідомі формати повідомлень", + "passwordRecoverySettings": "Налаштування відновлення пароля", + "knock": "Постукатись", + "knocking": "Стукаються", + "noDatabaseEncryption": "Шифрування бази даних не підтримується на цій платформі", + "usersMustKnock": "Користувачі повинні постукатись", + "noOneCanJoin": "Ніхто не може приєднатись", + "chatCanBeDiscoveredViaSearchOnServer": "Бесіду можна знайти за допомогою пошуку на {server}", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "publicChatAddresses": "Адреси загальнодоступної бесіди", + "searchMore": "Шукати ще...", + "gallery": "Галерея", + "files": "Файли", + "unreadChatsInApp": "{appname}: {unread} непрочитаних бесід", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "thereAreCountUsersBlocked": "Наразі заблоковано {count} користувачів.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "moderatorLevel": "{level} - Модератор", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "adminLevel": "{level} - Адміністратор", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "userLevel": "{level} - Користувач", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "changeGeneralChatSettings": "Змінити загальні налаштування чату", + "inviteOtherUsers": "Запросити інших користувачів до цього чату", + "changeTheChatPermissions": "Змінити права доступу до чату", + "changeTheVisibilityOfChatHistory": "Змінити видимість історії чату", + "changeTheCanonicalRoomAlias": "Змінити основну адресу загальнодоступного чату", + "sendRoomNotifications": "Надсилати сповіщення @room", + "space": "Простір", + "goToSpace": "Перейти до простору: {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "markAsUnread": "Позначити непрочитаним", + "changeTheDescriptionOfTheGroup": "Змінити опис чату", + "updateInstalled": "🎉 Оновлення {version} встановлено!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "changelog": "Зміни", + "chatPermissionsDescription": "Визначте, який рівень повноважень необхідний для певних дій у цьому чаті. Рівні повноважень 0, 50 і 100 зазвичай представляють користувачів, модераторів та адміністраторів, але можливі будь-які градації.", + "noMoreChatsFound": "Більше чатів не знайдено...", + "unread": "Непрочитані", + "sendCanceled": "Надсилання скасовано", + "noChatsFoundHere": "Бесід ще немає. Розпочніть спілкування натиснувши кнопку нижче. ⤵️", + "loginWithMatrixId": "Увійти за допомогою Matrix-ID", + "doesNotSeemToBeAValidHomeserver": "Здається, це несумісний домашній сервер. Неправильна URL-адреса?", + "calculatingFileSize": "Обчислення розміру файлу...", + "oneOfYourDevicesIsNotVerified": "Один із ваших пристроїв не верифікований", + "noticeChatBackupDeviceVerification": "Примітка: Коли ви під'єднуєте всі свої пристрої до резервної копії бесіди, вони автоматично верифікуються.", + "continueText": "Продовжити", + "manageAccount": "Керувати обліковим записом", + "blur": "Розмиття:", + "opacity": "Прозорість:", + "setWallpaper": "Встановити шпалери", + "aboutHomeserver": "Про {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "noContactInformationProvided": "Сервер не надає жодної дійсної контактної інформації", + "contactServerSecurity": "Зв’язатися з відділом безпеки сервера", + "supportPage": "Сторінка підтримки", + "serverInformation": "Інформація про сервер:", + "contactServerAdmin": "Зв’язатися з адміністратором сервера", + "name": "Ім'я", + "version": "Версія", + "website": "Вебсайт", + "boldText": "Жирний текст", + "italicText": "Курсивний текст", + "strikeThrough": "Перекреслений текст", + "pleaseFillOut": "Будь ласка, заповніть", + "invalidUrl": "Недійсна URL-адреса", + "addLink": "Додати посилання", + "unableToJoinChat": "Неможливо приєднатися до бесіди. Можливо, інша сторона вже закрила розмову.", + "sendImages": "Надіслати {count} зображення", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "compress": "Стиснути", + "otherPartyNotLoggedIn": "Інша сторона наразі не увійшла в систему, тому не може отримувати повідомлення!", + "previous": "Попередній", + "synchronizingPleaseWaitCounter": " Синхронізація… ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "newChatRequest": "📩 Новий запит на спілкування", + "allDevices": "Усім пристроям", + "crossVerifiedDevicesIfEnabled": "З перехресною верифікацією пристроїв, якщо ввімкнено", + "crossVerifiedDevices": "З перехресною верифікацією пристроїв", + "appWantsToUseForLogin": "Використати '{server}', щоб увійти", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "appWantsToUseForLoginDescription": "Цим ви дозволяєте застосунку та вебсайту ділитися інформацією про вас.", + "open": "Відкрити", + "waitingForServer": "Очікування сервера...", + "shareKeysWithDescription": "Яким пристроям довіряти, щоб вони могли читати ваші повідомлення в зашифрованих бесідах?", + "verifiedDevicesOnly": "Лише верифіковані пристрої", + "contentNotificationSettings": "Налаштування сповіщень про вміст", + "generalNotificationSettings": "Загальні налаштування сповіщень", + "roomNotificationSettings": "Налаштування сповіщень кімнати", + "userSpecificNotificationSettings": "Налаштування сповіщень для користувача", + "otherNotificationSettings": "Інші налаштування сповіщень", + "notificationRuleContainsUserName": "Містить ім'я користувача", + "notificationRuleContainsUserNameDescription": "Сповіщає користувача, коли повідомлення містить його ім'я користувача.", + "notificationRuleMaster": "Вимкнути всі сповіщення", + "notificationRuleMasterDescription": "Перевизначає всі інші правила і вимикає всі сповіщення.", + "notificationRuleSuppressNotices": "Заборонити автоматичні повідомлення", + "notificationRuleInviteForMe": "Запрошення мене", + "notificationRuleInviteForMeDescription": "Сповіщає користувача, коли його запрошують до кімнати.", + "notificationRuleMemberEvent": "Події участі", + "notificationRuleMemberEventDescription": "Забороняє сповіщення про події учасників.", + "notificationRuleSuppressNoticesDescription": "Забороняє сповіщення від автоматизованих клієнтів, як-от боти.", + "notificationRuleIsUserMention": "Згадки користувачів", + "commandHint_roomupgrade": "Оновити цю кімнату до версії даної кімнати", + "notificationRuleIsUserMentionDescription": "Сповіщає користувачів, коли безпосередньо їх згадують у повідомленні.", + "notificationRuleContainsDisplayName": "Містить показуване ім’я", + "notificationRuleIsRoomMentionDescription": "Сповіщає користувача, коли є згадка всієї кімнати.", + "notificationRuleRoomnotif": "Сповіщення кімнати", + "notificationRuleRoomnotifDescription": "Сповіщає користувача, коли повідомлення містить '@room'.", + "notificationRuleContainsDisplayNameDescription": "Сповіщає користувача, коли повідомлення містить показуване ім'я.", + "notificationRuleIsRoomMention": "Згадки кімнати", + "notificationRuleTombstone": "Могильний камінь", + "notificationRuleTombstoneDescription": "Повідомляє користувача про повідомлення деактивації кімнати.", + "notificationRuleReactionDescription": "Приховує сповіщення про реакції.", + "notificationRuleRoomOneToOneDescription": "Повідомляє користувача про повідомлення в кімнатах \"Один на один\".", + "notificationRuleSuppressEdits": "Приховує редагування", + "notificationRuleSuppressEditsDescription": "Приховує сповіщення про відредаговані повідомлення.", + "notificationRuleCall": "Виклик", + "notificationRuleRoomServerAcl": "ACL сервера кімнати", + "notificationRuleMessageDescription": "Повідомляє користувача про загальні повідомлення.", + "notificationRuleEncrypted": "Зашифровано", + "notificationRuleJitsi": "Jitsi", + "notificationRuleJitsiDescription": "Повідомляє користувача про події віджетів Jitsi.", + "notificationRuleServerAcl": "Приховує події сервера ACL", + "notificationRuleServerAclDescription": "Приховує сповіщення про події Server ACL.", + "more": "Більше", + "takeAPhoto": "Зробити фото", + "recordAVideo": "Записати відео", + "optionalMessage": "(Необов'язково) повідомлення...", + "enterNewChat": "Створити новий чат", + "shareKeysWith": "Поділитися ключами з...", + "notSupportedOnThisDevice": "Не підтримується на цьому пристрої", + "notificationRuleMessage": "Повідомлення", + "unknownPushRule": "Невідоме правило сповіщення '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "pleaseWaitUntilInvited": "Будь ласка, зачекайте, поки хтось з кімнати запросить вас.", + "notificationRuleEncryptedRoomOneToOne": "Зашифрована кімната \"Один на один\"", + "deletePushRuleCanNotBeUndone": "Якщо ви видалите це налаштування сповіщень, відновити його буде неможливо.", + "notificationRuleEncryptedDescription": "Повідомляє користувача про повідомлення в зашифрованих кімнатах.", + "notificationRuleRoomServerAclDescription": "Приховує сповіщення про списки контролю доступу (ACL) сервера кімнати.", + "notificationRuleReaction": "Реакція", + "notificationRuleCallDescription": "Повідомляє користувача про виклики.", + "notificationRuleEncryptedRoomOneToOneDescription": "Повідомляє користувача про повідомлення в зашифрованих кімнатах \"Один на один\".", + "notificationRuleRoomOneToOne": "Кімната \"Один на один\"", + "approve": "Схвалити", + "youHaveKnocked": "Ви постукали", + "sentVoiceMessage": "🎙️Голосове повідомлення від {sender} ({duration})", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "countInvited": "Запрошено {count}", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "checkList": "Контрольний список", + "commandHint_logout": "Вийти на цьому пристрої", + "commandHint_logoutall": "Вийти на всіх активних пристроях", + "displayNavigationRail": "Показати навігаційну карту на мобільному", + "customReaction": "Власні реакції", + "moreEvents": "Інші події", + "declineInvitation": "Відхилити запрошення", + "noMessagesYet": "Поки немає повідомлень", + "longPressToRecordVoiceMessage": "Затисніть, щоб записати голосове повідомлення.", + "pause": "Призупинити", + "resume": "Продовжити", + "removeFromSpaceDescription": "Бесіду буде видалено з простору, та вона залишиться у вашому списку бесід.", + "countChats": "{chats} бесід", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "spaceMemberOf": "Учасник {spaces} просторів", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "Учасник просторів {spaces} може постукати", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "startPoll": "Розпочати опитування", + "endPoll": "Завершити опитування", + "answersVisible": "Відповіді видимі", + "pollQuestion": "Питання опитування", + "answerOption": "Варіант відповіді", + "addAnswerOption": "Додати варіант відповіді", + "allowMultipleAnswers": "Дозволити декілька варіантів відповіді", + "pollHasBeenEnded": "Опитування завершилось", + "skipChatBackupWarning": "Ви впевнені? Без резервного копіювання бесід ви можете втратити доступ до повідомлень, якщо ви зміните пристрій.", + "replyInThread": "Відповісти у вітці", + "saveChanges": "Зберегти зміни", + "createSticker": "Створити наліпку чи емодзі", + "useAsSticker": "Використати як наліпку", + "useAsEmoji": "Використати як емодзі", + "stickerPackNameAlreadyExists": "Набір наліпок з такою назвою вже є", + "newStickerPack": "Новий набір наліпок", + "stickerPackName": "Назва набору наліпок", + "attribution": "Атрибуція", + "skipChatBackup": "Пропустити резервне копіювання бесід", + "thread": "Вітка", + "backToMainChat": "Повернутись до основної бесіди", + "answersWillBeVisibleWhenPollHasEnded": "Відповіді стануть публічними після завершення опитування", + "countVotes": "{count, plural, =1{Один голос} other{{count} голосів}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "countReplies": "{count, plural, =1{Одна відповідь} other{{count} відповідей}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "changedTheChatDescription": "{username} змінює опис бесіди", + "changedTheChatName": "{username} змінює назву бесіди", + "noMoreResultsFound": "Нічого не знайдено", + "chatSearchedUntil": "Пошук в бесіді по {time}", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "versionWithNumber": "Версія: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "Журнали", + "advancedConfigs": "Розширені налаштування", + "advancedConfigurations": "Розширені налаштування", + "identityServer": "Сервер профілів:", + "clientWellKnownInformation": "Дані клієнту із .well-known:", + "federationBaseUrl": "Основний URL федерації", + "baseUrl": "Основний URL", + "signIn": "Увійти", + "createNewAccount": "Створити новий обліковий запис", + "signUpGreeting": "FluffyChat децентралізований! Виберіть сервер, на якому ви хочете створити свій обліковий запис, і почнімо!", + "signInGreeting": "Ви вже маєте обліковий запис у Matrix? Ласкаво просимо! Виберіть свій домашній сервер і ввійдіть.", + "theProcessWasCanceled": "Процес скасовано.", + "join": "Приєднатись", + "searchOrEnterHomeserverAddress": "Знайдіть або введіть адресу домашнього сервера", + "matrixId": "Matrix-ідентифікатор", + "setPowerLevel": "Встановити рівень можливостей", + "makeModerator": "Зробити модератором", + "makeAdmin": "Зробити адміністратором", + "removeModeratorRights": "Позбавити прав модератора", + "removeAdminRights": "Позбавити прав адміністратора", + "powerLevel": "Рівень можливостей", + "setPowerLevelDescription": "Рівні можливостей визначають, що користувач може робити в цій кімнаті та, зазвичай, мають діапазон від 0 до 100.", + "owner": "Власник", + "mute": "Мут", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "createNewChat": "Створити новий чат", + "reset": "Скинути", + "supportFluffyChat": "Підтримати FluffyChat", + "support": "Підтримка", + "setLowPriority": "Встановити низький пріоритет", + "unsetLowPriority": "Скинути низький пріоритет", + "playSoundOnNotification": "Відтворити звук при сповіщенні", + "addTag": "Додати тег", + "removeTag": "Видалити тег", + "tagName": "Назва тегу", + "createNewTag": "Створити новий тег", + "discardEdits": "У вас є незбережені зміни. Відхилити?", + "@discardEdits": { + "type": "String", + "placeholders": {} + }, + "hideRoomsInSpaces": "Приховати чати, що належать просторам", + "possibleByYou": "Цей реліз став можливим лише завдяки вашій підтримці. FluffyChat залишається безкоштовним, з відкритим джерельним кодом й цілком підтримуваний спільнотою.", + "showThumbnailsInTimeline": "Показувати мініатюри зображень та відео", + "appSubtitle": "Безпечні чати [matrix]", + "appDescription": "Спілкуйтеся зашифровано через децентралізовану мережу [matrix] простим та доступним кожному способом.", + "interactiveVerification": "Інтерактивна перевірка", + "interactiveVerificationDescription": "Якщо ви перебуваєте поруч або спілкуєтеся через захищений канал, ви можете перевірити всі пристрої одночасно, порівнявши секретний номер або емодзі.", + "countUnverifiedDevices": "{count} неперевірених пристроїв в чаті.", + "@countUnverifiedDevices": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "encryptedMessage": "Зашифроване повідомлення", + "unencryptedMessage": "Незашифроване повідомлення", + "publicKey": "Публічний ключ: {key}", + "@publicKey": { + "type": "String", + "placeholders": { + "key": { + "type": "String" + } + } + }, + "deviceIdentityKey": "Ключ пристрою", + "showMore": "Показати ще", + "showLess": "Показати менше", + "unexpectedErrorOccurded": "На жаль сталася неочікувана помилка: {msg}", + "@unexpectedErrorOccurded": { + "placeholders": { + "msg": { + "type": "String" + } + } + } +} diff --git a/lib/l10n/intl_uz.arb b/lib/l10n/intl_uz.arb new file mode 100644 index 0000000..85d8ae4 --- /dev/null +++ b/lib/l10n/intl_uz.arb @@ -0,0 +1,2468 @@ +{ + "repeatPassword": "Parolni takrorlang", + "notAnImage": "Rasm fayli emas.", + "remove": "O‘chirish", + "@remove": { + "type": "String", + "placeholders": {} + }, + "importNow": "Hozir import qilish", + "importEmojis": "Emojilarni import qilish", + "importFromZipFile": ".zip faylidan import qilish", + "exportEmotePack": "Emotsiyalar to‘plamini .zip fayl ko‘rinishida eksport qilish", + "replace": "Almashtirmoq", + "about": "Biz haqimizda", + "aboutHomeserver": "{homeserver} haqida", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "accept": "Qabul qilmoq", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} taklifni qabul qildi", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Hisob", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} shifrlashni yakunlash uchun faollashtirdi", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "Email qo‘shish", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "confirmMatrixId": "Hisobingizni o‘chirish uchun Matrix ID hisobingizni tasdiqlang.", + "supposedMxid": "Bu {mxid} bo‘lishi kerak", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "addToSpace": "Maydonga qo‘shish", + "admin": "Admin", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "taxallus", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "Hammasi", + "@all": { + "type": "String", + "placeholders": {} + }, + "commandHint_roomupgrade": "Bu guruhni berilgan guruh versiyasiga yangilang", + "commandHint_googly": "G‘ilay ko‘zlarini yuboring", + "commandHint_cuddle": "Erkalash yuborish", + "commandHint_hug": "Quchoqlash yuborish", + "googlyEyesContent": "{senderName} sizga gʻilay ko‘zlarini yubormoqda", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "cuddleContent": "{senderName} sizni erkalamoqda", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "hugContent": "{senderName} sizni quchoqlamoqda", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "answeredTheCall": "{senderName} chaqiruvga javob berdi", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Har kim qo‘shilishi mumkin", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "Ilova qulfi", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "appLockDescription": "PIN kod ishlatilmayotganida ilovani qulflash", + "archive": "Arxiv", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Mehmon foydalanuvchilarga qo‘shilishga ruxsat berilganmi", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Ishonchingiz komilmi?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "Haqiqatan ham hisobingizdan chiqamoqchimisiz?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "Narigi foydalanuvchini imzolash uchun xavfsiz do‘kon parol iborasi yoki tiklash kalitini kiriting.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "{username}dan ushbu tasdiqlash so‘rovi qabul qilinsinmi?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "autoplayImages": "Animatsiyali stikerlar va emojilarni avtomatik ijro etish", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "sendTypingNotifications": "Yozish bildirishnomalarini yuborish", + "swipeRightToLeftToReply": "Javob berish uchun o‘ngdan chapga suring", + "badServerLoginTypesException": "Homeserver quyidagi kirish turlarini qo'llab-quvvatlaydi:\n{serverVersions}\nLekin bu ilova faqat quyidagi turlarni qo'llab-quvvatlaydi:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "sendOnEnter": "Enterda yuborish", + "noMoreChatsFound": "Boshqa chatlar topilmadi...", + "noChatsFoundHere": "Bu yerda hali chat topilmadi. Quyidagi tugmadan foydalanib, kimdir bilan yangi suhbat boshlang. ⤵️", + "unread": "Oʻqilmagan", + "space": "Boʻshliq", + "banFromChat": "Suhbatdan taqiqlash", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "Taqiqlangan", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} taqiqladi {targetName}(ni)", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "Qurilmani bloklash", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "Bloklandi", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "Bekor qilish", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "{uri} URIni ochib boʻlmadi", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "changeDeviceName": "Qurilma nomini oʻzgartirish", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} suhbat avatarini oʻzgartirdi", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} suhbat ruxsatnomalarini oʻzgartirdi", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} oʻzining nomini '{displayname}'ga oʻzgartirdi", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} mehmon kirish qoidalarini oʻzgartirdi", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} mehmon kirish qoidalarini: {rules}ga oʻzgartirdi", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} tarix koʻrinishini oʻzgartirdi", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} tarix koʻrinishini: {rules}ga oʻzgartirdi", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} qoʻshilish qoidalarini oʻzgartirdi", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} qoʻshilish qoidalarini: {joinRules}ga oʻzgartirdi", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} avatarini oʻzgartirdi", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} taklif havolasini oʻzgartirdi", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "Parolni o‘zgartirish", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Homeserverni almashtirish", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "Uslubingizni o‘zgartiring", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Guruh nomini o‘zgartirish", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "Avataringizni almashtiring", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "Shifrlash buzilgan", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "Suhbat", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Suhbat zaxirasi", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Suhbat tafsilotlari", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "changedTheRoomAliases": "{username} xona taxalluslarini oʻzgartirdi", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "chooseAStrongPassword": "Kuchli parol tanlang", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "Arxivni tozalash", + "close": "Yopish", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_markasdm": "Matrix identifikatorini berish uchun shaxsiy xabar guruhi sifatida belgilang", + "commandHint_markasgroup": "Guruh sifatida belgilash", + "commandHint_ban": "Bu guruhdan berilgan foydalanuvchini bloklash", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_clearcache": "Kesh tozalash", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_create": "Boʻsh guruh suhbati yarating\nShifrlashni oʻchirish uchun --no-encryption dan foydalaning", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_discardsession": "Seansni bekor qilish", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_dm": "Jonli suhbatni boshlash\nShifrlashni o‘chirish uchun --no-encryption dan foydalaning", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_html": "HTML formatidagi matnni yuborish", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "Berilgan foydalanuvchini ushbu guruhga taklif qiling", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "Berilgan guruhga qoʻshilish", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "Berilgan foydalanuvchini guruhdan oʻchirish", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "Guruhni tark etish", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "Oʻzingizni tariflang", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_myroomavatar": "Bu guruh uchun rasmingizni sozlang (mxc-uri tomonidan)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "Bu guruh uchun displey nomini sozlang", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "Berilgan foydalanuvchi quvvat darajasini oʻrnating (standart: 50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "Formatlanmagan matnni yuboring", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "Javobni reaksiya sifatida yuboring", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_send": "Matn yuborish", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_unban": "Berilgan foydalanuvchini bu guruhdan blokdan chiqazish", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandInvalid": "Buyruq yaroqsiz", + "@commandInvalid": { + "type": "String" + }, + "commandMissing": "{command} komanda emas.", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "compareEmojiMatch": "Iltimos emojilarni taqqoslang", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "Iltimos raqamlarni taqqoslang", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "Suhbatni sozlash", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Kontakt guruhga taklif qilindi", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "Kontent server administratorlariga xabar qilindi", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "chats": "Suhbatlar", + "@chats": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "Buferga nusxalandi", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "Nusxalash", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "Buferga nusxalash", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "Xabarni shifrlab boʻlmadi: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "checkList": "Tekshirish roʻyxati", + "countParticipants": "{count} qatnashuvchilar", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "countInvited": "{count} taklif qilindi", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "Yaratish", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} suhbat yaratdi", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "createGroup": "Guruh yaratish", + "createNewSpace": "Yangi maydon", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "currentlyActive": "Hozirda faol", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "Qorongʻi", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "Bu sizning foydalanuvchi hisobingizni oʻchirib qoʻyadi. Buni qaytarib boʻlmaydi! Ishonchingiz komilmi?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "Yangi foydalanuvchilar uchun standart ruxsat darajasi", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "Oʻchirish", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Hisobni oʻchirish", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Xabarni oʻchirish", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "Qurilmalar", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "Shaxsiy suhbatlar", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "globalChatId": "Ommaviy suhbat IDʼsi", + "accessAndVisibility": "Kirish va koʻrinish", + "accessAndVisibilityDescription": "Bu suhbatga kim qoʻshilishi mumkin va suhbatni qanday topish mumkin.", + "calls": "Qoʻngʻiroqlar", + "customEmojisAndStickers": "Maxsus emojilar va stikerlar", + "customEmojisAndStickersBody": "Istalgan suhbatda ishlatilishi mumkin boʻlgan maxsus emojilar yoki stikerlarni qoʻshing yoki ulashing.", + "emoteShortcode": "Emote qisqa kodi", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "Boʻsh suhbat", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "Emote paketini global miqyosda yoqish", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "Shifrlashni yoqish", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "Siz endi shifrlashni oʻchira olmaysiz. Ishonchingiz komilmi?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "Shifrlangan", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "Shifrlash", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "fontSize": "Shrift oʻlchami", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "Yuborvorish", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "Qoʻshilishdan", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "Taklifnomadan", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "Guruh", + "@group": { + "type": "String", + "placeholders": {} + }, + "chatDescription": "Suhbat tavsifi", + "chatDescriptionHasBeenChanged": "Suhbat tavsifi oʻzgartirildi", + "groupIsPublic": "Guruh ommaviy", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "Guruhlar", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupWith": "{displayname} bilan guruh", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "Mehmonlarga kirish taqiqlangan", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "Mehmonlar qoʻshila oladi", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} {targetName} uchun taklifnomani qaytarib oldi", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "Yordam", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideRedactedMessages": "Oʻchirilgan xabarlarni yashirish", + "hideRedactedMessagesBody": "Agar kimdir xabarni oʻchirsa, bu xabar endi suhbatda koʻrinmaydi.", + "hideInvalidOrUnknownMessageFormats": "Notoʻgʻri yoki nomaʼlum xabar formatlarini yashirish", + "block": "Bloklash", + "blockedUsers": "Bloklangan foydalanuvchilar", + "blockListDescription": "Sizni bezovta qilayotgan foydalanuvchilarni bloklashingiz mumkin. Shaxsiy bloklash roʻyxatingizdagi foydalanuvchilardan hech qanday xabar yoki guruhga taklifnomalarni qabul qila olmaysiz.", + "blockUsername": "Foydalanuvchi nomini eʻtiborsiz qoldirish", + "iHaveClickedOnLink": "Men havolani bosdim", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "Notoʻgʻri parol yoki tiklash kaliti", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "Kontaktni taklif qilish", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "Kontaktni {groupName} ga taklif qiling", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "noChatDescriptionYet": "Hali suhbat tavsifi yaratilmagan.", + "tryAgain": "Qayta urinib koʻrish", + "invalidServerName": "Server nomi notoʻgʻri", + "invited": "Taklif qilindi", + "@invited": { + "type": "String", + "placeholders": {} + }, + "redactMessageDescription": "Xabar ushbu suhbatdagi barcha ishtirokchilar uchun oʻchiriladi. Buni bekor qilib boʻlmaydi.", + "optionalRedactReason": "(Ixtiyoriy) Ushbu xabarni oʻchirish sababi...", + "invitedUser": "📩 {username} {targetName}ni taklif qildi", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "Faqat taklif qilingan foydalanuvchilar", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} sizni FluffyChat’ga taklif qildi.\n1. fluffychat.im saytiga tashrif buyuring va ilovani oʻrnating.\n2. Roʻyxatdan oʻting yoki tizimga kiring.\n3. Taklif havolasini oching:\n{link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "yozmoqda…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Displey nomi o‘zgartirildi", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Faylni yuklab olish", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "Tahrirlash", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "Bloklangan serverlarni tahrirlash", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "chatPermissions": "Suhbat ruxsatlari", + "editDisplayname": "Displey nomini tahrirlash", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "Xona taxalluslarini tahrirlash", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "Xona avatarini tahrirlash", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "Emotsiya allaqachon mavjud!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "Noto‘g‘ri emotsiya kodi!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteKeyboardNoRecents": "Yaqinda ishlatilgan emotsiyalar shu yerda chiqadi...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "Shifrlash yoqilmagan", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} chaqiruvni tugatdi", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "Email manzilini kiriting", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "Joylashuv axboroti olinmadi: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "joinedTheChat": "👋 {username} suhbatga qoʻshildi", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "Guruhga qoʻshilish", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username} {targetName}ni tepdi", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} {targetName}ni tepdi va blokladi", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "Suhbatdan tepish", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "Oxirgi faol: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "Chiqish", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "Suhbatni tark etdi", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "Yorugʻlik", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "Yana {count} ishtirokchini yuklang", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "dehydrate": "Sessiyani eksport qilish va qurilmani oʻchirish", + "dehydrateWarning": "Bu amalni bekor qilib boʻlmaydi. Zaxira faylini xavfsiz saqlang.", + "hydrate": "Zaxira faylidan tiklash", + "loadingPleaseWait": "Yuklanmoqda… Iltimos, kuting.", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "Koʻproq yuklash…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "Joylashuv xizmatlari oʻchirib qoʻyilgan. Joylashuvingizni ulashish uchun ularni yoqing.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "locationPermissionDeniedNotice": "Joylashuvga ruxsat berilmadi. Iltimos, ularga joylashuvingizni ulashishga ruxsat bering.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "login": "Kirish", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "{homeserver} ga kirish", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "Chiqish", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "Qayd etmoq", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "Xabarlar", + "@messages": { + "type": "String", + "placeholders": {} + }, + "messagesStyle": "Xabarlar:", + "moderator": "Moderator", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "Suhbatni ovozsizlantirish", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "Yangi suhbat", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 FluffyChat yangi xabarlar", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "Yangi tasdiqlash so'rovi!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "Keyingi", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "Yoʻq", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "Serverga ulanish yoʻq", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "Hech qanday emoteʼlar topilmadi 😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Shifrlashni faqat guruh endi hamma uchun ochiq bo'lmay qolgandan keyingina faollashtirishingiz mumkin.", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "Firebase Cloud Messaging qurilmangizda mavjud emasga o'xshaydi. Push-bildirishnomalarni olishda davom etish uchun ntfy-ni o'rnatishingizni tavsiya qilamiz. NTFY yoki boshqa Unified Push provayderi yordamida siz ma'lumotlar xavfsizligini ta'minlash orqali push-bildirishnomalarni olishingiz mumkin. Siz ntfy-ni PlayStore yoki F-Droid-dan yuklab olishingiz mumkin.", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} matrix serveri emas, buning o'rniga {server2} dan foydalanilsinmi?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "shareInviteLink": "Taklifnoma havolasini ulashish", + "scanQrCode": "QR kodini skanerlang", + "noPasswordRecoveryDescription": "Siz hali parolingizni tiklash usulini qoʻshmadingiz.", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "Ruxsat yoʻq", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "Hech qanday guruhlar topilmadi…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "Bildirishnomalar", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} foydalanuvchilar yozmoqda…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "obtainingLocation": "Joylashuv aniqlanmoqda…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "ok": "Hop", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "Onlayn kalit zaxira nusxasi yoqilgan", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "Afsuski, push-bildirishnomalarni sozlashda xatolik yuz berdi.", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "Voy, nimadir notoʻgʻri ketdi…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "Xabarlarni oʻqish uchun ilovani oching", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "Kamerani ochish", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "oneClientLoggedOut": "Mijozlaringizdan biri tizimdan chiqdi", + "addAccount": "Hisob qoʻshish", + "editBundlesForAccount": "Bu hisob uchun toʻplamlarni tahrirlash", + "addToBundle": "Toʻplamga qoʻshish", + "removeFromBundle": "Bu toʻplamdan oʻchirish", + "bundleName": "Toʻplam nomi", + "openInMaps": "Xaritalarda ochish", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "link": "Havola", + "or": "Yoki", + "@or": { + "type": "String", + "placeholders": {} + }, + "participant": "Qatnashuvchi", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "parol yoki tiklash kaliti", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "Parol", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "Parol unitilgan", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "Parol oʻzgartirildi", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecoverySettings": "Parolni qayta tiklash sozlamalari", + "passwordRecovery": "Parolni qayta tiklash", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "Toʻgʻnash", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "Iltimos, kirish kodini tanlang", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "Iltimos, elektron pochtadagi havolani bosing va keyin davom eting.", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "Iltimos parolingizni kiriting", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "Iltimos PIN kodingizni kiriting", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "Iltimos foydalanuvchi nomini kiriting", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Iltimos, veb-saytdagi koʻrsatmalarga amal qiling va keyingisini bosing.", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "Maxfiylik", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "Ommaviy guruhlar", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "Sabab", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactedBy": "{username} tomonidan tahrirlangan", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactedByBecause": "{username} tomonidan tahrirlandi, sababi: \"{reason}\"", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "redactedAnEvent": "{username} tadbirni oʻchirib tashladi", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactMessage": "Xabarni tahrirlash", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reject": "Rad qilish", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} taklifni rad qildi", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "removeAllOtherDevices": "Qolgan barcha qurilmalarni oʻchirish", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "Suhbat blokidan chiqazish", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "Avatarni oʻchirish", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "Guruhni yangiroq versiya bilan almashtirish", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "Javob yozish", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "Xabar berish", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "Xona takomillashtirildi", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "Guruh versiyasi", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "saveFile": "Fayl saqlash", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "search": "Qidiruv", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "Xavfsizlik", + "@security": { + "type": "String", + "placeholders": {} + }, + "send": "Yuborish", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "Xabar yuborish", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "Matn sifatida yuborish", + "@sendAsText": { + "type": "String" + }, + "sendAudio": "Audio yuborish", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "Faylni yuborish", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "Rasm yuborish", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendImages": "{count} ta rasm yuborish", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "sendMessages": "Xabarlar yuborish", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "Video yuborish", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁 {username} fayl yubordi", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤 {username} audio yubordi", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "️ 🖼️ {username} rasm yubordi", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} stiker yubordi", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} video yubordi", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} chaqiruv axborotini yubordi", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setAsCanonicalAlias": "Asosiy taxallus sifatida belgilash", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "setChatDescription": "Suhbat tavsifini sozlash", + "setStatus": "Holatni sozlash", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "Sozlamalar", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "Bo‘lishmoq", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} joylashuvini ulashdi", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "shareLocation": "Joylashuvni ulashish", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "skip": "Tashlab ketish", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "Manba kodi", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "Guruh ochiq", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "spaceName": "Guruh nomi", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} chaqiruv boshladi", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "status": "Holati", + "@status": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "Bugun ahvolingiz qalay?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "Yuborish", + "@submit": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "Sinxronlanmoqda... Iltimos, kuting.", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWaitCounter": " Sinxronlanmoqda... ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "systemTheme": "Tizim", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "Mos emas", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "Mos keladi", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "Talablar soni oshib ketdi. Keyinroq qayta urining!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "Qayta yuborishga urining", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} {targetName}ni blokdan chiqardi", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "Qurilmani blokdan chiqarish", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "Notanish qurilma", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "Noma’lum shifrlash algoritmi", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "Noma’lum hodisa {type}", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "Suhbatni ovozli qilish", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "Olib tashlash", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} va yana {count} kishi yozmoqda…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} va {username2} yozmoqda…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} yozmoqda…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪 {username} suhbatni tark etdi", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} {type} tadbirini yubordi", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "unverified": "Tasdiqlanmagan", + "verified": "Tasdiqlangan", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "Tasdiqlashni boshlash", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "Siz tasdiqladingiz!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "Boshqa hisob tasdiqlanmoqda", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "Suhbat tarixining ko‘rinishi", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "Barcha ishtirokchilarga ko‘rinadi", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "Hammaga ko‘rinadigan", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "Ovozli xabar", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "Hamkor so‘rovni qabul qilishi kutilmoqda…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "Hamkor emoji qabul qilishini kutmoqda…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "Hamkor raqamlarni qabul qilishi kutilmoqda…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "Ogohlantirish!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "Sizga xat yubordik", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "Kim qaysi amalni bajarishi mumkin", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "Bu guruhga kim qo‘shilishi mumkin", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "Nima uchun bu haqda xabar bermoqchisiz?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "Ushbu manzillar yordamida parolingizni tiklashingiz mumkin.", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "Xabar yozish…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "Ha", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "Siz", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "Siz ortiq bu suhbatda qatnashmayapsiz", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "Bu suhbatdan bloklandingiz", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "Ochiq kalitingiz", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "messageInfo": "Xabar axboroti", + "time": "Vaqt", + "sender": "Yuboruvchi", + "openGallery": "Galereyani ochish", + "removeFromSpace": "Guruhdan olib tashlash", + "usersMustKnock": "Foydalanuvchilar taqillatishi kerak", + "noOneCanJoin": "Hech kim qoʻshila olmaydi", + "knock": "Taqillating", + "users": "Foydalanuvchilar", + "storeInAndroidKeystore": "Android KeyStoreʼda saqlang", + "storeInAppleKeyChain": "Apple KeyChainʼda saqlang", + "storeSecurlyOnThisDevice": "Ushbu qurilmada xavfsiz saqlang", + "countFiles": "{count} fayllar", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "user": "Foydalanuvchi", + "custom": "Maxsus", + "whyIsThisMessageEncrypted": "Nima uchun bu xabarni oʻqib boʻlmaydi?", + "noKeyForThisMessage": "Bu xabar siz ushbu qurilmada hisobingizga kirishdan oldin yuborilgan boʻlsa sodir boʻlishi mumkin.\n\nShuningdek, joʻnatuvchi qurilmangizni bloklagan yoki internet ulanishida biron bir muammo yuzaga kelgan boʻlishi mumkin.\n\nXabarni boshqa sessiyada oʻqiy olasizmi? Keyin xabarni undan uzatishingiz mumkin! Sozlamalar > Qurilmalar boʻlimiga oʻting va qurilmalaringiz bir-birini tasdiqlaganligiga ishonch hosil qiling. Keyingi safar xonani ochganingizda va ikkala sessiya ham oldinda boʻlganda, kalitlar avtomatik ravishda uzatiladi.\n\nTizimdan chiqishda yoki qurilmalarni almashtirishda kalitlarni yoʻqotishni xohlamaysizmi? Sozlamalarda suhbatning zaxira nusxasini yoqganingizga ishonch hosil qiling.", + "newSpace": "Yangi maydon", + "doNotShowAgain": "Qaytib koʻrsatilmasin", + "wasDirectChatDisplayName": "Boʻsh suhbat ({oldDisplayName} edi)", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "newSpaceDescription": "Maydonlar sizga suhbatlaringizni birlashtirish va shaxsiy yoki ommaviy hamjamiyatlarni yaratish imkonini beradi.", + "youJoinedTheChat": "Siz suhbatga qoʻshildingiz", + "encryptThisChat": "Bu suhbatni shifrlash", + "disableEncryptionWarning": "Xavfsizlik nuqtai nazaridan, agar u ilgari yoqilgan boʻlsa, suhbatda shifrlashni oʻchirib qoʻyolmaysiz.", + "reopenChat": "Suhbatni qayta ochish", + "noBackupWarning": "Diqqat! Suhbatni zaxiralashni yoqmasangiz, shifrlangan xabarlaringizga kirish huquqini yoʻqotasiz. Tizimdan chiqishdan oldin chatni zaxiralashni yoqishingiz tavsiya etiladi.", + "inviteGroupChat": "📨 Guruh suhbatiga taklif", + "archiveRoomDescription": "Suhbat arxivga koʻchiriladi. Boshqa foydalanuvchilar sizning suhbatdan chiqqaningizni koʻra oladilar.", + "roomUpgradeDescription": "Keyin suhbat yangi guruh versiyasi bilan qayta yaratiladi. Barcha ishtirokchilarga yangi suhbatga oʻtishlari kerakligi haqida xabar beriladi. Guruh versiyalari haqida koʻproq maʼlumotni https://spec.matrix.org/latest/rooms/ manzilida topishingiz mumkin", + "banUserDescription": "Foydalanuvchi suhbatdan bloklanadi va blokdan chiqarilmaguncha suhbatga qayta kira olmaydi.", + "unbanUserDescription": "Foydalanuvchi qayta suhbatga kira oladi agar ular urinib koʻrishsa.", + "kickUserDescription": "Foydalanuvchi suhbatdan chiqarib yuboriladi, ammo taqiqlanmaydi. Ommaviy chatlarda foydalanuvchi istalgan vaqtda qayta qoʻshilishi mumkin.", + "chatCanBeDiscoveredViaSearchOnServer": "Suhbatni {server} saytidagi qidiruv orqali topish mumkin", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "searchChatsRooms": "Qidiruv #chats, @users...", + "publicChatAddresses": "Ommaviy suhbat manzillari", + "addChatOrSubSpace": "Suhbat yoki sub-maydon qoʻshing", + "searchIn": "Suhbat \"{chat}\"da qidiring...", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "sendTypingNotificationsDescription": "Suhbatdagi boshqa ishtirokchilar siz yangi xabar yozayotganingizni koʻrishlari mumkin.", + "sendReadReceiptsDescription": "Suhbatdagi boshqa ishtirokchilar sizning xabarni qachon oʻqiganingizni koʻrishlari mumkin.", + "unreadChatsInApp": "{appname}: {unread} ta oʻqilmagan suhbatlar", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "changeGeneralChatSettings": "Umumiy suhbat sozlamalarini oʻzgartirish", + "inviteOtherUsers": "Boshqa foydalanuvchilarni bu suhbatga taklif qilish", + "changeTheChatPermissions": "Suhbat ruxsatnomalarini oʻzgartirish", + "changeTheVisibilityOfChatHistory": "Suhbat tarix koʻrinishini oʻzgartirish", + "changeTheCanonicalRoomAlias": "Asosiy umumiy suhbat manzilini oʻzgartirish", + "changeTheDescriptionOfTheGroup": "Suhbat tavsifini oʻzgartirish", + "chatPermissionsDescription": "Ushbu suhbatda muayyan harakatlar uchun qaysi quvvat darajasi zarurligini aniqlang. 0, 50 va 100 quvvat darajalari odatda foydalanuvchilar, moderatorlar va administratorlarni ifodalaydi, ammo har qanday gradatsiya mumkin.", + "noticeChatBackupDeviceVerification": "Eslatma: Barcha qurilmalaringizni suhbat zaxira nusxasiga ulaganingizda, ular avtomatik ravishda tasdiqlanadi.", + "unableToJoinChat": "Chatga qoʻshilib boʻlmadi. Ehtimol, boshqa tomon suhbatni allaqachon yopib qoʻygan.", + "newChatRequest": "📩 Yangi suhbat uchun soʻrov", + "shareKeysWithDescription": "Shifrlangan suhbatlarda xabarlaringizni oʻqishlari uchun qaysi qurilmalarga ishonish kerak?", + "enterNewChat": "Yangi suhbatga kirish", + "removeFromSpaceDescription": "Suhbat maydondan olib tashlanadi, lekin hali ham suhbatlarlar ro‘yxatida chiqadi.", + "countChats": "{chats} suhbatlar", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "backToMainChat": "Asosiy suhbatga qaytish", + "markAsRead": "Oʻqilgan sifatida belgilash", + "reportUser": "Foydalanuvchi haqida xabar berish", + "reactedWith": "{sender} {reaction} bilan reaksiya bildirdi", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "pinMessage": "Xonaga mahkamlash", + "confirmEventUnpin": "Tadbirni butunlay olib tashlashga ishonchingiz komilmi?", + "unsupportedAndroidVersion": "Qoʻllab-quvvatlanmaydigan Android versiyasi", + "unsupportedAndroidVersionLong": "Bu funksiya Androidning yangi versiyasini talab qiladi. Iltimos, yangilanishlar yoki Lineage OS qoʻllab-quvvatlashini tekshiring.", + "sorryThatsNotPossible": "Kechirasiz... bu mumkin emas", + "noOtherDevicesFound": "Boshqa qurilma topilmadi", + "fileIsTooBigForServer": "Yuborish imkonsiz! Server faqat {max} hajmgacha bo‘lgan ilovalarni qo‘llab-quvvatlaydi.", + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "fileHasBeenSavedAt": "Fayl {path}da saqlandi", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "jumpToLastReadMessage": "Oxirgi o‘qilgan xabarga o‘tish", + "readUpToHere": "Bu yerga qadar o‘qish", + "jump": "Sakrash", + "openLinkInBrowser": "Havolani brauzerda ochish", + "reportErrorDescription": "😭 Voy yo‘q. Nimadir xato ketdi. Agar xohlasangiz, bu xato haqida dasturchilarga xabar berishingiz mumkin.", + "report": "hisobot", + "setColorTheme": "Rang mavzusini sozlash:", + "invite": "Taklif qilish", + "invalidInput": "Xato kiritildi!", + "wrongPinEntered": "PIN noto‘g‘ri kiritildi! {seconds} soniyadan keyin qayta urining...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "pleaseEnterANumber": "0 dan katta son kiriting", + "removeDevicesDescription": "Bu qurilmadan chiqarilasiz va ortiq xabarlarni qabul qila olmaysiz.", + "noUsersFoundWithQuery": "Afsuski, \"{query}\" soʻrovi bilan foydalanuvchi topilmadi. Iltimos, xato qilganingizni tekshiring.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "knocking": "Taqillatmoqda", + "nothingFound": "Hech nima topilmadi...", + "groupName": "Guruh nomi", + "createGroupAndInviteUsers": "Guruh yaratish va foydalanuvchilarni taklif qilish", + "groupCanBeFoundViaSearch": "Guruh qidiruv orqali topilishi mumkin", + "wrongRecoveryKey": "Kechirasiz... bu toʻgʻri tiklash kaliti emasga oʻxshaydi.", + "commandHint_sendraw": "Xom jsonni yuborish", + "databaseMigrationTitle": "Maʼlumotlar bazasi optimallashtirilgan", + "databaseMigrationBody": "Iltimos, kuting. Bu biroz vaqt olishi mumkin.", + "leaveEmptyToClearStatus": "Holatingizni tozalash uchun boʻsh qoldiring.", + "select": "Tanlash", + "searchForUsers": "@users ni qidiring...", + "pleaseEnterYourCurrentPassword": "Iltimos, joriy maxfiy soʻzingizni kiriting", + "newPassword": "Yangi maxfiy soʻz", + "pleaseChooseAStrongPassword": "Iltimos kuchli maxfiy soʻz tanlang", + "passwordsDoNotMatch": "Maxfiy soʻzlar mos kelmadi", + "passwordIsWrong": "Siz kiritgan maxfiy soʻz xato", + "createNewAddress": "Yangi manzil yarating", + "joinSpace": "Maydonga qoʻshiling", + "publicSpaces": "Ommaviy maydonlar", + "thisDevice": "Ushbu qurilma:", + "initAppError": "Ilovani ishga tushirishda xatolik yuz berdi", + "searchMore": "Koʻproq qidirish...", + "gallery": "Galereya", + "files": "Fayllar", + "sessionLostBody": "Seansingiz yoʻqoldi. Iltimos, ushbu xato haqida {url} manzilidagi dasturchilarga xabar bering. Xato xabari: {error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "restoreSessionBody": "Ilova endi seansingizni zaxira nusxasidan tiklashga harakat qiladi. Iltimos, ushbu xato haqida {url} manzilidagi dasturchilarga xabar bering. Xato xabari: {error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "sendReadReceipts": "Oʻqilganlik haqida xabarnomalarni yuborish", + "formattedMessages": "Formatlangan xabarlar", + "formattedMessagesDescription": "Markdown yordamida qalin matn kabi boy xabar mazmunini koʻrsating.", + "verifyOtherUser": "🔐 Boshqa foydalanuvchini tasdiqlang", + "verifyOtherUserDescription": "Agar siz boshqa foydalanuvchini tasdiqlasangiz, aslida kimga yozayotganingizni bilishingizga amin boʻlishingiz mumkin. 💪\n\nTekshiruvni boshlaganingizda, siz va boshqa foydalanuvchi ilovada qalqib chiquvchi oynani koʻrasiz. Keyin u yerda siz bir-biringiz bilan taqqoslashingiz kerak boʻlgan bir qator emojilar yoki raqamlarni koʻrasiz.\n\nBuning eng yaxshi usuli - uchrashish yoki video qoʻngʻiroqni boshlash. 👭", + "verifyOtherDevice": "🔐 Boshqa qurilmani tasdiqlang", + "verifyOtherDeviceDescription": "Boshqa qurilmani tasdiqlaganingizda, bu qurilmalar kalitlarni almashishi mumkin, bu umumiy xavfsizligingizni oshiradi. 💪 Tasdiqlashni boshlaganingizda, ikkala qurilmada ham ilovada qalqib chiquvchi oyna paydo bo‘ladi. U yerda siz bir-biri bilan taqqoslashingiz kerak bo‘lgan emojilar yoki raqamlar qatorini ko‘rasiz. Tasdiqlashni boshlashdan oldin ikkala qurilma ham yoningizda bo‘lgani ma’qul. ✓", + "acceptedKeyVerification": "{sender} kalit tekshiruvini qabul qildi", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "contentNotificationSettings": "Kontent bildirishnomasi sozlamalari", + "generalNotificationSettings": "Umumiy bildirishnoma sozlamalari", + "roomNotificationSettings": "Xona bildirishnomasi sozlamalari", + "userSpecificNotificationSettings": "Foydalanuvchiga xos bildirishnoma sozlamalari", + "otherNotificationSettings": "Boshqa bildirishnoma sozlamalari", + "notificationRuleContainsUserName": "Foydalanuvchi nomini ichiga oladi", + "notificationRuleContainsUserNameDescription": "Xabarda foydalanuvchi nomi mavjud bo‘lsa, foydalanuvchiga xabar beradi.", + "notificationRuleMaster": "Barcha bildirishnomalarni ovozsiz qilish", + "notificationRuleMasterDescription": "Boshqa barcha qoidalarni bekor qiladi va barcha bildirishnomalarni faolsizlantiradi.", + "notificationRuleSuppressNotices": "Avtomatlashtirilgan xabarlarni o‘chirish", + "notificationRuleInviteForMe": "Men uchun taklif qilish", + "notificationRuleInviteForMeDescription": "Foydalanuvchi xonaga taklif qilinganda unga xabar beradi.", + "notificationRuleMemberEvent": "A’zo tadbirlari", + "notificationRuleMemberEventDescription": "Obuna tadbirlari uchun bildirishnomalarni o‘chiradi.", + "notificationRuleIsUserMention": "Foydalanuvchi zikri", + "notificationRuleIsUserMentionDescription": "Foydalanuvchi xabarida to‘g‘ridan-to‘g‘ri tilga olinganida unga xabar beradi.", + "notificationRuleContainsDisplayName": "Tarkibida displey nomi bor", + "notificationRuleContainsDisplayNameDescription": "Xabarda foydalanuvchining displey nomi mavjudligi haqida foydalanuvchiga xabar beradi.", + "notificationRuleSuppressNoticesDescription": "Botlar kabi avtomatlashtirilgan mijozlardan kelgan bildirishnomalarni to‘xtatadi.", + "notificationRuleIsRoomMention": "Xonaga eslatma", + "notificationRuleIsRoomMentionDescription": "Xona zikri mavjudligida foydalanuvchiga xabar beradi.", + "notificationRuleRoomnotif": "Xona bildirishnomasi", + "notificationRuleRoomnotifDescription": "Xabar tarkibida @room bo‘lsa, foydalanuvchiga xabar beradi.", + "notificationRuleReaction": "Reaksiya", + "notificationRuleReactionDescription": "Munosabat bildirishnomalarini o‘chiradi.", + "canceledKeyVerification": "{sender} kalit tekshiruvini bekor qildi", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "completedKeyVerification": "{sender} kalitni tasdiqlashni yakunladi", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "{sender} kalitni tasdiqlash uchun tayyor", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "requestedKeyVerification": "{sender} kalitni tasdiqlash talabini yubordi", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "{sender} kalit tekshiruvini so‘radi", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "incomingMessages": "Kiruvchi xabarlar", + "stickers": "Stikerlar", + "discover": "Kashf etish", + "commandHint_ignore": "Berilgan matriks ID e’tiborga olinmasin", + "commandHint_unignore": "Berilgan matriks IDni e’tiborsiz qoldirish", + "noDatabaseEncryption": "Bu platformada ma’lumotlar bazasini shifrlash ishlamaydi", + "thereAreCountUsersBlocked": "Hozirda {count} ta foydalanuvchi bloklangan.", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "goToSpace": "Maydonga o‘tish: {space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "markAsUnread": "Ochilmagan deb belgilash", + "userLevel": "{level} - Foydalanuvchi", + "@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" + } + } + }, + "sendRoomNotifications": "@room bildirishnomalarini yuborish", + "updateInstalled": "🎉 {version} versiyasiga yangilandi!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "changelog": "O‘zgarishlar jurnali", + "sendCanceled": "Yuborish bekor qilindi", + "loginWithMatrixId": "Matriks-ID bilan kirish", + "doesNotSeemToBeAValidHomeserver": "Uy serveri mos emasga o‘xshaydi. URL xato kiritilganmi?", + "calculatingFileSize": "Fayl hajmi hisoblanmoqda...", + "oneOfYourDevicesIsNotVerified": "Qurilmalaringizdan biri tasdiqlanmagan", + "continueText": "Davom etish", + "blur": "Xiralashtirish:", + "opacity": "Noaniqlik:", + "setWallpaper": "Fon rasmini sozlash", + "manageAccount": "Hisobni boshqarish", + "noContactInformationProvided": "Server hech qanday yaroqli kontakt axborotini taqdim etmaydi", + "contactServerAdmin": "Server administratori bilan bog‘lanish", + "contactServerSecurity": "Aloqa serveri xavfsizligi", + "supportPage": "Yordam sahifasi", + "serverInformation": "Server haqida ma’lumot:", + "name": "Nomi", + "version": "Versiya", + "website": "Sayt", + "compress": "Siqmoq", + "boldText": "Qalin matn", + "italicText": "Qiya matn", + "strikeThrough": "O‘tish joyi", + "pleaseFillOut": "Iltimos, to‘ldiring", + "invalidUrl": "Yaroqsiz url", + "addLink": "Havola kiritish", + "previous": "Avvalgi", + "otherPartyNotLoggedIn": "Narigi tomon hozirda hisobingizga kirmagan va shuning uchun xabarlarni qabul qila olmaydi!", + "appWantsToUseForLogin": "Hisobga kirish '{server}' ishlating", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "appWantsToUseForLoginDescription": "Siz bu bilan ilova va veb-saytga siz haqingizdagi axborotni ulashishga ruxsat berasiz.", + "open": "Ochish", + "waitingForServer": "Server kutilmoqda...", + "notificationRuleRoomServerAcl": "Guruh serveri ACL", + "notificationRuleRoomServerAclDescription": "Guruh serveriga kirishni boshqarish ro‘yxatlari (ACL) uchun bildirishnomalarni bostiradi.", + "notificationRuleSuppressEdits": "Tahrirlarni bostirish", + "notificationRuleSuppressEditsDescription": "Tahrirlangan xabarlar uchun bildirishnomalarni o‘chiradi.", + "notificationRuleCall": "Chaqiruv", + "notificationRuleCallDescription": "Chaqiruvlar haqida foydalanuvchiga xabar beradi.", + "notificationRuleEncryptedRoomOneToOne": "Shifrlangan birga-bir guruh", + "notificationRuleEncryptedRoomOneToOneDescription": "Shifrlangan birga-bir guruhlardagi xabarlar haqida foydalanuvchiga xabar beradi.", + "notificationRuleTombstoneDescription": "Xonani faolsizlantirish xabarlari haqida foydalanuvchiga xabar beradi.", + "notificationRuleRoomOneToOne": "Birga-bir guruh", + "notificationRuleRoomOneToOneDescription": "Birga-bir guruhlardagidagi xabarlar haqida foydalanuvchiga xabar beradi.", + "notificationRuleMessage": "Xabar", + "notificationRuleMessageDescription": "Foydalanuvchiga umumiy xabarlar haqida xabar beradi.", + "notificationRuleEncrypted": "Shifrlangan", + "notificationRuleEncryptedDescription": "Shifrlangan guruhlardagi xabarlar haqida foydalanuvchiga xabar beradi.", + "notificationRuleJitsi": "Jitsi", + "notificationRuleJitsiDescription": "Jitsi vidjet hodisalari haqida foydalanuvchiga xabar beradi.", + "notificationRuleServerAcl": "Server ACL hodisalarini bostirish", + "notificationRuleServerAclDescription": "Server ACL hodisalari uchun bildirishnomalarni o‘chiradi.", + "unknownPushRule": "Noma’lum push qoidasi '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "sentVoiceMessage": "️ 🎙️{duration} - {sender}dan ovozli xabar", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "deletePushRuleCanNotBeUndone": "Agar ushbu bildirishnoma sozlamasini o‘chirib tashlasangiz, buni bekor qilib bo‘lmaydi.", + "more": "Yana", + "shareKeysWith": "Kalitlarni ulashish...", + "allDevices": "Barcha qurilmalar", + "crossVerifiedDevicesIfEnabled": "Agar yoqilgan bo‘lsa, tasdiqlangan qurilmalarni kesib o‘tish", + "crossVerifiedDevices": "O‘zaro tekshirilgan qurilmalar", + "verifiedDevicesOnly": "Faqat tasdiqlangan qurilmalar", + "takeAPhoto": "Suratga olish", + "recordAVideo": "Video yozib olish", + "optionalMessage": "(Ixtiyoriy) xabar...", + "notSupportedOnThisDevice": "Bu qurilmada ishlamaydi", + "approve": "Tasdiqlash", + "youHaveKnocked": "Siz taqillatdingiz", + "pleaseWaitUntilInvited": "Iltimos, hozir kutib turing, xonadan kimdir sizni taklif qilguncha.", + "commandHint_logout": "Joriy qurilmadan chiqish", + "commandHint_logoutall": "Barcha faol qurilmalardan chiqish", + "displayNavigationRail": "Mobilda navigatsiya temir yo‘lini ko‘rsatish", + "customReaction": "Maxsus reaksiya", + "moreEvents": "Boshqa hodisalar", + "declineInvitation": "Taklifni rad etish", + "noMessagesYet": "Hozircha xabarlar yo‘q", + "longPressToRecordVoiceMessage": "Ovozli xabarni yozib olish uchun uzoq bosing.", + "pause": "Pauza", + "resume": "Davom etish", + "spaceMemberOf": "{spaces} maydoni a’zosi", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "{spaces} maydoni a’zosi eshikni taqillatishi mumkin", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "startPoll": "So‘rovni boshlash", + "endPoll": "So‘rovnomani yakunlash", + "answersVisible": "Javoblar ko‘rinadi", + "pollQuestion": "So‘rovnoma savoli", + "answerOption": "Javob varianti", + "addAnswerOption": "Javob variantini kiritish", + "allowMultipleAnswers": "Bir nechta javobga ruxsat berish", + "pollHasBeenEnded": "So‘rovnoma yakunlandi", + "countVotes": "{count, plural, =1{Bir ovoz} other{{count} ta ovoz}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "answersWillBeVisibleWhenPollHasEnded": "So‘rovnoma tugaganida javoblar chiqadi", + "replyInThread": "Sahifada javob berish", + "countReplies": "{count, plural, =1{Bitta javob} other{{count} ta javob}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "thread": "Sahifa", + "youRejectedTheInvitation": "Taklifni rad etdingiz", + "youAcceptedTheInvitation": "👍 Taklifni qabul qildingiz", + "youBannedUser": "Siz {user}ni blokladingiz", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youHaveWithdrawnTheInvitationFor": "Siz {user} uchun taklifnomani bekor qildingiz", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 Sizni {user} taklif qildi", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 Siz {user}ni taklif qildingiz", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKicked": "👞 Siz {user}ni chiqarib yubordingiz", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKickedAndBanned": "🙅 Siz {user}ni chiqardingiz va blokladingiz", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "{user}ni blokdan chiqardingiz", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "hasKnocked": "🚪 {user} taqillatdi", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "makeAdminDescription": "Bu foydalanuvchini admini qilsangiz, uni bekor qila olmasligingiz mumkin, chunki u siz bilan bir xil ruxsatlarga ega bo‘ladi.", + "pushNotificationsNotAvailable": "Push-bildirishnomalar mavjud emas", + "learnMore": "Batafsil", + "yourGlobalUserIdIs": "Global foydalanuvchi ID raqamingiz: ", + "notificationRuleTombstone": "Qabrtosh", + "emojis": "Emojilar", + "changedTheChatDescription": "{username} chat tavsifini o‘zgartirdi", + "changedTheChatName": "{username} chat nomini o‘zgartirdi", + "saveChanges": "O‘zgarishlarni saqlash", + "createSticker": "Stiker yoki emoji yaratish", + "useAsSticker": "Stiker sifatida ishlatish", + "useAsEmoji": "Emoji sifatida ishlatish", + "stickerPackNameAlreadyExists": "Stiker paketi nomi allaqachon mavjud", + "newStickerPack": "Yangi stikerlar paketi", + "stickerPackName": "Stiker paketi nomi", + "attribution": "Atributsiya", + "skipChatBackup": "Chat zaxirasini tashlab ketish", + "skipChatBackupWarning": "Ishonchingiz komilmi? Chat zaxirasini yoqmasdan qurilmangizni almashtirsangiz, xabarlaringizga kira olmay qolishingiz mumkin.", + "noMoreResultsFound": "Boshqa natijalar topilmadi", + "chatSearchedUntil": "Chat {time} gacha qidirildi", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "federationBaseUrl": "Federatsiya bazasi URL manzili", + "clientWellKnownInformation": "Mijozlarga yaxshi tanish ma’lumotlar:", + "baseUrl": "Asosiy URL", + "identityServer": "Identifikatsiya serveri:", + "versionWithNumber": "Versiya: {version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "Jurnallar", + "advancedConfigs": "Kengaytirilgan konfiguratsiyalar", + "advancedConfigurations": "Kengaytirilgan sozlamalar", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + } +} \ No newline at end of file diff --git a/lib/l10n/intl_vi.arb b/lib/l10n/intl_vi.arb new file mode 100644 index 0000000..169bb2c --- /dev/null +++ b/lib/l10n/intl_vi.arb @@ -0,0 +1,1958 @@ +{ + "@@last_modified": "2021-08-14 12:41:09.781172", + "about": "Giới thiệu", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "Đồng ý", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "{username} đã đồng ý lời mời", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Tài khoản", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "{username} đã kích hoạt mã hóa đầu cuối 2 chiều", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "admin": "Quản trị viên", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "bí danh", + "@alias": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} đã trả lời cuộc gọi", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "Mọi người đều có thể gia nhập", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "archive": "Lưu trữ", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "Khách vãng lai có được tham gia không", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "Bạn chắc chứ?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "blockDevice": "Thiết bị bị chặn", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "verified": "Đã xác thực", + "@verified": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "Vui lòng làm theo hướng dẫn trên trang web và bấm tiếp", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "Bạn chỉ có thể kích hoạt mã hoá khi phòng này không mở", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "next": "Tiếp", + "@next": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "Sửa tên hiển thị", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "Tải ảnh xuống", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "Tên hiển thị đã được thay đổi", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "devices": "Các thiết bị", + "@devices": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "Xoá tin nhắn", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "Xoá tài khoản", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "delete": "Xoá", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deactivateAccountWarning": "Việc này sẽ vô hiệu hoá tài khoản của bạn. Điều này không thể đảo ngược được! Bạn chắc là vẫn muốn tiếp tục chứ?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "currentlyActive": "Đang hoạt động", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "{username} đã tạo cuộc trò chuyện", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "create": "Tạo", + "@create": { + "type": "String", + "placeholders": {} + }, + "countParticipants": "{count} thành viên", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "couldNotDecryptMessage": "Không thể giải mã tin nhắn: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "copy": "Sao chép", + "@copy": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "Liên hệ đã được mời vào nhóm", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "So sánh và đảm bảo các số sau đây giống trên máy còn lại", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "compareEmojiMatch": "So sánh và đảm bảo các biểu tượng cảm xúc sau đây giống với các biểu tượng trên máy còn lại", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "close": "Đóng", + "@close": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "Chọn một mật khẩu mạnh", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "Chi tiết cuộc trò chuyện", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "Sao lưu cuộc trò chuyện", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chat": "Chat", + "@chat": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "Thay đổi tên nhóm", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "Thay đổi máy chủ nhà", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changePassword": "Thay đổi mật khẩu", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changedTheRoomInvitationLink": "{username} đã thay đổi đường dẫn mời", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} đã đổi địa chỉ phòng chat", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} đã thay đổi ảnh đại diện của mình", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} đã thay đổi quy tắc truy cập đối với khách thành: {rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} đã thay đổi quy tắc truy cập đối với khách", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} đã thay đổi quyền trong phòng chat", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatAvatar": "{username} đã thay đổi ảnh phòng chat", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changeDeviceName": "Thay đổi tên thiết bị", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "cancel": "Hủy", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "blocked": "Đã chặn", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} đã cấm {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "banned": "Đã bị cấm", + "@banned": { + "type": "String", + "placeholders": {} + }, + "banFromChat": "Cấm khỏi cuộc trò chuyện", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "badServerLoginTypesException": "Máy chủ nhà hỗ trợ kiểu đăng nhập:\n{serverVersions}\nNhưng ứng dụng này chỉ hỗ trợ:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "askVerificationRequest": "Bạn có đồng ý yêu cầu chứng thực từ {username} không?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "areYouSureYouWantToLogout": "Bạn có chắc bạn muốn đăng xuất không?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "addEmail": "Thêm email", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "notifications": "Thông báo", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterANumber": "Hãy nhập số lớn hơn 0", + "newSpaceDescription": "Không gian cho phép bạn hợp nhất các cuộc trò chuyện của mình và xây dựng cộng đồng riêng tư hoặc công khai.", + "disableEncryptionWarning": "Vì lý do bảo mật, bạn không thể tắt tính năng mã hóa trong cuộc trò chuyện đã được bật tính năng này trước đó.", + "makeAdminDescription": "Khi bạn đặt người dùng này làm quản trị viên, bạn không thể hoàn tác việc này vì khi đó họ sẽ có quyền ngang bạn.", + "setColorTheme": "Chọn màu giao diện:", + "openLinkInBrowser": "Mở đường dẫn trong trình duyệt", + "inviteGroupChat": "📨 Mời nhóm trò chuyện", + "addToSpace": "Thêm vào không gian", + "importEmojis": "Nhập Biểu cảm", + "importFromZipFile": "Nhập vào từ tệp .zip", + "exportEmotePack": "Xuất gói biểu cảm bằng tệp .zip", + "replace": "Thay thế", + "report": "báo cáo", + "remove": "Loại bỏ", + "@remove": { + "type": "String", + "placeholders": {} + }, + "newSpace": "Không gian mới", + "all": "Tất cả", + "@all": { + "type": "String", + "placeholders": {} + }, + "appLock": "Khoá ứng dụng", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "repeatPassword": "Nhập lại mật khẩu", + "confirmMatrixId": "Hãy xác nhận Matrix ID để xoá tài khoản.", + "supposedMxid": "Đây nên là {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "noBackupWarning": "Cẩn thận! Nếu không bật sao lưu trò chuyện, bạn sẽ mất quyền truy cập vào tin nhắn được mã hóa của mình. Chúng tôi khuyên bạn nên bật sao lưu trò chuyện trước khi đăng xuất.", + "doNotShowAgain": "Không hiện lại nữa", + "wasDirectChatDisplayName": "Hội thoại trống (từng là {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "reportErrorDescription": "😭 Ôi. Có lỗi xảy ra. Bạn có thể báo cáo lỗi tới nhà phát triển nếu muốn.", + "banUserDescription": "Người dùng sẽ bị cấm khỏi cuộc trò chuyện và không thể tham gia lại cho tới khi được gỡ cấm.", + "learnMore": "Tìm hiểu thêm", + "incomingMessages": "Tin nhắn đến", + "encryptThisChat": "Mã hóa cuộc trò chuyện này", + "noOtherDevicesFound": "Không tìm thấy thiết bị khác", + "fileIsTooBigForServer": "Máy chủ báo cáo rằng tệp tin quá lớn để gửi.", + "notAnImage": "Không phải tệp ảnh.", + "importNow": "Nhập vào", + "jumpToLastReadMessage": "Đi tới tin nhắn đã đọc mới nhất", + "commandHint_ignore": "Phớt lờ matrix ID này", + "appLockDescription": "Khoá ứng dụng khi không dùng bằng mã pin", + "settings": "Cài đặt", + "@settings": { + "type": "String", + "placeholders": {} + }, + "fileHasBeenSavedAt": "Tệp đã được lưu tại {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "readUpToHere": "Đọc tới đây", + "jump": "Đi tới", + "sorryThatsNotPossible": "Xin lỗi... không khả dụng", + "reopenChat": "Mở lại cuộc trò chuyện", + "wrongPinEntered": "Nhập sai mã pin! Thử lại sau {seconds} giây...", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "archiveRoomDescription": "Cuộc trò chuyện sẽ được chuyển tới mục lưu trữ. Người dùng khác sẽ thấy được bạn đã rời khỏi cuộc trò chuyện.", + "kickUserDescription": "Người dùng bị đuổi khỏi cuộc trò chuyện nhưng không bị cấm. Trong các cuộc trò chuyện công khai, người dùng có thể vào lại bất cứ lúc nào.", + "unbanUserDescription": "Người dùng sẽ có thể vào lại cuộc trò chuyện nếu họ thử.", + "pushNotificationsNotAvailable": "Thông báo đẩy không khả dụng", + "invite": "Mời", + "invalidInput": "Dữ liệu nhập không hợp lệ!", + "removeDevicesDescription": "Bạn sẽ đăng xuất khỏi thiết bị này và không nhận được tin nhắn nữa.", + "noUsersFoundWithQuery": "Không tìm thấy người dùng nào với \"{query}\". Hãy kiểm tra xem bạn có nhập nhầm không.", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "commandHint_unignore": "Bỏ phớt lờ matrix ID này", + "discover": "Khám phá", + "stickers": "Nhãn dán", + "roomUpgradeDescription": "Cuộc trò chuyện sẽ được tạo lại với phiên bản phòng mới. Tất cả những người tham gia sẽ được thông báo rằng họ cần chuyển sang cuộc trò chuyện mới. Bạn có thể tìm hiểu thêm về các phiên bản phòng tại https://spec.matrix.org/latest/rooms/", + "commandHint_hug": "Gửi một cái ôm", + "aboutHomeserver": "Về {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "hugContent": "{senderName} ôm bạn", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_roomupgrade": "Nâng cấp phòng lên phiên bản mặc định", + "commandHint_cuddle": "Gửi cái ôm", + "googlyEyesContent": "{senderName} gửi nháy mắt", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "cuddleContent": "{senderName} ôm nào", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "askSSSSSign": "Để có thể ký tên cho người khác, vui lòng nhập mật khẩu lưu trữ an toàn hoặc khóa khôi phục của bạn.", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "autoplayImages": "Tự động chạy nhãn dán hình động và biểu tượng cảm xúc", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "sendTypingNotifications": "Gửi thông báo đang nhập", + "swipeRightToLeftToReply": "Gạt từ phải sang trái để trả lời", + "sendOnEnter": "Gửi bằng Enter", + "continueText": "Tiếp", + "markAsRead": "Đánh dấu đã đọc", + "reportUser": "Báo cáo người dùng", + "reactedWith": "{sender} bày tỏ {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "pinMessage": "Ghim phòng", + "confirmEventUnpin": "Bạn có muốn bỏ ghim sự kiện?", + "@ok": { + "type": "String", + "placeholders": {} + }, + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@directChats": { + "type": "String", + "placeholders": {} + }, + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "@reply": { + "type": "String", + "placeholders": {} + }, + "@removeYourAvatar": { + "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" + } + } + }, + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "@newVerificationRequest": { + "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": {} + }, + "@goToSpace": { + "type": "String", + "space": {} + }, + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@videoCall": { + "type": "String", + "placeholders": {} + }, + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "@editRoomAliases": { + "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": {} + }, + "@no": { + "type": "String", + "placeholders": {} + }, + "@unpin": { + "type": "String", + "placeholders": {} + }, + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@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": {} + }, + "@reason": { + "type": "String", + "placeholders": {} + }, + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "@edit": { + "type": "String", + "placeholders": {} + }, + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "@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": {} + }, + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@submit": { + "type": "String", + "placeholders": {} + }, + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@participant": { + "type": "String", + "placeholders": {} + }, + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "@yes": { + "type": "String", + "placeholders": {} + }, + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@help": { + "type": "String", + "placeholders": {} + }, + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "@leftTheChat": { + "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": {} + }, + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "@moderator": { + "type": "String", + "placeholders": {} + }, + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "@sendAsText": { + "type": "String" + }, + "@commandInvalid": { + "type": "String" + }, + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "@newChat": { + "type": "String", + "placeholders": {} + }, + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "@openCamera": { + "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" + } + } + }, + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@group": { + "type": "String", + "placeholders": {} + }, + "@leave": { + "type": "String", + "placeholders": {} + }, + "@skip": { + "type": "String", + "placeholders": {} + }, + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "@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": {} + }, + "@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" + }, + "@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" + }, + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "@status": { + "type": "String", + "placeholders": {} + }, + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "@youHaveBeenBannedFromThisChat": { + "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" + } + } + }, + "@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": {} + }, + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "@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" + }, + "@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": {} + }, + "@search": { + "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" + } + } + }, + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@groups": { + "type": "String", + "placeholders": {} + }, + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@messages": { + "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": {} + }, + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@visibleForEveryone": { + "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" + } + } + }, + "@privacy": { + "type": "String", + "placeholders": {} + }, + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "@pin": { + "type": "String", + "placeholders": {} + }, + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "@logout": { + "type": "String", + "placeholders": {} + }, + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "@login": { + "type": "String", + "placeholders": {} + }, + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "@passwordForgotten": { + "type": "String", + "placeholders": {} + } +} \ No newline at end of file diff --git a/lib/l10n/intl_yue_Hant.arb b/lib/l10n/intl_yue_Hant.arb new file mode 100644 index 0000000..f9713c1 --- /dev/null +++ b/lib/l10n/intl_yue_Hant.arb @@ -0,0 +1,1889 @@ +{ + "@@locale": "yue", + "areYouSureYouWantToLogout": "係咪確定要 log out?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "畀唔畀陌生人 Join", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "要向其他人簽名,請輸入你 Keep 好咗嘅密碼或者恢復密鑰。", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "badServerLoginTypesException": "呢個 Homeserver 支持嘅登錄類型有:\n{serverVersions}\n但係呢個 App 淨係支援:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "cantOpenUri": "打唔開嘅 URI {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "banFromChat": "喺傾偈入面 Ban 咗佢", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "noChatsFoundHere": "暫時未有偈傾。撳下面粒掣同人開始傾偈 ⤵️", + "bannedUser": "{username} Ban 咗 {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "addEmail": "加 Email", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "importEmojis": "導入 Emoji", + "hugContent": "{senderName} 抱咗你", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_hug": "Send 個 Hug", + "anyoneCanJoin": "任何人都可以 Join", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "repeatPassword": "輸入多一次密碼", + "notAnImage": "唔係圖檔。", + "remove": "刪走", + "@remove": { + "type": "String", + "placeholders": {} + }, + "importNow": "即刻導入", + "exportEmotePack": "將表情符號導出成 .zip 檔案", + "replace": "換走", + "about": "關於", + "aboutHomeserver": "關於{homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "accept": "同意", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} 同意咗邀请", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "Account", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} 開咗點對點加密", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "supposedMxid": "呢度應該係 {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "addToSpace": "加落去空間嗰度", + "admin": "Admin", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "花名", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "全部", + "@all": { + "type": "String", + "placeholders": {} + }, + "commandHint_roomupgrade": "將呢間房升級到指定版本", + "commandHint_googly": "送啲古靈精怪表情過去", + "commandHint_cuddle": "Send 個攬攬", + "googlyEyesContent": "{senderName} Send 咗你一個咕嚕眼", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "cuddleContent": "{senderName} 攬咗你", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "answeredTheCall": "{senderName} 聽咗你嘅電話", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "appLock": "App 鎖", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "appLockDescription": "無人用嘅時候用密碼鎖住個App", + "archive": "存檔", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "咪住先?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "係咪要 Accept 來自 {username} 嘅驗證申請?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "autoplayImages": "自動播放動畫貼紙同表情", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "sendTypingNotifications": "通知人地打緊字", + "swipeRightToLeftToReply": "向左滑嚟回覆", + "sendOnEnter": "撳 Enter 即 Send", + "noMoreChatsFound": "搵唔到更多偈傾啦…", + "unread": "未讀", + "space": "空間", + "banned": "Block 咗", + "@banned": { + "type": "String", + "placeholders": {} + }, + "blockDevice": "Block 咗嘅裝置", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "Block 咗", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "取消", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "changeDeviceName": "改裝置名", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username}轉咗個大頭貼", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "confirmMatrixId": "Confirm 你嘅 Matrix ID ,我哋先至可以刪除你嘅 Account。", + "importFromZipFile": "喺 .zip 檔案導入", + "@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" + } + } + }, + "@close": { + "type": "String", + "placeholders": {} + }, + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "@reply": { + "type": "String", + "placeholders": {} + }, + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@invited": { + "type": "String", + "placeholders": {} + }, + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "@warning": { + "type": "String", + "placeholders": {} + }, + "@password": { + "type": "String", + "placeholders": {} + }, + "@goToSpace": { + "type": "String", + "space": {} + }, + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@videoCall": { + "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": {} + }, + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@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" + } + } + }, + "@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": {} + }, + "@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": {} + }, + "@unpin": { + "type": "String", + "placeholders": {} + }, + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "@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": {} + }, + "@reason": { + "type": "String", + "placeholders": {} + }, + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "@voiceMessage": { + "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" + } + } + }, + "@edit": { + "type": "String", + "placeholders": {} + }, + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "@passwordHasBeenChanged": { + "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" + } + } + }, + "@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" + } + } + }, + "@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" + } + } + }, + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@fileIsTooBigForServer": { + "type": "String", + "placeholders": { + "max": { + "type": "String" + } + } + }, + "@help": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@delete": { + "type": "String", + "placeholders": {} + }, + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@moderator": { + "type": "String", + "placeholders": {} + }, + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "@ok": { + "type": "String", + "placeholders": {} + }, + "@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!" + }, + "@sendAsText": { + "type": "String" + }, + "@commandInvalid": { + "type": "String" + }, + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@newChat": { + "type": "String", + "placeholders": {} + }, + "@notifications": { + "type": "String", + "placeholders": {} + }, + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "@emoteSettings": { + "type": "String", + "placeholders": {} + }, + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "@mention": { + "type": "String", + "placeholders": {} + }, + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "@withTheseAddressesRecoveryDescription": { + "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" + } + } + }, + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "@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" + }, + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "@status": { + "type": "String", + "placeholders": {} + }, + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "@sentCallInformations": { + "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" + } + } + }, + "@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" + }, + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "@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": {} + }, + "@search": { + "type": "String", + "placeholders": {} + }, + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "@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" + } + } + }, + "@logout": { + "type": "String", + "placeholders": {} + }, + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@groups": { + "type": "String", + "placeholders": {} + }, + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@messages": { + "type": "String", + "placeholders": {} + }, + "@login": { + "type": "String", + "placeholders": {} + }, + "@waitingPartnerNumbers": { + "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": {} + }, + "@settings": { + "type": "String", + "placeholders": {} + }, + "@changeTheHomeserver": { + "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": {} + }, + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "@devices": { + "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" + } + } + }, + "@privacy": { + "type": "String", + "placeholders": {} + }, + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "@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" + } + } + }, + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + } +} \ No newline at end of file diff --git a/lib/l10n/intl_zh.arb b/lib/l10n/intl_zh.arb new file mode 100644 index 0000000..628f955 --- /dev/null +++ b/lib/l10n/intl_zh.arb @@ -0,0 +1,2828 @@ +{ + "@@locale": "zh", + "@@last_modified": "2021-08-14 12:41:09.767805", + "about": "关于", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "接受", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} 接受了邀请", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "账户", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} 激活了端到端加密", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "添加电子邮件", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "admin": "管理员", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "别名", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "全部", + "@all": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "{senderName} 接听了通话", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "任何人都可以加入", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "应用锁", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "archive": "存档", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "允许访客加入吗?", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "你确定吗?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "你确定要退出登录吗?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "请输入你的安全存储的密码短语或恢复密钥,以向对方签名。", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "是否接受来自 {username} 的验证请求?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "badServerLoginTypesException": "主服务器支持的登录方式:\n{serverVersions}\n但此应用仅支持:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "banFromChat": "从聊天中封禁", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "已封禁", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} 封禁了 {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "屏蔽设备", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "已屏蔽", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "取消", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "changeDeviceName": "更改设备名称", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} 更改了聊天头像", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} 更改了聊天权限", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} 将昵称更改为:'{displayname}'", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} 更改了访客访问规则", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} 更改了访客访问规则为:{rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} 更改了历史记录可见性", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} 更改了历史记录可见性为:{rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} 更改了加入的规则", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} 更改了加入的规则为:{joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} 更改了头像", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} 更改了聊天室别名", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} 更改了邀请链接", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "更改密码", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "更改主服务器", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "改变风格", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "更改群组名称", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "changeYourAvatar": "更改你的头像", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "加密已被破坏", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "聊天", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "聊天记录备份", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "聊天详情", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chats": "聊天", + "@chats": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "输入一个强密码", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "清除存档", + "close": "关闭", + "@close": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "在此聊天室封禁指定用户", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_html": "发送 HTML 格式化文本", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_invite": "邀请指定用户加入此聊天室", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "加入指定聊天室", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "在此聊天室移除指定用户", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "退出此聊天室", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_me": "介绍自己", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_myroomavatar": "设置你在此聊天室的头像(通过 mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_myroomnick": "设置你在此聊天室的昵称", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "commandHint_op": "设置指定用户的权限等级(默认:50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "commandHint_plain": "发送纯文本", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "将回复作为回应发送", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "commandHint_send": "发送文本", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "commandHint_unban": "在此聊天室解封指定用户", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "commandInvalid": "指令无效", + "@commandInvalid": { + "type": "String" + }, + "commandMissing": "{command} 不是指令。", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "compareEmojiMatch": "请比较表情符号", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "请比较以下数字", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "配置聊天", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "联系人已被邀请至群组", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "此内容已被报告至服务器管理员处", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "已复制到剪贴板", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "复制", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "复制到剪贴板", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "不能解密消息: {error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count} 名参与者", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "创建", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} 创建了聊天", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "currentlyActive": "目前活跃", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "深色", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date}, {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "这将停用你的用户账户。这不能被撤销!你确定吗?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "新用户默认权限级别", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "删除", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "删除账户", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "删除消息", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "设备", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "私聊", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "昵称已更改", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "下载文件", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "编辑", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "编辑被屏蔽的服务器", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "编辑昵称", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAliases": "编辑聊天室别名", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "编辑聊天室头像", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "表情已存在!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "无效的表情快捷码!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "表情快捷码", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "空聊天", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "在全局启用表情包", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "启用加密", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "你之后将无法停用加密,确定吗?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "已加密", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "加密", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "加密未启用", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} 结束了通话", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "输入一个电子邮件地址", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "fontSize": "字体大小", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "转发", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "自加入起", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "自邀请起", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "群组", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "群组是公开的", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "群组", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupWith": "名称为 {displayname} 的群组", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "访客禁止加入", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "访客可以加入", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} 撤回了对 {targetName} 的邀请", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "帮助", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "隐藏未知的事件", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignore": "忽略", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "已忽略的用户", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "我已经点击了链接", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "不正确的密码短语或恢复密钥", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "邀请联系人", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "邀请联系人到 {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "已邀请", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username} 邀请了 {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "仅被邀请用户", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} 邀请你使用 FluffyChat。 \n1. 安装 FluffyChat:https://fluffychat.im \n2. 注册或登录 \n3. 打开邀请链接:\n {link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "正在输入", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} 加入了聊天", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "加入聊天室", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username} 踢出了 {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} 踢出并封禁了 {targetName}", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "从聊天室踢出", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "上次活跃: {localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "离开", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "离开了聊天", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "浅色", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "加载 {count} 个更多的参与者", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "加载中…请等待。", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "加载更多…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "login": "登录", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "登录 {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "退出登录", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "提及", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "消息", + "@messages": { + "type": "String", + "placeholders": {} + }, + "moderator": "协管员", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "静音聊天", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "新的聊天", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 FluffyChat 新消息", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "新的验证请求!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "下一步", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "否", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "无法连接服务器", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "未找到表情。😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "你只能在聊天室不可被公众访问时才能启用加密。", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "看起来你手机上没有 Firebase Cloud Messaging。如果仍希望接收 FluffyChat 的推送通知,推荐安装 ntfy。借助 ntfy 或另一个 Unified Push 程序,你可以以一种数据安全的方式接收推送通知。你可以从 PlayStore 或 F-Droid 商店下载 ntfy。", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "你尚未添加恢复密码的方法。", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "没有权限", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "未找到聊天室…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "通知", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} 人正在输入…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "ok": "确认", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "在线密钥备份已启用", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "哎呀!十分不幸,配置推送通知时发生了错误。", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "哎呀,出了点差错…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "打开应用以查看消息", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "打开相机", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "or": "或", + "@or": { + "type": "String", + "placeholders": {} + }, + "participant": "参与者", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "密码短语或恢复密钥", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "密码", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "忘记密码", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "密码已被更改", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "密码恢复", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "置顶", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "请选择一个密码", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "请点击电子邮件中的链接,然后继续。", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "请输入你的密码", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPin": "请输入你的 PIN", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "请输入你的用户名", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "请按照网站上的提示,点击下一步。", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "隐私", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "公开聊天室", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "原因", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} 删除了一个事件", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactMessage": "删除消息", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reject": "拒绝", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} 拒绝了邀请", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "移除", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "移除所有其它设备", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "从聊天中解封", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "移除你的头像", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "更新聊天室至新版本", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "回复", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "举报信息", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "聊天室已升级", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "聊天室版本", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "saveFile": "保存文件", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "search": "搜索", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "安全", + "@security": { + "type": "String", + "placeholders": {} + }, + "send": "发送", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "发送一条消息", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "以文本发送", + "@sendAsText": { + "type": "String" + }, + "sendAudio": "发送音频", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "发送文件", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "发送图像", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "发送消息", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "发送视频", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "📁{username} 发送了文件", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤{username} 发送了音频", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️ {username} 发送了图片", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊 {username} 发送了贴纸", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥 {username} 发送了视频", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} 发送了通话信息", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setAsCanonicalAlias": "设为主要别名", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "setStatus": "设置状态", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "设置", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "分享", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} 分享了位置", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "skip": "跳过", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "源代码", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} 开始了通话", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "status": "状态", + "@status": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "你今天怎么样?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "提交", + "@submit": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "同步中…请等待。", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "系统", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "它们不匹配", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "它们匹配", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "请求过多。请稍后再试!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "尝试重新发送", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} 解封了 {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "解除屏蔽设备", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "未知设备", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "未知加密算法", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "未知事件 '{type}'", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "取消静音聊天", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "取消置顶", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} 和其他 {count} 人正在输入…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} 和 {username2} 正在输入…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} 正在输入…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "🚪{username} 离开了聊天", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} 发送了一个 {type} 事件", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verified": "已验证", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "开始验证", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "你已成功验证!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "验证其它账户", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "聊天记录的可见性", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "对所有参与者可见", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "对所有人可见", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "语音消息", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "等待对方接受请求…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "等待对方接受 emoji…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "等待对方接受数字…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "警告!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "我们向你发送了一封电子邮件", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "谁可以执行哪些操作", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "谁可以加入此群组", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "你举报的理由是什么?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "通过这些地址,你可以恢复密码。", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "写一条消息…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "是", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "你", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "你已不再参与此聊天", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "你已被此聊天封禁", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "你的公钥", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "添加到空间", + "obtainingLocation": "获取位置中…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} 不是一个 Matrix 服务器,试试 {server2}?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "locationPermissionDeniedNotice": "位置权限被拒绝。请授予此权限以分享你的位置.", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "locationDisabledNotice": "位置服务已禁用。请启用此服务以分享你的位置.", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "errorObtainingLocation": "取得地址错误: {error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "createNewSpace": "创建新空间", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "cantOpenUri": "无法打开 URI {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "autoplayImages": "自动播放动态贴纸和表情", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "spaceName": "空间名称", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "空间是公开的", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "shareLocation": "分享位置", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "openInMaps": "在地图中打开", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "sendOnEnter": "按 Enter 键发送", + "scanQrCode": "扫描二维码", + "oneClientLoggedOut": "你的一个客户端已登出", + "removeFromBundle": "从此集合中移除", + "unverified": "未经验证", + "repeatPassword": "重复输入密码", + "addAccount": "添加账户", + "editBundlesForAccount": "编辑此账户的集合", + "addToBundle": "添加到集合", + "bundleName": "集合名称", + "link": "链接", + "sender": "发送者", + "openGallery": "打开图库", + "messageInfo": "消息信息", + "time": "时间", + "removeFromSpace": "从此空间中移除", + "commandHint_discardsession": "丢弃会话", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_dm": "创建私聊\n使用 --no-encryption 选项来禁用加密", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_clearcache": "清除缓存", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_create": "创建空的群聊\n使用 --no-encryption 选项来禁用加密", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "markAsRead": "标为已读", + "reportUser": "举报用户", + "reactedWith": "{sender} 回应了 {reaction}", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "confirmEventUnpin": "你确定要永久性取消置顶此事件吗?", + "pinMessage": "置顶到聊天室", + "emojis": "表情符号", + "unsupportedAndroidVersionLong": "这个功能需要较新版本的 Android 系统。请检查更新或 Lineage OS 支持。", + "unsupportedAndroidVersion": "不受支持的 Android 版本", + "youRejectedTheInvitation": "你拒绝了邀请", + "youJoinedTheChat": "你加入了聊天", + "youBannedUser": "你封禁了 {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 你受到了 {user} 的邀请", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedUser": "📩 你邀请了 {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKicked": "👞 你踢出了 {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "你解除了对 {user} 的封禁", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youAcceptedTheInvitation": "👍 你接受了邀请", + "youHaveWithdrawnTheInvitationFor": "你撤回了对 {user} 的邀请", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youKickedAndBanned": "🙅 你踢出并封禁了 {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "storeInAppleKeyChain": "存储在 Apple KeyChain 中", + "storeInAndroidKeystore": "存储在 Android KeyStore 中", + "storeSecurlyOnThisDevice": "安全地存储在此设备上", + "users": "用户", + "countFiles": "{count} 个文件", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "hydrate": "从备份文件恢复", + "dehydrate": "导出会话并擦除设备", + "dehydrateWarning": "此操作无法撤消。 确保你安全地存储备份文件。", + "user": "用户", + "custom": "自定义", + "confirmMatrixId": "请确认你的 Matrix ID 以删除账户。", + "supposedMxid": "应为 {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "commandHint_markasgroup": "标记为群组", + "commandHint_markasdm": "将给定的 Matrix ID 标为私信聊天室", + "whyIsThisMessageEncrypted": "为什么此消息不可读?", + "noKeyForThisMessage": "如果消息是在你在此设备上登录账户前发送的,就可能发生这种情况。\n\n也有可能是发送者屏蔽了你的设备或网络连接出了问题。\n\n你能在另一个会话中读取消息吗?如果是的话,你可以从它那里传递信息!点击设置 > 设备,并确保你的设备已经相互验证。当你下次打开聊天室,且两个会话都在前台,密钥就会自动传输。\n\n你不想在退出登录或切换设备时丢失密钥?请确保在设置中启用了聊天备份。", + "newSpace": "新的空间", + "doNotShowAgain": "不再显示", + "googlyEyesContent": "{senderName} 向你发送了“大眼”表情", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_googly": "发送“大眼”表情", + "commandHint_cuddle": "发送“搂抱”", + "commandHint_hug": "发送“拥抱”", + "cuddleContent": "{senderName} 搂抱了你", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "hugContent": "{senderName} 拥抱了你", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "wasDirectChatDisplayName": "空聊天(曾是 {oldDisplayName})", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "newSpaceDescription": "空间让你可以整合聊天并建立私人或公共社区。", + "encryptThisChat": "加密此聊天", + "disableEncryptionWarning": "出于安全考虑 ,你不能在之前已启用加密的聊天中禁用加密。", + "sorryThatsNotPossible": "非常抱歉……这是做不到的", + "report": "举报", + "fileIsTooBigForServer": "无法发送!服务器只支持最大 {max} 的文件。", + "noOtherDevicesFound": "未找到其它设备", + "jumpToLastReadMessage": "跳转到上次已读的消息", + "readUpToHere": "读到此处", + "jump": "跳转", + "openLinkInBrowser": "在浏览器中打开链接", + "fileHasBeenSavedAt": "文件已保存在 {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "reportErrorDescription": "😭 哦不。出了点差错。如果你愿意,可以向开发人员报告此错误。", + "noBackupWarning": "警告!如果不启用聊天备份,你将无法访问加密消息。强烈建议在退出登录前先启用聊天备份。", + "reopenChat": "重新打开聊天", + "importEmojis": "导入表情包", + "notAnImage": "不是图像文件。", + "importNow": "立即导入", + "importFromZipFile": "从 .zip 文件导入", + "replace": "替换", + "exportEmotePack": "以 .zip 格式导出表情包", + "sendTypingNotifications": "发送正在输入通知", + "createGroup": "创建群组", + "shareInviteLink": "分享邀请链接", + "tryAgain": "重试", + "chatPermissions": "聊天权限", + "chatDescription": "聊天描述", + "chatDescriptionHasBeenChanged": "聊天描述已被更改", + "noChatDescriptionYet": "尚未创建聊天描述。", + "invalidServerName": "服务器名称无效", + "redactMessageDescription": "消息将为此对话中所有参与者删除。此操作无法撤销。", + "optionalRedactReason": "(可选)删除此消息的原因...", + "setChatDescription": "设置聊天描述", + "setColorTheme": "设置主题颜色:", + "invite": "邀请", + "messagesStyle": "消息:", + "redactedBy": "已被 {username} 删除", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactedByBecause": "已被 {username} 删除,原因:\"{reason}\"", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "inviteGroupChat": "📨 群聊邀请", + "emoteKeyboardNoRecents": "最近使用过的表情会出现在这里...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "invalidInput": "无效的输入!", + "wrongPinEntered": "输入的 PIN 码不正确!请 {seconds} 秒后重试…", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "hasKnocked": "{user} 请求了加入聊天室的邀请", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "pleaseEnterANumber": "请输入大于 0 的数", + "banUserDescription": "该用户将被禁止进入聊天室,在解除封禁之前将不能再进入聊天室。", + "removeDevicesDescription": "你将从此设备登出,无法再接收消息。", + "unbanUserDescription": "如果用户尝试加入则可以再次进入聊天。", + "pushNotificationsNotAvailable": "通知推送不可用", + "makeAdminDescription": "一旦你将该用户设为管理员,你可能无法撤销,因为他们将拥有与你相同的权限。", + "archiveRoomDescription": "聊天将被移至存档。其他用户将能看到你已离开聊天。", + "learnMore": "了解更多", + "roomUpgradeDescription": "将使用新版聊天室来重新创建当前聊天室。所有参与者都会收到通知以切换到新的聊天室。有关聊天室版本的更多信息,请访问 https://spec.matrix.org/latest/rooms/", + "kickUserDescription": "该用户会被踢出聊天但没被封禁。在公开聊天中,该用户可以随时重新加入。", + "blockListDescription": "你可以屏蔽打扰你的用户。你将不会收到来自屏蔽列表中用户的任何消息或聊天室邀请。", + "createGroupAndInviteUsers": "创建群组并邀请用户", + "blockedUsers": "已屏蔽的用户", + "groupCanBeFoundViaSearch": "可通过搜索找到该群组", + "noUsersFoundWithQuery": "很遗憾,没有找到有关\"{query}\"的用户。请检查是否输入错误。", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "block": "屏蔽", + "yourGlobalUserIdIs": "你的全局用户 ID 是: ", + "commandHint_sendraw": "发送原始 json", + "wrongRecoveryKey": "抱歉…这似乎不是正确的恢复密钥。", + "blockUsername": "忽略用户名", + "groupName": "群组名称", + "databaseMigrationTitle": "数据库已优化", + "searchChatsRooms": "搜索 #聊天,@用户…", + "databaseMigrationBody": "请稍候。可能需要稍等片刻。", + "thisDevice": "此设备:", + "publicSpaces": "公开空间", + "passwordIsWrong": "你输入的密码有误", + "pleaseEnterYourCurrentPassword": "请输入你当前的密码", + "nothingFound": "未找到任何内容…", + "newPassword": "新的密码", + "passwordsDoNotMatch": "密码不匹配", + "select": "选择", + "pleaseChooseAStrongPassword": "请选择一个强密码", + "addChatOrSubSpace": "添加聊天或子空间", + "leaveEmptyToClearStatus": "留空以清除你的状态。", + "joinSpace": "加入空间", + "searchForUsers": "搜索 @用户…", + "initAppError": "在初始化应用时发生错误", + "sessionLostBody": "你的会话已丢失。请将此错误报告给开发者,网址为 {url}。错误消息为:{error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "restoreSessionBody": "应用现在尝试从备份中恢复你的会话。请将此错误报告给开发者,网址为 {url}。错误消息为:{error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "sendTypingNotificationsDescription": "聊天中的其他参与者可以看到你正在输入新消息。", + "formattedMessagesDescription": "使用 Markdown 显示富文本内容,例如加粗文本。", + "verifyOtherUserDescription": "如果你验证了其他用户,就可以确保你清楚自己正在与谁进行通信。💪\n\n当你开始验证时,你和其他用户将在应用中看到一个弹出窗口。然后你会看到一系列表情符号或数字,你和其他用户需要比较它们是否一致。\n\n最好的方式是线下会面或开始视频通话。👭", + "verifyOtherDeviceDescription": "当你验证另一个设备时,这些设备可以交换密钥,从而提高整体安全性。 💪 当你开始验证时,两个设备上的应用都将显示一个弹出窗口。然后你会看到一系列表情符号或数字,你需要比较两个设备上显示的内容。在开始验证之前,最好将两个设备都放在手边。🤳", + "canceledKeyVerification": "{sender} 取消了密钥验证", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "sendReadReceipts": "发送已读回执", + "formattedMessages": "格式化的消息", + "verifyOtherDevice": "🔐 验证其它设备", + "verifyOtherUser": "🔐 验证其他用户", + "sendReadReceiptsDescription": "聊天中的其他参与者可以看到你是否读过消息。", + "acceptedKeyVerification": "{sender} 接受了密钥验证", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "{sender} 已准备好进行密钥验证", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "completedKeyVerification": "{sender} 完成了密钥验证", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "requestedKeyVerification": "{sender} 请求了密钥验证", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "{sender} 开始了密钥验证", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "incomingMessages": "传入消息", + "stickers": "贴纸", + "discover": "发现", + "commandHint_ignore": "忽略给定的 matrix ID", + "commandHint_unignore": "取消忽略给定的 matrix ID", + "unreadChatsInApp": "{appname}: {unread} 未读聊天", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "appLockDescription": "用 pin 码在不用 FluffyChat 时锁定它", + "globalChatId": "全局聊天 ID", + "accessAndVisibility": "访问和可见性", + "accessAndVisibilityDescription": "谁可以加入此聊天以及怎样发现该聊天。", + "calls": "通话", + "customEmojisAndStickers": "自定义表情符号和贴纸", + "hideRedactedMessages": "隐藏被涂黑的消息", + "passwordRecoverySettings": "密码发现设置", + "knock": "请求", + "noOneCanJoin": "无人可以加入", + "knocking": "正在请求", + "chatCanBeDiscoveredViaSearchOnServer": "可通过搜索 {server} 发现聊天", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "thereAreCountUsersBlocked": "目前有 {count} 名用户被封禁。", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "hideRedactedMessagesBody": "如果某人涂黑了一条消息,那么在聊天中再也看不到这条消息。", + "hideInvalidOrUnknownMessageFormats": "隐藏无效或未知的消息格式", + "customEmojisAndStickersBody": "添加或分享可用于任何聊天的表情符号或贴纸。", + "usersMustKnock": "用户必须请求加入", + "noDatabaseEncryption": "数据库加密在此平台上不受支持", + "publicChatAddresses": "公开聊天的地址", + "createNewAddress": "新建地址", + "searchMore": "搜索更多…", + "gallery": "图库", + "files": "文件", + "searchIn": "在 “{chat}” 聊天中搜索…", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "swipeRightToLeftToReply": "从右向左滑动进行回复", + "noMoreChatsFound": "找不到更多聊天…", + "space": "空间", + "goToSpace": "转到空间:{space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "markAsUnread": "标为未读", + "unread": "未读", + "userLevel": "{level} - 用户", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "moderatorLevel": "{level} - 主持人", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "adminLevel": "{level} - 管理员", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "inviteOtherUsers": "邀请其他用户到这个聊天", + "changeTheChatPermissions": "更改聊天权限", + "changeTheVisibilityOfChatHistory": "更改聊天历史的可见性", + "changeTheCanonicalRoomAlias": "更改主公共聊天地址", + "sendRoomNotifications": "发送通知聊天室所有人的通知", + "changeTheDescriptionOfTheGroup": "更改聊天描述", + "changeGeneralChatSettings": "更改常规聊天设置", + "chatPermissionsDescription": "定义此聊天中哪个权限等级对特定操作是必需的。权限等级 0、50 和 100 通常代表用户、主持人和管理员,但你可以自定义任何等级。", + "changelog": "更新记录", + "updateInstalled": "🎉 已安装更新 {version} !", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "sendCanceled": "发送被取消", + "noChatsFoundHere": "此处尚未找到聊天。使用下方按钮 ⤵️ 开始和某人的新聊天", + "loginWithMatrixId": "使用 Matrix-ID 登录", + "doesNotSeemToBeAValidHomeserver": "似乎不是兼容的主服务器。URL 不正确?", + "calculatingFileSize": "计算文件尺寸中…", + "oneOfYourDevicesIsNotVerified": "您设备中的一台未验证", + "noticeChatBackupDeviceVerification": "注意:当你连接所有设备到聊天备份时,这些设备将被自动验证。", + "continueText": "继续", + "blur": "模糊:", + "opacity": "不透明:", + "setWallpaper": "设置壁纸", + "manageAccount": "管理账户", + "aboutHomeserver": "关于 {homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "version": "版本", + "noContactInformationProvided": "服务器未提供任何有效的联系信息", + "contactServerAdmin": "联系服务器管理员", + "name": "名称", + "contactServerSecurity": "联系服务器安全管理", + "supportPage": "支持页面", + "serverInformation": "服务器信息:", + "website": "网站", + "italicText": "文本倾斜", + "strikeThrough": "删除线", + "pleaseFillOut": "请填写", + "addLink": "添加链接", + "boldText": "文本加粗", + "invalidUrl": "无效 url", + "unableToJoinChat": "无法加入聊天。可能其他方面已经关闭了对话。", + "sendImages": "发送 {count} 张图片", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "compress": "压缩", + "previous": "前一个", + "otherPartyNotLoggedIn": "另一方当前未登录,因而无法接收消息!", + "appWantsToUseForLoginDescription": "您特此允许本应用和网站分享关于您的信息。", + "open": "打开", + "appWantsToUseForLogin": "使用 '{server}'服务器登录", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "waitingForServer": "正在等待服务器…", + "synchronizingPleaseWaitCounter": " 同步中… ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "newChatRequest": "📩 新的聊天请求", + "generalNotificationSettings": "常规通知设置", + "userSpecificNotificationSettings": "使用特定通知设置", + "notificationRuleMaster": "静音所有通知", + "notificationRuleSuppressNotices": "隐藏自动消息", + "notificationRuleInviteForMe": "给我的邀请", + "notificationRuleInviteForMeDescription": "当用户被邀请加入聊天室时提醒用户。", + "notificationRuleMemberEvent": "成员事件", + "notificationRuleMemberEventDescription": "隐藏成员身份事件通知。", + "notificationRuleIsUserMention": "用户提及", + "notificationRuleIsUserMentionDescription": "当消息中直接提到用户名时通知使用该用户名的用户。", + "notificationRuleContainsDisplayName": "包含展示名称", + "notificationRuleIsRoomMention": "聊天室提及", + "notificationRuleRoomnotifDescription": "消息包含 「@room」 时提醒用户。", + "notificationRuleTombstone": "墓碑", + "notificationRuleRoomServerAcl": "聊天室服务器 ACL", + "notificationRuleSuppressEdits": "隐藏编辑", + "notificationRuleCall": "通话", + "notificationRuleRoomOneToOne": "一对一聊天室", + "notificationRuleRoomOneToOneDescription": "在一对一聊天室中提醒用户消息。", + "notificationRuleEncrypted": "已加密", + "notificationRuleEncryptedDescription": "在已加密聊天室中提醒用户消息。", + "notificationRuleJitsi": "Jitsi", + "notificationRuleJitsiDescription": "提醒用户 Jitsi 小部件的事件。", + "notificationRuleServerAcl": "隐藏服务器 ACL 事件", + "notificationRuleServerAclDescription": "隐藏服务器 ACL 事件的通知。", + "deletePushRuleCanNotBeUndone": "删除这个通知设置的操作无法撤销。", + "more": "更多", + "notificationRuleReactionDescription": "隐藏回应通知。", + "notificationRuleMessageDescription": "提醒用户常规消息。", + "notificationRuleContainsUserName": "包含用户名", + "otherNotificationSettings": "其他通知设置", + "notificationRuleContainsUserNameDescription": "当消息包含用户名时通知使用该用户名的用户。", + "notificationRuleIsRoomMentionDescription": "有聊天室提及时通知用户。", + "contentNotificationSettings": "内容通知设置", + "notificationRuleMasterDescription": "覆盖所有其他规则并禁用所有通知。", + "notificationRuleSuppressNoticesDescription": "隐藏来自 bot 等自动客户端的通知。", + "roomNotificationSettings": "聊天室通知设置", + "notificationRuleRoomServerAclDescription": "隐藏聊天室服务器访问控制列表(ACL)通知。", + "notificationRuleContainsDisplayNameDescription": "当消息包含用户的展示名时提醒使用该展示名的用户。", + "notificationRuleRoomnotif": "聊天室通知", + "notificationRuleTombstoneDescription": "提醒用户聊天室解散的消息。", + "notificationRuleReaction": "回应", + "notificationRuleSuppressEditsDescription": "隐藏消息编辑通知。", + "notificationRuleCallDescription": "提醒用户通话的消息。", + "notificationRuleEncryptedRoomOneToOne": "已加密一对一聊天室", + "notificationRuleEncryptedRoomOneToOneDescription": "在已加密一对一聊天室中提醒用户消息。", + "notificationRuleMessage": "消息", + "unknownPushRule": "未知推送规则 '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "crossVerifiedDevices": "交叉验证设备", + "shareKeysWithDescription": "选择应当信任哪些设备允许它们读取你在加密聊天中的消息?", + "shareKeysWith": "与哪些设备分享密钥…", + "allDevices": "所有设备", + "crossVerifiedDevicesIfEnabled": "交叉验证设备(如启用)", + "verifiedDevicesOnly": "仅已验证设备", + "optionalMessage": "(可选)消息…", + "takeAPhoto": "拍照", + "recordAVideo": "录像", + "notSupportedOnThisDevice": "此设备上不受支持", + "enterNewChat": "进入新聊天", + "commandHint_roomupgrade": "将此聊天室升级到给定的聊天室版本", + "approve": "批准", + "youHaveKnocked": "你已请求加入", + "pleaseWaitUntilInvited": "在来自该聊天室的某人邀请你之前请等待。", + "countInvited": "邀请了 {count}", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "checkList": "清单", + "sentVoiceMessage": "🎙️ {duration} - 来自 {sender} 的语音消息", + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "commandHint_logout": "注销当前设备", + "commandHint_logoutall": "注销所有活动设备", + "displayNavigationRail": "在移动设备上显示导航栏", + "customReaction": "自定义回应", + "moreEvents": "更多事件", + "declineInvitation": "拒绝邀请", + "noMessagesYet": "尚无消息", + "longPressToRecordVoiceMessage": "长按录制语音消息。", + "pause": "暂停", + "resume": "继续", + "removeFromSpaceDescription": "将从空间移除该聊天,但仍出现在聊天列表中。", + "countChats": "{chats} 个聊天", + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "spaceMemberOf": "{spaces} 的空间成员", + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "spaceMemberOfCanKnock": "{spaces} 的空间成员可以敲门", + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "startPoll": "启动投票", + "endPoll": "结束投票", + "answersVisible": "投票结果可见", + "pollQuestion": "投票主题", + "answerOption": "选项", + "addAnswerOption": "添加选项", + "allowMultipleAnswers": "允许多选投票选项", + "pollHasBeenEnded": "投票已结束", + "countVotes": "{count, plural, =1{票} other{{count} 票}}", + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "answersWillBeVisibleWhenPollHasEnded": "投票结束后将显示结果", + "thread": "嘟文串", + "replyInThread": "在嘟文串中回复", + "countReplies": "{count, plural, =1{则回复} other{{count} 则回复}}", + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "backToMainChat": "返回主聊天", + "saveChanges": "保存更改", + "createSticker": "创建贴纸或表情图片", + "useAsSticker": "用作贴纸", + "useAsEmoji": "用作表情图片", + "stickerPackNameAlreadyExists": "贴纸包名已存在", + "newStickerPack": "新建贴纸包", + "stickerPackName": "贴纸包名", + "attribution": "作者", + "skipChatBackup": "跳过聊天备份", + "skipChatBackupWarning": "确定吗?不开启聊天备份,如果切换设备可能无法访问消息。", + "changedTheChatDescription": "{username} 更改了聊天描述", + "changedTheChatName": "{username} 更改了聊天名", + "noMoreResultsFound": "未找到更多结果", + "chatSearchedUntil": "搜索了截至 {time} 的聊天记录", + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "federationBaseUrl": "联邦基础 URL", + "clientWellKnownInformation": "Client-Well-Known 信息:", + "baseUrl": "基础 URL", + "identityServer": "身份服务器:", + "versionWithNumber": "版本:{version}", + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "logs": "日志", + "advancedConfigs": "高级配置", + "advancedConfigurations": "高级配置", + "signIn": "登录", + "createNewAccount": "创建新账户", + "signUpGreeting": "FluffyChat 是去中心化的!选择您希望创建账户的服务器!", + "signInGreeting": "已经有 Matrix 账户了?欢迎回来!选择 homeserver 登录。", + "theProcessWasCanceled": "过程被取消。", + "join": "加入", + "searchOrEnterHomeserverAddress": "搜索或输入 homeserver 地址", + "matrixId": "Matrix ID", + "setPowerLevel": "设置权限级别", + "makeModerator": "协管员", + "makeAdmin": "管理员", + "removeModeratorRights": "删除协管员权限", + "removeAdminRights": "删除管理员权限", + "powerLevel": "权限级别", + "setPowerLevelDescription": "权限级别定义群成员在这个聊天室中可以做什么,取值范围 0 到 100。", + "owner": "所有者", + "mute": "静音", + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "createNewChat": "新建聊天", + "reset": "重置", + "supportFluffyChat": "支持 FluffyChat", + "support": "支持", + "setLowPriority": "设置低优先级", + "unsetLowPriority": "取消设置低优先级", + "playSoundOnNotification": "播放通知声音", + "addTag": "添加标签", + "removeTag": "删除标签", + "tagName": "标签名", + "createNewTag": "创建新标签", + "discardEdits": "有未保存的更改。放弃编辑吗?", + "@discardEdits": { + "type": "String", + "placeholders": {} + }, + "hideRoomsInSpaces": "隐藏位于空间中的聊天室", + "possibleByYou": "没有您的支持不会有这个版本。FluffyChat 依旧免费、开源、完全由社区驱动。", + "showThumbnailsInTimeline": "显示图片和视频的缩略图", + "appSubtitle": "安全的 [matrix] 通信", + "appDescription": "以对所有人简单易得的方式通过去中心化 [matrix] 网络加密通信。", + "interactiveVerification": "互动式验证", + "interactiveVerificationDescription": "如果你和联系人就在一起或通过安全渠道通信,你们可以通过比较安全号码或绘文字同时验证所有设备。", + "countUnverifiedDevices": "该聊天中有 {count} 台未验证设备。", + "@countUnverifiedDevices": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "encryptedMessage": "加密的消息", + "unencryptedMessage": "未加密的消息", + "publicKey": "公钥:{key}", + "@publicKey": { + "type": "String", + "placeholders": { + "key": { + "type": "String" + } + } + }, + "deviceIdentityKey": "设备身份密钥", + "showMore": "显示更多", + "showLess": "显示较少", + "restoreBootstrapEmptyDevicesDescription": "请输入密码短语或恢复密钥来验证此设备并获得访问加密消息备份的权限。", + "@restoreBootstrapEmptyDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "restoreBootstrapDevicesDescription": "请选择其他设备中的一台来验证此会话:", + "@restoreBootstrapDevicesDescription": { + "type": "String", + "placeholders": {} + }, + "resetAccount": "重置账户", + "@resetAccount": { + "type": "String", + "placeholders": {} + }, + "restoreCryptoIdentity": "恢复加密身份", + "@restoreCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "resetCryptoIdentity": "重置加密身份", + "@resetCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "setUpCryptoIdentity": "设置加密身份", + "@setUpCryptoIdentity": { + "type": "String", + "placeholders": {} + }, + "waitingForKeys": "正在等待密钥… 请保持另一台设备活跃。", + "@waitingForKeys": { + "type": "String", + "placeholders": {} + }, + "noKeysTransmitted": "未传输密钥。请重试。", + "@noKeysTransmitted": { + "type": "String", + "placeholders": {} + }, + "unlock": "解锁", + "@unlock": { + "type": "String", + "placeholders": {} + }, + "openFile": "打开文件", + "@openFile": { + "type": "String", + "placeholders": {} + }, + "resetAccountWarning": "重置账户会造成永远无法访问旧消息。需要再次验证所有当前设备。请在没有其他设备来验证会话且丢失恢复密钥和密码短语时才执行此操作!", + "@resetAccountWarning": { + "type": "String", + "placeholders": {} + }, + "newPassphraseDescription": "FluffyChat 使用端到端加密。为了不丢失消息,请选择强密码短语来保护加密身份和加密的消息备份。", + "@newPassphraseDescription": { + "type": "String", + "placeholders": {} + }, + "newPassphrase": "新密码短语", + "@newPassphrase": { + "type": "String", + "placeholders": {} + }, + "repeatPassphrase": "重复密码短语", + "@repeatPassphrase": { + "type": "String", + "placeholders": {} + }, + "passphrasesMatch": "密码短语匹配", + "@passphrasesMatch": { + "type": "String", + "placeholders": {} + }, + "passphraseLengthRequirement": "长度至少 12 个字符。", + "@passphraseLengthRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseUpperAndLowerCaseRequirement": "包含大小写字符。", + "@passphraseUpperAndLowerCaseRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseSpecialCharactersRequirement": "包含特殊字符。", + "@passphraseSpecialCharactersRequirement": { + "type": "String", + "placeholders": {} + }, + "passphraseNumberRequirement": "包含一个数字。", + "@passphraseNumberRequirement": { + "type": "String", + "placeholders": {} + }, + "storeRecoveryKeyDescription": "请写下恢复密钥以便恢复加密消息和加密身份。", + "@storeRecoveryKeyDescription": { + "type": "String", + "placeholders": {} + }, + "saveAsFile": "保存为文件", + "@saveAsFile": { + "type": "String", + "placeholders": {} + }, + "youAreReadyToStart": "可以开始了!", + "noUserKeyFound": "未找到用户密钥", + "@noUserKeyFound": { + "type": "String", + "placeholders": {} + }, + "unsignedDevice": "未签名设备", + "@unsignedDevice": { + "type": "String", + "placeholders": {} + }, + "signedDevice": "已签名设备", + "@signedDevice": { + "type": "String", + "placeholders": {} + }, + "noCurve25519KeyFound": "未找到 curve25519 key", + "@noCurve25519KeyFound": { + "type": "String", + "placeholders": {} + }, + "messageNotDecryptable": "消息不可解密", + "knownSince": "初始知晓日期:{date}", + "@knownSince": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + } + } + }, + "messageCanOnlyBeReadByUser": "你的消息是端到端加密的,只能由该用户读取:", + "messageCanOnlyBeReadByUsers": "你的消息是端到端加密的,只能由这些用户读取:", + "today": "今日", + "sending": "发送中", + "generatingThumbnail": "正在生成缩略图", + "encrypting": "加密中", + "uploading": "上传中", + "edited": "(已编辑)", + "couldNotBeSent": "无法发送", + "yesterday": "昨天", + "resetRecoveryKey": "重置恢复密钥", + "pleaseEnter6Digits": "请输入 6 位数字来启用应用锁。", + "disableAppLock": "禁用应用锁", + "disableAppLockAreYouSure": "确定要禁用应用锁吗?", + "enableBiometrics": "启用生物识别身份认证", + "disableBiometrics": "禁用生物识别身份认证", + "biometricsDescription": "借助生物识别身份认证,你可以用脸或指纹解锁应用。该功能是否可用取决于你的设备。", + "useAppLock": "使用应用锁", + "unlockWithBiometrics": "用生物识别身份认证解锁", + "resetPin": "重置 pin 码", + "forwardCountMessages": "转发 {count, plural, =1{条消息} other{{count} 条消息}}?", + "@forwardCountMessages": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "editImage": "编辑图片", + "@editImage": { + "type": "String", + "placeholders": {} + }, + "rotateLeft": "左转", + "@rotateLeft": { + "type": "String", + "placeholders": {} + }, + "rotateRight": "右转", + "@rotateRight": { + "type": "String", + "placeholders": {} + }, + "mirror": "镜像", + "@mirror": { + "type": "String", + "placeholders": {} + }, + "save": "保存", + "@save": { + "type": "String", + "placeholders": {} + }, + "draw": "绘制", + "@draw": { + "type": "String", + "placeholders": {} + }, + "undo": "撤销", + "@undo": { + "type": "String", + "placeholders": {} + }, + "clear": "清除", + "@clear": { + "type": "String", + "placeholders": {} + }, + "eraser": "擦除", + "@eraser": { + "type": "String", + "placeholders": {} + }, + "crop": "裁剪", + "@crop": { + "type": "String", + "placeholders": {} + }, + "loadingMessages": "正在加载消息…", + "buildDoesNotSupportFirebase": "此版本不支持 firebase 云消息。", + "unableToRegisterDeviceForFirebase": "无法注册设备用于 firebase 云消息。", + "unifiedPushDistributors": "Unified Push 分发程序:", + "doubleTapToReact": "轻按两次回应", + "doubleTapToReactDescription": "轻按消息两次进行回应而非选中文本", + "doubleTapReaction": "轻按两次回应", + "sendingFilesDoNotExit": "正发送 {count} 个文件… 请不要退出!", + "@sendingFilesDoNotExit": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "compressingVideo": "正在压缩视频…", + "shareCrashReports": "分享崩溃报告", + "shareCrashReportsDescription": "自动与开发者分享崩溃报告?", + "videoCallsBetaWarning": "视频通话是测试功能。可能有故障或意外行为。我们可以聆听您的反馈。", + "countActiveCallMembers": "{count} 名活跃通话成员", + "@countActiveCallMembers": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "enterCall": "进入通话", + "noDevicesFound": "未找到设备", + "incomingCall": "来电", + "waitingForParticipant": "等待参与者…", + "decline": "拒绝", + "videoCall": "视频通话", + "voiceCall": "音频通话", + "missedCall": "未接电话", + "callBack": "回呼", + "hangUp": "挂断", + "startCall": "开始通话", + "selectCamera": "选择相机", + "selectMicrophone": "选择麦克风", + "selectSpeaker": "选择扬声器", + "toggleMicrophone": "切换麦克风状态", + "toggleCamera": "切换相机状态", + "startScreensharing": "开始屏幕分享", + "stopScreensharing": "停止屏幕分享", + "raiseHand": "举手", + "stopRaiseHand": "停止举手", + "preferSpeaker": "偏好扬声器", + "unexpectedErrorOccurded": "不幸发生了意外错误:{msg}", + "@unexpectedErrorOccurded": { + "placeholders": { + "msg": { + "type": "String" + } + } + }, + "accountsAndSettings": "账户和设置", + "@accountsAndSettings": { + "type": "String", + "placeholders": {} + }, + "incomingCallFrom": "{user} 的来电", + "@incomingCallFrom": { + "placeholders": { + "user": { + "type": "String" + } + } + } +} diff --git a/lib/l10n/intl_zh_Hant.arb b/lib/l10n/intl_zh_Hant.arb new file mode 100644 index 0000000..b6d6e8d --- /dev/null +++ b/lib/l10n/intl_zh_Hant.arb @@ -0,0 +1,2428 @@ +{ + "@@last_modified": "2021-08-14 12:41:09.708353", + "about": "關於", + "@about": { + "type": "String", + "placeholders": {} + }, + "accept": "同意", + "@accept": { + "type": "String", + "placeholders": {} + }, + "acceptedTheInvitation": "👍 {username} 已接受邀請", + "@acceptedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "account": "帳號", + "@account": { + "type": "String", + "placeholders": {} + }, + "activatedEndToEndEncryption": "🔐 {username} 已啟用點對點加密", + "@activatedEndToEndEncryption": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "addEmail": "新增電子郵件", + "@addEmail": { + "type": "String", + "placeholders": {} + }, + "admin": "管理員", + "@admin": { + "type": "String", + "placeholders": {} + }, + "alias": "別稱", + "@alias": { + "type": "String", + "placeholders": {} + }, + "all": "全部", + "@all": { + "type": "String", + "placeholders": {} + }, + "answeredTheCall": "已開始與 {senderName} 通話", + "@answeredTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "anyoneCanJoin": "任何人可以加入", + "@anyoneCanJoin": { + "type": "String", + "placeholders": {} + }, + "appLock": "密碼鎖定", + "@appLock": { + "type": "String", + "placeholders": {} + }, + "archive": "封存", + "@archive": { + "type": "String", + "placeholders": {} + }, + "areGuestsAllowedToJoin": "是否允許訪客加入", + "@areGuestsAllowedToJoin": { + "type": "String", + "placeholders": {} + }, + "areYouSure": "您確定嗎?", + "@areYouSure": { + "type": "String", + "placeholders": {} + }, + "areYouSureYouWantToLogout": "您確定要登出嗎?", + "@areYouSureYouWantToLogout": { + "type": "String", + "placeholders": {} + }, + "askSSSSSign": "請輸入您安全儲存的密碼短語或恢復金鑰,以向對方簽名。", + "@askSSSSSign": { + "type": "String", + "placeholders": {} + }, + "askVerificationRequest": "是否接受來自 {username} 的驗證申請?", + "@askVerificationRequest": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "badServerLoginTypesException": "目前伺服器支援的登入類型:\n{serverVersions}\n但本應用程式僅支援:\n{supportedVersions}", + "@badServerLoginTypesException": { + "type": "String", + "placeholders": { + "serverVersions": { + "type": "String" + }, + "supportedVersions": { + "type": "String" + } + } + }, + "banFromChat": "已從聊天室中封鎖", + "@banFromChat": { + "type": "String", + "placeholders": {} + }, + "banned": "已被封鎖", + "@banned": { + "type": "String", + "placeholders": {} + }, + "bannedUser": "{username} 封鎖了 {targetName}", + "@bannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "blockDevice": "封鎖裝置", + "@blockDevice": { + "type": "String", + "placeholders": {} + }, + "blocked": "已封鎖", + "@blocked": { + "type": "String", + "placeholders": {} + }, + "cancel": "取消", + "@cancel": { + "type": "String", + "placeholders": {} + }, + "changeDeviceName": "變更裝置名稱", + "@changeDeviceName": { + "type": "String", + "placeholders": {} + }, + "changedTheChatAvatar": "{username} 變更了對話頭貼", + "@changedTheChatAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheChatPermissions": "{username} 變更了對話權限", + "@changedTheChatPermissions": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheDisplaynameTo": "{username} 變更了顯示名稱為:「{displayname}」", + "@changedTheDisplaynameTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "displayname": { + "type": "String" + } + } + }, + "changedTheGuestAccessRules": "{username} 變更了訪客訪問規則", + "@changedTheGuestAccessRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheGuestAccessRulesTo": "{username} 變更了訪客訪問規則為:{rules}", + "@changedTheGuestAccessRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheHistoryVisibility": "{username} 變更了歷史記錄觀察狀態", + "@changedTheHistoryVisibility": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheHistoryVisibilityTo": "{username} 變更了歷史紀錄觀察狀態到:{rules}", + "@changedTheHistoryVisibilityTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "rules": { + "type": "String" + } + } + }, + "changedTheJoinRules": "{username} 變更了加入的規則", + "@changedTheJoinRules": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheJoinRulesTo": "{username} 變更了加入的規則為:{joinRules}", + "@changedTheJoinRulesTo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "joinRules": { + "type": "String" + } + } + }, + "changedTheProfileAvatar": "{username} 變更了頭貼", + "@changedTheProfileAvatar": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomAliases": "{username} 變更了聊天室名", + "@changedTheRoomAliases": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changedTheRoomInvitationLink": "{username} 變更了邀請連結", + "@changedTheRoomInvitationLink": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "changePassword": "變更密碼", + "@changePassword": { + "type": "String", + "placeholders": {} + }, + "changeTheHomeserver": "變更主機位址", + "@changeTheHomeserver": { + "type": "String", + "placeholders": {} + }, + "changeTheme": "變更主題", + "@changeTheme": { + "type": "String", + "placeholders": {} + }, + "changeTheNameOfTheGroup": "變更了群組名稱", + "@changeTheNameOfTheGroup": { + "type": "String", + "placeholders": {} + }, + "channelCorruptedDecryptError": "加密已被破壞", + "@channelCorruptedDecryptError": { + "type": "String", + "placeholders": {} + }, + "chat": "聊天室", + "@chat": { + "type": "String", + "placeholders": {} + }, + "chatBackup": "備份聊天室", + "@chatBackup": { + "type": "String", + "placeholders": {} + }, + "chatDetails": "對話詳細", + "@chatDetails": { + "type": "String", + "placeholders": {} + }, + "chooseAStrongPassword": "輸入一個較強的密碼", + "@chooseAStrongPassword": { + "type": "String", + "placeholders": {} + }, + "close": "關閉", + "@close": { + "type": "String", + "placeholders": {} + }, + "compareEmojiMatch": "請對比這些表情", + "@compareEmojiMatch": { + "type": "String", + "placeholders": {} + }, + "compareNumbersMatch": "請對比這些數字", + "@compareNumbersMatch": { + "type": "String", + "placeholders": {} + }, + "configureChat": "設定聊天室", + "@configureChat": { + "type": "String", + "placeholders": {} + }, + "contactHasBeenInvitedToTheGroup": "聯絡人已被邀請至群組", + "@contactHasBeenInvitedToTheGroup": { + "type": "String", + "placeholders": {} + }, + "contentHasBeenReported": "此內容已被回報給伺服器管理員們", + "@contentHasBeenReported": { + "type": "String", + "placeholders": {} + }, + "copiedToClipboard": "已複製到剪貼簿", + "@copiedToClipboard": { + "type": "String", + "placeholders": {} + }, + "copy": "複製", + "@copy": { + "type": "String", + "placeholders": {} + }, + "copyToClipboard": "複製到剪貼簿", + "@copyToClipboard": { + "type": "String", + "placeholders": {} + }, + "couldNotDecryptMessage": "不能解密訊息:{error}", + "@couldNotDecryptMessage": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "countParticipants": "{count} 個參與者", + "@countParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "create": "建立", + "@create": { + "type": "String", + "placeholders": {} + }, + "createdTheChat": "💬 {username} 建立了聊天室", + "@createdTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "currentlyActive": "目前活躍", + "@currentlyActive": { + "type": "String", + "placeholders": {} + }, + "darkTheme": "夜間模式", + "@darkTheme": { + "type": "String", + "placeholders": {} + }, + "dateAndTimeOfDay": "{date} , {timeOfDay}", + "@dateAndTimeOfDay": { + "type": "String", + "placeholders": { + "date": { + "type": "String" + }, + "timeOfDay": { + "type": "String" + } + } + }, + "deactivateAccountWarning": "這將停用您的帳號。這個決定是不能挽回的!您確定嗎?", + "@deactivateAccountWarning": { + "type": "String", + "placeholders": {} + }, + "defaultPermissionLevel": "預設權限等級", + "@defaultPermissionLevel": { + "type": "String", + "placeholders": {} + }, + "delete": "刪除", + "@delete": { + "type": "String", + "placeholders": {} + }, + "deleteAccount": "刪除帳號", + "@deleteAccount": { + "type": "String", + "placeholders": {} + }, + "deleteMessage": "刪除訊息", + "@deleteMessage": { + "type": "String", + "placeholders": {} + }, + "devices": "裝置", + "@devices": { + "type": "String", + "placeholders": {} + }, + "directChats": "直接傳訊", + "@directChats": { + "type": "String", + "placeholders": {} + }, + "displaynameHasBeenChanged": "顯示名稱已被變更", + "@displaynameHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "downloadFile": "下載文件", + "@downloadFile": { + "type": "String", + "placeholders": {} + }, + "edit": "編輯", + "@edit": { + "type": "String", + "placeholders": {} + }, + "editBlockedServers": "編輯被封鎖的伺服器", + "@editBlockedServers": { + "type": "String", + "placeholders": {} + }, + "editDisplayname": "編輯顯示名稱", + "@editDisplayname": { + "type": "String", + "placeholders": {} + }, + "editRoomAvatar": "編輯聊天室頭貼", + "@editRoomAvatar": { + "type": "String", + "placeholders": {} + }, + "emoteExists": "表情已存在!", + "@emoteExists": { + "type": "String", + "placeholders": {} + }, + "emoteInvalid": "無效的表情快捷鍵!", + "@emoteInvalid": { + "type": "String", + "placeholders": {} + }, + "emoteShortcode": "表情快捷鍵", + "@emoteShortcode": { + "type": "String", + "placeholders": {} + }, + "emptyChat": "空的聊天室", + "@emptyChat": { + "type": "String", + "placeholders": {} + }, + "enableEmotesGlobally": "在全域啟用表情符號", + "@enableEmotesGlobally": { + "type": "String", + "placeholders": {} + }, + "enableEncryption": "啟用加密", + "@enableEncryption": { + "type": "String", + "placeholders": {} + }, + "enableEncryptionWarning": "您將不能再停用加密,確定嗎?", + "@enableEncryptionWarning": { + "type": "String", + "placeholders": {} + }, + "encrypted": "已加密的", + "@encrypted": { + "type": "String", + "placeholders": {} + }, + "encryption": "加密", + "@encryption": { + "type": "String", + "placeholders": {} + }, + "encryptionNotEnabled": "加密未啟用", + "@encryptionNotEnabled": { + "type": "String", + "placeholders": {} + }, + "endedTheCall": "{senderName} 結束了通話", + "@endedTheCall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "enterAnEmailAddress": "輸入一個電子郵件位址", + "@enterAnEmailAddress": { + "type": "String", + "placeholders": {} + }, + "fontSize": "字體大小", + "@fontSize": { + "type": "String", + "placeholders": {} + }, + "forward": "轉發", + "@forward": { + "type": "String", + "placeholders": {} + }, + "fromJoining": "自加入起", + "@fromJoining": { + "type": "String", + "placeholders": {} + }, + "fromTheInvitation": "自邀請起", + "@fromTheInvitation": { + "type": "String", + "placeholders": {} + }, + "group": "群組", + "@group": { + "type": "String", + "placeholders": {} + }, + "groupIsPublic": "群組是公開的", + "@groupIsPublic": { + "type": "String", + "placeholders": {} + }, + "groups": "群組", + "@groups": { + "type": "String", + "placeholders": {} + }, + "groupWith": "名稱為 {displayname} 的群組", + "@groupWith": { + "type": "String", + "placeholders": { + "displayname": { + "type": "String" + } + } + }, + "guestsAreForbidden": "訪客已被禁止", + "@guestsAreForbidden": { + "type": "String", + "placeholders": {} + }, + "guestsCanJoin": "訪客可以加入", + "@guestsCanJoin": { + "type": "String", + "placeholders": {} + }, + "hasWithdrawnTheInvitationFor": "{username} 收回了對 {targetName} 的邀請", + "@hasWithdrawnTheInvitationFor": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "help": "幫助", + "@help": { + "type": "String", + "placeholders": {} + }, + "hideUnknownEvents": "隱藏未知事件", + "@hideUnknownEvents": { + "type": "String", + "placeholders": {} + }, + "ignore": "無視", + "@ignore": { + "type": "String", + "placeholders": {} + }, + "ignoredUsers": "已無視的使用者", + "@ignoredUsers": { + "type": "String", + "placeholders": {} + }, + "iHaveClickedOnLink": "我已經點擊了網址", + "@iHaveClickedOnLink": { + "type": "String", + "placeholders": {} + }, + "incorrectPassphraseOrKey": "錯誤的密碼短語或恢復金鑰", + "@incorrectPassphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "inviteContact": "邀請聯絡人", + "@inviteContact": { + "type": "String", + "placeholders": {} + }, + "inviteContactToGroup": "邀請聯絡人到 {groupName}", + "@inviteContactToGroup": { + "type": "String", + "placeholders": { + "groupName": { + "type": "String" + } + } + }, + "invited": "已邀請", + "@invited": { + "type": "String", + "placeholders": {} + }, + "invitedUser": "📩 {username} 邀請了 {targetName}", + "@invitedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "invitedUsersOnly": "只有被邀請的使用者", + "@invitedUsersOnly": { + "type": "String", + "placeholders": {} + }, + "inviteText": "{username} 邀請您使用 FluffyChat\n1. 安裝 FluffyChat:https://fluffychat.im\n2. 登入或註冊\n3. 打開該邀請網址:\n{link}", + "@inviteText": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "link": { + "type": "String" + } + } + }, + "isTyping": "正在輸入...…", + "@isTyping": { + "type": "String", + "placeholders": {} + }, + "joinedTheChat": "👋 {username} 加入了聊天室", + "@joinedTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "joinRoom": "加入聊天室", + "@joinRoom": { + "type": "String", + "placeholders": {} + }, + "kicked": "👞 {username} 踢了 {targetName}", + "@kicked": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickedAndBanned": "🙅 {username} 踢了 {targetName} 並將其封鎖", + "@kickedAndBanned": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "kickFromChat": "從聊天室踢出", + "@kickFromChat": { + "type": "String", + "placeholders": {} + }, + "lastActiveAgo": "最後活動時間:{localizedTimeShort}", + "@lastActiveAgo": { + "type": "String", + "placeholders": { + "localizedTimeShort": { + "type": "String" + } + } + }, + "leave": "離開", + "@leave": { + "type": "String", + "placeholders": {} + }, + "leftTheChat": "離開了聊天室", + "@leftTheChat": { + "type": "String", + "placeholders": {} + }, + "lightTheme": "日間模式", + "@lightTheme": { + "type": "String", + "placeholders": {} + }, + "loadCountMoreParticipants": "載入 {count} 個更多的參與者", + "@loadCountMoreParticipants": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loadingPleaseWait": "載入中...... 請稍候。", + "@loadingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "loadMore": "載入更多...…", + "@loadMore": { + "type": "String", + "placeholders": {} + }, + "login": "登入", + "@login": { + "type": "String", + "placeholders": {} + }, + "logInTo": "登入 {homeserver}", + "@logInTo": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "logout": "登出", + "@logout": { + "type": "String", + "placeholders": {} + }, + "mention": "提及", + "@mention": { + "type": "String", + "placeholders": {} + }, + "messages": "訊息", + "@messages": { + "type": "String", + "placeholders": {} + }, + "moderator": "版主", + "@moderator": { + "type": "String", + "placeholders": {} + }, + "muteChat": "將該聊天室靜音", + "@muteChat": { + "type": "String", + "placeholders": {} + }, + "newChat": "新聊天", + "@newChat": { + "type": "String", + "placeholders": {} + }, + "newMessageInFluffyChat": "💬 來自 FluffyChat 的新訊息", + "@newMessageInFluffyChat": { + "type": "String", + "placeholders": {} + }, + "newVerificationRequest": "新的驗證請求!", + "@newVerificationRequest": { + "type": "String", + "placeholders": {} + }, + "next": "下一個", + "@next": { + "type": "String", + "placeholders": {} + }, + "no": "否", + "@no": { + "type": "String", + "placeholders": {} + }, + "noConnectionToTheServer": "無法連接到伺服器", + "@noConnectionToTheServer": { + "type": "String", + "placeholders": {} + }, + "noEmotesFound": "表情符號不存在。😕", + "@noEmotesFound": { + "type": "String", + "placeholders": {} + }, + "noEncryptionForPublicRooms": "您只能在這個聊天室不再被允許公開訪問後,才能啟用加密。", + "@noEncryptionForPublicRooms": { + "type": "String", + "placeholders": {} + }, + "noGoogleServicesWarning": "未能在你的裝置找到 Firebase Cloud Messaging(FCM). 如果想要收到通知消息的推送,我們建議安裝 ntfy。在有 ntfy 或其他 Unified Push 應用,便能在資料安全的情況下收到通知的推送。你可以在 Play store 或 F-Droid 下載並安裝 ntfy。", + "@noGoogleServicesWarning": { + "type": "String", + "placeholders": {} + }, + "noPasswordRecoveryDescription": "您尚未新增恢復密碼的方法。", + "@noPasswordRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "noPermission": "沒有權限", + "@noPermission": { + "type": "String", + "placeholders": {} + }, + "noRoomsFound": "找不到聊天室...…", + "@noRoomsFound": { + "type": "String", + "placeholders": {} + }, + "notifications": "通知", + "@notifications": { + "type": "String", + "placeholders": {} + }, + "numUsersTyping": "{count} 個人正在輸入...…", + "@numUsersTyping": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "ok": "OK", + "@ok": { + "type": "String", + "placeholders": {} + }, + "onlineKeyBackupEnabled": "線上金鑰備份已啟用", + "@onlineKeyBackupEnabled": { + "type": "String", + "placeholders": {} + }, + "oopsSomethingWentWrong": "哎呀!出了一點差錯...…", + "@oopsSomethingWentWrong": { + "type": "String", + "placeholders": {} + }, + "openAppToReadMessages": "打開應用程式以讀取訊息", + "@openAppToReadMessages": { + "type": "String", + "placeholders": {} + }, + "openCamera": "開啟相機", + "@openCamera": { + "type": "String", + "placeholders": {} + }, + "participant": "參與者", + "@participant": { + "type": "String", + "placeholders": {} + }, + "passphraseOrKey": "密碼短語或恢復金鑰", + "@passphraseOrKey": { + "type": "String", + "placeholders": {} + }, + "password": "密碼", + "@password": { + "type": "String", + "placeholders": {} + }, + "passwordForgotten": "忘記密碼", + "@passwordForgotten": { + "type": "String", + "placeholders": {} + }, + "passwordHasBeenChanged": "密碼已被變更", + "@passwordHasBeenChanged": { + "type": "String", + "placeholders": {} + }, + "passwordRecovery": "恢復密碼", + "@passwordRecovery": { + "type": "String", + "placeholders": {} + }, + "pin": "釘選", + "@pin": { + "type": "String", + "placeholders": {} + }, + "pleaseChooseAPasscode": "請選擇一個密碼", + "@pleaseChooseAPasscode": { + "type": "String", + "placeholders": {} + }, + "pleaseClickOnLink": "請點擊電子郵件中的網址,然後繼續。", + "@pleaseClickOnLink": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourPassword": "請輸入您的密碼", + "@pleaseEnterYourPassword": { + "type": "String", + "placeholders": {} + }, + "pleaseEnterYourUsername": "請輸入您的使用者名稱", + "@pleaseEnterYourUsername": { + "type": "String", + "placeholders": {} + }, + "pleaseFollowInstructionsOnWeb": "請按照網站上的說明進行操作,然後點擊下一步。", + "@pleaseFollowInstructionsOnWeb": { + "type": "String", + "placeholders": {} + }, + "privacy": "隱私", + "@privacy": { + "type": "String", + "placeholders": {} + }, + "publicRooms": "公開的聊天室", + "@publicRooms": { + "type": "String", + "placeholders": {} + }, + "reason": "原因", + "@reason": { + "type": "String", + "placeholders": {} + }, + "redactedAnEvent": "{username} 編輯了一個事件", + "@redactedAnEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "redactMessage": "重新編輯訊息", + "@redactMessage": { + "type": "String", + "placeholders": {} + }, + "reject": "拒絕", + "@reject": { + "type": "String", + "placeholders": {} + }, + "rejectedTheInvitation": "{username} 拒絕了邀請", + "@rejectedTheInvitation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "remove": "移除", + "@remove": { + "type": "String", + "placeholders": {} + }, + "removeAllOtherDevices": "移除所有其他裝置", + "@removeAllOtherDevices": { + "type": "String", + "placeholders": {} + }, + "unbanFromChat": "解封聊天室", + "@unbanFromChat": { + "type": "String", + "placeholders": {} + }, + "replaceRoomWithNewerVersion": "用較新的版本取代聊天室", + "@replaceRoomWithNewerVersion": { + "type": "String", + "placeholders": {} + }, + "reply": "回覆", + "@reply": { + "type": "String", + "placeholders": {} + }, + "reportMessage": "檢舉訊息", + "@reportMessage": { + "type": "String", + "placeholders": {} + }, + "roomHasBeenUpgraded": "聊天室已更新", + "@roomHasBeenUpgraded": { + "type": "String", + "placeholders": {} + }, + "search": "搜尋", + "@search": { + "type": "String", + "placeholders": {} + }, + "security": "安全", + "@security": { + "type": "String", + "placeholders": {} + }, + "send": "傳送", + "@send": { + "type": "String", + "placeholders": {} + }, + "sendAMessage": "傳送訊息", + "@sendAMessage": { + "type": "String", + "placeholders": {} + }, + "sendAudio": "傳送音訊", + "@sendAudio": { + "type": "String", + "placeholders": {} + }, + "sendFile": "傳送文件", + "@sendFile": { + "type": "String", + "placeholders": {} + }, + "sendImage": "傳送圖片", + "@sendImage": { + "type": "String", + "placeholders": {} + }, + "sendMessages": "傳送訊息", + "@sendMessages": { + "type": "String", + "placeholders": {} + }, + "sendVideo": "傳送影片", + "@sendVideo": { + "type": "String", + "placeholders": {} + }, + "sentAFile": "{username} 傳送了一個文件", + "@sentAFile": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAnAudio": "🎤{username} 傳送了一個音訊", + "@sentAnAudio": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAPicture": "🖼️{username} 傳送了一張圖片", + "@sentAPicture": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentASticker": "😊{username} 傳送了貼圖", + "@sentASticker": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentAVideo": "🎥{username} 傳送了影片", + "@sentAVideo": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "sentCallInformations": "{senderName} 傳送了通話資訊", + "@sentCallInformations": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "setStatus": "設定狀態", + "@setStatus": { + "type": "String", + "placeholders": {} + }, + "settings": "設定", + "@settings": { + "type": "String", + "placeholders": {} + }, + "share": "分享", + "@share": { + "type": "String", + "placeholders": {} + }, + "sharedTheLocation": "{username} 分享了位置", + "@sharedTheLocation": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "skip": "跳過", + "@skip": { + "type": "String", + "placeholders": {} + }, + "sourceCode": "原始碼", + "@sourceCode": { + "type": "String", + "placeholders": {} + }, + "startedACall": "{senderName} 開始了通話", + "@startedACall": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "status": "狀態", + "@status": { + "type": "String", + "placeholders": {} + }, + "statusExampleMessage": "今天過得如何?", + "@statusExampleMessage": { + "type": "String", + "placeholders": {} + }, + "submit": "送出", + "@submit": { + "type": "String", + "placeholders": {} + }, + "systemTheme": "自動", + "@systemTheme": { + "type": "String", + "placeholders": {} + }, + "theyDontMatch": "它們不相符", + "@theyDontMatch": { + "type": "String", + "placeholders": {} + }, + "theyMatch": "它們相符", + "@theyMatch": { + "type": "String", + "placeholders": {} + }, + "tooManyRequestsWarning": "太多請求了。請稍候再試!", + "@tooManyRequestsWarning": { + "type": "String", + "placeholders": {} + }, + "tryToSendAgain": "再次嘗試傳送", + "@tryToSendAgain": { + "type": "String", + "placeholders": {} + }, + "unbannedUser": "{username} 解除封鎖了 {targetName}", + "@unbannedUser": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "targetName": { + "type": "String" + } + } + }, + "unblockDevice": "解除鎖定裝置", + "@unblockDevice": { + "type": "String", + "placeholders": {} + }, + "unknownDevice": "未知裝置", + "@unknownDevice": { + "type": "String", + "placeholders": {} + }, + "unknownEncryptionAlgorithm": "未知的加密演算法", + "@unknownEncryptionAlgorithm": { + "type": "String", + "placeholders": {} + }, + "unknownEvent": "未知事件「{type}」", + "@unknownEvent": { + "type": "String", + "placeholders": { + "type": { + "type": "String" + } + } + }, + "unmuteChat": "取消靜音聊天室", + "@unmuteChat": { + "type": "String", + "placeholders": {} + }, + "unpin": "取消釘選", + "@unpin": { + "type": "String", + "placeholders": {} + }, + "userAndOthersAreTyping": "{username} 和其他 {count} 個人正在輸入...…", + "@userAndOthersAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "count": { + "type": "int" + } + } + }, + "userAndUserAreTyping": "{username} 和 {username2} 正在輸入...…", + "@userAndUserAreTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "username2": { + "type": "String" + } + } + }, + "userIsTyping": "{username} 正在輸入...…", + "@userIsTyping": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userLeftTheChat": "{username} 離開了聊天室", + "@userLeftTheChat": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "userSentUnknownEvent": "{username} 傳送了一個 {type} 事件", + "@userSentUnknownEvent": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "type": { + "type": "String" + } + } + }, + "verified": "已驗證", + "@verified": { + "type": "String", + "placeholders": {} + }, + "verifyStart": "開始驗證", + "@verifyStart": { + "type": "String", + "placeholders": {} + }, + "verifySuccess": "您成功驗證了!", + "@verifySuccess": { + "type": "String", + "placeholders": {} + }, + "verifyTitle": "正在驗證其他帳號", + "@verifyTitle": { + "type": "String", + "placeholders": {} + }, + "visibilityOfTheChatHistory": "聊天室記錄的可見性", + "@visibilityOfTheChatHistory": { + "type": "String", + "placeholders": {} + }, + "visibleForAllParticipants": "對所有參與者可見", + "@visibleForAllParticipants": { + "type": "String", + "placeholders": {} + }, + "visibleForEveryone": "對所有人可見", + "@visibleForEveryone": { + "type": "String", + "placeholders": {} + }, + "voiceMessage": "語音訊息", + "@voiceMessage": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerAcceptRequest": "正在等待夥伴接受請求...…", + "@waitingPartnerAcceptRequest": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerEmoji": "正在等待夥伴接受表情符號...…", + "@waitingPartnerEmoji": { + "type": "String", + "placeholders": {} + }, + "waitingPartnerNumbers": "正在等待夥伴接受數字...…", + "@waitingPartnerNumbers": { + "type": "String", + "placeholders": {} + }, + "warning": "警告!", + "@warning": { + "type": "String", + "placeholders": {} + }, + "weSentYouAnEmail": "我們向您傳送了一封電子郵件", + "@weSentYouAnEmail": { + "type": "String", + "placeholders": {} + }, + "whoCanPerformWhichAction": "誰可以執行這個動作", + "@whoCanPerformWhichAction": { + "type": "String", + "placeholders": {} + }, + "whoIsAllowedToJoinThisGroup": "誰可以加入這個群組", + "@whoIsAllowedToJoinThisGroup": { + "type": "String", + "placeholders": {} + }, + "whyDoYouWantToReportThis": "您檢舉的原因是什麼?", + "@whyDoYouWantToReportThis": { + "type": "String", + "placeholders": {} + }, + "withTheseAddressesRecoveryDescription": "有了這些位址,您就可以恢復密碼。", + "@withTheseAddressesRecoveryDescription": { + "type": "String", + "placeholders": {} + }, + "writeAMessage": "輸入訊息...…", + "@writeAMessage": { + "type": "String", + "placeholders": {} + }, + "yes": "是", + "@yes": { + "type": "String", + "placeholders": {} + }, + "you": "您", + "@you": { + "type": "String", + "placeholders": {} + }, + "youAreNoLongerParticipatingInThisChat": "您不再參與這個聊天室了", + "@youAreNoLongerParticipatingInThisChat": { + "type": "String", + "placeholders": {} + }, + "youHaveBeenBannedFromThisChat": "您已經被這個聊天室封鎖", + "@youHaveBeenBannedFromThisChat": { + "type": "String", + "placeholders": {} + }, + "yourPublicKey": "您的公鑰", + "@yourPublicKey": { + "type": "String", + "placeholders": {} + }, + "chats": "聊天室", + "@chats": { + "type": "String", + "placeholders": {} + }, + "commandHint_ban": "在此聊天室封鎖該使用者", + "@commandHint_ban": { + "type": "String", + "description": "Usage hint for the command /ban" + }, + "commandHint_clearcache": "清除快取", + "@commandHint_clearcache": { + "type": "String", + "description": "Usage hint for the command /clearcache" + }, + "commandHint_create": "建立一個空的群聊\n使用 --no-encryption 選項來停用加密", + "@commandHint_create": { + "type": "String", + "description": "Usage hint for the command /create" + }, + "commandHint_discardsession": "丟棄工作階段", + "@commandHint_discardsession": { + "type": "String", + "description": "Usage hint for the command /discardsession" + }, + "commandHint_dm": "啟動一對一聊天室\n使用 --no-encryption 選項來停用加密", + "@commandHint_dm": { + "type": "String", + "description": "Usage hint for the command /dm" + }, + "commandHint_invite": "邀請該使用者加入此聊天室", + "@commandHint_invite": { + "type": "String", + "description": "Usage hint for the command /invite" + }, + "commandHint_join": "加入此聊天室", + "@commandHint_join": { + "type": "String", + "description": "Usage hint for the command /join" + }, + "commandHint_kick": "將這個使用者移出此聊天室", + "@commandHint_kick": { + "type": "String", + "description": "Usage hint for the command /kick" + }, + "commandHint_leave": "退出此聊天室", + "@commandHint_leave": { + "type": "String", + "description": "Usage hint for the command /leave" + }, + "commandHint_myroomnick": "設定您的聊天室暱稱", + "@commandHint_myroomnick": { + "type": "String", + "description": "Usage hint for the command /myroomnick" + }, + "editRoomAliases": "編輯聊天室名", + "@editRoomAliases": { + "type": "String", + "placeholders": {} + }, + "roomVersion": "聊天室的版本", + "@roomVersion": { + "type": "String", + "placeholders": {} + }, + "addToSpace": "加入空間", + "cantOpenUri": "無法打開 URI {uri}", + "@cantOpenUri": { + "type": "String", + "placeholders": { + "uri": { + "type": "String" + } + } + }, + "repeatPassword": "再次輸入密碼", + "commandHint_myroomavatar": "設定您的聊天室頭貼(通過 mxc-uri)", + "@commandHint_myroomavatar": { + "type": "String", + "description": "Usage hint for the command /myroomavatar" + }, + "commandHint_unban": "在此聊天室解除封鎖該使用者", + "@commandHint_unban": { + "type": "String", + "description": "Usage hint for the command /unban" + }, + "autoplayImages": "自動播放動態貼圖和表情", + "@autoplayImages": { + "type": "String", + "placeholder": {} + }, + "sendOnEnter": "按 Enter 鍵傳送", + "changeYourAvatar": "更改您的大頭貼", + "@changeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "clearArchive": "清除存檔", + "hugContent": "{senderName} 擁抱您", + "@hugContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_cuddle": "傳送一個摟抱表情", + "supposedMxid": "此處應爲 {mxid}", + "@supposedMxid": { + "type": "String", + "placeholders": { + "mxid": { + "type": "String" + } + } + }, + "invalidServerName": "伺服器名稱錯誤", + "importFromZipFile": "從 .zip 檔案匯入", + "exportEmotePack": "將表情包匯出成 .zip 檔案", + "commandInvalid": "命令無效", + "@commandInvalid": { + "type": "String" + }, + "commandMissing": "{command} 不是正確的命令。", + "@commandMissing": { + "type": "String", + "placeholders": { + "command": { + "type": "String" + } + }, + "description": "State that {command} is not a valid /command." + }, + "googlyEyesContent": "{senderName} 向您傳送了瞪眼表情", + "@googlyEyesContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "sendTypingNotifications": "傳送「輸入中」通知", + "importEmojis": "匯入表情包", + "confirmMatrixId": "如需刪除你的帳戶,請確認你的 Matrix ID。", + "notAnImage": "不是圖片檔案。", + "cuddleContent": "{senderName} 摟抱您", + "@cuddleContent": { + "type": "String", + "placeholders": { + "senderName": { + "type": "String" + } + } + }, + "commandHint_hug": "傳送一個擁抱表情", + "replace": "取代", + "commandHint_googly": "傳送一些瞪眼表情", + "importNow": "立即匯入", + "blockListDescription": "你可以封鎖打擾你的使用者。你不會再收到任何從已封鎖使用者發來的訊息或聊天室邀請。", + "blockedUsers": "已封鎖的使用者", + "block": "封鎖", + "discover": "發現", + "sender": "傳送者", + "blockUsername": "無視使用者名稱", + "noBackupWarning": "警告!如果不啟用聊天室備份,您將失去對加密訊息的訪問。強烈建議在登出前先啟用聊天室備份。", + "addChatOrSubSpace": "新增聊天室或子空間", + "thisDevice": "這個裝置:", + "commandHint_markasdm": "將給定的 Matrix ID 標示為直接訊息房間", + "commandHint_html": "傳送 HTML 格式的文字", + "@commandHint_html": { + "type": "String", + "description": "Usage hint for the command /html" + }, + "commandHint_send": "傳送文字", + "@commandHint_send": { + "type": "String", + "description": "Usage hint for the command /send" + }, + "emoteKeyboardNoRecents": "最近使用的表情將顯示在這裡...", + "@emoteKeyboardNoRecents": { + "type": "String", + "placeholders": {} + }, + "noChatDescriptionYet": "尚未建立聊天室描述。", + "optionalRedactReason": "(非必填)收回此訊息的原因...", + "dehydrateWarning": "此操作不能反悔。請確保安全地存儲備份文件。", + "hydrate": "從備份文件恢復", + "locationDisabledNotice": "位置服務被停用。請啟用它們以能夠分享您的位置。", + "@locationDisabledNotice": { + "type": "String", + "placeholders": {} + }, + "noMatrixServer": "{server1} 不是 Matrix 服務器,改用 {server2} 嗎?", + "@noMatrixServer": { + "type": "String", + "placeholders": { + "server1": { + "type": "String" + }, + "server2": { + "type": "String" + } + } + }, + "addToBundle": "新增到套組", + "bundleName": "套組名稱", + "pleaseEnterYourPin": "請輸入您的密碼", + "@pleaseEnterYourPin": { + "type": "String", + "placeholders": {} + }, + "redactedByBecause": "由 {username} 編輯,原因:「{reason}」", + "@redactedByBecause": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + }, + "reason": { + "type": "String" + } + } + }, + "saveFile": "儲存檔案", + "@saveFile": { + "type": "String", + "placeholders": {} + }, + "hasKnocked": "🚪 {user} 敲門了", + "@hasKnocked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "noOtherDevicesFound": "未找到其他裝置", + "noUsersFoundWithQuery": "很遺憾,找不到與「{query}」相符的使用者。請檢查是否有打錯字。", + "@noUsersFoundWithQuery": { + "type": "String", + "placeholders": { + "query": { + "type": "String" + } + } + }, + "dehydrate": "匯出會話並清除裝置", + "reopenChat": "重新開啟聊天室", + "yourGlobalUserIdIs": "您的全域使用者ID是: ", + "youAcceptedTheInvitation": "👍 您接受了邀請", + "storeSecurlyOnThisDevice": "在此裝置上安全存儲", + "countFiles": "{count} 個文件", + "@countFiles": { + "placeholders": { + "count": { + "type": "int" + } + } + }, + "wrongPinEntered": "輸入的密碼錯誤! {seconds} 秒後再試一次......", + "@wrongPinEntered": { + "type": "String", + "placeholders": { + "seconds": { + "type": "int" + } + } + }, + "archiveRoomDescription": "聊天室將被移動到存檔中。其他使用者將能看到您已離開聊天室。", + "banUserDescription": "該使用者將被禁止進入聊天室,直到他們被解封之前都無法再次進入聊天室。", + "searchChatsRooms": "搜尋 #chats, @users...", + "sendReadReceipts": "傳送已讀回條", + "formattedMessagesDescription": "使用 markdown 顯示豐富的訊息內容,如粗體文字。", + "verifyOtherDevice": "🔐 驗證其他裝置", + "youInvitedUser": "📩 您邀請了 {user}", + "@youInvitedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "pinMessage": "釘選到房間", + "youKicked": "👞 您踢出了 {user}", + "@youKicked": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "users": "使用者", + "youRejectedTheInvitation": "您拒絕了邀請", + "youKickedAndBanned": "🙅 您踢出並封鎖了 {user}", + "@youKickedAndBanned": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "user": "使用者", + "custom": "自訂", + "setColorTheme": "設定主題顏色:", + "makeAdminDescription": "一旦您讓這個使用者成為管理員,您可能無法撤銷此操作,因為他們將擁有與您相同的權限。", + "createGroupAndInviteUsers": "建立群組並邀請使用者", + "groupCanBeFoundViaSearch": "可以透過搜尋找到群組", + "pleaseEnterYourCurrentPassword": "請輸入您當前的密碼", + "createGroup": "建立群組", + "shareLocation": "分享位置", + "@shareLocation": { + "type": "String", + "placeholders": {} + }, + "redactMessageDescription": "該訊息將對此對話中的所有參與者收回。這不能被反悔。", + "removeFromBundle": "從此套組中移除", + "jump": "跳轉", + "commandHint_unignore": "取消無視已提供的 Matrix ID", + "commandHint_markasgroup": "標示為群組", + "commandHint_me": "描述自己", + "@commandHint_me": { + "type": "String", + "description": "Usage hint for the command /me" + }, + "commandHint_plain": "傳送未格式化的文字", + "@commandHint_plain": { + "type": "String", + "description": "Usage hint for the command /plain" + }, + "commandHint_react": "以反應的形式傳送回覆", + "@commandHint_react": { + "type": "String", + "description": "Usage hint for the command /react" + }, + "createNewSpace": "新建空間", + "@createNewSpace": { + "type": "String", + "placeholders": {} + }, + "chatPermissions": "聊天室權限", + "customEmojisAndStickersBody": "新增或分享可在任何聊天室中使用的自訂表情符號或貼圖。", + "errorObtainingLocation": "取得位置錯誤:{error}", + "@errorObtainingLocation": { + "type": "String", + "placeholders": { + "error": { + "type": "String" + } + } + }, + "hideRedactedMessages": "隱藏被刪除的訊息", + "hideInvalidOrUnknownMessageFormats": "隱藏無效或未知的訊息格式", + "messagesStyle": "訊息樣式:", + "shareInviteLink": "分享邀請網址", + "scanQrCode": "掃描 QR 碼", + "oneClientLoggedOut": "您的一個客戶端已登出", + "addAccount": "新增帳號", + "editBundlesForAccount": "為此帳號編輯套組", + "openInMaps": "在地圖中打開", + "@openInMaps": { + "type": "String", + "placeholders": {} + }, + "or": "或", + "@or": { + "type": "String", + "placeholders": {} + }, + "passwordRecoverySettings": "恢復密碼設定", + "redactedBy": "由 {username} 編輯", + "@redactedBy": { + "type": "String", + "placeholders": { + "username": { + "type": "String" + } + } + }, + "spaceName": "空間名稱", + "@spaceName": { + "type": "String", + "placeholders": {} + }, + "synchronizingPleaseWait": "正在同步... 請稍候。", + "@synchronizingPleaseWait": { + "type": "String", + "placeholders": {} + }, + "messageInfo": "訊息資訊", + "removeFromSpace": "從空間中移除", + "emojis": "表情符號", + "unsupportedAndroidVersion": "不支持的Android版本", + "youJoinedTheChat": "您加入了聊天室", + "youBannedUser": "您封鎖了 {user}", + "@youBannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youHaveWithdrawnTheInvitationFor": "您已收回對 {user} 的邀請", + "@youHaveWithdrawnTheInvitationFor": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youInvitedBy": "📩 您被 {user} 邀請", + "@youInvitedBy": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "youUnbannedUser": "您解除封鎖了 {user}", + "@youUnbannedUser": { + "placeholders": { + "user": { + "type": "String" + } + } + }, + "newSpace": "新空間", + "doNotShowAgain": "不再顯示", + "encryptThisChat": "加密此聊天室", + "sorryThatsNotPossible": "抱歉......這是不可能的", + "invite": "邀請", + "removeDevicesDescription": "您將從這個裝置登出,並將不再能夠接收消息。", + "unbanUserDescription": "如果該使用者嘗試,他們將能夠再次進入聊天室。", + "kickUserDescription": "該使用者被踢出聊天室,但未被禁止。在公開聊天室中,該使用者可以隨時重新加入。", + "pushNotificationsNotAvailable": "推送通知不可用", + "learnMore": "了解更多", + "nothingFound": "什麼都沒找到......", + "databaseMigrationBody": "請稍候。這可能需要一點時間。", + "pleaseChooseAStrongPassword": "請選擇一個強密碼", + "passwordIsWrong": "您輸入的密碼錯誤", + "publicChatAddresses": "公開聊天室地址", + "leaveEmptyToClearStatus": "留空以清除您的狀態。", + "select": "選擇", + "files": "文件", + "sendTypingNotificationsDescription": "聊天室中的其他參與者可以看到您正在輸入新訊息。", + "verifyOtherDeviceDescription": "當您驗證另一個裝置時,這些裝置可以交換密鑰,提升您的整體安全性。💪 當您開始驗證時,一個彈出視窗將在兩個裝置上的應用程式中出現。在那裡,您將看到一系列的表情符號或數字,您需要相互比較。在開始驗證之前最好有兩個裝置在手邊。🤳", + "acceptedKeyVerification": "{sender} 接受了密鑰驗證", + "@acceptedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "completedKeyVerification": "{sender} 完成了密鑰驗證", + "@completedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "isReadyForKeyVerification": "{sender} 已準備好進行密鑰驗證", + "@isReadyForKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "thereAreCountUsersBlocked": "目前有 {count} 名使用者被封鎖。", + "@thereAreCountUsersBlocked": { + "type": "String", + "count": {} + }, + "appLockDescription": "未使用時以密碼鎖定應用程式", + "globalChatId": "全球聊天室 ID", + "accessAndVisibility": "訪問權限和可見性", + "accessAndVisibilityDescription": "誰被允許加入此聊天室以及如何發現聊天室。", + "calls": "通話", + "chatDescription": "聊天室描述", + "chatDescriptionHasBeenChanged": "聊天室描述已變更", + "tryAgain": "再試一次", + "setAsCanonicalAlias": "設為主要別名", + "@setAsCanonicalAlias": { + "type": "String", + "placeholders": {} + }, + "setChatDescription": "設定聊天室描述", + "groupName": "群組名稱", + "searchForUsers": "搜尋 @users...", + "inviteGroupChat": "📨 邀請群組聊天室", + "knocking": "敲門", + "sessionLostBody": "您的會話已丟失。請將此錯誤報告給開發人員,網址為 {url}。錯誤訊息為:{error}", + "@sessionLostBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "swipeRightToLeftToReply": "向右滑至左以回覆", + "hideRedactedMessagesBody": "如果有人收回一條訊息,該訊息將不再在聊天室中顯示。", + "link": "網址", + "obtainingLocation": "正在取得位置…", + "@obtainingLocation": { + "type": "String", + "placeholders": {} + }, + "oopsPushError": "哎呀!設定推送通知時不幸發生錯誤。", + "@oopsPushError": { + "type": "String", + "placeholders": {} + }, + "removeYourAvatar": "移除您的頭像", + "@removeYourAvatar": { + "type": "String", + "placeholders": {} + }, + "spaceIsPublic": "空間是公開的", + "@spaceIsPublic": { + "type": "String", + "placeholders": {} + }, + "reactedWith": "{sender} 以 {reaction} 回應", + "@reactedWith": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "reaction": { + "type": "String" + } + } + }, + "confirmEventUnpin": "您確定要永久取消釘選該事件嗎?", + "noOneCanJoin": "沒有人可以加入", + "storeInAndroidKeystore": "存儲在 Android KeyStore", + "storeInAppleKeyChain": "存儲在 Apple KeyChain", + "wasDirectChatDisplayName": "空的聊天室(原名稱為 {oldDisplayName} )", + "@wasDirectChatDisplayName": { + "type": "String", + "placeholders": { + "oldDisplayName": { + "type": "String" + } + } + }, + "disableEncryptionWarning": "出於安全原因,您不能在之前已加密的聊天室中停用加密。", + "fileIsTooBigForServer": "無法發送!該伺服器僅支援最大到 {max} 的附件。", + "fileHasBeenSavedAt": "文件已保存在 {path}", + "@fileHasBeenSavedAt": { + "type": "String", + "placeholders": { + "path": { + "type": "String" + } + } + }, + "jumpToLastReadMessage": "跳至最後讀取的訊息", + "openLinkInBrowser": "在瀏覽器中開啟連結", + "reportErrorDescription": "😭 哦不。出了些問題。如果您願意,可以將此錯誤報告給開發者。", + "readUpToHere": "讀到這裡", + "report": "報告", + "pleaseEnterANumber": "請輸入大於 0 的數字", + "roomUpgradeDescription": "將使用新版本聊天室來重新建立聊天室。所有本聊天室的參與者都會收到通知,他們都需要換到新的聊天室裡。若您想知道有關新版本的更多資訊,請前往 https://spec.matrix.org/latest/rooms/", + "wrongRecoveryKey": "抱歉......這似乎不是正確的恢復密鑰。", + "passwordsDoNotMatch": "密碼不匹配", + "publicSpaces": "公共空間", + "initAppError": "初始化應用時發生錯誤", + "canceledKeyVerification": "{sender} 取消了密鑰驗證", + "@canceledKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "startedKeyVerification": "{sender} 開始了密鑰驗證", + "@startedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "incomingMessages": "收到的訊息", + "databaseMigrationTitle": "資料庫已最佳化", + "restoreSessionBody": "應用程式現在嘗試從備份中恢復您的會話。請將此錯誤報告給開發人員,網址為 {url}。錯誤訊息為:{error}", + "@restoreSessionBody": { + "type": "String", + "placeholders": { + "url": { + "type": "String" + }, + "error": { + "type": "String" + } + } + }, + "stickers": "貼圖", + "joinSpace": "加入空間", + "noMoreChatsFound": "沒有更多聊天室了...", + "commandHint_op": "設定給定使用者的權限等級(預設:50)", + "@commandHint_op": { + "type": "String", + "description": "Usage hint for the command /op" + }, + "customEmojisAndStickers": "自訂表情符號和貼圖", + "locationPermissionDeniedNotice": "位置權限被拒絕。請授予它們以能夠分享您的位置。", + "@locationPermissionDeniedNotice": { + "type": "String", + "placeholders": {} + }, + "sendAsText": "以文字傳送", + "@sendAsText": { + "type": "String" + }, + "unverified": "尚未驗證", + "time": "時間", + "chatCanBeDiscoveredViaSearchOnServer": "可以透過在 {server} 上的搜尋發現聊天室", + "@chatCanBeDiscoveredViaSearchOnServer": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "commandHint_sendraw": "傳送原始 json", + "newPassword": "新密碼", + "createNewAddress": "建立新地址", + "searchIn": "在聊天室「{chat}」中搜尋......", + "@searchIn": { + "type": "String", + "placeholders": { + "chat": { + "type": "String" + } + } + }, + "searchMore": "搜尋更多......", + "gallery": "畫廊", + "sendReadReceiptsDescription": "聊天室中的其他參與者可以看到您已讀取一條訊息。", + "formattedMessages": "格式化訊息", + "goToSpace": "前往空間:{space}", + "@goToSpace": { + "type": "String", + "space": {} + }, + "markAsUnread": "標示為未讀", + "noDatabaseEncryption": "此平台不支援資料庫加密", + "openGallery": "開啟畫廊", + "markAsRead": "標示為已讀", + "reportUser": "舉報使用者", + "unsupportedAndroidVersionLong": "此功能需要較新的 Android 版本。請檢查更新或 Lineage OS 支持。", + "usersMustKnock": "使用者必須敲門", + "knock": "敲門", + "whyIsThisMessageEncrypted": "為什麼這條訊息無法讀取?", + "noKeyForThisMessage": "如果訊息是在您登入此裝置之前傳送的,就可能會發生這種情況。\n\n也有可能是傳送者已經封鎖了您的裝置,或者網絡連接出了問題。\n\n如果您能在另一個會話中讀取該訊息,那麼您可以從中轉移訊息!前往設定 > 裝置,並確保您的裝置已相互驗證。當您下次打開房間且兩個會話都在前景時,密鑰將自動傳輸。\n\n不想在登出或切換裝置時丟失密鑰?請確保您已在設定中啟用了聊天室備份。", + "newSpaceDescription": "空間允許您整合您的聊天室並建立私人或公開社群。", + "invalidInput": "無效的輸入!", + "verifyOtherUser": "🔐 驗證其他使用者", + "verifyOtherUserDescription": "如果您驗證了另一個使用者,您可以確定您真正與誰通信。💪\n\n當您開始驗證時,您和另一個使用者將在應用程式中看到一個彈出視窗。在那裡,您將看到一系列的表情符號或數字,您需要相互比較。\n\n最好的方式是見面或開始視訊通話。👭", + "requestedKeyVerification": "{sender} 請求了密鑰驗證", + "@requestedKeyVerification": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + } + } + }, + "commandHint_ignore": "無視已提供的 Matrix ID", + "unread": "未讀", + "space": "空間", + "unreadChatsInApp": "{appname}:{unread} 未讀聊天室", + "@unreadChatsInApp": { + "type": "String", + "placeholders": { + "appname": { + "type": "String" + }, + "unread": { + "type": "String" + } + } + }, + "adminLevel": "{level} - 管理員", + "@adminLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "userLevel": "{level} - 用戶", + "@userLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "moderatorLevel": "{level} - 管理員", + "@moderatorLevel": { + "type": "String", + "placeholders": { + "level": { + "type": "int" + } + } + }, + "doesNotSeemToBeAValidHomeserver": "似乎不是能匹配的歸屬伺服器。伺服器域名打錯了嗎?", + "noticeChatBackupDeviceVerification": "注意:當您將所有裝置連線到聊天備份時,它們會自動驗證。", + "sendCanceled": "傳送取消", + "changelog": "變更日誌", + "changeTheCanonicalRoomAlias": "變更公開聊天室的主要地址", + "sendImages": "傳送{count}張圖片", + "@sendImages": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "loginWithMatrixId": "以Matrix-ID登入", + "inviteOtherUsers": "邀請其他用戶進入本聊天", + "sendRoomNotifications": "傳送一條 @room 群提醒", + "updateInstalled": "🎉已成功安裝{version}版本!", + "@updateInstalled": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "oneOfYourDevicesIsNotVerified": "你的其中一個裝置尚未驗證", + "chatPermissionsDescription": "定義此聊天中某些操作需要哪個權限等級。 權限等級0、50和100通常代表使用者、版主和管理員,但任何分級都是可能的。", + "changeGeneralChatSettings": "變更一般聊天設定", + "manageAccount": "帳號管理", + "changeTheChatPermissions": "變更聊天室權限", + "changeTheVisibilityOfChatHistory": "變更過往聊天記錄可見度", + "opacity": "不透明度:", + "aboutHomeserver": "關於{homeserver}", + "@aboutHomeserver": { + "type": "String", + "placeholders": { + "homeserver": { + "type": "String" + } + } + }, + "noChatsFoundHere": "還沒開始聊天嗎?點擊下方按鈕找個人聊聊吧⤵", + "changeTheDescriptionOfTheGroup": "變更聊天室說明", + "calculatingFileSize": "正在計算檔案大小…", + "setWallpaper": "設定背景樣式", + "noContactInformationProvided": "伺服器沒有提供任何有效的聯絡資訊", + "contactServerAdmin": "聯繫伺服器管理員", + "contactServerSecurity": "聯繫伺服器安管", + "continueText": "繼續", + "blur": "模糊:", + "synchronizingPleaseWaitCounter": " 同步中… ({percentage}%)", + "@synchronizingPleaseWaitCounter": { + "type": "String", + "placeholders": { + "percentage": { + "type": "String" + } + } + }, + "contentNotificationSettings": "內容通知設定", + "generalNotificationSettings": "常規通知設定", + "roomNotificationSettings": "聊天室通知設定", + "userSpecificNotificationSettings": "用戶特定通知設定", + "otherNotificationSettings": "其他通知設定", + "notificationRuleContainsUserName": "包含用户名稱", + "notificationRuleContainsUserNameDescription": "當訊息帶有用户名稱時通知用戶。", + "notificationRuleMaster": "靜音所有通知", + "notificationRuleMasterDescription": "覆蓋所有其他規則並禁止所有通知。", + "notificationRuleInviteForMe": "邀請我", + "notificationRuleSuppressNoticesDescription": "隱藏來自bot等的自動化消息。", + "notificationRuleSuppressNotices": "隱藏自動化消息", + "notificationRuleMemberEvent": "成員事件", + "notificationRuleMemberEventDescription": "隱藏成員事件的通知。", + "notificationRuleIsUserMention": "用户提及", + "notificationRuleInviteForMeDescription": "當用户被邀請到聊天室時,通知他們。", + "commandHint_roomupgrade": "升級此聊天室至指定版本", + "serverInformation": "伺服器資訊 :", + "name": "名稱", + "website": "網站", + "compress": "壓縮", + "newChatRequest": "📩 新的聊天邀請", + "enterNewChat": "進入新聊天室", + "version": "版本", + "unableToJoinChat": "無法加入聊天室。對話可能以被其他方結束。", + "appWantsToUseForLogin": "使用「{server} 」伺服器登入", + "@appWantsToUseForLogin": { + "type": "String", + "placeholders": { + "server": { + "type": "String" + } + } + }, + "italicText": "斜體", + "boldText": "粗體", + "strikeThrough": "刪除線", + "pleaseFillOut": "請填充", + "invalidUrl": "無效 url", + "appWantsToUseForLoginDescription": "你特此允許該應用程式和網站分享關於你的信息。", + "open": "打開", + "waitingForServer": "等待伺服器中...", + "previous": "上一個", + "otherPartyNotLoggedIn": "對方現未登入,未能接收訊息 !", + "supportPage": "幫助頁面", + "addLink": "插入連結", + "notificationRuleContainsDisplayName": "包含顯示名稱", + "notificationRuleRoomnotif": "聊天室通知", + "notificationRuleIsRoomMentionDescription": "當有聊天室提及時通知用户。", + "notificationRuleRoomOneToOneDescription": "在一對一聊天室中通知用户收到訊息。", + "notificationRuleServerAcl": "隱藏伺服器 ACL 事件", + "notificationRuleContainsDisplayNameDescription": "當訊息包含用户的顯示名稱時通知用户。", + "notificationRuleIsRoomMention": "聊天室提及", + "notificationRuleRoomnotifDescription": "當訊息包含 \"@room\" 時通知用户。", + "notificationRuleTombstone": "墓碑", + "notificationRuleCallDescription": "通知用户有來電。", + "notificationRuleEncryptedRoomOneToOne": "一對一加密聊天室", + "notificationRuleEncryptedRoomOneToOneDescription": "通知用户一對一加密聊天室的訊息。", + "notificationRuleRoomOneToOne": "一對一聊天室", + "notificationRuleMessage": "訊息", + "notificationRuleServerAclDescription": "隱藏伺服器 ACL 事件的通知。", + "notificationRuleMessageDescription": "通知用户一般訊息。", + "notificationRuleEncrypted": "已加密", + "notificationRuleEncryptedDescription": "在已加密房間內通知用户訊息。", + "notificationRuleJitsi": "Jitsi", + "notificationRuleJitsiDescription": "通知用户 Jitsi 小部件事件。", + "unknownPushRule": "未知推送規則 '{rule}'", + "@unknownPushRule": { + "type": "String", + "placeholders": { + "rule": { + "type": "String" + } + } + }, + "more": "更多", + "deletePushRuleCanNotBeUndone": "刪除此通知設定的操作無法復原。", + "shareKeysWith": "與哪些設備共享金鑰…", + "shareKeysWithDescription": "選擇應該信任的裝置,並允許它們在加密聊天中讀取您的訊息?", + "allDevices": "所有裝置", + "crossVerifiedDevices": "經交叉驗證的裝置", + "crossVerifiedDevicesIfEnabled": "交叉驗證裝置(如啟用)", + "recordAVideo": "錄製影像", + "takeAPhoto": "拍攝照片", + "optionalMessage": "(可選)訊息...", + "notSupportedOnThisDevice": "此裝置不受支援", + "notificationRuleTombstoneDescription": "通知用户有關房間解散的訊息。", + "notificationRuleReaction": "心情回應", + "notificationRuleReactionDescription": "關閉心情回應通知。", + "notificationRuleRoomServerAcl": "聊天室伺服器 ACL", + "notificationRuleRoomServerAclDescription": "關閉聊天室伺服器存取控制清單 (ACL) 的通知。", + "notificationRuleSuppressEdits": "隱藏編輯", + "notificationRuleSuppressEditsDescription": "隱藏已編輯訊息通知。", + "notificationRuleCall": "來電", + "verifiedDevicesOnly": "僅限已驗證的裝置", + "approve": "核准", + "youHaveKnocked": "您已請求加入", + "pleaseWaitUntilInvited": "直到聊天室裡有人邀請您前,請等候。", + "notificationRuleIsUserMentionDescription": "被@時通知他們。", + "countInvited": "已邀請{count}位", + "@countInvited": { + "type": "String", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@countReplies": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@versionWithNumber": { + "type": "String", + "placeholders": { + "version": { + "type": "String" + } + } + }, + "@countChats": { + "type": "String", + "placeholders": { + "chats": { + "type": "int" + } + } + }, + "@sentVoiceMessage": { + "type": "String", + "placeholders": { + "sender": { + "type": "String" + }, + "duration": { + "type": "String" + } + } + }, + "@mute": { + "description": "This should be a very short string because there is not much space in the button!" + }, + "@spaceMemberOfCanKnock": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + }, + "@chatSearchedUntil": { + "type": "String", + "placeholders": { + "time": { + "type": "String" + } + } + }, + "@countVotes": { + "type": "int", + "placeholders": { + "count": { + "type": "int" + } + } + }, + "@spaceMemberOf": { + "type": "String", + "placeholders": { + "spaces": { + "type": "String" + } + } + } +} \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 0000000..fbba296 --- /dev/null +++ b/lib/main.dart @@ -0,0 +1,180 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; +import 'dart:isolate'; +import 'dart:ui'; + +import 'package:collection/collection.dart'; +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/utils/client_manager.dart'; +import 'package:tatchat/utils/error_reporter.dart'; +import 'package:tatchat/utils/notification_background_handler.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/utils/start_push_foreground_service.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:flutter_vodozemac/flutter_vodozemac.dart' as vod; +import 'package:just_audio_media_kit/just_audio_media_kit.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:universal_html/universal_html.dart' as web; + +import 'config/setting_keys.dart'; +import 'utils/background_push.dart'; +import 'widgets/tatu_chat_app.dart'; + +ReceivePort? mainIsolateReceivePort; + +bool _vodozemacInitialized = false; + +bool isIntegrationTest = false; + +void main(List args) => runZonedGuarded(() async { + // Forward Flutter errors to global error reporter + FlutterError.onError = (details) => Zone.current.handleUncaughtError( + details.exception, + details.stack ?? StackTrace.current, + ); + + isIntegrationTest = args.singleOrNull == 'integration_test'; + if (PlatformInfos.isAndroid) { + final port = mainIsolateReceivePort = ReceivePort(); + IsolateNameServer.removePortNameMapping(AppConfig.mainIsolatePortName); + IsolateNameServer.registerPortWithName( + port.sendPort, + AppConfig.mainIsolatePortName, + ); + await waitForPushIsolateDone(); + } + + // Sanitize hash for OIDC: + if (kIsWeb) { + final hash = web.window.location.hash; + if (hash.isNotEmpty && !hash.startsWith('/')) { + web.window.location.hash = hash.replaceFirst('#', '#?'); + } + } + + // Our background push shared isolate accesses flutter-internal things very early in the startup proccess + // To make sure that the parts of flutter needed are started up already, we need to ensure that the + // widget bindings are initialized already. + WidgetsFlutterBinding.ensureInitialized(); + + final store = await AppSettings.init(); + Logs().i('Welcome to ${AppSettings.applicationName.value} <3'); + + kEnableMatrixSdkBenchmarks = AppSettings.benchmarksInLogs.value; + + if (!_vodozemacInitialized) { + await vod.init( + wasmPath: './assets/assets/vodozemac/${AppConfig.vodozemacVersion}/', + ); + _vodozemacInitialized = true; + } + + Logs().nativeColors = !PlatformInfos.isIOS; + + // If the app starts in detached mode, we assume that it is in + // background fetch mode for processing push notifications. This is + // currently only supported on Android. + if (PlatformInfos.isAndroid && + AppLifecycleState.detached == WidgetsBinding.instance.lifecycleState) { + await ForegroundServices.startService('background_push'); + + final clients = await ClientManager.getClients(store: store); + + // Do not send online presences when app is in background fetch mode. + for (final client in clients) { + client.backgroundSync = false; + client.syncPresence = PresenceType.offline; + } + + // In the background fetch mode we do not want to waste ressources with + // starting the Flutter engine but process incoming push notifications. + BackgroundPush.clientOnly(clients); + // To start the flutter engine afterwards we add an custom observer. + WidgetsBinding.instance.addObserver(AppStarter(clients, store)); + Logs().i( + '${AppSettings.applicationName.value} started in background-fetch mode. No GUI will be created unless the app is no longer detached.', + ); + return; + } + + final clients = await ClientManager.getClients(store: store); + + // Started in foreground mode. + Logs().i( + '${AppSettings.applicationName.value} started in foreground mode. Rendering GUI...', + ); + await startGui(clients, store); +}, ErrorReporter.onFlutterError); + +/// Fetch the pincode for the applock and start the flutter engine. +Future startGui(List clients, SharedPreferences store) async { + // Fetch the pin for the applock if existing for mobile applications. + String? pin; + var useBiometrics = false; + if (PlatformInfos.supportsAppLock) { + try { + pin = await const FlutterSecureStorage().read( + key: 'chat.fluffy.app_lock', + ); + useBiometrics = + (await const FlutterSecureStorage().read( + key: 'chat.fluffy.use_biometrics', + )) == + 'true'; + } catch (e, s) { + Logs().d('Unable to read PIN from Secure storage', e, s); + } + } + + if (PlatformInfos.isLinux || PlatformInfos.isWindows) { + JustAudioMediaKit.ensureInitialized(); + } + + // Preload first client + final firstClient = clients.firstOrNull; + await firstClient?.roomsLoading; + await firstClient?.accountDataLoading; + + runApp( + TatuChatApp( + clients: clients, + appLockSettings: (pincode: pin, useBiometrics: useBiometrics), + store: store, + ), + ); +} + +/// Watches the lifecycle changes to start the application when it +/// is no longer detached. +class AppStarter with WidgetsBindingObserver { + final List clients; + final SharedPreferences store; + bool guiStarted = false; + + AppStarter(this.clients, this.store); + + @override + void didChangeAppLifecycleState(AppLifecycleState state) { + if (guiStarted) return; + if (state == AppLifecycleState.detached) return; + + Logs().i( + '${AppSettings.applicationName.value} switches from the detached background-fetch mode to ${state.name} mode. Rendering GUI...', + ); + // Switching to foreground mode needs to reenable send online sync presence. + for (final client in clients) { + client.backgroundSync = true; + client.syncPresence = PresenceType.online; + } + startGui(clients, store); + // We must make sure that the GUI is only started once. + guiStarted = true; + } +} diff --git a/lib/pages/archive/archive.dart b/lib/pages/archive/archive.dart new file mode 100644 index 0000000..4f4da2d --- /dev/null +++ b/lib/pages/archive/archive.dart @@ -0,0 +1,75 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/archive/archive_view.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class Archive extends StatefulWidget { + const Archive({super.key}); + + @override + ArchiveController createState() => ArchiveController(); +} + +class ArchiveController extends State { + List archive = []; + + Future> getArchive(BuildContext context) async { + if (archive.isNotEmpty) return archive; + return archive = await Matrix.of(context).client.loadArchiveWithTimeline(); + } + + Future forgetRoomAction(int i) async { + await showFutureLoadingDialog( + context: context, + future: () async { + Logs().v('Forget room ${archive.last.room.getLocalizedDisplayname()}'); + await archive[i].room.forget(); + archive.removeAt(i); + }, + ); + setState(() {}); + } + + Future forgetAllAction() async { + final archive = this.archive; + if (archive.isEmpty) return; + if (await showOkCancelAlertDialog( + useRootNavigator: false, + context: context, + title: L10n.of(context).areYouSure, + okLabel: L10n.of(context).yes, + cancelLabel: L10n.of(context).cancel, + message: L10n.of(context).clearArchive, + ) != + OkCancelResult.ok) { + return; + } + if (!mounted) return; + await showFutureLoadingDialog( + context: context, + futureWithProgress: (onProgress) async { + final count = archive.length; + while (archive.isNotEmpty) { + onProgress(1 - (archive.length / count)); + Logs().v( + 'Forget room ${archive.last.room.getLocalizedDisplayname()}', + ); + await archive.last.room.forget(); + archive.removeLast(); + } + }, + ); + setState(() {}); + } + + @override + Widget build(BuildContext context) => ArchiveView(this); +} diff --git a/lib/pages/archive/archive_view.dart b/lib/pages/archive/archive_view.dart new file mode 100644 index 0000000..8386f82 --- /dev/null +++ b/lib/pages/archive/archive_view.dart @@ -0,0 +1,79 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/archive/archive.dart'; +import 'package:tatchat/pages/chat_list/chat_list_item.dart'; +import 'package:tatchat/widgets/layouts/max_width_body.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class ArchiveView extends StatelessWidget { + final ArchiveController controller; + + const ArchiveView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + return FutureBuilder>( + future: controller.getArchive(context), + builder: (BuildContext context, snapshot) => Scaffold( + appBar: AppBar( + leading: const Center(child: BackButton()), + title: Text(L10n.of(context).archive), + actions: [ + if (snapshot.data?.isNotEmpty ?? false) + Padding( + padding: const EdgeInsets.all(8.0), + child: TextButton.icon( + onPressed: controller.forgetAllAction, + label: Text(L10n.of(context).clearArchive), + icon: const Icon(Icons.cleaning_services_outlined), + ), + ), + ], + ), + body: MaxWidthBody( + withScrolling: false, + child: Builder( + builder: (BuildContext context) { + if (snapshot.hasError) { + return Center( + child: Text( + L10n.of(context).oopsSomethingWentWrong, + textAlign: TextAlign.center, + ), + ); + } + if (!snapshot.hasData) { + return const Center( + child: CircularProgressIndicator.adaptive(strokeWidth: 2), + ); + } else { + if (controller.archive.isEmpty) { + return const Center( + child: Icon(Icons.archive_outlined, size: 80), + ); + } + return ListView.builder( + itemCount: controller.archive.length, + itemBuilder: (BuildContext context, int i) => ChatListItem( + controller.archive[i].room, + onForget: () => controller.forgetRoomAction(i), + onTap: () => context.go( + '/rooms/archive/${controller.archive[i].room.id}', + extra: controller.archive[i].timeline, + ), + ), + ); + } + }, + ), + ), + ), + ); + } +} diff --git a/lib/pages/bootstrap/bootstrap_page.dart b/lib/pages/bootstrap/bootstrap_page.dart new file mode 100644 index 0000000..fd4f824 --- /dev/null +++ b/lib/pages/bootstrap/bootstrap_page.dart @@ -0,0 +1,96 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/bootstrap/view_model/bootstrap_view_model.dart'; +import 'package:tatchat/pages/bootstrap/widgets/new_passphrase_view.dart'; +import 'package:tatchat/pages/bootstrap/widgets/restore_bootstrap_view.dart'; +import 'package:tatchat/pages/bootstrap/widgets/store_recovery_key_view.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart'; +import 'package:tatchat/widgets/layouts/login_scaffold.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:tatchat/widgets/view_model_builder.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; + +class BootstrapPage extends StatelessWidget { + final bool reset; + const BootstrapPage({required this.reset, super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + return ViewModelBuilder( + create: () => + BootstrapViewModel(client: Matrix.of(context).client, reset: reset), + builder: (context, viewModel, _) { + final cryptoIdentityState = viewModel.value.cryptoIdentityState; + if (cryptoIdentityState?.connected == true && !reset) { + WidgetsBinding.instance.addPostFrameCallback( + (_) => viewModel.goToRoomsPageAfterSuccess(context), + ); + } + + final title = cryptoIdentityState == null + ? L10n.of(context).loadingPleaseWait + : cryptoIdentityState.initialized && !viewModel.value.reset + ? L10n.of(context).restoreCryptoIdentity + : viewModel.value.reset + ? viewModel.value.recoveryKey != null + ? L10n.of(context).youAreReadyToStart + : L10n.of(context).resetCryptoIdentity + : L10n.of(context).setUpCryptoIdentity; + + return LoginScaffold( + appBar: AppBar( + automaticallyImplyLeading: false, + leading: viewModel.value.recoveryKey != null + ? null + : CloseButton( + onPressed: () async { + if (!reset) { + final consent = await showOkCancelAlertDialog( + context: context, + title: L10n.of(context).skipChatBackup, + message: L10n.of(context).skipChatBackupWarning, + okLabel: L10n.of(context).skip, + isDestructive: true, + ); + if (consent != OkCancelResult.ok) return; + if (!context.mounted) return; + } + context.go('/rooms'); + }, + ), + title: Text(title), + actions: [ + if (viewModel.value.recoveryKey != null) + Padding( + padding: EdgeInsets.all(8), + child: ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: theme.colorScheme.primary, + foregroundColor: theme.colorScheme.onPrimary, + padding: EdgeInsets.symmetric(horizontal: 16), + ), + onPressed: () => context.go('/rooms'), + child: Text(L10n.of(context).continueText), + ), + ), + ], + ), + + body: cryptoIdentityState == null + ? Center(child: CircularProgressIndicator.adaptive()) + : !cryptoIdentityState.initialized || viewModel.value.reset + ? viewModel.value.recoveryKey == null + ? NewPassphraseView(viewModel) + : StoreRecoveryKeyView(viewModel) + : RestoreBootstrapView(viewModel), + ); + }, + ); + } +} diff --git a/lib/pages/bootstrap/view_model/bootstrap_state.dart b/lib/pages/bootstrap/view_model/bootstrap_state.dart new file mode 100644 index 0000000..f8d5fa7 --- /dev/null +++ b/lib/pages/bootstrap/view_model/bootstrap_state.dart @@ -0,0 +1,35 @@ +// 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/encryption.dart'; +import 'package:matrix/matrix.dart'; + +class BootstrapViewModelState { + String? recoveryKey; + bool isLoading = false; + Object? unlockWithError; + ({ + bool connected, + bool crossSigningEnabled, + bool initialized, + bool keyBackupEnabled, + })? + cryptoIdentityState; + bool reset = false; + KeyVerification? keyVerification; + List? connectedDevices; + bool obscureText = true; + bool waitingForSecrets = false; + bool noSecretsreceived = false; + + bool newPassphraseEqualsRepeatPassphrase = false; + bool newPassphraseLongEnough = false; + bool newPassphraseUpperAndLowerCase = false; + bool newPassphraseSpecialCharacters = false; + bool newPassphraseNumbers = false; + bool passphraseOrRecoveryKeyEntered = false; + bool recoveryKeyDownloaded = false; + bool recoveryKeyStoredInSecureStorage = false; +} diff --git a/lib/pages/bootstrap/view_model/bootstrap_view_model.dart b/lib/pages/bootstrap/view_model/bootstrap_view_model.dart new file mode 100644 index 0000000..7b6e3bf --- /dev/null +++ b/lib/pages/bootstrap/view_model/bootstrap_view_model.dart @@ -0,0 +1,302 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:file_picker/file_picker.dart'; +import 'package:tatchat/utils/error_reporter.dart'; +import 'package:tatchat/utils/localized_exception_extension.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/encryption.dart'; +import 'package:matrix/matrix.dart'; + +import 'bootstrap_state.dart'; + +class BootstrapViewModel extends ValueNotifier { + final Client client; + final bool reset; + + final TextEditingController enterPassphraseOrRecovController = + TextEditingController(); + final TextEditingController newPassphraseController = TextEditingController(); + final TextEditingController repeatPassphraseController = + TextEditingController(); + final ScrollController devicesScrollController = ScrollController(); + + BootstrapViewModel({required this.client, required this.reset}) + : super(BootstrapViewModelState()..reset = reset) { + _init(); + } + + @override + void dispose() { + _cancelKeyVerification(); + enterPassphraseOrRecovController.dispose(); + newPassphraseController.dispose(); + repeatPassphraseController.dispose(); + devicesScrollController.dispose(); + super.dispose(); + } + + void _checkCanCreatePassphrase([_]) { + final passphrase = newPassphraseController.text; + value.newPassphraseEqualsRepeatPassphrase = + passphrase.isNotEmpty && passphrase == repeatPassphraseController.text; + value.newPassphraseLongEnough = passphrase.length >= 12; + value.newPassphraseUpperAndLowerCase = + passphrase.contains(RegExp(r'[A-Z]')) && + passphrase.contains(RegExp(r'[a-z]')); + value.newPassphraseSpecialCharacters = passphrase.contains( + RegExp(r'[!@#$%^&*(),.?":{}|<>]'), + ); + value.newPassphraseNumbers = passphrase.contains(RegExp(r'\d')); + notifyListeners(); + } + + Future retryKeyVerification() async { + value.noSecretsreceived = false; + value.keyVerification = await client.userDeviceKeys[client.userID!]! + .startVerification(); + value.keyVerification?.onUpdate = _onKeyVerificationUpdate; + notifyListeners(); + } + + Future _init() async { + final state = value.cryptoIdentityState = await client + .getCryptoIdentityState(); + newPassphraseController.addListener(_checkCanCreatePassphrase); + repeatPassphraseController.addListener(_checkCanCreatePassphrase); + enterPassphraseOrRecovController.addListener( + _passphraseOrRecoveryKeyEntered, + ); + if (state.initialized) { + if (state.connected) return notifyListeners(); + + await client.updateUserDeviceKeys(); + + final devices = value.connectedDevices = + client.userDeviceKeys[client.userID!]?.deviceKeys.values + .where( + (device) => device.hasValidSignatureChain( + verifiedByTheirMasterKey: true, + ), + ) + .toList() ?? + []; + if (devices.isNotEmpty) { + value.keyVerification = await client.userDeviceKeys[client.userID!]! + .startVerification(); + value.keyVerification?.onUpdate = _onKeyVerificationUpdate; + } + if (supportsSecureStorage) { + try { + final keyFromSecureStorage = await FlutterSecureStorage().read( + key: _secureStorageKey, + ); + if (keyFromSecureStorage != null) { + enterPassphraseOrRecovController.text = keyFromSecureStorage; + } + } catch (e, s) { + Logs().e('Unable to read key from secure storage', e, s); + } + } + } + notifyListeners(); + } + + void _passphraseOrRecoveryKeyEntered() { + final passphraseOrRecoveryKeyEntered = + enterPassphraseOrRecovController.text.isNotEmpty; + if (value.passphraseOrRecoveryKeyEntered != + passphraseOrRecoveryKeyEntered) { + value.passphraseOrRecoveryKeyEntered = passphraseOrRecoveryKeyEntered; + notifyListeners(); + } + } + + Future _onKeyVerificationUpdate() async { + if (value.keyVerification?.state == KeyVerificationState.done) { + value.waitingForSecrets = true; + value.noSecretsreceived = false; + notifyListeners(); + value.cryptoIdentityState = await client.getCryptoIdentityState(); + var tries = 0; + const max = 10; + while (value.cryptoIdentityState?.connected != true) { + Logs().d('Waiting for secrets... [$tries/$max]'); + if (tries >= max) return; + await Future.delayed(const Duration(seconds: 1)); + value.cryptoIdentityState = await client.getCryptoIdentityState(); + tries++; + } + + if (value.cryptoIdentityState?.connected != true) { + value.waitingForSecrets = false; + value.noSecretsreceived = true; + } + } + notifyListeners(); + } + + Future setOrSkipPassphrase( + String? passphrase, + BuildContext context, + ) async { + value.isLoading = true; + notifyListeners(); + try { + value.recoveryKey = await client.initCryptoIdentity( + passphrase: passphrase, + wipeCrossSigning: !reset, + wipeKeyBackup: !reset, + wipeSecureStorage: !reset, + setupOnlineKeyBackup: !reset, + setupMasterKey: !reset, + setupSelfSigningKey: !reset, + setupUserSigningKey: !reset, + ); + } catch (e, s) { + if (!context.mounted) return; + ErrorReporter( + context, + 'Unable to init crypto identity', + ).onErrorCallback(e, s); + ScaffoldMessenger.of( + context, + ).showSnackBar(SnackBar(content: Text(e.toLocalizedString(context)))); + value.isLoading = false; + } + notifyListeners(); + } + + void _cancelKeyVerification() { + final keyVerification = value.keyVerification; + if (keyVerification != null && + keyVerification.state != KeyVerificationState.done && + keyVerification.state != KeyVerificationState.error) { + keyVerification.cancel(); + } + } + + bool get supportsSecureStorage => + PlatformInfos.isMobile || PlatformInfos.isDesktop; + + Future unlock(BuildContext context) async { + final key = enterPassphraseOrRecovController.text.trim(); + if (key.isEmpty) return; + + _cancelKeyVerification(); + + value.unlockWithError = null; + value.isLoading = true; + notifyListeners(); + try { + await client.restoreCryptoIdentity(key); + value.isLoading = false; + value.cryptoIdentityState = await client.getCryptoIdentityState(); + notifyListeners(); + return; + } catch (e, s) { + if (e is! InvalidPassphraseException) { + const errorMessage = 'Unexpected error on unlock passphrase'; + if (context.mounted) { + ErrorReporter(context, errorMessage).onErrorCallback(e, s); + } else { + Logs().wtf(errorMessage, e, s); + } + } + value.isLoading = false; + value.unlockWithError = e; + notifyListeners(); + if (supportsSecureStorage) { + await FlutterSecureStorage().delete(key: _secureStorageKey); + } + return; + } + } + + void goToRoomsPageAfterSuccess(BuildContext context) { + for (final room in client.rooms) { + final lastEvent = room.lastEvent; + if (lastEvent == null || + lastEvent.messageType != MessageTypes.BadEncrypted || + lastEvent.content['can_request_session'] != true) { + continue; + } + final sessionId = lastEvent.content.tryGet('session_id'); + final senderKey = lastEvent.content.tryGet('sender_key'); + if (sessionId != null && senderKey != null) { + client.encryption?.keyManager.maybeAutoRequest( + room.id, + sessionId, + senderKey, + ); + } + } + context.go('/rooms'); + } + + void toggleObscureText() { + value.obscureText = !value.obscureText; + notifyListeners(); + } + + void startResetAccount() { + value.reset = true; + notifyListeners(); + } + + String get _secureStorageKey => 'ssss_recovery_key_${client.userID}'; + + Future openRecoveryKeyFile(BuildContext context) async { + final result = await FilePicker.pickFile( + allowedExtensions: ['txt'], + type: FileType.custom, + ); + final file = result?.xFile; + if (file == null) return; + try { + final key = await file.readAsString(); + enterPassphraseOrRecovController.text = key; + } catch (e, s) { + Logs().d('Unable to read recovery key file', e, s); + if (context.mounted) { + ScaffoldMessenger.of( + context, + ).showSnackBar(SnackBar(content: Text(e.toLocalizedString(context)))); + } + } + if (context.mounted) await unlock(context); + } + + Future toggleRecoveryKeyDownloaded( + bool? downloaded, + BuildContext context, + ) async { + final path = await FilePicker.saveFile( + fileName: + 'FluffyChat-Recovery-Key-${DateTime.now().toIso8601String()}.txt', + bytes: Uint8List.fromList(value.recoveryKey!.codeUnits), + ); + if (path == null) return; + value.recoveryKeyDownloaded = downloaded == true; + notifyListeners(); + } + + Future toggleRecoveryKeyStoredInSecureStorage(bool? stored) async { + if (stored == true) { + await FlutterSecureStorage().write( + key: _secureStorageKey, + value: value.recoveryKey, + ); + } else { + await FlutterSecureStorage().delete(key: _secureStorageKey); + } + value.recoveryKeyStoredInSecureStorage = stored == true; + notifyListeners(); + } +} diff --git a/lib/pages/bootstrap/widgets/new_passphrase_view.dart b/lib/pages/bootstrap/widgets/new_passphrase_view.dart new file mode 100644 index 0000000..9f65b20 --- /dev/null +++ b/lib/pages/bootstrap/widgets/new_passphrase_view.dart @@ -0,0 +1,129 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/bootstrap/view_model/bootstrap_view_model.dart'; +import 'package:material_ui/material_ui.dart'; + +class NewPassphraseView extends StatelessWidget { + final BootstrapViewModel viewModel; + + const NewPassphraseView(this.viewModel, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final canCreatePassphrase = + viewModel.value.newPassphraseEqualsRepeatPassphrase && + viewModel.value.newPassphraseNumbers && + viewModel.value.newPassphraseSpecialCharacters && + viewModel.value.newPassphraseUpperAndLowerCase && + viewModel.value.newPassphraseLongEnough; + + return ListView( + padding: const EdgeInsets.all(16.0), + children: [ + Text(L10n.of(context).newPassphraseDescription, textAlign: .center), + const SizedBox(height: 16), + TextField( + obscureText: viewModel.value.obscureText, + readOnly: viewModel.value.isLoading, + controller: viewModel.newPassphraseController, + decoration: InputDecoration( + suffixIcon: IconButton( + icon: Icon( + viewModel.value.obscureText + ? Icons.visibility_off_outlined + : Icons.visibility_outlined, + ), + onPressed: viewModel.toggleObscureText, + ), + hintText: L10n.of(context).newPassphrase, + ), + ), + const SizedBox(height: 16), + TextField( + obscureText: viewModel.value.obscureText, + readOnly: viewModel.value.isLoading, + controller: viewModel.repeatPassphraseController, + decoration: InputDecoration( + hintText: L10n.of(context).repeatPassphrase, + ), + ), + const SizedBox(height: 16), + ElevatedButton( + onPressed: canCreatePassphrase && !viewModel.value.isLoading + ? () => viewModel.setOrSkipPassphrase( + viewModel.newPassphraseController.text, + context, + ) + : null, + child: viewModel.value.isLoading + ? CircularProgressIndicator.adaptive() + : Text(L10n.of(context).continueText), + ), + const SizedBox(height: 16), + TextButton( + onPressed: viewModel.value.isLoading + ? null + : () => viewModel.setOrSkipPassphrase(null, context), + style: TextButton.styleFrom(foregroundColor: theme.colorScheme.error), + child: Text(L10n.of(context).skip), + ), + const SizedBox(height: 16), + _PassphraseCheckListTile( + checked: viewModel.value.newPassphraseEqualsRepeatPassphrase, + label: L10n.of(context).passphrasesMatch, + ), + const SizedBox(height: 16), + _PassphraseCheckListTile( + checked: viewModel.value.newPassphraseLongEnough, + label: L10n.of(context).passphraseLengthRequirement, + ), + const SizedBox(height: 16), + _PassphraseCheckListTile( + checked: viewModel.value.newPassphraseUpperAndLowerCase, + label: L10n.of(context).passphraseUpperAndLowerCaseRequirement, + ), + const SizedBox(height: 16), + _PassphraseCheckListTile( + checked: viewModel.value.newPassphraseSpecialCharacters, + label: L10n.of(context).passphraseSpecialCharactersRequirement, + ), + const SizedBox(height: 16), + _PassphraseCheckListTile( + checked: viewModel.value.newPassphraseNumbers, + label: L10n.of(context).passphraseNumberRequirement, + ), + ], + ); + } +} + +class _PassphraseCheckListTile extends StatelessWidget { + final String label; + final bool checked; + const _PassphraseCheckListTile({required this.label, required this.checked}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + return Row( + spacing: 8.0, + children: [ + Icon( + checked ? Icons.check_circle_outlined : Icons.circle_outlined, + color: checked + ? theme.brightness == Brightness.light + ? Colors.green.shade800 + : Colors.green.shade300 + : theme.colorScheme.error, + size: 20, + ), + Text(label, style: TextStyle(fontSize: 12)), + ], + ); + } +} diff --git a/lib/pages/bootstrap/widgets/restore_bootstrap_view.dart b/lib/pages/bootstrap/widgets/restore_bootstrap_view.dart new file mode 100644 index 0000000..0c6b7b9 --- /dev/null +++ b/lib/pages/bootstrap/widgets/restore_bootstrap_view.dart @@ -0,0 +1,198 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/bootstrap/view_model/bootstrap_view_model.dart'; +import 'package:tatchat/pages/key_verification/key_verification_dialog.dart'; +import 'package:tatchat/utils/date_time_extension.dart'; +import 'package:tatchat/utils/localized_exception_extension.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/device_extension.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/encryption/utils/key_verification.dart'; +import 'package:matrix/matrix.dart'; + +class RestoreBootstrapView extends StatelessWidget { + final BootstrapViewModel viewModel; + + const RestoreBootstrapView(this.viewModel, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final keyVerification = viewModel.value.keyVerification; + if (keyVerification != null) { + Logs().v('Key verification state:', keyVerification.state); + if (keyVerification.state == KeyVerificationState.askSas) { + WidgetsBinding.instance.addPostFrameCallback((_) { + KeyVerificationDialog(request: keyVerification).show(context); + }); + } + } + final devices = + viewModel.value.connectedDevices + ?.map( + (device) => ( + title: device.displayname, + lastActive: device.lastActive, + icon: device.icon, + ), + ) + .toList() ?? + []; + return ListView( + padding: const EdgeInsets.all(16.0), + children: [ + if (keyVerification != null) ...[ + ListTile( + leading: + (keyVerification.state == KeyVerificationState.error || + viewModel.value.noSecretsreceived) + ? IconButton( + onPressed: viewModel.value.isLoading + ? null + : viewModel.retryKeyVerification, + tooltip: L10n.of(context).tryAgain, + icon: Icon(Icons.refresh_outlined), + ) + : Padding( + padding: const EdgeInsets.all(10.0), + child: CircularProgressIndicator.adaptive(), + ), + minLeadingWidth: 40, + title: Text( + viewModel.value.waitingForSecrets + ? L10n.of(context).waitingForKeys + : viewModel.value.noSecretsreceived + ? L10n.of(context).noKeysTransmitted + : L10n.of(context).restoreBootstrapDevicesDescription, + + style: TextStyle(fontSize: 14), + ), + ), + const SizedBox(height: 16), + Material( + color: theme.colorScheme.surfaceContainer, + clipBehavior: Clip.hardEdge, + borderRadius: BorderRadius.circular(AppConfig.borderRadius), + child: ConstrainedBox( + constraints: BoxConstraints(maxHeight: 128), + child: Scrollbar( + thumbVisibility: true, + trackVisibility: true, + controller: viewModel.devicesScrollController, + child: ListView.builder( + controller: viewModel.devicesScrollController, + shrinkWrap: true, + itemCount: devices.length, + itemBuilder: (context, i) => ListTile( + leading: CircleAvatar( + foregroundColor: theme.colorScheme.onPrimary, + backgroundColor: theme.colorScheme.primary, + child: Icon(devices[i].icon), + ), + title: Text( + devices[i].title, + maxLines: 1, + overflow: .ellipsis, + style: TextStyle(fontSize: 14), + ), + subtitle: Text( + L10n.of(context).lastActiveAgo( + devices[i].lastActive.localizedTime(context), + ), + style: TextStyle(fontSize: 11), + ), + ), + ), + ), + ), + ), + Row( + children: [ + Expanded(child: Divider(height: 64)), + Padding( + padding: EdgeInsets.symmetric(horizontal: 16), + child: Text(L10n.of(context).or), + ), + Expanded(child: Divider(height: 64)), + ], + ), + ] else ...[ + Text( + L10n.of(context).restoreBootstrapEmptyDevicesDescription, + textAlign: .center, + ), + const SizedBox(height: 32), + ], + TextField( + readOnly: viewModel.value.isLoading, + obscureText: viewModel.value.obscureText, + controller: viewModel.enterPassphraseOrRecovController, + minLines: 1, + maxLines: viewModel.value.obscureText ? 1 : 4, + onSubmitted: (_) => viewModel.unlock(context), + decoration: InputDecoration( + hintText: L10n.of(context).passphraseOrKey, + prefixIcon: IconButton( + icon: Icon( + viewModel.value.obscureText + ? Icons.visibility_outlined + : Icons.visibility_off_outlined, + ), + onPressed: viewModel.toggleObscureText, + ), + errorText: viewModel.value.unlockWithError?.toLocalizedString( + context, + ), + errorMaxLines: 4, + suffixIcon: viewModel.value.isLoading + ? SizedBox.square( + dimension: 32, + child: Center( + child: CircularProgressIndicator.adaptive(strokeWidth: 2), + ), + ) + : TextButton( + style: TextButton.styleFrom( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular( + AppConfig.borderRadius / 2, + ), + ), + ), + onPressed: viewModel.value.passphraseOrRecoveryKeyEntered + ? () => viewModel.unlock(context) + : () => viewModel.openRecoveryKeyFile(context), + child: Text( + viewModel.value.passphraseOrRecoveryKeyEntered + ? L10n.of(context).unlock + : L10n.of(context).openFile, + ), + ), + ), + ), + const SizedBox(height: 16), + TextButton( + onPressed: () async { + final consent = await showOkCancelAlertDialog( + context: context, + title: L10n.of(context).warning, + message: L10n.of(context).resetAccountWarning, + isDestructive: true, + okLabel: L10n.of(context).resetAccount, + ); + if (consent != OkCancelResult.ok) return; + if (!context.mounted) return; + viewModel.startResetAccount(); + }, + style: TextButton.styleFrom(foregroundColor: theme.colorScheme.error), + child: Text(L10n.of(context).resetAccount), + ), + ], + ); + } +} diff --git a/lib/pages/bootstrap/widgets/store_recovery_key_view.dart b/lib/pages/bootstrap/widgets/store_recovery_key_view.dart new file mode 100644 index 0000000..7088f92 --- /dev/null +++ b/lib/pages/bootstrap/widgets/store_recovery_key_view.dart @@ -0,0 +1,63 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/bootstrap/view_model/bootstrap_view_model.dart'; +import 'package:tatchat/utils/tatu_share.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:material_ui/material_ui.dart'; + +class StoreRecoveryKeyView extends StatelessWidget { + final BootstrapViewModel viewModel; + const StoreRecoveryKeyView(this.viewModel, {super.key}); + + @override + Widget build(BuildContext context) { + return ListView( + padding: const EdgeInsets.all(16.0), + children: [ + Text(L10n.of(context).storeRecoveryKeyDescription), + const SizedBox(height: 16), + TextField( + // TODO: Dispose this + controller: TextEditingController(text: viewModel.value.recoveryKey), + readOnly: true, + minLines: 2, + maxLines: 4, + decoration: InputDecoration( + suffixIcon: IconButton( + icon: Icon(Icons.copy_outlined), + onPressed: () => + TatuShare.share(viewModel.value.recoveryKey!, context), + ), + ), + ), + const SizedBox(height: 16), + CheckboxListTile.adaptive( + value: viewModel.value.recoveryKeyDownloaded, + onChanged: (copied) => + viewModel.toggleRecoveryKeyDownloaded(copied, context), + title: Text(L10n.of(context).saveAsFile), + ), + if (viewModel.supportsSecureStorage) + CheckboxListTile.adaptive( + value: viewModel.value.recoveryKeyStoredInSecureStorage, + onChanged: viewModel.toggleRecoveryKeyStoredInSecureStorage, + title: Text(_getSecureStorageLocalizedName(context)), + ), + ], + ); + } + + String _getSecureStorageLocalizedName(BuildContext context) { + if (PlatformInfos.isAndroid) { + return L10n.of(context).storeInAndroidKeystore; + } + if (PlatformInfos.isIOS || PlatformInfos.isMacOS) { + return L10n.of(context).storeInAppleKeyChain; + } + return L10n.of(context).storeSecurlyOnThisDevice; + } +} diff --git a/lib/pages/call/call_page.dart b/lib/pages/call/call_page.dart new file mode 100644 index 0000000..ac2e477 --- /dev/null +++ b/lib/pages/call/call_page.dart @@ -0,0 +1,537 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:math'; + +import 'package:collection/collection.dart'; +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/call/call_tile.dart'; +import 'package:tatchat/pages/call/call_view_model.dart'; +import 'package:tatchat/pages/call/start_time.dart'; +import 'package:tatchat/pages/call/utils/get_call_tiles.dart'; +import 'package:tatchat/utils/localized_exception_extension.dart'; +import 'package:tatchat/utils/matrix_live_kit_calls/matrix_live_kit_call.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:tatchat/widgets/view_model_builder.dart'; +import 'package:livekit_client/livekit_client.dart'; +import 'package:material_ui/material_ui.dart'; + +class CallPage extends StatelessWidget { + final String roomId; + const CallPage({super.key, required this.roomId}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final room = Matrix.of(context).client.getRoomById(roomId)!; + final mini = Matrix.of(context).callPosition.value != .fullScreen; + final tileSize = FluffyThemes.isColumnMode(context) ? 256.0 : 128.0; + return ViewModelBuilder( + create: () => CallViewModel(room: room), + builder: (context, viewModel, _) { + final liveKitRoom = viewModel.value.room; + final localVideoTrack = viewModel.value.localVideoTrack; + final localParticipant = liveKitRoom?.localParticipant; + + final activeMembers = room.getActiveMatrixRtcMembers().length; + final ownUser = room.unsafeGetUserFromMemoryOrFallback( + room.client.userID!, + ); + final ownHandRaised = viewModel.participantRaisedHand(ownUser.id); + final userIsScreensharing = + localParticipant?.isScreenShareEnabled() == true; + final iconButtonStyle = IconButton.styleFrom( + backgroundColor: theme.colorScheme.surfaceBright.withAlpha(230), + disabledBackgroundColor: theme.colorScheme.surfaceBright.withAlpha( + 230, + ), + iconSize: mini ? null : 28, + padding: EdgeInsets.all(mini ? 8.0 : 16.0), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(99), + side: BorderSide(color: theme.colorScheme.surfaceContainerHighest), + ), + ); + final iconButtonStyleActive = IconButton.styleFrom( + backgroundColor: theme.colorScheme.inverseSurface, + disabledBackgroundColor: theme.colorScheme.inverseSurface, + foregroundColor: theme.colorScheme.onInverseSurface, + disabledForegroundColor: theme.colorScheme.onInverseSurface, + ).merge(iconButtonStyle); + + return MediaQuery.removePadding( + context: context, + removeBottom: mini, + removeTop: mini, + child: ScaffoldMessenger( + child: Scaffold( + extendBodyBehindAppBar: true, + appBar: AppBar( + automaticallyImplyLeading: false, + leading: viewModel.startTime == null + ? null + : StartTime(startTime: viewModel.startTime!), + backgroundColor: theme.colorScheme.surface.withAlpha(64), + centerTitle: true, + actions: [ + IconButton( + icon: Icon(Icons.fullscreen_outlined), + onPressed: () { + Matrix.of(context).callPosition.value = mini + ? .fullScreen + : .top; + }, + ), + if (localVideoTrack == null) + PopupMenuButton( + itemBuilder: (context) => [ + PopupMenuItem( + onTap: () => viewModel.selectCamera(context), + child: Row( + mainAxisSize: .min, + spacing: 12, + children: [ + const Icon(Icons.camera_outlined), + Text(L10n.of(context).selectCamera), + ], + ), + ), + PopupMenuItem( + onTap: () => viewModel.selectMicrophone(context), + child: Row( + mainAxisSize: .min, + spacing: 12, + children: [ + const Icon(Icons.mic_outlined), + Text(L10n.of(context).selectMicrophone), + ], + ), + ), + PopupMenuItem( + onTap: () => viewModel.selectSpeaker(context), + child: Row( + mainAxisSize: .min, + spacing: 12, + children: [ + const Icon(Icons.speaker_phone_outlined), + Text(L10n.of(context).selectSpeaker), + ], + ), + ), + ], + ), + ], + titleSpacing: mini ? 0 : null, + title: Column( + mainAxisSize: .min, + children: [ + Text( + room.getLocalizedDisplayname(), + maxLines: 1, + overflow: .ellipsis, + style: mini + ? TextStyle(fontSize: 11, fontWeight: .bold) + : null, + ), + if (activeMembers > 0) + Text( + viewModel.waitForOtherSide + ? L10n.of(context).waitingForParticipant + : L10n.of( + context, + ).countActiveCallMembers(activeMembers), + maxLines: 1, + style: TextStyle(fontSize: 11), + ), + ], + ), + ), + body: liveKitRoom == null + ? Center(child: CircularProgressIndicator()) + : localVideoTrack != null + ? Stack( + children: [ + localVideoTrack.muted + ? Center( + child: Avatar( + mxContent: ownUser.avatarUrl, + name: ownUser.calcDisplayname(), + size: 128, + ), + ) + : VideoTrackRenderer(localVideoTrack, fit: .cover), + + Align( + alignment: .topCenter, + child: SafeArea( + child: Container( + decoration: BoxDecoration( + color: viewModel.value.error == null + ? theme.colorScheme.errorContainer + .withAlpha(230) + : theme.colorScheme.error.withAlpha(230), + borderRadius: BorderRadius.circular( + AppConfig.borderRadius, + ), + ), + margin: EdgeInsets.all(16.0), + padding: EdgeInsets.all(16.0), + child: Text( + viewModel.value.error?.toLocalizedString( + context, + ) ?? + L10n.of(context).videoCallsBetaWarning, + textAlign: .center, + style: TextStyle( + fontSize: 11, + color: viewModel.value.error == null + ? theme.colorScheme.onErrorContainer + : theme.colorScheme.onError, + ), + ), + ), + ), + ), + ], + ) + : SafeArea( + top: !mini, + child: LayoutBuilder( + builder: (context, constraints) { + final axis = + constraints.maxWidth < constraints.maxHeight + ? Axis.vertical + : Axis.horizontal; + + final tiles = liveKitRoom.getCallTiles(room); + + final focused = + (viewModel.value.focusedTrack == null + ? null + : tiles.firstWhereOrNull( + (tile) => + tile.id == + viewModel.value.focusedTrack, + )) ?? + tiles.firstWhereOrNull( + (tile) => tile.video?.isScreenShare == true, + ) ?? + (tiles.length < 3 ? tiles.first : null); + + if (mini) { + final miniFocused = + focused ?? + tiles.firstOrNull ?? + ( + id: '${ownUser.id}_fallback_none', + user: ownUser, + video: null, + audio: null, + connected: false, + isSpeaking: false, + ); + return SizedBox.expand( + child: CallTile( + key: ValueKey(miniFocused.id), + user: miniFocused.user, + video: miniFocused.video, + audio: miniFocused.audio, + connected: miniFocused.connected, + margin: EdgeInsets.zero, + handRaised: viewModel.participantRaisedHand( + miniFocused.user.id, + ), + isSpeaking: miniFocused.isSpeaking, + onTap: null, + ), + ); + } + tiles.remove(focused); + + return focused == null + ? Padding( + padding: EdgeInsets.only( + bottom: 84.0, + left: 16.0, + right: 16.0, + top: 16.0, + ), + child: LayoutBuilder( + builder: (context, constraints) { + final rows = sqrt(tiles.length).ceil(); + final columns = (tiles.length / rows) + .ceil(); + + final width = + (constraints.maxWidth / rows) - + (rows * 8); + final height = + (constraints.maxHeight / columns) - + (columns * 8); + return Center( + child: Wrap( + spacing: 16.0, + runSpacing: 16.0, + alignment: .center, + runAlignment: .center, + crossAxisAlignment: .center, + children: tiles + .map( + (tile) => CallTile( + key: ValueKey(tile.id), + user: tile.user, + video: tile.video, + audio: tile.audio, + connected: tile.connected, + width: width, + height: height, + isSpeaking: tile.isSpeaking, + handRaised: viewModel + .participantRaisedHand( + tile.user.id, + ), + onTap: () => viewModel + .setFocusedTrack(tile.id), + ), + ) + .toList(), + ), + ); + }, + ), + ) + : Padding( + padding: EdgeInsets.only( + bottom: 96.0, + left: 16.0, + right: 16.0, + top: 16.0, + ), + child: Flex( + direction: axis, + crossAxisAlignment: .stretch, + children: [ + Expanded( + child: CallTile( + key: ValueKey(focused.id), + user: focused.user, + video: focused.video, + audio: focused.audio, + connected: focused.connected, + fit: .contain, + isSpeaking: focused.isSpeaking, + handRaised: viewModel + .participantRaisedHand( + focused.user.id, + ), + onTap: () => viewModel + .setFocusedTrack(focused.id), + ), + ), + if (tiles.isNotEmpty) ...[ + SizedBox(width: 16, height: 16), + SizedBox( + height: axis == .horizontal + ? null + : tileSize, + width: axis == .vertical + ? null + : tileSize, + child: ListView.builder( + scrollDirection: axis == .horizontal + ? .vertical + : .horizontal, + itemCount: tiles.length, + itemBuilder: (context, i) => + CallTile( + key: ValueKey(tiles[i].id), + user: tiles[i].user, + video: tiles[i].video, + audio: tiles[i].audio, + connected: tiles[i].connected, + width: tileSize, + height: tileSize, + isSpeaking: + tiles[i].isSpeaking, + handRaised: viewModel + .participantRaisedHand( + tiles[i].user.id, + ), + onTap: () => + viewModel.setFocusedTrack( + tiles[i].id, + ), + margin: EdgeInsets.only( + right: axis == .vertical + ? 16 + : 0, + bottom: axis == .horizontal + ? 16 + : 0, + ), + ), + ), + ), + ], + ], + ), + ); + }, + ), + ), + floatingActionButtonLocation: .centerFloat, + floatingActionButton: Wrap( + alignment: .center, + spacing: mini ? 8 : 16, + children: [ + if (localParticipant != null) ...[ + IconButton( + tooltip: L10n.of(context).toggleMicrophone, + style: iconButtonStyle, + onPressed: () => localParticipant.setMicrophoneEnabled( + !localParticipant.isMicrophoneEnabled(), + ), + icon: Icon( + localParticipant.isMicrophoneEnabled() + ? Icons.mic_outlined + : Icons.mic_off_outlined, + ), + ), + IconButton( + tooltip: L10n.of(context).toggleCamera, + style: iconButtonStyle, + onPressed: () => localParticipant.setCameraEnabled( + !localParticipant.isCameraEnabled(), + ), + icon: Icon( + localParticipant.isCameraEnabled() + ? Icons.videocam_outlined + : Icons.videocam_off_outlined, + ), + ), + if (!PlatformInfos.isMobile) // TODO: Fix on mobile? + IconButton( + tooltip: userIsScreensharing + ? L10n.of(context).stopScreensharing + : L10n.of(context).startScreensharing, + style: userIsScreensharing + ? iconButtonStyleActive + : iconButtonStyle, + onPressed: () => localParticipant.setScreenShareEnabled( + !userIsScreensharing, + ), + icon: Icon( + userIsScreensharing + ? Icons.stop_screen_share + : Icons.screen_share_outlined, + ), + ), + IconButton( + tooltip: ownHandRaised + ? L10n.of(context).stopRaiseHand + : L10n.of(context).raiseHand, + style: ownHandRaised + ? iconButtonStyleActive + : iconButtonStyle, + onPressed: () => showFutureLoadingDialog( + context: context, + future: () => ownHandRaised + ? room.lowerHandInMatrixRtcCall(viewModel.timeline!) + : room.raiseHandInMatrixRtcCall(), + ), + icon: Icon( + ownHandRaised + ? Icons.front_hand + : Icons.front_hand_outlined, + ), + ), + ] else ...[ + Center( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: SizedBox( + width: 212, + child: TextButton.icon( + onPressed: viewModel.value.isLoading + ? null + : viewModel.connect, + style: ButtonStyle( + padding: iconButtonStyleActive.padding, + foregroundColor: + iconButtonStyleActive.foregroundColor, + backgroundColor: + iconButtonStyleActive.backgroundColor, + ), + icon: viewModel.value.isLoading + ? SizedBox.square( + dimension: 16, + child: CircularProgressIndicator( + color: theme.colorScheme.onInverseSurface, + strokeWidth: 2, + ), + ) + : Icon(Icons.call_outlined), + label: Text( + viewModel.value.isLoading + ? L10n.of(context).loadingPleaseWait + : room.hasActiveMatrixRtcCall + ? L10n.of(context).enterCall + : L10n.of(context).startCall, + ), + ), + ), + ), + ), + IconButton( + tooltip: L10n.of(context).toggleMicrophone, + style: iconButtonStyle, + onPressed: viewModel.value.isLoading + ? null + : viewModel.togglePreviewMic, + icon: Icon( + (viewModel.value.startWithAudio) + ? Icons.mic_outlined + : Icons.mic_off_outlined, + ), + ), + IconButton( + tooltip: L10n.of(context).toggleCamera, + style: iconButtonStyle, + onPressed: viewModel.value.isLoading + ? null + : localVideoTrack != null + ? viewModel.togglePreviewCamera + : null, + icon: Icon( + !(localVideoTrack?.muted ?? true) + ? Icons.videocam_outlined + : Icons.videocam_off_outlined, + ), + ), + ], + IconButton( + tooltip: L10n.of(context).hangUp, + style: IconButton.styleFrom( + backgroundColor: theme.colorScheme.errorContainer, + foregroundColor: theme.colorScheme.onErrorContainer, + ).merge(iconButtonStyle), + + onPressed: () => viewModel.close(context), + icon: Icon(Icons.call_end_outlined), + ), + ], + ), + ), + ), + ); + }, + ); + } +} diff --git a/lib/pages/call/call_tile.dart b/lib/pages/call/call_tile.dart new file mode 100644 index 0000000..122e6b3 --- /dev/null +++ b/lib/pages/call/call_tile.dart @@ -0,0 +1,140 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:livekit_client/livekit_client.dart' as lk; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class CallTile extends StatelessWidget { + final lk.TrackPublication? video; + final lk.TrackPublication? audio; + final User user; + final EdgeInsets? margin; + final VoidCallback? onTap; + final lk.VideoViewFit fit; + final double width, height; + final bool handRaised, connected, isSpeaking; + + const CallTile({ + super.key, + this.video, + this.audio, + this.width = 256.0, + this.height = 256.0, + required this.user, + required this.onTap, + this.handRaised = false, + this.fit = lk.VideoViewFit.cover, + this.margin, + required this.connected, + required this.isSpeaking, + }); + + @override + Widget build(BuildContext context) { + final video = this.video?.track; + final theme = Theme.of(context); + final borderWidth = isSpeaking ? 5.0 : 1.0; + + return SizedBox( + width: width, + height: height, + child: AnimatedContainer( + margin: margin, + duration: FluffyThemes.animationDuration, + decoration: BoxDecoration( + color: theme.colorScheme.surfaceContainer, + border: BoxBorder.all( + color: isSpeaking + ? theme.colorScheme.primaryFixedDim + : theme.colorScheme.surfaceContainerHighest, + width: borderWidth, + strokeAlign: BorderSide.strokeAlignOutside, + ), + borderRadius: BorderRadius.circular(AppConfig.borderRadius), + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(AppConfig.borderRadius), + child: Stack( + children: [ + video != null && !video.muted + ? lk.VideoTrackRenderer(video, fit: fit) + : Center( + child: Avatar( + size: 64, + mxContent: user.avatarUrl, + name: user.calcDisplayname(), + ), + ), + Positioned.fill( + child: GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: onTap, + ), + ), + if (handRaised) + Positioned( + top: 8, + right: 8, + child: Material( + borderRadius: BorderRadius.circular(32), + color: Theme.of(context).colorScheme.surface, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Icon( + Icons.front_hand_outlined, + color: Theme.of(context).colorScheme.onSurface, + ), + ), + ), + ), + Positioned( + bottom: 8, + left: 8, + child: Material( + elevation: theme.appBarTheme.elevation ?? 4, + shadowColor: theme.appBarTheme.shadowColor, + borderRadius: BorderRadius.circular(7), + color: Theme.of( + context, + ).colorScheme.surfaceBright.withAlpha(230), + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 4.0, + vertical: 2.0, + ), + child: Row( + mainAxisSize: .min, + spacing: 4, + children: [ + if (audio != null) + Icon( + audio?.muted == false ? Icons.mic : Icons.mic_off, + size: 12, + ), + if (this.video?.isScreenShare == true) + Icon(Icons.screen_share_outlined, size: 12), + Text( + user.calcDisplayname(), + maxLines: 1, + style: TextStyle(fontSize: 12), + ), + if (!connected) + Icon(Icons.portable_wifi_off_outlined, size: 12), + ], + ), + ), + ), + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/pages/call/call_view_model.dart b/lib/pages/call/call_view_model.dart new file mode 100644 index 0000000..fa81ca5 --- /dev/null +++ b/lib/pages/call/call_view_model.dart @@ -0,0 +1,621 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; +import 'dart:convert'; +import 'dart:math'; + +import 'package:collection/collection.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/call_kit_params.dart'; +import 'package:tatchat/utils/error_reporter.dart'; +import 'package:tatchat/utils/matrix_live_kit_calls/call_keys_event_content.dart'; +import 'package:tatchat/utils/matrix_live_kit_calls/matrix_live_kit_call.dart'; +import 'package:tatchat/utils/matrix_live_kit_calls/matrix_live_kit_call_member.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/utils/position_from_build_context.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter_callkit_incoming/flutter_callkit_incoming.dart'; +import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc; +import 'package:just_audio/just_audio.dart'; +import 'package:livekit_client/livekit_client.dart' as lk; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; +import 'package:wakelock_plus/wakelock_plus.dart'; + +class CallViewModelState { + lk.Room? room; + lk.LocalVideoTrack? localVideoTrack; + bool startWithAudio = true; + bool isLoading = false; + Object? error; + String? focusedTrack; +} + +class CallViewModel extends ValueNotifier { + final Room room; + Timeline? timeline; + final AudioPlayer _audioPlayer = AudioPlayer(); + DateTime? startTime; + StreamSubscription? _onCallEncryptionKeysSub, _onCallMembersChanged; + Timer? _resendCallMemberState; + bool waitForOtherSide = false; + String? callKitId; + + Set _lastSharedParticipants = {}; + DateTime? _keyCreatedAt; + Uint8List? _lastKey; + + lk.BaseKeyProvider? _keyProvider; + + CallViewModel({required this.room}) : super(CallViewModelState()) { + _init(); + } + + void setFocusedTrack(String trackId) { + Logs().d('Set focus on', trackId); + if (value.focusedTrack == trackId) { + value.focusedTrack = null; + } else { + value.focusedTrack = trackId; + } + notifyListeners(); + } + + Future _onCallEncryptionKeys(CallKeysEvent event) async { + final callKeys = event.callKeysContent; + final keyProvider = _keyProvider; + if (keyProvider == null) { + ErrorReporter( + null, + 'Received a new key but the keyProvider is not ready yet!', + ).onErrorCallback(Exception(), StackTrace.current); + return; + } + + await keyProvider.setRawKey( + base64Decode(callKeys.keys.key), + participantId: '${event.sender}:${callKeys.member.claimedDeviceId}', + keyIndex: callKeys.keys.index, + ); + } + + Future _createKeyAndShare() async { + final liveKitRoom = value.room; + if (liveKitRoom == null) return; + + final ownMemberId = '${room.client.userID}:${room.client.deviceID}'; + + final currentParticipants = + room + .getActiveMatrixRtcMembers() + .map((member) => member.membershipId) + .whereType() + .toSet() + ..remove(ownMemberId); + + if (setEquals(currentParticipants, _lastSharedParticipants) && + currentParticipants.isNotEmpty) { + Logs().d( + 'Participant list has not changed. No need to share keys again!', + ); + return; + } + + var index = liveKitRoom.roomOptions.encryption!.keyProvider.getLatestIndex( + ownMemberId, + ); + + final keyCreatedAt = _keyCreatedAt; + final canJustForwardToNewUsers = + keyCreatedAt != null && + DateTime.now().difference(keyCreatedAt).inSeconds < 15 && + _lastSharedParticipants.difference(currentParticipants).isEmpty; + + late final Uint8List key; + if (_lastKey == null || !canJustForwardToNewUsers) { + // Key generation + final rng = Random.secure(); + key = Uint8List(16); + key.setAll(0, Iterable.generate(key.length, (i) => rng.nextInt(256))); + if (_lastKey != null) index = (index + 1) % 256; + + await liveKitRoom.roomOptions.encryption!.keyProvider.setRawKey( + key, + keyIndex: index, + participantId: ownMemberId, + ); + _keyCreatedAt = DateTime.now(); + _lastKey = key; + if (_lastKey != null) { + await liveKitRoom.e2eeManager?.setKeyIndex( + index, + participantIdentity: ownMemberId, + ); + } + } else { + key = _lastKey!; + } + + final forwardParticipants = canJustForwardToNewUsers + ? currentParticipants.difference(_lastSharedParticipants) + : currentParticipants; + final deviceKeys = []; + for (final membershipId in forwardParticipants) { + final membershipParts = membershipId.split(':'); + final deviceId = membershipParts.removeLast(); + final userId = membershipParts.join(':'); + final keys = room.client.userDeviceKeys[userId]?.deviceKeys[deviceId]; + if (keys == null) { + Logs().w('No device keys found for $membershipId'); + continue; + } + deviceKeys.add(keys); + } + + _lastSharedParticipants = currentParticipants; + await room.shareMatrixRtcCallKey( + key: key, + index: index, + memberId: ownMemberId, + deviceKeys: deviceKeys, + ); + } + + Future _init() async { + _onCallEncryptionKeysSub = room.client.onCallEncryptionKeys.listen( + _onCallEncryptionKeys, + ); + + await WakelockPlus.enable(); + await lk.LiveKitClient.initialize(); + + // kHKDF matches the key derivation used by element-web's LiveKit JS SDK + final keyProviderOptions = rtc.KeyProviderOptions( + sharedKey: false, + ratchetSalt: Uint8List.fromList('LKFrameEncryptionKey'.codeUnits), + ratchetWindowSize: 0, + discardFrameWhenCryptorNotReady: true, + keyDerivationAlgorithm: rtc.KeyDerivationAlgorithm.kHKDF, + keyRingSize: 255, + ); + final nativeKeyProvider = await rtc.frameCryptorFactory + .createDefaultKeyProvider(keyProviderOptions); + final baseKeyProvider = _keyProvider = lk.BaseKeyProvider( + nativeKeyProvider, + keyProviderOptions, + ); + + final liveKitRoom = value.room = lk.Room( + roomOptions: lk.RoomOptions( + adaptiveStream: true, + dynacast: true, + defaultAudioCaptureOptions: lk.AudioCaptureOptions( + echoCancellation: true, + noiseSuppression: true, + autoGainControl: true, + highPassFilter: true, + ), + defaultScreenShareCaptureOptions: lk.ScreenShareCaptureOptions( + useiOSBroadcastExtension: PlatformInfos.isIOS, + ), + defaultAudioOutputOptions: lk.AudioOutputOptions( + speakerOn: PlatformInfos.isMobile, + ), + encryption: lk.E2EEOptions(keyProvider: baseKeyProvider), + ), + ); + + liveKitRoom.events.on((event) async { + if (event.participant.identity == + liveKitRoom.localParticipant?.identity) { + return; + } + if (waitForOtherSide) { + waitForOtherSide = false; + await _audioPlayer.stop(); + final callKitId = this.callKitId; + if (callKitId != null) { + await FlutterCallkitIncoming.setCallConnected(callKitId); + } + } + _playJoinSound(); + }); + + liveKitRoom.events.on(_playLeaveSound); + + liveKitRoom.events.on((event) { + if (event.state == .kOk || event.state == .kNew) { + Logs().i( + 'E2EE event from ${event.participant} (${event.publication})', + event.state, + ); + return; + } + if (event.state == .kMissingKey) { + Logs().d('Waiting for call key...', event); + return; + } + Logs().e('LiveKit E2EE Error', event); + }); + + liveKitRoom.addListener(notifyListeners); + + if (room.isDirectChat && room.hasActiveMatrixRtcCall) { + await connect(); + } else { + value.localVideoTrack = await lk.LocalVideoTrack.createCameraTrack(); + if (room.getActiveMatrixRtcMembers().firstOrNull?.callIntent == .voice) { + value.localVideoTrack?.mute(); + } + value.localVideoTrack?.addListener(notifyListeners); + notifyListeners(); + } + } + + Future togglePreviewCamera() async { + final track = value.localVideoTrack; + if (track == null) return; + if (!track.muted) { + await track.mute(); + return; + } + track.removeListener(notifyListeners); + await track.stop(); + value.localVideoTrack = await lk.LocalVideoTrack.createCameraTrack(); + value.localVideoTrack?.addListener(notifyListeners); + + notifyListeners(); + } + + void togglePreviewMic() { + value.startWithAudio = !value.startWithAudio; + notifyListeners(); + } + + bool participantRaisedHand(String matrixId) { + final timeline = this.timeline; + if (timeline == null) return false; + return room.participantRaisedHandInMatrixRtcCall(matrixId, timeline); + } + + Future _onNewTimelineEvent(int i) async { + final event = timeline?.events[i]; + if (event == null) return; + switch (event.type) { + case 'io.element.call.reaction': + Logs().d( + 'Call reactions are not yet handled', + event.content.tryGet('emoji'), + ); + // TODO: handle reaction + break; + case EventTypes.Reaction: + final reactedEvent = await timeline!.getEventById( + event.relationshipEventId!, + ); + if (reactedEvent != null && + reactedEvent.type == MatrixRtcCallMember.eventType && + event.senderId == reactedEvent.senderId && + event.content + .tryGetMap('m.relates_to') + ?.tryGet('key') == + '🖐️') { + Logs().d('User raised hand!'); + _playRaiseHandSound(); + notifyListeners(); + } + break; + case EventTypes.Redaction: + notifyListeners(); + break; + } + } + + Future connect() async { + try { + value.isLoading = true; + notifyListeners(); + final playWaitingSound = + !room.hasActiveMatrixRtcCall && room.isDirectChat; + + final intent = + room.getActiveMatrixRtcMembers().firstOrNull?.callIntent ?? + (value.localVideoTrack?.muted == false ? .video : .voice); + if (PlatformInfos.isMobile) { + await lk.AudioManager.instance.setSpeakerOutputPreferred( + intent == .video, + ); + } + + timeline = await room.getTimeline(onInsert: _onNewTimelineEvent); + final credentials = await room.joinMatrixRtcCall(intent: intent); + _onCallMembersChanged = room.client.onSync.stream + .where( + (syncUpdate) => + syncUpdate.rooms?.join?[room.id]?.timeline?.events?.any( + (event) => event.type == MatrixRtcCallMember.eventType, + ) ?? + false, + ) + .listen((_) { + notifyListeners(); + _createKeyAndShare(); + }); + await _createKeyAndShare(); + + final startWithVideo = + !(value.localVideoTrack?.muted ?? intent == .voice); + final startWithAudio = value.startWithAudio; + await value.localVideoTrack?.stop(); + await value.localVideoTrack?.dispose(); + value.localVideoTrack = null; + await value.room!.connect( + credentials.url, + credentials.jwt, + fastConnectOptions: lk.FastConnectOptions( + microphone: lk.TrackOption( + track: startWithAudio ? await lk.LocalAudioTrack.create() : null, + ), + camera: lk.TrackOption( + track: startWithVideo + ? await lk.LocalVideoTrack.createCameraTrack() + : null, + ), + ), + ); + + _resendCallMemberState?.cancel(); + _resendCallMemberState = Timer.periodic(const Duration(hours: 1), (_) { + final ownMembership = room.ownMatrixRtcMembership; + if (ownMembership == null) { + _resendCallMemberState?.cancel(); + return; + } + room.setMatrixRtcMembershipState( + ownMembership.fociPreferred, + intent: intent, + ); + }); + startTime = DateTime.now(); + + if (PlatformInfos.isMobile) { + final activeCalls = await FlutterCallkitIncoming.activeCalls(); + callKitId = activeCalls + .firstWhereOrNull( + (call) => + call.extra?['roomId'] == room.id && + call.extra?['clientName'] == room.client.clientName, + ) + ?.id; + if (callKitId == null) { + final params = await buildFluffyChatCallKitParams( + room, + intent: intent, + ); + await FlutterCallkitIncoming.startCall(params); + callKitId = params.id; + } + } + if (playWaitingSound) { + waitForOtherSide = true; + _playWaitingSound(); + } else { + final callKitId = this.callKitId; + if (callKitId != null) { + await FlutterCallkitIncoming.setCallConnected(callKitId); + } + _playJoinSound(); + } + + notifyListeners(); + } catch (e, s) { + Logs().e('Error while connecting', e, s); + value.error = e; + ErrorReporter(null, 'Unable to connect').onErrorCallback(e, s); + } finally { + value.isLoading = false; + notifyListeners(); + } + } + + Future close(BuildContext context) async { + _playLeaveSound(); + final liveKitRoom = value.room; + if (liveKitRoom != null) { + liveKitRoom.removeListener(notifyListeners); + await showFutureLoadingDialog( + context: context, + future: () async { + if (liveKitRoom.connectionState != lk.ConnectionState.disconnected) { + await liveKitRoom.disconnect(); + } + await liveKitRoom.dispose(); + value.room = null; + if (room.ownMatrixRtcMembership != null) { + await room.leaveMatrixRtcCall(); + } + }, + ); + } + if (context.mounted) { + Matrix.of(context).activeCallRoomId.value = null; + } + } + + @override + void dispose() { + _onCallEncryptionKeysSub?.cancel(); + _onCallMembersChanged?.cancel(); + _resendCallMemberState?.cancel(); + timeline?.cancelSubscriptions(); + value.localVideoTrack?.dispose(); + final callKitId = this.callKitId; + if (callKitId != null) { + FlutterCallkitIncoming.endCall(callKitId); + } + final liveKitRoom = value.room; + if (liveKitRoom != null) { + liveKitRoom.removeListener(notifyListeners); + if (liveKitRoom.connectionState != lk.ConnectionState.disconnected) { + liveKitRoom.disconnect(); + } + liveKitRoom.dispose(); + room.leaveMatrixRtcCall(); + } + _audioPlayer.dispose(); + WakelockPlus.disable(); + super.dispose(); + } + + Future _playSoundIndex( + AudioSource audioSource, { + LoopMode loopMode = .off, + }) async { + if (_audioPlayer.playing) await _audioPlayer.stop(); + await _audioPlayer.setAudioSource(audioSource); + if (_audioPlayer.loopMode != loopMode) { + await _audioPlayer.setLoopMode(loopMode); + } + try { + await _audioPlayer.play(); + } catch (e) { + Logs().w('Unable to start audio player. Try again...', e); + await Future.delayed(const Duration(milliseconds: 300)); + await _audioPlayer.play(); + } + } + + final _joinSource = AudioSource.asset('assets/sounds/call_join.mp3'); + final _leaveSource = AudioSource.asset('assets/sounds/call_leave.mp3'); + final _raiseHandSource = AudioSource.asset( + 'assets/sounds/call_attention.mp3', + ); + final _waitSource = AudioSource.asset('assets/sounds/call_wait.mp3'); + + Future _playJoinSound() => _playSoundIndex(_joinSource); + + Future _playLeaveSound([_]) => _playSoundIndex(_leaveSource); + + Future _playRaiseHandSound() => _playSoundIndex(_raiseHandSource); + + Future _playWaitingSound() => + _playSoundIndex(_waitSource, loopMode: .all); + + Future _selectMediaDevice( + BuildContext context, + List devices, + String? activeDeviceId, + ) async { + if (!context.mounted) return null; + return await showMenu( + context: context, + position: context.position, + items: devices.isEmpty + ? [ + PopupMenuItem( + enabled: false, + child: Text(L10n.of(context).noDevicesFound), + ), + ] + : devices + .map( + (device) => PopupMenuItem( + value: device, + child: Row( + mainAxisSize: .min, + spacing: 12, + children: [ + Icon( + device.deviceId == activeDeviceId + ? Icons.check_circle_outlined + : Icons.circle_outlined, + ), + Expanded( + child: Text( + device.label, + maxLines: 1, + overflow: .ellipsis, + ), + ), + ], + ), + ), + ) + .toList(), + ); + } + + Future selectCamera(BuildContext context) async { + final devices = await lk.Hardware.instance.videoInputs(); + if (!context.mounted) return; + final source = await _selectMediaDevice( + context, + devices, + value.room?.selectedVideoInputDeviceId, + ); + if (source == null) return; + await value.room?.setVideoInputDevice(source); + } + + Future selectMicrophone(BuildContext context) async { + final devices = await lk.Hardware.instance.audioInputs(); + if (!context.mounted) return; + final source = await _selectMediaDevice( + context, + devices, + value.room?.selectedAudioInputDeviceId, + ); + if (source == null) return; + await value.room?.setAudioInputDevice(source); + } + + Future selectSpeaker(BuildContext context) async { + final devices = await lk.Hardware.instance.audioOutputs(); + if (!context.mounted) return; + if (devices.isEmpty && PlatformInfos.isMobile) { + final preferSpeaker = lk.AudioManager.instance.isSpeakerOutputPreferred; + final toggle = await showMenu( + context: context, + position: context.position, + items: [ + PopupMenuItem( + value: true, + child: Row( + mainAxisSize: .min, + spacing: 12, + children: [ + Icon( + preferSpeaker + ? Icons.check_circle_outlined + : Icons.circle_outlined, + ), + Expanded( + child: Text( + L10n.of(context).preferSpeaker, + maxLines: 1, + overflow: .ellipsis, + ), + ), + ], + ), + ), + ], + ); + if (toggle == null) return; + await lk.AudioManager.instance.setSpeakerOutputPreferred(!preferSpeaker); + return; + } + final source = await _selectMediaDevice( + context, + devices, + value.room?.selectedAudioOutputDeviceId, + ); + if (source == null) return; + await value.room?.setAudioOutputDevice(source); + } +} diff --git a/lib/pages/call/start_time.dart b/lib/pages/call/start_time.dart new file mode 100644 index 0000000..c2ca06c --- /dev/null +++ b/lib/pages/call/start_time.dart @@ -0,0 +1,43 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; + +import 'package:flutter/widgets.dart'; + +class StartTime extends StatefulWidget { + final DateTime startTime; + const StartTime({required this.startTime, super.key}); + + @override + State createState() => _StartTimeState(); +} + +class _StartTimeState extends State { + late final Timer _timer; + + @override + void initState() { + _timer = Timer.periodic(const Duration(seconds: 1), (_) => setState(() {})); + super.initState(); + } + + @override + void dispose() { + _timer.cancel(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + final duration = DateTime.now().difference(widget.startTime); + return Center( + child: Text( + '${duration.inMinutes.toString().padLeft(2, '0')}:${(duration.inSeconds % 60).toString().padLeft(2, '0')}', + style: TextStyle(fontSize: 11), + ), + ); + } +} diff --git a/lib/pages/call/utils/get_call_tiles.dart b/lib/pages/call/utils/get_call_tiles.dart new file mode 100644 index 0000000..266b79e --- /dev/null +++ b/lib/pages/call/utils/get_call_tiles.dart @@ -0,0 +1,109 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:collection/collection.dart'; +import 'package:tatchat/utils/matrix_live_kit_calls/matrix_live_kit_call.dart'; +import 'package:livekit_client/livekit_client.dart' as lk; +import 'package:matrix/matrix.dart'; + +typedef TileData = ({ + String id, + lk.TrackPublication? video, + lk.TrackPublication? audio, + User user, + bool connected, + bool isSpeaking, +}); + +extension GetCallTiles on lk.Room { + /// Calculates all call tiles to be rendered for this call in this matrix + /// room. For users without any camera track it adds a CallTile with a + /// null video track at least. + List getCallTiles(Room room) { + final tiles = []; + + for (final member in room.getActiveMatrixRtcMembers()) { + final participantId = '${member.senderId}:${member.deviceId}'; + + // The local user is handled below: + if (localParticipant?.identity == participantId || + (member.senderId == room.client.userID && + member.deviceId == room.client.deviceID)) { + continue; + } + + final participant = + remoteParticipants[participantId] ?? + remoteParticipants[member.membershipId]; + final matrixId = member.senderId ?? participant?.matrixId; + if (matrixId == null) { + Logs().wtf('No matrix ID found for this member!'); + continue; + } + final user = room.unsafeGetUserFromMemoryOrFallback(matrixId); + final audio = participant?.audioTrackPublications.firstOrNull; + if (participant == null || + !participant.videoTrackPublications.any( + (pub) => !pub.isScreenShare, + )) { + tiles.add(( + id: '${participantId}_none', + user: user, + video: null, + audio: audio, + connected: participant != null, + isSpeaking: participant?.isSpeaking == true, + )); + } + for (final pub + in participant?.videoTrackPublications ?? + >[]) { + tiles.add(( + id: '${participantId}_${pub.name}', + user: user, + video: pub, + audio: pub.isScreenShare ? null : audio, + connected: participant != null, + isSpeaking: participant?.isSpeaking == true && !pub.isScreenShare, + )); + } + } + + // Handle the local participant here: + final ownUser = room.unsafeGetUserFromMemoryOrFallback(room.client.userID!); + for (final pub + in localParticipant?.videoTrackPublications ?? + >[]) { + tiles.add(( + id: '${localParticipant?.identity ?? ownUser.id}_${pub.name}', + user: ownUser, + video: pub, + audio: localParticipant?.audioTrackPublications.firstOrNull, + connected: localParticipant != null, + isSpeaking: localParticipant?.isSpeaking == true && !pub.isScreenShare, + )); + } + + if (localParticipant?.videoTrackPublications.any( + (pub) => !pub.isScreenShare, + ) != + true) { + tiles.add(( + id: '${localParticipant?.identity ?? ownUser.id}_none', + user: ownUser, + video: null, + audio: localParticipant?.audioTrackPublications.firstOrNull, + connected: localParticipant != null, + isSpeaking: localParticipant?.isSpeaking == true, + )); + } + + return tiles; + } +} + +extension on lk.RemoteParticipant { + String get matrixId => (identity.split(':')..removeLast()).join(':'); +} diff --git a/lib/pages/chat/chat.dart b/lib/pages/chat/chat.dart new file mode 100644 index 0000000..39d5f03 --- /dev/null +++ b/lib/pages/chat/chat.dart @@ -0,0 +1,1665 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; +import 'dart:io'; + +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/setting_keys.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat/chat_view.dart'; +import 'package:tatchat/pages/chat/event_info_dialog.dart'; +import 'package:tatchat/pages/chat/start_poll_bottom_sheet.dart'; +import 'package:tatchat/pages/chat/trust_user_key_dialog.dart'; +import 'package:tatchat/pages/chat/utils/web_file_to_x_file.dart'; +import 'package:tatchat/pages/chat_details/chat_details.dart'; +import 'package:tatchat/utils/adaptive_bottom_sheet.dart'; +import 'package:tatchat/utils/error_reporter.dart'; +import 'package:tatchat/utils/file_selector.dart'; +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/other_party_can_receive.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/utils/show_scaffold_dialog.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/future_loading_dialog.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:tatchat/widgets/mxc_image.dart'; +import 'package:tatchat/widgets/share_scaffold_dialog.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/services.dart'; +import 'package:go_router/go_router.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; +import 'package:mime/mime.dart'; +import 'package:pasteboard/pasteboard.dart'; +import 'package:scroll_to_index/scroll_to_index.dart'; +import 'package:universal_html/universal_html.dart' as web; + +import '../../utils/account_bundles.dart'; +import '../../utils/localized_exception_extension.dart'; +import 'send_file_dialog.dart'; +import 'send_location_dialog.dart'; + +class ChatPage extends StatelessWidget { + final String roomId; + final List? shareItems; + final String? eventId; + final Timeline? timeline; + final String? action; + + const ChatPage({ + super.key, + required this.roomId, + this.eventId, + this.shareItems, + this.timeline, + this.action, + }); + + @override + Widget build(BuildContext context) { + final room = + timeline?.room ?? Matrix.of(context).client.getRoomById(roomId); + if (room == null) { + return Scaffold( + appBar: AppBar(title: Text(L10n.of(context).oopsSomethingWentWrong)), + body: Center( + child: Padding( + padding: const EdgeInsets.all(16), + child: Text(L10n.of(context).youAreNoLongerParticipatingInThisChat), + ), + ), + ); + } + + return ChatPageWithRoom( + key: Key('chat_page_${roomId}_${eventId}_$action'), + room: room, + shareItems: shareItems, + eventId: eventId, + timeline: timeline, + action: action, + ); + } +} + +class ChatPageWithRoom extends StatefulWidget { + final Room room; + final List? shareItems; + final String? eventId; + final Timeline? timeline; + final String? action; + + const ChatPageWithRoom({ + super.key, + required this.room, + this.shareItems, + this.eventId, + this.timeline, + this.action, + }); + + @override + ChatController createState() => ChatController(); +} + +class ChatController extends State + with WidgetsBindingObserver { + Room get room => sendingClient.getRoomById(roomId) ?? widget.room; + + late Client sendingClient; + + Timeline? timeline; + + String? activeThreadId; + + late final Set bigEmojis; + + late final String readMarkerEventId; + + String get roomId => widget.room.id; + + final AutoScrollController scrollController = AutoScrollController(); + + late final FocusNode inputFocus; + + Timer? typingCoolDown; + Timer? typingTimeout; + bool currentlyTyping = false; + bool dragging = false; + + final GlobalKey inputBarKey = GlobalKey(); + + void onDragEntered(_) => setState(() => dragging = true); + + void onDragExited(_) => setState(() => dragging = false); + + Future onDragDone(DropDoneDetails details) async { + setState(() => dragging = false); + if (details.files.isEmpty) return; + + await showAdaptiveDialog( + context: context, + builder: (c) => SendFileDialog( + files: details.files, + room: room, + outerContext: context, + threadRootEventId: activeThreadId, + threadLastEventId: threadLastEventId, + ), + ); + } + + bool get canSaveSelectedEvent => + selectedEvents.length == 1 && + { + MessageTypes.Video, + MessageTypes.Image, + MessageTypes.Sticker, + MessageTypes.Audio, + MessageTypes.File, + }.contains(selectedEvents.single.messageType); + + void saveSelectedEvent(BuildContext context) => + selectedEvents.single.saveFile(context); + + List selectedEvents = []; + + final Set unfolded = {}; + + Event? replyEvent; + + Event? editEvent; + + bool _scrolledUp = false; + + bool get showScrollDownButton => + _scrolledUp || timeline?.allowNewEvent == false; + + bool get selectMode => selectedEvents.isNotEmpty; + + final int _loadHistoryCount = 100; + + String pendingText = ''; + + bool showEmojiPicker = false; + + String? get threadLastEventId { + final threadId = activeThreadId; + if (threadId == null) return null; + return timeline?.events + .filterByVisibleInGui(threadId: threadId) + .firstOrNull + ?.eventId; + } + + void enterThread(String eventId) => setState(() { + activeThreadId = eventId; + selectedEvents.clear(); + }); + + void closeThread() => setState(() { + activeThreadId = null; + selectedEvents.clear(); + }); + + Future recreateChat() async { + final room = this.room; + final userId = room.directChatMatrixID; + if (userId == null) { + throw Exception( + 'Try to recreate a room with is not a DM room. This should not be possible from the UI!', + ); + } + await showFutureLoadingDialog( + context: context, + future: () => room.invite(userId), + ); + } + + Future leaveChat() async { + final success = await showFutureLoadingDialog( + context: context, + future: room.leave, + ); + if (!mounted) return; + if (success.error != null) return; + context.go('/rooms'); + } + + Future requestHistory([_]) async { + Logs().v('Requesting history...'); + await timeline?.requestHistory(historyCount: _loadHistoryCount); + } + + Future requestFuture() async { + final timeline = this.timeline; + if (timeline == null) return; + Logs().v('Requesting future...'); + + final mostRecentEvent = timeline.events.filterByVisibleInGui().firstOrNull; + + await timeline.requestFuture(historyCount: _loadHistoryCount); + + if (mostRecentEvent != null) { + setReadMarker(eventId: mostRecentEvent.eventId); + WidgetsBinding.instance.addPostFrameCallback((_) { + final index = timeline.events.filterByVisibleInGui().indexOf( + mostRecentEvent, + ); + if (index >= 0) { + scrollController.scrollToIndex( + index, + preferPosition: AutoScrollPosition.begin, + ); + } + }); + } + } + + void _updateScrollController() { + if (!mounted) { + return; + } + if (!scrollController.hasClients) return; + if (timeline?.allowNewEvent == false || + scrollController.position.pixels > 0 && _scrolledUp == false) { + setState(() => _scrolledUp = true); + } else if (scrollController.position.pixels <= 0 && _scrolledUp == true) { + setState(() => _scrolledUp = false); + setReadMarker(); + } + } + + void _loadDraft() { + final prefs = Matrix.of(context).store; + final draft = prefs.getString('draft_$roomId'); + if (draft != null && draft.isNotEmpty) { + sendController.text = draft; + } + } + + Future _shareItems() async { + final shareItems = widget.shareItems; + if (shareItems == null || shareItems.isEmpty) return; + if (!room.otherPartyCanReceiveMessages) { + final theme = Theme.of(context); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + backgroundColor: theme.colorScheme.errorContainer, + closeIconColor: theme.colorScheme.onErrorContainer, + content: Text( + L10n.of(context).otherPartyNotLoggedIn, + style: TextStyle(color: theme.colorScheme.onErrorContainer), + ), + showCloseIcon: true, + ), + ); + return; + } + final proceed = await showTrustUserInRoomDialog(context, room); + if (!mounted || !proceed) return; + for (final item in shareItems) { + if (item is FileShareItem) continue; + if (item is TextShareItem) room.sendTextEvent(item.value); + if (item is ContentShareItem) room.sendEvent(item.value.copy()); + } + final files = shareItems + .whereType() + .map((item) => item.value) + .toList(); + if (files.isEmpty) return; + showAdaptiveDialog( + context: context, + builder: (c) => SendFileDialog( + files: files, + room: room, + outerContext: context, + threadRootEventId: activeThreadId, + threadLastEventId: threadLastEventId, + ), + ); + } + + KeyEventResult _customEnterKeyHandling(FocusNode node, KeyEvent evt) { + if (evt is KeyDownEvent && + evt.logicalKey == LogicalKeyboardKey.arrowUp && + !PlatformInfos.isMobile && + editEvent == null && + replyEvent == null && + sendController.text.isEmpty) { + _editLastSentMessage(); + return KeyEventResult.handled; + } + + if (evt is KeyDownEvent && + evt.logicalKey == LogicalKeyboardKey.escape && + editEvent != null) { + _cancelEditWithConfirmation(); + return KeyEventResult.handled; + } + + if (!HardwareKeyboard.instance.isShiftPressed && + evt.logicalKey.keyLabel == 'Enter' && + AppSettings.sendOnEnter.value) { + if (evt is KeyDownEvent) { + send(); + } + return KeyEventResult.handled; + } else if (evt.logicalKey.keyLabel == 'Enter' && evt is KeyDownEvent) { + final currentLineNum = + sendController.text + .substring(0, sendController.selection.baseOffset) + .split('\n') + .length - + 1; + final currentLine = sendController.text.split('\n')[currentLineNum]; + + for (final pattern in [ + '- [ ] ', + '- [x] ', + '* [ ] ', + '* [x] ', + '- ', + '* ', + '+ ', + ]) { + if (currentLine.startsWith(pattern)) { + if (currentLine == pattern) { + return KeyEventResult.ignored; + } + sendController.text += '\n$pattern'; + return KeyEventResult.handled; + } + } + + return KeyEventResult.ignored; + } else { + return KeyEventResult.ignored; + } + } + + @override + void initState() { + inputFocus = FocusNode(onKeyEvent: _customEnterKeyHandling); + + scrollController.addListener(_updateScrollController); + inputFocus.addListener(_inputFocusListener); + + _loadDraft(); + WidgetsBinding.instance.addPostFrameCallback((_) { + _shareItems(); + _checkMatrixRtcCallSupport(); + if (widget.action == 'call') { + Matrix.of(context).activeCallRoomId.value = room.id; + } + }); + web.window.addEventListener('paste', _handleClipboardFilePasteWeb); + + super.initState(); + _displayChatDetailsColumn = ValueNotifier( + AppSettings.displayChatDetailsColumn.value, + ); + + bigEmojis = defaultEmojiSet.fold( + {}, + (emojis, category) => { + ...emojis, + ...(category.emoji.map((emoji) => emoji.emoji)), + }, + ); + + sendingClient = Matrix.of(context).client; + final lastEventThreadId = + room.lastEvent?.relationshipType == RelationshipTypes.thread + ? room.lastEvent?.relationshipEventId + : null; + readMarkerEventId = room.hasNewMessages + ? lastEventThreadId ?? room.fullyRead + : ''; + WidgetsBinding.instance.addObserver(this); + _tryLoadTimeline(); + } + + Future _checkMatrixRtcCallSupport() async { + try { + final urls = await room.client.getLiveKitServiceUrls(); + if (urls.isEmpty) return; + setState(() { + supportLiveKitCalls = true; + }); + } catch (e) { + Logs().d('Unable to check MatrixRTC call support', e); + } + } + + final Set expandedEventIds = {}; + + void expandEventsFrom(Event event, bool expand) { + final events = timeline!.events.filterByVisibleInGui( + threadId: activeThreadId, + ); + final start = events.indexOf(event); + setState(() { + for (var i = start; i < events.length; i++) { + final event = events[i]; + if (!event.isCollapsedState) return; + if (expand) { + expandedEventIds.add(event.eventId); + } else { + expandedEventIds.remove(event.eventId); + } + } + }); + } + + Future _tryLoadTimeline() async { + final initialEventId = widget.eventId; + loadTimelineFuture = _getTimeline(); + try { + await loadTimelineFuture; + // We launched the chat with a given initial event ID: + if (initialEventId != null) { + scrollToEventId(initialEventId); + return; + } + + var readMarkerEventIndex = readMarkerEventId.isEmpty + ? -1 + : timeline!.events + .filterByVisibleInGui( + exceptionEventId: readMarkerEventId, + threadId: activeThreadId, + ) + .indexWhere((e) => e.eventId == readMarkerEventId); + + // Read marker is existing but not found in first events. Try a single + // requestHistory call before opening timeline on event context: + if (readMarkerEventId.isNotEmpty && readMarkerEventIndex == -1) { + await timeline?.requestHistory(historyCount: _loadHistoryCount); + readMarkerEventIndex = timeline!.events + .filterByVisibleInGui( + exceptionEventId: readMarkerEventId, + threadId: activeThreadId, + ) + .indexWhere((e) => e.eventId == readMarkerEventId); + } + + if (readMarkerEventIndex > 1) { + Logs().v('Scroll up to visible event', readMarkerEventId); + scrollToEventId(readMarkerEventId, highlightEvent: false); + return; + } else if (readMarkerEventId.isNotEmpty && readMarkerEventIndex == -1) { + _showScrollUpMaterialBanner(readMarkerEventId); + } + + // Mark room as read on first visit if requirements are fulfilled + setReadMarker(); + + if (!mounted) return; + } catch (e, s) { + ErrorReporter(context, 'Unable to load timeline').onErrorCallback(e, s); + rethrow; + } + } + + String? scrollUpBannerEventId; + + void discardScrollUpBannerEventId() => setState(() { + scrollUpBannerEventId = null; + }); + + void _showScrollUpMaterialBanner(String eventId) => setState(() { + scrollUpBannerEventId = eventId; + }); + + String? animateInEventId; + + Future _insert(int index) async { + if (index > 0) return; + final firstEvent = timeline?.events.firstOrNull; + final eventId = firstEvent?.transactionId ?? firstEvent?.eventId; + animateInEventId = eventId; + await Future.delayed(FluffyThemes.animationDuration); + if (animateInEventId == eventId) animateInEventId = null; + } + + void updateView() { + if (!mounted) return; + setReadMarker(); + setState(() {}); + } + + Future? loadTimelineFuture; + + Future _getTimeline({String? eventContextId}) async { + final matrix = Matrix.of(context); + await matrix.client.roomsLoading; + await matrix.client.accountDataLoading; + if (eventContextId != null && + (!eventContextId.isValidMatrixIdStrict() || + eventContextId.sigil != '\$')) { + eventContextId = null; + } + try { + timeline?.cancelSubscriptions(); + timeline = + widget.timeline ?? + await room.getTimeline( + onUpdate: updateView, + onInsert: _insert, + eventContextId: eventContextId, + ); + } catch (e, s) { + Logs().w('Unable to load timeline on event ID $eventContextId', e, s); + if (!mounted) return; + timeline = await room.getTimeline(onUpdate: updateView); + if (!mounted) return; + if (e is TimeoutException || e is IOException) { + _showScrollUpMaterialBanner(eventContextId!); + } + } + timeline!.requestKeys(onlineKeyBackupOnly: false); + if (room.markedUnread) room.markUnread(false); + + return; + } + + String? scrollToEventIdMarker; + + @override + void didChangeAppLifecycleState(AppLifecycleState state) { + if (state != AppLifecycleState.resumed) return; + if (!mounted) return; + setReadMarker(); + } + + Future? _setReadMarkerFuture; + + void setReadMarker({String? eventId}) { + // Do not send read markers when app is not in foreground + if (WidgetsBinding.instance.lifecycleState != AppLifecycleState.resumed) { + return; + } + + // We are already setting a read marker + if (_setReadMarkerFuture != null) return; + + // We only set read marker if we are at the bottom + if (_scrolledUp) return; + + // We do not set read marker if we offer user the scroll up banner + if (scrollUpBannerEventId != null) return; + + // We do not set read marker if timeline is empty + final timeline = this.timeline; + if (timeline == null || timeline.events.isEmpty) return; + + // Do not set read marker on rtc notification while call is active. This + // mutes callkit. + if (room.hasActiveMatrixRtcCall && + timeline.events.first.type == RtcNotificationContent.eventType) { + return; + } + + final setOnLatestEvent = eventId == null; + eventId ??= timeline.events + .firstWhereOrNull( + (event) => room.pushRuleState == PushRuleState.notify + ? room.client.pushruleEvaluator.match(event).notify + : { + EventTypes.Message, + EventTypes.Encrypted, + EventTypes.Sticker, + }.contains(event.type) && + event.eventId.isValidMatrixIdStrict(), + ) + ?.eventId; + + // There is no event we could place a read marker + if (eventId == null) return; + + // This is a sending event, we do not set a readmarker yet + if (eventId.isValidMatrixIdStrict() == false) return; + + // Already set a read marker on this event + if (room.fullyRead == eventId && !setOnLatestEvent) return; + + // Set a readmarker on a specific event, not latest, but room is not unread + // at all. + if (setOnLatestEvent && + !room.hasNewMessages && + room.notificationCount == 0) { + return; + } + + Logs().d('Set read marker...', eventId); + // ignore: unawaited_futures + _setReadMarkerFuture = timeline + .setReadMarker( + eventId: eventId, + public: AppSettings.sendPublicReadReceipts.value, + ) + .then((_) { + _setReadMarkerFuture = null; + }); + } + + @override + void dispose() { + timeline?.cancelSubscriptions(); + timeline = null; + _storeInputTimeoutTimer?.cancel(); + typingCoolDown?.cancel(); + typingTimeout?.cancel(); + sendController.dispose(); + scrollController.dispose(); + inputFocus.removeListener(_inputFocusListener); + inputFocus.dispose(); + _displayChatDetailsColumn.dispose(); + web.window.removeEventListener('paste', _handleClipboardFilePasteWeb); + if (currentlyTyping) room.setTyping(false); + MxcImage.clearCache(widget.room.id); + super.dispose(); + } + + TextEditingController sendController = TextEditingController(); + + void setSendingClient(Client c) { + // first cancel typing with the old sending client + if (currentlyTyping) { + // no need to have the setting typing to false be blocking + typingCoolDown?.cancel(); + typingCoolDown = null; + room.setTyping(false); + currentlyTyping = false; + } + // then cancel the old timeline + // fixes bug with read reciepts and quick switching + loadTimelineFuture = _getTimeline(eventContextId: room.fullyRead).onError( + ErrorReporter( + context, + 'Unable to load timeline after changing sending Client', + ).onErrorCallback, + ); + + // then set the new sending client + setState(() => sendingClient = c); + } + + void setActiveClient(Client c) => setState(() { + Matrix.of(context).setActiveClient(c); + }); + + Future send() async { + final proceed = await showTrustUserInRoomDialog(context, room); + if (!mounted || !proceed) return; + if (sendController.text.trim().isEmpty) return; + _storeInputTimeoutTimer?.cancel(); + final prefs = Matrix.of(context).store; + prefs.remove('draft_$roomId'); + var parseCommands = true; + + final commandMatch = RegExp(r'^\/(\w+)').firstMatch(sendController.text); + if (commandMatch != null && + !sendingClient.commands.keys.contains(commandMatch[1]!.toLowerCase())) { + final l10n = L10n.of(context); + final dialogResult = await showOkCancelAlertDialog( + context: context, + title: l10n.commandInvalid, + message: l10n.commandMissing(commandMatch[0]!), + okLabel: l10n.sendAsText, + cancelLabel: l10n.cancel, + ); + if (dialogResult == OkCancelResult.cancel) return; + parseCommands = false; + } + + if (currentlyTyping) { + typingCoolDown?.cancel(); + currentlyTyping = false; + room.setTyping(false); + } + + // ignore: unawaited_futures + room.sendTextEvent( + sendController.text, + inReplyTo: replyEvent, + editEventId: editEvent?.eventId, + parseCommands: parseCommands, + threadRootEventId: activeThreadId, + ); + sendController.value = TextEditingValue( + text: pendingText, + selection: const TextSelection.collapsed(offset: 0), + ); + + setState(() { + sendController.text = pendingText; + _inputTextIsEmpty = pendingText.isEmpty; + replyEvent = null; + editEvent = null; + pendingText = ''; + }); + } + + Future sendFileAction({FileType type = FileType.any}) async { + final files = await selectFiles(context, allowMultiple: true, type: type); + if (files.isEmpty) return; + if (!mounted) return; + await showAdaptiveDialog( + context: context, + builder: (c) => SendFileDialog( + files: files, + room: room, + outerContext: context, + threadRootEventId: activeThreadId, + threadLastEventId: threadLastEventId, + ), + ); + } + + Future sendImageFromClipBoard(Uint8List? image) async { + if (image == null) return; + await showAdaptiveDialog( + context: context, + builder: (c) => SendFileDialog( + files: [XFile.fromData(image)], + room: room, + outerContext: context, + threadRootEventId: activeThreadId, + threadLastEventId: threadLastEventId, + ), + ); + } + + Future openCameraAction() async { + inputFocus.unfocus(); + final file = await ImagePicker().pickImage(source: ImageSource.camera); + if (file == null) return; + if (!mounted) return; + + await showAdaptiveDialog( + context: context, + builder: (c) => SendFileDialog( + files: [file], + room: room, + outerContext: context, + threadRootEventId: activeThreadId, + threadLastEventId: threadLastEventId, + ), + ); + } + + Future _handleClipboardFilePasteWeb(web.Event event) async { + if (event is! web.ClipboardEvent) return; + + final clipboardFiles = event.clipboardData?.files; + final length = clipboardFiles?.length ?? 0; + if (clipboardFiles == null || length < 1) return; + + // Browser will clear clipboardData when we await! + // We MUST extract the files synchronously first. + final localFiles = clipboardFiles.toList(); + + if (localFiles.isEmpty) return; + + event.preventDefault(); + event.stopPropagation(); + + final xFilesResult = await showFutureLoadingDialog( + context: context, + future: () async { + // Convert one after another seems to be more stable + final xFiles = []; + for (final file in localFiles) { + xFiles.add(await webToXFile(file)); + } + return xFiles; + }, + ); + final xFiles = xFilesResult.result; + if (xFiles == null || xFiles.isEmpty) return; + + if (!mounted) return; + showAdaptiveDialog( + context: context, + builder: (c) => SendFileDialog( + files: xFiles, + room: room, + outerContext: context, + threadRootEventId: activeThreadId, + threadLastEventId: threadLastEventId, + ), + ); + } + + Future _handleClipboardImagePaste() async { + final files = await Pasteboard.files(); + if (files.isNotEmpty) { + if (!mounted) return; + await showAdaptiveDialog( + context: context, + builder: (c) => SendFileDialog( + files: files.map(XFile.new).toList(), + room: room, + outerContext: context, + threadRootEventId: activeThreadId, + threadLastEventId: threadLastEventId, + ), + ); + return; + } + final image = await Pasteboard.image; + if (image != null) { + await sendImageFromClipBoard(image); + return; + } + // No image in clipboard — fall back to pasting text + final textData = await Clipboard.getData('text/plain'); + if (textData?.text != null) { + final selection = sendController.selection; + final text = sendController.text; + final newText = text.replaceRange( + selection.start, + selection.end, + textData!.text!, + ); + sendController.value = TextEditingValue( + text: newText, + selection: TextSelection.collapsed( + offset: selection.start + textData.text!.length, + ), + ); + onInputBarChanged(sendController.text); + } + } + + Future openVideoCameraAction() async { + inputFocus.unfocus(); + final file = await ImagePicker().pickVideo( + source: ImageSource.camera, + maxDuration: const Duration(minutes: 1), + ); + if (file == null) return; + if (!mounted) return; + + await showAdaptiveDialog( + context: context, + builder: (c) => SendFileDialog( + files: [file], + room: room, + outerContext: context, + threadRootEventId: activeThreadId, + threadLastEventId: threadLastEventId, + ), + ); + } + + Future onVoiceMessageSend( + String path, + int duration, + List waveform, + String fileName, + ) async { + final proceed = await showTrustUserInRoomDialog(context, room); + if (!mounted || !proceed) return; + final scaffoldMessenger = ScaffoldMessenger.of(context); + final audioFile = XFile(path); + + final bytesResult = await showFutureLoadingDialog( + context: context, + future: audioFile.readAsBytes, + ); + final bytes = bytesResult.result; + if (bytes == null) return; + + final mimeType = lookupMimeType(fileName, headerBytes: bytes); + final extension = mimeType == null ? null : extensionFromMime(mimeType); + if (extension != null) { + fileName = + 'voice_message_${DateTime.now().millisecondsSinceEpoch}.$extension'; + } + + final file = MatrixAudioFile( + bytes: bytes, + name: fileName, + mimeType: mimeType, + ); + + try { + await room.sendFileEvent( + file, + inReplyTo: replyEvent, + threadRootEventId: activeThreadId, + extraContent: { + 'info': {...file.info, 'duration': duration}, + 'org.matrix.msc3245.voice': {}, + 'org.matrix.msc1767.audio': { + 'duration': duration, + 'waveform': waveform, + }, + }, + ); + } catch (e) { + if (!mounted) return; + scaffoldMessenger.showSnackBar( + SnackBar(content: Text(e.toLocalizedString(context))), + ); + return; + } + setState(() { + replyEvent = null; + }); + return; + } + + void hideEmojiPicker() { + setState(() => showEmojiPicker = false); + } + + void emojiPickerAction() { + if (showEmojiPicker) { + inputFocus.requestFocus(); + } else { + inputFocus.unfocus(); + } + setState(() => showEmojiPicker = !showEmojiPicker); + } + + void _inputFocusListener() { + if (showEmojiPicker && inputFocus.hasFocus) { + setState(() => showEmojiPicker = false); + } + } + + Future sendLocationAction() async { + await showAdaptiveDialog( + context: context, + builder: (c) => SendLocationDialog(room: room), + ); + } + + String _getSelectedEventString() { + var copyString = ''; + if (selectedEvents.length == 1) { + return selectedEvents.first.getDisplayEvent(timeline!).body; + } + for (final event in selectedEvents) { + if (copyString.isNotEmpty) copyString += '\n\n'; + copyString += event.getDisplayEvent(timeline!).body; + } + return copyString; + } + + void copyEventsAction() { + Clipboard.setData(ClipboardData(text: _getSelectedEventString())); + setState(() { + showEmojiPicker = false; + selectedEvents.clear(); + }); + } + + Future reportEventAction() async { + final event = selectedEvents.single; + final l10n = L10n.of(context); + final scaffoldMessenger = ScaffoldMessenger.of(context); + if (!mounted) return; + final reason = await showTextInputDialog( + context: context, + title: l10n.whyDoYouWantToReportThis, + okLabel: l10n.ok, + cancelLabel: l10n.cancel, + hintText: l10n.reason, + ); + if (reason == null || reason.isEmpty) return; + if (!mounted) return; + final result = await showFutureLoadingDialog( + context: context, + future: () => Matrix.of( + context, + ).client.reportEvent(event.roomId!, event.eventId, reason: reason), + ); + if (result.error != null) return; + if (!mounted) return; + setState(() { + showEmojiPicker = false; + selectedEvents.clear(); + }); + scaffoldMessenger.showSnackBar( + SnackBar(content: Text(l10n.contentHasBeenReported)), + ); + } + + Future deleteErrorEventsAction() async { + try { + if (selectedEvents.any((event) => event.status != EventStatus.error)) { + throw Exception( + 'Tried to delete failed to send events but one event is not failed to sent', + ); + } + for (final event in selectedEvents) { + await event.cancelSend(); + } + setState(selectedEvents.clear); + } catch (e, s) { + if (!mounted) return; + ErrorReporter( + context, + 'Error while delete error events action', + ).onErrorCallback(e, s); + } + } + + Future redactEventsAction() async { + final reasonInput = selectedEvents.any((event) => event.status.isSent) + ? await showTextInputDialog( + context: context, + title: L10n.of(context).redactMessage, + message: L10n.of(context).redactMessageDescription, + isDestructive: true, + hintText: L10n.of(context).optionalRedactReason, + maxLength: 255, + maxLines: 3, + minLines: 1, + okLabel: L10n.of(context).remove, + cancelLabel: L10n.of(context).cancel, + ) + : null; + if (reasonInput == null) return; + final reason = reasonInput.isEmpty ? null : reasonInput; + if (!mounted) return; + await showFutureLoadingDialog( + context: context, + futureWithProgress: (onProgress) async { + final count = selectedEvents.length; + for (final (i, event) in selectedEvents.indexed) { + onProgress(i / count); + if (event.status.isSent) { + if (event.canRedact) { + await event.redactEvent(reason: reason); + } else { + final client = currentRoomBundle.firstWhere( + (cl) => selectedEvents.first.senderId == cl!.userID, + orElse: () => null, + ); + if (client == null) { + return; + } + final room = client.getRoomById(roomId)!; + await Event.fromJson( + event.toJson(), + room, + ).redactEvent(reason: reason); + } + } else { + await event.cancelSend(); + } + } + }, + ); + setState(() { + showEmojiPicker = false; + selectedEvents.clear(); + }); + } + + List get currentRoomBundle { + final clients = Matrix.of(context).currentBundle!; + clients.removeWhere((c) => c!.getRoomById(roomId) == null); + return clients; + } + + bool get canRedactSelectedEvents { + if (isArchived) return false; + final clients = Matrix.of(context).currentBundle; + for (final event in selectedEvents) { + if (!event.status.isSent) return false; + if (event.canRedact == false && + !(clients!.any((cl) => event.senderId == cl!.userID))) { + return false; + } + } + return true; + } + + bool get canPinSelectedEvents { + if (isArchived || + !room.canChangeStateEvent(EventTypes.RoomPinnedEvents) || + selectedEvents.length != 1 || + !selectedEvents.single.status.isSent || + activeThreadId != null) { + return false; + } + return true; + } + + bool get canEditSelectedEvents { + if (isArchived || + selectedEvents.length != 1 || + !selectedEvents.first.status.isSent) { + return false; + } + return currentRoomBundle.any( + (cl) => selectedEvents.first.senderId == cl!.userID, + ); + } + + Future forwardEventsAction() async { + if (selectedEvents.isEmpty) return; + final timeline = this.timeline; + if (timeline == null) return; + + final forwardEvents = List.from( + selectedEvents, + ).map((event) => event.getDisplayEvent(timeline)).toList(); + + await showScaffoldDialog( + context: context, + builder: (context) => ShareScaffoldDialog( + items: forwardEvents + .map((event) => ContentShareItem(event.content.copy())) + .toList(), + ), + ); + if (!mounted) return; + setState(() => selectedEvents.clear()); + } + + void sendAgainAction() { + final event = selectedEvents.first; + if (event.status.isError) { + event.sendAgain(); + } + final allEditEvents = event + .aggregatedEvents(timeline!, RelationshipTypes.edit) + .where((e) => e.status.isError); + for (final e in allEditEvents) { + e.sendAgain(); + } + setState(() => selectedEvents.clear()); + } + + void replyAction({Event? replyTo}) { + setState(() { + replyEvent = replyTo ?? selectedEvents.first; + selectedEvents.clear(); + }); + inputFocus.requestFocus(); + } + + Future scrollToEventId( + String eventId, { + bool highlightEvent = true, + }) async { + final foundEvent = timeline!.events.firstWhereOrNull( + (event) => event.eventId == eventId, + ); + + final eventIndex = foundEvent == null + ? -1 + : timeline!.events + .filterByVisibleInGui( + exceptionEventId: eventId, + threadId: activeThreadId, + ) + .indexOf(foundEvent); + + if (eventIndex == -1) { + setState(() { + timeline = null; + _scrolledUp = false; + loadTimelineFuture = _getTimeline(eventContextId: eventId).onError( + ErrorReporter( + context, + 'Unable to load timeline after scroll to ID', + ).onErrorCallback, + ); + }); + await loadTimelineFuture; + WidgetsBinding.instance.addPostFrameCallback((timeStamp) { + scrollToEventId(eventId); + }); + return; + } + if (highlightEvent) { + setState(() { + scrollToEventIdMarker = eventId; + }); + } + await scrollController.scrollToIndex( + eventIndex + 1, + duration: FluffyThemes.animationDuration, + preferPosition: AutoScrollPosition.middle, + ); + _updateScrollController(); + } + + Future scrollDown() async { + if (!timeline!.allowNewEvent) { + setState(() { + timeline = null; + _scrolledUp = false; + loadTimelineFuture = _getTimeline().onError( + ErrorReporter( + context, + 'Unable to load timeline after scroll down', + ).onErrorCallback, + ); + }); + await loadTimelineFuture; + } + scrollController.jumpTo(0); + } + + void onEmojiSelected(_, Emoji? emoji) { + typeEmoji(emoji); + onInputBarChanged(sendController.text); + } + + void typeEmoji(Emoji? emoji) { + if (emoji == null) return; + final text = sendController.text; + final selection = sendController.selection; + final start = selection.baseOffset == -1 ? 0 : selection.baseOffset; + final newText = sendController.text.isEmpty + ? emoji.emoji + : text.replaceRange(selection.start, selection.end, emoji.emoji); + sendController.value = TextEditingValue( + text: newText, + selection: TextSelection.collapsed( + // don't forget an UTF-8 combined emoji might have a length > 1 + offset: start + emoji.emoji.length, + ), + ); + } + + void emojiPickerBackspace() { + sendController + ..text = sendController.text.characters.skipLast(1).toString() + ..selection = TextSelection.fromPosition( + TextPosition(offset: sendController.text.length), + ); + } + + void clearSelectedEvents() => setState(() { + selectedEvents.clear(); + showEmojiPicker = false; + }); + + void clearSingleSelectedEvent() { + if (selectedEvents.length <= 1) { + clearSelectedEvents(); + } + } + + void _startEditingEvent(Event event, {bool clearSelection = false}) { + final timeline = this.timeline; + if (timeline == null) return; + + final client = currentRoomBundle.firstWhere( + (c) => c?.userID == event.senderId, + orElse: () => null, + ); + if (client == null) return; + + setSendingClient(client); + setState(() { + pendingText = sendController.text; + editEvent = event; + sendController.text = event + .getDisplayEvent(timeline) + .calcLocalizedBodyFallback( + MatrixLocals(L10n.of(context)), + withSenderNamePrefix: false, + hideReply: true, + ); + if (clearSelection) selectedEvents.clear(); + }); + inputFocus.requestFocus(); + } + + void editSelectedEventAction() { + _startEditingEvent(selectedEvents.first, clearSelection: true); + } + + void _editLastSentMessage() { + final timeline = this.timeline; + if (timeline == null) return; + + final events = timeline.events.filterByVisibleInGui( + threadId: activeThreadId, + ); + + final lastOwnMessage = events.firstWhereOrNull( + (e) => + e.type == EventTypes.Message && + e.messageType == MessageTypes.Text && + e.status.isSent && + !e.redacted && + currentRoomBundle.any((c) => c?.userID == e.senderId), + ); + + if (lastOwnMessage == null) return; + + _startEditingEvent(lastOwnMessage); + } + + Future goToNewRoomAction() async { + final result = await showFutureLoadingDialog( + context: context, + future: () async { + final users = await room.requestParticipants( + [Membership.join, Membership.leave], + true, + false, + ); + users.sort((a, b) => a.powerLevel.level.compareTo(b.powerLevel.level)); + final via = users + .map((user) => user.id.domain) + .whereType() + .toSet() + .take(10) + .toList(); + return room.client.joinRoom( + room + .getState(EventTypes.RoomTombstone)! + .parsedTombstoneContent + .replacementRoom, + via: via, + ); + }, + ); + if (result.error != null) return; + if (!mounted) return; + context.go('/rooms/${result.result!}'); + + await showFutureLoadingDialog(context: context, future: room.leave); + } + + void onSelectMessage(Event event) { + if (!event.redacted) { + if (selectedEvents.contains(event)) { + setState(() => selectedEvents.remove(event)); + } else { + setState(() => selectedEvents.add(event)); + } + selectedEvents.sort( + (a, b) => a.originServerTs.compareTo(b.originServerTs), + ); + } + } + + int? findChildIndexCallback(Key key, Map thisEventsKeyMap) { + // this method is called very often. As such, it has to be optimized for speed. + if (key is! ValueKey) { + return null; + } + final eventId = key.value; + if (eventId is! String) { + return null; + } + // first fetch the last index the event was at + final index = thisEventsKeyMap[eventId]; + if (index == null) { + return null; + } + // we need to +1 as 0 is the typing thing at the bottom + return index + 1; + } + + void onInputBarSubmitted(String _) { + send(); + FocusScope.of(context).requestFocus(inputFocus); + } + + void onAddPopupMenuButtonSelected(AddPopupMenuActions choice) { + room.client.getConfig(); + + switch (choice) { + case AddPopupMenuActions.media: + sendFileAction(type: FileType.media); + return; + case AddPopupMenuActions.file: + sendFileAction(); + return; + case AddPopupMenuActions.poll: + showAdaptiveBottomSheet( + context: context, + builder: (context) => StartPollBottomSheet(room: room), + ); + return; + case AddPopupMenuActions.photoCamera: + openCameraAction(); + return; + case AddPopupMenuActions.videoCamera: + openVideoCameraAction(); + return; + case AddPopupMenuActions.location: + sendLocationAction(); + return; + } + } + + Future unpinEvent(String eventId) async { + final response = await showOkCancelAlertDialog( + context: context, + title: L10n.of(context).unpin, + message: L10n.of(context).confirmEventUnpin, + okLabel: L10n.of(context).unpin, + cancelLabel: L10n.of(context).cancel, + ); + if (!mounted) return; + if (response == OkCancelResult.ok) { + final events = room.pinnedEventIds + ..removeWhere((oldEvent) => oldEvent == eventId); + showFutureLoadingDialog( + context: context, + future: () => room.setPinnedEvents(events), + ); + } + } + + void pinEvent() { + final pinnedEventIds = room.pinnedEventIds; + final selectedEventIds = selectedEvents.map((e) => e.eventId).toSet(); + final unpin = + selectedEventIds.length == 1 && + pinnedEventIds.contains(selectedEventIds.single); + if (unpin) { + pinnedEventIds.removeWhere(selectedEventIds.contains); + } else { + pinnedEventIds.addAll(selectedEventIds); + } + showFutureLoadingDialog( + context: context, + future: () => room.setPinnedEvents(pinnedEventIds), + ); + } + + Timer? _storeInputTimeoutTimer; + static const Duration _storeInputTimeout = Duration(milliseconds: 500); + + double? inputBarHeight; + + void updateInputBarHeight() { + RenderBox? renderBox; + if (inputBarKey.currentContext?.findRenderObject() != null) { + renderBox = inputBarKey.currentContext!.findRenderObject() as RenderBox; + } + + final height = renderBox?.size.height ?? 72.0; + if (height != inputBarHeight) { + setState(() { + inputBarHeight = height; + }); + } + } + + void onInputBarChanged(String text) { + if (_inputTextIsEmpty != text.isEmpty) { + setState(() { + _inputTextIsEmpty = text.isEmpty; + }); + } + + _storeInputTimeoutTimer?.cancel(); + _storeInputTimeoutTimer = Timer(_storeInputTimeout, () async { + final prefs = Matrix.of(context).store; + await prefs.setString('draft_$roomId', text); + }); + if (text.endsWith(' ') && Matrix.of(context).hasComplexBundles) { + final clients = currentRoomBundle; + for (final client in clients) { + final prefix = client!.sendPrefix; + if ((prefix.isNotEmpty) && + text.toLowerCase() == '${prefix.toLowerCase()} ') { + setSendingClient(client); + setState(() { + sendController.clear(); + }); + return; + } + } + } + if (AppSettings.sendTypingNotifications.value) { + typingCoolDown?.cancel(); + typingCoolDown = Timer(const Duration(seconds: 2), () { + if (!mounted) return; + typingCoolDown = null; + currentlyTyping = false; + room.setTyping(false); + }); + typingTimeout ??= Timer(const Duration(seconds: 30), () { + typingTimeout = null; + currentlyTyping = false; + }); + if (!currentlyTyping) { + currentlyTyping = true; + room.setTyping( + true, + timeout: const Duration(seconds: 30).inMilliseconds, + ); + } + } + } + + bool _inputTextIsEmpty = true; + + bool get isArchived => + {Membership.leave, Membership.ban}.contains(room.membership); + + void showEventInfo([Event? event]) => + (event ?? selectedEvents.single).showInfoDialog(context); + + void cancelReplyEventAction() => setState(() { + if (editEvent != null) { + sendController.text = pendingText; + pendingText = ''; + } + replyEvent = null; + editEvent = null; + }); + + void startOrJoinVideoCall() { + Matrix.of(context).activeCallRoomId.value = room.id; + } + + bool supportLiveKitCalls = false; + + Future _cancelEditWithConfirmation() async { + final originalText = editEvent! + .getDisplayEvent(timeline!) + .calcLocalizedBodyFallback( + MatrixLocals(L10n.of(context)), + withSenderNamePrefix: false, + hideReply: true, + ); + + if (sendController.text != originalText) { + final result = await showOkCancelAlertDialog( + context: context, + title: L10n.of(context).areYouSure, + message: L10n.of(context).discardEdits, + okLabel: L10n.of(context).ok, + cancelLabel: L10n.of(context).cancel, + ); + if (result == OkCancelResult.cancel) return; + } + + cancelReplyEventAction(); + } + + late final ValueNotifier _displayChatDetailsColumn; + + Future toggleDisplayChatDetailsColumn() async { + await AppSettings.displayChatDetailsColumn.setItem( + !_displayChatDetailsColumn.value, + ); + _displayChatDetailsColumn.value = !_displayChatDetailsColumn.value; + } + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + return Actions( + actions: kIsWeb + ? {} + : >{ + PasteTextIntent: CallbackAction( + onInvoke: (PasteTextIntent intent) => + _handleClipboardImagePaste(), + ), + }, + child: Row( + children: [ + Expanded(child: ChatView(this)), + ValueListenableBuilder( + valueListenable: _displayChatDetailsColumn, + builder: (context, displayChatDetailsColumn, _) => + !FluffyThemes.isThreeColumnMode(context) || + room.membership != Membership.join || + !displayChatDetailsColumn + ? const SizedBox(height: double.infinity, width: 0) + : Container( + width: FluffyThemes.columnWidth, + clipBehavior: Clip.hardEdge, + decoration: BoxDecoration( + border: Border( + left: BorderSide(width: 1, color: theme.dividerColor), + ), + ), + child: ChatDetails( + roomId: roomId, + embeddedCloseButton: IconButton( + icon: const Icon(Icons.close), + onPressed: toggleDisplayChatDetailsColumn, + ), + ), + ), + ), + ], + ), + ); + } +} + +enum AddPopupMenuActions { + media, + file, + poll, + photoCamera, + videoCamera, + location, +} diff --git a/lib/pages/chat/chat_app_bar_list_tile.dart b/lib/pages/chat/chat_app_bar_list_tile.dart new file mode 100644 index 0000000..a59d65b --- /dev/null +++ b/lib/pages/chat/chat_app_bar_list_tile.dart @@ -0,0 +1,68 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/utils/url_launcher.dart'; +import 'package:flutter_linkify/flutter_linkify.dart'; +import 'package:material_ui/material_ui.dart'; + +class ChatAppBarListTile extends StatelessWidget { + final Widget? leading; + final String title; + final Widget? trailing; + final void Function()? onTap; + + static const double fixedHeight = 40.0; + + const ChatAppBarListTile({ + super.key, + this.leading, + required this.title, + this.trailing, + this.onTap, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final leading = this.leading; + final trailing = this.trailing; + return SizedBox( + height: fixedHeight, + child: InkWell( + onTap: onTap, + child: Row( + children: [ + ?leading, + Expanded( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 4.0), + child: Linkify( + text: title, + textScaleFactor: MediaQuery.textScalerOf(context).scale(1), + options: const LinkifyOptions(humanize: false), + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: TextStyle( + color: theme.colorScheme.onSurfaceVariant, + overflow: TextOverflow.ellipsis, + fontSize: 14, + ), + linkStyle: TextStyle( + color: theme.colorScheme.onSurfaceVariant, + fontSize: 14, + decoration: TextDecoration.underline, + decorationColor: theme.colorScheme.onSurfaceVariant, + ), + onOpen: (url) => UrlLauncher(context, url.url).launchUrl(), + ), + ), + ), + ?trailing, + ], + ), + ), + ); + } +} diff --git a/lib/pages/chat/chat_app_bar_title.dart b/lib/pages/chat/chat_app_bar_title.dart new file mode 100644 index 0000000..fc6e66c --- /dev/null +++ b/lib/pages/chat/chat_app_bar_title.dart @@ -0,0 +1,179 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat/chat.dart'; +import 'package:tatchat/utils/date_time_extension.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:tatchat/utils/sync_status_localization.dart'; +import 'package:tatchat/utils/verified_room_extension.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:tatchat/widgets/presence_builder.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class ChatAppBarTitle extends StatelessWidget { + final ChatController controller; + const ChatAppBarTitle(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final room = controller.room; + if (controller.selectedEvents.isNotEmpty) { + return Text( + controller.selectedEvents.length.toString(), + style: TextStyle( + color: Theme.of(context).colorScheme.onTertiaryContainer, + ), + ); + } + return InkWell( + hoverColor: Colors.transparent, + splashColor: Colors.transparent, + highlightColor: Colors.transparent, + onTap: controller.isArchived + ? null + : () => FluffyThemes.isThreeColumnMode(context) + ? controller.toggleDisplayChatDetailsColumn() + : context.go('/rooms/${room.id}/details'), + child: Row( + children: [ + Hero( + tag: 'content_banner', + child: Avatar( + mxContent: room.avatar, + name: room.getLocalizedDisplayname( + MatrixLocals(L10n.of(context)), + ), + size: 32, + ), + ), + const SizedBox(width: 12), + Expanded( + child: Column( + mainAxisSize: .min, + crossAxisAlignment: .start, + children: [ + Row( + spacing: 4, + children: [ + if (room.allUsersVerified) + Icon( + Icons.verified, + color: Theme.of(context).colorScheme.primary, + size: 16, + ), + Expanded( + child: Text( + room.getLocalizedDisplayname( + MatrixLocals(L10n.of(context)), + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: const TextStyle(fontSize: 16), + ), + ), + ], + ), + StreamBuilder( + stream: room.client.onSyncStatus.stream, + builder: (context, snapshot) { + final status = + room.client.onSyncStatus.value ?? + const SyncStatusUpdate(SyncStatus.waitingForResponse); + final hide = + FluffyThemes.isColumnMode(context) || + (room.client.onSync.value != null && + status.status != SyncStatus.error && + room.client.prevBatch != null); + final style = TextStyle(fontSize: 11); + return AnimatedSize( + duration: FluffyThemes.animationDuration, + child: hide + ? room.isDirectChat + ? PresenceBuilder( + userId: room.directChatMatrixID, + builder: (context, presence) { + final statusMessage = presence?.statusMsg + ?.trim(); + + final lastActiveTimestamp = + presence?.lastActiveTimestamp; + + final texts = [ + if (presence?.currentlyActive == true) + L10n.of(context).currentlyActive + else if (lastActiveTimestamp != null) + L10n.of(context).lastActiveAgo( + lastActiveTimestamp + .localizedTimeShort(context), + ), + ?statusMessage, + ]; + final text = texts.join(' ◦ '); + if (text.isEmpty) { + return const SizedBox.shrink(); + } + + return Text(text, style: style); + }, + ) + : Row( + children: [ + Text( + L10n.of(context).countParticipants( + (room.summary.mJoinedMemberCount ?? + 1) + + (room + .summary + .mInvitedMemberCount ?? + 0), + ), + maxLines: 1, + style: style, + ), + if (room.topic.isNotEmpty) ...[ + Text(' ◦ ', style: style), + Expanded( + child: Text( + room.topic, + style: style, + maxLines: 1, + ), + ), + ], + ], + ) + : Row( + children: [ + SizedBox.square( + dimension: 10, + child: CircularProgressIndicator.adaptive( + strokeWidth: 1, + value: status.progress, + ), + ), + const SizedBox(width: 4), + Expanded( + child: Text( + status.calcLocalizedString(context), + style: TextStyle(fontSize: 12), + ), + ), + ], + ), + ); + }, + ), + ], + ), + ), + ], + ), + ); + } +} diff --git a/lib/pages/chat/chat_emoji_picker.dart b/lib/pages/chat/chat_emoji_picker.dart new file mode 100644 index 0000000..5b458a5 --- /dev/null +++ b/lib/pages/chat/chat_emoji_picker.dart @@ -0,0 +1,125 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:emoji_picker_flutter/emoji_picker_flutter.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat/sticker_picker_dialog.dart'; +import 'package:tatchat/pages/chat/trust_user_key_dialog.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import 'chat.dart'; + +class ChatEmojiPicker extends StatelessWidget { + final ChatController controller; + const ChatEmojiPicker(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + return AnimatedContainer( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + clipBehavior: Clip.hardEdge, + decoration: const BoxDecoration(), + height: controller.showEmojiPicker + ? MediaQuery.sizeOf(context).height / 2 + : 0, + child: controller.showEmojiPicker + ? DefaultTabController( + length: 2, + child: Column( + children: [ + TabBar( + tabs: [ + Tab(text: L10n.of(context).emojis), + Tab(text: L10n.of(context).stickers), + ], + ), + Expanded( + child: TabBarView( + children: [ + EmojiPicker( + onEmojiSelected: controller.onEmojiSelected, + onBackspacePressed: controller.emojiPickerBackspace, + config: Config( + locale: Localizations.localeOf(context), + emojiViewConfig: EmojiViewConfig( + noRecents: const NoRecent(), + 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: SkinToneConfig( + dialogBackgroundColor: Color.lerp( + theme.colorScheme.surface, + theme.colorScheme.primaryContainer, + 0.75, + )!, + indicatorColor: theme.colorScheme.onSurface, + ), + ), + ), + StickerPickerDialog( + room: controller.room, + onSelected: (sticker) async { + final proceed = await showTrustUserInRoomDialog( + context, + controller.room, + ); + if (!proceed) return; + controller.room.sendEvent( + { + 'body': sticker.body, + 'info': sticker.info ?? {}, + 'url': sticker.url.toString(), + }, + type: EventTypes.Sticker, + threadRootEventId: controller.activeThreadId, + threadLastEventId: controller.threadLastEventId, + ); + controller.hideEmojiPicker(); + }, + ), + ], + ), + ), + ], + ), + ) + : null, + ); + } +} + +class NoRecent extends StatelessWidget { + const NoRecent({super.key}); + + @override + Widget build(BuildContext context) { + return Center( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Text( + L10n.of(context).emoteKeyboardNoRecents, + style: Theme.of(context).textTheme.bodyLarge, + textAlign: TextAlign.center, + ), + ), + ); + } +} diff --git a/lib/pages/chat/chat_event_list.dart b/lib/pages/chat/chat_event_list.dart new file mode 100644 index 0000000..51190d3 --- /dev/null +++ b/lib/pages/chat/chat_event_list.dart @@ -0,0 +1,253 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:collection/collection.dart'; +import 'package:cupertino_ui/cupertino_ui.dart'; +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat/chat.dart'; +import 'package:tatchat/pages/chat/encryption_info.dart'; +import 'package:tatchat/pages/chat/events/message.dart'; +import 'package:tatchat/pages/chat/seen_by_row.dart'; +import 'package:tatchat/pages/chat/typing_indicators.dart'; +import 'package:tatchat/utils/account_config.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/filtered_timeline_extension.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix_api_lite/model/event_types.dart'; +import 'package:scroll_to_index/scroll_to_index.dart'; + +import '../../config/app_config.dart'; +import '../../utils/date_time_extension.dart'; + +class ChatEventList extends StatelessWidget { + final ChatController controller; + + const ChatEventList({super.key, required this.controller}); + + @override + Widget build(BuildContext context) { + final timeline = controller.timeline; + + if (timeline == null) { + return const Center(child: CupertinoActivityIndicator()); + } + final theme = Theme.of(context); + + final colors = [theme.secondaryBubbleColor, theme.bubbleColor]; + + final horizontalPadding = FluffyThemes.isColumnMode(context) ? 8.0 : 0.0; + + final events = timeline.events.filterByVisibleInGui( + threadId: controller.activeThreadId, + ); + + // create a map of eventId --> index to greatly improve performance of + // ListView's findChildIndexCallback + final thisEventsKeyMap = {}; + for (var i = 0; i < events.length; i++) { + thisEventsKeyMap[events[i].eventId] = i; + } + + final hasWallpaper = + controller.room.client.applicationAccountConfig.wallpaperUrl != null; + + return SelectionArea( + child: MediaQuery( + data: MediaQuery.of(context).copyWith( + textScaler: TextScaler.linear(AppSettings.fontSizeFactor.value), + ), + child: ListView.custom( + padding: EdgeInsets.only( + top: 8 + MediaQuery.paddingOf(context).top, + bottom: + 8 + + (controller.inputBarHeight ?? + (72 + (FluffyThemes.isColumnMode(context) ? 16 : 0))), + left: horizontalPadding, + right: horizontalPadding, + ), + reverse: true, + controller: controller.scrollController, + keyboardDismissBehavior: PlatformInfos.isIOS + ? ScrollViewKeyboardDismissBehavior.onDrag + : ScrollViewKeyboardDismissBehavior.manual, + childrenDelegate: SliverChildBuilderDelegate( + (BuildContext context, int i) { + // Footer to display typing indicator and read receipts: + if (i == 0) { + if (timeline.canRequestFuture) { + return Center( + child: TextButton.icon( + onPressed: timeline.isRequestingFuture + ? null + : controller.requestFuture, + icon: timeline.isRequestingFuture + ? CircularProgressIndicator.adaptive(strokeWidth: 2) + : const Icon(Icons.arrow_downward_outlined), + label: Text(L10n.of(context).loadMore), + ), + ); + } + return Column( + mainAxisSize: .min, + children: [ + if (events.isNotEmpty) SeenByRow(event: events.first), + TypingIndicators(controller), + EncryptionInfo(room: controller.room), + ], + ); + } + + // Request history button or progress indicator: + if (i == events.length + 1) { + if (controller.activeThreadId != null || + !timeline.canRequestHistory) { + return const SizedBox.shrink(); + } + return Builder( + builder: (context) { + final visibleIndex = timeline.events.lastIndexWhere( + (event) => + !event.isCollapsedState && event.isVisibleInGui, + ); + if (visibleIndex > timeline.events.length - 50) { + WidgetsBinding.instance.addPostFrameCallback( + controller.requestHistory, + ); + } + return Center( + child: TextButton.icon( + onPressed: timeline.isRequestingHistory + ? null + : controller.requestHistory, + icon: timeline.isRequestingHistory + ? CircularProgressIndicator.adaptive(strokeWidth: 2) + : const Icon(Icons.arrow_upward_outlined), + label: Text(L10n.of(context).loadMore), + ), + ); + }, + ); + } + i--; + + // The message at this index: + final event = events[i]; + final animateIn = + (event.transactionId ?? event.eventId) == + controller.animateInEventId; + + final nextEvent = i + 1 < events.length ? events[i + 1] : null; + final previousEvent = i > 0 ? events[i - 1] : null; + + // Collapsed state event + final canExpand = + event.isCollapsedState && + nextEvent?.isCollapsedState == true && + previousEvent?.isCollapsedState != true; + final isCollapsed = + event.isCollapsedState && + previousEvent?.isCollapsedState == true && + !controller.expandedEventIds.contains(event.eventId); + + final displayDate = + event.type == EventTypes.RoomCreate || + nextEvent == null || + !event.originServerTs.sameDay(nextEvent.originServerTs); + + return AutoScrollTag( + key: ValueKey(event.transactionId ?? event.eventId), + index: i, + controller: controller.scrollController, + child: Column( + mainAxisSize: .min, + children: [ + if (!isCollapsed && displayDate) + Padding( + padding: const EdgeInsets.only(top: 8.0, bottom: 16.0), + child: Center( + child: Padding( + padding: const EdgeInsets.only(top: 4.0), + child: Material( + borderRadius: BorderRadius.circular( + AppConfig.borderRadius * 2, + ), + color: theme.colorScheme.inverseSurface.withAlpha( + 200, + ), + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 8.0, + vertical: 2.0, + ), + child: Text( + event.originServerTs.localizedDate(context), + style: TextStyle( + fontWeight: FontWeight.bold, + color: theme.colorScheme.onInverseSurface, + ), + ), + ), + ), + ), + ), + ), + Message( + event, + bigEmojis: controller.bigEmojis, + animateIn: animateIn, + onSwipe: () => controller.replyAction(replyTo: event), + onInfoTab: controller.showEventInfo, + onMention: () => controller.sendController.text += + '${event.senderFromMemoryOrFallback.mention} ', + highlightMarker: + controller.scrollToEventIdMarker == event.eventId, + onSelect: controller.onSelectMessage, + scrollToEventId: controller.scrollToEventId, + longPressSelect: controller.selectedEvents.isNotEmpty, + selected: controller.selectedEvents.any( + (e) => e.eventId == event.eventId, + ), + singleSelected: + controller.selectedEvents.singleOrNull?.eventId == + event.eventId, + onEdit: controller.editSelectedEventAction, + timeline: timeline, + displayReadMarker: + i > 0 && + controller.readMarkerEventId == event.eventId, + nextEvent: nextEvent, + previousEvent: previousEvent, + wallpaperMode: hasWallpaper, + scrollController: controller.scrollController, + colors: colors, + isCollapsed: isCollapsed, + enterThread: controller.activeThreadId == null + ? controller.enterThread + : null, + onExpand: canExpand + ? () => controller.expandEventsFrom( + event, + !controller.expandedEventIds.contains( + event.eventId, + ), + ) + : null, + ), + ], + ), + ); + }, + childCount: events.length + 2, + findChildIndexCallback: (key) => + controller.findChildIndexCallback(key, thisEventsKeyMap), + ), + ), + ), + ); + } +} diff --git a/lib/pages/chat/chat_input_row.dart b/lib/pages/chat/chat_input_row.dart new file mode 100644 index 0000000..580d50b --- /dev/null +++ b/lib/pages/chat/chat_input_row.dart @@ -0,0 +1,436 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:emoji_picker_flutter/locales/default_emoji_set_locale.dart'; +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat/recording_input_row.dart'; +import 'package:tatchat/pages/chat/recording_view_model.dart'; +import 'package:tatchat/utils/other_party_can_receive.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:tatchat/widgets/hover_builder.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../config/themes.dart'; +import 'chat.dart'; +import 'input_bar.dart'; + +class ChatInputRow extends StatelessWidget { + final ChatController controller; + + static const double height = 56.0; + + const ChatInputRow(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final textMessageOnly = + controller.sendController.text.isNotEmpty || + controller.replyEvent != null || + controller.editEvent != null; + + if (!controller.room.otherPartyCanReceiveMessages) { + return Center( + child: Padding( + padding: const EdgeInsets.all(12.0), + child: Text( + L10n.of(context).otherPartyNotLoggedIn, + style: theme.textTheme.bodySmall, + textAlign: TextAlign.center, + ), + ), + ); + } + + final selectedTextButtonStyle = TextButton.styleFrom( + foregroundColor: theme.colorScheme.onTertiaryContainer, + ); + + return RecordingViewModel( + builder: (context, recordingViewModel) { + if (recordingViewModel.isRecording) { + return RecordingInputRow( + state: recordingViewModel, + onSend: controller.onVoiceMessageSend, + ); + } + return Row( + crossAxisAlignment: .end, + mainAxisAlignment: .spaceBetween, + children: controller.selectMode + ? [ + if (controller.selectedEvents.every( + (event) => event.status == EventStatus.error, + )) + SizedBox( + height: height, + child: TextButton( + style: TextButton.styleFrom( + foregroundColor: theme.colorScheme.error, + ), + onPressed: controller.deleteErrorEventsAction, + child: Row( + children: [ + const Icon(Icons.delete_forever_outlined), + Text(L10n.of(context).delete), + ], + ), + ), + ) + else + SizedBox( + height: height, + child: TextButton( + style: selectedTextButtonStyle, + onPressed: controller.forwardEventsAction, + child: Row( + children: [ + const Icon(Icons.keyboard_arrow_left_outlined), + Text(L10n.of(context).forward), + ], + ), + ), + ), + controller.selectedEvents.length == 1 + ? controller.selectedEvents.first + .getDisplayEvent(controller.timeline!) + .status + .isSent + ? SizedBox( + height: height, + child: TextButton( + style: selectedTextButtonStyle, + onPressed: controller.replyAction, + child: Row( + children: [ + Text(L10n.of(context).reply), + const Icon(Icons.keyboard_arrow_right), + ], + ), + ), + ) + : SizedBox( + height: height, + child: TextButton( + style: selectedTextButtonStyle, + onPressed: controller.sendAgainAction, + child: Row( + children: [ + Text(L10n.of(context).tryToSendAgain), + const SizedBox(width: 4), + const Icon(Icons.send_outlined, size: 16), + ], + ), + ), + ) + : const SizedBox.shrink(), + ] + : [ + const SizedBox(width: 8), + AnimatedContainer( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + width: textMessageOnly ? 0 : 48, + height: height, + alignment: Alignment.center, + decoration: const BoxDecoration(), + clipBehavior: Clip.hardEdge, + child: PopupMenuButton( + useRootNavigator: true, + icon: const Icon(Icons.add_circle_outline), + iconColor: theme.colorScheme.onPrimaryContainer, + onSelected: controller.onAddPopupMenuButtonSelected, + itemBuilder: (BuildContext context) => [ + if (PlatformInfos.isMobile) + PopupMenuItem( + value: AddPopupMenuActions.location, + child: ListTile( + leading: CircleAvatar( + backgroundColor: + theme.colorScheme.onPrimaryContainer, + foregroundColor: + theme.colorScheme.primaryContainer, + child: const Icon(Icons.gps_fixed_outlined), + ), + title: Text(L10n.of(context).shareLocation), + contentPadding: const EdgeInsets.all(0), + ), + ), + PopupMenuItem( + value: AddPopupMenuActions.poll, + child: ListTile( + leading: CircleAvatar( + backgroundColor: + theme.colorScheme.onPrimaryContainer, + foregroundColor: + theme.colorScheme.primaryContainer, + child: const Icon(Icons.poll_outlined), + ), + title: Text(L10n.of(context).startPoll), + contentPadding: const EdgeInsets.all(0), + ), + ), + PopupMenuDivider(), + if (PlatformInfos.isMobile) ...[ + PopupMenuItem( + value: AddPopupMenuActions.videoCamera, + child: ListTile( + leading: CircleAvatar( + backgroundColor: + theme.colorScheme.onPrimaryContainer, + foregroundColor: + theme.colorScheme.primaryContainer, + child: const Icon(Icons.videocam_outlined), + ), + title: Text(L10n.of(context).recordAVideo), + contentPadding: const EdgeInsets.all(0), + ), + ), + PopupMenuItem( + value: AddPopupMenuActions.photoCamera, + child: ListTile( + leading: CircleAvatar( + backgroundColor: + theme.colorScheme.onPrimaryContainer, + foregroundColor: + theme.colorScheme.primaryContainer, + child: const Icon(Icons.camera_alt_outlined), + ), + title: Text(L10n.of(context).takeAPhoto), + contentPadding: const EdgeInsets.all(0), + ), + ), + PopupMenuDivider(), + ], + PopupMenuItem( + value: AddPopupMenuActions.media, + child: ListTile( + leading: CircleAvatar( + backgroundColor: + theme.colorScheme.onPrimaryContainer, + foregroundColor: + theme.colorScheme.primaryContainer, + child: const Icon(Icons.image_outlined), + ), + title: Text(L10n.of(context).openGallery), + contentPadding: const EdgeInsets.all(0), + ), + ), + PopupMenuItem( + value: AddPopupMenuActions.file, + child: ListTile( + leading: CircleAvatar( + backgroundColor: + theme.colorScheme.onPrimaryContainer, + foregroundColor: + theme.colorScheme.primaryContainer, + child: const Icon(Icons.attachment_outlined), + ), + title: Text(L10n.of(context).sendFile), + contentPadding: const EdgeInsets.all(0), + ), + ), + ], + ), + ), + Container( + height: height, + width: 48, + alignment: Alignment.center, + child: IconButton( + tooltip: L10n.of(context).emojis, + color: theme.colorScheme.onPrimaryContainer, + icon: Icon( + controller.showEmojiPicker + ? Icons.keyboard + : Icons.add_reaction_outlined, + key: ValueKey(controller.showEmojiPicker), + ), + onPressed: controller.emojiPickerAction, + ), + ), + if (Matrix.of(context).isMultiAccount && + Matrix.of(context).hasComplexBundles && + Matrix.of(context).currentBundle!.length > 1) + Container( + height: height, + width: 48, + alignment: Alignment.center, + child: _ChatAccountPicker(controller), + ), + Expanded( + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 2.0), + child: InputBar( + room: controller.room, + minLines: 1, + maxLines: 8, + autofocus: !PlatformInfos.isMobile, + keyboardType: TextInputType.multiline, + textInputAction: + AppSettings.sendOnEnter.value == true && + PlatformInfos.isMobile + ? TextInputAction.send + : null, + onSubmitted: controller.onInputBarSubmitted, + onSubmitImage: controller.sendImageFromClipBoard, + focusNode: controller.inputFocus, + controller: controller.sendController, + decoration: InputDecoration( + contentPadding: const EdgeInsets.only( + left: 6.0, + right: 6.0, + bottom: 6.0, + top: 3.0, + ), + counter: const SizedBox.shrink(), + hintText: controller.room.encrypted + ? L10n.of(context).encryptedMessage + : L10n.of(context).unencryptedMessage, + hintMaxLines: 1, + border: InputBorder.none, + enabledBorder: InputBorder.none, + filled: false, + ), + onChanged: controller.onInputBarChanged, + suggestionEmojis: + getDefaultEmojiLocale( + AppSettings.emojiSuggestionLocale.value.isNotEmpty + ? Locale( + AppSettings.emojiSuggestionLocale.value, + ) + : Localizations.localeOf(context), + ).fold( + [], + (emojis, category) => + emojis..addAll(category.emoji), + ), + ), + ), + ), + Container( + height: height, + width: height, + alignment: Alignment.center, + child: + PlatformInfos.platformCanRecord && + !controller.sendController.text.isNotEmpty && + controller.editEvent == null + ? HoverBuilder( + builder: (context, hovered) => IconButton( + tooltip: L10n.of(context).voiceMessage, + onPressed: hovered + ? () => recordingViewModel.startRecording( + controller.room, + ) + : () => ScaffoldMessenger.of(context) + .showSnackBar( + SnackBar( + margin: EdgeInsets.only( + bottom: height + 16, + left: 16, + right: 16, + top: 16, + ), + showCloseIcon: true, + content: Text( + L10n.of( + context, + ).longPressToRecordVoiceMessage, + ), + ), + ), + onLongPress: () => recordingViewModel + .startRecording(controller.room), + style: IconButton.styleFrom( + backgroundColor: theme.bubbleColor, + foregroundColor: theme.onBubbleColor, + ), + icon: Icon( + hovered ? Icons.mic : Icons.mic_none_outlined, + ), + ), + ) + : IconButton( + key: Key('send_button'), + tooltip: L10n.of(context).send, + onPressed: controller.send, + style: IconButton.styleFrom( + backgroundColor: theme.bubbleColor, + foregroundColor: theme.onBubbleColor, + ), + icon: const Icon(Icons.send_outlined), + ), + ), + ], + ); + }, + ); + } +} + +class _ChatAccountPicker extends StatelessWidget { + final ChatController controller; + + const _ChatAccountPicker(this.controller); + + void _popupMenuButtonSelected(String mxid, BuildContext context) { + final client = Matrix.of( + context, + ).currentBundle!.firstWhere((cl) => cl!.userID == mxid, orElse: () => null); + if (client == null) { + Logs().w('Attempted to switch to a non-existing client $mxid'); + return; + } + controller.setSendingClient(client); + } + + @override + Widget build(BuildContext context) { + final clients = controller.currentRoomBundle; + return Padding( + padding: const EdgeInsets.all(8.0), + child: FutureBuilder( + future: controller.sendingClient.fetchOwnProfile(), + builder: (context, snapshot) => PopupMenuButton( + useRootNavigator: true, + onSelected: (mxid) => _popupMenuButtonSelected(mxid, context), + itemBuilder: (BuildContext context) => clients + .map( + (client) => PopupMenuItem( + value: client!.userID, + child: FutureBuilder( + future: client.fetchOwnProfile(), + builder: (context, snapshot) => ListTile( + leading: Avatar( + mxContent: snapshot.data?.avatarUrl, + name: + snapshot.data?.displayName ?? + client.userID!.localpart, + size: 20, + ), + title: Text(snapshot.data?.displayName ?? client.userID!), + contentPadding: const EdgeInsets.all(0), + ), + ), + ), + ) + .toList(), + child: Avatar( + mxContent: snapshot.data?.avatarUrl, + name: + snapshot.data?.displayName ?? + Matrix.of(context).client.userID!.localpart, + size: 20, + ), + ), + ), + ); + } +} diff --git a/lib/pages/chat/chat_view.dart b/lib/pages/chat/chat_view.dart new file mode 100644 index 0000000..4c54dbf --- /dev/null +++ b/lib/pages/chat/chat_view.dart @@ -0,0 +1,494 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:ui' as ui; + +import 'package:desktop_drop/desktop_drop.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat/chat.dart'; +import 'package:tatchat/pages/chat/chat_app_bar_list_tile.dart'; +import 'package:tatchat/pages/chat/chat_app_bar_title.dart'; +import 'package:tatchat/pages/chat/chat_event_list.dart'; +import 'package:tatchat/pages/chat/pinned_events.dart'; +import 'package:tatchat/pages/chat/reply_display.dart'; +import 'package:tatchat/utils/account_config.dart'; +import 'package:tatchat/utils/localized_exception_extension.dart'; +import 'package:tatchat/utils/matrix_live_kit_calls/matrix_live_kit_call.dart'; +import 'package:tatchat/widgets/chat_settings_popup_menu.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:tatchat/widgets/mxc_image.dart'; +import 'package:tatchat/widgets/pulsating_widget.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../utils/stream_extension.dart'; +import 'chat_emoji_picker.dart'; +import 'chat_input_row.dart'; + +enum _EventContextAction { info, report } + +class ChatView extends StatelessWidget { + final ChatController controller; + + const ChatView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final hasActiveGroupCall = controller.room.hasActiveMatrixRtcCall; + if (controller.room.membership == Membership.invite) { + showFutureLoadingDialog( + context: context, + future: () => controller.room.join(), + exceptionContext: ExceptionContext.joinRoom, + ); + } + final bottomSheetPadding = FluffyThemes.isColumnMode(context) ? 16.0 : 8.0; + final scrollUpBannerEventId = controller.scrollUpBannerEventId; + + final accountConfig = Matrix.of(context).client.applicationAccountConfig; + + return PopScope( + canPop: + controller.selectedEvents.isEmpty && + !controller.showEmojiPicker && + controller.activeThreadId == null, + onPopInvokedWithResult: (pop, _) async { + if (pop) return; + if (controller.selectedEvents.isNotEmpty) { + controller.clearSelectedEvents(); + } else if (controller.showEmojiPicker) { + controller.emojiPickerAction(); + } else if (controller.activeThreadId != null) { + controller.closeThread(); + } + }, + child: StreamBuilder( + stream: controller.room.client.onRoomState.stream + .where((update) => update.roomId == controller.room.id) + .rateLimit(const Duration(seconds: 1)), + builder: (context, snapshot) => FutureBuilder( + future: controller.loadTimelineFuture, + builder: (BuildContext context, snapshot) { + var appbarBottomHeight = 0.0; + final activeThreadId = controller.activeThreadId; + if (activeThreadId != null) { + appbarBottomHeight += ChatAppBarListTile.fixedHeight; + } + if (controller.room.pinnedEventIds.isNotEmpty && + activeThreadId == null) { + appbarBottomHeight += ChatAppBarListTile.fixedHeight; + } + if (scrollUpBannerEventId != null && activeThreadId == null) { + appbarBottomHeight += ChatAppBarListTile.fixedHeight; + } + return Scaffold( + key: Key('chat_page'), + extendBodyBehindAppBar: true, + appBar: AppBar( + shape: FluffyThemes.isColumnMode(context) + ? Border( + bottom: BorderSide(color: theme.dividerColor, width: 1), + ) + : null, + actionsIconTheme: IconThemeData( + color: controller.selectedEvents.isEmpty + ? null + : theme.colorScheme.onTertiaryContainer, + ), + backgroundColor: controller.selectedEvents.isEmpty + ? controller.activeThreadId != null + ? theme.colorScheme.secondaryContainer + : theme.colorScheme.surface.withAlpha(240) + : theme.colorScheme.tertiaryContainer, + automaticallyImplyLeading: false, + leading: controller.selectMode + ? IconButton( + icon: const Icon(Icons.close), + onPressed: controller.clearSelectedEvents, + tooltip: L10n.of(context).close, + color: theme.colorScheme.onTertiaryContainer, + ) + : activeThreadId != null + ? IconButton( + icon: const Icon(Icons.close), + onPressed: controller.closeThread, + tooltip: L10n.of(context).backToMainChat, + color: theme.colorScheme.onSecondaryContainer, + ) + : FluffyThemes.isColumnMode(context) + ? null + : const Center(child: BackButton()), + titleSpacing: FluffyThemes.isColumnMode(context) ? 24 : 0, + title: ChatAppBarTitle(controller), + actions: [ + if (controller.selectMode) ...[ + if (controller.canEditSelectedEvents) + IconButton( + icon: const Icon(Icons.edit_outlined), + tooltip: L10n.of(context).edit, + onPressed: controller.editSelectedEventAction, + ), + if (controller.selectedEvents.length == 1 && + controller.activeThreadId == null && + controller.room.canSendDefaultMessages) + IconButton( + icon: const Icon(Icons.message_outlined), + tooltip: L10n.of(context).replyInThread, + onPressed: () => controller.enterThread( + controller.selectedEvents.single.eventId, + ), + ), + IconButton( + icon: const Icon(Icons.copy_outlined), + tooltip: L10n.of(context).copyToClipboard, + onPressed: controller.copyEventsAction, + ), + if (controller.canRedactSelectedEvents) + IconButton( + icon: const Icon(Icons.delete_outlined), + color: theme.colorScheme.error, + tooltip: L10n.of(context).redactMessage, + onPressed: controller.redactEventsAction, + ), + if (controller.selectedEvents.length == 1) + PopupMenuButton<_EventContextAction>( + useRootNavigator: true, + onSelected: (action) { + switch (action) { + case _EventContextAction.info: + controller.showEventInfo(); + controller.clearSelectedEvents(); + break; + case _EventContextAction.report: + controller.reportEventAction(); + break; + } + }, + itemBuilder: (context) => [ + if (controller.canPinSelectedEvents) + PopupMenuItem( + onTap: controller.pinEvent, + value: null, + child: Row( + mainAxisSize: .min, + children: [ + const Icon(Icons.push_pin_outlined), + const SizedBox(width: 12), + Text(L10n.of(context).pinMessage), + ], + ), + ), + if (controller.canSaveSelectedEvent) + PopupMenuItem( + onTap: () => + controller.saveSelectedEvent(context), + value: null, + child: Row( + mainAxisSize: .min, + children: [ + const Icon(Icons.download_outlined), + const SizedBox(width: 12), + Text(L10n.of(context).downloadFile), + ], + ), + ), + PopupMenuItem( + value: _EventContextAction.info, + child: Row( + mainAxisSize: .min, + children: [ + const Icon(Icons.info_outlined), + const SizedBox(width: 12), + Text(L10n.of(context).messageInfo), + ], + ), + ), + if (controller.selectedEvents.single.status.isSent) + PopupMenuItem( + value: _EventContextAction.report, + child: Row( + mainAxisSize: .min, + children: [ + const Icon( + Icons.shield_outlined, + color: Colors.red, + ), + const SizedBox(width: 12), + Text(L10n.of(context).reportMessage), + ], + ), + ), + ], + ), + ] else if (!controller.room.isArchived) ...[ + if (hasActiveGroupCall) + PulsatingWidget( + color: theme.colorScheme.error, + child: Padding( + padding: const EdgeInsets.all(4.0), + child: TextButton.icon( + icon: Icon(switch (controller + .room + .activeMatrixRtcCallIntent) { + .voice => Icons.video_call_outlined, + _ => Icons.mic_outlined, + }), + label: Text( + controller.room + .getActiveMatrixRtcMembers() + .length + .toString(), + ), + onPressed: + controller.room.hasPermissionForMatrixRtcCall + ? controller.startOrJoinVideoCall + : null, + style: ElevatedButton.styleFrom( + backgroundColor: theme.colorScheme.error, + foregroundColor: theme.colorScheme.onError, + ), + ), + ), + ) + else if (controller.room.hasPermissionForMatrixRtcCall && + controller.supportLiveKitCalls) + IconButton( + icon: Icon(Icons.call_outlined), + onPressed: controller.startOrJoinVideoCall, + ), + ChatSettingsPopupMenu(controller.room, true), + ], + ], + bottom: PreferredSize( + preferredSize: Size.fromHeight(appbarBottomHeight), + child: Column( + mainAxisSize: .min, + children: [ + PinnedEvents(controller), + if (activeThreadId != null) + SizedBox( + height: ChatAppBarListTile.fixedHeight, + child: Center( + child: TextButton.icon( + onPressed: () => + controller.scrollToEventId(activeThreadId), + icon: const Icon(Icons.message), + label: Text(L10n.of(context).replyInThread), + style: TextButton.styleFrom( + foregroundColor: + theme.colorScheme.onSecondaryContainer, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(4), + ), + ), + ), + ), + ), + if (scrollUpBannerEventId != null && + activeThreadId == null) + ChatAppBarListTile( + leading: IconButton( + color: theme.colorScheme.onSurfaceVariant, + icon: const Icon(Icons.close), + tooltip: L10n.of(context).close, + onPressed: () { + controller.discardScrollUpBannerEventId(); + controller.setReadMarker(); + }, + ), + title: L10n.of(context).jumpToLastReadMessage, + trailing: TextButton( + onPressed: () { + controller.scrollToEventId(scrollUpBannerEventId); + controller.discardScrollUpBannerEventId(); + }, + child: Text(L10n.of(context).jump), + ), + ), + ], + ), + ), + ), + floatingActionButton: + controller.showScrollDownButton && + controller.selectedEvents.isEmpty + ? Padding( + padding: EdgeInsets.only( + bottom: theme.appBarTheme.toolbarHeight ?? 56, + ), + child: FloatingActionButton( + onPressed: controller.scrollDown, + heroTag: null, + mini: true, + backgroundColor: theme.colorScheme.surface, + foregroundColor: theme.colorScheme.onSurface, + child: const Icon(Icons.arrow_downward_outlined), + ), + ) + : null, + body: NotificationListener( + onNotification: (SizeChangedLayoutNotification notification) { + WidgetsBinding.instance.addPostFrameCallback( + (_) => controller.updateInputBarHeight(), + ); + return true; + }, + child: DropTarget( + onDragDone: controller.onDragDone, + onDragEntered: controller.onDragEntered, + onDragExited: controller.onDragExited, + child: SafeArea( + top: false, + child: Stack( + children: [ + if (accountConfig.wallpaperUrl != null) + Opacity( + opacity: accountConfig.wallpaperOpacity ?? 0.5, + child: ImageFiltered( + imageFilter: ui.ImageFilter.blur( + sigmaX: accountConfig.wallpaperBlur ?? 0.0, + sigmaY: accountConfig.wallpaperBlur ?? 0.0, + ), + child: MxcImage( + cacheKey: accountConfig.wallpaperUrl.toString(), + uri: accountConfig.wallpaperUrl, + fit: BoxFit.cover, + height: MediaQuery.sizeOf(context).height, + width: MediaQuery.sizeOf(context).width, + isThumbnail: false, + placeholder: (_) => Container(), + ), + ), + ), + GestureDetector( + onTap: controller.clearSingleSelectedEvent, + child: ChatEventList(controller: controller), + ), + Positioned( + bottom: 0, + left: 0, + right: 0, + child: SizeChangedLayoutNotifier( + child: Container( + key: controller.inputBarKey, + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [ + theme.colorScheme.surface.withAlpha(0), + theme.colorScheme.surface, + theme.colorScheme.surface, + ], + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + ), + ), + alignment: Alignment.center, + child: Container( + margin: EdgeInsets.all(bottomSheetPadding), + constraints: const BoxConstraints( + maxWidth: FluffyThemes.maxTimelineWidth, + ), + child: controller.room.isExtinct + ? ElevatedButton.icon( + icon: const Icon(Icons.chevron_right), + label: Text( + L10n.of(context).enterNewChat, + ), + onPressed: controller.goToNewRoomAction, + ) + : controller.room.canSendDefaultMessages && + controller.room.membership == + Membership.join + ? Material( + clipBehavior: Clip.hardEdge, + color: + controller.selectedEvents.isNotEmpty + ? theme + .colorScheme + .tertiaryContainer + : theme + .colorScheme + .surfaceContainer, + borderRadius: BorderRadius.circular(32), + child: + controller.room.isAbandonedDMRoom == + true + ? Row( + mainAxisAlignment: .spaceEvenly, + children: [ + TextButton.icon( + style: TextButton.styleFrom( + padding: + const EdgeInsets.all( + 16, + ), + foregroundColor: theme + .colorScheme + .error, + ), + icon: const Icon( + Icons.archive_outlined, + ), + onPressed: + controller.leaveChat, + label: Text( + L10n.of(context).leave, + ), + ), + TextButton.icon( + style: TextButton.styleFrom( + padding: + const EdgeInsets.all( + 16, + ), + ), + icon: const Icon( + Icons.forum_outlined, + ), + onPressed: + controller.recreateChat, + label: Text( + L10n.of( + context, + ).reopenChat, + ), + ), + ], + ) + : Column( + mainAxisSize: .min, + children: [ + ReplyDisplay(controller), + ChatInputRow(controller), + ChatEmojiPicker(controller), + ], + ), + ) + : SizedBox.shrink(), + ), + ), + ), + ), + if (controller.dragging) + Container( + color: theme.scaffoldBackgroundColor.withAlpha(230), + alignment: Alignment.center, + child: const Icon(Icons.upload_outlined, size: 100), + ), + ], + ), + ), + ), + ), + ); + }, + ), + ), + ); + } +} diff --git a/lib/pages/chat/command_hints.dart b/lib/pages/chat/command_hints.dart new file mode 100644 index 0000000..76b0967 --- /dev/null +++ b/lib/pages/chat/command_hints.dart @@ -0,0 +1,95 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +// This file is auto-generated using scripts/generate_command_hints_glue.sh. + +import 'package:tatchat/l10n/l10n.dart'; + +String commandExample(String command) { + switch (command) { + case 'markasdm': + case 'kick': + case 'dm': + case 'ban': + case 'unban': + case 'ignore': + case 'unignore': + case 'invite': + return '/$command '; + case 'html': + case 'sendraw': + case 'plain': + return '/$command '; + case 'op': + return '/$command '; + default: + return '/$command'; + } +} + +String commandHint(L10n l10n, String command) { + switch (command) { + case 'ban': + return l10n.commandHint_ban; + case 'clearcache': + return l10n.commandHint_clearcache; + case 'create': + return l10n.commandHint_create; + case 'discardsession': + return l10n.commandHint_discardsession; + case 'dm': + return l10n.commandHint_dm; + case 'html': + return l10n.commandHint_html; + case 'invite': + return l10n.commandHint_invite; + case 'join': + return l10n.commandHint_join; + case 'kick': + return l10n.commandHint_kick; + case 'leave': + return l10n.commandHint_leave; + case 'me': + return l10n.commandHint_me; + case 'myroomavatar': + return l10n.commandHint_myroomavatar; + case 'myroomnick': + return l10n.commandHint_myroomnick; + case 'op': + return l10n.commandHint_op; + case 'plain': + return l10n.commandHint_plain; + case 'react': + return l10n.commandHint_react; + case 'send': + return l10n.commandHint_send; + case 'unban': + return l10n.commandHint_unban; + case 'markasdm': + return l10n.commandHint_markasdm; + case 'markasgroup': + return l10n.commandHint_markasgroup; + case 'googly': + return l10n.commandHint_googly; + case 'hug': + return l10n.commandHint_hug; + case 'cuddle': + return l10n.commandHint_cuddle; + case 'sendraw': + return l10n.commandHint_sendraw; + case 'ignore': + return l10n.commandHint_ignore; + case 'unignore': + return l10n.commandHint_unignore; + case 'roomupgrade': + return l10n.commandHint_roomupgrade; + case 'logout': + return l10n.commandHint_logout; + case 'logoutall': + return l10n.commandHint_logoutall; + default: + return ''; + } +} diff --git a/lib/pages/chat/encryption_info.dart b/lib/pages/chat/encryption_info.dart new file mode 100644 index 0000000..7c3fb75 --- /dev/null +++ b/lib/pages/chat/encryption_info.dart @@ -0,0 +1,107 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:flutter/gestures.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class EncryptionInfo extends StatelessWidget { + final Room room; + + const EncryptionInfo({super.key, required this.room}); + + Future _unverifiedDevices() async { + if (!room.encrypted) return 0; + final users = await room.requestParticipants(); + final devicesKeysLists = users + .map((user) => room.client.userDeviceKeys[user.id]) + .nonNulls; + final devices = devicesKeysLists.fold>( + [], + (devices, devicesKeysList) => [ + ...devices, + ...devicesKeysList.deviceKeys.values, + ], + ); + return devices + .where( + (device) => + !device.verified && + !device.blocked && + !device.hasValidSignatureChain(verifiedByTheirMasterKey: true) && + device.encryptToDevice, + ) + .length; + } + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + return AnimatedSize( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + child: FutureBuilder( + future: _unverifiedDevices(), + builder: (context, asyncSnapshot) { + final unverifiedDevices = asyncSnapshot.data ?? 0; + if (unverifiedDevices == 0) return const SizedBox.shrink(); + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 8.0), + child: Center( + child: Padding( + padding: const EdgeInsets.all(4), + child: Material( + color: theme.colorScheme.surface.withAlpha(128), + borderRadius: BorderRadius.circular( + AppConfig.borderRadius / 3, + ), + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 8.0, + vertical: 4.0, + ), + child: Text.rich( + TextSpan( + children: [ + WidgetSpan( + child: Icon(Icons.lock_person_outlined, size: 13), + ), + TextSpan(text: ' '), + TextSpan( + text: L10n.of( + context, + ).countUnverifiedDevices(unverifiedDevices), + ), + TextSpan(text: ' '), + TextSpan( + style: TextStyle( + color: theme.colorScheme.primary, + decoration: TextDecoration.underline, + decorationColor: theme.colorScheme.primary, + ), + recognizer: TapGestureRecognizer() + ..onTap = () => + context.go('/rooms/${room.id}/encryption'), + text: 'Check', + ), + ], + ), + textAlign: TextAlign.center, + style: TextStyle(fontSize: 11), + ), + ), + ), + ), + ), + ); + }, + ), + ); + } +} diff --git a/lib/pages/chat/event_info_dialog.dart b/lib/pages/chat/event_info_dialog.dart new file mode 100644 index 0000000..b324c37 --- /dev/null +++ b/lib/pages/chat/event_info_dialog.dart @@ -0,0 +1,108 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:convert'; + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/adaptive_bottom_sheet.dart'; +import 'package:tatchat/utils/date_time_extension.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +extension EventInfoDialogExtension on Event { + void showInfoDialog(BuildContext context) => showAdaptiveBottomSheet( + context: context, + builder: (context) => EventInfoDialog(l10n: L10n.of(context), event: this), + ); +} + +class EventInfoDialog extends StatelessWidget { + final Event event; + final L10n l10n; + + const EventInfoDialog({required this.event, required this.l10n, super.key}); + + String prettyJson(MatrixEvent event) { + const decoder = JsonDecoder(); + const encoder = JsonEncoder.withIndent(' '); + final object = decoder.convert(jsonEncode(event.toJson())); + return encoder.convert(object); + } + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final originalSource = event.originalSource; + return Scaffold( + appBar: AppBar( + title: Text(L10n.of(context).messageInfo), + leading: CloseButton( + onPressed: Navigator.of(context, rootNavigator: false).pop, + ), + ), + body: ListView( + children: [ + ListTile( + leading: Avatar( + mxContent: event.senderFromMemoryOrFallback.avatarUrl, + name: event.senderFromMemoryOrFallback.calcDisplayname(), + client: event.room.client, + presenceUserId: event.senderId, + ), + title: Text(L10n.of(context).sender), + subtitle: Text( + '${event.senderFromMemoryOrFallback.calcDisplayname()} [${event.senderId}]', + ), + ), + ListTile( + title: Text('${L10n.of(context).time}:'), + subtitle: Text(event.originServerTs.localizedTime(context)), + ), + ListTile( + title: Text('${L10n.of(context).status}:'), + subtitle: Text(event.status.name), + ), + ListTile(title: Text('${L10n.of(context).sourceCode}:')), + Padding( + padding: const EdgeInsets.all(12.0), + child: Material( + borderRadius: BorderRadius.circular(AppConfig.borderRadius), + color: theme.colorScheme.surfaceContainer, + child: SingleChildScrollView( + padding: const EdgeInsets.all(16), + scrollDirection: Axis.horizontal, + child: SelectableText( + prettyJson(MatrixEvent.fromJson(event.toJson())), + style: TextStyle(color: theme.colorScheme.onSurface), + ), + ), + ), + ), + if (event.messageType != MessageTypes.BadEncrypted && + originalSource != null) ...[ + ListTile(title: Text('${L10n.of(context).encrypted}:')), + Padding( + padding: const EdgeInsets.all(12.0), + child: Material( + borderRadius: BorderRadius.circular(AppConfig.borderRadius), + color: theme.colorScheme.surfaceContainer, + child: SingleChildScrollView( + padding: const EdgeInsets.all(16), + scrollDirection: Axis.horizontal, + child: SelectableText( + prettyJson(originalSource), + style: TextStyle(color: theme.colorScheme.onSurface), + ), + ), + ), + ), + ], + ], + ), + ); + } +} diff --git a/lib/pages/chat/events/audio_player.dart b/lib/pages/chat/events/audio_player.dart new file mode 100644 index 0000000..a0b4fdd --- /dev/null +++ b/lib/pages/chat/events/audio_player.dart @@ -0,0 +1,538 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; +import 'dart:io'; + +import 'package:async/async.dart'; +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/utils/error_reporter.dart'; +import 'package:tatchat/utils/file_description.dart'; +import 'package:tatchat/utils/localized_exception_extension.dart'; +import 'package:tatchat/utils/url_launcher.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter_linkify/flutter_linkify.dart'; +import 'package:just_audio/just_audio.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; +import 'package:ogg_caf_converter/ogg_caf_converter.dart'; +import 'package:path_provider/path_provider.dart'; + +import '../../../utils/matrix_sdk_extensions/event_extension.dart'; +import '../../../widgets/tatu_chat_app.dart'; +import '../../../widgets/matrix.dart'; + +class AudioPlayerWidget extends StatefulWidget { + final Color color; + final Color linkColor; + final double fontSize; + final Event event; + + static const int wavesCount = 40; + + const AudioPlayerWidget( + this.event, { + required this.color, + required this.linkColor, + required this.fontSize, + super.key, + }); + + @override + AudioPlayerState createState() => AudioPlayerState(); +} + +enum AudioPlayerStatus { notDownloaded, downloading, downloaded } + +class AudioPlayerState extends State { + static const double buttonSize = 36; + + AudioPlayerStatus status = AudioPlayerStatus.notDownloaded; + double? _downloadProgress; + + late final MatrixState matrix; + List? _waveform; + String? _durationString; + + @override + void dispose() { + super.dispose(); + final audioPlayer = matrix.voiceMessageEventId.value != widget.event.eventId + ? null + : matrix.audioPlayer; + if (audioPlayer != null) { + if (audioPlayer.playing && !audioPlayer.isAtEndPosition) { + WidgetsBinding.instance.addPostFrameCallback((_) { + ScaffoldMessenger.of(matrix.context).showMaterialBanner( + MaterialBanner( + padding: EdgeInsets.zero, + leading: StreamBuilder( + stream: audioPlayer.playerStateStream.asBroadcastStream(), + builder: (context, _) => IconButton( + onPressed: () { + if (audioPlayer.isAtEndPosition) { + audioPlayer.seek(Duration.zero); + } else if (audioPlayer.playing) { + audioPlayer.pause(); + } else { + audioPlayer.play(); + } + }, + icon: audioPlayer.playing && !audioPlayer.isAtEndPosition + ? const Icon(Icons.pause_outlined) + : const Icon(Icons.play_arrow_outlined), + ), + ), + content: StreamBuilder( + stream: audioPlayer.positionStream.asBroadcastStream(), + builder: (context, _) => GestureDetector( + onTap: () => TatuChatApp.router.go( + '/rooms/${widget.event.room.id}?event=${widget.event.eventId}', + ), + child: Text( + '🎙️ ${audioPlayer.position.minuteSecondString} / ${audioPlayer.duration?.minuteSecondString} - ${widget.event.senderFromMemoryOrFallback.calcDisplayname()}', + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + ), + actions: [ + IconButton( + onPressed: () { + audioPlayer.pause(); + audioPlayer.dispose(); + matrix.voiceMessageEventId.value = matrix.audioPlayer = + null; + + WidgetsBinding.instance.addPostFrameCallback((_) { + ScaffoldMessenger.of( + matrix.context, + ).clearMaterialBanners(); + }); + }, + icon: const Icon(Icons.close_outlined), + ), + ], + ), + ); + }); + return; + } + audioPlayer.pause(); + audioPlayer.dispose(); + matrix.voiceMessageEventId.value = matrix.audioPlayer = null; + } + } + + Future _onButtonTap() async { + WidgetsBinding.instance.addPostFrameCallback((_) { + ScaffoldMessenger.of(matrix.context).clearMaterialBanners(); + }); + final currentPlayer = + matrix.voiceMessageEventId.value != widget.event.eventId + ? null + : matrix.audioPlayer; + if (currentPlayer != null && !currentPlayer.isAtEndPosition) { + if (currentPlayer.playing) { + currentPlayer.pause(); + } else { + currentPlayer.play(); + } + return; + } + + matrix.voiceMessageEventId.value = widget.event.eventId; + matrix.audioPlayer + ?..stop() + ..dispose(); + File? file; + MatrixFile? matrixFile; + + setState(() => status = AudioPlayerStatus.downloading); + try { + final fileSize = widget.event.content + .tryGetMap('info') + ?.tryGet('size'); + matrixFile = await widget.event.downloadAndDecryptAttachment( + onDownloadProgress: fileSize != null && fileSize > 0 + ? (progress) { + final progressPercentage = progress / fileSize; + setState(() { + _downloadProgress = progressPercentage < 1 + ? progressPercentage + : null; + }); + } + : null, + ); + + final attachmentUrl = widget.event.attachmentOrThumbnailMxcUrl(); + + if (!kIsWeb && attachmentUrl != null) { + final tempDir = await getTemporaryDirectory(); + final fileName = Uri.encodeComponent(attachmentUrl.pathSegments.last); + file = File('${tempDir.path}/${fileName}_${matrixFile.name}'); + + await file.writeAsBytes(matrixFile.bytes); + + if (Platform.isIOS && + matrixFile.mimeType.toLowerCase() == 'audio/ogg') { + Logs().v('Convert ogg audio file for iOS...'); + final convertedFile = File('${file.path}.caf'); + if (await convertedFile.exists() == false) { + await OggCafConverter().convertOggToCaf( + input: file.path, + output: convertedFile.path, + ); + } + file = convertedFile; + } + } + + setState(() { + status = AudioPlayerStatus.downloaded; + }); + } catch (e, s) { + Logs().v('Could not download audio file', e, s); + if (!mounted) rethrow; + ScaffoldMessenger.of( + context, + ).showSnackBar(SnackBar(content: Text(e.toLocalizedString(context)))); + rethrow; + } + if (!context.mounted) return; + if (matrix.voiceMessageEventId.value != widget.event.eventId) return; + + final audioPlayer = matrix.audioPlayer = AudioPlayer(); + + if (file != null) { + audioPlayer.setFilePath(file.path); + } else { + await audioPlayer.setAudioSource( + AudioSource.uri( + Uri.dataFromBytes(matrixFile.bytes, mimeType: matrixFile.mimeType), + ), + ); + } + if (!mounted) return; + + audioPlayer.play().onError( + ErrorReporter(context, 'Unable to play audio message').onErrorCallback, + ); + } + + Future _toggleSpeed() async { + final audioPlayer = matrix.audioPlayer; + if (audioPlayer == null) return; + switch (audioPlayer.speed) { + case 1.0: + await audioPlayer.setSpeed(1.25); + break; + case 1.25: + await audioPlayer.setSpeed(1.5); + break; + case 1.5: + await audioPlayer.setSpeed(2.0); + break; + case 2.0: + await audioPlayer.setSpeed(0.5); + break; + case 0.5: + default: + await audioPlayer.setSpeed(1.0); + break; + } + setState(() {}); + } + + List? _getWaveform() { + final eventWaveForm = widget.event.content + .tryGetMap('org.matrix.msc1767.audio') + ?.tryGetList('waveform'); + if (eventWaveForm == null || eventWaveForm.isEmpty) { + return null; + } + while (eventWaveForm.length < AudioPlayerWidget.wavesCount) { + for (var i = 0; i < eventWaveForm.length; i = i + 2) { + eventWaveForm.insert(i, eventWaveForm[i]); + } + } + var i = 0; + final step = (eventWaveForm.length / AudioPlayerWidget.wavesCount).round(); + while (eventWaveForm.length > AudioPlayerWidget.wavesCount) { + eventWaveForm.removeAt(i); + i = (i + step) % AudioPlayerWidget.wavesCount; + } + return eventWaveForm.map((i) => i > 1024 ? 1024 : i).toList(); + } + + @override + void initState() { + super.initState(); + matrix = Matrix.of(context); + _waveform = _getWaveform(); + + if (matrix.voiceMessageEventId.value == widget.event.eventId && + matrix.audioPlayer != null) { + WidgetsBinding.instance.addPostFrameCallback((_) { + ScaffoldMessenger.of(matrix.context).clearMaterialBanners(); + }); + } + + final durationInt = widget.event.content + .tryGetMap('info') + ?.tryGet('duration'); + if (durationInt != null) { + final duration = Duration(milliseconds: durationInt); + _durationString = duration.minuteSecondString; + } + } + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final waveform = _waveform; + + return ValueListenableBuilder( + valueListenable: matrix.voiceMessageEventId, + builder: (context, eventId, _) { + final audioPlayer = eventId != widget.event.eventId + ? null + : matrix.audioPlayer; + + final fileDescription = widget.event.fileDescription; + + return StreamBuilder( + stream: audioPlayer == null + ? null + : StreamGroup.merge([ + audioPlayer.positionStream.asBroadcastStream(), + audioPlayer.playerStateStream.asBroadcastStream(), + ]), + builder: (context, _) { + final maxPosition = + audioPlayer?.duration?.inMilliseconds.toDouble() ?? 1.0; + var currentPosition = + audioPlayer?.position.inMilliseconds.toDouble() ?? 0.0; + if (currentPosition > maxPosition) currentPosition = maxPosition; + + final wavePosition = + (currentPosition / maxPosition) * AudioPlayerWidget.wavesCount; + + final statusText = audioPlayer == null + ? _durationString ?? '00:00' + : audioPlayer.position.minuteSecondString; + return Padding( + padding: const EdgeInsets.all(12.0), + child: Column( + mainAxisSize: .min, + crossAxisAlignment: .start, + children: [ + ConstrainedBox( + constraints: const BoxConstraints( + maxWidth: FluffyThemes.columnWidth, + ), + child: Row( + mainAxisSize: .min, + children: [ + SizedBox( + width: buttonSize, + height: buttonSize, + child: status == AudioPlayerStatus.downloading + ? CircularProgressIndicator( + strokeWidth: 2, + color: widget.color, + value: _downloadProgress, + ) + : InkWell( + borderRadius: BorderRadius.circular(64), + onLongPress: () => + widget.event.saveFile(context), + onTap: _onButtonTap, + child: Material( + color: widget.color.withAlpha(64), + borderRadius: BorderRadius.circular(64), + child: Icon( + audioPlayer?.playing == true && + audioPlayer?.isAtEndPosition == + false + ? Icons.pause_outlined + : Icons.play_arrow_outlined, + color: widget.color, + ), + ), + ), + ), + const SizedBox(width: 8), + Expanded( + child: Stack( + children: [ + if (waveform != null) + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 16.0, + ), + child: Row( + children: [ + for ( + var i = 0; + i < AudioPlayerWidget.wavesCount; + i++ + ) + Expanded( + child: Container( + height: 32, + alignment: Alignment.center, + child: Container( + margin: + const EdgeInsets.symmetric( + horizontal: 1, + ), + decoration: BoxDecoration( + color: i < wavePosition + ? widget.color + : widget.color.withAlpha( + 128, + ), + borderRadius: + BorderRadius.circular(64), + ), + height: 32 * (waveform[i] / 1024), + ), + ), + ), + ], + ), + ), + SizedBox( + height: 32, + child: Slider( + thumbColor: + widget.event.senderId == + widget.event.room.client.userID + ? theme.colorScheme.onPrimary + : theme.colorScheme.primary, + activeColor: waveform == null + ? widget.color + : Colors.transparent, + inactiveColor: waveform == null + ? widget.color.withAlpha(128) + : Colors.transparent, + max: maxPosition, + value: currentPosition, + onChanged: (position) => audioPlayer == null + ? _onButtonTap() + : audioPlayer.seek( + Duration( + milliseconds: position.round(), + ), + ), + ), + ), + ], + ), + ), + const SizedBox(width: 8), + SizedBox( + width: 36, + child: Text( + statusText, + style: TextStyle(color: widget.color, fontSize: 12), + ), + ), + const SizedBox(width: 8), + AnimatedCrossFade( + firstChild: Padding( + padding: const EdgeInsets.only(right: 8.0), + child: Icon( + Icons.mic_none_outlined, + color: widget.color, + ), + ), + secondChild: Material( + color: widget.color.withAlpha(64), + borderRadius: BorderRadius.circular( + AppConfig.borderRadius, + ), + child: InkWell( + borderRadius: BorderRadius.circular( + AppConfig.borderRadius, + ), + onTap: _toggleSpeed, + child: SizedBox( + width: 32, + height: 20, + child: Center( + child: Text( + '${audioPlayer?.speed}x', + style: TextStyle( + color: widget.color, + fontSize: 9, + ), + ), + ), + ), + ), + ), + alignment: Alignment.center, + crossFadeState: audioPlayer == null + ? CrossFadeState.showFirst + : CrossFadeState.showSecond, + duration: FluffyThemes.animationDuration, + ), + ], + ), + ), + if (fileDescription != null) ...[ + const SizedBox(height: 8), + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 16, + vertical: 8, + ), + child: Linkify( + text: fileDescription, + textScaleFactor: MediaQuery.textScalerOf( + context, + ).scale(1), + style: TextStyle( + color: widget.color, + fontSize: widget.fontSize, + ), + options: const LinkifyOptions(humanize: false), + linkStyle: TextStyle( + color: widget.linkColor, + fontSize: widget.fontSize, + decoration: TextDecoration.underline, + decorationColor: widget.linkColor, + ), + onOpen: (url) => + UrlLauncher(context, url.url).launchUrl(), + ), + ), + ], + ], + ), + ); + }, + ); + }, + ); + } +} + +extension on AudioPlayer { + bool get isAtEndPosition { + final duration = this.duration; + if (duration == null) return true; + return position >= duration; + } +} + +extension on Duration { + String get minuteSecondString => + '${inMinutes.toString().padLeft(2, '0')}:${(inSeconds % 60).toString().padLeft(2, '0')}'; +} diff --git a/lib/pages/chat/events/cute_events.dart b/lib/pages/chat/events/cute_events.dart new file mode 100644 index 0000000..2dc50ec --- /dev/null +++ b/lib/pages/chat/events/cute_events.dart @@ -0,0 +1,195 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:math'; + +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class CuteContent extends StatefulWidget { + final Event event; + + const CuteContent(this.event, {super.key}); + + @override + State createState() => _CuteContentState(); +} + +class _CuteContentState extends State { + static bool _isOverlayShown = false; + + @override + void initState() { + if (AppSettings.autoplayImages.value && !_isOverlayShown) { + addOverlay(); + } + super.initState(); + } + + @override + Widget build(BuildContext context) { + return FutureBuilder( + future: widget.event.fetchSenderUser(), + builder: (context, snapshot) { + final label = generateLabel(snapshot.data); + + return GestureDetector( + onTap: addOverlay, + child: Column( + mainAxisSize: .min, + mainAxisAlignment: .center, + children: [ + Text(widget.event.text, style: const TextStyle(fontSize: 150)), + if (label != null) Text(label), + ], + ), + ); + }, + ); + } + + Future addOverlay() async { + _isOverlayShown = true; + await Future.delayed(const Duration(milliseconds: 50)); + if (!mounted) return; + + OverlayEntry? overlay; + overlay = OverlayEntry( + builder: (context) => CuteEventOverlay( + emoji: widget.event.text, + onAnimationEnd: () { + _isOverlayShown = false; + overlay?.remove(); + }, + ), + ); + Overlay.of(context).insert(overlay); + } + + String? generateLabel(User? user) { + switch (widget.event.content['cute_type']) { + case 'googly_eyes': + return L10n.of(context).googlyEyesContent( + user?.displayName ?? + widget.event.senderFromMemoryOrFallback.displayName ?? + '', + ); + case 'cuddle': + return L10n.of(context).cuddleContent( + user?.displayName ?? + widget.event.senderFromMemoryOrFallback.displayName ?? + '', + ); + case 'hug': + return L10n.of(context).hugContent( + user?.displayName ?? + widget.event.senderFromMemoryOrFallback.displayName ?? + '', + ); + } + return null; + } +} + +class CuteEventOverlay extends StatefulWidget { + final String emoji; + final VoidCallback onAnimationEnd; + + const CuteEventOverlay({ + super.key, + required this.emoji, + required this.onAnimationEnd, + }); + + @override + State createState() => _CuteEventOverlayState(); +} + +class _CuteEventOverlayState extends State + with TickerProviderStateMixin { + final List items = List.generate( + 50, + (index) => Size(Random().nextDouble(), 4 + (Random().nextDouble() * 4)), + ); + + AnimationController? controller; + + @override + void initState() { + controller = AnimationController( + duration: const Duration(milliseconds: 2500), + vsync: this, + ); + controller?.forward(); + controller?.addStatusListener(_hideOverlay); + super.initState(); + } + + @override + Widget build(BuildContext context) { + return AnimatedBuilder( + animation: controller!, + builder: (context, _) => LayoutBuilder( + builder: (context, constraints) { + final width = constraints.maxWidth - _CuteOverlayContent.size; + final height = constraints.maxHeight + _CuteOverlayContent.size; + return SizedBox( + height: constraints.maxHeight, + width: constraints.maxWidth, + child: OverflowBox( + child: Stack( + alignment: Alignment.bottomLeft, + fit: StackFit.expand, + children: items + .map( + (position) => Positioned( + left: position.width * width, + bottom: + (height * + .25 * + position.height * + (controller?.value ?? 0)) - + _CuteOverlayContent.size, + child: _CuteOverlayContent(emoji: widget.emoji), + ), + ) + .toList(), + ), + ), + ); + }, + ), + ); + } + + void _hideOverlay(AnimationStatus status) { + if (status == AnimationStatus.completed) { + widget.onAnimationEnd.call(); + } + } + + @override + void dispose() { + controller?.dispose(); + super.dispose(); + } +} + +class _CuteOverlayContent extends StatelessWidget { + static const double size = 64.0; + final String emoji; + + const _CuteOverlayContent({required this.emoji}); + + @override + Widget build(BuildContext context) { + return SizedBox.square( + dimension: size, + child: Text(emoji, style: const TextStyle(fontSize: 48)), + ); + } +} diff --git a/lib/pages/chat/events/file_send_status_indicator.dart b/lib/pages/chat/events/file_send_status_indicator.dart new file mode 100644 index 0000000..749dc7b --- /dev/null +++ b/lib/pages/chat/events/file_send_status_indicator.dart @@ -0,0 +1,35 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class FileSendStatusIndicator extends StatelessWidget { + final FileSendingStatus fileSendingStatus; + const FileSendStatusIndicator({super.key, required this.fileSendingStatus}); + + @override + Widget build(BuildContext context) { + return CircleAvatar( + child: Stack( + alignment: Alignment.center, + children: [ + switch (fileSendingStatus) { + FileSendingStatus.generatingThumbnail => Icon( + Icons.compress_outlined, + size: 18, + ), + FileSendingStatus.encrypting => Icon(Icons.lock_outlined, size: 18), + FileSendingStatus.uploading => Icon( + Icons.upload_outlined, + size: 18, + ), + }, + const CircularProgressIndicator(strokeWidth: 3), + ], + ), + ); + } +} diff --git a/lib/pages/chat/events/html_message.dart b/lib/pages/chat/events/html_message.dart new file mode 100644 index 0000000..e00ff8f --- /dev/null +++ b/lib/pages/chat/events/html_message.dart @@ -0,0 +1,743 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:collection/collection.dart'; +import 'package:cupertino_ui/cupertino_ui.dart'; +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/code_highlight_theme.dart'; +import 'package:tatchat/utils/event_checkbox_extension.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:tatchat/widgets/mxc_image.dart'; +import 'package:flutter_linkify/flutter_linkify.dart'; +import 'package:highlight/highlight.dart' show highlight; +import 'package:html/dom.dart' as dom; +import 'package:html/parser.dart' as parser; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../../utils/url_launcher.dart'; + +class HtmlMessage extends StatelessWidget { + final String html; + final Room room; + final Color textColor; + final double fontSize; + final TextStyle linkStyle; + final void Function(LinkableElement) onOpen; + final String? eventId; + final Set? checkboxCheckedEvents; + + const HtmlMessage({ + super.key, + required this.html, + required this.room, + required this.fontSize, + required this.linkStyle, + this.textColor = Colors.black, + required this.onOpen, + this.eventId, + this.checkboxCheckedEvents, + }); + + /// Keep in sync with: https://spec.matrix.org/latest/client-server-api/#mroommessage-msgtypes + static const Set allowedHtmlTags = { + 'font', + 'del', + 's', + 'h1', + 'h2', + 'h3', + 'h4', + 'h5', + 'h6', + 'blockquote', + 'p', + 'a', + 'ul', + 'ol', + 'sup', + 'sub', + 'li', + 'b', + 'i', + 'u', + 'strong', + 'em', + 'strike', + 'code', + 'hr', + 'br', + 'div', + 'table', + 'thead', + 'tbody', + 'tr', + 'th', + 'td', + 'caption', + 'pre', + 'span', + 'img', + 'details', + 'summary', + // Not in the allowlist of the matrix spec yet but should be harmless: + 'ruby', + 'rp', + 'rt', + 'html', + 'body', + }; + + static const Set ignoredHtmlTags = {'mx-reply'}; + + /// We add line breaks before these tags: + static const Set blockHtmlTags = { + 'p', + 'ul', + 'ol', + 'pre', + 'div', + 'table', + 'details', + 'blockquote', + }; + + /// We add line breaks before these tags: + static const Set fullLineHtmlTag = { + 'h1', + 'h2', + 'h3', + 'h4', + 'h5', + 'h6', + 'li', + }; + + /// Adding line breaks before block elements. + List _renderWithLineBreaks( + dom.NodeList nodes, + BuildContext context, { + int depth = 1, + }) { + final onlyElements = nodes.whereType().toList(); + return [ + for (var i = 0; i < nodes.length; i++) ...[ + // Actually render the node child: + _renderHtml(nodes[i], context, depth: depth + 1), + // Add linebreaks between blocks: + if (nodes[i] is dom.Element && + onlyElements.indexOf(nodes[i] as dom.Element) < + onlyElements.length - 1) ...[ + if (blockHtmlTags.contains((nodes[i] as dom.Element).localName)) + const TextSpan(text: '\n\n'), + if (fullLineHtmlTag.contains((nodes[i] as dom.Element).localName)) + const TextSpan(text: '\n'), + ], + ], + ]; + } + + InlineSpan _renderCodeBlockNode(dom.Node node) { + if (node is! dom.Element) { + return TextSpan(text: node.text); + } + final style = + atomOneDarkTheme[node.className.split('-').last] ?? + atomOneDarkTheme['root']; + + return TextSpan( + children: node.nodes.map(_renderCodeBlockNode).toList(), + style: style, + ); + } + + /// Transforms a Node to an InlineSpan. + InlineSpan _renderHtml(dom.Node node, BuildContext context, {int depth = 1}) { + // We must not render elements nested more than 100 elements deep: + if (depth >= 100) return const TextSpan(); + + if (node is dom.Element && + ignoredHtmlTags.contains(node.localName?.toLowerCase())) { + return const TextSpan(); + } + + // This is a text node or not permitted node, so we render it as text: + if (node is! dom.Element || !allowedHtmlTags.contains(node.localName)) { + var text = node.text ?? ''; + // Single linebreak nodes between Elements are ignored: + if (text == '\n') text = ''; + + return LinkifySpan( + text: text, + options: const LinkifyOptions(humanize: false), + linkStyle: linkStyle, + onOpen: onOpen, + ); + } + + switch (node.localName) { + case 'br': + return const TextSpan(text: '\n'); + case 'a': + final href = node.attributes['href']; + if (href == null) continue block; + final matrixId = node.attributes['href'] + ?.parseIdentifierIntoParts() + ?.primaryIdentifier; + if (matrixId != null) { + if (matrixId.sigil == '@') { + final user = room.unsafeGetUserFromMemoryOrFallback(matrixId); + return WidgetSpan( + child: MatrixPill( + key: Key('user_pill_$matrixId'), + name: user.calcDisplayname(), + avatar: user.avatarUrl, + uri: href, + outerContext: context, + fontSize: fontSize, + color: linkStyle.color, + ), + ); + } + if (matrixId.sigil == '#' || matrixId.sigil == '!') { + final room = matrixId.sigil == '!' + ? this.room.client.getRoomById(matrixId) + : this.room.client.getRoomByAlias(matrixId); + return WidgetSpan( + child: MatrixPill( + name: room?.getLocalizedDisplayname() ?? matrixId, + avatar: room?.avatar, + uri: href, + outerContext: context, + fontSize: fontSize, + color: linkStyle.color, + ), + ); + } + } + return WidgetSpan( + child: Tooltip( + message: href, + child: InkWell( + splashColor: Colors.transparent, + onTap: () => UrlLauncher(context, href, node.text).launchUrl(), + child: Text.rich( + TextSpan( + children: _renderWithLineBreaks( + node.nodes, + context, + depth: depth, + ), + style: linkStyle, + ), + style: const TextStyle(height: 1.25), + ), + ), + ), + ); + case 'li': + if (!{'ol', 'ul'}.contains(node.parent?.localName)) { + continue block; + } + final eventId = this.eventId; + + final isCheckbox = node.className == 'task-list-item'; + final checkboxIndex = isCheckbox + ? node.rootElement + .getElementsByClassName('task-list-item') + .indexOf(node) + + 1 + : null; + final checkedByReaction = !isCheckbox + ? null + : checkboxCheckedEvents?.firstWhereOrNull( + (event) => event.checkedCheckboxId == checkboxIndex, + ); + final staticallyChecked = + isCheckbox && node.children.first.attributes['checked'] == 'true'; + + return WidgetSpan( + child: Padding( + padding: EdgeInsets.only(left: fontSize), + child: Text.rich( + TextSpan( + children: [ + if (!isCheckbox) ...[ + if (node.parent?.localName == 'ul') + const TextSpan(text: '• '), + if (node.parent?.localName == 'ol') + TextSpan( + text: + '${(node.parent?.nodes.whereType().toList().indexOf(node) ?? 0) + (int.tryParse(node.parent?.attributes['start'] ?? '1') ?? 1)}. ', + ), + ], + if (node.className == 'task-list-item') + WidgetSpan( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 8.0), + child: SizedBox.square( + dimension: fontSize + 2, + child: CupertinoCheckbox( + checkColor: textColor, + side: BorderSide(color: textColor), + activeColor: textColor.withAlpha(64), + value: + staticallyChecked || checkedByReaction != null, + onChanged: + eventId == null || + checkboxIndex == null || + staticallyChecked || + !room.canSendDefaultMessages || + (checkedByReaction != null && + checkedByReaction.senderId != + room.client.userID) + ? null + : (_) => showFutureLoadingDialog( + context: context, + future: () => checkedByReaction != null + ? room.redactEvent( + checkedByReaction.eventId, + ) + : room.checkCheckbox( + eventId, + checkboxIndex, + ), + ), + ), + ), + ), + ), + ..._renderWithLineBreaks(node.nodes, context, depth: depth), + ], + style: TextStyle(fontSize: fontSize, color: textColor), + ), + ), + ), + ); + case 'blockquote': + return WidgetSpan( + child: Container( + padding: const EdgeInsets.only(left: 8.0), + decoration: BoxDecoration( + border: Border(left: BorderSide(color: textColor, width: 5)), + ), + child: Text.rich( + TextSpan( + children: _renderWithLineBreaks( + node.nodes, + context, + depth: depth, + ), + ), + style: TextStyle( + fontStyle: FontStyle.italic, + fontSize: fontSize, + color: textColor, + ), + ), + ), + ); + case 'code': + final isInline = node.parent?.localName != 'pre'; + final lang = + node.className + .split(' ') + .singleWhereOrNull( + (className) => className.startsWith('language-'), + ) + ?.split('language-') + .last ?? + 'md'; + final highlightedHtml = highlight + .parse(node.text, language: lang) + .toHtml(); + final element = parser.parse(highlightedHtml).body; + if (element == null) { + return const TextSpan(text: 'Unable to render code block!'); + } + + return WidgetSpan( + child: Material( + color: atomOneBackgroundColor, + shape: RoundedRectangleBorder( + side: const BorderSide(color: hightlightTextColor), + borderRadius: BorderRadius.circular(4), + ), + child: Padding( + padding: isInline + ? const EdgeInsets.symmetric(horizontal: 4.0) + : const EdgeInsets.symmetric(horizontal: 8.0, vertical: 4.0), + child: Text.rich( + TextSpan(children: [_renderCodeBlockNode(element)]), + selectionColor: hightlightTextColor.withAlpha(128), + ), + ), + ), + ); + case 'img': + final mxcUrl = Uri.tryParse(node.attributes['src'] ?? ''); + if (mxcUrl == null || mxcUrl.scheme != 'mxc') { + return TextSpan(text: node.attributes['alt']); + } + + final width = double.tryParse(node.attributes['width'] ?? ''); + final height = double.tryParse(node.attributes['height'] ?? ''); + const defaultDimension = 64.0; + final actualWidth = width ?? height ?? defaultDimension; + final actualHeight = height ?? width ?? defaultDimension; + + return WidgetSpan( + child: SizedBox( + width: actualWidth, + height: actualHeight, + child: MxcImage( + uri: mxcUrl, + width: actualWidth, + height: actualHeight, + isThumbnail: (actualWidth * actualHeight) > (256 * 256), + ), + ), + ); + case 'table': + return WidgetSpan( + child: SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Table( + defaultColumnWidth: const IntrinsicColumnWidth(), + border: TableBorder.all(color: textColor.withAlpha(100)), + children: node.nodes + .whereType() + .expand( + (e) => + e.localName == 'thead' || + e.localName == 'tbody' || + e.localName == 'tfoot' + ? e.nodes.whereType() + : [e], + ) + .where((e) => e.localName == 'tr') + .map( + (tr) => TableRow( + children: tr.nodes + .whereType() + .where( + (e) => e.localName == 'td' || e.localName == 'th', + ) + .map( + (cell) => Padding( + padding: const EdgeInsets.symmetric( + horizontal: 6, + vertical: 3, + ), + child: Text.rich( + TextSpan( + children: _renderWithLineBreaks( + cell.nodes, + context, + depth: depth, + ), + style: cell.localName == 'th' + ? const TextStyle( + fontWeight: FontWeight.bold, + ) + : null, + ), + style: TextStyle( + fontSize: fontSize, + color: textColor, + ), + ), + ), + ) + .toList(), + ), + ) + .toList(), + ), + ), + ); + case 'thead': + case 'tbody': + case 'tfoot': + case 'tr': + case 'th': + case 'td': + case 'caption': + // These are handled by the 'table' case above; if encountered + // outside a table, render children inline as fallback. + return TextSpan( + children: _renderWithLineBreaks(node.nodes, context, depth: depth), + ); + case 'hr': + return const WidgetSpan(child: Divider()); + case 'details': + var obscure = true; + return WidgetSpan( + child: StatefulBuilder( + builder: (context, setState) => InkWell( + splashColor: Colors.transparent, + onTap: () => setState(() { + obscure = !obscure; + }), + child: Text.rich( + TextSpan( + children: [ + WidgetSpan( + child: Icon( + obscure ? Icons.arrow_right : Icons.arrow_drop_down, + size: fontSize * 1.2, + color: textColor, + ), + ), + if (obscure) + ...node.nodes + .where( + (node) => + node is dom.Element && + node.localName == 'summary', + ) + .map( + (node) => _renderHtml(node, context, depth: depth), + ) + else + ..._renderWithLineBreaks( + node.nodes, + context, + depth: depth, + ), + ], + ), + style: TextStyle(fontSize: fontSize, color: textColor), + ), + ), + ), + ); + case 'span': + if (!node.attributes.containsKey('data-mx-spoiler')) { + continue block; + } + var obscure = true; + return WidgetSpan( + child: StatefulBuilder( + builder: (context, setState) => InkWell( + splashColor: Colors.transparent, + onTap: () => setState(() { + obscure = !obscure; + }), + child: Text.rich( + TextSpan( + children: _renderWithLineBreaks( + node.nodes, + context, + depth: depth, + ), + ), + style: TextStyle( + fontSize: fontSize, + color: textColor, + backgroundColor: obscure ? textColor : null, + ), + ), + ), + ), + ); + block: + default: + return TextSpan( + style: switch (node.localName) { + 'body' => TextStyle(fontSize: fontSize, color: textColor), + 'a' => linkStyle, + 'strong' => const TextStyle(fontWeight: FontWeight.bold), + 'em' || 'i' => const TextStyle(fontStyle: FontStyle.italic), + 'del' || 's' || 'strikethrough' => const TextStyle( + decoration: TextDecoration.lineThrough, + ), + 'u' => const TextStyle(decoration: TextDecoration.underline), + 'h1' => TextStyle(fontSize: fontSize * 1.6, height: 2), + 'h2' => TextStyle(fontSize: fontSize * 1.5, height: 2), + 'h3' => TextStyle(fontSize: fontSize * 1.4, height: 2), + 'h4' => TextStyle(fontSize: fontSize * 1.3, height: 1.75), + 'h5' => TextStyle(fontSize: fontSize * 1.2, height: 1.75), + 'h6' => TextStyle(fontSize: fontSize * 1.1, height: 1.5), + 'span' => TextStyle( + color: + node.attributes['color']?.hexToColor ?? + node.attributes['data-mx-color']?.hexToColor ?? + textColor, + backgroundColor: node.attributes['data-mx-bg-color']?.hexToColor, + ), + 'sup' => const TextStyle( + fontFeatures: [FontFeature.superscripts()], + ), + 'sub' => const TextStyle(fontFeatures: [FontFeature.subscripts()]), + _ => null, + }, + children: _renderWithLineBreaks(node.nodes, context, depth: depth), + ); + } + } + + @override + Widget build(BuildContext context) { + final element = parser.parse(html).body ?? dom.Element.html(''); + final configuredMaxLines = AppSettings.messagePreviewMaxLines.value; + final maxLines = configuredMaxLines <= 0 ? null : configuredMaxLines; + final span = _renderHtml(element, context); + final style = TextStyle(fontSize: fontSize, color: textColor); + + if (maxLines == null) { + return Text.rich( + span, + style: style, + selectionColor: textColor.withAlpha(128), + ); + } + + // Heuristic: if plain text has enough newlines or length, it will overflow. + final plainText = element.text; + final lineCount = '\n'.allMatches(plainText).length + 1; + final likelyOverflows = + lineCount > maxLines || plainText.length > maxLines * 50; + + if (!likelyOverflows) { + return Text.rich( + span, + style: style, + selectionColor: textColor.withAlpha(128), + ); + } + + return _CollapsibleText( + span: span, + style: style, + maxLines: maxLines, + textColor: textColor, + linkColor: linkStyle.color ?? textColor, + fontSize: fontSize, + ); + } +} + +class _CollapsibleText extends StatefulWidget { + final InlineSpan span; + final TextStyle style; + final int maxLines; + final Color textColor; + final Color linkColor; + final double fontSize; + + const _CollapsibleText({ + required this.span, + required this.style, + required this.maxLines, + required this.textColor, + required this.linkColor, + required this.fontSize, + }); + + @override + State<_CollapsibleText> createState() => _CollapsibleTextState(); +} + +class _CollapsibleTextState extends State<_CollapsibleText> { + bool _expanded = false; + + @override + Widget build(BuildContext context) { + final l10n = L10n.of(context); + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + AnimatedSize( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + alignment: Alignment.topLeft, + child: Text.rich( + widget.span, + style: widget.style, + maxLines: _expanded ? null : widget.maxLines, + overflow: _expanded ? TextOverflow.visible : TextOverflow.ellipsis, + selectionColor: widget.textColor.withAlpha(128), + ), + ), + Center( + child: TextButton.icon( + onPressed: () => setState(() => _expanded = !_expanded), + style: TextButton.styleFrom(foregroundColor: widget.linkColor), + icon: Icon(_expanded ? Icons.arrow_drop_up : Icons.arrow_drop_down), + label: Text(_expanded ? l10n.showLess : l10n.showMore), + ), + ), + ], + ); + } +} + +class MatrixPill extends StatelessWidget { + final String name; + final BuildContext outerContext; + final Uri? avatar; + final String uri; + final double? fontSize; + final Color? color; + + const MatrixPill({ + super.key, + required this.name, + required this.outerContext, + this.avatar, + required this.uri, + required this.fontSize, + required this.color, + }); + + @override + Widget build(BuildContext context) { + return InkWell( + splashColor: Colors.transparent, + onTap: UrlLauncher(outerContext, uri).launchUrl, + child: Text.rich( + TextSpan( + children: [ + WidgetSpan( + child: Padding( + padding: const EdgeInsets.only(right: 4.0), + child: Avatar(mxContent: avatar, name: name, size: 16), + ), + ), + TextSpan( + text: name, + style: TextStyle( + color: color, + decorationColor: color, + decoration: TextDecoration.underline, + fontSize: fontSize, + height: 1.25, + ), + ), + ], + ), + ), + ); + } +} + +extension on String { + Color? get hexToColor { + var hexCode = this; + if (hexCode.startsWith('#')) hexCode = hexCode.substring(1); + if (hexCode.length == 6) hexCode = 'FF$hexCode'; + final colorValue = int.tryParse(hexCode, radix: 16); + return colorValue == null ? null : Color(colorValue); + } +} + +extension on dom.Element { + dom.Element get rootElement => parent?.rootElement ?? this; +} diff --git a/lib/pages/chat/events/image_bubble.dart b/lib/pages/chat/events/image_bubble.dart new file mode 100644 index 0000000..36fb2cf --- /dev/null +++ b/lib/pages/chat/events/image_bubble.dart @@ -0,0 +1,175 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/utils/file_description.dart'; +import 'package:tatchat/utils/url_launcher.dart'; +import 'package:tatchat/widgets/mxc_image.dart'; +import 'package:flutter_linkify/flutter_linkify.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../../widgets/blur_hash.dart'; + +class ImageBubble extends StatelessWidget { + final Event event; + final bool tapToView; + final BoxFit fit; + final Color? backgroundColor; + final Color? textColor; + final Color? linkColor; + final bool thumbnailOnly; + final bool animated; + final double width; + final double height; + final void Function()? onTap; + final BorderRadius? borderRadius; + final Timeline? timeline; + + const ImageBubble( + this.event, { + this.tapToView = true, + this.backgroundColor, + this.fit = BoxFit.contain, + this.thumbnailOnly = true, + this.width = 400, + this.height = 300, + this.animated = false, + this.onTap, + this.borderRadius, + this.timeline, + this.textColor, + this.linkColor, + super.key, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + var borderRadius = + this.borderRadius ?? BorderRadius.circular(AppConfig.borderRadius); + + final fileDescription = event.fileDescription; + final textColor = this.textColor; + + if (fileDescription != null) { + borderRadius = borderRadius.copyWith( + bottomLeft: Radius.zero, + bottomRight: Radius.zero, + ); + } + + return Column( + mainAxisSize: .min, + spacing: 8, + children: [ + Material( + color: Colors.transparent, + clipBehavior: Clip.hardEdge, + shape: RoundedRectangleBorder( + borderRadius: borderRadius, + side: BorderSide( + color: event.messageType == MessageTypes.Sticker + ? Colors.transparent + : theme.dividerColor, + ), + ), + child: InkWell( + onTap: onTap, + borderRadius: borderRadius, + child: Stack( + alignment: Alignment.center, + children: [ + Hero( + tag: event.eventId, + child: AppSettings.showThumbnailsInTimeline.value + ? MxcImage( + cacheKey: event.transactionId ?? event.eventId, + cacheName: event.room.id, + event: event, + width: width, + height: height, + fit: fit, + animated: animated, + isThumbnail: thumbnailOnly, + placeholder: event.messageType == MessageTypes.Sticker + ? null + : (_) => _ImageBubblePlaceholder( + event: event, + width: width, + height: height, + fit: fit, + ), + ) + : _ImageBubblePlaceholder( + event: event, + width: width, + height: height, + fit: fit, + ), + ), + ], + ), + ), + ), + if (fileDescription != null && textColor != null) + SizedBox( + width: width, + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + child: Linkify( + text: fileDescription, + textScaleFactor: MediaQuery.textScalerOf(context).scale(1), + style: TextStyle( + color: textColor, + fontSize: AppConfig.messageFontSize, + ), + options: const LinkifyOptions(humanize: false), + linkStyle: TextStyle( + color: linkColor, + fontSize: AppConfig.messageFontSize, + decoration: TextDecoration.underline, + decorationColor: linkColor, + ), + onOpen: (url) => UrlLauncher(context, url.url).launchUrl(), + ), + ), + ), + ], + ); + } +} + +class _ImageBubblePlaceholder extends StatelessWidget { + final Event event; + final double width, height; + final BoxFit fit; + + const _ImageBubblePlaceholder({ + required this.event, + required this.width, + required this.height, + required this.fit, + }); + + @override + Widget build(BuildContext context) { + final blurHashString = + event.infoMap.tryGet('xyz.amorgan.blurhash') ?? + 'LEHV6nWB2yk8pyo0adR*.7kCMdnj'; + return SizedBox( + width: width, + height: height, + child: BlurHash( + blurhash: blurHashString, + width: width, + height: height, + fit: fit, + ), + ); + } +} diff --git a/lib/pages/chat/events/map_bubble.dart b/lib/pages/chat/events/map_bubble.dart new file mode 100644 index 0000000..db069e2 --- /dev/null +++ b/lib/pages/chat/events/map_bubble.dart @@ -0,0 +1,105 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:flutter_map/flutter_map.dart'; +import 'package:latlong2/latlong.dart'; +import 'package:material_ui/material_ui.dart'; + +import '../../../config/app_config.dart'; + +class MapBubble extends StatelessWidget { + final double latitude; + final double longitude; + final double zoom; + final double width; + final double height; + final double radius; + final VoidCallback? onTap; + + const MapBubble({ + required this.latitude, + required this.longitude, + this.zoom = 14.0, + this.width = 400, + this.height = 400, + this.radius = 10.0, + this.onTap, + super.key, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + return Container( + constraints: BoxConstraints.loose(Size(width, height)), + child: AspectRatio( + aspectRatio: width / height, + child: Stack( + children: [ + FlutterMap( + options: MapOptions( + initialCenter: LatLng(latitude, longitude), + initialZoom: zoom, + ), + children: [ + TileLayer( + maxZoom: 20, + minZoom: 0, + urlTemplate: + 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', + userAgentPackageName: AppConfig.appId, + subdomains: const ['a', 'b', 'c'], + ), + MarkerLayer( + rotate: true, + markers: [ + Marker( + point: LatLng(latitude, longitude), + width: 30, + height: 30, + child: Transform.translate( + // No idea why the offset has to be like this, instead of -15 + // It has been determined by trying out, though, that this yields + // the tip of the location pin to be static when zooming. + // Might have to do with psychological perception of where the tip exactly is + offset: const Offset(0, -12.5), + child: const Icon( + Icons.location_pin, + color: Colors.red, + size: 30, + ), + ), + ), + ], + ), + ], + ), + Container( + alignment: Alignment.bottomRight, + child: Text( + ' © OpenStreetMap contributors ', + style: TextStyle( + color: theme.brightness == Brightness.dark + ? Colors.white + : Colors.black, + backgroundColor: theme.appBarTheme.backgroundColor, + ), + ), + ), + Material( + color: Colors.transparent, + child: Tooltip( + message: L10n.of(context).openInMaps, + child: InkWell(onTap: onTap, child: SizedBox.expand()), + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/pages/chat/events/message.dart b/lib/pages/chat/events/message.dart new file mode 100644 index 0000000..8632019 --- /dev/null +++ b/lib/pages/chat/events/message.dart @@ -0,0 +1,1037 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:ui' as ui; + +import 'package:collection/collection.dart'; +import 'package:emoji_picker_flutter/emoji_picker_flutter.dart'; +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/adaptive_bottom_sheet.dart'; +import 'package:tatchat/utils/date_time_extension.dart'; +import 'package:tatchat/utils/file_description.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:tatchat/utils/string_color.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:tatchat/widgets/member_actions_popup_menu_button.dart'; +import 'package:flutter/services.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; +import 'package:swipe_to_action/swipe_to_action.dart'; + +import '../../../config/app_config.dart'; +import '../sticker_picker_dialog.dart'; +import 'message_content.dart'; +import 'message_reactions.dart'; +import 'reply_content.dart'; +import 'state_message.dart'; + +class Message extends StatelessWidget { + final Event event; + final Event? nextEvent; + final Event? previousEvent; + final bool displayReadMarker; + final void Function(Event) onSelect; + final void Function(Event) onInfoTab; + final void Function(String) scrollToEventId; + final void Function() onSwipe; + final void Function() onMention; + final void Function() onEdit; + final void Function(String eventId)? enterThread; + final bool longPressSelect; + final bool selected; + final bool singleSelected; + final Timeline timeline; + final bool highlightMarker; + final bool animateIn; + final bool wallpaperMode; + final ScrollController scrollController; + final List colors; + final void Function()? onExpand; + final bool isCollapsed; + final Set bigEmojis; + + const Message( + this.event, { + this.nextEvent, + this.previousEvent, + this.displayReadMarker = false, + this.longPressSelect = false, + required this.bigEmojis, + required this.onSelect, + required this.onInfoTab, + required this.scrollToEventId, + required this.onSwipe, + this.selected = false, + required this.onEdit, + required this.singleSelected, + required this.timeline, + this.highlightMarker = false, + this.animateIn = false, + this.wallpaperMode = false, + required this.onMention, + required this.scrollController, + required this.colors, + this.onExpand, + required this.enterThread, + this.isCollapsed = false, + super.key, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + if (!{ + EventTypes.Message, + EventTypes.Sticker, + EventTypes.CallInvite, + PollEventContent.startType, + }.contains(event.type)) { + if (event.type.startsWith('m.call.')) { + return const SizedBox.shrink(); + } + return StateMessage(event, onExpand: onExpand, isCollapsed: isCollapsed); + } + + if (event.type == EventTypes.Message && + event.messageType == EventTypes.KeyVerificationRequest) { + return StateMessage(event); + } + + final client = Matrix.of(context).client; + final ownMessage = event.senderId == client.userID; + final alignment = ownMessage ? Alignment.topRight : Alignment.topLeft; + + var color = theme.colorScheme.surfaceContainerHigh; + final displayTime = + event.type == EventTypes.RoomCreate || + previousEvent == null || + !event.originServerTs.sameEnvironment(previousEvent!.originServerTs); + + final nextEventSameSender = + nextEvent != null && + {EventTypes.Message, EventTypes.Sticker}.contains(nextEvent!.type) && + nextEvent!.senderId == event.senderId && + nextEvent!.originServerTs.sameEnvironment(event.originServerTs); + + final previousEventSameSender = + previousEvent != null && + { + EventTypes.Message, + EventTypes.Sticker, + }.contains(previousEvent!.type) && + previousEvent!.senderId == event.senderId && + previousEvent!.originServerTs.sameEnvironment(event.originServerTs); + + final textColor = ownMessage + ? theme.onBubbleColor + : theme.colorScheme.onSurface; + + final linkColor = ownMessage + ? theme.colorScheme.onTertiaryContainer + : theme.colorScheme.tertiary; + + final rowMainAxisAlignment = 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, + ); + const avatarSize = Avatar.defaultSize; + final noBubble = + ({ + MessageTypes.Video, + MessageTypes.Image, + MessageTypes.Sticker, + }.contains(event.messageType) && + event.fileDescription == null && + !event.redacted); + + if (ownMessage) { + color = displayEvent.status.isError + ? theme.colorScheme.error + : theme.bubbleColor; + } + + final sentReactions = {}; + if (singleSelected) { + sentReactions.addAll( + event + .aggregatedEvents(timeline, RelationshipTypes.reaction) + .where( + (event) => + event.senderId == event.room.client.userID && + event.type == 'm.reaction', + ) + .map( + (event) => event.content + .tryGetMap('m.relates_to') + ?.tryGet('key'), + ) + .whereType(), + ); + } + + final hasReactions = event.hasAggregatedEvents( + timeline, + RelationshipTypes.reaction, + ); + + final threadChildren = event.aggregatedEvents( + timeline, + RelationshipTypes.thread, + ); + final isEdited = event.hasAggregatedEvents( + timeline, + RelationshipTypes.edit, + ); + + final showReactionPicker = + singleSelected && event.room.canSendDefaultMessages; + + final enterThread = this.enterThread; + final sender = event.senderFromMemoryOrFallback; + + final wallpaperTextShadow = !wallpaperMode + ? null + : [ + Shadow( + offset: Offset(0.0, 0.0), + blurRadius: 2, + color: theme.colorScheme.surface, + ), + ]; + final eventStateTextColor = theme.colorScheme.onSurface; + + return Center( + child: Swipeable( + key: ValueKey(event.transactionId ?? event.eventId), + background: const Padding( + padding: EdgeInsets.symmetric(horizontal: 12.0), + child: Center(child: Icon(Icons.check_outlined)), + ), + direction: AppSettings.swipeRightToLeftToReply.value + ? SwipeDirection.endToStart + : SwipeDirection.startToEnd, + onSwipe: (_) => onSwipe(), + child: Container( + constraints: const BoxConstraints( + maxWidth: FluffyThemes.maxTimelineWidth, + ), + padding: EdgeInsets.only( + left: 8.0, + right: 8.0, + top: nextEventSameSender ? 1.0 : 8.0, + bottom: previousEventSameSender || previousEvent == null + ? 1.0 + : 8.0, + ), + child: Column( + mainAxisSize: .min, + crossAxisAlignment: ownMessage ? .end : .start, + children: [ + Stack( + clipBehavior: Clip.none, + children: [ + Positioned( + top: 0, + bottom: 0, + left: 0, + right: 0, + child: InkWell( + hoverColor: longPressSelect ? Colors.transparent : null, + enableFeedback: !selected, + onTap: longPressSelect ? null : () => onSelect(event), + borderRadius: BorderRadius.circular( + AppConfig.borderRadius / 2, + ), + child: Material( + borderRadius: BorderRadius.circular( + AppConfig.borderRadius / 2, + ), + color: selected || highlightMarker + ? theme.colorScheme.secondaryContainer.withAlpha( + 128, + ) + : Colors.transparent, + ), + ), + ), + Row( + crossAxisAlignment: .start, + mainAxisAlignment: rowMainAxisAlignment, + children: [ + if (longPressSelect && !event.redacted) + SizedBox( + height: avatarSize, + width: avatarSize, + child: IconButton( + padding: EdgeInsets.zero, + tooltip: L10n.of(context).select, + icon: Icon( + selected + ? Icons.check_circle + : Icons.circle_outlined, + ), + onPressed: () => onSelect(event), + ), + ) + else if (nextEventSameSender || ownMessage) + SizedBox(width: avatarSize) + else + FutureBuilder( + future: event.fetchSenderUser(), + builder: (context, snapshot) { + final user = snapshot.data ?? sender; + return Avatar( + mxContent: user.avatarUrl, + name: user.calcDisplayname(), + onTap: () => showMemberActionsPopupMenu( + context: context, + user: user, + onMention: onMention, + ), + size: avatarSize, + presenceUserId: user.stateKey, + presenceBackgroundColor: wallpaperMode + ? Colors.transparent + : null, + ); + }, + ), + Expanded( + child: Column( + 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, + ), + 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, + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ); + }, + ), + ], + ), + ), + + Container( + alignment: alignment, + padding: const EdgeInsets.only(left: 8), + child: GestureDetector( + onDoubleTap: + AppSettings.doubleTapToReact.value && + event.room.canSendDefaultMessages + ? () { + HapticFeedback.lightImpact(); + final emoji = + AppSettings.doubleTapReaction.value; + final existingReaction = event + .aggregatedEvents( + timeline, + RelationshipTypes.reaction, + ) + .firstWhereOrNull( + (e) => + e.senderId == + event + .room + .client + .userID && + e.content + .tryGetMap< + String, + Object? + >('m.relates_to') + ?.tryGet( + 'key', + ) == + emoji, + ); + if (existingReaction != null) { + existingReaction.redactEvent(); + } else { + event.room.sendReaction( + event.eventId, + emoji, + ); + } + } + : null, + onLongPress: longPressSelect + ? null + : () { + HapticFeedback.heavyImpact(); + onSelect(event); + }, + child: _AnimateIn( + key: ValueKey( + event.transactionId ?? event.eventId, + ), + animateIn: animateIn, + child: Container( + decoration: BoxDecoration( + color: noBubble + ? Colors.transparent + : color, + borderRadius: borderRadius, + ), + clipBehavior: Clip.antiAlias, + child: BubbleBackground( + colors: colors, + ignore: + noBubble || + !ownMessage || + MediaQuery.highContrastOf(context), + scrollController: scrollController, + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular( + AppConfig.borderRadius, + ), + ), + constraints: const BoxConstraints( + maxWidth: + FluffyThemes.columnWidth * 1.5, + ), + child: Column( + mainAxisSize: .min, + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + if (event.inReplyToEventId( + includingFallback: false, + ) != + null) + FutureBuilder( + future: event.getReplyEvent( + timeline, + ), + builder: (BuildContext context, snapshot) { + final replyEvent = + snapshot.hasData + ? snapshot.data! + : Event( + eventId: + event + .inReplyToEventId() ?? + '\$fake_event_id', + content: { + 'msgtype': 'm.text', + 'body': '...', + }, + senderId: + event.senderId, + type: + 'm.room.message', + room: event.room, + status: + EventStatus.sent, + originServerTs: + DateTime.now(), + ); + return Padding( + padding: + const EdgeInsets.only( + left: 16, + right: 16, + top: 8, + ), + child: Material( + color: Colors.transparent, + borderRadius: ReplyContent + .borderRadius, + child: InkWell( + borderRadius: + ReplyContent + .borderRadius, + onTap: () => + scrollToEventId( + replyEvent + .eventId, + ), + child: AbsorbPointer( + child: ReplyContent( + replyEvent, + ownMessage: + ownMessage, + timeline: timeline, + ), + ), + ), + ), + ); + }, + ), + MessageContent( + displayEvent, + textColor: textColor, + linkColor: linkColor, + onInfoTab: onInfoTab, + borderRadius: borderRadius, + timeline: timeline, + selected: selected, + bigEmojis: bigEmojis, + ), + ], + ), + ), + ), + ), + ), + ), + ), + + AnimatedSize( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + alignment: Alignment.bottomCenter, + child: !hasReactions + ? const SizedBox.shrink() + : Container( + alignment: ownMessage + ? Alignment.centerRight + : Alignment.centerLeft, + padding: EdgeInsets.only( + top: 1.0, + left: 8.0, + right: ownMessage ? 0 : 12.0, + ), + child: MessageReactions(event, timeline), + ), + ), + Row( + mainAxisAlignment: ownMessage ? .end : .start, + children: [ + const SizedBox(width: 8), + if (event.status.isSent && + (displayTime || + !previousEventSameSender || + selected)) + Text( + ' ${selected ? event.originServerTs.localizedDetailedTime(context) : event.originServerTs.localizedTimeOfDay(context)}', + style: TextStyle( + color: eventStateTextColor, + fontSize: 11, + shadows: wallpaperTextShadow, + ), + ), + if (isEdited) ...[ + Text(' ', style: TextStyle(fontSize: 11)), + Text( + L10n.of(context).edited, + style: TextStyle( + color: eventStateTextColor, + fontSize: 11, + shadows: wallpaperTextShadow, + ), + ), + ], + if (event.status == EventStatus.error) ...[ + Text(' ', style: TextStyle(fontSize: 11)), + Text( + L10n.of(context).couldNotBeSent, + style: TextStyle( + fontSize: 11, + color: theme.colorScheme.error, + shadows: wallpaperTextShadow, + ), + ), + Text(' ', style: TextStyle(fontSize: 11)), + Icon( + Icons.error_outlined, + size: 14, + color: theme.colorScheme.error, + shadows: wallpaperTextShadow, + ), + ], + if (event.status == EventStatus.sending) ...[ + Text( + switch (event.fileSendingStatus) { + null => L10n.of(context).sending, + FileSendingStatus.generatingThumbnail => + L10n.of(context).generatingThumbnail, + FileSendingStatus.encrypting => L10n.of( + context, + ).encrypting, + FileSendingStatus.uploading => L10n.of( + context, + ).uploading, + }, + style: TextStyle( + color: eventStateTextColor, + fontSize: 11, + shadows: wallpaperTextShadow, + ), + ), + Text(' ', style: TextStyle(fontSize: 11)), + SizedBox.square( + dimension: 11, + child: CircularProgressIndicator( + strokeWidth: 1, + ), + ), + ], + ], + ), + Align( + alignment: ownMessage + ? Alignment.bottomRight + : Alignment.bottomLeft, + child: AnimatedSize( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + child: showReactionPicker + ? Padding( + padding: const EdgeInsets.all(4.0), + child: Material( + elevation: 4, + borderRadius: BorderRadius.circular( + AppConfig.borderRadius, + ), + shadowColor: theme.colorScheme.surface + .withAlpha(128), + child: SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + mainAxisSize: .min, + children: [ + ...AppConfig.defaultReactions.map( + (emoji) => IconButton( + padding: EdgeInsets.zero, + icon: Center( + child: Opacity( + opacity: + sentReactions + .contains(emoji) + ? 0.33 + : 1, + child: Text( + emoji, + style: + const TextStyle( + fontSize: 20, + ), + textAlign: + TextAlign.center, + ), + ), + ), + onPressed: + sentReactions.contains( + emoji, + ) + ? null + : () { + onSelect(event); + event.room + .sendReaction( + event.eventId, + emoji, + ); + }, + ), + ), + IconButton( + icon: const Icon( + Icons.add_reaction_outlined, + ), + tooltip: L10n.of( + context, + ).customReaction, + onPressed: () async { + final emoji = await showAdaptiveBottomSheet( + context: context, + builder: (context) => Scaffold( + appBar: AppBar( + title: Text( + L10n.of( + context, + ).customReaction, + ), + leading: CloseButton( + onPressed: () => + Navigator.of( + context, + ).pop(null), + ), + ), + body: SizedBox( + height: + double.infinity, + child: DefaultTabController( + length: 2, + child: Column( + children: [ + TabBar( + tabs: [ + Tab( + text: L10n.of( + context, + ).emojis, + ), + Tab( + text: L10n.of( + context, + ).stickers, + ), + ], + ), + Expanded( + child: TabBarView( + children: [ + EmojiPicker( + onEmojiSelected: + ( + _, + emoji, + ) => + Navigator.of( + context, + ).pop( + emoji.emoji, + ), + config: Config( + locale: Localizations.localeOf( + context, + ), + emojiViewConfig: const EmojiViewConfig( + backgroundColor: + Colors.transparent, + ), + bottomActionBarConfig: const BottomActionBarConfig( + enabled: + false, + ), + categoryViewConfig: CategoryViewConfig( + initCategory: + Category.SMILEYS, + backspaceColor: + theme.colorScheme.primary, + iconColor: theme.colorScheme.primary.withAlpha( + 128, + ), + iconColorSelected: + theme.colorScheme.primary, + indicatorColor: + theme.colorScheme.primary, + backgroundColor: + theme.colorScheme.surface, + ), + skinToneConfig: SkinToneConfig( + dialogBackgroundColor: Color.lerp( + theme.colorScheme.surface, + theme.colorScheme.primaryContainer, + 0.75, + )!, + indicatorColor: + theme.colorScheme.onSurface, + ), + ), + ), + StickerPickerDialog( + room: event + .room, + usage: ImagePackUsage + .emoticon, + onSelected: + ( + sticker, + ) => + Navigator.of( + context, + ).pop( + sticker.url.toString(), + ), + ), + ], + ), + ), + ], + ), + ), + ), + ), + ); + if (emoji == null) { + return; + } + if (sentReactions.contains( + emoji, + )) { + return; + } + onSelect(event); + + await event.room + .sendReaction( + event.eventId, + emoji, + ); + }, + ), + ], + ), + ), + ), + ) + : const SizedBox.shrink(), + ), + ), + ], + ), + ), + ], + ), + ], + ), + if (enterThread != null) + AnimatedSize( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + alignment: Alignment.bottomCenter, + child: threadChildren.isEmpty + ? const SizedBox.shrink() + : Padding( + padding: const EdgeInsets.only( + top: 2.0, + bottom: 8.0, + left: avatarSize + 8, + ), + child: ConstrainedBox( + constraints: const BoxConstraints( + maxWidth: FluffyThemes.columnWidth * 1.5, + ), + child: TextButton.icon( + style: TextButton.styleFrom( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(4), + ), + foregroundColor: + theme.colorScheme.onSecondaryContainer, + backgroundColor: + theme.colorScheme.secondaryContainer, + ), + onPressed: () => enterThread(event.eventId), + icon: const Icon(Icons.message), + label: Text( + '${L10n.of(context).countReplies(threadChildren.length)} | ${threadChildren.first.calcLocalizedBodyFallback(MatrixLocals(L10n.of(context)), withSenderNamePrefix: true)}', + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + ), + ), + ), + if (displayReadMarker) + Row( + children: [ + Expanded( + child: Divider( + color: theme.colorScheme.surfaceContainerHighest, + ), + ), + Container( + margin: const EdgeInsets.symmetric( + horizontal: 4, + vertical: 16.0, + ), + padding: const EdgeInsets.symmetric( + horizontal: 8, + vertical: 2, + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular( + AppConfig.borderRadius / 3, + ), + color: theme.colorScheme.surface.withAlpha(128), + ), + child: Text( + L10n.of(context).readUpToHere, + style: TextStyle(fontSize: 11), + ), + ), + Expanded( + child: Divider( + color: theme.colorScheme.surfaceContainerHighest, + ), + ), + ], + ), + ], + ), + ), + ), + ); + } +} + +class BubbleBackground extends StatelessWidget { + const BubbleBackground({ + super.key, + required this.scrollController, + required this.colors, + required this.ignore, + required this.child, + }); + + final ScrollController scrollController; + final List colors; + final bool ignore; + final Widget child; + + @override + Widget build(BuildContext context) { + if (ignore) return child; + return CustomPaint( + painter: BubblePainter( + repaint: scrollController, + colors: colors, + context: context, + ), + child: child, + ); + } +} + +class BubblePainter extends CustomPainter { + BubblePainter({ + required this.context, + required this.colors, + required super.repaint, + }); + + final BuildContext context; + final List colors; + ScrollableState? _scrollable; + + @override + void paint(Canvas canvas, Size size) { + final scrollable = _scrollable ??= Scrollable.of(context); + final scrollableBox = scrollable.context.findRenderObject() as RenderBox; + final scrollableRect = Offset.zero & scrollableBox.size; + final bubbleBox = context.findRenderObject() as RenderBox; + + final origin = bubbleBox.localToGlobal( + Offset.zero, + ancestor: scrollableBox, + ); + final paint = Paint() + ..shader = ui.Gradient.linear( + scrollableRect.topCenter, + scrollableRect.bottomCenter, + colors, + [0.0, 1.0], + TileMode.clamp, + Matrix4.translationValues(-origin.dx, -origin.dy, 0.0).storage, + ); + canvas.drawRect(Offset.zero & size, paint); + } + + @override + bool shouldRepaint(BubblePainter oldDelegate) { + final scrollable = Scrollable.of(context); + final oldScrollable = _scrollable; + _scrollable = scrollable; + return scrollable.position != oldScrollable?.position; + } +} + +class _AnimateIn extends StatefulWidget { + final bool animateIn; + final Widget child; + const _AnimateIn({required this.animateIn, required this.child, super.key}); + + @override + State<_AnimateIn> createState() => __AnimateInState(); +} + +class __AnimateInState extends State<_AnimateIn> { + bool _animationFinished = false; + + @override + Widget build(BuildContext context) { + if (!widget.animateIn) return widget.child; + if (!_animationFinished) { + WidgetsBinding.instance.addPostFrameCallback((_) { + setState(() { + _animationFinished = true; + }); + }); + } + + return AnimatedSize( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + child: _animationFinished ? widget.child : const SizedBox.shrink(), + ); + } +} diff --git a/lib/pages/chat/events/message_content.dart b/lib/pages/chat/events/message_content.dart new file mode 100644 index 0000000..3a6c58c --- /dev/null +++ b/lib/pages/chat/events/message_content.dart @@ -0,0 +1,321 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:math'; + +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat/events/poll.dart'; +import 'package:tatchat/pages/chat/events/video_player.dart'; +import 'package:tatchat/pages/image_viewer/image_viewer.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../../config/app_config.dart'; +import '../../../utils/event_checkbox_extension.dart'; +import '../../../utils/platform_infos.dart'; +import '../../../utils/url_launcher.dart'; +import 'audio_player.dart'; +import 'cute_events.dart'; +import 'html_message.dart'; +import 'image_bubble.dart'; +import 'map_bubble.dart'; +import 'message_download_content.dart'; + +class MessageContent extends StatelessWidget { + final Event event; + final Color textColor; + final Color linkColor; + final void Function(Event)? onInfoTab; + final BorderRadius borderRadius; + final Timeline timeline; + final bool selected; + final Set bigEmojis; + + const MessageContent( + this.event, { + this.onInfoTab, + super.key, + required this.timeline, + required this.textColor, + required this.linkColor, + required this.borderRadius, + required this.selected, + required this.bigEmojis, + }); + + @override + Widget build(BuildContext context) { + const fontSize = AppConfig.messageFontSize; + final buttonTextColor = textColor; + switch (event.type) { + case EventTypes.Message: + case EventTypes.Encrypted: + case EventTypes.Sticker: + switch (event.messageType) { + case MessageTypes.Image: + case MessageTypes.Sticker: + if (event.redacted) continue textmessage; + final maxSize = event.messageType == MessageTypes.Sticker + ? 128.0 + : 256.0; + final w = event.content + .tryGetMap('info') + ?.tryGet('w'); + final h = event.content + .tryGetMap('info') + ?.tryGet('h'); + var width = maxSize; + var height = maxSize; + var fit = event.messageType == MessageTypes.Sticker + ? BoxFit.contain + : BoxFit.cover; + if (w != null && h != null) { + fit = BoxFit.contain; + if (w > h) { + width = maxSize; + height = max(32, maxSize * (h / w)); + } else { + height = maxSize; + width = max(32, maxSize * (w / h)); + } + } + return ImageBubble( + event, + width: width, + height: height, + fit: fit, + borderRadius: borderRadius, + timeline: timeline, + textColor: textColor, + onTap: () => showDialog( + context: context, + builder: (_) => ImageViewer( + event, + timeline: timeline, + outerContext: context, + ), + ), + ); + case CuteEventContent.eventType: + return CuteContent(event); + case MessageTypes.Audio: + if (PlatformInfos.isMobile || + PlatformInfos.isMacOS || + PlatformInfos.isWeb || + PlatformInfos.isLinux) { + return AudioPlayerWidget( + event, + color: textColor, + linkColor: linkColor, + fontSize: fontSize, + ); + } + return MessageDownloadContent( + event, + textColor: textColor, + linkColor: linkColor, + ); + case MessageTypes.Video: + return EventVideoPlayer( + event, + textColor: textColor, + linkColor: linkColor, + timeline: timeline, + ); + case MessageTypes.File: + return MessageDownloadContent( + event, + textColor: textColor, + linkColor: linkColor, + ); + case MessageTypes.Location: + final geoUri = Uri.tryParse( + event.content.tryGet('geo_uri')!, + ); + if (geoUri != null && geoUri.scheme == 'geo') { + final latlong = geoUri.path + .split(';') + .first + .split(',') + .map(double.tryParse) + .toList(); + if (latlong.length == 2 && + latlong.first != null && + latlong.last != null) { + return MapBubble( + onTap: () => + UrlLauncher(context, geoUri.toString()).launchUrl(), + latitude: latlong.first!, + longitude: latlong.last!, + ); + } + } + continue textmessage; + case MessageTypes.Text: + case MessageTypes.Notice: + case MessageTypes.Emote: + case MessageTypes.None: + textmessage: + default: + if (event.redacted) { + return RedactionWidget( + event: event, + buttonTextColor: buttonTextColor, + onInfoTab: onInfoTab, + fontSize: fontSize, + ); + } + var html = AppSettings.renderHtml.value && event.isRichMessage + ? event.formattedText + : event.body.replaceAll('<', '<').replaceAll('>', '>'); + if (event.messageType == MessageTypes.Emote) { + html = '* $html'; + } + + final bigEmotes = + !event.isRichMessage && bigEmojis.contains(event.body); + + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + child: HtmlMessage( + html: html, + textColor: textColor, + room: event.room, + fontSize: AppConfig.messageFontSize * (bigEmotes ? 5 : 1), + linkStyle: TextStyle( + color: linkColor, + fontSize: AppConfig.messageFontSize, + decoration: TextDecoration.underline, + decorationColor: linkColor, + ), + onOpen: (url) => UrlLauncher(context, url.url).launchUrl(), + eventId: event.eventId, + checkboxCheckedEvents: event.aggregatedEvents( + timeline, + EventCheckboxRoomExtension.relationshipType, + ), + ), + ); + } + case PollEventContent.startType: + if (event.redacted) { + return RedactionWidget( + event: event, + buttonTextColor: buttonTextColor, + onInfoTab: onInfoTab, + fontSize: fontSize, + ); + } + return PollWidget( + event: event, + timeline: timeline, + textColor: textColor, + linkColor: linkColor, + ); + case EventTypes.CallInvite: + return FutureBuilder( + future: event.fetchSenderUser(), + builder: (context, snapshot) { + return _ButtonContent( + label: L10n.of(context).startedACall( + snapshot.data?.calcDisplayname() ?? + event.senderFromMemoryOrFallback.calcDisplayname(), + ), + icon: '📞', + textColor: buttonTextColor, + onPressed: () => onInfoTab!(event), + fontSize: fontSize, + ); + }, + ); + default: + return FutureBuilder( + future: event.fetchSenderUser(), + builder: (context, snapshot) { + return _ButtonContent( + label: L10n.of(context).userSentUnknownEvent( + snapshot.data?.calcDisplayname() ?? + event.senderFromMemoryOrFallback.calcDisplayname(), + event.type, + ), + icon: 'ℹ️', + textColor: buttonTextColor, + onPressed: () => onInfoTab!(event), + fontSize: fontSize, + ); + }, + ); + } + } +} + +class RedactionWidget extends StatelessWidget { + const RedactionWidget({ + super.key, + required this.event, + required this.buttonTextColor, + required this.onInfoTab, + required this.fontSize, + }); + + final Event event; + final Color buttonTextColor; + final void Function(Event p1)? onInfoTab; + final double fontSize; + + @override + Widget build(BuildContext context) { + return FutureBuilder( + future: event.redactedBecause?.fetchSenderUser(), + builder: (context, snapshot) { + final reason = event.redactedBecause?.content.tryGet('reason'); + final redactedBy = + snapshot.data?.calcDisplayname() ?? + event.redactedBecause?.senderId.localpart ?? + L10n.of(context).user; + return _ButtonContent( + label: reason == null + ? L10n.of(context).redactedBy(redactedBy) + : L10n.of(context).redactedByBecause(redactedBy, reason), + icon: '🗑️', + textColor: buttonTextColor.withAlpha(128), + onPressed: () => onInfoTab!(event), + fontSize: fontSize, + ); + }, + ); + } +} + +class _ButtonContent extends StatelessWidget { + final void Function() onPressed; + final String label; + final String icon; + final Color? textColor; + final double fontSize; + + const _ButtonContent({ + required this.label, + required this.icon, + required this.textColor, + required this.onPressed, + required this.fontSize, + }); + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + child: InkWell( + onTap: onPressed, + child: Text( + '$icon $label', + style: TextStyle(color: textColor, fontSize: fontSize), + ), + ), + ); + } +} diff --git a/lib/pages/chat/events/message_download_content.dart b/lib/pages/chat/events/message_download_content.dart new file mode 100644 index 0000000..82331d3 --- /dev/null +++ b/lib/pages/chat/events/message_download_content.dart @@ -0,0 +1,124 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/pages/chat/events/file_send_status_indicator.dart'; +import 'package:tatchat/utils/file_description.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/event_extension.dart'; +import 'package:tatchat/utils/url_launcher.dart'; +import 'package:flutter_linkify/flutter_linkify.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class MessageDownloadContent extends StatelessWidget { + final Event event; + final Color textColor; + final Color linkColor; + + const MessageDownloadContent( + this.event, { + required this.textColor, + required this.linkColor, + super.key, + }); + + @override + Widget build(BuildContext context) { + final filename = event.content.tryGet('filename') ?? event.body; + final filetype = (filename.contains('.') + ? filename.split('.').last.toUpperCase() + : event.content + .tryGetMap('info') + ?.tryGet('mimetype') + ?.toUpperCase() ?? + 'UNKNOWN'); + final sizeString = event.sizeString ?? '?MB'; + final fileDescription = event.fileDescription; + final fileSendingStatus = event.fileSendingStatus; + return Column( + mainAxisSize: .min, + crossAxisAlignment: .start, + spacing: 8, + children: [ + Material( + color: Colors.transparent, + child: InkWell( + borderRadius: BorderRadius.circular(AppConfig.borderRadius / 2), + onTap: () => event.saveFile(context), + child: Container( + width: 400, + padding: const EdgeInsets.all(16.0), + child: Row( + mainAxisSize: .min, + spacing: 16, + children: [ + if (fileSendingStatus != null) + FileSendStatusIndicator( + fileSendingStatus: fileSendingStatus, + ) + else + CircleAvatar( + backgroundColor: textColor.withAlpha(32), + child: Icon( + Icons.file_download_outlined, + color: textColor, + ), + ), + Flexible( + child: Column( + crossAxisAlignment: .start, + mainAxisSize: .min, + children: [ + Text( + filename, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: TextStyle( + color: textColor, + fontWeight: FontWeight.w500, + ), + ), + Text( + '$sizeString | $filetype', + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: TextStyle(color: textColor, fontSize: 10), + ), + ], + ), + ), + ], + ), + ), + ), + ), + if (fileDescription != null) ...[ + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 16.0, + vertical: 8.0, + ), + child: Linkify( + text: fileDescription, + textScaleFactor: MediaQuery.textScalerOf(context).scale(1), + style: TextStyle( + color: textColor, + fontSize: AppConfig.messageFontSize, + ), + options: const LinkifyOptions(humanize: false), + linkStyle: TextStyle( + color: linkColor, + fontSize: AppConfig.messageFontSize, + decoration: TextDecoration.underline, + decorationColor: linkColor, + ), + onOpen: (url) => UrlLauncher(context, url.url).launchUrl(), + ), + ), + ], + ], + ); + } +} diff --git a/lib/pages/chat/events/message_reactions.dart b/lib/pages/chat/events/message_reactions.dart new file mode 100644 index 0000000..88d2c3b --- /dev/null +++ b/lib/pages/chat/events/message_reactions.dart @@ -0,0 +1,208 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:collection/collection.dart' show IterableExtension; +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:tatchat/widgets/future_loading_dialog.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'; + +class MessageReactions extends StatelessWidget { + final Event event; + final Timeline timeline; + + const MessageReactions(this.event, this.timeline, {super.key}); + + @override + Widget build(BuildContext context) { + final allReactionEvents = event.aggregatedEvents( + timeline, + RelationshipTypes.reaction, + ); + final reactionMap = {}; + final client = Matrix.of(context).client; + + for (final e in allReactionEvents) { + final key = e.content + .tryGetMap('m.relates_to') + ?.tryGet('key'); + if (key != null) { + if (!reactionMap.containsKey(key)) { + reactionMap[key] = _ReactionEntry( + key: key, + count: 0, + reacted: false, + reactors: [], + ); + } + reactionMap[key]!.count++; + reactionMap[key]!.reactors!.add(e.senderFromMemoryOrFallback); + reactionMap[key]!.reacted |= e.senderId == e.room.client.userID; + } + } + + final reactionList = reactionMap.values.toList(); + reactionList.sort((a, b) => b.count - a.count > 0 ? 1 : -1); + final ownMessage = event.senderId == event.room.client.userID; + return Wrap( + spacing: 4.0, + runSpacing: 4.0, + alignment: ownMessage ? WrapAlignment.end : WrapAlignment.start, + children: [ + ...reactionList.map( + (r) => _Reaction( + reactionKey: r.key, + count: r.count, + reacted: r.reacted, + onTap: () { + if (r.reacted) { + final evt = allReactionEvents.firstWhereOrNull( + (e) => + e.senderId == e.room.client.userID && + e.content.tryGetMap('m.relates_to')?['key'] == r.key, + ); + if (evt != null) { + showFutureLoadingDialog( + context: context, + future: evt.redactEvent, + ); + } + } else { + event.room.sendReaction(event.eventId, r.key); + } + }, + onLongPress: () async => await _AdaptableReactorsDialog( + client: client, + reactionEntry: r, + ).show(context), + ), + ), + ], + ); + } +} + +class _Reaction extends StatelessWidget { + final String reactionKey; + final int count; + final bool? reacted; + final void Function()? onTap; + final void Function()? onLongPress; + + const _Reaction({ + required this.reactionKey, + required this.count, + required this.reacted, + required this.onTap, + required this.onLongPress, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + Widget content; + if (reactionKey.startsWith('mxc://')) { + content = MxcImage( + uri: Uri.parse(reactionKey), + width: 20, + height: 20, + animated: false, + isThumbnail: false, + ); + } else { + var renderKey = Characters(reactionKey); + if (renderKey.length > 10) { + renderKey = renderKey.getRange(0, 9) + Characters('…'); + } + content = Text(renderKey.toString(), style: TextStyle(fontSize: 14)); + } + return Badge( + isLabelVisible: count > 1, + label: Text(count.toString()), + textStyle: TextStyle(fontSize: 10), + textColor: theme.colorScheme.onPrimary, + backgroundColor: theme.colorScheme.primary.withAlpha(200), + child: InkWell( + onTap: () => onTap != null ? onTap!() : null, + onLongPress: () => onLongPress != null ? onLongPress!() : null, + borderRadius: BorderRadius.circular(AppConfig.borderRadius / 2), + child: Container( + decoration: BoxDecoration( + color: theme.colorScheme.secondaryContainer, + border: Border.all( + color: reacted == true + ? theme.colorScheme.secondary + : theme.colorScheme.secondaryContainer, + width: 1, + ), + borderRadius: BorderRadius.circular(AppConfig.borderRadius / 2), + ), + height: 24, + padding: const EdgeInsets.symmetric(horizontal: 3), + child: content, + ), + ), + ); + } +} + +class _ReactionEntry { + String key; + int count; + bool reacted; + List? reactors; + + _ReactionEntry({ + required this.key, + required this.count, + required this.reacted, + this.reactors, + }); +} + +class _AdaptableReactorsDialog extends StatelessWidget { + final Client? client; + final _ReactionEntry? reactionEntry; + + const _AdaptableReactorsDialog({this.client, this.reactionEntry}); + + Future show(BuildContext context) => showDialog( + context: context, + builder: (context) => this, + barrierDismissible: true, + useRootNavigator: false, + ); + + @override + Widget build(BuildContext context) { + final body = SingleChildScrollView( + child: Wrap( + spacing: 8.0, + runSpacing: 4.0, + alignment: WrapAlignment.center, + children: [ + for (final reactor in reactionEntry!.reactors!) + Chip( + avatar: Avatar( + mxContent: reactor.avatarUrl, + name: reactor.displayName, + client: client, + presenceUserId: reactor.stateKey, + ), + label: Text(reactor.displayName!), + ), + ], + ), + ); + + final title = Center(child: Text(reactionEntry!.key)); + + return AlertDialog(title: title, content: body); + } +} diff --git a/lib/pages/chat/events/poll.dart b/lib/pages/chat/events/poll.dart new file mode 100644 index 0000000..381a2d1 --- /dev/null +++ b/lib/pages/chat/events/poll.dart @@ -0,0 +1,224 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:async/async.dart'; +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/url_launcher.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:flutter_linkify/flutter_linkify.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart' hide Result; + +class PollWidget extends StatelessWidget { + final Event event; + final Timeline timeline; + final Color textColor; + final Color linkColor; + const PollWidget({ + required this.event, + required this.timeline, + required this.textColor, + required this.linkColor, + super.key, + }); + + void _endPoll(BuildContext context) => + showFutureLoadingDialog(context: context, future: event.endPoll); + + void _toggleVote(BuildContext context, String answerId, int maxSelection) { + final userId = event.room.client.userID!; + final answerIds = event.getPollResponses(timeline)[userId] ?? {}; + if (!answerIds.remove(answerId)) { + answerIds.add(answerId); + if (answerIds.length > maxSelection) { + answerIds.clear(); + answerIds.add(answerId); + } + } + + showFutureLoadingDialog( + context: context, + future: () => event.answerPoll(answerIds.toList()), + ); + } + + @override + Widget build(BuildContext context) { + final eventContentResult = Result(() => event.parsedPollEventContent); + final eventContent = eventContentResult.asValue?.value; + if (eventContent == null) { + Logs().w('Invalid poll event', eventContentResult.error); + return const Text('Unable to parse poll event...'); + } + final responses = event.getPollResponses(timeline); + final pollHasBeenEnded = event.getPollHasBeenEnded(timeline); + final canVote = + event.room.canSendEvent(PollEventContent.responseType) && + !pollHasBeenEnded; + final maxPolls = responses.length; + final answersVisible = + eventContent.pollStartContent.kind == PollKind.disclosed || + pollHasBeenEnded; + + return Padding( + padding: const EdgeInsets.symmetric(vertical: 8), + child: Column( + mainAxisSize: .min, + crossAxisAlignment: .start, + children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: Linkify( + text: eventContent.pollStartContent.question.mText, + textScaleFactor: MediaQuery.textScalerOf(context).scale(1), + style: TextStyle( + color: textColor, + fontSize: AppConfig.messageFontSize, + ), + options: const LinkifyOptions(humanize: false), + linkStyle: TextStyle( + color: linkColor, + fontSize: AppConfig.messageFontSize, + decoration: TextDecoration.underline, + decorationColor: linkColor, + ), + onOpen: (url) => UrlLauncher(context, url.url).launchUrl(), + ), + ), + Divider(color: linkColor.withAlpha(64)), + ...eventContent.pollStartContent.answers.map((answer) { + final votedUserIds = responses.entries + .where((entry) => entry.value.contains(answer.id)) + .map((entry) => entry.key) + .toSet(); + return Material( + color: Colors.transparent, + clipBehavior: Clip.hardEdge, + child: CheckboxListTile.adaptive( + value: + responses[event.room.client.userID!]?.contains(answer.id) ?? + false, + contentPadding: const EdgeInsets.symmetric(horizontal: 16), + checkboxScaleFactor: 1.5, + checkboxShape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(32), + ), + onChanged: !canVote + ? null + : (_) => _toggleVote( + context, + answer.id, + eventContent.pollStartContent.maxSelections, + ), + title: Text( + answer.mText, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: TextStyle( + color: textColor, + fontSize: AppConfig.messageFontSize, + ), + ), + subtitle: answersVisible + ? Column( + crossAxisAlignment: .start, + mainAxisSize: .min, + children: [ + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: [ + Text( + L10n.of( + context, + ).countVotes(votedUserIds.length), + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: TextStyle( + color: linkColor, + fontSize: 12, + ), + ), + const SizedBox(width: 2), + ...votedUserIds.map((userId) { + final user = event.room + .getState(EventTypes.RoomMember, userId) + ?.asUser(event.room); + return Padding( + padding: const EdgeInsets.symmetric( + horizontal: 2.0, + ), + child: Avatar( + mxContent: user?.avatarUrl, + name: + user?.calcDisplayname() ?? + userId.localpart, + size: 12, + ), + ); + }), + const SizedBox(width: 2), + ], + ), + ), + LinearProgressIndicator( + color: linkColor, + backgroundColor: linkColor.withAlpha(128), + borderRadius: BorderRadius.circular( + AppConfig.borderRadius, + ), + value: maxPolls == 0 + ? 0 + : votedUserIds.length / maxPolls, + ), + ], + ) + : null, + ), + ); + }), + if (!pollHasBeenEnded && event.senderId == event.room.client.userID) + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: OutlinedButton( + onPressed: () => _endPoll(context), + style: OutlinedButton.styleFrom( + foregroundColor: linkColor, + side: BorderSide(color: linkColor.withAlpha(64)), + ), + child: Text(L10n.of(context).endPoll), + ), + ) + else if (!answersVisible) + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: Text( + L10n.of(context).answersWillBeVisibleWhenPollHasEnded, + style: TextStyle( + color: linkColor, + fontSize: 12, + fontStyle: FontStyle.italic, + ), + ), + ) + else if (pollHasBeenEnded) + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: Text( + L10n.of(context).pollHasBeenEnded, + style: TextStyle( + color: linkColor, + fontSize: 12, + fontStyle: FontStyle.italic, + ), + ), + ), + ], + ), + ); + } +} diff --git a/lib/pages/chat/events/reply_content.dart b/lib/pages/chat/events/reply_content.dart new file mode 100644 index 0000000..2b93e51 --- /dev/null +++ b/lib/pages/chat/events/reply_content.dart @@ -0,0 +1,110 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../../config/app_config.dart'; + +class ReplyContent extends StatelessWidget { + final Event replyEvent; + final bool ownMessage; + final Timeline? timeline; + + const ReplyContent( + this.replyEvent, { + this.ownMessage = false, + super.key, + this.timeline, + }); + + static const BorderRadius borderRadius = BorderRadius.only( + topRight: Radius.circular(AppConfig.borderRadius / 2), + bottomRight: Radius.circular(AppConfig.borderRadius / 2), + ); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + final timeline = this.timeline; + final displayEvent = timeline != null + ? replyEvent.getDisplayEvent(timeline) + : replyEvent; + const fontSize = AppConfig.messageFontSize; + final color = theme.brightness == Brightness.dark + ? theme.colorScheme.onTertiaryContainer + : ownMessage + ? theme.colorScheme.tertiaryContainer + : theme.colorScheme.tertiary; + + return Material( + color: Colors.transparent, + borderRadius: borderRadius, + child: Row( + mainAxisSize: .min, + children: [ + Container( + width: 5, + height: fontSize * 2 + 16, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(AppConfig.borderRadius), + color: color, + ), + ), + const SizedBox(width: 6), + Flexible( + child: Column( + crossAxisAlignment: .start, + mainAxisAlignment: .center, + children: [ + FutureBuilder( + initialData: displayEvent.senderFromMemoryOrFallback, + future: displayEvent.fetchSenderUser(), + builder: (context, snapshot) { + return Text( + '${snapshot.data?.calcDisplayname() ?? displayEvent.senderFromMemoryOrFallback.calcDisplayname()}:', + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontWeight: FontWeight.bold, + color: color, + fontSize: fontSize, + ), + ); + }, + ), + Text( + displayEvent + .calcLocalizedBodyFallback( + MatrixLocals(L10n.of(context)), + withSenderNamePrefix: false, + hideReply: true, + plaintextBody: true, + ) + .trim() + .replaceAll('\n', ' '), + overflow: TextOverflow.ellipsis, + maxLines: 1, + style: TextStyle( + color: theme.brightness == Brightness.dark + ? theme.colorScheme.onSurface + : ownMessage + ? theme.colorScheme.onTertiary + : theme.colorScheme.onSurface, + fontSize: fontSize, + ), + ), + ], + ), + ), + const SizedBox(width: 6), + ], + ), + ); + } +} diff --git a/lib/pages/chat/events/state_message.dart b/lib/pages/chat/events/state_message.dart new file mode 100644 index 0000000..82ac8c4 --- /dev/null +++ b/lib/pages/chat/events/state_message.dart @@ -0,0 +1,123 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat/utd_dialog.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:flutter/gestures.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../../config/app_config.dart'; + +class StateMessage extends StatelessWidget { + final Event event; + final void Function()? onExpand; + final bool isCollapsed; + const StateMessage( + this.event, { + this.onExpand, + this.isCollapsed = false, + super.key, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + return AnimatedSize( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + child: isCollapsed + ? const SizedBox.shrink() + : Padding( + padding: const EdgeInsets.symmetric(horizontal: 8.0), + child: Center( + child: Padding( + padding: const EdgeInsets.all(4), + child: Material( + color: theme.colorScheme.surface.withAlpha(128), + borderRadius: BorderRadius.circular( + AppConfig.borderRadius / 3, + ), + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 8.0, + vertical: 4.0, + ), + child: Text.rich( + TextSpan( + children: [ + if (event.type != EventTypes.Encrypted) + TextSpan( + text: event.calcLocalizedBodyFallback( + MatrixLocals(L10n.of(context)), + ), + ) + else ...[ + WidgetSpan( + child: Padding( + padding: const EdgeInsets.only(right: 4.0), + child: Avatar( + name: event.senderFromMemoryOrFallback + .calcDisplayname(), + size: 14, + mxContent: event + .senderFromMemoryOrFallback + .avatarUrl, + ), + ), + ), + TextSpan( + text: L10n.of(context).messageNotDecryptable, + ), + if (!event.redacted) + WidgetSpan( + child: Padding( + padding: const EdgeInsets.only(left: 4.0), + child: InkWell( + borderRadius: BorderRadius.circular(7), + onTap: () => + UtdDialog.show(context, event), + child: Icon( + Icons.info_outlined, + size: 14, + ), + ), + ), + ), + ], + if (onExpand != null) ...[ + const TextSpan(text: '\n'), + TextSpan( + style: TextStyle( + color: theme.colorScheme.primary, + decoration: TextDecoration.underline, + decorationColor: theme.colorScheme.primary, + ), + recognizer: TapGestureRecognizer() + ..onTap = onExpand, + text: L10n.of(context).moreEvents, + ), + ], + ], + ), + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 11, + decoration: event.redacted + ? TextDecoration.lineThrough + : null, + ), + ), + ), + ), + ), + ), + ), + ); + } +} diff --git a/lib/pages/chat/events/video_player.dart b/lib/pages/chat/events/video_player.dart new file mode 100644 index 0000000..51985dd --- /dev/null +++ b/lib/pages/chat/events/video_player.dart @@ -0,0 +1,163 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:math'; + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/utils/file_description.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/event_extension.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/utils/url_launcher.dart'; +import 'package:tatchat/widgets/blur_hash.dart'; +import 'package:tatchat/widgets/mxc_image.dart'; +import 'package:flutter_linkify/flutter_linkify.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../image_viewer/image_viewer.dart'; + +class EventVideoPlayer extends StatelessWidget { + final Event event; + final Timeline? timeline; + final Color? textColor; + final Color? linkColor; + + const EventVideoPlayer( + this.event, { + this.timeline, + this.textColor, + this.linkColor, + super.key, + }); + + static const String fallbackBlurHash = 'L5H2EC=PM+yV0g-mq.wG9c010J}I'; + + @override + Widget build(BuildContext context) { + final supportsVideoPlayer = PlatformInfos.supportsVideoPlayer; + + final blurHash = + (event.infoMap as Map).tryGet( + 'xyz.amorgan.blurhash', + ) ?? + fallbackBlurHash; + final fileDescription = event.fileDescription; + const maxDimension = 300.0; + final infoMap = event.content.tryGetMap('info'); + final videoWidth = infoMap?.tryGet('w') ?? maxDimension; + final videoHeight = infoMap?.tryGet('h') ?? maxDimension; + + final modifier = max(videoWidth, videoHeight) / maxDimension; + final width = videoWidth / modifier; + final height = videoHeight / modifier; + + final durationInt = infoMap?.tryGet('duration'); + final duration = durationInt == null + ? null + : Duration(milliseconds: durationInt); + + return Column( + mainAxisSize: .min, + spacing: 8, + children: [ + Material( + color: Colors.black, + borderRadius: BorderRadius.circular(AppConfig.borderRadius), + child: InkWell( + onTap: () => supportsVideoPlayer + ? showDialog( + context: context, + builder: (_) => ImageViewer( + event, + timeline: timeline, + outerContext: context, + ), + ) + : event.saveFile(context), + borderRadius: BorderRadius.circular(AppConfig.borderRadius), + child: SizedBox( + width: width, + height: height, + child: Hero( + tag: event.eventId, + child: Stack( + children: [ + if (event.hasThumbnail && + AppSettings.showThumbnailsInTimeline.value) + MxcImage( + event: event, + cacheKey: event.transactionId ?? event.eventId, + cacheName: event.room.id, + isThumbnail: true, + width: width, + height: height, + fit: BoxFit.cover, + placeholder: (context) => BlurHash( + blurhash: blurHash, + width: width, + height: height, + fit: BoxFit.cover, + ), + ) + else + BlurHash( + blurhash: blurHash, + width: width, + height: height, + fit: BoxFit.cover, + ), + Center( + child: CircleAvatar( + child: supportsVideoPlayer + ? const Icon(Icons.play_arrow_outlined) + : const Icon(Icons.file_download_outlined), + ), + ), + if (duration != null) + Positioned( + bottom: 8, + left: 16, + child: Text( + '${duration.inMinutes.toString().padLeft(2, '0')}:${(duration.inSeconds % 60).toString().padLeft(2, '0')}', + style: TextStyle( + color: Colors.white, + backgroundColor: Colors.black.withAlpha(32), + ), + ), + ), + ], + ), + ), + ), + ), + ), + if (fileDescription != null && textColor != null && linkColor != null) + SizedBox( + width: width, + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + child: Linkify( + text: fileDescription, + textScaleFactor: MediaQuery.textScalerOf(context).scale(1), + style: TextStyle( + color: textColor, + fontSize: AppConfig.messageFontSize, + ), + options: const LinkifyOptions(humanize: false), + linkStyle: TextStyle( + color: linkColor, + fontSize: AppConfig.messageFontSize, + decoration: TextDecoration.underline, + decorationColor: linkColor, + ), + onOpen: (url) => UrlLauncher(context, url.url).launchUrl(), + ), + ), + ), + ], + ); + } +} diff --git a/lib/pages/chat/image_edit_geometry.dart b/lib/pages/chat/image_edit_geometry.dart new file mode 100644 index 0000000..da53ae2 --- /dev/null +++ b/lib/pages/chat/image_edit_geometry.dart @@ -0,0 +1,37 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:ui'; + +import 'package:crop_image/crop_image.dart'; + +/// Pure coordinate/rotation helpers for the image editor in +/// `send_file_dialog.dart`. Kept dependency-free (only `dart:ui` and +/// `crop_image`) so they can be unit-tested without spinning up the app. + +/// Maps a quarter-turn count (positive = clockwise) to the [CropRotation] used +/// when baking the final image, so the on-screen `RotatedBox` preview and the +/// saved result always rotate the same way. +CropRotation imageEditorRotationForQuarterTurns(int quarterTurns) { + switch (((quarterTurns % 4) + 4) % 4) { + case 1: + return CropRotation.right; + case 2: + return CropRotation.down; + case 3: + return CropRotation.left; + default: + return CropRotation.up; + } +} + +/// Maps a pointer position on the draw surface (logical pixels) to a coordinate +/// in the source image's pixel space, given the currently shown crop region +/// [cropPx] displayed at [displaySize]. The mapping is a uniform scale plus +/// translation because the draw surface preserves the crop's aspect ratio. +Offset imageEditorLocalToImagePx(Offset local, Size displaySize, Rect cropPx) { + final scale = cropPx.width / displaySize.width; + return Offset(cropPx.left + local.dx * scale, cropPx.top + local.dy * scale); +} diff --git a/lib/pages/chat/input_bar.dart b/lib/pages/chat/input_bar.dart new file mode 100644 index 0000000..21e8624 --- /dev/null +++ b/lib/pages/chat/input_bar.dart @@ -0,0 +1,475 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:emoji_picker_flutter/emoji_picker_flutter.dart'; +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat/trust_user_key_dialog.dart'; +import 'package:tatchat/utils/markdown_context_builder.dart'; +import 'package:tatchat/widgets/mxc_image.dart'; +import 'package:flutter/services.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; +import 'package:slugify/slugify.dart'; + +import '../../widgets/avatar.dart'; +import '../../widgets/matrix.dart'; +import 'command_hints.dart'; + +class InputBar extends StatelessWidget { + final Room room; + final int? minLines; + final int? maxLines; + final TextInputType? keyboardType; + final TextInputAction? textInputAction; + final ValueChanged? onSubmitted; + final ValueChanged? onSubmitImage; + final FocusNode? focusNode; + final TextEditingController? controller; + final InputDecoration decoration; + final ValueChanged? onChanged; + final bool? autofocus; + final bool readOnly; + final List suggestionEmojis; + + const InputBar({ + required this.room, + this.minLines, + this.maxLines, + this.keyboardType, + this.onSubmitted, + this.onSubmitImage, + this.focusNode, + this.controller, + required this.decoration, + this.onChanged, + this.autofocus, + this.textInputAction, + this.readOnly = false, + required this.suggestionEmojis, + super.key, + }); + + List> getSuggestions(TextEditingValue text) { + if (text.selection.baseOffset != text.selection.extentOffset || + text.selection.baseOffset < 0) { + return []; // no entries if there is selected text + } + final searchText = text.text.substring(0, text.selection.baseOffset); + final ret = >[]; + const maxResults = 30; + + final commandMatch = RegExp(r'^/(\w*)$').firstMatch(searchText); + if (commandMatch != null) { + final commandSearch = commandMatch[1]!.toLowerCase(); + for (final command in room.client.commands.keys) { + if (command.contains(commandSearch)) { + ret.add({'type': 'command', 'name': command}); + } + + if (ret.length > maxResults) return ret; + } + } + final emojiMatch = RegExp( + r'(?:\s|^):(?:([\p{L}\p{N}_-]+)~)?([\p{L}\p{N}_-]+)$', + unicode: true, + ).firstMatch(searchText); + if (emojiMatch != null) { + final packSearch = emojiMatch[1]; + final emoteSearch = emojiMatch[2]!.toLowerCase(); + final emotePacks = room.getImagePacks(ImagePackUsage.emoticon); + if (packSearch == null || packSearch.isEmpty) { + for (final pack in emotePacks.entries) { + for (final emote in pack.value.images.entries) { + if (emote.key.toLowerCase().contains(emoteSearch)) { + ret.add({ + 'type': 'emote', + 'name': emote.key, + 'pack': pack.key, + 'pack_avatar_url': pack.value.pack.avatarUrl?.toString(), + 'pack_display_name': pack.value.pack.displayName ?? pack.key, + 'mxc': emote.value.url.toString(), + }); + } + if (ret.length > maxResults) { + break; + } + } + if (ret.length > maxResults) { + break; + } + } + } else if (emotePacks[packSearch] != null) { + for (final emote in emotePacks[packSearch]!.images.entries) { + if (emote.key.toLowerCase().contains(emoteSearch)) { + ret.add({ + 'type': 'emote', + 'name': emote.key, + 'pack': packSearch, + 'pack_avatar_url': emotePacks[packSearch]!.pack.avatarUrl + ?.toString(), + 'pack_display_name': + emotePacks[packSearch]!.pack.displayName ?? packSearch, + 'mxc': emote.value.url.toString(), + }); + } + if (ret.length > maxResults) { + break; + } + } + } + + // aside of emote packs, also propose normal (tm) unicode emojis + final matchingUnicodeEmojis = suggestionEmojis + .where((emoji) => emoji.name.toLowerCase().contains(emoteSearch)) + .toList(); + + // sort by the index of the search term in the name in order to have + // best matches first + // (thanks for the hint by github.com/nextcloud/circles devs) + matchingUnicodeEmojis.sort((a, b) { + final indexA = a.name.indexOf(emoteSearch); + final indexB = b.name.indexOf(emoteSearch); + if (indexA == -1 || indexB == -1) { + if (indexA == indexB) return 0; + if (indexA == -1) { + return 1; + } else { + return 0; + } + } + return indexA.compareTo(indexB); + }); + for (final emoji in matchingUnicodeEmojis) { + ret.add({ + 'type': 'emoji', + 'emoji': emoji.emoji, + 'label': emoji.name, + 'current_word': ':$emoteSearch', + }); + if (ret.length > maxResults) { + break; + } + } + } + final userMatch = RegExp(r'(?:\s|^)@([-\w]+)$').firstMatch(searchText); + if (userMatch != null) { + final userSearch = userMatch[1]!.toLowerCase(); + for (final user in room.getParticipants()) { + if ((user.displayName != null && + (user.displayName!.toLowerCase().contains(userSearch) || + slugify( + user.displayName!.toLowerCase(), + ).contains(userSearch))) || + user.id.localpart!.toLowerCase().contains(userSearch)) { + ret.add({ + 'type': 'user', + 'mxid': user.id, + 'mention': user.mention, + 'displayname': user.displayName, + 'avatar_url': user.avatarUrl?.toString(), + }); + } + if (ret.length > maxResults) { + break; + } + } + } + final roomMatch = RegExp(r'(?:\s|^)#([-\w]+)$').firstMatch(searchText); + if (roomMatch != null) { + final roomSearch = roomMatch[1]!.toLowerCase(); + for (final r in room.client.rooms) { + if (r.getState(EventTypes.RoomTombstone) != null) { + continue; // we don't care about tombstoned rooms + } + final state = r.getState(EventTypes.RoomCanonicalAlias); + if ((state != null && + ((state.content['alias'] is String && + state.content + .tryGet('alias')! + .localpart! + .toLowerCase() + .contains(roomSearch)) || + (state.content['alt_aliases'] is List && + (state.content['alt_aliases'] as List).any( + (l) => + l is String && + l.localpart!.toLowerCase().contains(roomSearch), + )))) || + (r.name.toLowerCase().contains(roomSearch))) { + ret.add({ + 'type': 'room', + 'mxid': (r.canonicalAlias.isNotEmpty) ? r.canonicalAlias : r.id, + 'displayname': r.getLocalizedDisplayname(), + 'avatar_url': r.avatar?.toString(), + }); + } + if (ret.length > maxResults) { + break; + } + } + } + return ret; + } + + Widget buildSuggestion( + BuildContext context, + Map suggestion, + void Function(Map) onSelected, + Client? client, + ) { + final theme = Theme.of(context); + const size = 30.0; + if (suggestion['type'] == 'command') { + final command = suggestion['name']!; + final hint = commandHint(L10n.of(context), command); + return Tooltip( + message: hint, + waitDuration: const Duration(days: 1), // don't show on hover + child: ListTile( + onTap: () => onSelected(suggestion), + title: Text( + commandExample(command), + style: const TextStyle(fontFamily: 'RobotoMono'), + ), + subtitle: Text( + hint, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: theme.textTheme.bodySmall, + ), + ), + ); + } + if (suggestion['type'] == 'emoji') { + final label = suggestion['label']!; + return Tooltip( + message: label, + waitDuration: const Duration(days: 1), // don't show on hover + child: ListTile( + onTap: () => onSelected(suggestion), + leading: SizedBox.square( + dimension: size, + child: Text( + suggestion['emoji']!, + style: const TextStyle(fontSize: 16), + ), + ), + title: Text(label, maxLines: 1, overflow: TextOverflow.ellipsis), + ), + ); + } + if (suggestion['type'] == 'emote') { + return ListTile( + onTap: () => onSelected(suggestion), + leading: MxcImage( + // ensure proper ordering ... + key: ValueKey(suggestion['name']), + uri: suggestion['mxc'] is String + ? Uri.parse(suggestion['mxc'] ?? '') + : null, + width: size, + height: size, + isThumbnail: false, + ), + title: Row( + crossAxisAlignment: .center, + children: [ + Text(suggestion['name']!), + Expanded( + child: Align( + alignment: Alignment.centerRight, + child: Opacity( + opacity: suggestion['pack_avatar_url'] != null ? 0.8 : 0.5, + child: suggestion['pack_avatar_url'] != null + ? Avatar( + mxContent: Uri.tryParse( + suggestion.tryGet('pack_avatar_url') ?? '', + ), + name: suggestion.tryGet('pack_display_name'), + size: size * 0.9, + client: client, + ) + : Text(suggestion['pack_display_name']!), + ), + ), + ), + ], + ), + ); + } + if (suggestion['type'] == 'user' || suggestion['type'] == 'room') { + final url = Uri.parse(suggestion['avatar_url'] ?? ''); + return ListTile( + onTap: () => onSelected(suggestion), + leading: Avatar( + mxContent: url, + name: + suggestion.tryGet('displayname') ?? + suggestion.tryGet('mxid'), + size: size, + client: client, + ), + title: Text(suggestion['displayname'] ?? suggestion['mxid']!), + ); + } + return const SizedBox.shrink(); + } + + String insertSuggestion(Map suggestion) { + final replaceText = controller!.text.substring( + 0, + controller!.selection.baseOffset, + ); + var startText = ''; + final afterText = replaceText == controller!.text + ? '' + : controller!.text.substring(controller!.selection.baseOffset + 1); + var insertText = ''; + if (suggestion['type'] == 'command') { + insertText = '${suggestion['name']!} '; + startText = replaceText.replaceAllMapped( + RegExp(r'^(/\w*)$'), + (Match m) => '/$insertText', + ); + } + if (suggestion['type'] == 'emoji') { + insertText = '${suggestion['emoji']!} '; + startText = replaceText.replaceAllMapped( + suggestion['current_word']!, + (Match m) => insertText, + ); + } + if (suggestion['type'] == 'emote') { + var isUnique = true; + final insertEmote = suggestion['name']; + final insertPack = suggestion['pack']; + final emotePacks = room.getImagePacks(ImagePackUsage.emoticon); + for (final pack in emotePacks.entries) { + if (pack.key == insertPack) { + continue; + } + for (final emote in pack.value.images.entries) { + if (emote.key == insertEmote) { + isUnique = false; + break; + } + } + if (!isUnique) { + break; + } + } + insertText = ':${isUnique ? '' : '${insertPack!}~'}$insertEmote: '; + startText = replaceText.replaceAllMapped( + RegExp(r'(\s|^)(:(?:[-\w]+~)?[-\w]+)$'), + (Match m) => '${m[1]}$insertText', + ); + } + if (suggestion['type'] == 'user') { + insertText = '${suggestion['mention']!} '; + startText = replaceText.replaceAllMapped( + RegExp(r'(\s|^)(@[-\w]+)$'), + (Match m) => '${m[1]}$insertText', + ); + } + if (suggestion['type'] == 'room') { + insertText = '${suggestion['mxid']!} '; + startText = replaceText.replaceAllMapped( + RegExp(r'(\s|^)(#[-\w]+)$'), + (Match m) => '${m[1]}$insertText', + ); + } + + return startText + afterText; + } + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + return Autocomplete>( + key: Key('chat_input_field'), + focusNode: focusNode, + textEditingController: controller, + optionsBuilder: getSuggestions, + fieldViewBuilder: (context, controller, focusNode, _) => MediaQuery( + data: MediaQuery.of(context).copyWith( + textScaler: TextScaler.linear(AppSettings.fontSizeFactor.value), + ), + child: TextField( + controller: controller, + focusNode: focusNode, + readOnly: readOnly, + onEditingComplete: () { + // To not lose focus on iOS: + // https://github.com/krille-chan/fluffychat/issues/2784 + }, + contextMenuBuilder: (c, e) => MarkdownContextBuilder( + editableTextState: e, + controller: controller, + ), + contentInsertionConfiguration: ContentInsertionConfiguration( + onContentInserted: (KeyboardInsertedContent content) async { + final proceed = await showTrustUserInRoomDialog(context, room); + if (!proceed) return; + final data = content.data; + if (data == null) return; + + final file = MatrixFile( + mimeType: content.mimeType, + bytes: data, + name: content.uri.split('/').last, + ); + room.sendFileEvent(file, shrinkImageMaxDimension: 1600); + }, + ), + minLines: minLines, + maxLines: maxLines, + keyboardType: keyboardType, + textInputAction: textInputAction, + autofocus: autofocus!, + inputFormatters: [ + LengthLimitingTextInputFormatter((maxPDUSize / 3).floor()), + ], + onSubmitted: (text) { + // fix for library for now + // it sets the types for the callback incorrectly + onSubmitted!(text); + }, + maxLength: AppSettings.textMessageMaxLength.value, + decoration: decoration, + onChanged: (text) { + // fix for the library for now + // it sets the types for the callback incorrectly + onChanged!(text); + }, + textCapitalization: TextCapitalization.sentences, + ), + ), + optionsViewBuilder: (c, onSelected, s) { + final suggestions = s.toList(); + return Material( + elevation: theme.appBarTheme.scrolledUnderElevation ?? 4, + shadowColor: theme.appBarTheme.shadowColor, + borderRadius: BorderRadius.circular(AppConfig.borderRadius), + clipBehavior: Clip.hardEdge, + child: ListView.builder( + padding: EdgeInsets.zero, + shrinkWrap: true, + itemCount: suggestions.length, + itemBuilder: (context, i) => buildSuggestion( + c, + suggestions[i], + onSelected, + Matrix.of(context).client, + ), + ), + ); + }, + displayStringForOption: insertSuggestion, + optionsViewOpenDirection: OptionsViewOpenDirection.up, + ); + } +} diff --git a/lib/pages/chat/pinned_events.dart b/lib/pages/chat/pinned_events.dart new file mode 100644 index 0000000..0dc3525 --- /dev/null +++ b/lib/pages/chat/pinned_events.dart @@ -0,0 +1,104 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat/chat.dart'; +import 'package:tatchat/pages/chat/chat_app_bar_list_tile.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_modal_action_popup.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class PinnedEvents extends StatelessWidget { + final ChatController controller; + + const PinnedEvents(this.controller, {super.key}); + + Future _displayPinnedEventsDialog(BuildContext context) async { + final l10n = L10n.of(context); + final eventsResult = await showFutureLoadingDialog( + context: context, + future: () => Future.wait( + controller.room.pinnedEventIds.map( + (eventId) => controller.room.getEventById(eventId), + ), + ), + ); + final events = eventsResult.result; + if (events == null) return; + if (!context.mounted) return; + + final eventId = events.length == 1 + ? events.single?.eventId + : await showModalActionPopup( + context: context, + title: l10n.pin, + cancelLabel: l10n.cancel, + actions: events + .map( + (event) => AdaptiveModalAction( + value: event?.eventId ?? '', + icon: const Icon(Icons.push_pin_outlined), + label: + event + ?.calcLocalizedBodyFallback( + MatrixLocals(l10n), + withSenderNamePrefix: true, + hideReply: true, + ) + .trim() + .replaceAll('\n', ' ') ?? + 'UNKNOWN', + ), + ) + .toList(), + ); + + if (eventId != null) controller.scrollToEventId(eventId); + } + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + final pinnedEventIds = controller.room.pinnedEventIds; + + if (pinnedEventIds.isEmpty || controller.activeThreadId != null) { + return const SizedBox.shrink(); + } + + return FutureBuilder( + future: controller.room.getEventById(pinnedEventIds.last), + builder: (context, snapshot) { + final event = snapshot.data; + return ChatAppBarListTile( + title: + event + ?.calcLocalizedBodyFallback( + MatrixLocals(L10n.of(context)), + withSenderNamePrefix: true, + hideReply: true, + ) + .replaceAll('\n', ' ') ?? + L10n.of(context).loadingPleaseWait, + leading: IconButton( + splashRadius: 18, + iconSize: 18, + color: theme.colorScheme.onSurfaceVariant, + icon: const Icon(Icons.push_pin), + tooltip: L10n.of(context).unpin, + onPressed: controller.room.canSendEvent(EventTypes.RoomPinnedEvents) + ? () => controller.unpinEvent(event!.eventId) + : null, + ), + onTap: () => _displayPinnedEventsDialog(context), + ); + }, + ); + } +} diff --git a/lib/pages/chat/recording_input_row.dart b/lib/pages/chat/recording_input_row.dart new file mode 100644 index 0000000..58463e6 --- /dev/null +++ b/lib/pages/chat/recording_input_row.dart @@ -0,0 +1,107 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat/chat_input_row.dart'; +import 'package:tatchat/pages/chat/recording_view_model.dart'; +import 'package:material_ui/material_ui.dart'; + +class RecordingInputRow extends StatelessWidget { + final RecordingViewModelState state; + final Future Function(String, int, List, String) onSend; + const RecordingInputRow({ + required this.state, + required this.onSend, + super.key, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + const maxDecibalWidth = 36.0; + final time = + '${state.duration.inMinutes.toString().padLeft(2, '0')}:${(state.duration.inSeconds % 60).toString().padLeft(2, '0')}'; + return SizedBox( + height: ChatInputRow.height, + child: Row( + crossAxisAlignment: .center, + mainAxisAlignment: .spaceBetween, + children: [ + const SizedBox(width: 8), + Container( + alignment: .center, + width: 48, + child: IconButton( + tooltip: L10n.of(context).cancel, + icon: const Icon(Icons.delete_outlined), + color: theme.colorScheme.error, + onPressed: state.cancel, + ), + ), + if (state.isPaused) + Container( + alignment: .center, + width: 48, + child: IconButton( + tooltip: L10n.of(context).resume, + icon: const Icon(Icons.play_circle_outline_outlined), + onPressed: state.resume, + ), + ) + else + Container( + alignment: .center, + width: 48, + child: IconButton( + tooltip: L10n.of(context).pause, + icon: const Icon(Icons.pause_circle_outline_outlined), + onPressed: state.pause, + ), + ), + Text(time), + Expanded( + child: LayoutBuilder( + builder: (context, constraints) { + const width = 4; + return Row( + mainAxisSize: .min, + mainAxisAlignment: .end, + children: state.amplitudeTimeline.reversed + .take((constraints.maxWidth / (width + 2)).floor()) + .toList() + .reversed + .map( + (amplitude) => Container( + margin: const EdgeInsets.only(left: 2), + width: width.toDouble(), + decoration: BoxDecoration( + color: theme.colorScheme.primary, + borderRadius: BorderRadius.circular(2), + ), + height: maxDecibalWidth * (amplitude / 100), + ), + ) + .toList(), + ); + }, + ), + ), + IconButton( + style: IconButton.styleFrom( + disabledBackgroundColor: theme.bubbleColor.withAlpha(128), + backgroundColor: theme.bubbleColor, + foregroundColor: theme.onBubbleColor, + ), + tooltip: L10n.of(context).sendAudio, + icon: const Icon(Icons.send_outlined), + onPressed: () => state.stopAndSend(onSend), + ), + const SizedBox(width: 4), + ], + ), + ); + } +} diff --git a/lib/pages/chat/recording_view_model.dart b/lib/pages/chat/recording_view_model.dart new file mode 100644 index 0000000..9dedeeb --- /dev/null +++ b/lib/pages/chat/recording_view_model.dart @@ -0,0 +1,222 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; + +import 'package:cupertino_ui/cupertino_ui.dart'; +import 'package:device_info_plus/device_info_plus.dart'; +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart'; +import 'package:flutter/foundation.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; +import 'package:path/path.dart' as path_lib; +import 'package:path_provider/path_provider.dart'; +import 'package:record/record.dart'; +import 'package:wakelock_plus/wakelock_plus.dart'; + +import 'events/audio_player.dart'; + +class RecordingViewModel extends StatefulWidget { + final Widget Function(BuildContext, RecordingViewModelState) builder; + + const RecordingViewModel({required this.builder, super.key}); + + @override + RecordingViewModelState createState() => RecordingViewModelState(); +} + +class RecordingViewModelState extends State { + Timer? _recorderSubscription; + Duration duration = Duration.zero; + + bool get isRecording => _audioRecorder != null; + + AudioRecorder? _audioRecorder; + final List amplitudeTimeline = []; + + String? fileName; + + bool isPaused = false; + + Future startRecording(Room room) async { + room.client.getConfig(); // Preload server file configuration. + if (PlatformInfos.isAndroid) { + final info = await DeviceInfoPlugin().androidInfo; + if (!mounted) return; + if (info.version.sdkInt < 19) { + showOkAlertDialog( + context: context, + title: L10n.of(context).unsupportedAndroidVersion, + message: L10n.of(context).unsupportedAndroidVersionLong, + okLabel: L10n.of(context).close, + ); + return; + } + } + if (await AudioRecorder().hasPermission() == false) return; + + final audioRecorder = _audioRecorder ??= AudioRecorder(); + setState(() {}); + + try { + final codec = + !PlatformInfos + .isIOS && // Blocked by https://github.com/llfbandit/record/issues/560 + await audioRecorder.isEncoderSupported(AudioEncoder.opus) + ? AudioEncoder.opus + : AudioEncoder.aacLc; + fileName = + 'voice_message_${DateTime.now().millisecondsSinceEpoch}.${codec.fileExtension}'; + String? path; + if (!kIsWeb) { + final tempDir = await getTemporaryDirectory(); + path = path_lib.join(tempDir.path, fileName); + } + + final result = await audioRecorder.hasPermission(); + if (result != true) { + if (!mounted) return; + showOkAlertDialog( + context: context, + title: L10n.of(context).oopsSomethingWentWrong, + message: L10n.of(context).noPermission, + ); + return; + } + await WakelockPlus.enable(); + + await audioRecorder.start( + RecordConfig( + bitRate: AppSettings.audioRecordingBitRate.value, + sampleRate: AppSettings.audioRecordingSamplingRate.value, + numChannels: AppSettings.audioRecordingNumChannels.value, + autoGain: AppSettings.audioRecordingAutoGain.value, + echoCancel: AppSettings.audioRecordingEchoCancel.value, + noiseSuppress: AppSettings.audioRecordingNoiseSuppress.value, + encoder: codec, + ), + path: path ?? '', + ); + if (!mounted) return; + setState(() => duration = Duration.zero); + _subscribe(); + } catch (e, s) { + Logs().w('Unable to start voice message recording', e, s); + if (!mounted) return; + showOkAlertDialog( + context: context, + title: L10n.of(context).oopsSomethingWentWrong, + message: e.toString(), + ); + setState(_reset); + } + } + + @override + void dispose() { + _reset(); + super.dispose(); + } + + void _subscribe() { + _recorderSubscription?.cancel(); + _recorderSubscription = Timer.periodic(const Duration(milliseconds: 100), ( + _, + ) async { + final amplitude = await _audioRecorder!.getAmplitude(); + var value = 100 + amplitude.current * 2; + value = value < 1 ? 1 : value; + amplitudeTimeline.add(value); + setState(() { + duration += const Duration(milliseconds: 100); + }); + }); + } + + void _reset() { + WakelockPlus.disable(); + _recorderSubscription?.cancel(); + _audioRecorder?.stop(); + _audioRecorder = null; + + fileName = null; + duration = Duration.zero; + amplitudeTimeline.clear(); + isPaused = false; + } + + void cancel() { + setState(_reset); + } + + void pause() { + _audioRecorder?.pause(); + _recorderSubscription?.cancel(); + setState(() { + isPaused = true; + }); + } + + void resume() { + _audioRecorder?.resume(); + _subscribe(); + setState(() { + isPaused = false; + }); + } + + Future stopAndSend( + Future Function( + String path, + int duration, + List waveform, + String fileName, + ) + onSend, + ) async { + _recorderSubscription?.cancel(); + final path = await _audioRecorder?.stop(); + + if (path == null) throw ('Recording failed!'); + const waveCount = AudioPlayerWidget.wavesCount; + final step = amplitudeTimeline.length < waveCount + ? 1 + : (amplitudeTimeline.length / waveCount).round(); + final waveform = []; + for (var i = 0; i < amplitudeTimeline.length; i += step) { + waveform.add((amplitudeTimeline[i] / 100 * 1024).round()); + } + + onSend(path, duration.inMilliseconds, waveform, fileName!); + + cancel(); + } + + @override + Widget build(BuildContext context) => widget.builder(context, this); +} + +extension on AudioEncoder { + String get fileExtension { + switch (this) { + case AudioEncoder.aacLc: + case AudioEncoder.aacEld: + case AudioEncoder.aacHe: + return 'm4a'; + case AudioEncoder.opus: + return 'ogg'; + case AudioEncoder.wav: + return 'wav'; + case AudioEncoder.amrNb: + case AudioEncoder.amrWb: + case AudioEncoder.flac: + case AudioEncoder.pcm16bits: + throw UnsupportedError('Not yet used'); + } + } +} diff --git a/lib/pages/chat/reply_display.dart b/lib/pages/chat/reply_display.dart new file mode 100644 index 0000000..a6e4e11 --- /dev/null +++ b/lib/pages/chat/reply_display.dart @@ -0,0 +1,95 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../config/themes.dart'; +import 'chat.dart'; +import 'events/reply_content.dart'; + +class ReplyDisplay extends StatelessWidget { + final ChatController controller; + const ReplyDisplay(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + return AnimatedSize( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + clipBehavior: Clip.hardEdge, + child: controller.editEvent != null || controller.replyEvent != null + ? Material( + color: theme.colorScheme.surfaceContainer, + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 8.0), + child: Row( + children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 8.0), + child: IconButton( + tooltip: L10n.of(context).close, + icon: const Icon(Icons.close), + onPressed: controller.cancelReplyEventAction, + ), + ), + Expanded( + child: controller.replyEvent != null + ? ReplyContent( + controller.replyEvent!, + timeline: controller.timeline, + ) + : _EditContent( + controller.editEvent?.getDisplayEvent( + controller.timeline!, + ), + ), + ), + ], + ), + ), + ) + : SizedBox.shrink(), + ); + } +} + +class _EditContent extends StatelessWidget { + final Event? event; + + const _EditContent(this.event); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final event = this.event; + if (event == null) { + return const SizedBox.shrink(); + } + return Row( + children: [ + Icon(Icons.edit, color: theme.colorScheme.primary), + Container(width: 15.0), + Text( + event + .calcLocalizedBodyFallback( + MatrixLocals(L10n.of(context)), + withSenderNamePrefix: false, + hideReply: true, + ) + .trim() + .replaceAll('\n', ' '), + overflow: TextOverflow.ellipsis, + maxLines: 1, + style: TextStyle(color: theme.textTheme.bodyMedium!.color), + ), + ], + ); + } +} diff --git a/lib/pages/chat/seen_by_row.dart b/lib/pages/chat/seen_by_row.dart new file mode 100644 index 0000000..e4fe6f7 --- /dev/null +++ b/lib/pages/chat/seen_by_row.dart @@ -0,0 +1,94 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class SeenByRow extends StatelessWidget { + final Event event; + const SeenByRow({super.key, required this.event}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + const maxAvatars = 7; + return StreamBuilder( + stream: event.room.client.onSync.stream.where( + (syncUpdate) => + syncUpdate.rooms?.join?[event.room.id]?.ephemeral?.any( + (ephemeral) => ephemeral.type == 'm.receipt', + ) ?? + false, + ), + builder: (context, asyncSnapshot) { + final seenByUsers = event.receipts + .map((r) => r.user) + .where( + (user) => + user.id != event.room.client.userID && + user.id != event.senderId, + ) + .toList(); + return Container( + width: double.infinity, + alignment: Alignment.center, + child: AnimatedContainer( + constraints: const BoxConstraints( + maxWidth: FluffyThemes.maxTimelineWidth, + ), + height: seenByUsers.isEmpty ? 0 : 24, + duration: seenByUsers.isEmpty + ? Duration.zero + : FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + alignment: event.senderId == Matrix.of(context).client.userID + ? Alignment.topRight + : Alignment.topLeft, + padding: const EdgeInsets.only( + bottom: 4, + top: 1, + left: 8, + right: 8, + ), + child: Wrap( + spacing: 4, + children: [ + ...(seenByUsers.length > maxAvatars + ? seenByUsers.sublist(0, maxAvatars) + : seenByUsers) + .map( + (user) => Avatar( + mxContent: user.avatarUrl, + name: user.calcDisplayname(), + size: 16, + ), + ), + if (seenByUsers.length > maxAvatars) + SizedBox( + width: 16, + height: 16, + child: Material( + color: theme.colorScheme.surface, + borderRadius: BorderRadius.circular(32), + child: Center( + child: Text( + '+${seenByUsers.length - maxAvatars}', + style: const TextStyle(fontSize: 9), + ), + ), + ), + ), + ], + ), + ), + ); + }, + ); + } +} diff --git a/lib/pages/chat/send_file_dialog.dart b/lib/pages/chat/send_file_dialog.dart new file mode 100644 index 0000000..516567f --- /dev/null +++ b/lib/pages/chat/send_file_dialog.dart @@ -0,0 +1,1205 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:typed_data'; +import 'dart:ui' as ui; + +import 'package:async/async.dart' show Result; +import 'package:crop_image/crop_image.dart'; +import 'package:cross_file/cross_file.dart'; +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/image_edit_geometry.dart'; +import 'package:tatchat/pages/chat/trust_user_key_dialog.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/matrix_file_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'; +import 'package:tatchat/utils/size_string.dart'; +import 'package:tatchat/utils/start_push_foreground_service.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/adaptive_dialog_action.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/dialog_text_field.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart' hide Result; +import 'package:mime/mime.dart'; + +import '../../utils/resize_video.dart'; + +class SendFileDialog extends StatefulWidget { + final Room room; + final List files; + final BuildContext outerContext; + final String? threadLastEventId, threadRootEventId; + + const SendFileDialog({ + required this.room, + required this.files, + required this.outerContext, + required this.threadLastEventId, + required this.threadRootEventId, + super.key, + }); + + @override + SendFileDialogState createState() => SendFileDialogState(); +} + +class SendFileDialogState extends State { + bool compress = true; + + /// Images smaller than 20kb don't need compression. + static const int minSizeToCompress = 20 * 1000; + + final TextEditingController _labelTextController = TextEditingController(); + + /// Mutable working copy of [SendFileDialog.files]. Editing an image replaces + /// its entry with a new [XFile] whose bytes, mimetype and filename extension + /// all reflect the edit result (always PNG). Keeping bytes + mimetype in one + /// object avoids drift between the preview, the upload and the extension. + late final List _files = List.of(widget.files); + + Future _editImage(int index) async { + final bytes = await _files[index].readAsBytes(); + if (!mounted) return; + final result = await showScaffoldDialog( + context: context, + builder: (_) => _ImageEditPage(bytes: bytes), + ); + if (!mounted || result == null) return; + final original = _files[index]; + final dot = original.name.lastIndexOf('.'); + final baseName = dot > 0 ? original.name.substring(0, dot) : original.name; + setState(() { + _files[index] = XFile.fromData( + result, + mimeType: 'image/png', + name: '$baseName.png', + length: result.length, + ); + }); + } + + Future _send(String? uniqueFileType) async { + final l10n = L10n.of(context); + final scaffoldMessenger = ScaffoldMessenger.of(context); + + final proceed = await showTrustUserInRoomDialog(context, widget.room); + if (!context.mounted || !proceed) return; + + if (ForegroundServices.platformSupported) { + await ForegroundServices.startService('send_files'); + } else { + scaffoldMessenger.showLoadingSnackBar( + l10n.sendingFilesDoNotExit(widget.files.length), + ); + } + try { + if (!widget.room.otherPartyCanReceiveMessages) { + throw OtherPartyCanNotReceiveMessages(); + } + if (!mounted) return; + Navigator.of(context, rootNavigator: false).pop(); + final clientConfig = await Result.capture(widget.room.client.getConfig()); + final maxUploadSize = + clientConfig.asValue?.value.mUploadSize ?? 100 * 1000 * 1000; + + for (var i = 0; i < _files.length; i++) { + final xfile = _files[i]; + final MatrixFile file; + MatrixImageFile? thumbnail; + final mimeType = xfile.mimeType ?? lookupMimeType(xfile.path); + + // Generate video thumbnail + if (PlatformInfos.isMobile && + mimeType != null && + mimeType.startsWith('video')) { + thumbnail = await xfile.getVideoThumbnail(); + } + + // If file is a video, shrink it! + if (PlatformInfos.isMobile && + mimeType != null && + mimeType.startsWith('video')) { + final lengthResult = await Result.capture(xfile.length()); + final length = lengthResult.asValue?.value; + scaffoldMessenger.clearSnackBars(); + scaffoldMessenger.showLoadingSnackBar(l10n.compressingVideo); + file = await xfile.getVideoInfo( + compress: length != null && length > minSizeToCompress && compress, + ); + scaffoldMessenger.clearSnackBars(); + if (!ForegroundServices.platformSupported) { + scaffoldMessenger.showLoadingSnackBar( + l10n.sendingFilesDoNotExit(widget.files.length), + ); + } + } else { + // Else we just create a MatrixFile + file = MatrixFile( + bytes: await _files[i].readAsBytes(), + name: xfile.name, + mimeType: mimeType, + ).detectFileType; + } + + if (file.bytes.length > maxUploadSize) { + throw FileTooBigMatrixException(file.bytes.length, maxUploadSize); + } + + final label = _labelTextController.text.trim(); + + try { + await widget.room.sendFileEvent( + file, + thumbnail: thumbnail, + shrinkImageMaxDimension: compress ? 1600 : null, + extraContent: label.isEmpty ? null : {'body': label}, + threadRootEventId: widget.threadRootEventId, + threadLastEventId: widget.threadLastEventId, + ); + } on MatrixException catch (e) { + final retryAfterMs = e.retryAfterMs; + if (e.error != MatrixError.M_LIMIT_EXCEEDED || retryAfterMs == null) { + rethrow; + } + final retryAfterDuration = Duration( + milliseconds: retryAfterMs + 1000, + ); + + await Future.delayed(retryAfterDuration); + + await widget.room.sendFileEvent( + file, + thumbnail: thumbnail, + shrinkImageMaxDimension: compress ? 1600 : null, + extraContent: label.isEmpty ? null : {'body': label}, + ); + } + } + } finally { + if (ForegroundServices.platformSupported) { + await ForegroundServices.stopService('send_files'); + } else { + scaffoldMessenger.clearSnackBars(); + } + } + + return; + } + + Future _calcCombinedFileSize() async { + final lengths = await Future.wait(_files.map((file) => file.length())); + return lengths.fold(0, (p, length) => p + length).sizeString; + } + + @override + void dispose() { + _labelTextController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + var sendStr = L10n.of(context).sendFile; + final uniqueFileType = _files + .map((file) => file.mimeType ?? lookupMimeType(file.name)) + .map((mimeType) => mimeType?.split('/').first) + .toSet() + .singleOrNull; + + final fileName = _files.length == 1 + ? _files.single.name + : L10n.of(context).countFiles(_files.length); + final fileTypes = _files + .map((file) => file.name.split('.').last) + .toSet() + .join(', ') + .toUpperCase(); + + if (uniqueFileType == 'image') { + if (_files.length == 1) { + sendStr = L10n.of(context).sendImage; + } else { + sendStr = L10n.of(context).sendImages(_files.length); + } + } else if (uniqueFileType == 'audio') { + sendStr = L10n.of(context).sendAudio; + } else if (uniqueFileType == 'video') { + sendStr = L10n.of(context).sendVideo; + } + + final compressionSupported = + uniqueFileType != 'video' || PlatformInfos.isMobile; + + return FutureBuilder( + future: _calcCombinedFileSize(), + builder: (context, snapshot) { + final sizeString = + snapshot.data ?? L10n.of(context).calculatingFileSize; + + return AlertDialog.adaptive( + title: Text(sendStr), + content: SizedBox( + width: 256, + child: SingleChildScrollView( + child: Column( + mainAxisSize: .min, + children: [ + const SizedBox(height: 12), + if (uniqueFileType == 'image') + Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: SizedBox( + height: 256, + child: Center( + child: ListView.builder( + shrinkWrap: true, + itemCount: _files.length, + scrollDirection: Axis.horizontal, + itemBuilder: (context, i) => Padding( + padding: const EdgeInsets.only(right: 8.0), + child: Stack( + children: [ + Material( + borderRadius: BorderRadius.circular( + AppConfig.borderRadius / 2, + ), + color: Colors.black, + clipBehavior: Clip.hardEdge, + child: FutureBuilder( + future: _files[i].readAsBytes(), + builder: (context, snapshot) { + final bytes = snapshot.data; + if (bytes == null) { + return const Center( + child: + CircularProgressIndicator.adaptive(), + ); + } + if (snapshot.error != null) { + Logs().w( + 'Unable to preview image', + snapshot.error, + snapshot.stackTrace, + ); + return const Center( + child: SizedBox( + width: 256, + height: 256, + child: Icon( + Icons.broken_image_outlined, + size: 64, + ), + ), + ); + } + return Image.memory( + bytes, + height: 256, + width: _files.length == 1 + ? 256 - 36 + : null, + fit: BoxFit.contain, + errorBuilder: (context, e, s) { + Logs().w( + 'Unable to preview image', + e, + s, + ); + return const Center( + child: SizedBox( + width: 256, + height: 256, + child: Icon( + Icons.broken_image_outlined, + size: 64, + ), + ), + ); + }, + ); + }, + ), + ), + Positioned( + top: 4, + right: 4, + child: Material( + color: Colors.black54, + shape: const CircleBorder(), + child: IconButton( + tooltip: L10n.of(context).editImage, + icon: const Icon( + Icons.edit_outlined, + color: Colors.white, + size: 20, + ), + onPressed: () => _editImage(i), + ), + ), + ), + ], + ), + ), + ), + ), + ), + ), + if (uniqueFileType != 'image') + Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: Row( + children: [ + Icon( + uniqueFileType == null + ? Icons.description_outlined + : uniqueFileType == 'video' + ? Icons.video_file_outlined + : uniqueFileType == 'audio' + ? Icons.audio_file_outlined + : Icons.description_outlined, + size: 32, + ), + const SizedBox(width: 8), + Expanded( + child: Column( + mainAxisSize: .min, + crossAxisAlignment: .start, + children: [ + Text( + fileName, + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + Text( + '$sizeString - $fileTypes', + style: theme.textTheme.labelSmall, + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ], + ), + ), + ], + ), + ), + if (_files.length == 1) + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: DialogTextField( + controller: _labelTextController, + labelText: L10n.of(context).optionalMessage, + minLines: 1, + maxLines: 1, + maxLength: 255, + counterText: '', + ), + ), + // Workaround for SwitchListTile.adaptive crashes in CupertinoDialog + if ({'image', 'video'}.contains(uniqueFileType)) + Row( + crossAxisAlignment: .center, + children: [ + if ({ + TargetPlatform.iOS, + TargetPlatform.macOS, + }.contains(theme.platform)) + CupertinoSwitch( + value: compressionSupported && compress, + onChanged: compressionSupported + ? (v) => setState(() => compress = v) + : null, + ) + else + Switch.adaptive( + value: compressionSupported && compress, + onChanged: compressionSupported + ? (v) => setState(() => compress = v) + : null, + ), + const SizedBox(width: 16), + Expanded( + child: Column( + mainAxisSize: .min, + crossAxisAlignment: .start, + children: [ + Row( + mainAxisSize: .min, + children: [ + Text( + L10n.of(context).compress, + style: theme.textTheme.titleMedium, + textAlign: TextAlign.left, + ), + ], + ), + if (!compress) + Text( + ' ($sizeString)', + style: theme.textTheme.labelSmall, + ), + if (!compressionSupported) + Text( + L10n.of(context).notSupportedOnThisDevice, + style: theme.textTheme.labelSmall, + ), + ], + ), + ), + ], + ), + ], + ), + ), + ), + actions: [ + AdaptiveDialogAction( + onPressed: () => + Navigator.of(context, rootNavigator: false).pop(), + child: Text(L10n.of(context).cancel), + ), + AdaptiveDialogAction( + onPressed: () => _send(uniqueFileType), + child: Text(L10n.of(context).send), + ), + ], + ); + }, + ); + } +} + +enum _EditMode { crop, draw } + +/// The crop (a normalized rectangle held by [CropController]), the rotation +/// (quarter turns) and the drawn strokes are only composited into a single +/// full-resolution bitmap when the user saves. +/// +/// Returns the edited image bytes (PNG) via [Navigator.pop], or null if the user +/// cancelled or made no changes (in which case the original file is kept). +class _ImageEditPage extends StatefulWidget { + final Uint8List bytes; + + const _ImageEditPage({required this.bytes}); + + @override + State<_ImageEditPage> createState() => _ImageEditPageState(); +} + +class _ImageEditPageState extends State<_ImageEditPage> { + static const List _palette = [ + Colors.red, + Colors.orange, + Colors.yellow, + Colors.green, + Colors.blue, + Colors.purple, + Colors.black, + Colors.white, + ]; + + static const Rect _fullCrop = Rect.fromLTWH(0, 0, 1, 1); + + final CropController _cropController = CropController(); + + /// Source image, decoded once at full resolution. Never mutated. + ui.Image? _image; + Object? _decodeError; + + _EditMode _mode = _EditMode.crop; + + /// Clockwise quarter turns applied on top of the crop. Kept separate from the + /// crop controller so the crop rectangle always stays in the un-rotated image + /// coordinate space, which keeps all stroke math rotation-free. + int _quarterTurns = 0; + + /// Strokes, stored in source-image pixel coordinates (crop- and + /// rotation-independent) so they stay anchored to the image content. + final List<_Stroke> _strokes = []; + Color _color = Colors.red; + double _strokeWidth = 4.0; + bool _eraser = false; + bool _saving = false; + + /// View transform for the draw surface (two-finger pinch to zoom). Drawing + /// happens with one finger; two fingers zoom via [InteractiveViewer]. + final TransformationController _drawTransform = TransformationController(); + + /// Horizontal mirror (flip), applied together with rotation at save time. + bool _mirror = false; + + @override + void initState() { + super.initState(); + _decode(); + } + + @override + void dispose() { + _cropController.dispose(); + _drawTransform.dispose(); + // Note: [_image] is intentionally not disposed here. A save may still be + // rasterizing from it asynchronously when this page is popped; the engine's + // finalizer reclaims the decoded image once it is no longer referenced. + super.dispose(); + } + + Future _decode() async { + try { + final codec = await ui.instantiateImageCodec(widget.bytes); + final frame = await codec.getNextFrame(); + if (!mounted) { + frame.image.dispose(); + return; + } + setState(() => _image = frame.image); + } catch (e, s) { + Logs().w('Unable to decode image for editing', e, s); + if (mounted) setState(() => _decodeError = e); + } + } + + Rect _cropRectPx(ui.Image image) { + final c = _cropController.crop; + return Rect.fromLTRB( + c.left * image.width, + c.top * image.height, + c.right * image.width, + c.bottom * image.height, + ); + } + + bool get _hasEdits => + _strokes.isNotEmpty || + _quarterTurns % 4 != 0 || + _mirror || + _cropController.crop != _fullCrop; + + void _rotate(int direction) { + if (_saving) return; + setState(() => _quarterTurns += direction); + } + + void _toggleMirror() { + if (_saving) return; + setState(() => _mirror = !_mirror); + } + + /// Returns a horizontally mirrored copy of [image] (lossless, axis-aligned). + Future _flippedHorizontally(ui.Image image) { + final recorder = ui.PictureRecorder(); + final canvas = Canvas(recorder); + canvas.translate(image.width.toDouble(), 0); + canvas.scale(-1, 1); + canvas.drawImage(image, Offset.zero, Paint()); + return recorder.endRecording().toImage(image.width, image.height); + } + + /// Composites the current edits into a single full-resolution PNG. + Future _compose(ui.Image image) async { + // 1. Bake strokes onto the full-resolution image (only if there are any). + var painted = image; + if (_strokes.isNotEmpty) { + final recorder = ui.PictureRecorder(); + final canvas = Canvas(recorder); + final size = Size(image.width.toDouble(), image.height.toDouble()); + canvas.drawImage(image, Offset.zero, Paint()); + _StrokePainter( + strokes: _strokes, + sourceRect: Offset.zero & size, + ).paint(canvas, size); + painted = await recorder.endRecording().toImage( + image.width, + image.height, + ); + } + + // 2. Crop (without rotation — the crop rect lives in the un-rotated frame). + final cropped = await CropController.getCroppedBitmap( + crop: _cropController.crop, + rotation: CropRotation.up, + image: painted, + ); + if (!identical(painted, image)) painted.dispose(); + + // 3. Mirror, then rotation — both lossless and in the same order as the + // on-screen preview (flip inside, rotation outside). + var staged = cropped; + if (_mirror) { + staged = await _flippedHorizontally(cropped); + cropped.dispose(); + } + + final rotation = imageEditorRotationForQuarterTurns(_quarterTurns); + var output = staged; + if (rotation != CropRotation.up) { + output = await CropController.getCroppedBitmap( + crop: _fullCrop, + rotation: rotation, + image: staged, + ); + staged.dispose(); + } + + // 4. Encode to PNG. + final data = await output.toByteData(format: ui.ImageByteFormat.png); + output.dispose(); + return data?.buffer.asUint8List(); + } + + Future _save() async { + if (_saving) return; + final navigator = Navigator.of(context); + final messenger = ScaffoldMessenger.of(context); + final image = _image; + // Nothing was changed: keep the original file untouched (pop with null). + if (image == null || !_hasEdits) { + navigator.pop(); + return; + } + setState(() => _saving = true); + try { + final result = await _compose(image); + if (!mounted) return; + navigator.pop(result); + } catch (e, s) { + Logs().w('Unable to save edited image', e, s); + if (!mounted) return; + setState(() => _saving = false); + messenger.showSnackBar(SnackBar(content: Text(e.toString()))); + } + } + + @override + Widget build(BuildContext context) { + final l10n = L10n.of(context); + final theme = Theme.of(context); + final image = _image; + return Scaffold( + appBar: AppBar( + title: Text(l10n.editImage), + actions: [ + if (_saving) + const Padding( + padding: EdgeInsets.symmetric(horizontal: 16.0), + child: Center( + child: SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator.adaptive(strokeWidth: 2), + ), + ), + ) + else + IconButton( + tooltip: l10n.save, + icon: const Icon(Icons.check), + onPressed: image == null ? null : _save, + ), + ], + bottom: image == null + ? null + : PreferredSize( + preferredSize: const Size.fromHeight(48), + child: Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: SegmentedButton<_EditMode>( + segments: [ + ButtonSegment( + value: _EditMode.crop, + icon: const Icon(Icons.crop), + label: Text(l10n.crop), + ), + ButtonSegment( + value: _EditMode.draw, + icon: const Icon(Icons.brush_outlined), + label: Text(l10n.draw), + ), + ], + selected: {_mode}, + onSelectionChanged: _saving + ? null + : (s) => setState(() { + _mode = s.first; + // Start each draw session at the un-zoomed fit. + // Gesture-state (active stroke, active pointers, + // multi-touch lock) lives inside [_DrawSurface] and + // is reset automatically because the widget is + // recreated whenever the user switches back. + _drawTransform.value = Matrix4.identity(); + }), + ), + ), + ), + ), + body: _decodeError != null + ? Center( + child: Padding( + padding: const EdgeInsets.all(32.0), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + const Icon(Icons.broken_image_outlined, size: 64), + const SizedBox(height: 16), + Text(l10n.oopsSomethingWentWrong), + ], + ), + ), + ) + : image == null + ? const Center(child: CircularProgressIndicator.adaptive()) + : Column( + children: [ + Expanded( + // Inset from the screen edges so dragging crop handles or + // drawing near the border doesn't trigger the system back- + // swipe gesture. + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 20.0, + vertical: 12.0, + ), + child: RotatedBox( + quarterTurns: _quarterTurns, + child: Transform.flip( + flipX: _mirror, + child: _mode == _EditMode.crop + ? CropImage( + controller: _cropController, + // Decode a separate image from the original + // bytes for the crop widget. Sharing our + // [_image] via UiImageProvider is unsafe: when + // CropImage is unmounted (switching to draw), + // its Image widget disposes the underlying + // ui.Image — which would be our [_image], + // breaking draw mode and save. + image: Image.memory(widget.bytes), + overlayPainter: _strokes.isEmpty + ? null + : _StrokePainter( + strokes: _strokes, + sourceRect: + Offset.zero & + Size( + image.width.toDouble(), + image.height.toDouble(), + ), + ), + ) + : _DrawSurface( + image: image, + cropPx: _cropRectPx(image), + strokes: _strokes, + color: _color, + strokeWidth: _strokeWidth, + eraser: _eraser, + transformController: _drawTransform, + onStrokesChanged: () => setState(() {}), + ), + ), + ), + ), + ), + SafeArea( + top: false, + child: _mode == _EditMode.crop + ? Padding( + padding: const EdgeInsets.symmetric(vertical: 4.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + IconButton( + tooltip: l10n.rotateLeft, + icon: const Icon(Icons.rotate_left), + onPressed: () => _rotate(-1), + ), + IconButton( + tooltip: l10n.rotateRight, + icon: const Icon(Icons.rotate_right), + onPressed: () => _rotate(1), + ), + IconButton( + tooltip: l10n.mirror, + isSelected: _mirror, + icon: const Icon(Icons.flip), + onPressed: _toggleMirror, + ), + ], + ), + ) + : Column( + mainAxisSize: MainAxisSize.min, + children: [ + Row( + children: [ + IconButton( + tooltip: l10n.draw, + isSelected: !_eraser, + icon: const Icon(Icons.brush_outlined), + selectedIcon: const Icon(Icons.brush), + onPressed: () => + setState(() => _eraser = false), + ), + IconButton( + tooltip: l10n.eraser, + isSelected: _eraser, + icon: const Icon( + Icons.cleaning_services_outlined, + ), + selectedIcon: const Icon( + Icons.cleaning_services, + ), + onPressed: () => + setState(() => _eraser = true), + ), + Expanded( + child: Slider( + min: 1, + max: 30, + value: _strokeWidth, + onChanged: (v) => + setState(() => _strokeWidth = v), + ), + ), + IconButton( + tooltip: l10n.undo, + icon: const Icon(Icons.undo), + onPressed: _strokes.isEmpty + ? null + : () => setState(_strokes.removeLast), + ), + IconButton( + tooltip: l10n.clear, + icon: const Icon(Icons.delete_outline), + onPressed: _strokes.isEmpty + ? null + : () => setState(_strokes.clear), + ), + ], + ), + SizedBox( + height: 48, + child: ListView( + scrollDirection: Axis.horizontal, + padding: const EdgeInsets.symmetric( + horizontal: 8.0, + ), + children: [ + for (final color in _palette) + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 4.0, + ), + child: GestureDetector( + onTap: () => setState(() { + _color = color; + _eraser = false; + }), + child: Container( + width: 32, + height: 32, + margin: const EdgeInsets.symmetric( + vertical: 8.0, + ), + decoration: BoxDecoration( + color: color, + shape: BoxShape.circle, + border: Border.all( + color: !_eraser && _color == color + ? theme.colorScheme.primary + : Colors.grey, + width: !_eraser && _color == color + ? 3 + : 1, + ), + ), + ), + ), + ), + ], + ), + ), + ], + ), + ), + ], + ), + ); + } +} + +extension on ScaffoldMessengerState { + void showLoadingSnackBar(String title) => showSnackBar( + SnackBar( + persist: true, + content: Row( + spacing: 8, + children: [ + Expanded(child: Text(title, overflow: .ellipsis, maxLines: 1)), + SizedBox.square( + dimension: 16, + child: CircularProgressIndicator( + strokeWidth: 2, + color: Theme.of(context).colorScheme.onInverseSurface, + ), + ), + ], + ), + ), + ); +} + +/// Freehand drawing surface with pinch-to-zoom. +/// +/// This is a widget class (not a helper method on the parent state) so it gets +/// its own [BuildContext] and its own rebuild boundary — a pointer move only +/// invalidates this subtree, not the whole editor page. +/// +/// Persistent editor state (the stroke list, current colour/width/eraser flag, +/// zoom transform) lives on the parent and is passed in as props; only the +/// pure gesture state (active stroke, currently-down pointers, multi-touch +/// lock) lives inside this widget. [onStrokesChanged] is called whenever a +/// stroke is added or discarded so the parent can rebuild consumers like the +/// undo/clear button enable state and the crop overlay preview. +class _DrawSurface extends StatefulWidget { + final ui.Image image; + final Rect cropPx; + final List<_Stroke> strokes; + final Color color; + final double strokeWidth; + final bool eraser; + final TransformationController transformController; + final VoidCallback onStrokesChanged; + + const _DrawSurface({ + required this.image, + required this.cropPx, + required this.strokes, + required this.color, + required this.strokeWidth, + required this.eraser, + required this.transformController, + required this.onStrokesChanged, + }); + + @override + State<_DrawSurface> createState() => _DrawSurfaceState(); +} + +class _DrawSurfaceState extends State<_DrawSurface> { + /// The stroke the current one-finger gesture is drawing, or null when no + /// stroke is active (e.g. during a two-finger zoom). Held by reference so a + /// stroke can be fully discarded if the gesture turns into a pinch. + _Stroke? _activeStroke; + + /// Currently active (touching) pointer ids on the draw surface. + final Set _pointers = {}; + + /// True once a second finger has touched, until all fingers lift again. While + /// set, drawing is suppressed so a pinch never draws — not at its start and + /// not when lifting back down to one finger on release. + bool _multiTouch = false; + + /// Removes a lifted pointer. Once all fingers are up, the multi-touch lock is + /// released so a fresh single touch can draw again. + void _endPointer(int pointer) { + _pointers.remove(pointer); + if (_pointers.isEmpty) { + setState(() { + _multiTouch = false; + _activeStroke = null; + }); + } + } + + @override + Widget build(BuildContext context) { + final cropPx = widget.cropPx; + return Center( + child: AspectRatio( + aspectRatio: cropPx.width / cropPx.height, + child: LayoutBuilder( + builder: (context, constraints) { + final size = Size(constraints.maxWidth, constraints.maxHeight); + // Map a pointer position (viewport pixels) to source-image pixels, + // going through the current zoom transform first. + Offset toImagePx(Offset viewportPoint) => imageEditorLocalToImagePx( + widget.transformController.toScene(viewportPoint), + size, + cropPx, + ); + // Drawing is driven from raw pointer events (not InteractiveViewer's + // gesture phases) so the real finger count decides draw vs. zoom. + // The Listener is passive: it never enters the gesture arena, so + // InteractiveViewer below still handles the two-finger pinch. + return Listener( + behavior: HitTestBehavior.opaque, + onPointerDown: (e) { + _pointers.add(e.pointer); + if (_pointers.length >= 2) { + // A pinch: this gesture is a zoom. Drop any stroke it started + // and block drawing until every finger has lifted again. + _multiTouch = true; + final active = _activeStroke; + if (active != null) { + widget.strokes.remove(active); + setState(() => _activeStroke = null); + widget.onStrokesChanged(); + } + return; + } + if (_multiTouch) return; + final stroke = _Stroke( + color: widget.color, + width: widget.strokeWidth * (cropPx.width / size.width), + eraser: widget.eraser, + points: [toImagePx(e.localPosition)], + ); + widget.strokes.add(stroke); + setState(() => _activeStroke = stroke); + widget.onStrokesChanged(); + }, + onPointerMove: (e) { + final active = _activeStroke; + if (active == null || _multiTouch || _pointers.length != 1) { + return; + } + setState(() => active.points.add(toImagePx(e.localPosition))); + }, + onPointerUp: (e) => _endPointer(e.pointer), + onPointerCancel: (e) => _endPointer(e.pointer), + child: InteractiveViewer( + transformationController: widget.transformController, + // One finger draws (via the Listener); two fingers pinch-zoom. + panEnabled: false, + minScale: 1, + maxScale: 8, + child: Stack( + fit: StackFit.expand, + children: [ + CustomPaint( + painter: _CroppedImagePainter( + image: widget.image, + sourceRect: cropPx, + ), + ), + CustomPaint( + painter: _StrokePainter( + strokes: widget.strokes, + sourceRect: cropPx, + ), + ), + ], + ), + ), + ); + }, + ), + ), + ); + } +} + +class _Stroke { + final Color color; + + /// Stroke width, in source-image pixels. + final double width; + final bool eraser; + + /// Points, in source-image pixel coordinates. + final List points; + + _Stroke({ + required this.color, + required this.width, + required this.eraser, + required this.points, + }); +} + +/// Paints the [sourceRect] region (in image pixels) of [image] to fill the +/// canvas. Only repaints when the image or the crop changes, so freehand +/// drawing doesn't continuously re-rasterize the background. +class _CroppedImagePainter extends CustomPainter { + final ui.Image image; + final Rect sourceRect; + + const _CroppedImagePainter({required this.image, required this.sourceRect}); + + @override + void paint(Canvas canvas, Size size) { + canvas.drawImageRect( + image, + sourceRect, + Offset.zero & size, + Paint()..filterQuality = FilterQuality.high, + ); + } + + @override + bool shouldRepaint(covariant _CroppedImagePainter oldDelegate) => + oldDelegate.image != image || oldDelegate.sourceRect != sourceRect; +} + +/// Paints freehand [strokes] (stored in source-image pixel coordinates) onto a +/// canvas that shows the image region [sourceRect] scaled to fill the canvas. +class _StrokePainter extends CustomPainter { + final List<_Stroke> strokes; + final Rect sourceRect; + + const _StrokePainter({required this.strokes, required this.sourceRect}); + + @override + void paint(Canvas canvas, Size size) { + if (strokes.isEmpty) return; + final scale = size.width / sourceRect.width; + // saveLayer so eraser strokes (BlendMode.clear) only erase prior strokes + // within this layer, not whatever is painted below it. + canvas.saveLayer(Offset.zero & size, Paint()); + canvas.translate(-sourceRect.left * scale, -sourceRect.top * scale); + canvas.scale(scale); + for (final stroke in strokes) { + if (stroke.points.isEmpty) continue; + final paint = Paint() + ..strokeWidth = stroke.width + ..strokeCap = StrokeCap.round + ..strokeJoin = StrokeJoin.round + ..style = PaintingStyle.stroke; + if (stroke.eraser) { + paint + ..color = const Color(0xFF000000) + ..blendMode = BlendMode.clear; + } else { + paint.color = stroke.color; + } + // A single point (a tap) renders as a dot. + if (stroke.points.length == 1) { + canvas.drawCircle( + stroke.points.first, + stroke.width / 2, + Paint() + ..color = paint.color + ..blendMode = paint.blendMode + ..style = PaintingStyle.fill, + ); + continue; + } + final path = Path() + ..moveTo(stroke.points.first.dx, stroke.points.first.dy); + for (final p in stroke.points.skip(1)) { + path.lineTo(p.dx, p.dy); + } + canvas.drawPath(path, paint); + } + canvas.restore(); + } + + @override + bool shouldRepaint(covariant _StrokePainter oldDelegate) => true; +} diff --git a/lib/pages/chat/send_location_dialog.dart b/lib/pages/chat/send_location_dialog.dart new file mode 100644 index 0000000..8c7acff --- /dev/null +++ b/lib/pages/chat/send_location_dialog.dart @@ -0,0 +1,136 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; + +import 'package:cupertino_ui/cupertino_ui.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat/events/map_bubble.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/adaptive_dialog_action.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:geolocator/geolocator.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class SendLocationDialog extends StatefulWidget { + final Room room; + + const SendLocationDialog({required this.room, super.key}); + + @override + SendLocationDialogState createState() => SendLocationDialogState(); +} + +class SendLocationDialogState extends State { + bool disabled = false; + bool denied = false; + bool isSending = false; + Position? position; + Object? error; + + @override + void initState() { + super.initState(); + requestLocation(); + } + + Future requestLocation() async { + if (!(await Geolocator.isLocationServiceEnabled())) { + setState(() => disabled = true); + return; + } + var permission = await Geolocator.checkPermission(); + if (permission == LocationPermission.denied) { + permission = await Geolocator.requestPermission(); + if (permission == LocationPermission.denied) { + setState(() => denied = true); + return; + } + } + if (permission == LocationPermission.deniedForever) { + setState(() => denied = true); + return; + } + try { + Position position; + try { + position = await Geolocator.getCurrentPosition( + locationSettings: const LocationSettings( + accuracy: LocationAccuracy.best, + timeLimit: Duration(seconds: 30), + ), + ); + } on TimeoutException { + position = await Geolocator.getCurrentPosition( + locationSettings: const LocationSettings( + accuracy: LocationAccuracy.medium, + timeLimit: Duration(seconds: 30), + ), + ); + } + setState(() => this.position = position); + } catch (e) { + setState(() => error = e); + } + } + + Future sendAction() async { + setState(() => isSending = true); + final body = + 'https://www.openstreetmap.org/?mlat=${position!.latitude}&mlon=${position!.longitude}#map=16/${position!.latitude}/${position!.longitude}'; + final uri = + 'geo:${position!.latitude},${position!.longitude};u=${position!.accuracy}'; + await showFutureLoadingDialog( + context: context, + future: () => widget.room.sendLocation(body, uri), + ); + if (!mounted) return; + Navigator.of(context, rootNavigator: false).pop(); + } + + @override + Widget build(BuildContext context) { + Widget contentWidget; + if (position != null) { + contentWidget = MapBubble( + latitude: position!.latitude, + longitude: position!.longitude, + ); + } else if (disabled) { + contentWidget = Text(L10n.of(context).locationDisabledNotice); + } else if (denied) { + contentWidget = Text(L10n.of(context).locationPermissionDeniedNotice); + } else if (error != null) { + contentWidget = Text( + L10n.of(context).errorObtainingLocation(error.toString()), + ); + } else { + contentWidget = Row( + mainAxisSize: .min, + mainAxisAlignment: .center, + children: [ + const CupertinoActivityIndicator(), + const SizedBox(width: 12), + Text(L10n.of(context).obtainingLocation), + ], + ); + } + return AlertDialog.adaptive( + title: Text(L10n.of(context).shareLocation), + content: contentWidget, + actions: [ + AdaptiveDialogAction( + onPressed: Navigator.of(context, rootNavigator: false).pop, + child: Text(L10n.of(context).cancel), + ), + if (position != null) + AdaptiveDialogAction( + onPressed: isSending ? null : sendAction, + child: Text(L10n.of(context).send), + ), + ], + ); + } +} diff --git a/lib/pages/chat/start_poll_bottom_sheet.dart b/lib/pages/chat/start_poll_bottom_sheet.dart new file mode 100644 index 0000000..94f1eab --- /dev/null +++ b/lib/pages/chat/start_poll_bottom_sheet.dart @@ -0,0 +1,174 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat/trust_user_key_dialog.dart'; +import 'package:tatchat/utils/localized_exception_extension.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class StartPollBottomSheet extends StatefulWidget { + final Room room; + const StartPollBottomSheet({required this.room, super.key}); + + @override + State createState() => _StartPollBottomSheetState(); +} + +class _StartPollBottomSheetState extends State { + final TextEditingController _bodyController = TextEditingController(); + bool _allowMultipleAnswers = false; + final List _answers = [ + TextEditingController(), + TextEditingController(), + ]; + PollKind _pollKind = PollKind.disclosed; + + bool _canCreate = false; + + bool isLoading = false; + + String? _txid; + + Future _createPoll() async { + final proceed = await showTrustUserInRoomDialog(context, widget.room); + if (!proceed || !mounted) return; + try { + var id = 0; + _txid ??= widget.room.client.generateUniqueTransactionId(); + await widget.room.startPoll( + question: _bodyController.text.trim(), + answers: _answers + .map( + (answerController) => PollAnswer( + id: (++id).toString(), + mText: answerController.text.trim(), + ), + ) + .toList(), + kind: _pollKind, + maxSelections: _allowMultipleAnswers ? _answers.length : 1, + txid: _txid, + ); + if (!mounted) return; + Navigator.of(context).pop(); + } catch (e, s) { + Logs().w('Unable to create poll', e, s); + if (!mounted) return; + ScaffoldMessenger.of( + context, + ).showSnackBar(SnackBar(content: Text(e.toLocalizedString(context)))); + } + } + + void _updateCanCreate([_]) { + final newCanCreate = + _bodyController.text.trim().isNotEmpty && + !_answers.any((controller) => controller.text.trim().isEmpty); + if (_canCreate != newCanCreate) { + setState(() { + _canCreate = newCanCreate; + }); + } + } + + @override + void dispose() { + _bodyController.dispose(); + for (final answerController in _answers) { + answerController.dispose(); + } + super.dispose(); + } + + @override + Widget build(BuildContext context) { + const maxAnswers = 10; + return Scaffold( + appBar: AppBar( + leading: CloseButton(onPressed: Navigator.of(context).pop), + title: Text(L10n.of(context).startPoll), + ), + body: ListView( + padding: const EdgeInsets.symmetric(horizontal: 32, vertical: 16), + children: [ + TextField( + controller: _bodyController, + minLines: 2, + maxLines: 4, + maxLength: 1024, + onChanged: _updateCanCreate, + decoration: InputDecoration( + hintText: L10n.of(context).pollQuestion, + counter: const SizedBox.shrink(), + ), + ), + const Divider(height: 32), + ..._answers.map( + (answerController) => Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: TextField( + controller: answerController, + onChanged: _updateCanCreate, + maxLength: 64, + decoration: InputDecoration( + counter: const SizedBox.shrink(), + hintText: L10n.of(context).answerOption, + suffixIcon: _answers.length == 2 + ? null + : IconButton( + icon: const Icon(Icons.cancel_outlined), + onPressed: () => setState(() { + _answers.remove(answerController..dispose()); + }), + ), + ), + ), + ), + ), + Align( + alignment: Alignment.centerLeft, + child: TextButton.icon( + icon: const Icon(Icons.add_outlined), + onPressed: _answers.length < maxAnswers + ? () => setState(() { + _answers.add(TextEditingController()); + }) + : null, + label: Text(L10n.of(context).addAnswerOption), + ), + ), + const Divider(height: 32), + ListTile( + contentPadding: EdgeInsets.zero, + leading: Switch.adaptive( + value: _pollKind == PollKind.disclosed, + onChanged: (allow) => setState(() { + _pollKind = allow ? PollKind.disclosed : PollKind.undisclosed; + }), + ), + title: Text(L10n.of(context).answersVisible), + ), + ListTile( + contentPadding: EdgeInsets.zero, + leading: Switch.adaptive( + value: _allowMultipleAnswers, + onChanged: (allow) => setState(() { + _allowMultipleAnswers = allow; + }), + ), + title: Text(L10n.of(context).allowMultipleAnswers), + ), + ElevatedButton( + onPressed: !isLoading && _canCreate ? _createPoll : null, + child: isLoading + ? const LinearProgressIndicator() + : Text(L10n.of(context).startPoll), + ), + ], + ), + ); + } +} diff --git a/lib/pages/chat/sticker_picker_dialog.dart b/lib/pages/chat/sticker_picker_dialog.dart new file mode 100644 index 0000000..fbd8338 --- /dev/null +++ b/lib/pages/chat/sticker_picker_dialog.dart @@ -0,0 +1,187 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/url_launcher.dart'; +import 'package:tatchat/widgets/mxc_image.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../widgets/avatar.dart'; + +class StickerPickerDialog extends StatefulWidget { + final Room room; + final ImagePackUsage usage; + final void Function(ImagePackImageContent) onSelected; + + const StickerPickerDialog({ + required this.onSelected, + required this.room, + this.usage = ImagePackUsage.sticker, + super.key, + }); + + @override + StickerPickerDialogState createState() => StickerPickerDialogState(); +} + +class StickerPickerDialogState extends State { + String? searchFilter; + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + final stickerPacks = widget.room.getImagePacks(widget.usage); + final packSlugs = stickerPacks.keys.toList(); + + return Material( + color: theme.colorScheme.onInverseSurface, + child: SafeArea( + top: false, + child: CustomScrollView( + slivers: [ + SliverAppBar( + floating: true, + primary: false, + toolbarHeight: 72, + scrolledUnderElevation: 0, + backgroundColor: Colors.transparent, + automaticallyImplyLeading: false, + title: TextField( + autofocus: false, + decoration: InputDecoration( + filled: true, + fillColor: theme.colorScheme.secondaryContainer, + border: OutlineInputBorder( + borderSide: BorderSide.none, + borderRadius: BorderRadius.circular(99), + ), + contentPadding: EdgeInsets.zero, + hintText: L10n.of(context).search, + hintStyle: TextStyle( + color: theme.colorScheme.onPrimaryContainer, + fontWeight: FontWeight.normal, + ), + floatingLabelBehavior: FloatingLabelBehavior.never, + prefixIcon: const Icon(Icons.search_outlined), + ), + onChanged: (s) => setState(() => searchFilter = s), + ), + ), + if (packSlugs.isEmpty) + SliverFillRemaining( + child: Center( + child: Column( + mainAxisSize: .min, + children: [ + Text(L10n.of(context).noEmotesFound), + const SizedBox(height: 12), + OutlinedButton.icon( + onPressed: () => UrlLauncher( + context, + AppConfig.howDoIGetStickersTutorial, + ).launchUrl(), + icon: const Icon(Icons.explore_outlined), + label: Text(L10n.of(context).discover), + ), + ], + ), + ), + ) + else + SliverList.builder( + itemCount: packSlugs.length, + itemBuilder: (BuildContext context, int packIndex) { + final pack = stickerPacks[packSlugs[packIndex]]!; + final filteredImagePackImageEntried = pack.images.entries + .toList(); + if (searchFilter?.isNotEmpty ?? false) { + filteredImagePackImageEntried.removeWhere( + (e) => + !(e.key.toLowerCase().contains( + searchFilter!.toLowerCase(), + ) || + (e.value.body?.toLowerCase().contains( + searchFilter!.toLowerCase(), + ) ?? + false)), + ); + } + final imageKeys = filteredImagePackImageEntried + .map((e) => e.key) + .toList(); + if (imageKeys.isEmpty) { + return const SizedBox.shrink(); + } + final packName = + pack.pack.displayName ?? packSlugs[packIndex]; + return Column( + children: [ + if (packIndex != 0) const SizedBox(height: 20), + if (packName != 'user') + ListTile( + leading: Avatar( + mxContent: pack.pack.avatarUrl, + name: packName, + client: widget.room.client, + ), + title: Text(packName), + ), + const SizedBox(height: 6), + GridView.builder( + padding: EdgeInsets.zero, + itemCount: imageKeys.length, + gridDelegate: + const SliverGridDelegateWithMaxCrossAxisExtent( + maxCrossAxisExtent: 84, + mainAxisSpacing: 8.0, + crossAxisSpacing: 8.0, + ), + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + itemBuilder: (BuildContext context, int imageIndex) { + final image = pack.images[imageKeys[imageIndex]]!; + return Tooltip( + message: image.body ?? imageKeys[imageIndex], + child: InkWell( + radius: AppConfig.borderRadius, + key: ValueKey(image.url.toString()), + onTap: () { + // copy the image + final imageCopy = + ImagePackImageContent.fromJson( + image.toJson().copy(), + ); + // set the body, if it doesn't exist, to the key + imageCopy.body ??= imageKeys[imageIndex]; + widget.onSelected(imageCopy); + }, + child: AbsorbPointer( + absorbing: true, + child: MxcImage( + uri: image.url, + fit: BoxFit.contain, + width: 128, + height: 128, + animated: true, + isThumbnail: false, + ), + ), + ), + ); + }, + ), + ], + ); + }, + ), + ], + ), + ), + ); + } +} diff --git a/lib/pages/chat/trust_user_key_dialog.dart b/lib/pages/chat/trust_user_key_dialog.dart new file mode 100644 index 0000000..850ea6d --- /dev/null +++ b/lib/pages/chat/trust_user_key_dialog.dart @@ -0,0 +1,163 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/key_verification/key_verification_dialog.dart'; +import 'package:tatchat/utils/beautify_string_extension.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/adaptive_dialog_action.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/dialog_text_field.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +Future showTrustUserInRoomDialog(BuildContext context, Room room) async { + if (!room.encrypted) return true; + + final users = await room.requestParticipants(); + if (!context.mounted) return false; + + users.removeWhere((user) { + if (user.id == room.client.userID) return true; + final keys = room.client.userDeviceKeys[user.id]; + final masterKey = keys?.masterKey; + + if (keys == null || + masterKey == null || + masterKey.verified || + masterKey.trustOnFirstUseSince != null) { + return true; + } + return false; + }); + + if (users.isEmpty) return true; + + final l10n = L10n.of(context); + final theme = Theme.of(context); + + final action = await showAdaptiveDialog<_Action>( + context: context, + builder: (context) => AlertDialog.adaptive( + title: Center( + child: Icon( + Icons.lock_outlined, + size: 32, + color: theme.colorScheme.primary, + ), + ), + content: ConstrainedBox( + constraints: BoxConstraints(maxWidth: 128), + child: SelectionArea( + child: SingleChildScrollView( + child: Column( + crossAxisAlignment: .stretch, + mainAxisSize: .min, + children: [ + const SizedBox(height: 8), + Center( + child: Text( + users.length == 1 + ? l10n.messageCanOnlyBeReadByUser + : l10n.messageCanOnlyBeReadByUsers, + style: TextStyle(fontSize: 16), + textAlign: .center, + ), + ), + const SizedBox(height: 16), + for (final user in users) ...[ + Row( + children: [ + Avatar( + name: user.calcDisplayname(), + mxContent: user.avatarUrl, + size: 14, + ), + const SizedBox(width: 4), + Expanded( + child: Text( + user.calcDisplayname(), + style: theme.textTheme.labelSmall, + maxLines: 1, + textAlign: TextAlign.start, + ), + ), + ], + ), + Builder( + builder: (context) { + final controller = TextEditingController( + text: l10n.publicKey( + room + .client + .userDeviceKeys[user.id] + ?.masterKey + ?.publicKey + ?.beautifiedOneLine ?? + '???', + ), + ); + return DialogTextField( + controller: controller, + textStyle: theme.textTheme.labelSmall, + readOnly: true, + maxLines: 3, + ); + }, + ), + ], + ], + ), + ), + ), + ), + actions: [ + AdaptiveDialogAction( + autofocus: true, + bigButtons: true, + onPressed: () { + for (final user in users) { + room.client.userDeviceKeys[user.id]?.masterKey?.trustOnFirstUse(); + } + Navigator.of(context).pop(_Action.allow); + }, + child: Text(L10n.of(context).continueText), + ), + if (room.isDirectChat) + AdaptiveDialogAction( + bigButtons: true, + onPressed: () => Navigator.of(context).pop(_Action.verification), + child: Text(L10n.of(context).interactiveVerification), + ), + AdaptiveDialogAction( + bigButtons: true, + onPressed: () => Navigator.of(context).pop(_Action.deny), + child: Text(l10n.cancel), + ), + ], + ), + ); + + if (action == null) return false; + + switch (action) { + case _Action.allow: + for (final user in users) { + room.client.userDeviceKeys[user.id]?.masterKey?.trustOnFirstUse(); + } + case _Action.deny: + return false; + case _Action.verification: + final req = await room.client.userDeviceKeys[room.directChatMatrixID] + ?.startVerification(); + if (req == null) return false; + if (!context.mounted) return false; + final success = await KeyVerificationDialog(request: req).show(context); + return success == true; + } + + return true; +} + +enum _Action { allow, deny, verification } diff --git a/lib/pages/chat/typing_indicators.dart b/lib/pages/chat/typing_indicators.dart new file mode 100644 index 0000000..78983be --- /dev/null +++ b/lib/pages/chat/typing_indicators.dart @@ -0,0 +1,103 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/pages/chat/chat.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:tatchat/widgets/typing_animation.dart'; +import 'package:material_ui/material_ui.dart'; + +class TypingIndicators extends StatelessWidget { + final ChatController controller; + const TypingIndicators(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + const avatarSize = Avatar.defaultSize / 2; + + return StreamBuilder( + stream: controller.room.client.onSync.stream.where( + (syncUpdate) => + syncUpdate.rooms?.join?[controller.room.id]?.ephemeral?.any( + (ephemeral) => ephemeral.type == 'm.typing', + ) ?? + false, + ), + builder: (context, _) { + final typingUsers = controller.room.typingUsers + ..removeWhere((u) => u.stateKey == Matrix.of(context).client.userID); + + return Container( + width: double.infinity, + alignment: Alignment.center, + child: AnimatedContainer( + constraints: const BoxConstraints( + maxWidth: FluffyThemes.maxTimelineWidth, + ), + height: typingUsers.isEmpty ? 0 : avatarSize + 8, + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + alignment: + controller.timeline!.events.isNotEmpty && + controller.timeline!.events.first.senderId == + Matrix.of(context).client.userID + ? Alignment.topRight + : Alignment.topLeft, + clipBehavior: Clip.hardEdge, + decoration: const BoxDecoration(), + padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 4.0), + child: Row( + children: [ + Container( + alignment: Alignment.center, + height: avatarSize, + width: Avatar.defaultSize, + child: Stack( + children: [ + if (typingUsers.isNotEmpty) + Avatar( + size: avatarSize, + mxContent: typingUsers.first.avatarUrl, + name: typingUsers.first.calcDisplayname(), + ), + if (typingUsers.length == 2) + Padding( + padding: const EdgeInsets.only(left: 16), + child: Avatar( + size: avatarSize, + mxContent: typingUsers.length == 2 + ? typingUsers.last.avatarUrl + : null, + name: typingUsers.length == 2 + ? typingUsers.last.calcDisplayname() + : '+${typingUsers.length - 1}', + ), + ), + ], + ), + ), + const SizedBox(width: 8), + Material( + color: theme.colorScheme.surfaceContainerHigh, + borderRadius: const BorderRadius.all( + Radius.circular(AppConfig.borderRadius), + ), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 8), + child: typingUsers.isEmpty ? null : const TypingAnimation(), + ), + ), + ], + ), + ), + ); + }, + ); + } +} diff --git a/lib/pages/chat/utd_dialog.dart b/lib/pages/chat/utd_dialog.dart new file mode 100644 index 0000000..012d473 --- /dev/null +++ b/lib/pages/chat/utd_dialog.dart @@ -0,0 +1,76 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat/event_info_dialog.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/adaptive_dialog_action.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class UtdDialog extends StatelessWidget { + final Event event; + const UtdDialog(this.event, {super.key}); + + static Future show(BuildContext context, Event event) async { + event.requestKey(); + final action = await showAdaptiveDialog<_UtdDialogAction>( + barrierDismissible: true, + context: context, + builder: (_) => UtdDialog(event), + ); + if (action == null) return; + if (!context.mounted) return; + + switch (action) { + case _UtdDialogAction.info: + event.showInfoDialog(context); + case _UtdDialogAction.redact: + await showFutureLoadingDialog( + context: context, + future: () => event.redactEvent(), + ); + } + } + + @override + Widget build(BuildContext context) { + return AlertDialog.adaptive( + title: Text(L10n.of(context).whyIsThisMessageEncrypted), + content: ConstrainedBox( + constraints: BoxConstraints(maxHeight: 200), + child: Scrollbar( + thumbVisibility: true, + child: SingleChildScrollView( + child: SelectableText( + event.calcLocalizedBodyFallback(MatrixLocals(L10n.of(context))), + ), + ), + ), + ), + actions: [ + AdaptiveDialogAction( + onPressed: () => Navigator.of(context).pop(_UtdDialogAction.info), + child: Text(L10n.of(context).messageInfo), + ), + if (event.canRedact) + AdaptiveDialogAction( + onPressed: () => Navigator.of(context).pop(_UtdDialogAction.redact), + child: Text( + L10n.of(context).redactMessage, + style: TextStyle(color: Theme.of(context).colorScheme.error), + ), + ), + AdaptiveDialogAction( + onPressed: () => Navigator.of(context).pop(null), + child: Text(L10n.of(context).close), + ), + ], + ); + } +} + +enum _UtdDialogAction { info, redact } diff --git a/lib/pages/chat/utils/web_file_to_x_file.dart b/lib/pages/chat/utils/web_file_to_x_file.dart new file mode 100644 index 0000000..d83e100 --- /dev/null +++ b/lib/pages/chat/utils/web_file_to_x_file.dart @@ -0,0 +1,23 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; +import 'dart:typed_data'; + +import 'package:cross_file/cross_file.dart'; +import 'package:universal_html/universal_html.dart' as web; + +Future webToXFile(web.File file) async { + final reader = web.FileReader(); + reader.readAsArrayBuffer(file); + await reader.onLoad.first; + + return XFile( + file.relativePath ?? file.name, + name: file.name, + mimeType: file.type, + bytes: reader.result as Uint8List, + ); +} diff --git a/lib/pages/chat_access_settings/chat_access_settings_controller.dart b/lib/pages/chat_access_settings/chat_access_settings_controller.dart new file mode 100644 index 0000000..fbadaa2 --- /dev/null +++ b/lib/pages/chat_access_settings/chat_access_settings_controller.dart @@ -0,0 +1,359 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat_access_settings/chat_access_settings_page.dart'; +import 'package:tatchat/utils/localized_exception_extension.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_modal_action_popup.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/future_loading_dialog.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart' hide Visibility; +import 'package:matrix/matrix.dart'; + +class ChatAccessSettings extends StatefulWidget { + final String roomId; + const ChatAccessSettings({required this.roomId, super.key}); + + @override + State createState() => ChatAccessSettingsController(); +} + +class ChatAccessSettingsController extends State { + bool joinRulesLoading = false; + bool visibilityLoading = false; + bool historyVisibilityLoading = false; + bool guestAccessLoading = false; + Room get room => Matrix.of(context).client.getRoomById(widget.roomId)!; + Set get knownSpaceParents => { + ...room.client.rooms.where( + (space) => + space.isSpace && + space.spaceChildren.any((child) => child.roomId == room.id), + ), + ...room.spaceParents + .map((parent) => room.client.getRoomById(parent.roomId ?? '')) + .whereType(), + }; + + String get roomVersion => + room + .getState(EventTypes.RoomCreate)! + .content + .tryGet('room_version') ?? + 'Unknown'; + + /// Calculates which join rules are available based on the information on + /// https://spec.matrix.org/v1.11/rooms/#feature-matrix + List get availableJoinRules { + final joinRules = Set.from(JoinRules.values); + + final roomVersionInt = int.tryParse(roomVersion); + + // Knock is only supported for rooms up from version 7: + if (roomVersionInt != null && roomVersionInt <= 6) { + joinRules.remove(JoinRules.knock); + } + + // Restricted is only supported for rooms up from version 8: + if (roomVersionInt != null && roomVersionInt <= 7) { + joinRules.remove(JoinRules.restricted); + } + + // Knock-Restricted is only supported for rooms up from version 10: + if (roomVersionInt != null && roomVersionInt <= 9) { + joinRules.remove(JoinRules.knockRestricted); + } + + if (knownSpaceParents.isEmpty) { + joinRules.remove(JoinRules.restricted); + joinRules.remove(JoinRules.knockRestricted); + } + + // If an unsupported join rule is the current join rule, display it: + final currentJoinRule = room.joinRules; + if (currentJoinRule != null) joinRules.add(currentJoinRule); + + return joinRules.toList(); + } + + Future setJoinRule(JoinRules? newJoinRules) async { + if (newJoinRules == null) return; + setState(() { + joinRulesLoading = true; + }); + + try { + await room.setJoinRules( + newJoinRules, + allowConditionRoomIds: + { + JoinRules.restricted, + JoinRules.knockRestricted, + }.contains(newJoinRules) + ? knownSpaceParents.map((parent) => parent.id).toList() + : null, + ); + } catch (e, s) { + Logs().w('Unable to change join rules', e, s); + if (mounted) { + ScaffoldMessenger.of( + context, + ).showSnackBar(SnackBar(content: Text(e.toLocalizedString(context)))); + } + } finally { + if (mounted) { + setState(() { + joinRulesLoading = false; + }); + } + } + } + + Future setHistoryVisibility( + HistoryVisibility? historyVisibility, + ) async { + if (historyVisibility == null) return; + setState(() { + historyVisibilityLoading = true; + }); + + try { + await room.setHistoryVisibility(historyVisibility); + } catch (e, s) { + Logs().w('Unable to change history visibility', e, s); + if (mounted) { + ScaffoldMessenger.of( + context, + ).showSnackBar(SnackBar(content: Text(e.toLocalizedString(context)))); + } + } finally { + if (mounted) { + setState(() { + historyVisibilityLoading = false; + }); + } + } + } + + Future setGuestAccess(GuestAccess? guestAccess) async { + if (guestAccess == null) return; + setState(() { + guestAccessLoading = true; + }); + + try { + await room.setGuestAccess(guestAccess); + } catch (e, s) { + Logs().w('Unable to change guest access', e, s); + if (mounted) { + ScaffoldMessenger.of( + context, + ).showSnackBar(SnackBar(content: Text(e.toLocalizedString(context)))); + } + } finally { + if (mounted) { + setState(() { + guestAccessLoading = false; + }); + } + } + } + + Future updateRoomAction() async { + final l10n = L10n.of(context); + final roomVersion = room + .getState(EventTypes.RoomCreate)! + .content + .tryGet('room_version'); + final capabilitiesResult = await showFutureLoadingDialog( + context: context, + future: () => room.client.getCapabilities(), + ); + final capabilities = capabilitiesResult.result; + if (capabilities == null) return; + if (!mounted) return; + final newVersion = await showModalActionPopup( + context: context, + title: l10n.replaceRoomWithNewerVersion, + cancelLabel: l10n.cancel, + actions: capabilities.mRoomVersions!.available.entries + .where((r) => r.key != roomVersion) + .map( + (version) => AdaptiveModalAction( + value: version.key, + label: + '${version.key} (${version.value.toString().split('.').last})', + ), + ) + .toList(), + ); + if (newVersion == null) return; + if (!mounted) return; + final confirmUpgrade = await showOkCancelAlertDialog( + context: context, + okLabel: l10n.yes, + cancelLabel: l10n.cancel, + title: l10n.areYouSure, + message: l10n.roomUpgradeDescription, + isDestructive: true, + ); + if (confirmUpgrade == OkCancelResult.cancel) { + return; + } + if (!mounted) return; + final result = await showFutureLoadingDialog( + context: context, + futureWithProgress: (onProgress) async { + final newRoomId = await room.client.upgradeRoom(room.id, newVersion); + var newRoom = room.client.getRoomById(newRoomId); + while (newRoom == null) { + await room.client.onSync.stream.first; + newRoom = room.client.getRoomById(newRoomId); + } + + if ({ + JoinRules.invite, + JoinRules.knock, + JoinRules.knockRestricted, + }.contains(room.joinRules)) { + final users = await room.requestParticipants([ + Membership.join, + Membership.invite, + ]); + users.removeWhere((user) => user.id == room.client.userID); + for (final (i, user) in users.indexed) { + try { + Logs().v('Inviting...', user.id); + await newRoom.invite(user.id); + onProgress(i / users.length); + } on MatrixException catch (e) { + final retryAfterMs = e.retryAfterMs; + if (e.error != MatrixError.M_LIMIT_EXCEEDED || + retryAfterMs == null) { + rethrow; + } + Logs().d('Limit exceeded. Retry after $retryAfterMs'); + await Future.delayed(Duration(milliseconds: retryAfterMs)); + await newRoom.invite(user.id); + onProgress(i / users.length); + } + } + } + }, + ); + if (result.error != null) return; + if (!mounted) return; + context.go('/rooms/${room.id}'); + } + + Future addAlias() async { + final l10n = L10n.of(context); + final domain = room.client.userID?.domain; + if (domain == null) { + throw Exception('userID or domain is null! This should never happen.'); + } + + final input = await showTextInputDialog( + context: context, + title: l10n.editRoomAliases, + prefixText: '#', + suffixText: domain, + hintText: l10n.alias, + ); + if (!mounted) return; + final aliasLocalpart = input?.trim(); + if (aliasLocalpart == null || aliasLocalpart.isEmpty) return; + final alias = '#$aliasLocalpart:$domain'; + + final result = await showFutureLoadingDialog( + context: context, + future: () => room.client.setRoomAlias(alias, room.id), + ); + if (result.error != null) return; + if (!mounted) return; + setState(() {}); + + if (!room.canChangeStateEvent(EventTypes.RoomCanonicalAlias)) return; + + final canonicalAliasConsent = await showOkCancelAlertDialog( + context: context, + title: l10n.setAsCanonicalAlias, + message: alias, + okLabel: l10n.yes, + cancelLabel: l10n.no, + ); + if (!mounted) return; + + final altAliases = + room + .getState(EventTypes.RoomCanonicalAlias) + ?.content + .tryGetList('alt_aliases') + ?.toSet() ?? + {}; + if (room.canonicalAlias.isNotEmpty) altAliases.add(room.canonicalAlias); + altAliases.add(alias); + if (canonicalAliasConsent == OkCancelResult.ok) { + altAliases.remove(alias); + } else { + altAliases.remove(room.canonicalAlias); + } + + await showFutureLoadingDialog( + context: context, + future: () => room.client + .setRoomStateWithKey(room.id, EventTypes.RoomCanonicalAlias, '', { + 'alias': canonicalAliasConsent == OkCancelResult.ok + ? alias + : room.canonicalAlias, + if (altAliases.isNotEmpty) 'alt_aliases': altAliases.toList(), + }), + ); + } + + Future deleteAlias(String alias) async { + await showFutureLoadingDialog( + context: context, + future: () => room.client.deleteRoomAlias(alias), + ); + setState(() {}); + } + + Future setChatVisibilityOnDirectory(bool? visibility) async { + if (visibility == null) return; + setState(() { + visibilityLoading = true; + }); + + try { + await room.client.setRoomVisibilityOnDirectory( + room.id, + visibility: visibility == true ? Visibility.public : Visibility.private, + ); + setState(() {}); + } catch (e, s) { + Logs().w('Unable to change visibility', e, s); + if (mounted) { + ScaffoldMessenger.of( + context, + ).showSnackBar(SnackBar(content: Text(e.toLocalizedString(context)))); + } + } finally { + if (mounted) { + setState(() { + visibilityLoading = false; + }); + } + } + } + + @override + Widget build(BuildContext context) { + return ChatAccessSettingsPageView(this); + } +} diff --git a/lib/pages/chat_access_settings/chat_access_settings_page.dart b/lib/pages/chat_access_settings/chat_access_settings_page.dart new file mode 100644 index 0000000..ecd64c7 --- /dev/null +++ b/lib/pages/chat_access_settings/chat_access_settings_page.dart @@ -0,0 +1,318 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat_access_settings/chat_access_settings_controller.dart'; +import 'package:tatchat/utils/tatu_share.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:tatchat/widgets/layouts/max_width_body.dart'; +import 'package:material_ui/material_ui.dart' hide Visibility; +import 'package:matrix/matrix.dart'; + +class ChatAccessSettingsPageView extends StatelessWidget { + final ChatAccessSettingsController controller; + const ChatAccessSettingsPageView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + final room = controller.room; + return Scaffold( + appBar: AppBar( + leading: const Center(child: BackButton()), + title: Text(L10n.of(context).accessAndVisibility), + ), + body: MaxWidthBody( + child: StreamBuilder( + stream: room.client.onRoomState.stream.where( + (update) => update.roomId == controller.room.id, + ), + builder: (context, snapshot) { + final canonicalAlias = room.canonicalAlias; + final altAliases = + room + .getState(EventTypes.RoomCanonicalAlias) + ?.content + .tryGetList('alt_aliases') ?? + []; + return Column( + mainAxisSize: .min, + children: [ + ListTile( + title: Text( + L10n.of(context).visibilityOfTheChatHistory, + style: TextStyle( + color: theme.colorScheme.secondary, + fontWeight: FontWeight.bold, + ), + ), + ), + RadioGroup( + groupValue: room.historyVisibility, + onChanged: + controller.historyVisibilityLoading || + !room.canChangeHistoryVisibility + ? (_) {} + : controller.setHistoryVisibility, + child: Column( + mainAxisSize: .min, + children: [ + for (final historyVisibility in HistoryVisibility.values) + RadioListTile.adaptive( + title: Text( + historyVisibility.getLocalizedString( + MatrixLocals(L10n.of(context)), + ), + ), + value: historyVisibility, + ), + ], + ), + ), + Divider(color: theme.dividerColor), + ListTile( + title: Text( + L10n.of(context).whoIsAllowedToJoinThisGroup, + style: TextStyle( + color: theme.colorScheme.secondary, + fontWeight: FontWeight.bold, + ), + ), + ), + RadioGroup( + groupValue: room.joinRules, + onChanged: controller.setJoinRule, + child: Column( + mainAxisSize: .min, + children: [ + for (final joinRule in controller.availableJoinRules) + if (joinRule != JoinRules.private) + RadioListTile.adaptive( + enabled: + !controller.joinRulesLoading && + room.canChangeJoinRules, + title: Text( + joinRule.localizedString( + L10n.of(context), + controller.knownSpaceParents, + ), + ), + value: joinRule, + ), + ], + ), + ), + Divider(color: theme.dividerColor), + if ({ + JoinRules.public, + JoinRules.knock, + }.contains(room.joinRules)) ...[ + ListTile( + title: Text( + L10n.of(context).areGuestsAllowedToJoin, + style: TextStyle( + color: theme.colorScheme.secondary, + fontWeight: FontWeight.bold, + ), + ), + ), + RadioGroup( + groupValue: room.guestAccess, + onChanged: controller.setGuestAccess, + child: Column( + mainAxisSize: .min, + children: [ + for (final guestAccess in GuestAccess.values) + RadioListTile.adaptive( + enabled: + !controller.guestAccessLoading && + room.canChangeGuestAccess, + title: Text( + guestAccess.getLocalizedString( + MatrixLocals(L10n.of(context)), + ), + ), + value: guestAccess, + ), + ], + ), + ), + Divider(color: theme.dividerColor), + ListTile( + title: Text( + L10n.of(context).publicChatAddresses, + style: TextStyle( + color: theme.colorScheme.secondary, + fontWeight: FontWeight.bold, + ), + ), + trailing: IconButton( + icon: const Icon(Icons.add_outlined), + tooltip: L10n.of(context).createNewAddress, + onPressed: controller.addAlias, + ), + ), + if (canonicalAlias.isNotEmpty) + _AliasListTile( + alias: canonicalAlias, + onDelete: + room.canChangeStateEvent( + EventTypes.RoomCanonicalAlias, + ) + ? () => controller.deleteAlias(canonicalAlias) + : null, + isCanonicalAlias: true, + ), + for (final alias in altAliases) + _AliasListTile( + alias: alias, + onDelete: + room.canChangeStateEvent( + EventTypes.RoomCanonicalAlias, + ) + ? () => controller.deleteAlias(alias) + : null, + ), + FutureBuilder( + future: room.client.getLocalAliases(room.id), + builder: (context, snapshot) { + final localAddresses = snapshot.data; + if (localAddresses == null) { + return const SizedBox.shrink(); + } + localAddresses.remove(room.canonicalAlias); + localAddresses.removeWhere(altAliases.contains); + return Column( + mainAxisSize: .min, + children: localAddresses + .map( + (alias) => _AliasListTile( + alias: alias, + published: false, + onDelete: () => controller.deleteAlias(alias), + ), + ) + .toList(), + ); + }, + ), + Divider(color: theme.dividerColor), + FutureBuilder( + future: room.client.getRoomVisibilityOnDirectory(room.id), + builder: (context, snapshot) => SwitchListTile.adaptive( + value: snapshot.data == Visibility.public, + title: Text( + L10n.of(context).chatCanBeDiscoveredViaSearchOnServer( + room.client.userID!.domain!, + ), + ), + onChanged: controller.setChatVisibilityOnDirectory, + ), + ), + ], + ListTile( + title: Text(L10n.of(context).globalChatId), + subtitle: SelectableText(room.id), + trailing: IconButton( + icon: const Icon(Icons.copy_outlined), + onPressed: () => TatuShare.share(room.id, context), + ), + ), + ListTile( + title: Text(L10n.of(context).roomVersion), + subtitle: SelectableText( + room + .getState(EventTypes.RoomCreate)! + .content + .tryGet('room_version') ?? + 'Unknown', + ), + trailing: room.canSendEvent(EventTypes.RoomTombstone) + ? IconButton( + icon: const Icon(Icons.upgrade_outlined), + onPressed: controller.updateRoomAction, + ) + : null, + ), + ], + ); + }, + ), + ), + ); + } +} + +class _AliasListTile extends StatelessWidget { + const _AliasListTile({ + required this.alias, + required this.onDelete, + this.isCanonicalAlias = false, + this.published = true, + }); + + final String alias; + final void Function()? onDelete; + final bool isCanonicalAlias; + final bool published; + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + return ListTile( + leading: isCanonicalAlias + ? const Icon(Icons.star) + : const Icon(Icons.link_outlined), + title: InkWell( + onTap: () => TatuShare.share('https://matrix.to/#/$alias', context), + child: SelectableText( + alias, + style: TextStyle( + decoration: TextDecoration.underline, + decorationColor: theme.colorScheme.primary, + color: theme.colorScheme.primary, + fontSize: 14, + ), + ), + ), + trailing: onDelete != null + ? IconButton( + color: theme.colorScheme.error, + icon: const Icon(Icons.delete_outlined), + onPressed: onDelete, + ) + : null, + ); + } +} + +extension JoinRulesDisplayString on JoinRules { + String localizedString(L10n l10n, Set spaceParents) { + switch (this) { + case JoinRules.public: + return l10n.anyoneCanJoin; + case JoinRules.invite: + return l10n.invitedUsersOnly; + case JoinRules.knock: + return l10n.usersMustKnock; + case JoinRules.private: + return l10n.noOneCanJoin; + case JoinRules.restricted: + return l10n.spaceMemberOf( + spaceParents + .map((space) => space.getLocalizedDisplayname(MatrixLocals(l10n))) + .join(', '), + ); + case JoinRules.knockRestricted: + return l10n.spaceMemberOfCanKnock( + spaceParents + .map((space) => space.getLocalizedDisplayname(MatrixLocals(l10n))) + .join(', '), + ); + } + } +} diff --git a/lib/pages/chat_details/chat_details.dart b/lib/pages/chat_details/chat_details.dart new file mode 100644 index 0000000..efcd206 --- /dev/null +++ b/lib/pages/chat_details/chat_details.dart @@ -0,0 +1,173 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:collection/collection.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat_details/chat_details_view.dart'; +import 'package:tatchat/pages/settings/settings.dart'; +import 'package:tatchat/utils/file_selector.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_modal_action_popup.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_text_input_dialog.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class ChatDetails extends StatefulWidget { + final String roomId; + final Widget? embeddedCloseButton; + + const ChatDetails({ + super.key, + required this.roomId, + this.embeddedCloseButton, + }); + + @override + ChatDetailsController createState() => ChatDetailsController(); +} + +class ChatDetailsController extends State { + bool displaySettings = false; + + void toggleDisplaySettings() => + setState(() => displaySettings = !displaySettings); + + String? get roomId => widget.roomId; + + Future setDisplaynameAction() async { + final l10n = L10n.of(context); + final scaffoldMessenger = ScaffoldMessenger.of(context); + final room = Matrix.of(context).client.getRoomById(roomId!)!; + final input = await showTextInputDialog( + context: context, + title: l10n.changeTheNameOfTheGroup, + okLabel: l10n.ok, + cancelLabel: l10n.cancel, + initialText: room.getLocalizedDisplayname(MatrixLocals(l10n)), + ); + if (input == null) return; + if (!mounted) return; + final success = await showFutureLoadingDialog( + context: context, + future: () => room.setName(input), + ); + if (!mounted) return; + if (success.error == null) { + scaffoldMessenger.showSnackBar( + SnackBar(content: Text(l10n.displaynameHasBeenChanged)), + ); + } + } + + Future setTopicAction() async { + final l10n = L10n.of(context); + final scaffoldMessenger = ScaffoldMessenger.of(context); + final room = Matrix.of(context).client.getRoomById(roomId!)!; + final input = await showTextInputDialog( + context: context, + title: l10n.setChatDescription, + okLabel: l10n.ok, + cancelLabel: l10n.cancel, + hintText: l10n.noChatDescriptionYet, + initialText: room.topic, + minLines: 4, + maxLines: 8, + ); + if (input == null) return; + if (!mounted) return; + final success = await showFutureLoadingDialog( + context: context, + future: () => room.setDescription(input), + ); + if (!mounted) return; + if (success.error == null) { + scaffoldMessenger.showSnackBar( + SnackBar(content: Text(l10n.chatDescriptionHasBeenChanged)), + ); + } + } + + Future setAvatarAction() async { + final l10n = L10n.of(context); + final room = Matrix.of(context).client.getRoomById(roomId!); + final actions = [ + if (PlatformInfos.isMobile) + AdaptiveModalAction( + value: AvatarAction.camera, + label: l10n.openCamera, + isDefaultAction: true, + icon: const Icon(Icons.camera_alt_outlined), + ), + AdaptiveModalAction( + value: AvatarAction.file, + label: l10n.openGallery, + icon: const Icon(Icons.photo_outlined), + ), + if (room?.avatar != null) + AdaptiveModalAction( + value: AvatarAction.remove, + label: l10n.delete, + isDestructive: true, + icon: const Icon(Icons.delete_outlined), + ), + ]; + final action = actions.length == 1 + ? actions.single.value + : await showModalActionPopup( + context: context, + title: l10n.editRoomAvatar, + cancelLabel: l10n.cancel, + actions: actions, + ); + if (action == null) return; + if (!mounted) return; + if (action == AvatarAction.remove) { + await showFutureLoadingDialog( + context: context, + future: () => room!.setAvatar(null), + ); + return; + } + MatrixFile file; + if (PlatformInfos.isMobile) { + final result = await ImagePicker().pickImage( + source: action == AvatarAction.camera + ? ImageSource.camera + : ImageSource.gallery, + imageQuality: 50, + ); + if (result == null) return; + file = MatrixFile(bytes: await result.readAsBytes(), name: result.path); + } else { + if (!mounted) return; + final picked = await selectFiles( + context, + allowMultiple: false, + type: FileType.image, + ); + final pickedFile = picked.firstOrNull; + if (pickedFile == null) return; + file = MatrixFile( + bytes: await pickedFile.readAsBytes(), + name: pickedFile.name, + ); + } + if (!mounted) return; + await showFutureLoadingDialog( + context: context, + future: () => room!.setAvatar(file), + ); + } + + static const fixedWidth = 360.0; + + @override + Widget build(BuildContext context) => ChatDetailsView(this); +} diff --git a/lib/pages/chat_details/chat_details_view.dart b/lib/pages/chat_details/chat_details_view.dart new file mode 100644 index 0000000..42c2302 --- /dev/null +++ b/lib/pages/chat_details/chat_details_view.dart @@ -0,0 +1,418 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat_details/chat_details.dart'; +import 'package:tatchat/pages/chat_details/participant_list_item.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:tatchat/utils/verified_room_extension.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:tatchat/widgets/chat_settings_popup_menu.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:tatchat/widgets/layouts/max_width_body.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:flutter_linkify/flutter_linkify.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../utils/url_launcher.dart'; +import '../../widgets/mxc_image_viewer.dart'; +import '../../widgets/qr_code_viewer.dart'; + +class ChatDetailsView extends StatelessWidget { + final ChatDetailsController controller; + + const ChatDetailsView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + final room = Matrix.of(context).client.getRoomById(controller.roomId!); + if (room == null) { + return Scaffold( + appBar: AppBar(title: Text(L10n.of(context).oopsSomethingWentWrong)), + body: Center( + child: Text(L10n.of(context).youAreNoLongerParticipatingInThisChat), + ), + ); + } + + final directChatMatrixID = room.directChatMatrixID; + final roomAvatar = room.avatar; + + return StreamBuilder( + stream: room.client.onRoomState.stream.where( + (update) => update.roomId == room.id, + ), + builder: (context, snapshot) { + var members = room.getParticipants().toList() + ..sort((b, a) => a.powerLevel.level.compareTo(b.powerLevel.level)); + members = members.take(10).toList(); + final actualMembersCount = + (room.summary.mInvitedMemberCount ?? 0) + + (room.summary.mJoinedMemberCount ?? 0); + final canRequestMoreMembers = members.length < actualMembersCount; + final iconColor = theme.textTheme.bodyLarge!.color; + final displayname = room.getLocalizedDisplayname( + MatrixLocals(L10n.of(context)), + ); + return Scaffold( + appBar: AppBar( + leading: + controller.widget.embeddedCloseButton ?? + const Center(child: BackButton()), + elevation: theme.appBarTheme.elevation, + actions: [ + if (room.canonicalAlias.isNotEmpty) + IconButton( + tooltip: L10n.of(context).share, + icon: const Icon(Icons.qr_code_rounded), + onPressed: () => + showQrCodeViewer(context, room.canonicalAlias), + ) + else if (directChatMatrixID != null) + IconButton( + tooltip: L10n.of(context).share, + icon: const Icon(Icons.qr_code_rounded), + onPressed: () => + showQrCodeViewer(context, directChatMatrixID), + ), + if (controller.widget.embeddedCloseButton == null) + ChatSettingsPopupMenu(room, false), + ], + title: Text(L10n.of(context).chatDetails), + backgroundColor: theme.appBarTheme.backgroundColor, + ), + body: MaxWidthBody( + child: ListView.builder( + physics: const NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: members.length + 1 + (canRequestMoreMembers ? 1 : 0), + itemBuilder: (BuildContext context, int i) => i == 0 + ? Column( + crossAxisAlignment: .stretch, + children: [ + Center( + child: Stack( + children: [ + Hero( + tag: + controller.widget.embeddedCloseButton != + null + ? 'embedded_content_banner' + : 'content_banner', + child: Avatar( + mxContent: room.avatar, + name: displayname, + size: Avatar.defaultSize * 2.5, + onTap: roomAvatar != null + ? () => showDialog( + context: context, + builder: (_) => + MxcImageViewer(roomAvatar), + ) + : null, + ), + ), + if (!room.isDirectChat && + room.canChangeStateEvent( + EventTypes.RoomAvatar, + )) + Positioned( + bottom: 0, + right: 0, + child: FloatingActionButton.small( + onPressed: controller.setAvatarAction, + heroTag: null, + child: const Icon( + Icons.camera_alt_outlined, + ), + ), + ), + ], + ), + ), + Padding( + padding: const EdgeInsets.all(8.0), + child: Center( + child: TextButton.icon( + onPressed: + room.isDirectChat || + !room.canChangeStateEvent( + EventTypes.RoomName, + ) + ? null + : controller.setDisplaynameAction, + icon: + room.isDirectChat || + !room.canChangeStateEvent( + EventTypes.RoomName, + ) + ? null + : Icon(Icons.edit_outlined, size: 16), + + style: TextButton.styleFrom( + foregroundColor: theme.colorScheme.onSurface, + iconColor: theme.colorScheme.onSurface, + disabledForegroundColor: + theme.colorScheme.onSurface, + ), + label: Row( + mainAxisSize: .min, + spacing: 4, + children: [ + if (room.allUsersVerified) + Icon( + Icons.verified, + color: Theme.of( + context, + ).colorScheme.primary, + size: 18, + ), + Text( + displayname, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + fontSize: 18, + fontWeight: FontWeight.normal, + ), + ), + ], + ), + ), + ), + ), + StreamBuilder( + stream: room.client.onSync.stream.where( + (s) => + s.accountData?.any( + (data) => data.type == 'm.push_rules', + ) ?? + false, + ), + builder: (context, _) => Wrap( + alignment: .center, + spacing: 16, + runSpacing: 16, + children: [ + _MainChatDetailsButton( + onPressed: () => + context.go('/rooms/${room.id}/search'), + label: L10n.of(context).search, + icon: Icons.search, + ), + _MainChatDetailsButton( + onPressed: () => context.push( + '/rooms/${room.id}/details/emotes', + ), + label: L10n.of(context).stickers, + icon: Icons.emoji_emotions_outlined, + ), + if (room.pushRuleState == PushRuleState.notify) + _MainChatDetailsButton( + onPressed: () => showFutureLoadingDialog( + context: context, + future: () => room.setPushRuleState( + PushRuleState.mentionsOnly, + ), + ), + label: L10n.of(context).mute, + icon: Icons.notifications_on_outlined, + ) + else + _MainChatDetailsButton( + onPressed: () => showFutureLoadingDialog( + context: context, + future: () => room.setPushRuleState( + PushRuleState.notify, + ), + ), + label: L10n.of(context).unmuteChat, + icon: Icons.notifications_off_outlined, + ), + ], + ), + ), + const SizedBox(height: 16), + if (room.canChangeStateEvent(EventTypes.RoomTopic) || + room.topic.isNotEmpty) ...[ + ListTile( + title: Text( + L10n.of(context).chatDescription, + style: TextStyle( + color: theme.colorScheme.secondary, + fontWeight: FontWeight.bold, + ), + ), + trailing: + room.canChangeStateEvent(EventTypes.RoomTopic) + ? IconButton( + onPressed: controller.setTopicAction, + tooltip: L10n.of( + context, + ).setChatDescription, + icon: const Icon(Icons.edit_outlined), + ) + : null, + ), + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 16.0, + ), + child: SelectableLinkify( + text: room.topic.isEmpty + ? L10n.of(context).noChatDescriptionYet + : room.topic, + textScaleFactor: MediaQuery.textScalerOf( + context, + ).scale(1), + options: const LinkifyOptions(humanize: false), + linkStyle: const TextStyle( + color: Colors.blueAccent, + decorationColor: Colors.blueAccent, + ), + style: TextStyle( + fontSize: 14, + fontStyle: room.topic.isEmpty + ? FontStyle.italic + : FontStyle.normal, + color: theme.textTheme.bodyMedium!.color, + decorationColor: + theme.textTheme.bodyMedium!.color, + ), + onOpen: (url) => + UrlLauncher(context, url.url).launchUrl(), + ), + ), + const SizedBox(height: 16), + ], + if (!room.isDirectChat) ...[ + Divider(color: theme.dividerColor), + ListTile( + leading: CircleAvatar( + backgroundColor: + theme.colorScheme.surfaceContainer, + foregroundColor: iconColor, + child: const Icon( + Icons.admin_panel_settings_outlined, + ), + ), + title: Text(L10n.of(context).accessAndVisibility), + subtitle: Text( + L10n.of(context).accessAndVisibilityDescription, + ), + onTap: () => context.push( + '/rooms/${room.id}/details/access', + ), + trailing: const Icon(Icons.chevron_right_outlined), + ), + ListTile( + title: Text(L10n.of(context).chatPermissions), + subtitle: Text( + L10n.of(context).whoCanPerformWhichAction, + ), + leading: CircleAvatar( + backgroundColor: + theme.colorScheme.surfaceContainer, + foregroundColor: iconColor, + child: const Icon(Icons.tune_outlined), + ), + trailing: const Icon(Icons.chevron_right_outlined), + onTap: () => context.push( + '/rooms/${room.id}/details/permissions', + ), + ), + ], + Divider(color: theme.dividerColor), + ListTile( + title: Text( + L10n.of( + context, + ).countParticipants(actualMembersCount), + style: TextStyle( + color: theme.colorScheme.secondary, + fontWeight: FontWeight.bold, + ), + ), + trailing: !room.isDirectChat && room.canInvite + ? TextButton.icon( + icon: Icon(Icons.add), + label: Text(L10n.of(context).invite), + onPressed: () => + context.go('/rooms/${room.id}/invite'), + ) + : null, + ), + ], + ) + : i < members.length + 1 + ? ParticipantListItem(members[i - 1]) + : ListTile( + title: Text( + L10n.of(context).loadCountMoreParticipants( + (actualMembersCount - members.length), + ), + ), + onTap: () => context.push( + '/rooms/${controller.roomId!}/details/members', + ), + trailing: const Icon(Icons.chevron_right_outlined), + ), + ), + ), + ); + }, + ); + } +} + +class _MainChatDetailsButton extends StatelessWidget { + final VoidCallback onPressed; + final String label; + final IconData icon; + + const _MainChatDetailsButton({ + required this.onPressed, + required this.label, + required this.icon, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + return Material( + color: theme.colorScheme.surfaceContainerHigh, + borderRadius: BorderRadius.circular(AppConfig.borderRadius), + child: InkWell( + onTap: onPressed, + borderRadius: BorderRadius.circular(AppConfig.borderRadius), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0), + child: Column( + crossAxisAlignment: .center, + mainAxisSize: .min, + children: [ + Icon(icon, color: theme.colorScheme.secondary), + SizedBox( + width: 64, + child: Text( + label, + maxLines: 1, + overflow: .ellipsis, + textAlign: .center, + style: TextStyle(color: theme.colorScheme.secondary), + ), + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/pages/chat_details/participant_list_item.dart b/lib/pages/chat_details/participant_list_item.dart new file mode 100644 index 0000000..27d8a68 --- /dev/null +++ b/lib/pages/chat_details/participant_list_item.dart @@ -0,0 +1,114 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/widgets/member_actions_popup_menu_button.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../widgets/avatar.dart'; + +class ParticipantListItem extends StatelessWidget { + final User user; + + const ParticipantListItem(this.user, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + final membershipBatch = switch (user.membership) { + Membership.ban => L10n.of(context).banned, + Membership.invite => L10n.of(context).invited, + Membership.join => null, + Membership.knock => L10n.of(context).knocking, + Membership.leave => L10n.of(context).leftTheChat, + }; + + final permissionBatch = switch (user.powerLevel.role) { + PowerLevelRole.user => null, + PowerLevelRole.moderator => L10n.of(context).moderator, + PowerLevelRole.admin => L10n.of(context).admin, + PowerLevelRole.owner => L10n.of(context).owner, + }; + + final isAdminOrOwner = + user.powerLevel.role == PowerLevelRole.admin || + user.powerLevel.role == PowerLevelRole.owner; + + return ListTile( + onTap: () => showMemberActionsPopupMenu(context: context, user: user), + title: Row( + children: [ + if (user.room.client.userDeviceKeys[user.id]?.masterKey?.verified == + true) + Padding( + padding: const EdgeInsets.only(right: 2.0), + child: Icon( + Icons.verified, + color: Theme.of(context).colorScheme.primary, + size: 16, + ), + ), + Expanded( + child: Text( + user.calcDisplayname(), + overflow: TextOverflow.ellipsis, + ), + ), + if (permissionBatch != null) + Container( + padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), + decoration: BoxDecoration( + color: isAdminOrOwner + ? theme.colorScheme.tertiary + : theme.colorScheme.tertiaryContainer, + borderRadius: BorderRadius.circular(AppConfig.borderRadius), + ), + child: Text( + permissionBatch, + style: theme.textTheme.labelSmall?.copyWith( + color: isAdminOrOwner + ? theme.colorScheme.onTertiary + : theme.colorScheme.onTertiaryContainer, + ), + ), + ), + membershipBatch == null + ? const SizedBox.shrink() + : Container( + padding: const EdgeInsets.symmetric( + vertical: 4, + horizontal: 8, + ), + margin: const EdgeInsets.symmetric(horizontal: 8), + decoration: BoxDecoration( + color: theme.colorScheme.secondaryContainer, + borderRadius: BorderRadius.circular(8), + ), + child: Center( + child: Text( + membershipBatch, + style: theme.textTheme.labelSmall?.copyWith( + color: theme.colorScheme.onSecondaryContainer, + ), + ), + ), + ), + ], + ), + subtitle: Text(user.id, maxLines: 1, overflow: TextOverflow.ellipsis), + leading: Opacity( + opacity: user.membership == Membership.join ? 1 : 0.5, + child: Avatar( + mxContent: user.avatarUrl, + name: user.calcDisplayname(), + presenceUserId: user.stateKey, + ), + ), + ); + } +} diff --git a/lib/pages/chat_encryption_settings/chat_encryption_settings.dart b/lib/pages/chat_encryption_settings/chat_encryption_settings.dart new file mode 100644 index 0000000..7765f1b --- /dev/null +++ b/lib/pages/chat_encryption_settings/chat_encryption_settings.dart @@ -0,0 +1,121 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat_encryption_settings/chat_encryption_settings_view.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/encryption.dart'; +import 'package:matrix/matrix.dart'; + +import '../key_verification/key_verification_dialog.dart'; + +class ChatEncryptionSettings extends StatefulWidget { + const ChatEncryptionSettings({super.key}); + + @override + ChatEncryptionSettingsController createState() => + ChatEncryptionSettingsController(); +} + +class ChatEncryptionSettingsController extends State { + String? get roomId => GoRouterState.of(context).pathParameters['roomid']; + + Room get room => Matrix.of(context).client.getRoomById(roomId!)!; + + Future unblock(DeviceKeys key) async { + if (key.blocked) { + await key.setBlocked(false); + } + } + + String? uncollapsedUserId; + + void uncollapse(String? userId) { + setState(() { + if (uncollapsedUserId == userId) { + uncollapsedUserId = null; + } else { + uncollapsedUserId = userId; + } + }); + } + + Future enableEncryption(_) async { + final l10n = L10n.of(context); + if (room.encrypted) { + showOkAlertDialog( + context: context, + title: l10n.sorryThatsNotPossible, + message: l10n.disableEncryptionWarning, + ); + return; + } + if (room.joinRules == JoinRules.public) { + showOkAlertDialog( + context: context, + title: l10n.sorryThatsNotPossible, + message: l10n.noEncryptionForPublicRooms, + ); + return; + } + if (!room.canChangeStateEvent(EventTypes.Encryption)) { + showOkAlertDialog( + context: context, + title: l10n.sorryThatsNotPossible, + message: l10n.noPermission, + ); + return; + } + final consent = await showOkCancelAlertDialog( + context: context, + title: l10n.areYouSure, + message: l10n.enableEncryptionWarning, + okLabel: l10n.yes, + cancelLabel: l10n.cancel, + ); + if (consent != OkCancelResult.ok) return; + if (!mounted) return; + await showFutureLoadingDialog( + context: context, + future: () => room.enableEncryption(), + ); + } + + Future startVerification() async { + final l10n = L10n.of(context); + final consent = await showOkCancelAlertDialog( + context: context, + title: l10n.verifyOtherUser, + message: l10n.verifyOtherUserDescription, + okLabel: l10n.ok, + cancelLabel: l10n.cancel, + ); + if (consent != OkCancelResult.ok) return; + if (!mounted) return; + final req = await room.client.userDeviceKeys[room.directChatMatrixID]! + .startVerification(); + req.onUpdate = () { + if (req.state == KeyVerificationState.done) { + setState(() {}); + } + }; + if (!mounted) return; + await KeyVerificationDialog(request: req).show(context); + } + + void toggleBlocked(DeviceKeys key) { + setState(() { + if (!key.blocked && key.verified) key.setVerified(false); + key.setBlocked(!key.blocked); + }); + } + + @override + Widget build(BuildContext context) => ChatEncryptionSettingsView(this); +} diff --git a/lib/pages/chat_encryption_settings/chat_encryption_settings_view.dart b/lib/pages/chat_encryption_settings/chat_encryption_settings_view.dart new file mode 100644 index 0000000..ba7e03a --- /dev/null +++ b/lib/pages/chat_encryption_settings/chat_encryption_settings_view.dart @@ -0,0 +1,246 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat_encryption_settings/chat_encryption_settings.dart'; +import 'package:tatchat/utils/beautify_string_extension.dart'; +import 'package:tatchat/utils/date_time_extension.dart'; +import 'package:tatchat/widgets/layouts/max_width_body.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:url_launcher/url_launcher_string.dart'; + +class ChatEncryptionSettingsView extends StatelessWidget { + final ChatEncryptionSettingsController controller; + + const ChatEncryptionSettingsView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + final room = controller.room; + return StreamBuilder( + stream: room.client.onSync.stream.where( + (s) => s.rooms?.join?[room.id] != null || s.deviceLists != null, + ), + builder: (context, _) => Scaffold( + appBar: AppBar( + leading: IconButton( + icon: const Icon(Icons.close_outlined), + onPressed: () => context.go('/rooms/${controller.roomId!}'), + ), + title: Text(L10n.of(context).encryption), + actions: [ + TextButton( + onPressed: () => launchUrlString(AppConfig.encryptionTutorial), + child: Text(L10n.of(context).help), + ), + ], + ), + body: MaxWidthBody( + child: Column( + mainAxisSize: .min, + children: [ + SwitchListTile( + contentPadding: EdgeInsets.symmetric(horizontal: 16), + title: Text(L10n.of(context).encryptThisChat), + value: room.encrypted, + onChanged: controller.enableEncryption, + ), + Divider(color: theme.dividerColor, height: 1), + if (room.isDirectChat && room.encrypted) ...[ + const SizedBox(height: 16), + ListTile( + title: Text(L10n.of(context).interactiveVerification), + subtitle: Text( + L10n.of(context).interactiveVerificationDescription, + style: TextStyle(fontSize: 11), + ), + ), + Padding( + padding: const EdgeInsets.only( + bottom: 16.0, + left: 16, + right: 16, + ), + child: SizedBox( + width: double.infinity, + child: OutlinedButton.icon( + style: OutlinedButton.styleFrom( + backgroundColor: theme.colorScheme.primaryContainer, + foregroundColor: theme.colorScheme.onPrimaryContainer, + side: BorderSide( + color: theme.colorScheme.onPrimaryContainer, + width: 1, + ), + ), + onPressed: controller.startVerification, + icon: const Icon(Icons.verified_outlined), + label: Text(L10n.of(context).verifyStart), + ), + ), + ), + Divider(color: theme.dividerColor, height: 1), + ], + if (room.encrypted) ...[ + // TODO: Display device keys + SelectionArea( + child: FutureBuilder( + future: room.requestParticipants(), + builder: (context, snapshot) { + final users = snapshot.data; + if (users == null) { + return Center( + child: CircularProgressIndicator.adaptive(), + ); + } + return Column( + children: users.map((user) { + final userDeviceKeys = + room.client.userDeviceKeys[user.id]; + final masterKey = userDeviceKeys?.masterKey; + final tofuSince = masterKey?.trustOnFirstUseSince; + return Column( + mainAxisSize: .min, + children: [ + ListTile( + leading: CircleAvatar( + child: Text( + (userDeviceKeys?.deviceKeys.length ?? 0) + .toString(), + ), + ), + title: Row( + children: [ + Expanded( + child: Text( + user.calcDisplayname(), + maxLines: 1, + overflow: .ellipsis, + ), + ), + ], + ), + subtitle: Column( + crossAxisAlignment: .start, + mainAxisSize: .min, + children: [ + Text( + user.id, + maxLines: 1, + overflow: .ellipsis, + style: TextStyle( + fontStyle: FontStyle.italic, + ), + ), + Text( + masterKey == null + ? L10n.of(context).noUserKeyFound + : masterKey.verified == true + ? L10n.of(context).verified + : tofuSince != null + ? L10n.of(context).knownSince( + tofuSince.localizedTime(context), + ) + : L10n.of(context).unverified, + style: TextStyle( + color: masterKey == null + ? theme.colorScheme.onErrorContainer + : masterKey.verified + ? Colors.green + : tofuSince != null + ? theme.colorScheme.primary + : null, + ), + ), + ], + ), + trailing: IconButton( + onPressed: () => + controller.uncollapse(user.id), + icon: Icon( + controller.uncollapsedUserId == user.id + ? Icons.keyboard_arrow_up_outlined + : Icons.keyboard_arrow_down_outlined, + ), + ), + ), + if (controller.uncollapsedUserId == user.id && + userDeviceKeys != null) ...[ + ...userDeviceKeys.deviceKeys.values.map(( + device, + ) { + final signedDevice = device + .hasValidSignatureChain( + verifiedOnly: false, + verifiedByTheirMasterKey: true, + ); + return ListTile( + title: Text( + device.verified + ? L10n.of(context).verified + : device.blocked + ? L10n.of(context).blocked + : !signedDevice + ? L10n.of(context).unsignedDevice + : L10n.of(context).signedDevice, + style: TextStyle( + color: device.verified + ? Colors.green + : device.blocked + ? theme.colorScheme.error + : !signedDevice + ? theme.colorScheme.onErrorContainer + : theme.colorScheme.primary, + ), + ), + subtitle: Text( + device.curve25519Key?.beautified ?? + L10n.of(context).noCurve25519KeyFound, + ), + trailing: IconButton( + icon: Icon(Icons.block_outlined), + style: IconButton.styleFrom( + foregroundColor: device.blocked + ? theme.colorScheme.error + : null, + ), + tooltip: device.blocked + ? L10n.of(context).unblockDevice + : L10n.of(context).blockDevice, + + onPressed: () => + controller.toggleBlocked(device), + ), + ); + }), + ], + Divider(color: theme.dividerColor, height: 1), + ], + ); + }).toList(), + ); + }, + ), + ), + ] else + Padding( + padding: const EdgeInsets.all(16.0), + child: Center( + child: Text( + L10n.of(context).encryptionNotEnabled, + style: const TextStyle(fontStyle: FontStyle.italic), + ), + ), + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/pages/chat_list/active_call_indicator.dart b/lib/pages/chat_list/active_call_indicator.dart new file mode 100644 index 0000000..8177df2 --- /dev/null +++ b/lib/pages/chat_list/active_call_indicator.dart @@ -0,0 +1,49 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/utils/matrix_live_kit_calls/matrix_live_kit_call.dart'; +import 'package:tatchat/widgets/pulsating_widget.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class ActiveCallIndicator extends StatelessWidget { + final Room room; + const ActiveCallIndicator({required this.room, super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + return PulsatingWidget( + spreadRadius: 3.0, + color: theme.colorScheme.error, + child: Material( + color: theme.colorScheme.error, + borderRadius: BorderRadius.circular(AppConfig.borderRadius), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 8.0), + child: Row( + spacing: 4.0, + mainAxisSize: .min, + children: [ + Icon( + switch (room.activeMatrixRtcCallIntent) { + .voice => Icons.video_call_outlined, + _ => Icons.mic_outlined, + }, + size: 16, + color: theme.colorScheme.onError, + ), + Text( + room.getActiveMatrixRtcMembers().length.toString(), + style: TextStyle(color: theme.colorScheme.onError), + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/pages/chat_list/chat_list.dart b/lib/pages/chat_list/chat_list.dart new file mode 100644 index 0000000..699d675 --- /dev/null +++ b/lib/pages/chat_list/chat_list.dart @@ -0,0 +1,1098 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; + +import 'package:collection/collection.dart'; +import 'package:cross_file/cross_file.dart'; +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat_list/chat_list_view.dart'; +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/platform_infos.dart'; +import 'package:tatchat/utils/show_scaffold_dialog.dart'; +import 'package:tatchat/utils/show_update_snackbar.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_modal_action_popup.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/avatar.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:tatchat/widgets/share_scaffold_dialog.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_callkit_incoming/entities/entities.dart'; +import 'package:flutter_callkit_incoming/flutter_callkit_incoming.dart'; +import 'package:flutter_shortcuts_new/flutter_shortcuts_new.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart' as sdk; +import 'package:matrix/matrix.dart'; +import 'package:receive_sharing_intent/receive_sharing_intent.dart'; + +import '../../../utils/account_bundles.dart'; +import '../../config/setting_keys.dart'; +import '../../utils/url_launcher.dart'; +import '../../widgets/matrix.dart'; + +enum ActiveFilter { allChats, unread, groups, messages, tag } + +extension LocalizedActiveFilter on ActiveFilter { + String toLocalizedString(BuildContext context) { + switch (this) { + case ActiveFilter.allChats: + return L10n.of(context).all; + case ActiveFilter.messages: + return L10n.of(context).messages; + case ActiveFilter.unread: + return L10n.of(context).unread; + case ActiveFilter.groups: + return L10n.of(context).groups; + case ActiveFilter.tag: + throw 'Tags should not directly be displayed!'; + } + } +} + +class ChatList extends StatefulWidget { + final String? activeChat; + final String? activeSpace; + final bool displayNavigationRail; + + const ChatList({ + super.key, + required this.activeChat, + this.activeSpace, + this.displayNavigationRail = false, + }); + + @override + ChatListController createState() => ChatListController(); +} + +class ChatListController extends State + with TickerProviderStateMixin, RouteAware { + StreamSubscription? _intentDataStreamSubscription; + + StreamSubscription? _intentFileStreamSubscription; + + StreamSubscription? _callEventSubscription; + + late ActiveFilter activeFilter; + String? activeTag; + + HomeTab homeTab = HomeTab.chats; + + void setHomeTab(HomeTab tab) { + if (tab == homeTab) return; + setState(() { + homeTab = tab; + }); + } + + String? _activeSpaceId; + + String? get activeSpaceId => _activeSpaceId; + + Future setActiveSpace(String spaceId) async { + await Matrix.of(context).client.getRoomById(spaceId)!.postLoad(); + if (!mounted) return; + if (!FluffyThemes.isColumnMode(context) && + !AppSettings.displayNavigationRail.value) { + await AppSettings.displayNavigationRail.setItem(true); + } + + setState(() { + _activeSpaceId = spaceId; + }); + } + + void clearActiveSpace() => setState(() { + _activeSpaceId = null; + }); + + void _onCallEvent(CallEvent? event) { + switch (event) { + case CallEventActionCallAccept(): + _joinCallWith(event.callKitParams); + break; + case CallEventActionCallEnded(): + final roomId = event.callKitParams.extra?.tryGet('roomId'); + if (roomId != null && + Matrix.of(context).activeCallRoomId.value == roomId) { + Matrix.of(context).activeCallRoomId.value = null; + } + break; + default: + break; + } + } + + Future onChatTap(Room room) async { + final l10n = L10n.of(context); + final scaffoldMessenger = ScaffoldMessenger.of(context); + if (room.membership == Membership.invite) { + final joinResult = await showFutureLoadingDialog( + context: context, + future: () async { + final waitForRoom = room.client.waitForRoomInSync( + room.id, + join: true, + ); + await room.join(); + await waitForRoom; + }, + exceptionContext: ExceptionContext.joinRoom, + ); + if (joinResult.error != null) return; + } + if (!mounted) return; + + if (room.membership == Membership.ban) { + scaffoldMessenger.showSnackBar( + SnackBar(content: Text(l10n.youHaveBeenBannedFromThisChat)), + ); + return; + } + + if (room.membership == Membership.leave) { + context.go('/rooms/archive/${room.id}'); + return; + } + + if (room.isSpace) { + setActiveSpace(room.id); + return; + } + + context.go('/rooms/${room.id}'); + } + + bool Function(Room) getRoomFilterByActiveFilter(ActiveFilter activeFilter) { + switch (activeFilter) { + case ActiveFilter.allChats: + return (room) => true; + case ActiveFilter.messages: + return (room) => !room.isSpace && room.isDirectChat; + case ActiveFilter.groups: + return (room) => !room.isSpace && !room.isDirectChat; + case ActiveFilter.unread: + return (room) => room.isUnreadOrInvited; + case ActiveFilter.tag: + return (room) => room.tags.keys.contains(activeTag); + } + } + + List get filteredRooms => Matrix.of( + context, + ).client.rooms.where(getRoomFilterByActiveFilter(activeFilter)).toList(); + + bool isSearchMode = false; + Future? publicRoomsResponse; + String? searchServer; + Timer? _coolDown; + SearchUserDirectoryResponse? userSearchResult; + QueryPublicRoomsResponse? roomSearchResult; + + bool isSearching = false; + static const String _serverStoreNamespace = 'im.fluffychat.search.server'; + + Future setServer() async { + final matrix = Matrix.of(context); + final l10n = L10n.of(context); + final newServer = await showTextInputDialog( + useRootNavigator: false, + title: l10n.changeTheHomeserver, + context: context, + okLabel: l10n.ok, + cancelLabel: l10n.cancel, + prefixText: 'https://', + hintText: matrix.client.homeserver?.host, + initialText: searchServer, + keyboardType: TextInputType.url, + autocorrect: false, + validator: (server) => + server.contains('.') == true ? null : l10n.invalidServerName, + ); + if (newServer == null) return; + if (!mounted) return; + matrix.store.setString(_serverStoreNamespace, newServer); + setState(() { + searchServer = newServer; + }); + _coolDown?.cancel(); + _coolDown = Timer(const Duration(milliseconds: 500), _search); + } + + final TextEditingController searchController = TextEditingController(); + final FocusNode searchFocusNode = FocusNode(); + + Future _search() async { + final client = Matrix.of(context).client; + final scaffoldMessenger = ScaffoldMessenger.of(context); + if (!isSearching) { + setState(() { + isSearching = true; + }); + } + SearchUserDirectoryResponse? userSearchResult; + QueryPublicRoomsResponse? roomSearchResult; + final searchQuery = searchController.text.trim(); + try { + roomSearchResult = await client.queryPublicRooms( + server: searchServer, + filter: PublicRoomQueryFilter(genericSearchTerm: searchQuery), + limit: 20, + ); + + if (searchQuery.isValidMatrixIdStrict() && + searchQuery.sigil == '#' && + roomSearchResult.chunk.any( + (room) => room.canonicalAlias == searchQuery, + ) == + false) { + final response = await client.getRoomIdByAlias(searchQuery); + final roomId = response.roomId; + if (roomId != null) { + roomSearchResult.chunk.add( + PublishedRoomsChunk( + name: searchQuery, + guestCanJoin: false, + numJoinedMembers: 0, + roomId: roomId, + worldReadable: false, + canonicalAlias: searchQuery, + ), + ); + } + } + userSearchResult = await client.searchUserDirectory( + searchController.text, + limit: 20, + ); + } catch (e, s) { + Logs().w('Searching has crashed', e, s); + if (!mounted) return; + scaffoldMessenger.showSnackBar( + SnackBar(content: Text(e.toLocalizedString(context))), + ); + } + if (!isSearchMode) return; + setState(() { + isSearching = false; + this.roomSearchResult = roomSearchResult; + this.userSearchResult = userSearchResult; + }); + } + + void onSearchEnter(String text, {bool globalSearch = true}) { + if (text.isEmpty) { + cancelSearch(unfocus: false); + return; + } + + setState(() { + isSearchMode = true; + }); + _coolDown?.cancel(); + if (globalSearch) { + _coolDown = Timer(const Duration(milliseconds: 500), _search); + } + } + + void openNavrail() { + setState(() { + AppSettings.displayNavigationRail.setItem( + !AppSettings.displayNavigationRail.value, + ); + }); + } + + void startSearch() { + setState(() { + isSearchMode = true; + }); + searchFocusNode.requestFocus(); + _coolDown?.cancel(); + _coolDown = Timer(const Duration(milliseconds: 500), _search); + } + + void cancelSearch({bool unfocus = true}) { + setState(() { + searchController.clear(); + isSearchMode = false; + roomSearchResult = userSearchResult = null; + isSearching = false; + }); + if (unfocus) searchFocusNode.unfocus(); + } + + BoxConstraints? snappingSheetContainerSize; + + final ScrollController scrollController = ScrollController(); + final ValueNotifier scrolledToTop = ValueNotifier(true); + + final StreamController _clientStream = StreamController.broadcast(); + + Stream get clientStream => _clientStream.stream; + + void addAccountAction() => context.go('/rooms/settings/account'); + + void _onScroll() { + final newScrolledToTop = scrollController.position.pixels <= 0; + if (newScrolledToTop != scrolledToTop.value) { + scrolledToTop.value = newScrolledToTop; + } + } + + Future editSpace(BuildContext context, String spaceId) async { + await Matrix.of(context).client.getRoomById(spaceId)!.postLoad(); + if (!context.mounted) return; + context.push('/rooms/$spaceId/details'); + } + + // Needs to match GroupsSpacesEntry for 'separate group' checking. + List get spaces => + Matrix.of(context).client.rooms.where((r) => r.isSpace).toList(); + + String? get activeChat => widget.activeChat; + + void _processIncomingSharedMedia(List files) { + files.removeWhere( + (file) => file.path.startsWith(AppConfig.deepLinkPrefix) == true, + ); + if (files.isEmpty) return; + + showScaffoldDialog( + context: context, + builder: (context) => ShareScaffoldDialog( + items: files.map((file) { + if ({SharedMediaType.text, SharedMediaType.url}.contains(file.type)) { + return TextShareItem(file.path); + } + return FileShareItem( + XFile( + file.path.replaceFirst('file://', ''), + mimeType: file.mimeType, + ), + ); + }).toList(), + ), + ); + } + + void _initReceiveSharingIntent() { + if (!PlatformInfos.isMobile) return; + + // For sharing images coming from outside the app while the app is in the memory + _intentFileStreamSubscription = ReceiveSharingIntent.instance + .getMediaStream() + .listen(_processIncomingSharedMedia, onError: print); + + // For sharing images coming from outside the app while the app is closed + ReceiveSharingIntent.instance.getInitialMedia().then( + _processIncomingSharedMedia, + ); + + if (PlatformInfos.isAndroid) { + final shortcuts = FlutterShortcuts(); + shortcuts.initialize().then( + (_) => shortcuts.listenAction((action) { + if (!mounted) return; + UrlLauncher(context, action).launchUrl(); + }), + ); + } + } + + void _joinCallWith(CallKitParams params) { + final roomId = params.extra?.tryGet('roomId'); + final clientName = params.extra?.tryGet('clientName'); + if (roomId != null) { + context.go('/rooms/$roomId?client=$clientName&action=call'); + } + } + + StreamSubscription? _onRoomTagUpdate; + + @override + void initState() { + _initReceiveSharingIntent(); + _activeSpaceId = widget.activeSpace; + + scrollController.addListener(_onScroll); + _waitForFirstSync(); + if (PlatformInfos.isMobile) { + _callEventSubscription = FlutterCallkitIncoming.onEvent.listen( + _onCallEvent, + ); + FlutterCallkitIncoming.activeCalls().then((calls) { + final params = calls.firstOrNull; + if (params == null) return; + _joinCallWith(params); + }); + } + + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) { + searchServer = Matrix.of( + context, + ).store.getString(_serverStoreNamespace); + Matrix.of(context).backgroundPush?.setupPush(context); + UpdateNotifier.showUpdateDialog(context); + } + + // Workaround for system UI overlay style not applied on app start + SystemChrome.setSystemUIOverlayStyle( + Theme.of(context).appBarTheme.systemOverlayStyle!, + ); + }); + + _updateRoomTags(); + _onRoomTagUpdate = Matrix.of(context).client.onSync.stream + .where( + (syncUpdate) => + syncUpdate.rooms?.join?.values.any( + (roomUpdate) => + roomUpdate.accountData?.any( + (accountData) => accountData.type == 'm.tag', + ) ?? + false, + ) ?? + false, + ) + .listen(_updateRoomTags); + + if (roomTags.containsKey(AppSettings.chatFilter.value)) { + activeFilter = ActiveFilter.tag; + activeTag = AppSettings.chatFilter.value; + } else { + activeFilter = + ActiveFilter.values.singleWhereOrNull( + (filter) => AppSettings.chatFilter.value == filter.name, + ) ?? + ActiveFilter.allChats; + } + + _processPushHelperCrashReport(); + + super.initState(); + } + + @override + void dispose() { + _intentDataStreamSubscription?.cancel(); + _intentFileStreamSubscription?.cancel(); + _callEventSubscription?.cancel(); + _onRoomTagUpdate?.cancel(); + scrollController.removeListener(_onScroll); + searchController.dispose(); + searchFocusNode.dispose(); + scrollController.dispose(); + scrolledToTop.dispose(); + _clientStream.close(); + super.dispose(); + } + + void _processPushHelperCrashReport() { + final store = Matrix.of(context).store; + final report = store.getStringList(AppConfig.pushHelperCrashReportKey); + if (report == null) return; + store.remove(AppConfig.pushHelperCrashReportKey); + ErrorReporter( + context, + 'Push Helper has been crashed', + ).onErrorCallback(report.first, StackTrace.fromString(report.last)); + } + + Future chatContextAction( + Room room, + BuildContext posContext, [ + Room? space, + ]) async { + final overlay = + Overlay.of(posContext).context.findRenderObject() as RenderBox; + + final button = posContext.findRenderObject() as RenderBox; + + final position = RelativeRect.fromRect( + Rect.fromPoints( + button.localToGlobal(const Offset(0, -65), ancestor: overlay), + button.localToGlobal( + button.size.bottomRight(Offset.zero) + const Offset(-50, 0), + ancestor: overlay, + ), + ), + Offset.zero & overlay.size, + ); + + final spacesWithPowerLevels = room.client.rooms + .where( + (space) => + space.isSpace && + space.canChangeStateEvent(EventTypes.SpaceChild) && + !space.spaceChildren.any((c) => c.roomId == room.id), + ) + .toList(); + + var action = await showMenu( + context: posContext, + position: position, + items: [ + if (space != null) + PopupMenuItem( + value: ChatContextAction.goToSpace, + child: Row( + mainAxisSize: .min, + children: [ + Avatar( + mxContent: space.avatar, + size: Avatar.defaultSize / 2, + name: space.getLocalizedDisplayname(), + ), + const SizedBox(width: 12), + Text( + L10n.of(context).goToSpace(space.getLocalizedDisplayname()), + ), + ], + ), + ), + if (room.membership == Membership.join) ...[ + PopupMenuItem( + value: ChatContextAction.mute, + child: Row( + mainAxisSize: .min, + children: [ + Icon( + room.pushRuleState == PushRuleState.notify + ? Icons.notifications_off_outlined + : Icons.notifications_off, + ), + const SizedBox(width: 12), + Text( + room.pushRuleState == PushRuleState.notify + ? L10n.of(context).muteChat + : L10n.of(context).unmuteChat, + ), + ], + ), + ), + PopupMenuItem( + value: ChatContextAction.markUnread, + child: Row( + mainAxisSize: .min, + children: [ + Icon( + room.markedUnread + ? Icons.mark_as_unread + : Icons.mark_as_unread_outlined, + ), + const SizedBox(width: 12), + Text( + room.markedUnread + ? L10n.of(context).markAsRead + : L10n.of(context).markAsUnread, + ), + ], + ), + ), + if (!room.isLowPriority) + PopupMenuItem( + value: ChatContextAction.favorite, + child: Row( + mainAxisSize: .min, + children: [ + Icon( + room.isFavourite ? Icons.push_pin : Icons.push_pin_outlined, + ), + const SizedBox(width: 12), + Text( + room.isFavourite + ? L10n.of(context).unpin + : L10n.of(context).pin, + ), + ], + ), + ), + ], + PopupMenuItem( + value: ChatContextAction.leave, + child: Row( + mainAxisSize: .min, + children: [ + Icon( + Icons.delete_outlined, + color: Theme.of(context).colorScheme.onErrorContainer, + ), + const SizedBox(width: 12), + Text( + room.membership == Membership.invite + ? L10n.of(context).delete + : L10n.of(context).leave, + style: TextStyle( + color: Theme.of(context).colorScheme.onErrorContainer, + ), + ), + ], + ), + ), + if (room.membership == Membership.invite) + PopupMenuItem( + value: ChatContextAction.block, + child: Row( + mainAxisSize: .min, + children: [ + Icon( + Icons.block_outlined, + color: Theme.of(context).colorScheme.onErrorContainer, + ), + const SizedBox(width: 12), + Text( + L10n.of(context).block, + style: TextStyle( + color: Theme.of(context).colorScheme.onErrorContainer, + ), + ), + ], + ), + ), + if (room.membership == Membership.join) + PopupMenuItem( + value: ChatContextAction.showMore, + child: Row( + mainAxisSize: .min, + children: [ + Icon(Icons.adaptive.more_outlined), + const SizedBox(width: 12), + Text(L10n.of(context).more), + ], + ), + ), + ], + ); + if (!posContext.mounted || !mounted) return; + if (action == ChatContextAction.showMore) { + action = await showMenu( + context: posContext, + position: position, + items: [ + if (!room.isFavourite) + PopupMenuItem( + value: ChatContextAction.lowPriority, + child: Row( + mainAxisSize: .min, + children: [ + Icon( + room.isLowPriority + ? Icons.low_priority + : Icons.low_priority_outlined, + ), + const SizedBox(width: 12), + Text( + room.isLowPriority + ? L10n.of(context).unsetLowPriority + : L10n.of(context).setLowPriority, + ), + ], + ), + ), + if (activeTag == null) + PopupMenuItem( + value: ChatContextAction.addTag, + child: Row( + mainAxisSize: .min, + children: [ + Icon(Icons.bookmark_add_outlined), + const SizedBox(width: 12), + Text(L10n.of(context).addTag), + ], + ), + ) + else + PopupMenuItem( + value: ChatContextAction.removeTag, + child: Row( + mainAxisSize: .min, + children: [ + Icon(Icons.bookmark_remove_outlined), + const SizedBox(width: 12), + Text(L10n.of(context).removeTag), + ], + ), + ), + if (spacesWithPowerLevels.isNotEmpty) + PopupMenuItem( + value: ChatContextAction.addToSpace, + child: Row( + mainAxisSize: .min, + children: [ + const Icon(Icons.group_work_outlined), + const SizedBox(width: 12), + Text(L10n.of(context).addToSpace), + ], + ), + ), + ], + ); + } + + if (action == null) return; + if (!mounted) return; + + switch (action) { + case ChatContextAction.goToSpace: + setActiveSpace(space!.id); + return; + case ChatContextAction.favorite: + await showFutureLoadingDialog( + context: context, + future: () => room.setFavourite(!room.isFavourite), + ); + return; + case ChatContextAction.markUnread: + await showFutureLoadingDialog( + context: context, + future: () => room.markUnread(!room.markedUnread), + ); + return; + case ChatContextAction.mute: + await showFutureLoadingDialog( + context: context, + future: () => room.setPushRuleState( + room.pushRuleState == PushRuleState.notify + ? PushRuleState.mentionsOnly + : PushRuleState.notify, + ), + ); + return; + case ChatContextAction.block: + final inviteEvent = room.getState( + EventTypes.RoomMember, + room.client.userID!, + ); + context.go( + '/rooms/settings/security/ignorelist', + extra: inviteEvent?.senderId, + ); + case ChatContextAction.leave: + final confirmed = await showOkCancelAlertDialog( + context: context, + title: L10n.of(context).areYouSure, + message: L10n.of(context).archiveRoomDescription, + okLabel: L10n.of(context).leave, + cancelLabel: L10n.of(context).cancel, + isDestructive: true, + ); + if (confirmed == OkCancelResult.cancel) return; + if (!mounted) return; + + await showFutureLoadingDialog(context: context, future: room.leave); + + return; + case ChatContextAction.addToSpace: + final space = await showModalActionPopup( + context: context, + title: L10n.of(context).space, + actions: spacesWithPowerLevels + .map( + (space) => AdaptiveModalAction( + value: space, + label: space.getLocalizedDisplayname( + MatrixLocals(L10n.of(context)), + ), + ), + ) + .toList(), + ); + if (space == null) return; + if (!mounted) return; + await showFutureLoadingDialog( + context: context, + future: () => space.setSpaceChild(room.id), + ); + case ChatContextAction.lowPriority: + await showFutureLoadingDialog( + context: context, + future: () => room.setLowPriority(!room.isLowPriority), + ); + return; + case ChatContextAction.addTag: + final existingTags = List.of(roomTags.keys); + existingTags.removeWhere(room.tags.containsKey); + String? tag; + if (existingTags.isNotEmpty) { + tag = await showModalActionPopup( + context: context, + actions: [ + ...existingTags.map((tag) { + final displayTag = tag.replaceFirst('u.', ''); + return AdaptiveModalAction( + label: displayTag, + value: displayTag, + ); + }), + AdaptiveModalAction( + label: L10n.of(context).createNewTag, + value: null, + ), + ], + ); + if (!mounted) return; + } + tag ??= await showTextInputDialog( + context: context, + title: L10n.of(context).addTag, + hintText: L10n.of(context).tagName, + ); + final newTag = tag; + if (!mounted) return; + if (newTag == null) return; + await showFutureLoadingDialog( + context: context, + future: () => room.addTag('u.$newTag'), + ); + return; + case ChatContextAction.removeTag: + await showFutureLoadingDialog( + context: context, + future: () => room.removeTag(activeTag!), + ); + return; + case ChatContextAction.showMore: + throw ('Should not be handled!'); + } + } + + Map roomTags = {}; + + void _updateRoomTags([_]) { + roomTags.clear(); + for (final room in Matrix.of(context).client.rooms) { + for (final tag in room.tags.keys) { + if (tag.startsWith('u.')) roomTags[tag] = (roomTags[tag] ?? 0) + 1; + } + } + setState(() { + if (activeTag != null && !roomTags.keys.contains(activeTag)) { + activeTag = null; + activeFilter = ActiveFilter.allChats; + } + }); + } + + Future setStatus() async { + final l10n = L10n.of(context); + final client = Matrix.of(context).client; + final currentPresence = await client.fetchCurrentPresence(client.userID!); + if (!mounted) return; + final input = await showTextInputDialog( + useRootNavigator: false, + context: context, + title: l10n.setStatus, + message: l10n.leaveEmptyToClearStatus, + okLabel: l10n.ok, + cancelLabel: l10n.cancel, + hintText: l10n.statusExampleMessage, + maxLines: 6, + minLines: 1, + maxLength: 255, + initialText: currentPresence.statusMsg, + ); + if (input == null) return; + if (!mounted) return; + await showFutureLoadingDialog( + context: context, + future: () => client.setPresence( + client.userID!, + PresenceType.online, + statusMsg: input, + ), + ); + } + + bool waitForFirstSync = false; + + Future _waitForFirstSync() async { + final router = GoRouter.of(context); + final client = Matrix.of(context).client; + await client.roomsLoading; + await client.accountDataLoading; + await client.userDeviceKeysLoading; + if (client.prevBatch == null) { + await client.onSyncStatus.stream.firstWhere( + (status) => status.status == SyncStatus.finished, + ); + + if (!mounted) return; + setState(() { + waitForFirstSync = true; + }); + } + if (!mounted) return; + setState(() { + waitForFirstSync = true; + }); + + if (client.userDeviceKeys[client.userID!]?.deviceKeys.values.any( + (device) => !device.verified && !device.blocked, + ) ?? + false) { + late final ScaffoldFeatureController controller; + final theme = Theme.of(context); + controller = ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + duration: const Duration(seconds: 15), + showCloseIcon: true, + backgroundColor: theme.colorScheme.errorContainer, + closeIconColor: theme.colorScheme.onErrorContainer, + content: Text( + L10n.of(context).oneOfYourDevicesIsNotVerified, + style: TextStyle(color: theme.colorScheme.onErrorContainer), + ), + action: SnackBarAction( + onPressed: () { + controller.close(); + router.go('/rooms/settings/devices'); + }, + textColor: theme.colorScheme.onErrorContainer, + label: L10n.of(context).settings, + ), + ), + ); + } + } + + void setActiveFilter(ActiveFilter filter, String? tag) { + if (filter == ActiveFilter.tag && tag == null) { + throw ('Must set a tag when setting filter to tags!'); + } + setState(() { + activeTag = tag; + activeFilter = filter; + }); + AppSettings.chatFilter.setItem( + filter == ActiveFilter.tag ? tag! : filter.name, + ); + } + + void setActiveClient(Client client) { + context.go('/rooms'); + setState(() { + activeFilter = ActiveFilter.allChats; + _activeSpaceId = null; + Matrix.of(context).setActiveClient(client); + }); + _clientStream.add(client); + } + + void setActiveBundle(String bundle) { + context.go('/rooms'); + setState(() { + _activeSpaceId = null; + Matrix.of(context).activeBundle = bundle; + if (!Matrix.of( + context, + ).currentBundle!.any((client) => client == Matrix.of(context).client)) { + Matrix.of( + context, + ).setActiveClient(Matrix.of(context).currentBundle!.first); + } + }); + } + + Future editBundlesForAccount( + String? userId, + String? activeBundle, + ) async { + final l10n = L10n.of(context); + final client = Matrix.of( + context, + ).widget.clients[Matrix.of(context).getClientIndexByMatrixId(userId!)]; + final action = await showModalActionPopup( + context: context, + title: L10n.of(context).editBundlesForAccount, + cancelLabel: L10n.of(context).cancel, + actions: [ + AdaptiveModalAction( + value: EditBundleAction.addToBundle, + label: L10n.of(context).addToBundle, + ), + if (activeBundle != client.userID) + AdaptiveModalAction( + value: EditBundleAction.removeFromBundle, + label: L10n.of(context).removeFromBundle, + ), + ], + ); + if (action == null) return; + switch (action) { + case EditBundleAction.addToBundle: + if (!mounted) return; + final bundle = await showTextInputDialog( + context: context, + title: l10n.bundleName, + hintText: l10n.bundleName, + ); + if (bundle == null || bundle.isEmpty || bundle.isEmpty) return; + if (!mounted) return; + await showFutureLoadingDialog( + context: context, + future: () => client.setAccountBundle(bundle), + ); + break; + case EditBundleAction.removeFromBundle: + if (!mounted) return; + await showFutureLoadingDialog( + context: context, + future: () => client.removeFromAccountBundle(activeBundle!), + ); + } + } + + bool get displayBundles => + Matrix.of(context).hasComplexBundles && + Matrix.of(context).accountBundles.keys.length > 1; + + String? get secureActiveBundle { + if (Matrix.of(context).activeBundle == null || + !Matrix.of( + context, + ).accountBundles.keys.contains(Matrix.of(context).activeBundle)) { + return Matrix.of(context).accountBundles.keys.first; + } + return Matrix.of(context).activeBundle; + } + + void resetActiveBundle() { + WidgetsBinding.instance.addPostFrameCallback((timeStamp) { + setState(() { + Matrix.of(context).activeBundle = null; + }); + }); + } + + @override + Widget build(BuildContext context) => ChatListView(this); + + Future dehydrate() => Matrix.of(context).dehydrateAction(context); +} + +enum EditBundleAction { addToBundle, removeFromBundle } + +enum ChatContextAction { + goToSpace, + favorite, + lowPriority, + addTag, + removeTag, + markUnread, + mute, + leave, + addToSpace, + block, + showMore, +} diff --git a/lib/pages/chat_list/chat_list_body.dart b/lib/pages/chat_list/chat_list_body.dart new file mode 100644 index 0000000..fd08e9a --- /dev/null +++ b/lib/pages/chat_list/chat_list_body.dart @@ -0,0 +1,338 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:cupertino_ui/cupertino_ui.dart'; +import 'package:tatchat/config/setting_keys.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/pages/chat_list/space_view.dart'; +import 'package:tatchat/utils/stream_extension.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/public_room_dialog.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../config/themes.dart'; +import '../../widgets/adaptive_dialogs/user_dialog.dart'; +import '../../widgets/matrix.dart'; +import 'chat_list_header.dart'; + +class ChatListViewBody extends StatelessWidget { + final ChatListController controller; + + const ChatListViewBody(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + final client = Matrix.of(context).client; + final activeSpace = controller.activeSpaceId; + if (activeSpace != null) { + return SpaceView( + key: ValueKey(activeSpace), + spaceId: activeSpace, + onBack: controller.clearActiveSpace, + onChatTab: controller.onChatTap, + activeChat: controller.activeChat, + ); + } + final spaces = client.rooms.where((r) => r.isSpace); + final spaceDelegateCandidates = {}; + for (final space in spaces) { + for (final spaceChild in space.spaceChildren) { + final roomId = spaceChild.roomId; + if (roomId == null) continue; + spaceDelegateCandidates[roomId] = space; + } + } + + final publicRooms = controller.roomSearchResult?.chunk + .where((room) => room.roomType != 'm.space') + .toList(); + final publicSpaces = controller.roomSearchResult?.chunk + .where((room) => room.roomType == 'm.space') + .toList(); + final userSearchResult = controller.userSearchResult; + const dummyChatCount = 4; + final filter = controller.searchController.text.toLowerCase(); + return StreamBuilder( + key: ValueKey(client.userID.toString()), + stream: client.onSync.stream + .where((s) => s.hasRoomUpdate) + .rateLimit(const Duration(seconds: 1)), + builder: (context, _) { + final rooms = controller.filteredRooms + .where( + (room) => + !AppSettings.hideRoomsInSpaces.value || + spaceDelegateCandidates[room.id] == null, + ) + .toList(); + + return CustomScrollView( + controller: controller.scrollController, + slivers: [ + ChatListHeader(controller: controller), + SliverList( + delegate: SliverChildListDelegate([ + if (controller.isSearchMode) ...[ + SearchTitle( + title: L10n.of(context).publicRooms, + icon: const Icon(Icons.explore_outlined), + ), + PublicRoomsHorizontalList(publicRooms: publicRooms), + SearchTitle( + title: L10n.of(context).publicSpaces, + icon: const Icon(Icons.workspaces_outlined), + ), + PublicRoomsHorizontalList(publicRooms: publicSpaces), + SearchTitle( + title: L10n.of(context).users, + icon: const Icon(Icons.group_outlined), + ), + AnimatedContainer( + clipBehavior: Clip.hardEdge, + decoration: const BoxDecoration(), + height: + userSearchResult == null || + userSearchResult.results.isEmpty + ? 0 + : 106, + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + child: userSearchResult == null + ? null + : ListView.builder( + scrollDirection: Axis.horizontal, + itemCount: userSearchResult.results.length, + itemBuilder: (context, i) => _SearchItem( + title: + userSearchResult.results[i].displayName ?? + userSearchResult + .results[i] + .userId + .localpart ?? + L10n.of(context).unknownDevice, + avatar: userSearchResult.results[i].avatarUrl, + onPressed: () => UserDialog.show( + context: context, + profile: userSearchResult.results[i], + ), + ), + ), + ), + ], + if (client.rooms.isNotEmpty && !controller.isSearchMode) + Container( + height: 36 + 8 + 8, + padding: EdgeInsets.symmetric(vertical: 8), + child: ListView( + padding: const EdgeInsets.symmetric(horizontal: 12.0), + shrinkWrap: true, + scrollDirection: Axis.horizontal, + children: [ + ...ActiveFilter.values + .where((filter) => filter != ActiveFilter.tag) + .map( + (filter) => Padding( + padding: const EdgeInsets.symmetric( + horizontal: 4.0, + ), + child: Center( + child: FilterChip( + selected: filter == controller.activeFilter, + onSelected: (_) => controller + .setActiveFilter(filter, null), + label: Text( + filter.toLocalizedString(context), + ), + ), + ), + ), + ), + ...controller.roomTags.entries.map( + (entry) => Padding( + padding: const EdgeInsets.symmetric( + horizontal: 4.0, + ), + child: Center( + child: FilterChip( + selected: entry.key == controller.activeTag, + onSelected: (_) => controller.setActiveFilter( + ActiveFilter.tag, + entry.key, + ), + label: Text(entry.key.replaceFirst('u.', '')), + ), + ), + ), + ), + ], + ), + ), + if (controller.isSearchMode) + SearchTitle( + title: L10n.of(context).chats, + icon: const Icon(Icons.forum_outlined), + ), + if (client.prevBatch != null && + rooms.isEmpty && + !controller.isSearchMode) ...[ + Column( + mainAxisAlignment: .center, + children: [ + Stack( + alignment: Alignment.center, + children: [ + const Column( + mainAxisSize: .min, + children: [ + DummyChatListItem(opacity: 0.5, animate: false), + DummyChatListItem(opacity: 0.3, animate: false), + ], + ), + Icon( + CupertinoIcons.chat_bubble_text_fill, + size: 128, + color: theme.colorScheme.secondary, + ), + ], + ), + Padding( + padding: const EdgeInsets.all(16.0), + child: Text( + client.rooms.isEmpty + ? L10n.of(context).noChatsFoundHere + : L10n.of(context).noMoreChatsFound, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 18, + color: theme.colorScheme.secondary, + ), + ), + ), + ], + ), + ], + ]), + ), + if (client.prevBatch == null) + SliverList( + delegate: SliverChildBuilderDelegate( + (context, i) => DummyChatListItem( + opacity: (dummyChatCount - i) / dummyChatCount, + animate: true, + ), + childCount: dummyChatCount, + ), + ), + if (client.prevBatch != null) + SliverSafeArea( + top: false, + sliver: SliverList.builder( + itemCount: rooms.length, + itemBuilder: (BuildContext context, int i) { + final room = rooms[i]; + final space = spaceDelegateCandidates[room.id]; + return ChatListItem( + room, + space: space, + key: Key('chat_list_item_${room.id}'), + filter: filter, + onTap: () => controller.onChatTap(room), + onLongPress: (context) => + controller.chatContextAction(room, context, space), + activeChat: controller.activeChat == room.id, + ); + }, + ), + ), + ], + ); + }, + ); + } +} + +class PublicRoomsHorizontalList extends StatelessWidget { + const PublicRoomsHorizontalList({super.key, required this.publicRooms}); + + final List? publicRooms; + + @override + Widget build(BuildContext context) { + final publicRooms = this.publicRooms; + return AnimatedContainer( + clipBehavior: Clip.hardEdge, + decoration: const BoxDecoration(), + height: publicRooms == null || publicRooms.isEmpty ? 0 : 106, + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + child: publicRooms == null + ? null + : ListView.builder( + scrollDirection: Axis.horizontal, + itemCount: publicRooms.length, + itemBuilder: (context, i) => _SearchItem( + title: + publicRooms[i].name ?? + publicRooms[i].canonicalAlias?.localpart ?? + L10n.of(context).group, + avatar: publicRooms[i].avatarUrl, + onPressed: () => showAdaptiveDialog( + context: context, + barrierDismissible: true, + builder: (c) => PublicRoomDialog( + roomAlias: + publicRooms[i].canonicalAlias ?? publicRooms[i].roomId, + chunk: publicRooms[i], + ), + ), + ), + ), + ); + } +} + +class _SearchItem extends StatelessWidget { + final String title; + final Uri? avatar; + final void Function() onPressed; + + const _SearchItem({ + required this.title, + this.avatar, + required this.onPressed, + }); + + @override + Widget build(BuildContext context) => InkWell( + onTap: onPressed, + child: SizedBox( + width: 84, + child: Column( + mainAxisSize: .min, + children: [ + const SizedBox(height: 8), + Avatar(mxContent: avatar, name: title), + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + title, + maxLines: 2, + textAlign: TextAlign.center, + overflow: TextOverflow.ellipsis, + style: const TextStyle(fontSize: 12), + ), + ), + ], + ), + ), + ); +} diff --git a/lib/pages/chat_list/chat_list_header.dart b/lib/pages/chat_list/chat_list_header.dart new file mode 100644 index 0000000..5189704 --- /dev/null +++ b/lib/pages/chat_list/chat_list_header.dart @@ -0,0 +1,152 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat_list/chat_list.dart'; +import 'package:tatchat/pages/chat_list/client_chooser_button.dart'; +import 'package:tatchat/utils/sync_status_localization.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../widgets/matrix.dart'; + +class ChatListHeader extends StatelessWidget implements PreferredSizeWidget { + final ChatListController controller; + final bool globalSearch; + + const ChatListHeader({ + super.key, + required this.controller, + this.globalSearch = true, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final client = Matrix.of(context).client; + final isColumnMode = FluffyThemes.isColumnMode(context); + + return SliverAppBar( + floating: true, + toolbarHeight: 72, + pinned: isColumnMode, + scrolledUnderElevation: 0, + shape: isColumnMode + ? Border(bottom: BorderSide(color: theme.dividerColor, width: 1)) + : null, + backgroundColor: isColumnMode + ? theme.colorScheme.surface.withAlpha(240) + : Colors.transparent, + automaticallyImplyLeading: false, + title: StreamBuilder( + stream: client.onSyncStatus.stream, + builder: (context, snapshot) { + final status = + client.onSyncStatus.value ?? + const SyncStatusUpdate(SyncStatus.waitingForResponse); + final hide = + client.onSync.value != null && + status.status != SyncStatus.error && + client.prevBatch != null; + return TextField( + controller: controller.searchController, + focusNode: controller.searchFocusNode, + textInputAction: TextInputAction.search, + onChanged: (text) => + controller.onSearchEnter(text, globalSearch: globalSearch), + decoration: InputDecoration( + filled: true, + fillColor: theme.colorScheme.secondaryContainer, + border: OutlineInputBorder( + borderSide: BorderSide.none, + borderRadius: BorderRadius.circular(99), + ), + hintText: hide + ? L10n.of(context).searchChatsRooms + : status.calcLocalizedString(context), + hintStyle: TextStyle( + color: theme.colorScheme.onPrimaryContainer, + fontWeight: FontWeight.normal, + ), + + prefixIcon: hide + ? controller.isSearchMode + ? IconButton( + tooltip: L10n.of(context).cancel, + icon: const Icon(Icons.close_outlined), + onPressed: controller.cancelSearch, + color: theme.colorScheme.onPrimaryContainer, + ) + : isColumnMode || + (controller.spaces.isEmpty && + !AppSettings.displayNavigationRail.value) + ? IconButton( + tooltip: L10n.of(context).search, + onPressed: controller.startSearch, + icon: Icon( + Icons.search_outlined, + color: theme.colorScheme.onPrimaryContainer, + ), + ) + : IconButton( + tooltip: L10n.of(context).displayNavigationRail, + onPressed: controller.openNavrail, + icon: Icon( + Icons.menu, + color: theme.colorScheme.onPrimaryContainer, + ), + ) + : SizedBox( + width: 8, + height: 8, + child: Center( + child: CircularProgressIndicator.adaptive( + strokeWidth: 2, + value: status.progress, + ), + ), + ), + suffixIcon: controller.isSearchMode && globalSearch + ? controller.isSearching + ? const Padding( + padding: EdgeInsets.symmetric( + vertical: 10.0, + horizontal: 12, + ), + child: SizedBox.square( + dimension: 24, + child: CircularProgressIndicator.adaptive( + strokeWidth: 2, + ), + ), + ) + : TextButton.icon( + onPressed: controller.setServer, + style: TextButton.styleFrom( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(99), + ), + textStyle: const TextStyle(fontSize: 12), + ), + icon: const Icon(Icons.edit_outlined, size: 16), + label: Text( + controller.searchServer ?? + Matrix.of(context).client.homeserver!.host, + maxLines: 2, + ), + ) + : SizedBox(width: 0, child: ClientChooserButton(controller)), + ), + ); + }, + ), + ); + } + + @override + Size get preferredSize => const Size.fromHeight(56); +} diff --git a/lib/pages/chat_list/chat_list_item.dart b/lib/pages/chat_list/chat_list_item.dart new file mode 100644 index 0000000..4be209b --- /dev/null +++ b/lib/pages/chat_list/chat_list_item.dart @@ -0,0 +1,412 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat_list/active_call_indicator.dart'; +import 'package:tatchat/pages/chat_list/unread_bubble.dart'; +import 'package:tatchat/utils/matrix_live_kit_calls/matrix_live_kit_call.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:tatchat/utils/room_status_extension.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:tatchat/widgets/hover_builder.dart'; +import 'package:tatchat/widgets/typing_animation.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../config/themes.dart'; +import '../../utils/date_time_extension.dart'; +import '../../widgets/avatar.dart'; + +class ChatListItem extends StatelessWidget { + final Room room; + final Room? space; + final bool activeChat; + final void Function(BuildContext context)? onLongPress; + final void Function()? onForget; + final void Function() onTap; + final String? filter; + + const ChatListItem( + this.room, { + this.activeChat = false, + required this.onTap, + this.onLongPress, + this.onForget, + this.filter, + this.space, + super.key, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + final isMuted = room.pushRuleState != PushRuleState.notify; + final typingText = room.getLocalizedTypingText(context); + final lastEvent = room.lastEvent; + final ownMessage = lastEvent?.senderId == room.client.userID; + final directChatMatrixId = room.directChatMatrixID; + final isDirectChat = directChatMatrixId != null; + final hasNotifications = room.notificationCount > 0; + final backgroundColor = activeChat + ? theme.colorScheme.secondaryContainer + : null; + final displayname = room.getLocalizedDisplayname( + MatrixLocals(L10n.of(context)), + ); + final filter = this.filter; + if (filter != null && !displayname.toLowerCase().contains(filter)) { + return const SizedBox.shrink(); + } + + final needLastEventSender = + lastEvent != null && + room.getState(EventTypes.RoomMember, lastEvent.senderId) == null; + final space = this.space; + + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 8), + child: Material( + borderRadius: BorderRadius.circular(AppConfig.borderRadius), + clipBehavior: Clip.hardEdge, + color: backgroundColor, + child: FutureBuilder( + future: room.name.isEmpty ? room.loadHeroUsers() : null, + builder: (context, _) => HoverBuilder( + builder: (context, listTileHovered) => ListTile( + minVerticalPadding: 16, + contentPadding: const EdgeInsets.symmetric(horizontal: 8), + onLongPress: () => onLongPress?.call(context), + leading: HoverBuilder( + builder: (context, hovered) => AnimatedScale( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + scale: hovered ? 1.1 : 1.0, + child: SizedBox( + width: Avatar.defaultSize, + height: Avatar.defaultSize, + child: Stack( + children: [ + if (space != null) + Positioned( + top: 0, + left: 0, + child: Avatar( + shapeBorder: RoundedSuperellipseBorder( + side: BorderSide( + width: 2, + color: + backgroundColor ?? + theme.colorScheme.surface, + ), + borderRadius: BorderRadius.circular( + AppConfig.spaceBorderRadius * 0.75, + ), + ), + borderRadius: BorderRadius.circular( + AppConfig.spaceBorderRadius * 0.75, + ), + mxContent: space.avatar, + size: Avatar.defaultSize * 0.75, + name: space.getLocalizedDisplayname(), + onTap: () => onLongPress?.call(context), + ), + ), + Positioned( + bottom: 0, + right: 0, + child: Avatar( + shapeBorder: space == null + ? room.isSpace + ? RoundedSuperellipseBorder( + side: BorderSide( + width: 1, + color: theme.dividerColor, + ), + borderRadius: BorderRadius.circular( + AppConfig.spaceBorderRadius, + ), + ) + : null + : RoundedRectangleBorder( + side: BorderSide( + width: 2, + color: + backgroundColor ?? + theme.colorScheme.surface, + ), + borderRadius: BorderRadius.circular( + Avatar.defaultSize, + ), + ), + borderRadius: room.isSpace + ? BorderRadius.circular( + AppConfig.spaceBorderRadius, + ) + : null, + mxContent: room.avatar, + size: space != null + ? Avatar.defaultSize * 0.75 + : Avatar.defaultSize, + name: displayname, + presenceUserId: directChatMatrixId, + presenceBackgroundColor: backgroundColor, + onTap: () => onLongPress?.call(context), + ), + ), + Positioned( + top: 0, + right: 0, + child: GestureDetector( + onTap: () => onLongPress?.call(context), + child: AnimatedScale( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + scale: listTileHovered ? 1.0 : 0.0, + child: Material( + color: backgroundColor, + borderRadius: BorderRadius.circular(16), + child: const Icon( + Icons.arrow_drop_down_circle_outlined, + size: 18, + ), + ), + ), + ), + ), + ], + ), + ), + ), + ), + title: Row( + children: [ + Expanded( + child: Text( + displayname, + maxLines: 1, + overflow: TextOverflow.ellipsis, + softWrap: false, + ), + ), + if (isMuted) + const Padding( + padding: EdgeInsets.only(left: 4.0), + child: Icon(Icons.notifications_off_outlined, size: 16), + ), + if (room.isLowPriority) + Padding( + padding: EdgeInsets.only( + right: hasNotifications ? 4.0 : 0.0, + ), + child: Icon( + Icons.low_priority, + size: 16, + color: theme.colorScheme.primary, + ), + ), + if (room.isFavourite) + Padding( + padding: EdgeInsets.only( + right: hasNotifications ? 4.0 : 0.0, + ), + child: Icon( + Icons.push_pin, + size: 16, + color: theme.colorScheme.primary, + ), + ), + if (!room.isSpace && room.membership != Membership.invite) + Padding( + padding: const EdgeInsets.only(left: 4.0), + child: Text( + room.latestEventReceivedTime.localizedTimeShort( + context, + ), + style: TextStyle( + fontSize: 11, + fontWeight: room.hasNewMessages + ? FontWeight.bold + : null, + color: room.highlightCount >= 1 + ? theme.colorScheme.error + : room.hasNewMessages + ? theme.colorScheme.primary + : null, + ), + ), + ), + ], + ), + subtitle: Row( + children: [ + if (room.hasActiveMatrixRtcCall) + Padding( + padding: const EdgeInsets.only(right: 4.0), + child: ActiveCallIndicator(room: room), + ), + if (typingText.isEmpty && + ownMessage && + room.lastEvent?.status.isSending == true) ...[ + const SizedBox( + width: 16, + height: 16, + child: CircularProgressIndicator.adaptive(strokeWidth: 2), + ), + const SizedBox(width: 4), + ], + AnimatedSize( + clipBehavior: Clip.hardEdge, + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + child: typingText.isNotEmpty + ? Padding( + padding: const EdgeInsets.only(right: 4.0), + child: TypingAnimation(size: 4.0), + ) + : room.lastEvent?.relationshipType == + RelationshipTypes.thread + ? Container( + decoration: BoxDecoration( + border: Border.all( + color: theme.colorScheme.outline, + ), + borderRadius: BorderRadius.circular( + AppConfig.borderRadius, + ), + ), + padding: const EdgeInsets.symmetric( + horizontal: 8.0, + ), + margin: const EdgeInsets.only(right: 4.0), + child: Row( + mainAxisSize: .min, + children: [ + Icon( + Icons.message_outlined, + size: 12, + color: theme.colorScheme.outline, + ), + const SizedBox(width: 4), + Text( + L10n.of(context).thread, + style: TextStyle(fontSize: 11), + ), + ], + ), + ) + : const SizedBox.shrink(), + ), + Expanded( + child: room.isSpace && room.membership == Membership.join + ? Text( + L10n.of( + context, + ).countChats(room.spaceChildren.length), + ) + : typingText.isNotEmpty + ? Text( + typingText, + style: TextStyle(color: theme.colorScheme.primary), + maxLines: 1, + softWrap: false, + ) + : FutureBuilder( + key: ValueKey( + '${lastEvent?.eventId}_${lastEvent?.type}_${lastEvent?.redacted}', + ), + future: needLastEventSender + ? lastEvent.calcLocalizedBody( + MatrixLocals(L10n.of(context)), + hideReply: true, + hideEdit: true, + plaintextBody: true, + removeMarkdown: true, + withSenderNamePrefix: + (!isDirectChat || + directChatMatrixId != + room.lastEvent?.senderId), + ) + : null, + initialData: lastEvent?.calcLocalizedBodyFallback( + MatrixLocals(L10n.of(context)), + hideReply: true, + hideEdit: true, + plaintextBody: true, + removeMarkdown: true, + withSenderNamePrefix: + (!isDirectChat || + directChatMatrixId != + room.lastEvent?.senderId), + ), + builder: (context, snapshot) => Text( + room.membership == Membership.invite + ? room + .getState( + EventTypes.RoomMember, + room.client.userID!, + ) + ?.content + .tryGet('reason') ?? + (isDirectChat + ? L10n.of(context).newChatRequest + : L10n.of(context).inviteGroupChat) + : snapshot.data?.trim().replaceAll( + '\n', + ' ', + ) ?? + L10n.of(context).noMessagesYet, + softWrap: false, + maxLines: room.notificationCount >= 1 ? 2 : 1, + overflow: TextOverflow.ellipsis, + style: TextStyle( + decoration: room.lastEvent?.redacted == true + ? TextDecoration.lineThrough + : null, + ), + ), + ), + ), + const SizedBox(width: 8), + UnreadBubble(room: room), + ], + ), + onTap: onTap, + trailing: onForget == null + ? room.membership == Membership.invite + ? IconButton( + tooltip: L10n.of(context).declineInvitation, + icon: const Icon(Icons.delete_forever_outlined), + color: theme.colorScheme.error, + onPressed: () async { + final consent = await showOkCancelAlertDialog( + context: context, + title: L10n.of(context).declineInvitation, + message: L10n.of(context).areYouSure, + okLabel: L10n.of(context).yes, + isDestructive: true, + ); + if (consent != OkCancelResult.ok) return; + if (!context.mounted) return; + await showFutureLoadingDialog( + context: context, + future: room.leave, + ); + }, + ) + : null + : IconButton( + icon: const Icon(Icons.delete_outlined), + onPressed: onForget, + ), + ), + ), + ), + ), + ); + } +} diff --git a/lib/pages/chat_list/chat_list_view.dart b/lib/pages/chat_list/chat_list_view.dart new file mode 100644 index 0000000..107b11e --- /dev/null +++ b/lib/pages/chat_list/chat_list_view.dart @@ -0,0 +1,146 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:material_ui/material_ui.dart'; +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/pages/chat_list/chat_list.dart'; +import 'package:tatchat/pages/chat_list/navigation_rail.dart'; +import 'package:tatchat/pages/chat_list/start_chat_fab.dart'; +import 'package:tatchat/pages/chat_list/tabs/channels_tab.dart'; +import 'package:tatchat/pages/chat_list/tabs/chat_tab_bar.dart'; +import 'package:tatchat/pages/chat_list/tabs/home_tab.dart'; +import 'package:tatchat/pages/chat_list/tabs/murals_tab.dart'; +import 'package:tatchat/pages/chat_list/tabs/spaces_tab.dart'; + +import 'chat_list_body.dart'; + +class ChatListView extends StatelessWidget { + final ChatListController controller; + + const ChatListView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final oneColumnSpacesMode = + !FluffyThemes.isColumnMode(context) && + AppSettings.displayNavigationRail.value; + final isColumnMode = FluffyThemes.isColumnMode(context); + final homeTab = controller.homeTab; + final showSpacesMode = homeTab == HomeTab.chats; + final showNavigationRail = + showSpacesMode && + (isColumnMode || AppSettings.displayNavigationRail.value); + return PopScope( + canPop: !controller.isSearchMode && controller.activeSpaceId == null, + onPopInvokedWithResult: (pop, _) { + if (pop) return; + if (controller.activeSpaceId != null) { + controller.clearActiveSpace(); + return; + } + if (controller.isSearchMode) { + controller.cancelSearch(); + return; + } + }, + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + if (isColumnMode) + ChatTopTabBar( + currentTab: homeTab, + onTabSelected: controller.setHomeTab, + ), + Expanded( + child: Row( + children: [ + Material( + color: Theme.of(context).colorScheme.surface, + child: AnimatedSize( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + child: showNavigationRail + ? SpacesNavigationRail( + activeSpaceId: controller.activeSpaceId, + onGoToChats: controller.clearActiveSpace, + onGoToSpaceId: controller.setActiveSpace, + ) + : SizedBox( + width: 0, + height: MediaQuery.sizeOf(context).height, + ), + ), + ), + if (showNavigationRail && isColumnMode) + Container(width: 1, color: Theme.of(context).dividerColor), + + Expanded( + child: Scaffold( + backgroundColor: showSpacesMode && oneColumnSpacesMode + ? Theme.of(context).colorScheme.surfaceContainer + : null, + body: SafeArea( + top: showSpacesMode && oneColumnSpacesMode, + bottom: false, + left: false, + right: false, + child: IndexedStack( + index: homeTab.index, + children: [ + Material( + clipBehavior: showSpacesMode && oneColumnSpacesMode + ? Clip.hardEdge + : Clip.none, + borderRadius: + showSpacesMode && oneColumnSpacesMode + ? BorderRadius.only( + topLeft: Radius.circular( + AppConfig.borderRadius, + ), + ) + : null, + color: showSpacesMode && oneColumnSpacesMode + ? Theme.of(context).colorScheme.surface + : null, + child: ChatListViewBody(controller), + ), + ChannelsTab(controller), + SpacesTab(controller), + MuralsTab(), + ], + ), + ), + floatingActionButton: + showSpacesMode && + !controller.isSearchMode && + controller.activeSpaceId == null && + !isColumnMode + ? ValueListenableBuilder( + valueListenable: controller.scrolledToTop, + builder: (context, scrolledToTop, _) => StartChatFab( + extended: + scrolledToTop && + !AppSettings.displayNavigationRail.value, + ), + ) + : const SizedBox.shrink(), + bottomNavigationBar: isColumnMode + ? null + : ChatBottomTabBar( + currentTab: homeTab, + onTabSelected: controller.setHomeTab, + ), + ), + ), + ], + ), + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/pages/chat_list/client_chooser_button.dart b/lib/pages/chat_list/client_chooser_button.dart new file mode 100644 index 0000000..10a2df4 --- /dev/null +++ b/lib/pages/chat_list/client_chooser_button.dart @@ -0,0 +1,241 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:async/async.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart' hide Result; +import 'package:url_launcher/url_launcher_string.dart'; + +import 'package:tatchat/utils/tatu_share.dart'; +import 'chat_list.dart'; + +class ClientChooserButton extends StatelessWidget { + final ChatListController controller; + + const ClientChooserButton(this.controller, {super.key}); + + List> _bundleMenuItems(BuildContext context) { + final matrix = Matrix.of(context); + final bundles = matrix.accountBundles.keys.toList() + ..sort( + (a, b) => a!.isValidMatrixIdStrict() == b!.isValidMatrixIdStrict() + ? 0 + : a.isValidMatrixIdStrict() && !b.isValidMatrixIdStrict() + ? -1 + : 1, + ); + return >[ + PopupMenuItem( + value: SettingsAction.newGroup, + child: Row( + children: [ + const Icon(Icons.group_add_outlined), + const SizedBox(width: 18), + Text(L10n.of(context).createGroup), + ], + ), + ), + PopupMenuItem( + value: SettingsAction.setStatus, + child: Row( + children: [ + const Icon(Icons.edit_outlined), + const SizedBox(width: 18), + Text(L10n.of(context).setStatus), + ], + ), + ), + PopupMenuItem( + value: SettingsAction.invite, + child: Row( + children: [ + Icon(Icons.adaptive.share_outlined), + const SizedBox(width: 18), + Text(L10n.of(context).inviteContact), + ], + ), + ), + PopupMenuItem( + value: SettingsAction.archive, + child: Row( + children: [ + const Icon(Icons.archive_outlined), + const SizedBox(width: 18), + Text(L10n.of(context).archive), + ], + ), + ), + PopupMenuItem( + value: SettingsAction.settings, + child: Row( + children: [ + const Icon(Icons.settings_outlined), + const SizedBox(width: 18), + Text(L10n.of(context).settings), + ], + ), + ), + PopupMenuItem( + value: SettingsAction.support, + child: Row( + children: [ + Icon(Icons.favorite, color: Colors.red), + const SizedBox(width: 18), + Text(L10n.of(context).supportFluffyChat), + ], + ), + ), + const PopupMenuDivider(), + for (final bundle in bundles) ...[ + if (matrix.accountBundles[bundle]!.length != 1 || + matrix.accountBundles[bundle]!.single!.userID != bundle) + PopupMenuItem( + value: null, + child: Column( + crossAxisAlignment: .start, + mainAxisSize: .min, + children: [ + Text( + bundle!, + style: TextStyle( + color: Theme.of(context).textTheme.titleMedium!.color, + fontSize: 14, + ), + ), + const Divider(height: 1), + ], + ), + ), + ...matrix.accountBundles[bundle]! + .whereType() + .where((client) => client.isLogged()) + .map( + (client) => PopupMenuItem( + value: client, + child: FutureBuilder( + future: client.fetchOwnProfile(), + builder: (context, snapshot) { + final displayname = + snapshot.data?.displayName ?? client.userID!.localpart!; + return Row( + key: ValueKey('switch_account_$displayname'), + children: [ + Avatar( + mxContent: snapshot.data?.avatarUrl, + name: displayname, + size: 32, + ), + const SizedBox(width: 12), + Expanded( + child: Text( + displayname, + overflow: TextOverflow.ellipsis, + ), + ), + const SizedBox(width: 12), + IconButton( + icon: const Icon(Icons.edit_outlined), + onPressed: () => controller.editBundlesForAccount( + client.userID, + bundle, + ), + ), + ], + ); + }, + ), + ), + ), + ], + PopupMenuItem( + value: SettingsAction.addAccount, + child: Row( + children: [ + const Icon(Icons.person_add_outlined), + const SizedBox(width: 18), + Text(L10n.of(context).addAccount), + ], + ), + ), + ]; + } + + @override + Widget build(BuildContext context) { + final matrix = Matrix.of(context); + final client = Result(() => matrix.client).asValue?.value; + + var clientCount = 0; + matrix.accountBundles.forEach((key, value) => clientCount += value.length); + return FutureBuilder( + future: client?.isLogged() == true ? client?.fetchOwnProfile() : null, + builder: (context, snapshot) => Material( + clipBehavior: Clip.hardEdge, + borderRadius: BorderRadius.circular(99), + color: Colors.transparent, + child: PopupMenuButton( + key: Key('accounts_and_settings_buttons'), + tooltip: L10n.of(context).accountsAndSettings, + onSelected: (o) => _clientSelected(o, context), + itemBuilder: _bundleMenuItems, + icon: Avatar( + mxContent: snapshot.data?.avatarUrl, + name: snapshot.data?.displayName ?? client?.userID?.localpart, + size: 32, + ), + ), + ), + ); + } + + Future _clientSelected(Object object, BuildContext context) async { + if (object is Client) { + controller.setActiveClient(object); + } else if (object is String) { + controller.setActiveBundle(object); + } else if (object is SettingsAction) { + switch (object) { + case SettingsAction.addAccount: + if (!context.mounted) return; + context.go('/rooms/settings/addaccount'); + break; + case SettingsAction.newGroup: + context.go('/rooms/newgroup'); + break; + case SettingsAction.invite: + TatuShare.shareInviteLink(context); + break; + case SettingsAction.support: + launchUrlString( + 'https://ko-fi.com/post/How-can-I-support-FluffyChat-J2G325WE6I', + ); + break; + case SettingsAction.settings: + context.go('/rooms/settings'); + break; + case SettingsAction.archive: + context.go('/rooms/archive'); + break; + case SettingsAction.setStatus: + controller.setStatus(); + break; + } + } + } +} + +enum SettingsAction { + addAccount, + newGroup, + setStatus, + invite, + support, + settings, + archive, +} diff --git a/lib/pages/chat_list/dummy_chat_list_item.dart b/lib/pages/chat_list/dummy_chat_list_item.dart new file mode 100644 index 0000000..e71d189 --- /dev/null +++ b/lib/pages/chat_list/dummy_chat_list_item.dart @@ -0,0 +1,77 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:material_ui/material_ui.dart'; + +class DummyChatListItem extends StatelessWidget { + final double opacity; + final bool animate; + + const DummyChatListItem({ + required this.opacity, + required this.animate, + super.key, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final titleColor = theme.textTheme.bodyLarge!.color!.withAlpha(100); + final subtitleColor = theme.textTheme.bodyLarge!.color!.withAlpha(50); + return Opacity( + opacity: opacity, + child: ListTile( + leading: CircleAvatar( + backgroundColor: titleColor, + child: animate + ? CircularProgressIndicator( + strokeWidth: 1, + color: theme.textTheme.bodyLarge!.color, + ) + : const SizedBox.shrink(), + ), + title: Row( + children: [ + Expanded( + child: Container( + height: 14, + decoration: BoxDecoration( + color: titleColor, + borderRadius: BorderRadius.circular(3), + ), + ), + ), + const SizedBox(width: 36), + Container( + height: 14, + width: 14, + decoration: BoxDecoration( + color: subtitleColor, + borderRadius: BorderRadius.circular(14), + ), + ), + const SizedBox(width: 12), + Container( + height: 14, + width: 14, + decoration: BoxDecoration( + color: subtitleColor, + borderRadius: BorderRadius.circular(14), + ), + ), + ], + ), + subtitle: Container( + decoration: BoxDecoration( + color: subtitleColor, + borderRadius: BorderRadius.circular(3), + ), + height: 12, + margin: const EdgeInsets.only(right: 22), + ), + ), + ); + } +} diff --git a/lib/pages/chat_list/navi_rail_item.dart b/lib/pages/chat_list/navi_rail_item.dart new file mode 100644 index 0000000..1c9659b --- /dev/null +++ b/lib/pages/chat_list/navi_rail_item.dart @@ -0,0 +1,103 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:badges/badges.dart'; +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/widgets/hover_builder.dart'; +import 'package:tatchat/widgets/unread_rooms_badge.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../config/themes.dart'; + +class NaviRailItem extends StatelessWidget { + final String toolTip; + final bool isSelected; + final void Function() onTap; + final Widget icon; + final Widget? selectedIcon; + final bool Function(Room)? unreadBadgeFilter; + + const NaviRailItem({ + required this.toolTip, + required this.isSelected, + required this.onTap, + required this.icon, + this.selectedIcon, + this.unreadBadgeFilter, + super.key, + }); + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + final borderRadius = BorderRadius.circular(AppConfig.borderRadius); + final icon = isSelected ? selectedIcon ?? this.icon : this.icon; + final unreadBadgeFilter = this.unreadBadgeFilter; + return HoverBuilder( + builder: (context, hovered) { + return SizedBox( + height: 64, + width: FluffyThemes.navRailWidth, + child: Stack( + children: [ + Positioned( + top: 8, + bottom: 8, + left: 0, + child: AnimatedContainer( + width: isSelected + ? FluffyThemes.isColumnMode(context) + ? 8 + : 4 + : 0, + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + decoration: BoxDecoration( + color: theme.colorScheme.primary, + borderRadius: const BorderRadius.only( + topRight: Radius.circular(90), + bottomRight: Radius.circular(90), + ), + ), + ), + ), + Center( + child: AnimatedScale( + scale: hovered ? 1.1 : 1.0, + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + child: Material( + borderRadius: borderRadius, + color: isSelected + ? theme.colorScheme.secondaryContainer + : theme.colorScheme.surfaceContainerHighest, + child: Tooltip( + message: toolTip, + child: InkWell( + borderRadius: borderRadius, + onTap: onTap, + child: unreadBadgeFilter == null + ? icon + : UnreadRoomsBadge( + filter: unreadBadgeFilter, + badgePosition: BadgePosition.topEnd( + top: -12, + end: -8, + ), + child: icon, + ), + ), + ), + ), + ), + ), + ], + ), + ); + }, + ); + } +} diff --git a/lib/pages/chat_list/navigation_rail.dart b/lib/pages/chat_list/navigation_rail.dart new file mode 100644 index 0000000..1f43537 --- /dev/null +++ b/lib/pages/chat_list/navigation_rail.dart @@ -0,0 +1,137 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat_list/navi_rail_item.dart'; +import 'package:tatchat/pages/chat_list/start_chat_fab.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:tatchat/utils/stream_extension.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class SpacesNavigationRail extends StatelessWidget { + final String? activeSpaceId; + final void Function() onGoToChats; + final void Function(String) onGoToSpaceId; + + const SpacesNavigationRail({ + required this.activeSpaceId, + required this.onGoToChats, + required this.onGoToSpaceId, + super.key, + }); + + @override + Widget build(BuildContext context) { + final client = Matrix.of(context).client; + final coloredMode = !FluffyThemes.isColumnMode(context); + final theme = Theme.of(context); + return Material( + color: coloredMode ? theme.colorScheme.surfaceContainer : null, + child: SafeArea( + child: StreamBuilder( + key: ValueKey(client.userID.toString()), + stream: client.onSync.stream + .where((s) => s.hasRoomUpdate) + .rateLimit(const Duration(seconds: 1)), + builder: (context, _) { + final allSpaces = client.rooms + .where((room) => room.isSpace) + .toList(); + + return SizedBox( + width: FluffyThemes.isColumnMode(context) + ? FluffyThemes.navRailWidth + : FluffyThemes.navRailWidth - 8, + child: Column( + children: [ + Expanded( + child: ListView.builder( + padding: EdgeInsets.symmetric(vertical: 4), + scrollDirection: Axis.vertical, + itemCount: allSpaces.length + 2, + itemBuilder: (context, i) { + if (i == 0) { + return NaviRailItem( + isSelected: activeSpaceId == null, + onTap: onGoToChats, + icon: const Padding( + padding: EdgeInsets.all(12.0), + child: Icon(Icons.forum_outlined), + ), + selectedIcon: const Padding( + padding: EdgeInsets.all(12.0), + child: Icon(Icons.forum), + ), + toolTip: L10n.of(context).chats, + unreadBadgeFilter: (room) => true, + ); + } + i--; + if (i == allSpaces.length) { + return NaviRailItem( + isSelected: false, + onTap: () => context.go('/rooms/newspace'), + icon: const Padding( + padding: EdgeInsets.all(12.0), + child: Icon(Icons.add), + ), + toolTip: L10n.of(context).createNewSpace, + ); + } + final space = allSpaces[i]; + final displayname = allSpaces[i] + .getLocalizedDisplayname( + MatrixLocals(L10n.of(context)), + ); + final spaceChildrenIds = space.spaceChildren + .map((c) => c.roomId) + .toSet(); + return NaviRailItem( + toolTip: displayname, + isSelected: activeSpaceId == space.id, + onTap: () => onGoToSpaceId(allSpaces[i].id), + unreadBadgeFilter: (room) => + spaceChildrenIds.contains(room.id), + icon: Avatar( + mxContent: allSpaces[i].avatar, + name: displayname, + //size: 36, + shapeBorder: RoundedSuperellipseBorder( + side: BorderSide( + width: 1, + color: Theme.of(context).dividerColor, + ), + borderRadius: BorderRadius.circular( + AppConfig.spaceBorderRadius, + ), + ), + borderRadius: BorderRadius.circular( + AppConfig.spaceBorderRadius, + ), + ), + ); + }, + ), + ), + if (FluffyThemes.isColumnMode(context)) + Padding( + padding: const EdgeInsets.all(12.0), + child: StartChatFab(), + ), + ], + ), + ); + }, + ), + ), + ); + } +} diff --git a/lib/pages/chat_list/search_title.dart b/lib/pages/chat_list/search_title.dart new file mode 100644 index 0000000..e89b77e --- /dev/null +++ b/lib/pages/chat_list/search_title.dart @@ -0,0 +1,71 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:material_ui/material_ui.dart'; + +class SearchTitle extends StatelessWidget { + final String title; + final Widget icon; + final Widget? trailing; + final void Function()? onTap; + final Color? color; + + const SearchTitle({ + required this.title, + required this.icon, + this.trailing, + this.onTap, + this.color, + super.key, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + return Material( + shape: Border( + top: BorderSide(color: theme.dividerColor, width: 1), + bottom: BorderSide(color: theme.dividerColor, width: 1), + ), + color: color ?? theme.colorScheme.surface, + child: InkWell( + onTap: onTap, + splashColor: theme.colorScheme.surface, + child: Align( + alignment: Alignment.centerLeft, + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + child: IconTheme( + data: theme.iconTheme.copyWith(size: 16), + child: Row( + children: [ + icon, + const SizedBox(width: 16), + Text( + title, + textAlign: TextAlign.left, + style: TextStyle( + color: theme.colorScheme.onSurface, + fontSize: 12, + fontWeight: FontWeight.bold, + ), + ), + if (trailing != null) + Expanded( + child: Align( + alignment: Alignment.centerRight, + child: trailing, + ), + ), + ], + ), + ), + ), + ), + ), + ); + } +} diff --git a/lib/pages/chat_list/space_view.dart b/lib/pages/chat_list/space_view.dart new file mode 100644 index 0000000..48eed11 --- /dev/null +++ b/lib/pages/chat_list/space_view.dart @@ -0,0 +1,644 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; +import 'dart:convert'; + +import 'package:collection/collection.dart'; +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat_list/active_call_indicator.dart'; +import 'package:tatchat/pages/chat_list/unread_bubble.dart'; +import 'package:tatchat/utils/localized_exception_extension.dart'; +import 'package:tatchat/utils/matrix_live_kit_calls/matrix_live_kit_call.dart'; +import 'package:tatchat/utils/stream_extension.dart'; +import 'package:tatchat/utils/string_color.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:tatchat/widgets/hover_builder.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart' as sdk; +import 'package:matrix/matrix.dart'; + +enum SpaceChildAction { + mute, + unmute, + markAsUnread, + markAsRead, + removeFromSpace, + leave, +} + +enum SpaceActions { addChild, settings, leave } + +class SpaceView extends StatefulWidget { + final String spaceId; + final void Function() onBack; + final void Function(Room room) onChatTab; + final String? activeChat; + + const SpaceView({ + required this.spaceId, + required this.onBack, + required this.onChatTab, + required this.activeChat, + super.key, + }); + + @override + State createState() => _SpaceViewState(); +} + +class _SpaceViewState extends State { + final List _discoveredChildren = []; + final TextEditingController _filterController = TextEditingController(); + String? _nextBatch; + bool _noMoreRooms = false; + bool _isLoading = false; + + StreamSubscription? _childStateSub; + + @override + void initState() { + _loadHierarchy(); + _childStateSub = Matrix.of(context).client.onSync.stream + .where( + (syncUpdate) => + syncUpdate.rooms?.join?[widget.spaceId]?.timeline?.events?.any( + (event) => event.type == EventTypes.SpaceChild, + ) ?? + false, + ) + .listen(_loadHierarchy); + super.initState(); + } + + @override + void dispose() { + _childStateSub?.cancel(); + _filterController.dispose(); + super.dispose(); + } + + Future _loadHierarchy([_]) async { + final matrix = Matrix.of(context); + final room = matrix.client.getRoomById(widget.spaceId); + if (room == null) return; + + final cacheKey = 'spaces_history_cache${room.id}'; + if (_discoveredChildren.isEmpty) { + final cachedChildren = matrix.store.getStringList(cacheKey); + if (cachedChildren != null) { + try { + _discoveredChildren.addAll( + cachedChildren.map( + (jsonString) => + SpaceRoomsChunk$2.fromJson(jsonDecode(jsonString)), + ), + ); + } catch (e, s) { + Logs().e('Unable to json decode spaces hierarchy cache!', e, s); + matrix.store.remove(cacheKey); + } + } + } + + setState(() { + _isLoading = true; + }); + + try { + final hierarchy = await room.client.getSpaceHierarchy( + widget.spaceId, + suggestedOnly: false, + maxDepth: 2, + from: _nextBatch, + ); + if (!mounted) return; + setState(() { + if (_nextBatch == null) _discoveredChildren.clear(); + _nextBatch = hierarchy.nextBatch; + if (hierarchy.nextBatch == null) { + _noMoreRooms = true; + } + _discoveredChildren.addAll( + hierarchy.rooms.where((room) => room.roomId != widget.spaceId), + ); + _isLoading = false; + }); + + if (_nextBatch == null) { + matrix.store.setStringList( + cacheKey, + _discoveredChildren + .map((child) => jsonEncode(child.toJson())) + .toList(), + ); + } + } catch (e, s) { + Logs().w('Unable to load hierarchy', e, s); + if (!mounted) return; + ScaffoldMessenger.of( + context, + ).showSnackBar(SnackBar(content: Text(e.toLocalizedString(context)))); + setState(() { + _isLoading = false; + }); + } + } + + Future _joinChildRoom(SpaceRoomsChunk$2 item) async { + final client = Matrix.of(context).client; + final space = client.getRoomById(widget.spaceId); + final via = space?.spaceChildren + .firstWhereOrNull((child) => child.roomId == item.roomId) + ?.via; + final roomResult = await showFutureLoadingDialog( + context: context, + future: () async { + final waitForRoom = client.waitForRoomInSync(item.roomId, join: true); + await client.joinRoom(item.roomId, via: via); + await waitForRoom; + return client.getRoomById(item.roomId)!; + }, + ); + final room = roomResult.result; + if (room != null) widget.onChatTab(room); + } + + Future _onSpaceAction(SpaceActions action) async { + final space = Matrix.of(context).client.getRoomById(widget.spaceId); + + switch (action) { + case SpaceActions.settings: + await space?.postLoad(); + if (!mounted) return; + context.push('/rooms/${widget.spaceId}/details'); + break; + case SpaceActions.addChild: + context.go('/rooms/newgroup?space_id=${widget.spaceId}'); + break; + case SpaceActions.leave: + final confirmed = await showOkCancelAlertDialog( + context: context, + title: L10n.of(context).areYouSure, + message: L10n.of(context).archiveRoomDescription, + okLabel: L10n.of(context).leave, + cancelLabel: L10n.of(context).cancel, + isDestructive: true, + ); + if (!mounted) return; + if (confirmed != OkCancelResult.ok) return; + + final success = await showFutureLoadingDialog( + context: context, + future: () async => await space?.leave(), + ); + if (!mounted) return; + if (success.error != null) return; + widget.onBack(); + } + } + + Future _showSpaceChildEditMenu( + BuildContext posContext, + String roomId, + ) async { + final client = Matrix.of(context).client; + final space = client.getRoomById(widget.spaceId); + final room = client.getRoomById(roomId); + if (space == null) return; + final overlay = + Overlay.of(posContext).context.findRenderObject() as RenderBox; + + final button = posContext.findRenderObject() as RenderBox; + + final position = RelativeRect.fromRect( + Rect.fromPoints( + button.localToGlobal(const Offset(0, -65), ancestor: overlay), + button.localToGlobal( + button.size.bottomRight(Offset.zero) + const Offset(-50, 0), + ancestor: overlay, + ), + ), + Offset.zero & overlay.size, + ); + + final action = await showMenu( + context: posContext, + position: position, + items: [ + if (room != null && room.membership == Membership.join) ...[ + PopupMenuItem( + value: room.pushRuleState == PushRuleState.notify + ? SpaceChildAction.mute + : SpaceChildAction.unmute, + child: Row( + mainAxisSize: .min, + children: [ + Icon( + room.pushRuleState == PushRuleState.notify + ? Icons.notifications_off_outlined + : Icons.notifications_on_outlined, + ), + const SizedBox(width: 12), + Text( + room.pushRuleState == PushRuleState.notify + ? L10n.of(context).muteChat + : L10n.of(context).unmuteChat, + ), + ], + ), + ), + PopupMenuItem( + value: room.markedUnread + ? SpaceChildAction.markAsRead + : SpaceChildAction.markAsUnread, + child: Row( + mainAxisSize: .min, + children: [ + Icon( + room.markedUnread + ? Icons.mark_as_unread + : Icons.mark_as_unread_outlined, + ), + const SizedBox(width: 12), + Text( + room.isUnread + ? L10n.of(context).markAsRead + : L10n.of(context).markAsUnread, + ), + ], + ), + ), + PopupMenuItem( + value: SpaceChildAction.leave, + child: Row( + mainAxisSize: .min, + children: [ + Icon( + Icons.delete_outlined, + color: Theme.of(context).colorScheme.onErrorContainer, + ), + const SizedBox(width: 12), + Text( + L10n.of(context).leave, + style: TextStyle( + color: Theme.of(context).colorScheme.onErrorContainer, + ), + ), + ], + ), + ), + ], + if (space.canChangeStateEvent(EventTypes.SpaceChild) == true) + PopupMenuItem( + value: SpaceChildAction.removeFromSpace, + child: Row( + mainAxisSize: .min, + children: [ + Icon( + Icons.remove, + color: Theme.of(context).colorScheme.onErrorContainer, + ), + const SizedBox(width: 12), + Text( + L10n.of(context).removeFromSpace, + style: TextStyle( + color: Theme.of(context).colorScheme.onErrorContainer, + ), + ), + ], + ), + ), + ], + ); + if (action == null) return; + if (!mounted) return; + switch (action) { + case SpaceChildAction.removeFromSpace: + final consent = await showOkCancelAlertDialog( + context: context, + title: L10n.of(context).removeFromSpace, + message: L10n.of(context).removeFromSpaceDescription, + ); + if (consent != OkCancelResult.ok) return; + if (!mounted) return; + final result = await showFutureLoadingDialog( + context: context, + future: () => space.removeSpaceChild(roomId), + ); + if (result.isError) return; + if (!mounted) return; + _nextBatch = null; + return; + case SpaceChildAction.mute: + await showFutureLoadingDialog( + context: context, + future: () => room!.setPushRuleState(PushRuleState.mentionsOnly), + ); + case SpaceChildAction.unmute: + await showFutureLoadingDialog( + context: context, + future: () => room!.setPushRuleState(PushRuleState.notify), + ); + case SpaceChildAction.markAsUnread: + await showFutureLoadingDialog( + context: context, + future: () => room!.markUnread(true), + ); + case SpaceChildAction.markAsRead: + await showFutureLoadingDialog( + context: context, + future: () => room!.markUnread(false), + ); + case SpaceChildAction.leave: + await showFutureLoadingDialog( + context: context, + future: () => room!.leave(), + ); + } + } + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + final room = Matrix.of(context).client.getRoomById(widget.spaceId); + final displayname = + room?.getLocalizedDisplayname() ?? L10n.of(context).nothingFound; + const avatarSize = Avatar.defaultSize / 1.5; + final isAdmin = room?.canChangeStateEvent(EventTypes.SpaceChild) == true; + return Scaffold( + body: room == null + ? const Center(child: Icon(Icons.search_outlined, size: 80)) + : StreamBuilder( + stream: room.client.onSync.stream + .where((s) => s.hasRoomUpdate) + .rateLimit(const Duration(seconds: 1)), + builder: (context, snapshot) { + final filter = _filterController.text.trim().toLowerCase(); + return CustomScrollView( + slivers: [ + SliverAppBar( + toolbarHeight: 72, + floating: true, + scrolledUnderElevation: 0, + backgroundColor: Colors.transparent, + automaticallyImplyLeading: false, + title: TextField( + controller: _filterController, + onChanged: (_) => setState(() {}), + textInputAction: TextInputAction.search, + decoration: InputDecoration( + filled: true, + fillColor: theme.colorScheme.secondaryContainer, + border: OutlineInputBorder( + borderSide: BorderSide.none, + borderRadius: BorderRadius.circular(99), + ), + contentPadding: EdgeInsets.zero, + hintText: L10n.of(context).search, + hintStyle: TextStyle( + color: theme.colorScheme.onPrimaryContainer, + fontWeight: FontWeight.normal, + ), + floatingLabelBehavior: FloatingLabelBehavior.never, + prefixIcon: IconButton( + onPressed: () {}, + icon: Icon( + Icons.search_outlined, + color: theme.colorScheme.onPrimaryContainer, + ), + ), + suffixIcon: PopupMenuButton( + icon: Avatar( + size: avatarSize, + mxContent: room.avatar, + name: displayname, + shapeBorder: RoundedSuperellipseBorder( + side: BorderSide( + width: 1, + color: theme.dividerColor, + ), + borderRadius: BorderRadius.circular( + AppConfig.spaceBorderRadius, + ), + ), + borderRadius: BorderRadius.circular( + AppConfig.spaceBorderRadius, + ), + ), + useRootNavigator: true, + onSelected: _onSpaceAction, + itemBuilder: (context) => [ + if (isAdmin) + PopupMenuItem( + value: SpaceActions.addChild, + child: ListTile( + leading: Icon(Icons.edit_square), + title: Text( + L10n.of(context).addChatOrSubSpace, + ), + ), + ), + PopupMenuItem( + value: SpaceActions.settings, + child: ListTile( + leading: Icon(Icons.settings_outlined), + title: Text(L10n.of(context).settings), + ), + ), + PopupMenuItem( + value: SpaceActions.leave, + child: ListTile( + leading: Icon(Icons.delete_outlined), + title: Text(L10n.of(context).leave), + ), + ), + ], + ), + ), + ), + ), + SliverList.builder( + itemCount: _discoveredChildren.length + 1, + itemBuilder: (context, i) { + if (i == _discoveredChildren.length) { + if (_noMoreRooms) { + return const SizedBox.shrink(); + } + return Padding( + padding: const EdgeInsets.symmetric( + horizontal: 12.0, + vertical: 2.0, + ), + child: TextButton( + onPressed: _isLoading ? null : _loadHierarchy, + child: _isLoading + ? const CircularProgressIndicator.adaptive() + : Text(L10n.of(context).loadMore), + ), + ); + } + final item = _discoveredChildren[i]; + var joinedRoom = room.client.getRoomById(item.roomId); + final displayname = + item.name ?? + item.canonicalAlias ?? + joinedRoom?.getLocalizedDisplayname() ?? + L10n.of(context).emptyChat; + final avatarUrl = item.avatarUrl ?? joinedRoom?.avatar; + if (!displayname.toLowerCase().contains(filter)) { + return const SizedBox.shrink(); + } + if (joinedRoom?.membership == Membership.leave) { + joinedRoom = null; + } + + return Padding( + padding: const EdgeInsets.symmetric( + horizontal: 8, + vertical: 1, + ), + child: Material( + borderRadius: BorderRadius.circular( + AppConfig.borderRadius, + ), + clipBehavior: Clip.hardEdge, + color: + joinedRoom != null && + widget.activeChat == joinedRoom.id + ? theme.colorScheme.secondaryContainer + : Colors.transparent, + child: HoverBuilder( + builder: (context, hovered) => ListTile( + visualDensity: const VisualDensity( + vertical: -0.5, + ), + contentPadding: EdgeInsets.only( + left: 8, + right: joinedRoom == null ? 0 : 8, + ), + onTap: joinedRoom != null + ? () => widget.onChatTab(joinedRoom!) + : null, + onLongPress: joinedRoom != null + ? () => _showSpaceChildEditMenu( + context, + item.roomId, + ) + : null, + leading: + hovered && (isAdmin || joinedRoom != null) + ? SizedBox.square( + dimension: avatarSize, + child: IconButton( + splashRadius: avatarSize, + iconSize: 14, + style: IconButton.styleFrom( + foregroundColor: theme + .colorScheme + .onTertiaryContainer, + backgroundColor: theme + .colorScheme + .tertiaryContainer, + ), + onPressed: () => + _showSpaceChildEditMenu( + context, + item.roomId, + ), + icon: const Icon(Icons.edit_outlined), + ), + ) + : Avatar( + size: avatarSize, + mxContent: avatarUrl, + name: '#', + backgroundColor: + theme.colorScheme.surfaceContainer, + textColor: + item.name?.colorScheme.primary ?? + theme.colorScheme.onSurface, + shapeBorder: item.roomType == 'm.space' + ? RoundedSuperellipseBorder( + side: BorderSide( + color: theme + .colorScheme + .surfaceContainerHighest, + ), + borderRadius: + BorderRadius.circular( + AppConfig.borderRadius / + 4, + ), + ) + : null, + borderRadius: item.roomType == 'm.space' + ? BorderRadius.circular( + AppConfig.borderRadius / 4, + ) + : null, + ), + title: Row( + children: [ + if (joinedRoom != null && + joinedRoom.hasActiveMatrixRtcCall == + true) + Padding( + padding: const EdgeInsets.only( + right: 4.0, + ), + child: ActiveCallIndicator( + room: joinedRoom, + ), + ), + Expanded( + child: Opacity( + opacity: joinedRoom == null ? 0.5 : 1, + child: Text( + displayname, + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + ), + if (joinedRoom != null && + joinedRoom.pushRuleState != + PushRuleState.notify) + const Padding( + padding: EdgeInsets.only(left: 4.0), + child: Icon( + Icons.notifications_off_outlined, + size: 16, + ), + ), + if (joinedRoom != null) + UnreadBubble(room: joinedRoom) + else + TextButton( + onPressed: () => _joinChildRoom(item), + child: Text(L10n.of(context).join), + ), + ], + ), + ), + ), + ), + ); + }, + ), + const SliverPadding(padding: EdgeInsets.only(top: 32)), + ], + ); + }, + ), + ); + } +} diff --git a/lib/pages/chat_list/start_chat_fab.dart b/lib/pages/chat_list/start_chat_fab.dart new file mode 100644 index 0000000..7c89656 --- /dev/null +++ b/lib/pages/chat_list/start_chat_fab.dart @@ -0,0 +1,35 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; + +class StartChatFab extends StatelessWidget { + final bool extended; + const StartChatFab({this.extended = false, super.key}); + + @override + Widget build(BuildContext context) { + return FloatingActionButton.extended( + heroTag: 'start_chat_fab', + backgroundColor: Theme.of(context).colorScheme.primary, + foregroundColor: Theme.of(context).colorScheme.onPrimary, + onPressed: () => context.go('/rooms/newprivatechat'), + extendedIconLabelSpacing: extended ? 10 : 0, + extendedPadding: extended + ? null + : const EdgeInsets.symmetric(horizontal: 16), + label: AnimatedSize( + alignment: Alignment.centerLeft, + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + child: extended ? Text(L10n.of(context).newChat) : SizedBox.shrink(), + ), + icon: const Icon(Icons.edit_square), + ); + } +} diff --git a/lib/pages/chat_list/tabs/channels_tab.dart b/lib/pages/chat_list/tabs/channels_tab.dart new file mode 100644 index 0000000..a081ae4 --- /dev/null +++ b/lib/pages/chat_list/tabs/channels_tab.dart @@ -0,0 +1,79 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.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/tabs/empty_tab_view.dart'; +import 'package:tatchat/utils/stream_extension.dart'; +import 'package:tatchat/widgets/matrix.dart'; + +class ChannelsTab extends StatelessWidget { + final ChatListController controller; + + const ChannelsTab(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final client = Matrix.of(context).client; + final theme = Theme.of(context); + return StreamBuilder( + key: ValueKey(client.userID.toString()), + stream: client.onSync.stream + .where((s) => s.hasRoomUpdate) + .rateLimit(const Duration(seconds: 1)), + builder: (context, _) { + final channels = client.rooms + .where((room) => !room.isSpace && !room.isDirectChat) + .toList(); + return CustomScrollView( + slivers: [ + SliverToBoxAdapter( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Row( + children: [ + Icon( + Icons.tag_outlined, + color: theme.colorScheme.primary, + ), + const SizedBox(width: 8), + Text( + L10n.of(context).channels, + style: theme.textTheme.titleLarge, + ), + ], + ), + ), + ), + if (channels.isEmpty) + SliverFillRemaining( + hasScrollBody: false, + child: EmptyTabView( + icon: Icons.tag_outlined, + title: L10n.of(context).noChannelsFound, + ), + ) + else + SliverList.builder( + itemCount: channels.length, + itemBuilder: (context, i) { + final room = channels[i]; + return ChatListItem( + room, + key: Key('channel_list_item_${room.id}'), + onTap: () => controller.onChatTap(room), + activeChat: controller.activeChat == room.id, + ); + }, + ), + ], + ); + }, + ); + } +} \ No newline at end of file diff --git a/lib/pages/chat_list/tabs/chat_tab_bar.dart b/lib/pages/chat_list/tabs/chat_tab_bar.dart new file mode 100644 index 0000000..1a6b184 --- /dev/null +++ b/lib/pages/chat_list/tabs/chat_tab_bar.dart @@ -0,0 +1,115 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:material_ui/material_ui.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/pages/chat_list/tabs/home_tab.dart'; + +class ChatTopTabBar extends StatelessWidget { + final HomeTab currentTab; + final ValueChanged onTabSelected; + + const ChatTopTabBar({ + super.key, + required this.currentTab, + required this.onTabSelected, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + return Material( + color: theme.colorScheme.surfaceContainer, + child: Container( + decoration: BoxDecoration( + border: Border(bottom: BorderSide(color: theme.dividerColor)), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + for (final tab in HomeTab.values) + Expanded( + child: InkWell( + onTap: () => onTabSelected(tab), + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Padding( + padding: const EdgeInsets.symmetric(vertical: 8), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + tab == currentTab + ? tab.selectedIcon + : tab.icon, + size: 20, + color: tab == currentTab + ? theme.colorScheme.primary + : theme.colorScheme.onSurfaceVariant, + ), + const SizedBox(height: 4), + Text( + tab.label(context), + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: theme.textTheme.labelMedium?.copyWith( + color: tab == currentTab + ? theme.colorScheme.primary + : theme.colorScheme.onSurfaceVariant, + fontWeight: tab == currentTab + ? FontWeight.w600 + : null, + ), + ), + ], + ), + ), + AnimatedContainer( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + height: 3, + color: tab == currentTab + ? theme.colorScheme.primary + : Colors.transparent, + ), + ], + ), + ), + ), + ], + ), + ), + ); + } +} + +class ChatBottomTabBar extends StatelessWidget { + final HomeTab currentTab; + final ValueChanged onTabSelected; + + const ChatBottomTabBar({ + super.key, + required this.currentTab, + required this.onTabSelected, + }); + + @override + Widget build(BuildContext context) { + return NavigationBar( + selectedIndex: currentTab.index, + onDestinationSelected: (index) => onTabSelected(HomeTab.values[index]), + destinations: [ + for (final tab in HomeTab.values) + NavigationDestination( + icon: Icon(tab.icon), + selectedIcon: Icon(tab.selectedIcon), + label: tab.label(context), + ), + ], + ); + } +} \ No newline at end of file diff --git a/lib/pages/chat_list/tabs/empty_tab_view.dart b/lib/pages/chat_list/tabs/empty_tab_view.dart new file mode 100644 index 0000000..84cbb3f --- /dev/null +++ b/lib/pages/chat_list/tabs/empty_tab_view.dart @@ -0,0 +1,56 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:material_ui/material_ui.dart'; + +class EmptyTabView extends StatelessWidget { + final IconData icon; + final String title; + final String? description; + + const EmptyTabView({ + super.key, + required this.icon, + required this.title, + this.description, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + return Center( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + icon, + size: 96, + color: theme.colorScheme.secondary, + ), + Padding( + padding: const EdgeInsets.all(16.0), + child: Text( + title, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 18, + color: theme.colorScheme.secondary, + ), + ), + ), + if (description != null) + Padding( + padding: const EdgeInsets.symmetric(horizontal: 32.0), + child: Text( + description!, + textAlign: TextAlign.center, + style: TextStyle(color: theme.colorScheme.secondary), + ), + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/pages/chat_list/tabs/home_tab.dart b/lib/pages/chat_list/tabs/home_tab.dart new file mode 100644 index 0000000..8ba6123 --- /dev/null +++ b/lib/pages/chat_list/tabs/home_tab.dart @@ -0,0 +1,51 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:material_ui/material_ui.dart'; +import 'package:tatchat/l10n/l10n.dart'; + +enum HomeTab { chats, channels, spaces, murals } + +extension HomeTabExtension on HomeTab { + String label(BuildContext context) { + final l10n = L10n.of(context); + switch (this) { + case HomeTab.chats: + return l10n.chats; + case HomeTab.channels: + return l10n.channels; + case HomeTab.spaces: + return l10n.spaces; + case HomeTab.murals: + return l10n.murals; + } + } + + IconData get icon { + switch (this) { + case HomeTab.chats: + return Icons.forum_outlined; + case HomeTab.channels: + return Icons.tag_outlined; + case HomeTab.spaces: + return Icons.workspaces_outlined; + case HomeTab.murals: + return Icons.dashboard_outlined; + } + } + + IconData get selectedIcon { + switch (this) { + case HomeTab.chats: + return Icons.forum; + case HomeTab.channels: + return Icons.tag; + case HomeTab.spaces: + return Icons.workspaces; + case HomeTab.murals: + return Icons.dashboard; + } + } +} \ 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 new file mode 100644 index 0000000..bc598a7 --- /dev/null +++ b/lib/pages/chat_list/tabs/murals_tab.dart @@ -0,0 +1,46 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:material_ui/material_ui.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat_list/tabs/empty_tab_view.dart'; + +class MuralsTab extends StatelessWidget { + const MuralsTab({super.key}); + + @override + Widget build(BuildContext context) { + final l10n = L10n.of(context); + return ColoredBox( + color: Theme.of(context).colorScheme.surface, + child: CustomScrollView( + slivers: [ + SliverToBoxAdapter( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Row( + children: [ + Icon( + Icons.dashboard_outlined, + color: Theme.of(context).colorScheme.primary, + ), + const SizedBox(width: 8), + Text(l10n.murals, style: Theme.of(context).textTheme.titleLarge), + ], + ), + ), + ), + SliverFillRemaining( + hasScrollBody: false, + child: EmptyTabView( + icon: Icons.dashboard_outlined, + title: l10n.muralsComingSoon, + ), + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/pages/chat_list/tabs/spaces_tab.dart b/lib/pages/chat_list/tabs/spaces_tab.dart new file mode 100644 index 0000000..050ac84 --- /dev/null +++ b/lib/pages/chat_list/tabs/spaces_tab.dart @@ -0,0 +1,89 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.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/tabs/empty_tab_view.dart'; +import 'package:tatchat/pages/chat_list/tabs/home_tab.dart'; +import 'package:tatchat/utils/stream_extension.dart'; +import 'package:tatchat/widgets/matrix.dart'; + +class SpacesTab extends StatelessWidget { + final ChatListController controller; + + const SpacesTab(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final client = Matrix.of(context).client; + final theme = Theme.of(context); + return StreamBuilder( + key: ValueKey(client.userID.toString()), + stream: client.onSync.stream + .where((s) => s.hasRoomUpdate) + .rateLimit(const Duration(seconds: 1)), + builder: (context, _) { + final spaces = client.rooms.where((room) => room.isSpace).toList(); + return CustomScrollView( + slivers: [ + SliverToBoxAdapter( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Row( + children: [ + Icon( + Icons.workspaces_outlined, + color: theme.colorScheme.primary, + ), + const SizedBox(width: 8), + Text( + L10n.of(context).spaces, + style: theme.textTheme.titleLarge, + ), + ], + ), + ), + ), + if (spaces.isEmpty) + SliverFillRemaining( + hasScrollBody: false, + child: EmptyTabView( + icon: Icons.workspaces_outlined, + title: L10n.of(context).noSpacesFound, + ), + ) + else + SliverList.builder( + itemCount: spaces.length + 1, + itemBuilder: (context, i) { + if (i == spaces.length) { + return ListTile( + leading: const Icon(Icons.add), + title: Text(L10n.of(context).createNewSpace), + onTap: () => context.go('/rooms/newspace'), + ); + } + final space = spaces[i]; + return ChatListItem( + space, + key: Key('spaces_tab_item_${space.id}'), + activeChat: controller.activeSpaceId == space.id, + onTap: () { + controller.setActiveSpace(space.id); + controller.setHomeTab(HomeTab.chats); + }, + ); + }, + ), + ], + ); + }, + ); + } +} \ No newline at end of file diff --git a/lib/pages/chat_list/unread_bubble.dart b/lib/pages/chat_list/unread_bubble.dart new file mode 100644 index 0000000..6ffbdbc --- /dev/null +++ b/lib/pages/chat_list/unread_bubble.dart @@ -0,0 +1,55 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/themes.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class UnreadBubble extends StatelessWidget { + final Room room; + const UnreadBubble({required this.room, super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final unread = room.isUnread; + final hasNotifications = room.notificationCount > 0; + final unreadBubbleSize = unread || room.hasNewMessages + ? room.notificationCount > 0 + ? 20.0 + : 14.0 + : 0.0; + return AnimatedContainer( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + alignment: Alignment.center, + padding: const EdgeInsets.symmetric(horizontal: 7), + height: unreadBubbleSize, + width: !hasNotifications && !unread && !room.hasNewMessages + ? 0 + : (unreadBubbleSize - 9) * room.notificationCount.toString().length + + 9, + decoration: BoxDecoration( + color: room.highlightCount > 0 || hasNotifications + ? theme.colorScheme.tertiary + : theme.colorScheme.primaryContainer, + borderRadius: BorderRadius.circular(unreadBubbleSize), + ), + child: hasNotifications || room.markedUnread + ? Text( + room.notificationCount.toString(), + style: TextStyle( + color: room.highlightCount > 0 || hasNotifications + ? theme.colorScheme.onTertiary + : theme.colorScheme.onPrimaryContainer, + fontSize: 13, + fontWeight: FontWeight.w500, + ), + textAlign: .center, + ) + : const SizedBox.shrink(), + ); + } +} diff --git a/lib/pages/chat_members/chat_members.dart b/lib/pages/chat_members/chat_members.dart new file mode 100644 index 0000000..e92b2ae --- /dev/null +++ b/lib/pages/chat_members/chat_members.dart @@ -0,0 +1,120 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; + +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../widgets/matrix.dart'; +import 'chat_members_view.dart'; + +class ChatMembersPage extends StatefulWidget { + final String roomId; + + const ChatMembersPage({required this.roomId, super.key}); + + @override + State createState() => ChatMembersController(); +} + +class ChatMembersController extends State { + List? members; + List? filteredMembers; + Object? error; + Membership membershipFilter = Membership.join; + + final TextEditingController filterController = TextEditingController(); + + void setMembershipFilter(Membership membership) { + membershipFilter = membership; + setFilter(); + } + + Future setFilter([_]) async { + final filter = filterController.text.toLowerCase().trim(); + + final members = this.members + ?.where((member) => member.membership == membershipFilter) + .toList(); + + if (filter.isEmpty) { + setState(() { + filteredMembers = members + ?..sort((b, a) => a.powerLevel.level.compareTo(b.powerLevel.level)); + }); + return; + } + setState(() { + filteredMembers = + members + ?.where( + (user) => + user.displayName?.toLowerCase().contains(filter) ?? + user.id.toLowerCase().contains(filter), + ) + .toList() + ?..sort((b, a) => a.powerLevel.level.compareTo(b.powerLevel.level)); + }); + } + + Future refreshMembers([_]) async { + Logs().d('Load room members from', widget.roomId); + try { + setState(() { + error = null; + }); + final participants = await Matrix.of(context).client + .getRoomById(widget.roomId) + ?.requestParticipants( + [...Membership.values]..remove(Membership.leave), + ); + + if (!mounted) return; + + setState(() { + members = participants; + }); + setFilter(); + } catch (e, s) { + Logs().d( + 'Unable to request participants. Try again in 3 seconds...', + e, + s, + ); + setState(() { + error = e; + }); + } + } + + StreamSubscription? _updateSub; + + @override + void initState() { + super.initState(); + refreshMembers(); + + _updateSub = Matrix.of(context).client.onSync.stream + .where( + (syncUpdate) => + syncUpdate.rooms?.join?[widget.roomId]?.timeline?.events?.any( + (state) => state.type == EventTypes.RoomMember, + ) ?? + false, + ) + .listen(refreshMembers); + } + + @override + void dispose() { + _updateSub?.cancel(); + filterController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) => ChatMembersView(this); +} diff --git a/lib/pages/chat_members/chat_members_view.dart b/lib/pages/chat_members/chat_members_view.dart new file mode 100644 index 0000000..fa02660 --- /dev/null +++ b/lib/pages/chat_members/chat_members_view.dart @@ -0,0 +1,191 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/localized_exception_extension.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../widgets/layouts/max_width_body.dart'; +import '../../widgets/matrix.dart'; +import '../chat_details/participant_list_item.dart'; +import 'chat_members.dart'; + +class ChatMembersView extends StatelessWidget { + final ChatMembersController controller; + + const ChatMembersView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final room = Matrix.of( + context, + ).client.getRoomById(controller.widget.roomId); + if (room == null) { + return Scaffold( + appBar: AppBar(title: Text(L10n.of(context).oopsSomethingWentWrong)), + body: Center( + child: Text(L10n.of(context).youAreNoLongerParticipatingInThisChat), + ), + ); + } + + final members = controller.filteredMembers; + + final roomCount = + (room.summary.mJoinedMemberCount ?? 0) + + (room.summary.mInvitedMemberCount ?? 0); + + final error = controller.error; + final theme = Theme.of(context); + + return Scaffold( + appBar: AppBar( + leading: const Center(child: BackButton()), + title: Text(L10n.of(context).countParticipants(roomCount)), + actions: [ + if (room.canInvite) + IconButton( + onPressed: () => context.go('/rooms/${room.id}/invite'), + icon: const Icon(Icons.person_add_outlined), + ), + ], + ), + body: MaxWidthBody( + withScrolling: false, + innerPadding: const EdgeInsets.symmetric(vertical: 8), + child: error != null + ? Center( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + mainAxisSize: .min, + children: [ + const Icon(Icons.error_outline), + Text(error.toLocalizedString(context)), + const SizedBox(height: 8), + OutlinedButton.icon( + onPressed: controller.refreshMembers, + icon: const Icon(Icons.refresh_outlined), + label: Text(L10n.of(context).tryAgain), + ), + ], + ), + ), + ) + : members == null + ? const Center( + child: Padding( + padding: EdgeInsets.all(16.0), + child: CircularProgressIndicator.adaptive(), + ), + ) + : ListView.builder( + shrinkWrap: true, + itemCount: members.length + 1, + itemBuilder: (context, i) { + if (i == 0) { + final availableFilters = Membership.values + .where( + (membership) => + controller.members?.any( + (member) => member.membership == membership, + ) ?? + false, + ) + .toList(); + availableFilters.sort( + (a, b) => a == Membership.join ? -1 : 1, + ); + return Column( + mainAxisSize: .min, + children: [ + Padding( + padding: const EdgeInsets.all(16.0), + child: TextField( + controller: controller.filterController, + onChanged: controller.setFilter, + decoration: InputDecoration( + filled: true, + fillColor: theme.colorScheme.secondaryContainer, + border: OutlineInputBorder( + borderSide: BorderSide.none, + borderRadius: BorderRadius.circular(99), + ), + hintStyle: TextStyle( + color: theme.colorScheme.onPrimaryContainer, + fontWeight: FontWeight.normal, + ), + prefixIcon: const Icon(Icons.search_outlined), + hintText: L10n.of(context).search, + ), + ), + ), + if (availableFilters.length > 1) + SizedBox( + height: 64, + child: ListView.builder( + padding: const EdgeInsets.all(12.0), + scrollDirection: Axis.horizontal, + itemCount: availableFilters.length, + itemBuilder: (context, i) => Padding( + padding: const EdgeInsets.symmetric( + horizontal: 4.0, + ), + child: FilterChip( + label: Text(switch (availableFilters[i]) { + Membership.ban => L10n.of(context).banned, + Membership.invite => + L10n.of(context).countInvited( + room.summary.mInvitedMemberCount ?? + controller.members + ?.where( + (member) => + member.membership == + Membership.invite, + ) + .length ?? + 0, + ), + Membership.join => + L10n.of(context).countParticipants( + room.summary.mJoinedMemberCount ?? + controller.members + ?.where( + (member) => + member.membership == + Membership.join, + ) + .length ?? + 0, + ), + Membership.knock => L10n.of( + context, + ).knocking, + Membership.leave => L10n.of( + context, + ).leftTheChat, + }), + selected: + controller.membershipFilter == + availableFilters[i], + onSelected: (_) => controller + .setMembershipFilter(availableFilters[i]), + ), + ), + ), + ), + ], + ); + } + i--; + return ParticipantListItem(members[i]); + }, + ), + ), + ); + } +} diff --git a/lib/pages/chat_permissions_settings/chat_permissions_settings.dart b/lib/pages/chat_permissions_settings/chat_permissions_settings.dart new file mode 100644 index 0000000..23abf71 --- /dev/null +++ b/lib/pages/chat_permissions_settings/chat_permissions_settings.dart @@ -0,0 +1,78 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat_permissions_settings/chat_permissions_settings_view.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:tatchat/widgets/permission_slider_dialog.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class ChatPermissionsSettings extends StatefulWidget { + const ChatPermissionsSettings({super.key}); + + @override + ChatPermissionsSettingsController createState() => + ChatPermissionsSettingsController(); +} + +class ChatPermissionsSettingsController extends State { + String? get roomId => GoRouterState.of(context).pathParameters['roomid']; + Future editPowerLevel( + BuildContext context, + String key, + int currentLevel, { + int? newLevel, + String? category, + }) async { + final room = Matrix.of(context).client.getRoomById(roomId!)!; + if (!room.canSendEvent(EventTypes.RoomPowerLevels)) { + ScaffoldMessenger.of( + context, + ).showSnackBar(SnackBar(content: Text(L10n.of(context).noPermission))); + return; + } + newLevel ??= await showPermissionChooser( + context, + currentLevel: currentLevel, + ); + if (newLevel == null) return; + if (!context.mounted) return; + final content = Map.from( + room.getState(EventTypes.RoomPowerLevels)!.content, + ); + if (category != null) { + if (!content.containsKey(category)) { + content[category] = {}; + } + content[category][key] = newLevel; + } else { + content[key] = newLevel; + } + await showFutureLoadingDialog( + context: context, + future: () => room.client.setRoomStateWithKey( + room.id, + EventTypes.RoomPowerLevels, + '', + content, + ), + ); + } + + Stream get onChanged => Matrix.of(context).client.onSync.stream.where( + (e) => + (e.rooms?.join?.containsKey(roomId) ?? false) && + (e.rooms!.join![roomId!]?.timeline?.events?.any( + (s) => s.type == EventTypes.RoomPowerLevels, + ) ?? + false), + ); + + @override + Widget build(BuildContext context) => ChatPermissionsSettingsView(this); +} diff --git a/lib/pages/chat_permissions_settings/chat_permissions_settings_view.dart b/lib/pages/chat_permissions_settings/chat_permissions_settings_view.dart new file mode 100644 index 0000000..45efe32 --- /dev/null +++ b/lib/pages/chat_permissions_settings/chat_permissions_settings_view.dart @@ -0,0 +1,151 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat_permissions_settings/chat_permissions_settings.dart'; +import 'package:tatchat/pages/chat_permissions_settings/permission_list_tile.dart'; +import 'package:tatchat/utils/matrix_live_kit_calls/matrix_live_kit_call_member.dart'; +import 'package:tatchat/widgets/layouts/max_width_body.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class ChatPermissionsSettingsView extends StatelessWidget { + final ChatPermissionsSettingsController controller; + + const ChatPermissionsSettingsView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + return Scaffold( + appBar: AppBar( + leading: const Center(child: BackButton()), + title: Text(L10n.of(context).chatPermissions), + ), + body: MaxWidthBody( + child: StreamBuilder( + stream: controller.onChanged, + builder: (context, _) { + final roomId = controller.roomId; + final room = roomId == null + ? null + : Matrix.of(context).client.getRoomById(roomId); + if (room == null) { + return Center(child: Text(L10n.of(context).noRoomsFound)); + } + final powerLevelsContent = Map.from( + room.getState(EventTypes.RoomPowerLevels)?.content ?? {}, + ); + final powerLevels = Map.from(powerLevelsContent) + ..removeWhere((k, v) => v is! int); + final eventsPowerLevels = Map.from( + powerLevelsContent.tryGetMap('events') ?? {}, + )..removeWhere((k, v) => v is! int); + eventsPowerLevels[MatrixRtcCallMember.eventType] ??= + powerLevelsContent['state_default'] as int? ?? 50; + return Column( + children: [ + ListTile( + leading: const Icon(Icons.info_outlined), + subtitle: Text(L10n.of(context).chatPermissionsDescription), + ), + Divider(color: theme.dividerColor), + ListTile( + title: Text( + L10n.of(context).chatPermissions, + style: TextStyle( + color: theme.colorScheme.primary, + fontWeight: FontWeight.bold, + ), + ), + ), + Column( + mainAxisSize: .min, + children: [ + for (final entry in powerLevels.entries) + PermissionsListTile( + permissionKey: entry.key, + permission: entry.value, + onChanged: (level) => controller.editPowerLevel( + context, + entry.key, + entry.value, + newLevel: level, + ), + canEdit: room.canChangePowerLevel, + ), + Divider(color: theme.dividerColor), + ListTile( + title: Text( + L10n.of(context).notifications, + style: TextStyle( + color: theme.colorScheme.primary, + fontWeight: FontWeight.bold, + ), + ), + ), + Builder( + builder: (context) { + const key = 'rooms'; + final value = + powerLevelsContent.containsKey('notifications') + ? powerLevelsContent + .tryGetMap( + 'notifications', + ) + ?.tryGet('rooms') ?? + 0 + : 0; + return PermissionsListTile( + permissionKey: key, + permission: value, + category: 'notifications', + canEdit: room.canChangePowerLevel, + onChanged: (level) => controller.editPowerLevel( + context, + key, + value, + newLevel: level, + category: 'notifications', + ), + ); + }, + ), + Divider(color: theme.dividerColor), + ListTile( + title: Text( + L10n.of(context).configureChat, + style: TextStyle( + color: theme.colorScheme.primary, + fontWeight: FontWeight.bold, + ), + ), + ), + for (final entry in eventsPowerLevels.entries) + PermissionsListTile( + permissionKey: entry.key, + category: 'events', + permission: entry.value ?? 0, + canEdit: room.canChangePowerLevel, + onChanged: (level) => controller.editPowerLevel( + context, + entry.key, + entry.value ?? 0, + newLevel: level, + category: 'events', + ), + ), + ], + ), + ], + ); + }, + ), + ), + ); + } +} diff --git a/lib/pages/chat_permissions_settings/permission_list_tile.dart b/lib/pages/chat_permissions_settings/permission_list_tile.dart new file mode 100644 index 0000000..dad1968 --- /dev/null +++ b/lib/pages/chat_permissions_settings/permission_list_tile.dart @@ -0,0 +1,130 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/matrix_live_kit_calls/matrix_live_kit_call_member.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class PermissionsListTile extends StatelessWidget { + final String permissionKey; + final int permission; + final String? category; + final void Function(int? level)? onChanged; + final bool canEdit; + + const PermissionsListTile({ + super.key, + required this.permissionKey, + required this.permission, + this.category, + required this.onChanged, + required this.canEdit, + }); + + String getLocalizedPowerLevelString(BuildContext context) { + if (category == null) { + switch (permissionKey) { + case 'users_default': + return L10n.of(context).defaultPermissionLevel; + case 'events_default': + return L10n.of(context).sendMessages; + case 'state_default': + return L10n.of(context).changeGeneralChatSettings; + case 'ban': + return L10n.of(context).banFromChat; + case 'kick': + return L10n.of(context).kickFromChat; + case 'redact': + return L10n.of(context).deleteMessage; + case 'invite': + return L10n.of(context).inviteOtherUsers; + } + } else if (category == 'notifications') { + switch (permissionKey) { + case 'rooms': + return L10n.of(context).sendRoomNotifications; + } + } else if (category == 'events') { + switch (permissionKey) { + case EventTypes.RoomName: + return L10n.of(context).changeTheNameOfTheGroup; + case EventTypes.RoomTopic: + return L10n.of(context).changeTheDescriptionOfTheGroup; + case EventTypes.RoomPowerLevels: + return L10n.of(context).changeTheChatPermissions; + case EventTypes.HistoryVisibility: + return L10n.of(context).changeTheVisibilityOfChatHistory; + case EventTypes.RoomCanonicalAlias: + return L10n.of(context).changeTheCanonicalRoomAlias; + case EventTypes.RoomAvatar: + return L10n.of(context).editRoomAvatar; + case EventTypes.RoomTombstone: + return L10n.of(context).replaceRoomWithNewerVersion; + case EventTypes.Encryption: + return L10n.of(context).enableEncryption; + case 'm.room.server_acl': + return L10n.of(context).editBlockedServers; + case MatrixRtcCallMember.eventType: + return 'Create or join a group call'; + } + } + return permissionKey; + } + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + final color = permission >= 100 + ? Colors.orangeAccent + : permission >= 50 + ? Colors.blueAccent + : Colors.greenAccent; + return ListTile( + title: Text( + getLocalizedPowerLevelString(context), + style: theme.textTheme.titleSmall, + ), + trailing: Material( + color: color.withAlpha(32), + borderRadius: BorderRadius.circular(AppConfig.borderRadius / 2), + child: DropdownButton( + padding: const EdgeInsets.symmetric(horizontal: 8.0), + borderRadius: BorderRadius.circular(AppConfig.borderRadius / 2), + underline: const SizedBox.shrink(), + onChanged: canEdit ? onChanged : null, + value: permission, + items: [ + DropdownMenuItem( + value: permission < 50 ? permission : 0, + child: Text( + L10n.of(context).userLevel(permission < 50 ? permission : 0), + ), + ), + DropdownMenuItem( + value: permission < 100 && permission >= 50 ? permission : 50, + child: Text( + L10n.of(context).moderatorLevel( + permission < 100 && permission >= 50 ? permission : 50, + ), + ), + ), + DropdownMenuItem( + value: permission >= 100 ? permission : 100, + child: Text( + L10n.of( + context, + ).adminLevel(permission >= 100 ? permission : 100), + ), + ), + DropdownMenuItem(value: null, child: Text(L10n.of(context).custom)), + ], + ), + ), + ); + } +} diff --git a/lib/pages/chat_search/chat_search_files_tab.dart b/lib/pages/chat_search/chat_search_files_tab.dart new file mode 100644 index 0000000..d9ba49f --- /dev/null +++ b/lib/pages/chat_search/chat_search_files_tab.dart @@ -0,0 +1,112 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat_search/search_footer.dart'; +import 'package:tatchat/utils/date_time_extension.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/event_extension.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class ChatSearchFilesTab extends StatelessWidget { + final Room room; + final List events; + final void Function() onStartSearch; + final bool endReached, isLoading; + final DateTime? searchedUntil; + + const ChatSearchFilesTab({ + required this.room, + required this.events, + required this.onStartSearch, + required this.endReached, + required this.isLoading, + super.key, + required this.searchedUntil, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + return SelectionArea( + child: ListView.builder( + padding: const EdgeInsets.all(8.0), + itemCount: events.length + 1, + itemBuilder: (context, i) { + if (i == events.length) { + return SearchFooter( + searchedUntil: searchedUntil, + endReached: endReached, + isLoading: isLoading, + onStartSearch: onStartSearch, + ); + } + final event = events[i]; + final filename = + event.content.tryGet('filename') ?? + event.content.tryGet('body') ?? + L10n.of(context).unknownEvent('File'); + final filetype = (filename.contains('.') + ? filename.split('.').last.toUpperCase() + : event.content + .tryGetMap('info') + ?.tryGet('mimetype') + ?.toUpperCase() ?? + 'UNKNOWN'); + final sizeString = event.sizeString; + final prevEvent = i > 0 ? events[i - 1] : null; + final sameEnvironment = + prevEvent != null && + prevEvent.originServerTs.sameEnvironment(event.originServerTs); + return Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + if (!sameEnvironment) ...[ + Row( + children: [ + Expanded( + child: Container(height: 1, color: theme.dividerColor), + ), + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + event.originServerTs.localizedTime(context), + style: theme.textTheme.labelSmall, + textAlign: TextAlign.center, + ), + ), + Expanded( + child: Container(height: 1, color: theme.dividerColor), + ), + ], + ), + const SizedBox(height: 4), + ], + Material( + borderRadius: BorderRadius.circular(AppConfig.borderRadius), + color: theme.colorScheme.onInverseSurface, + clipBehavior: Clip.hardEdge, + child: ListTile( + leading: const Icon(Icons.file_present_outlined), + title: Text( + filename, + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + subtitle: Text('$sizeString | $filetype'), + onTap: () => event.saveFile(context), + ), + ), + ], + ), + ); + }, + ), + ); + } +} diff --git a/lib/pages/chat_search/chat_search_images_tab.dart b/lib/pages/chat_search/chat_search_images_tab.dart new file mode 100644 index 0000000..a5c239f --- /dev/null +++ b/lib/pages/chat_search/chat_search_images_tab.dart @@ -0,0 +1,129 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/pages/chat/events/video_player.dart'; +import 'package:tatchat/pages/chat_search/search_footer.dart'; +import 'package:tatchat/pages/image_viewer/image_viewer.dart'; +import 'package:tatchat/widgets/mxc_image.dart'; +import 'package:intl/intl.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class ChatSearchImagesTab extends StatelessWidget { + final Room room; + final List events; + final void Function() onStartSearch; + final bool endReached, isLoading; + final DateTime? searchedUntil; + + const ChatSearchImagesTab({ + required this.room, + required this.events, + required this.onStartSearch, + required this.endReached, + required this.isLoading, + super.key, + required this.searchedUntil, + }); + + @override + Widget build(BuildContext context) { + final borderRadius = BorderRadius.circular(AppConfig.borderRadius / 2); + final theme = Theme.of(context); + + final eventsByMonth = >{}; + for (final event in events) { + final month = DateTime( + event.originServerTs.year, + event.originServerTs.month, + ); + eventsByMonth[month] ??= []; + eventsByMonth[month]!.add(event); + } + final eventsByMonthList = eventsByMonth.entries.toList(); + + const padding = 8.0; + + return ListView.builder( + itemCount: eventsByMonth.length + 1, + itemBuilder: (context, i) { + if (i == eventsByMonth.length) { + return SearchFooter( + searchedUntil: searchedUntil, + endReached: endReached, + isLoading: isLoading, + onStartSearch: onStartSearch, + ); + } + + final monthEvents = eventsByMonthList[i].value; + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + const SizedBox(height: 4), + Row( + children: [ + Expanded( + child: Container(height: 1, color: theme.dividerColor), + ), + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + DateFormat.yMMMM( + Localizations.localeOf(context).languageCode, + ).format(eventsByMonthList[i].key), + style: theme.textTheme.labelSmall, + textAlign: TextAlign.center, + ), + ), + Expanded( + child: Container(height: 1, color: theme.dividerColor), + ), + ], + ), + GridView.count( + physics: const NeverScrollableScrollPhysics(), + shrinkWrap: true, + mainAxisSpacing: padding, + crossAxisSpacing: padding, + clipBehavior: Clip.hardEdge, + padding: const EdgeInsets.all(padding), + crossAxisCount: 3, + children: monthEvents.map((event) { + if (event.messageType == MessageTypes.Video) { + return Material( + clipBehavior: Clip.hardEdge, + borderRadius: borderRadius, + child: EventVideoPlayer(event), + ); + } + return InkWell( + onTap: () => showDialog( + context: context, + builder: (_) => ImageViewer(event, outerContext: context), + ), + borderRadius: borderRadius, + child: Material( + clipBehavior: Clip.hardEdge, + borderRadius: borderRadius, + child: MxcImage( + event: event, + width: 128, + height: 128, + fit: BoxFit.cover, + animated: true, + isThumbnail: true, + ), + ), + ); + }).toList(), + ), + ], + ); + }, + ); + } +} diff --git a/lib/pages/chat_search/chat_search_message_tab.dart b/lib/pages/chat_search/chat_search_message_tab.dart new file mode 100644 index 0000000..095d86c --- /dev/null +++ b/lib/pages/chat_search/chat_search_message_tab.dart @@ -0,0 +1,147 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat_search/search_footer.dart'; +import 'package:tatchat/utils/date_time_extension.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:tatchat/utils/url_launcher.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:flutter_linkify/flutter_linkify.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class ChatSearchMessageTab extends StatelessWidget { + final String searchQuery; + final Room room; + final List events; + final void Function() onStartSearch; + final bool endReached, isLoading; + final DateTime? searchedUntil; + + const ChatSearchMessageTab({ + required this.searchQuery, + required this.room, + required this.onStartSearch, + required this.events, + required this.searchedUntil, + required this.endReached, + required this.isLoading, + super.key, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + if (events.isEmpty && searchQuery.isEmpty) { + return Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Icon(Icons.search_outlined, size: 64), + const SizedBox(height: 8), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 32.0), + child: Text( + L10n.of(context).searchIn( + room.getLocalizedDisplayname(MatrixLocals(L10n.of(context))), + ), + textAlign: TextAlign.center, + ), + ), + ], + ); + } + + return SelectionArea( + child: ListView.separated( + itemCount: events.length + 1, + separatorBuilder: (context, _) => + Divider(color: theme.dividerColor, height: 1), + itemBuilder: (context, i) { + if (i == events.length) { + return SearchFooter( + searchedUntil: searchedUntil, + endReached: endReached, + isLoading: isLoading, + onStartSearch: onStartSearch, + ); + } + final event = events[i]; + final sender = event.senderFromMemoryOrFallback; + final displayname = sender.calcDisplayname( + i18n: MatrixLocals(L10n.of(context)), + ); + return _MessageSearchResultListTile( + sender: sender, + displayname: displayname, + event: event, + room: room, + ); + }, + ), + ); + } +} + +class _MessageSearchResultListTile extends StatelessWidget { + const _MessageSearchResultListTile({ + required this.sender, + required this.displayname, + required this.event, + required this.room, + }); + + final User sender; + final String displayname; + final Event event; + final Room room; + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + return ListTile( + title: Row( + children: [ + Avatar(mxContent: sender.avatarUrl, name: displayname, size: 16), + const SizedBox(width: 8), + Text(displayname), + Expanded( + child: Text( + ' | ${event.originServerTs.localizedTimeShort(context)}', + style: const TextStyle(fontSize: 12), + ), + ), + ], + ), + subtitle: Linkify( + textScaleFactor: MediaQuery.textScalerOf(context).scale(1), + options: const LinkifyOptions(humanize: false), + linkStyle: TextStyle( + color: theme.colorScheme.primary, + decoration: TextDecoration.underline, + decorationColor: theme.colorScheme.primary, + ), + onOpen: (url) => UrlLauncher(context, url.url).launchUrl(), + text: event + .calcLocalizedBodyFallback( + plaintextBody: true, + removeMarkdown: true, + MatrixLocals(L10n.of(context)), + ) + .trim(), + maxLines: 7, + overflow: TextOverflow.ellipsis, + ), + trailing: IconButton( + icon: const Icon(Icons.chevron_right_outlined), + onPressed: () => context.go( + '/${Uri(pathSegments: ['rooms', room.id], queryParameters: {'event': event.eventId})}', + ), + ), + ); + } +} diff --git a/lib/pages/chat_search/chat_search_page.dart b/lib/pages/chat_search/chat_search_page.dart new file mode 100644 index 0000000..a57e38a --- /dev/null +++ b/lib/pages/chat_search/chat_search_page.dart @@ -0,0 +1,143 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/pages/chat_search/chat_search_view.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class ChatSearchPage extends StatefulWidget { + final String roomId; + const ChatSearchPage({required this.roomId, super.key}); + + @override + ChatSearchController createState() => ChatSearchController(); +} + +class ChatSearchController extends State + with SingleTickerProviderStateMixin { + Room? get room => Matrix.of(context).client.getRoomById(widget.roomId); + + final TextEditingController searchController = TextEditingController(); + late final TabController tabController; + + final List messages = []; + final List images = []; + final List files = []; + String? messagesNextBatch, imagesNextBatch, filesNextBatch; + bool messagesEndReached = false; + bool imagesEndReached = false; + bool filesEndReached = false; + bool isLoading = false; + DateTime? searchedUntil; + + void restartSearch() { + setState(() { + messages.clear(); + images.clear(); + files.clear(); + messagesNextBatch = imagesNextBatch = filesNextBatch = searchedUntil = + null; + messagesEndReached = imagesEndReached = filesEndReached = false; + }); + WidgetsBinding.instance.addPostFrameCallback((timeStamp) { + startSearch(); + }); + } + + Future startSearch() async { + switch (tabController.index) { + case 0: + final searchQuery = searchController.text.trim(); + if (searchQuery.isEmpty) return; + setState(() { + isLoading = true; + }); + final result = await room!.searchEvents( + searchTerm: searchController.text.trim(), + nextBatch: messagesNextBatch, + ); + setState(() { + isLoading = false; + messages.addAll(result.events); + messagesNextBatch = result.nextBatch; + messagesEndReached = result.nextBatch == null; + searchedUntil = result.searchedUntil; + }); + return; + case 1: + setState(() { + isLoading = true; + }); + final result = await room!.searchEvents( + searchFunc: (event) => { + MessageTypes.Image, + MessageTypes.Video, + }.contains(event.messageType), + nextBatch: imagesNextBatch, + ); + setState(() { + isLoading = false; + images.addAll(result.events); + imagesNextBatch = result.nextBatch; + imagesEndReached = result.nextBatch == null; + searchedUntil = result.searchedUntil; + }); + return; + case 2: + setState(() { + isLoading = true; + }); + final result = await room!.searchEvents( + searchFunc: (event) => + event.messageType == MessageTypes.File || + (event.messageType == MessageTypes.Audio && + !event.content.containsKey('org.matrix.msc3245.voice')), + nextBatch: filesNextBatch, + ); + setState(() { + isLoading = false; + files.addAll(result.events); + filesNextBatch = result.nextBatch; + filesEndReached = result.nextBatch == null; + searchedUntil = result.searchedUntil; + }); + return; + default: + return; + } + } + + void _onTabChanged() { + switch (tabController.index) { + case 1: + case 2: + startSearch(); + break; + case 0: + default: + restartSearch(); + break; + } + } + + @override + void initState() { + super.initState(); + tabController = TabController(initialIndex: 0, length: 3, vsync: this); + tabController.addListener(_onTabChanged); + } + + @override + void dispose() { + tabController.removeListener(_onTabChanged); + searchController.dispose(); + tabController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) => ChatSearchView(this); +} diff --git a/lib/pages/chat_search/chat_search_view.dart b/lib/pages/chat_search/chat_search_view.dart new file mode 100644 index 0000000..6d65746 --- /dev/null +++ b/lib/pages/chat_search/chat_search_view.dart @@ -0,0 +1,122 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat_search/chat_search_files_tab.dart'; +import 'package:tatchat/pages/chat_search/chat_search_images_tab.dart'; +import 'package:tatchat/pages/chat_search/chat_search_message_tab.dart'; +import 'package:tatchat/pages/chat_search/chat_search_page.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:tatchat/widgets/layouts/max_width_body.dart'; +import 'package:material_ui/material_ui.dart'; + +class ChatSearchView extends StatelessWidget { + final ChatSearchController controller; + + const ChatSearchView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final room = controller.room; + if (room == null) { + return Scaffold( + appBar: AppBar(title: Text(L10n.of(context).oopsSomethingWentWrong)), + body: Center( + child: Padding( + padding: const EdgeInsets.all(16), + child: Text(L10n.of(context).youAreNoLongerParticipatingInThisChat), + ), + ), + ); + } + + final theme = Theme.of(context); + + return Scaffold( + appBar: AppBar( + leading: const Center(child: BackButton()), + titleSpacing: 0, + title: Text( + L10n.of(context).searchIn( + room.getLocalizedDisplayname(MatrixLocals(L10n.of(context))), + ), + ), + ), + body: MaxWidthBody( + withScrolling: false, + child: Column( + children: [ + if (FluffyThemes.isThreeColumnMode(context)) + const SizedBox(height: 16), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: TextField( + controller: controller.searchController, + onSubmitted: (_) => controller.restartSearch(), + autofocus: true, + enabled: controller.tabController.index == 0, + decoration: InputDecoration( + hintText: L10n.of(context).search, + prefixIcon: const Icon(Icons.search_outlined), + filled: true, + fillColor: theme.colorScheme.secondaryContainer, + border: OutlineInputBorder( + borderSide: BorderSide.none, + borderRadius: BorderRadius.circular(99), + ), + hintStyle: TextStyle( + color: theme.colorScheme.onPrimaryContainer, + fontWeight: FontWeight.normal, + ), + ), + ), + ), + TabBar( + controller: controller.tabController, + tabs: [ + Tab(child: Text(L10n.of(context).messages)), + Tab(child: Text(L10n.of(context).gallery)), + Tab(child: Text(L10n.of(context).files)), + ], + ), + Expanded( + child: TabBarView( + controller: controller.tabController, + children: [ + ChatSearchMessageTab( + searchQuery: controller.searchController.text, + room: room, + onStartSearch: controller.startSearch, + events: controller.messages, + endReached: controller.messagesEndReached, + isLoading: controller.isLoading, + searchedUntil: controller.searchedUntil, + ), + ChatSearchImagesTab( + room: room, + onStartSearch: controller.startSearch, + events: controller.images, + endReached: controller.imagesEndReached, + isLoading: controller.isLoading, + searchedUntil: controller.searchedUntil, + ), + ChatSearchFilesTab( + room: room, + onStartSearch: controller.startSearch, + events: controller.files, + endReached: controller.filesEndReached, + isLoading: controller.isLoading, + searchedUntil: controller.searchedUntil, + ), + ], + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/pages/chat_search/search_footer.dart b/lib/pages/chat_search/search_footer.dart new file mode 100644 index 0000000..e954052 --- /dev/null +++ b/lib/pages/chat_search/search_footer.dart @@ -0,0 +1,72 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/date_time_extension.dart'; +import 'package:material_ui/material_ui.dart'; + +class SearchFooter extends StatelessWidget { + final DateTime? searchedUntil; + final bool endReached, isLoading; + final void Function() onStartSearch; + + const SearchFooter({ + super.key, + required this.searchedUntil, + required this.endReached, + required this.isLoading, + required this.onStartSearch, + }); + + @override + Widget build(BuildContext context) { + if (endReached) { + return Center( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Text(L10n.of(context).noMoreResultsFound), + ), + ); + } + final theme = Theme.of(context); + final searchedUntil = this.searchedUntil; + return Center( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + mainAxisSize: .min, + children: [ + if (searchedUntil != null) + Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + L10n.of( + context, + ).chatSearchedUntil(searchedUntil.localizedTime(context)), + style: TextStyle(fontSize: 10.5), + ), + ), + TextButton.icon( + style: TextButton.styleFrom( + backgroundColor: theme.colorScheme.secondaryContainer, + foregroundColor: theme.colorScheme.onSecondaryContainer, + ), + onPressed: isLoading ? null : onStartSearch, + icon: isLoading + ? SizedBox.square( + dimension: 18, + child: const CircularProgressIndicator.adaptive( + strokeWidth: 2, + ), + ) + : const Icon(Icons.arrow_downward_outlined), + label: Text(L10n.of(context).searchMore), + ), + ], + ), + ), + ); + } +} diff --git a/lib/pages/device_settings/device_settings.dart b/lib/pages/device_settings/device_settings.dart new file mode 100644 index 0000000..4c0d32f --- /dev/null +++ b/lib/pages/device_settings/device_settings.dart @@ -0,0 +1,179 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:async/async.dart' show Result; +import 'package:collection/collection.dart' show IterableExtension; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/device_settings/device_settings_view.dart'; +import 'package:tatchat/pages/key_verification/key_verification_dialog.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/future_loading_dialog.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/encryption.dart'; +import 'package:matrix/matrix.dart' hide Result; +import 'package:url_launcher/url_launcher_string.dart'; + +import '../../widgets/matrix.dart'; + +class DevicesSettings extends StatefulWidget { + const DevicesSettings({super.key}); + + @override + DevicesSettingsController createState() => DevicesSettingsController(); +} + +class DevicesSettingsController extends State { + List? devices; + Future loadUserDevices(BuildContext context) async { + if (devices != null) return true; + devices = await Matrix.of(context).client.getDevices(); + return true; + } + + void reload() => setState(() => devices = null); + + bool? chatBackupEnabled; + + @override + void initState() { + _checkChatBackup(); + super.initState(); + } + + Future _checkChatBackup() async { + final client = Matrix.of(context).client; + final state = await client.getCryptoIdentityState(); + if (!mounted) return; + setState(() { + chatBackupEnabled = state.initialized && !state.connected; + }); + } + + Future removeDevicesAction(List devices) async { + final l10n = L10n.of(context); + final matrix = Matrix.of(context); + final client = Matrix.of(context).client; + + final wellKnown = await Result.capture(client.getWellknown()); + final accountManageUrl = wellKnown.asValue?.value.additionalProperties + .tryGetMap('org.matrix.msc2965.authentication') + ?.tryGet('account'); + if (accountManageUrl != null) { + launchUrlString(accountManageUrl, mode: LaunchMode.inAppBrowserView); + return; + } + if (!mounted) return; + if (await showOkCancelAlertDialog( + context: context, + title: l10n.areYouSure, + okLabel: l10n.remove, + cancelLabel: l10n.cancel, + message: l10n.removeDevicesDescription, + isDestructive: true, + ) == + OkCancelResult.cancel) { + return; + } + if (!mounted) return; + final deviceIds = []; + for (final userDevice in devices) { + deviceIds.add(userDevice.deviceId); + } + + await showFutureLoadingDialog( + context: context, + delay: false, + future: () => matrix.client.uiaRequestBackground( + (auth) => matrix.client.deleteDevices(deviceIds, auth: auth), + ), + ); + reload(); + } + + Future renameDeviceAction(Device device) async { + final l10n = L10n.of(context); + final matrix = Matrix.of(context); + final displayName = await showTextInputDialog( + context: context, + title: l10n.changeDeviceName, + okLabel: l10n.ok, + cancelLabel: l10n.cancel, + hintText: device.displayName, + ); + if (displayName == null) return; + if (!mounted) return; + final success = await showFutureLoadingDialog( + context: context, + future: () => + matrix.client.updateDevice(device.deviceId, displayName: displayName), + ); + if (success.error == null) { + reload(); + } + } + + Future verifyDeviceAction(Device device) async { + final l10n = L10n.of(context); + final matrix = Matrix.of(context); + final consent = await showOkCancelAlertDialog( + context: context, + title: l10n.verifyOtherDevice, + message: l10n.verifyOtherDeviceDescription, + okLabel: l10n.ok, + cancelLabel: l10n.cancel, + ); + if (consent != OkCancelResult.ok) return; + if (!mounted) return; + final req = await matrix + .client + .userDeviceKeys[matrix.client.userID!]! + .deviceKeys[device.deviceId]! + .startVerification(); + req.onUpdate = () { + if ({ + KeyVerificationState.error, + KeyVerificationState.done, + }.contains(req.state)) { + setState(() {}); + } + }; + if (!mounted) return; + await KeyVerificationDialog(request: req).show(context); + } + + Future blockDeviceAction(Device device) async { + final key = Matrix.of(context) + .client + .userDeviceKeys[Matrix.of(context).client.userID!]! + .deviceKeys[device.deviceId]!; + if (key.directVerified) { + await key.setVerified(false); + } + await key.setBlocked(true); + setState(() {}); + } + + Future unblockDeviceAction(Device device) async { + final key = Matrix.of(context) + .client + .userDeviceKeys[Matrix.of(context).client.userID!]! + .deviceKeys[device.deviceId]!; + await key.setBlocked(false); + setState(() {}); + } + + bool _isOwnDevice(Device userDevice) => + userDevice.deviceId == Matrix.of(context).client.deviceID; + + Device? get thisDevice => devices!.firstWhereOrNull(_isOwnDevice); + + List get notThisDevice => List.from(devices!) + ..removeWhere(_isOwnDevice) + ..sort((a, b) => (b.lastSeenTs ?? 0).compareTo(a.lastSeenTs ?? 0)); + + @override + Widget build(BuildContext context) => DevicesSettingsView(this); +} diff --git a/lib/pages/device_settings/device_settings_view.dart b/lib/pages/device_settings/device_settings_view.dart new file mode 100644 index 0000000..60f40e0 --- /dev/null +++ b/lib/pages/device_settings/device_settings_view.dart @@ -0,0 +1,148 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/device_settings/device_settings.dart'; +import 'package:tatchat/widgets/layouts/max_width_body.dart'; +import 'package:material_ui/material_ui.dart'; + +import 'user_device_list_item.dart'; + +class DevicesSettingsView extends StatelessWidget { + final DevicesSettingsController controller; + + const DevicesSettingsView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + automaticallyImplyLeading: !FluffyThemes.isColumnMode(context), + centerTitle: FluffyThemes.isColumnMode(context), + title: Text(L10n.of(context).devices), + ), + body: MaxWidthBody( + child: FutureBuilder( + future: controller.loadUserDevices(context), + builder: (BuildContext context, snapshot) { + final theme = Theme.of(context); + if (snapshot.hasError) { + return Center( + child: Column( + mainAxisSize: .min, + children: [ + const Icon(Icons.error_outlined), + Text(snapshot.error.toString()), + ], + ), + ); + } + if (!snapshot.hasData || controller.devices == null) { + return const Center( + child: CircularProgressIndicator.adaptive(strokeWidth: 2), + ); + } + return ListView.builder( + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + itemCount: controller.notThisDevice.length + 1, + itemBuilder: (BuildContext context, int i) { + if (i == 0) { + return Column( + mainAxisSize: .min, + children: [ + if (controller.chatBackupEnabled == false) + Padding( + padding: const EdgeInsets.symmetric(horizontal: 8.0), + child: ListTile( + leading: const CircleAvatar( + child: Icon(Icons.info_outlined), + ), + subtitle: Text( + L10n.of( + context, + ).noticeChatBackupDeviceVerification, + ), + ), + ), + if (controller.thisDevice != null) ...[ + Container( + padding: const EdgeInsets.symmetric( + horizontal: 16.0, + vertical: 8.0, + ), + alignment: Alignment.centerLeft, + child: Text( + L10n.of(context).thisDevice, + style: TextStyle( + fontWeight: FontWeight.bold, + color: theme.colorScheme.primary, + ), + textAlign: TextAlign.left, + ), + ), + UserDeviceListItem( + controller.thisDevice!, + rename: controller.renameDeviceAction, + remove: (d) => controller.removeDevicesAction([d]), + verify: controller.verifyDeviceAction, + block: controller.blockDeviceAction, + unblock: controller.unblockDeviceAction, + ), + ], + if (controller.notThisDevice.isNotEmpty) + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 16.0, + vertical: 8.0, + ), + child: SizedBox( + width: double.infinity, + child: TextButton.icon( + label: Text( + L10n.of(context).removeAllOtherDevices, + ), + style: TextButton.styleFrom( + iconColor: theme.colorScheme.onErrorContainer, + foregroundColor: + theme.colorScheme.onErrorContainer, + backgroundColor: + theme.colorScheme.errorContainer, + ), + icon: const Icon(Icons.delete_outline), + onPressed: () => controller.removeDevicesAction( + controller.notThisDevice, + ), + ), + ), + ) + else + Center( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Text(L10n.of(context).noOtherDevicesFound), + ), + ), + ], + ); + } + i--; + return UserDeviceListItem( + controller.notThisDevice[i], + rename: controller.renameDeviceAction, + remove: (d) => controller.removeDevicesAction([d]), + verify: controller.verifyDeviceAction, + block: controller.blockDeviceAction, + unblock: controller.unblockDeviceAction, + ); + }, + ); + }, + ), + ), + ); + } +} diff --git a/lib/pages/device_settings/user_device_list_item.dart b/lib/pages/device_settings/user_device_list_item.dart new file mode 100644 index 0000000..dd8d31f --- /dev/null +++ b/lib/pages/device_settings/user_device_list_item.dart @@ -0,0 +1,154 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_modal_action_popup.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../utils/date_time_extension.dart'; +import '../../utils/matrix_sdk_extensions/device_extension.dart'; +import '../../widgets/matrix.dart'; + +enum UserDeviceListItemAction { rename, remove, verify, block, unblock } + +class UserDeviceListItem extends StatelessWidget { + final Device userDevice; + final void Function(Device) remove; + final void Function(Device) rename; + final void Function(Device) verify; + final void Function(Device) block; + final void Function(Device) unblock; + + const UserDeviceListItem( + this.userDevice, { + required this.remove, + required this.rename, + required this.verify, + required this.block, + required this.unblock, + super.key, + }); + + @override + Widget build(BuildContext context) { + final client = Matrix.of(context).client; + final keys = client + .userDeviceKeys[Matrix.of(context).client.userID] + ?.deviceKeys[userDevice.deviceId]; + final isOwnDevice = userDevice.deviceId == client.deviceID; + + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 8.0), + child: Material( + borderRadius: BorderRadius.circular(AppConfig.borderRadius), + clipBehavior: Clip.hardEdge, + child: ListTile( + onTap: () async { + final action = await showModalActionPopup( + context: context, + title: '${userDevice.displayName} (${userDevice.deviceId})', + cancelLabel: L10n.of(context).cancel, + actions: [ + AdaptiveModalAction( + value: UserDeviceListItemAction.rename, + icon: const Icon(Icons.edit_outlined), + label: L10n.of(context).changeDeviceName, + ), + if (!isOwnDevice && keys != null) ...{ + AdaptiveModalAction( + value: UserDeviceListItemAction.verify, + icon: const Icon(Icons.verified_outlined), + label: L10n.of(context).verifyStart, + ), + if (!keys.blocked) + AdaptiveModalAction( + value: UserDeviceListItemAction.block, + icon: const Icon(Icons.block_outlined), + label: L10n.of(context).blockDevice, + isDestructive: true, + ), + if (keys.blocked) + AdaptiveModalAction( + value: UserDeviceListItemAction.unblock, + icon: const Icon(Icons.block), + label: L10n.of(context).unblockDevice, + isDestructive: true, + ), + }, + if (!isOwnDevice) + AdaptiveModalAction( + value: UserDeviceListItemAction.remove, + icon: const Icon(Icons.delete_outlined), + label: L10n.of(context).delete, + isDestructive: true, + ), + ], + ); + if (action == null) return; + switch (action) { + case UserDeviceListItemAction.rename: + rename(userDevice); + break; + case UserDeviceListItemAction.remove: + remove(userDevice); + break; + case UserDeviceListItemAction.verify: + verify(userDevice); + break; + case UserDeviceListItemAction.block: + block(userDevice); + break; + case UserDeviceListItemAction.unblock: + unblock(userDevice); + break; + } + }, + leading: CircleAvatar( + foregroundColor: Colors.white, + backgroundColor: keys == null + ? Colors.grey[700] + : keys.blocked + ? Colors.red + : keys.verified + ? Colors.green + : Colors.orange, + child: Icon(userDevice.icon), + ), + title: Text( + userDevice.displayname, + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + subtitle: Text( + L10n.of(context).lastActiveAgo( + DateTime.fromMillisecondsSinceEpoch( + userDevice.lastSeenTs ?? 0, + ).localizedTimeShort(context), + ), + style: const TextStyle(fontWeight: FontWeight.w300), + ), + trailing: keys == null + ? null + : Text( + keys.blocked + ? L10n.of(context).blocked + : keys.verified + ? L10n.of(context).verified + : L10n.of(context).unverified, + style: TextStyle( + color: keys.blocked + ? Colors.red + : keys.verified + ? Colors.green + : Colors.orange, + ), + ), + ), + ), + ); + } +} diff --git a/lib/pages/image_viewer/image_viewer.dart b/lib/pages/image_viewer/image_viewer.dart new file mode 100644 index 0000000..d49aa77 --- /dev/null +++ b/lib/pages/image_viewer/image_viewer.dart @@ -0,0 +1,134 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/pages/image_viewer/image_viewer_view.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/utils/show_scaffold_dialog.dart'; +import 'package:tatchat/widgets/share_scaffold_dialog.dart'; +import 'package:flutter/services.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../utils/matrix_sdk_extensions/event_extension.dart'; + +class ImageViewer extends StatefulWidget { + final Event event; + final Timeline? timeline; + final BuildContext outerContext; + + const ImageViewer( + this.event, { + required this.outerContext, + this.timeline, + super.key, + }); + + @override + ImageViewerController createState() => ImageViewerController(); +} + +class ImageViewerController extends State { + final FocusNode focusNode = FocusNode(); + + @override + void initState() { + super.initState(); + allEvents = + widget.timeline?.events + .where( + (event) => { + MessageTypes.Image, + MessageTypes.Sticker, + if (PlatformInfos.supportsVideoPlayer) MessageTypes.Video, + }.contains(event.messageType), + ) + .toList() + .reversed + .toList() ?? + [widget.event]; + var index = allEvents.indexWhere( + (event) => event.eventId == widget.event.eventId, + ); + if (index < 0) index = 0; + pageController = PageController(initialPage: index); + } + + late final PageController pageController; + + late final List allEvents; + + void onKeyEvent(KeyEvent event) { + switch (event.logicalKey) { + case LogicalKeyboardKey.arrowUp: + if (canGoBack) prevImage(); + break; + case LogicalKeyboardKey.arrowDown: + if (canGoNext) nextImage(); + break; + } + } + + Future prevImage() async { + await pageController.previousPage( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + ); + if (!mounted) return; + setState(() {}); + } + + Future nextImage() async { + await pageController.nextPage( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + ); + if (!mounted) return; + setState(() {}); + } + + int get _index => pageController.page?.toInt() ?? 0; + + Event get currentEvent => allEvents[_index]; + + bool get canGoNext => _index < allEvents.length - 1; + + bool get canGoBack => _index > 0; + + /// Forward this image to another room. + void forwardAction() => showScaffoldDialog( + context: context, + builder: (context) => + ShareScaffoldDialog(items: [ContentShareItem(currentEvent.content)]), + ); + + /// Save this file with a system call. + void saveFileAction(BuildContext context) => currentEvent.saveFile(context); + + /// Save this file with a system call. + void shareFileAction(BuildContext context) => currentEvent.shareFile(context); + + static const maxScaleFactor = 1.5; + + /// Go back if user swiped it away + void onInteractionEnds(ScaleEndDetails endDetails) { + if (PlatformInfos.usesTouchscreen == false) { + if (endDetails.velocity.pixelsPerSecond.dy > + MediaQuery.sizeOf(context).height * maxScaleFactor) { + Navigator.of(context, rootNavigator: false).pop(); + } + } + } + + @override + void dispose() { + focusNode.dispose(); + pageController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) => ImageViewerView(this); +} diff --git a/lib/pages/image_viewer/image_viewer_view.dart b/lib/pages/image_viewer/image_viewer_view.dart new file mode 100644 index 0000000..fe659b6 --- /dev/null +++ b/lib/pages/image_viewer/image_viewer_view.dart @@ -0,0 +1,162 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/image_viewer/video_player.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/widgets/hover_builder.dart'; +import 'package:tatchat/widgets/mxc_image.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import 'image_viewer.dart'; + +class ImageViewerView extends StatelessWidget { + final ImageViewerController controller; + + const ImageViewerView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final iconButtonStyle = IconButton.styleFrom( + backgroundColor: Colors.black.withAlpha(200), + foregroundColor: Colors.white, + ); + return GestureDetector( + onTap: () => Navigator.of(context).pop(), + child: Scaffold( + backgroundColor: Colors.black.withAlpha(128), + extendBodyBehindAppBar: true, + appBar: AppBar( + elevation: 0, + leading: IconButton( + style: iconButtonStyle, + icon: const Icon(Icons.close), + onPressed: Navigator.of(context).pop, + color: Colors.white, + tooltip: L10n.of(context).close, + ), + backgroundColor: Colors.transparent, + actions: [ + IconButton( + style: iconButtonStyle, + icon: const Icon(Icons.reply_outlined), + onPressed: controller.forwardAction, + color: Colors.white, + tooltip: L10n.of(context).share, + ), + const SizedBox(width: 8), + IconButton( + style: iconButtonStyle, + icon: const Icon(Icons.download_outlined), + onPressed: () => controller.saveFileAction(context), + color: Colors.white, + tooltip: L10n.of(context).downloadFile, + ), + const SizedBox(width: 8), + if (PlatformInfos.isMobile) + // Use builder context to correctly position the share dialog on iPad + Padding( + padding: const EdgeInsets.only(right: 8.0), + child: Builder( + builder: (context) => IconButton( + style: iconButtonStyle, + onPressed: () => controller.shareFileAction(context), + tooltip: L10n.of(context).share, + color: Colors.white, + icon: Icon(Icons.adaptive.share_outlined), + ), + ), + ), + ], + ), + body: HoverBuilder( + builder: (context, hovered) => Stack( + children: [ + KeyboardListener( + focusNode: controller.focusNode, + onKeyEvent: controller.onKeyEvent, + child: PageView.builder( + scrollDirection: Axis.vertical, + controller: controller.pageController, + itemCount: controller.allEvents.length, + itemBuilder: (context, i) { + final event = controller.allEvents[i]; + switch (event.messageType) { + case MessageTypes.Video: + return Padding( + padding: const EdgeInsets.only(top: 52.0), + child: Center( + child: GestureDetector( + // Ignore taps to not go back here: + onTap: () {}, + child: EventVideoPlayer(event), + ), + ), + ); + case MessageTypes.Image: + case MessageTypes.Sticker: + default: + return InteractiveViewer( + minScale: 1.0, + maxScale: 10.0, + onInteractionEnd: controller.onInteractionEnds, + child: Center( + child: Hero( + tag: event.eventId, + child: GestureDetector( + // Ignore taps to not go back here: + onTap: () {}, + child: MxcImage( + key: ValueKey(event.eventId), + event: event, + fit: BoxFit.contain, + isThumbnail: false, + animated: true, + ), + ), + ), + ), + ); + } + }, + ), + ), + if (hovered) + Align( + alignment: Alignment.centerRight, + child: Column( + mainAxisSize: .min, + children: [ + if (controller.canGoBack) + Padding( + padding: const EdgeInsets.all(12.0), + child: IconButton( + style: iconButtonStyle, + tooltip: L10n.of(context).previous, + icon: const Icon(Icons.arrow_upward_outlined), + onPressed: controller.prevImage, + ), + ), + if (controller.canGoNext) + Padding( + padding: const EdgeInsets.all(12.0), + child: IconButton( + style: iconButtonStyle, + tooltip: L10n.of(context).next, + icon: const Icon(Icons.arrow_downward_outlined), + onPressed: controller.nextImage, + ), + ), + ], + ), + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/pages/image_viewer/video_player.dart b/lib/pages/image_viewer/video_player.dart new file mode 100644 index 0000000..1dbf663 --- /dev/null +++ b/lib/pages/image_viewer/video_player.dart @@ -0,0 +1,191 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:io'; + +import 'package:chewie/chewie.dart'; +import 'package:tatchat/utils/localized_exception_extension.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/event_extension.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/widgets/blur_hash.dart'; +import 'package:flutter/foundation.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:video_player/video_player.dart'; + +import '../../../utils/error_reporter.dart'; +import '../../widgets/mxc_image.dart'; + +class EventVideoPlayer extends StatefulWidget { + final Event event; + + const EventVideoPlayer(this.event, {super.key}); + + @override + EventVideoPlayerState createState() => EventVideoPlayerState(); +} + +class EventVideoPlayerState extends State { + ChewieController? _chewieController; + VideoPlayerController? _videoPlayerController; + + double? _downloadProgress; + + // The video_player package only doesn't support Windows and Linux. + final _supportsVideoPlayer = + !PlatformInfos.isWindows && !PlatformInfos.isLinux; + + Future _downloadAction() async { + if (!_supportsVideoPlayer) { + widget.event.saveFile(context); + return; + } + + try { + final fileSize = widget.event.content + .tryGetMap('info') + ?.tryGet('size'); + final videoFile = await widget.event.downloadAndDecryptAttachment( + onDownloadProgress: fileSize == null + ? null + : (progress) { + final progressPercentage = progress / fileSize; + setState(() { + _downloadProgress = progressPercentage < 1 + ? progressPercentage + : null; + }); + }, + ); + + // Dispose the controllers if we already have them. + _disposeControllers(); + late VideoPlayerController videoPlayerController; + + // Create the VideoPlayerController from the contents of videoFile. + if (kIsWeb) { + videoPlayerController = VideoPlayerController.networkUrl( + Uri.dataFromBytes(videoFile.bytes, mimeType: videoFile.mimeType), + ); + } else { + final tempDir = await getTemporaryDirectory(); + final fileNameStr = + widget.event.attachmentMxcUrl?.pathSegments.last ?? + widget.event.body; + final fileName = Uri.encodeComponent(fileNameStr); + final file = File('${tempDir.path}/${fileName}_${videoFile.name}'); + if (await file.exists() == false) { + await file.writeAsBytes(videoFile.bytes); + } + videoPlayerController = VideoPlayerController.file(file); + } + _videoPlayerController = videoPlayerController; + + await videoPlayerController.initialize(); + + // Create a ChewieController on top. + setState(() { + _chewieController = ChewieController( + videoPlayerController: videoPlayerController, + showControlsOnInitialize: false, + autoPlay: true, + autoInitialize: true, + looping: true, + aspectRatio: _videoPlayerController?.value.aspectRatio, + ); + }); + } on IOException catch (e) { + if (!mounted) return; + ScaffoldMessenger.of( + context, + ).showSnackBar(SnackBar(content: Text(e.toLocalizedString(context)))); + } catch (e, s) { + if (!mounted) return; + ErrorReporter(context, 'Unable to play video').onErrorCallback(e, s); + } + } + + void _disposeControllers() { + _chewieController?.dispose(); + _videoPlayerController?.dispose(); + _chewieController = null; + _videoPlayerController = null; + } + + @override + void dispose() { + _disposeControllers(); + super.dispose(); + } + + @override + void initState() { + super.initState(); + WidgetsBinding.instance.addPostFrameCallback((_) { + _downloadAction(); + }); + } + + static const String fallbackBlurHash = 'L5H2EC=PM+yV0g-mq.wG9c010J}I'; + + @override + Widget build(BuildContext context) { + final hasThumbnail = widget.event.hasThumbnail; + final blurHash = + (widget.event.infoMap as Map).tryGet( + 'xyz.amorgan.blurhash', + ) ?? + fallbackBlurHash; + final infoMap = widget.event.content.tryGetMap('info'); + final videoWidth = infoMap?.tryGet('w') ?? 400; + final videoHeight = infoMap?.tryGet('h') ?? 300; + final height = MediaQuery.sizeOf(context).height - 52; + final width = videoWidth * (height / videoHeight); + + final chewieController = _chewieController; + return chewieController != null + ? Center( + child: SizedBox( + width: width, + height: height, + child: Chewie(controller: chewieController), + ), + ) + : Stack( + children: [ + Center( + child: Hero( + tag: widget.event.eventId, + child: hasThumbnail + ? MxcImage( + event: widget.event, + isThumbnail: true, + width: width, + height: height, + fit: BoxFit.cover, + placeholder: (context) => BlurHash( + blurhash: blurHash, + width: width, + height: height, + fit: BoxFit.cover, + ), + ) + : BlurHash( + blurhash: blurHash, + width: width, + height: height, + ), + ), + ), + Center( + child: CircularProgressIndicator.adaptive( + value: _downloadProgress, + ), + ), + ], + ); + } +} diff --git a/lib/pages/intro/flows/restore_backup_flow.dart b/lib/pages/intro/flows/restore_backup_flow.dart new file mode 100644 index 0000000..11edc8b --- /dev/null +++ b/lib/pages/intro/flows/restore_backup_flow.dart @@ -0,0 +1,38 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/utils/file_selector.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; + +Future restoreBackupFlow(BuildContext context) async { + final matrix = Matrix.of(context); + final picked = await selectFiles(context); + final file = picked.firstOrNull; + if (file == null) return; + + if (!context.mounted) return; + final result = await showFutureLoadingDialog( + context: context, + future: () async { + final client = await matrix.getLoginClient(); + await client.database.importDump( + String.fromCharCodes(await file.readAsBytes()), + ); + await client.init( + waitForFirstSync: false, + waitUntilLoadCompletedLoaded: false, + ); + matrix.initMatrix(); + return client.isLogged(); + }, + ); + + if (result.result == true && context.mounted) { + context.go('/rooms'); + } +} diff --git a/lib/pages/intro/intro_page.dart b/lib/pages/intro/intro_page.dart new file mode 100644 index 0000000..1a95ef8 --- /dev/null +++ b/lib/pages/intro/intro_page.dart @@ -0,0 +1,199 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/intro/flows/restore_backup_flow.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/widgets/layouts/login_scaffold.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:url_launcher/url_launcher_string.dart'; + +class IntroPage extends StatelessWidget { + final bool isLoading, hasPresetHomeserver; + final String? loggingInToHomeserver, welcomeText; + final VoidCallback login, register; + + const IntroPage({ + required this.isLoading, + required this.loggingInToHomeserver, + super.key, + required this.hasPresetHomeserver, + required this.welcomeText, + required this.login, + required this.register, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final addMultiAccount = Matrix.of( + context, + ).widget.clients.any((client) => client.isLogged()); + final loggingInToHomeserver = this.loggingInToHomeserver; + + return LoginScaffold( + appBar: AppBar( + centerTitle: true, + title: addMultiAccount + ? Text(L10n.of(context).addAccount) + : Text(AppSettings.applicationName.value), + actions: [ + PopupMenuButton( + useRootNavigator: true, + itemBuilder: (_) => [ + PopupMenuItem( + onTap: isLoading ? null : () => restoreBackupFlow(context), + child: Row( + mainAxisSize: .min, + spacing: 12, + children: [ + const Icon(Icons.import_export_outlined), + Expanded( + child: Text( + L10n.of(context).hydrate, + maxLines: 1, + overflow: .ellipsis, + ), + ), + ], + ), + ), + PopupMenuItem( + onTap: () => launchUrlString(AppSettings.privacyPolicy.value), + child: Row( + mainAxisSize: .min, + spacing: 12, + children: [ + const Icon(Icons.privacy_tip_outlined), + Text(L10n.of(context).privacy), + ], + ), + ), + PopupMenuItem( + onTap: () => PlatformInfos.showDialog(context), + child: Row( + mainAxisSize: .min, + spacing: 12, + children: [ + const Icon(Icons.info_outlined), + Text(L10n.of(context).about), + ], + ), + ), + ], + ), + ], + ), + body: isLoading + ? Center( + child: Column( + mainAxisAlignment: .center, + children: [ + CircularProgressIndicator.adaptive(), + if (loggingInToHomeserver != null) + Text(L10n.of(context).logInTo(loggingInToHomeserver)), + ], + ), + ) + : LayoutBuilder( + builder: (context, constraints) { + return SingleChildScrollView( + child: ConstrainedBox( + constraints: BoxConstraints( + minHeight: constraints.maxHeight, + ), + child: IntrinsicHeight( + child: Column( + children: [ + Container( + alignment: Alignment.center, + padding: const EdgeInsets.all(32.0), + child: Hero( + tag: 'info-logo', + child: ClipRRect( + borderRadius: BorderRadius.circular(128), + child: Image.asset( + './assets/logo/mini/logo_mini.png', + width: 128, + height: 128, + ), + ), + ), + ), + Text( + L10n.of(context).appSubtitle, + textAlign: TextAlign.center, + style: TextStyle(fontSize: 20), + ), + const SizedBox(height: 8), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24), + child: Text( + welcomeText ?? L10n.of(context).appDescription, + textAlign: TextAlign.center, + ), + ), + const Spacer(), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 32), + child: Column( + mainAxisSize: .min, + crossAxisAlignment: .stretch, + children: [ + ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: + theme.colorScheme.secondary, + foregroundColor: + theme.colorScheme.onSecondary, + ), + onPressed: hasPresetHomeserver + ? register + : () => context.go( + '${GoRouterState.of(context).uri.path}/sign_up', + ), + child: Text( + L10n.of(context).createNewAccount, + ), + ), + SizedBox(height: 16), + ElevatedButton( + onPressed: login, + child: Text(L10n.of(context).signIn), + ), + + if (!hasPresetHomeserver) + TextButton( + onPressed: () async { + final client = await Matrix.of( + context, + ).getLoginClient(); + if (!context.mounted) return; + context.go( + '${GoRouterState.of(context).uri.path}/login', + extra: client, + ); + }, + child: Text( + L10n.of(context).loginWithMatrixId, + ), + ), + ], + ), + ), + const SizedBox(height: 36), + ], + ), + ), + ), + ); + }, + ), + ); + } +} diff --git a/lib/pages/intro/intro_page_presenter.dart b/lib/pages/intro/intro_page_presenter.dart new file mode 100644 index 0000000..6865894 --- /dev/null +++ b/lib/pages/intro/intro_page_presenter.dart @@ -0,0 +1,144 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:convert'; + +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/pages/intro/intro_page.dart'; +import 'package:tatchat/pages/sign_in/view_model/model/public_homeserver_data.dart'; +import 'package:tatchat/utils/localized_exception_extension.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/oidc_session_json_extension.dart'; +import 'package:tatchat/utils/sign_in_flows/check_homeserver.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:flutter/foundation.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix_api_lite/utils/logs.dart'; +import 'package:matrix/msc_extensions/msc_2964_oidc_login_flow/msc_2964_oidc_login_flow.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:universal_html/universal_html.dart' as web; + +class IntroPagePresenter extends StatefulWidget { + const IntroPagePresenter({super.key}); + + @override + State createState() => _IntroPagePresenterState(); +} + +class _IntroPagePresenterState extends State { + bool isLoading = kIsWeb; + String? loggingInToHomeserver; + + @override + void initState() { + super.initState(); + + if (kIsWeb) _finishOidcLogin(); + } + + Future _finishOidcLogin() async { + final store = await SharedPreferences.getInstance(); + final storedHomeserverString = store.getString( + OidcSessionJsonExtension.homeserverStoreKey, + ); + final homeserverUrl = storedHomeserverString == null + ? null + : Uri.tryParse(storedHomeserverString); + + final oidcSessionString = store.getString( + OidcSessionJsonExtension.storeKey, + ); + final session = oidcSessionString == null + ? null + : OidcSessionJsonExtension.fromJson(jsonDecode(oidcSessionString)); + + await store.remove(OidcSessionJsonExtension.storeKey); + await store.remove(OidcSessionJsonExtension.homeserverStoreKey); + if (!mounted) return; + + if (homeserverUrl == null || session == null) { + setState(() { + isLoading = false; + }); + + return; + } + setState(() { + loggingInToHomeserver = homeserverUrl.origin; + }); + + try { + final returnUrl = Uri.parse(web.window.location.href); + final queryParameters = returnUrl.hasFragment + ? Uri.parse(returnUrl.fragment).queryParameters + : returnUrl.queryParameters; + final code = queryParameters['code'] as String; + final state = queryParameters['state'] as String; + + final client = await Matrix.of(context).getLoginClient(); + await client.checkHomeserver(homeserverUrl); + await client.oidcLogin(session: session, code: code, state: state); + if (!mounted) return; + context.go('/backup'); + } catch (e, s) { + Logs().w('Unable to login via OIDC', e, s); + if (mounted) { + ScaffoldMessenger.of( + context, + ).showSnackBar(SnackBar(content: Text(e.toLocalizedString(context)))); + } + } finally { + if (mounted) { + setState(() { + isLoading = false; + }); + } + } + } + + void _login() { + final presetHomeserver = AppSettings.presetHomeserver.value; + if (presetHomeserver.isEmpty) { + context.go('${GoRouterState.of(context).uri.path}/sign_in'); + return; + } + + connectToHomeserverFlow( + PublicHomeserverData(name: presetHomeserver), + context, + (snapshot) {}, + false, + ); + } + + void _signUp() { + final presetHomeserver = AppSettings.presetHomeserver.value; + if (presetHomeserver.isEmpty) { + context.go('${GoRouterState.of(context).uri.path}/sign_up'); + return; + } + + connectToHomeserverFlow( + PublicHomeserverData(name: presetHomeserver), + context, + (snapshot) {}, + true, + ); + } + + @override + Widget build(BuildContext context) { + return IntroPage( + isLoading: isLoading, + loggingInToHomeserver: loggingInToHomeserver, + hasPresetHomeserver: AppSettings.presetHomeserver.value.isNotEmpty, + welcomeText: AppSettings.welcomeText.value.isEmpty + ? null + : AppSettings.welcomeText.value, + login: _login, + register: _signUp, + ); + } +} diff --git a/lib/pages/invitation_selection/invitation_selection.dart b/lib/pages/invitation_selection/invitation_selection.dart new file mode 100644 index 0000000..84eb77d --- /dev/null +++ b/lib/pages/invitation_selection/invitation_selection.dart @@ -0,0 +1,129 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/invitation_selection/invitation_selection_view.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../utils/localized_exception_extension.dart'; + +class InvitationSelection extends StatefulWidget { + final String roomId; + const InvitationSelection({super.key, required this.roomId}); + + @override + InvitationSelectionController createState() => + InvitationSelectionController(); +} + +class InvitationSelectionController extends State { + TextEditingController controller = TextEditingController(); + late String currentSearchTerm; + bool loading = false; + List foundProfiles = []; + Timer? coolDown; + + String? get roomId => widget.roomId; + + Future> getContacts(BuildContext context) async { + final client = Matrix.of(context).client; + final room = client.getRoomById(roomId!)!; + + final participants = (room.summary.mJoinedMemberCount ?? 0) > 100 + ? room.getParticipants() + : await room.requestParticipants(); + participants.removeWhere( + (u) => ![Membership.join, Membership.invite].contains(u.membership), + ); + final contacts = client.rooms + .where((r) => r.isDirectChat) + .map((r) => r.unsafeGetUserFromMemoryOrFallback(r.directChatMatrixID!)) + .toList(); + contacts.sort( + (a, b) => a.calcDisplayname().toLowerCase().compareTo( + b.calcDisplayname().toLowerCase(), + ), + ); + return contacts; + } + + Future inviteAction( + BuildContext context, + String id, + String displayname, + ) async { + final l10n = L10n.of(context); + final scaffoldMessenger = ScaffoldMessenger.of(context); + final room = Matrix.of(context).client.getRoomById(roomId!)!; + + final success = await showFutureLoadingDialog( + context: context, + future: () => room.invite(id), + ); + if (success.error == null) { + if (!context.mounted) return; + scaffoldMessenger.showSnackBar( + SnackBar(content: Text(l10n.contactHasBeenInvitedToTheGroup)), + ); + } + } + + void searchUserWithCoolDown(String text) { + coolDown?.cancel(); + coolDown = Timer( + const Duration(milliseconds: 500), + () => searchUser(context, text), + ); + } + + Future searchUser(BuildContext context, String text) async { + coolDown?.cancel(); + if (text.isEmpty) { + setState(() => foundProfiles = []); + } + currentSearchTerm = text; + if (currentSearchTerm.isEmpty) return; + if (loading) return; + setState(() => loading = true); + final matrix = Matrix.of(context); + SearchUserDirectoryResponse response; + try { + response = await matrix.client.searchUserDirectory(text, limit: 10); + } catch (e) { + if (!context.mounted) return; + ScaffoldMessenger.of( + context, + ).showSnackBar(SnackBar(content: Text((e).toLocalizedString(context)))); + return; + } finally { + setState(() => loading = false); + } + setState(() { + foundProfiles = List.from(response.results); + if (text.isValidMatrixIdStrict() && + foundProfiles.indexWhere((profile) => text == profile.userId) == -1) { + setState( + () => foundProfiles = [ + Profile.fromJson({'user_id': text}), + ], + ); + } + }); + } + + @override + void dispose() { + controller.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) => InvitationSelectionView(this); +} diff --git a/lib/pages/invitation_selection/invitation_selection_view.dart b/lib/pages/invitation_selection/invitation_selection_view.dart new file mode 100644 index 0000000..e6b75ec --- /dev/null +++ b/lib/pages/invitation_selection/invitation_selection_view.dart @@ -0,0 +1,204 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/invitation_selection/invitation_selection.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:tatchat/widgets/layouts/max_width_body.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../widgets/adaptive_dialogs/user_dialog.dart'; + +class InvitationSelectionView extends StatelessWidget { + final InvitationSelectionController controller; + + const InvitationSelectionView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final room = Matrix.of( + context, + ).client.getRoomById(controller.widget.roomId); + if (room == null) { + return Scaffold( + appBar: AppBar(title: Text(L10n.of(context).oopsSomethingWentWrong)), + body: Center( + child: Text(L10n.of(context).youAreNoLongerParticipatingInThisChat), + ), + ); + } + + final groupName = room.name.isEmpty ? L10n.of(context).group : room.name; + final theme = Theme.of(context); + return Scaffold( + appBar: AppBar( + leading: const Center(child: BackButton()), + titleSpacing: 0, + title: Text(L10n.of(context).inviteContact), + ), + body: MaxWidthBody( + innerPadding: const EdgeInsets.symmetric(vertical: 8), + child: Column( + children: [ + Padding( + padding: const EdgeInsets.all(16.0), + child: TextField( + textInputAction: TextInputAction.search, + decoration: InputDecoration( + filled: true, + fillColor: theme.colorScheme.secondaryContainer, + border: OutlineInputBorder( + borderSide: BorderSide.none, + borderRadius: BorderRadius.circular(99), + ), + hintStyle: TextStyle( + color: theme.colorScheme.onPrimaryContainer, + fontWeight: FontWeight.normal, + ), + hintText: L10n.of(context).inviteContactToGroup(groupName), + prefixIcon: controller.loading + ? const Padding( + padding: EdgeInsets.symmetric( + vertical: 10.0, + horizontal: 12, + ), + child: SizedBox.square( + dimension: 24, + child: CircularProgressIndicator.adaptive( + strokeWidth: 2, + ), + ), + ) + : const Icon(Icons.search_outlined), + ), + onChanged: controller.searchUserWithCoolDown, + ), + ), + StreamBuilder( + stream: room.client.onRoomState.stream.where( + (update) => update.roomId == room.id, + ), + builder: (context, snapshot) { + final participants = room + .getParticipants() + .map((user) => user.id) + .toSet(); + return controller.foundProfiles.isNotEmpty + ? ListView.builder( + physics: const NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: controller.foundProfiles.length, + itemBuilder: (BuildContext context, int i) => + _InviteContactListTile( + profile: controller.foundProfiles[i], + isMember: participants.contains( + controller.foundProfiles[i].userId, + ), + onTap: () => controller.inviteAction( + context, + controller.foundProfiles[i].userId, + controller.foundProfiles[i].displayName ?? + controller + .foundProfiles[i] + .userId + .localpart ?? + L10n.of(context).user, + ), + ), + ) + : FutureBuilder>( + future: controller.getContacts(context), + builder: (BuildContext context, snapshot) { + if (!snapshot.hasData) { + return const Center( + child: CircularProgressIndicator.adaptive( + strokeWidth: 2, + ), + ); + } + final contacts = snapshot.data!; + return ListView.builder( + physics: const NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: contacts.length, + itemBuilder: (BuildContext context, int i) => + _InviteContactListTile( + user: contacts[i], + profile: Profile( + avatarUrl: contacts[i].avatarUrl, + displayName: + contacts[i].displayName ?? + contacts[i].id.localpart ?? + L10n.of(context).user, + userId: contacts[i].id, + ), + isMember: participants.contains( + contacts[i].id, + ), + onTap: () => controller.inviteAction( + context, + contacts[i].id, + contacts[i].displayName ?? + contacts[i].id.localpart ?? + L10n.of(context).user, + ), + ), + ); + }, + ); + }, + ), + ], + ), + ), + ); + } +} + +class _InviteContactListTile extends StatelessWidget { + final Profile profile; + final User? user; + final bool isMember; + final void Function() onTap; + + const _InviteContactListTile({ + required this.profile, + this.user, + required this.isMember, + required this.onTap, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final l10n = L10n.of(context); + + return ListTile( + leading: Avatar( + mxContent: profile.avatarUrl, + name: profile.displayName, + presenceUserId: profile.userId, + onTap: () => UserDialog.show(context: context, profile: profile), + ), + title: Text( + profile.displayName ?? profile.userId.localpart ?? l10n.user, + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + subtitle: Text( + profile.userId, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: TextStyle(color: theme.colorScheme.secondary), + ), + trailing: TextButton( + onPressed: isMember ? null : onTap, + child: Text(isMember ? l10n.participant : l10n.invite), + ), + ); + } +} diff --git a/lib/pages/key_verification/key_verification_dialog.dart b/lib/pages/key_verification/key_verification_dialog.dart new file mode 100644 index 0000000..99782a5 --- /dev/null +++ b/lib/pages/key_verification/key_verification_dialog.dart @@ -0,0 +1,402 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:convert'; +import 'dart:ui'; + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/adaptive_dialog_action.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:flutter/services.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/encryption.dart'; +import 'package:matrix/matrix.dart'; + +class KeyVerificationDialog extends StatefulWidget { + Future show(BuildContext context) => showAdaptiveDialog( + context: context, + builder: (context) => this, + barrierDismissible: false, + ); + + final KeyVerification request; + + const KeyVerificationDialog({super.key, required this.request}); + + @override + KeyVerificationPageState createState() => KeyVerificationPageState(); +} + +class KeyVerificationPageState extends State { + void Function()? originalOnUpdate; + late final List sasEmoji; + + @override + void initState() { + originalOnUpdate = widget.request.onUpdate; + widget.request.onUpdate = () { + originalOnUpdate?.call(); + setState(() {}); + }; + widget.request.client.getProfileFromUserId(widget.request.userId).then((p) { + profile = p; + setState(() {}); + }); + rootBundle.loadString('assets/sas-emoji.json').then((e) { + sasEmoji = json.decode(e); + setState(() {}); + }); + super.initState(); + } + + @override + void dispose() { + widget.request.onUpdate = + originalOnUpdate; // don't want to get updates anymore + if (![ + KeyVerificationState.error, + KeyVerificationState.done, + ].contains(widget.request.state)) { + widget.request.cancel('m.user'); + } + textEditingController?.dispose(); + super.dispose(); + } + + Profile? profile; + + Future checkInput(String input) async { + if (input.isEmpty) return; + + final valid = await showFutureLoadingDialog( + context: context, + future: () async { + // make sure the loading spinner shows before we test the keys + await Future.delayed(const Duration(milliseconds: 100)); + var valid = false; + try { + await widget.request.openSSSS(keyOrPassphrase: input); + valid = true; + } catch (_) { + valid = false; + } + return valid; + }, + ); + if (valid.error != null) { + if (!mounted) return; + await showOkAlertDialog( + useRootNavigator: false, + context: context, + title: L10n.of(context).incorrectPassphraseOrKey, + ); + } + } + + TextEditingController? textEditingController; + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + User? user; + final directChatId = widget.request.client.getDirectChatFromUserId( + widget.request.userId, + ); + if (directChatId != null) { + user = widget.request.client + .getRoomById(directChatId)! + .unsafeGetUserFromMemoryOrFallback(widget.request.userId); + } + final displayName = + user?.calcDisplayname() ?? widget.request.userId.localpart!; + var title = Text(L10n.of(context).verifyTitle); + Widget body; + final buttons = []; + + switch (widget.request.state) { + case KeyVerificationState.showQRSuccess: + case KeyVerificationState.confirmQRScan: + throw 'Not implemented'; + case KeyVerificationState.askSSSS: + // prompt the user for their ssss passphrase / key + textEditingController = TextEditingController(); + String input; + body = Container( + margin: const EdgeInsets.symmetric(horizontal: 8.0), + child: Column( + mainAxisSize: .min, + children: [ + Text( + L10n.of(context).askSSSSSign, + style: const TextStyle(fontSize: 20), + ), + Container(height: 10), + TextField( + controller: textEditingController, + autofocus: false, + autocorrect: false, + onSubmitted: (s) { + input = s; + checkInput(input); + }, + minLines: 1, + maxLines: 1, + obscureText: true, + decoration: InputDecoration( + hintText: L10n.of(context).passphraseOrKey, + prefixStyle: TextStyle(color: theme.colorScheme.primary), + suffixStyle: TextStyle(color: theme.colorScheme.primary), + border: const OutlineInputBorder(), + ), + ), + ], + ), + ); + buttons.add( + AdaptiveDialogAction( + child: Text(L10n.of(context).submit), + onPressed: () => checkInput(textEditingController!.text), + ), + ); + buttons.add( + AdaptiveDialogAction( + child: Text(L10n.of(context).skip), + onPressed: () => widget.request.openSSSS(skip: true), + ), + ); + break; + case KeyVerificationState.askAccept: + title = Text(L10n.of(context).newVerificationRequest); + body = Column( + mainAxisSize: .min, + children: [ + const SizedBox(height: 16), + Avatar( + mxContent: user?.avatarUrl, + name: displayName, + size: Avatar.defaultSize * 2, + ), + const SizedBox(height: 16), + Text(L10n.of(context).askVerificationRequest(displayName)), + ], + ); + buttons.add( + AdaptiveDialogAction( + onPressed: () => widget.request.rejectVerification().then((_) { + if (!context.mounted) return; + Navigator.of(context, rootNavigator: false).pop(false); + }), + child: Text( + L10n.of(context).reject, + style: TextStyle(color: theme.colorScheme.error), + ), + ), + ); + buttons.add( + AdaptiveDialogAction( + onPressed: () => widget.request.acceptVerification(), + child: Text(L10n.of(context).accept), + ), + ); + break; + case KeyVerificationState.askChoice: + case KeyVerificationState.waitingAccept: + body = Center( + child: Column( + children: [ + const SizedBox(height: 16), + Stack( + alignment: Alignment.center, + children: [ + Avatar(mxContent: user?.avatarUrl, name: displayName), + const SizedBox( + width: Avatar.defaultSize + 2, + height: Avatar.defaultSize + 2, + child: CircularProgressIndicator(strokeWidth: 2), + ), + ], + ), + const SizedBox(height: 16), + Text( + L10n.of(context).waitingPartnerAcceptRequest, + textAlign: TextAlign.center, + ), + ], + ), + ); + buttons.add( + AdaptiveDialogAction( + onPressed: () => widget.request.cancel(), + child: Text(L10n.of(context).cancel), + ), + ); + + break; + case KeyVerificationState.askSas: + TextSpan compareWidget; + // maybe add a button to switch between the two and only determine default + // view for if "emoji" is a present sasType or not? + + if (widget.request.sasTypes.contains('emoji')) { + title = Text( + L10n.of(context).compareEmojiMatch, + maxLines: 1, + style: const TextStyle(fontSize: 16), + ); + compareWidget = TextSpan( + children: widget.request.sasEmojis + .map((e) => WidgetSpan(child: _Emoji(e, sasEmoji))) + .toList(), + ); + } else { + title = Text(L10n.of(context).compareNumbersMatch); + final numbers = widget.request.sasNumbers; + final numbstr = '${numbers.first}-${numbers[1]}-${numbers[2]}'; + compareWidget = TextSpan( + text: numbstr, + style: const TextStyle(fontSize: 40), + ); + } + body = Column( + mainAxisSize: .min, + children: [ + Text.rich(compareWidget, textAlign: TextAlign.center), + ], + ); + buttons.add( + AdaptiveDialogAction( + onPressed: () => widget.request.rejectSas(), + child: Text( + L10n.of(context).theyDontMatch, + style: TextStyle(color: theme.colorScheme.error), + ), + ), + ); + buttons.add( + AdaptiveDialogAction( + onPressed: () => widget.request.acceptSas(), + child: Text(L10n.of(context).theyMatch), + ), + ); + break; + case KeyVerificationState.waitingSas: + final acceptText = widget.request.sasTypes.contains('emoji') + ? L10n.of(context).waitingPartnerEmoji + : L10n.of(context).waitingPartnerNumbers; + body = Column( + mainAxisSize: .min, + children: [ + const SizedBox(height: 16), + const CircularProgressIndicator.adaptive(strokeWidth: 2), + const SizedBox(height: 16), + Text(acceptText, textAlign: TextAlign.center), + ], + ); + break; + case KeyVerificationState.done: + title = Text(L10n.of(context).verifySuccess); + body = const Padding( + padding: EdgeInsets.all(16.0), + child: Icon( + Icons.verified_outlined, + color: Colors.green, + size: 128.0, + ), + ); + buttons.add( + AdaptiveDialogAction( + child: Text(L10n.of(context).close), + onPressed: () => + Navigator.of(context, rootNavigator: false).pop(true), + ), + ); + break; + case KeyVerificationState.error: + title = const Text(''); + body = Column( + mainAxisSize: .min, + children: [ + const SizedBox(height: 16), + Icon(Icons.cancel, color: theme.colorScheme.error, size: 64.0), + const SizedBox(height: 16), + // TODO: Add better error UI to user + Text( + 'Error ${widget.request.canceledCode}: ${widget.request.canceledReason}', + textAlign: TextAlign.center, + ), + ], + ); + buttons.add( + AdaptiveDialogAction( + child: Text(L10n.of(context).close), + onPressed: () => + Navigator.of(context, rootNavigator: false).pop(false), + ), + ); + break; + } + + return AlertDialog.adaptive( + title: title, + content: SizedBox( + height: 256, + width: 256, + child: ListView(children: [body]), + ), + actions: buttons, + ); + } +} + +class _Emoji extends StatelessWidget { + final KeyVerificationEmoji emoji; + final List? sasEmoji; + + const _Emoji(this.emoji, this.sasEmoji); + + String getLocalizedName() { + final sasEmoji = this.sasEmoji; + if (sasEmoji == null) { + // asset is still being loaded + return emoji.name; + } + final translations = Map.from( + sasEmoji[emoji.number]['translated_descriptions'], + ); + translations['en'] = emoji.name; + for (final locale in PlatformDispatcher.instance.locales) { + final wantLocaleParts = locale.toString().split('_'); + final wantLanguage = wantLocaleParts.removeAt(0); + for (final haveLocale in translations.keys) { + final haveLocaleParts = haveLocale.split('_'); + final haveLanguage = haveLocaleParts.removeAt(0); + if (haveLanguage == wantLanguage && + (Set.from(haveLocaleParts)..removeAll(wantLocaleParts)).isEmpty && + (translations[haveLocale]?.isNotEmpty ?? false)) { + return translations[haveLocale]!; + } + } + } + return emoji.name; + } + + @override + Widget build(BuildContext context) { + return Column( + mainAxisSize: .min, + children: [ + Text(emoji.emoji, style: const TextStyle(fontSize: 50)), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 4.0), + child: Text(getLocalizedName()), + ), + const SizedBox(height: 10, width: 5), + ], + ); + } +} diff --git a/lib/pages/login/login.dart b/lib/pages/login/login.dart new file mode 100644 index 0000000..ce236d9 --- /dev/null +++ b/lib/pages/login/login.dart @@ -0,0 +1,278 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/localized_exception_extension.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/future_loading_dialog.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../utils/platform_infos.dart'; +import 'login_view.dart'; + +class Login extends StatefulWidget { + final Client client; + const Login({required this.client, super.key}); + + @override + LoginController createState() => LoginController(); +} + +class LoginController extends State { + final TextEditingController usernameController = TextEditingController(); + final TextEditingController passwordController = TextEditingController(); + String? usernameError; + String? passwordError; + bool loading = false; + bool showPassword = false; + + void toggleShowPassword() => + setState(() => showPassword = !loading && !showPassword); + + Future login() async { + final matrix = Matrix.of(context); + if (usernameController.text.isEmpty) { + setState(() => usernameError = L10n.of(context).pleaseEnterYourUsername); + } else { + setState(() => usernameError = null); + } + if (passwordController.text.isEmpty) { + setState(() => passwordError = L10n.of(context).pleaseEnterYourPassword); + } else { + setState(() => passwordError = null); + } + + if (usernameController.text.isEmpty || passwordController.text.isEmpty) { + return; + } + + setState(() => loading = true); + + _coolDown?.cancel(); + + try { + final username = usernameController.text; + AuthenticationIdentifier identifier; + if (username.isEmail) { + identifier = AuthenticationThirdPartyIdentifier( + medium: 'email', + address: username, + ); + } else if (username.isPhoneNumber) { + identifier = AuthenticationThirdPartyIdentifier( + medium: 'msisdn', + address: username, + ); + } else { + identifier = AuthenticationUserIdentifier(user: username); + } + final client = await matrix.getLoginClient(); + await client.login( + LoginType.mLoginPassword, + identifier: identifier, + // To stay compatible with older server versions + // ignore: deprecated_member_use + user: identifier.type == AuthenticationIdentifierTypes.userId + ? username + : null, + password: passwordController.text, + initialDeviceDisplayName: PlatformInfos.appDisplayName, + ); + if (mounted) { + context.go('/backup'); + } + } on MatrixException catch (exception) { + setState(() => passwordError = exception.errorMessage); + return setState(() => loading = false); + } catch (exception) { + setState(() => passwordError = exception.toString()); + return setState(() => loading = false); + } + + if (mounted) setState(() => loading = false); + } + + Timer? _coolDown; + + void checkWellKnownWithCoolDown(String userId) { + _coolDown?.cancel(); + _coolDown = Timer( + const Duration(seconds: 1), + () => _checkWellKnown(userId), + ); + } + + Future _checkWellKnown(String userId) async { + if (mounted) setState(() => usernameError = null); + if (!userId.isValidMatrixIdStrict()) return; + final oldHomeserver = widget.client.homeserver; + try { + var newDomain = Uri.https(userId.domain!, ''); + widget.client.homeserver = newDomain; + DiscoveryInformation? wellKnownInformation; + try { + wellKnownInformation = await widget.client.getWellknown(); + if (wellKnownInformation.mHomeserver.baseUrl.toString().isNotEmpty) { + newDomain = wellKnownInformation.mHomeserver.baseUrl; + } + } catch (_) { + // do nothing, newDomain is already set to a reasonable fallback + } + if (newDomain != oldHomeserver) { + await widget.client.checkHomeserver(newDomain); + + if (widget.client.homeserver == null) { + widget.client.homeserver = oldHomeserver; + // okay, the server we checked does not appear to be a matrix server + Logs().v( + '$newDomain is not running a homeserver, asking to use $oldHomeserver', + ); + if (!mounted) return; + final l10n = L10n.of(context); + final dialogResult = await showOkCancelAlertDialog( + context: context, + useRootNavigator: false, + title: l10n.noMatrixServer( + newDomain.toString(), + oldHomeserver.toString(), + ), + okLabel: l10n.ok, + cancelLabel: l10n.cancel, + ); + if (!mounted) return; + if (dialogResult == OkCancelResult.ok) { + if (mounted) setState(() => usernameError = null); + } else { + Navigator.of(context, rootNavigator: false).pop(); + return; + } + } + usernameError = null; + if (mounted) setState(() {}); + } else { + widget.client.homeserver = oldHomeserver; + if (mounted) { + setState(() {}); + } + } + } catch (e) { + widget.client.homeserver = oldHomeserver; + if (!mounted) return; + usernameError = e.toLocalizedString(context); + if (mounted) setState(() {}); + } + } + + Future passwordForgotten() async { + final l10n = L10n.of(context); + final scaffoldMessenger = ScaffoldMessenger.of(context); + final input = await showTextInputDialog( + useRootNavigator: false, + context: context, + title: l10n.passwordForgotten, + message: l10n.enterAnEmailAddress, + okLabel: l10n.ok, + cancelLabel: l10n.cancel, + initialText: usernameController.text.isEmail + ? usernameController.text + : '', + hintText: l10n.enterAnEmailAddress, + keyboardType: TextInputType.emailAddress, + ); + if (input == null) return; + if (!mounted) return; + final clientSecret = DateTime.now().millisecondsSinceEpoch.toString(); + final response = await showFutureLoadingDialog( + context: context, + future: () => widget.client.requestTokenToResetPasswordEmail( + clientSecret, + input, + sendAttempt++, + ), + ); + if (response.error != null) return; + if (!mounted) return; + final password = await showTextInputDialog( + useRootNavigator: false, + context: context, + title: l10n.passwordForgotten, + message: l10n.chooseAStrongPassword, + okLabel: l10n.ok, + cancelLabel: l10n.cancel, + hintText: '******', + obscureText: true, + minLines: 1, + maxLines: 1, + ); + if (password == null) return; + if (!mounted) return; + final ok = await showOkAlertDialog( + useRootNavigator: false, + context: context, + title: l10n.weSentYouAnEmail, + message: l10n.pleaseClickOnLink, + okLabel: l10n.iHaveClickedOnLink, + ); + if (ok != OkCancelResult.ok) return; + if (!mounted) return; + final data = { + 'new_password': password, + 'logout_devices': false, + 'auth': AuthenticationThreePidCreds( + type: AuthenticationTypes.emailIdentity, + threepidCreds: ThreepidCreds( + sid: response.result!.sid, + clientSecret: clientSecret, + ), + ).toJson(), + }; + final success = await showFutureLoadingDialog( + context: context, + future: () => widget.client.request( + RequestType.POST, + '/client/v3/account/password', + data: data, + ), + ); + if (!mounted) return; + if (success.error == null) { + scaffoldMessenger.showSnackBar( + SnackBar(content: Text(l10n.passwordHasBeenChanged)), + ); + usernameController.text = input; + passwordController.text = password; + login(); + } + } + + static int sendAttempt = 0; + + @override + void dispose() { + usernameController.dispose(); + passwordController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) => LoginView(this); +} + +extension on String { + static final RegExp _phoneRegex = RegExp( + r'^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*$', + ); + static final RegExp _emailRegex = RegExp(r'(.+)@(.+)\.(.+)'); + + bool get isEmail => _emailRegex.hasMatch(this); + + bool get isPhoneNumber => _phoneRegex.hasMatch(this); +} diff --git a/lib/pages/login/login_view.dart b/lib/pages/login/login_view.dart new file mode 100644 index 0000000..9c4d006 --- /dev/null +++ b/lib/pages/login/login_view.dart @@ -0,0 +1,144 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/widgets/layouts/login_scaffold.dart'; +import 'package:material_ui/material_ui.dart'; + +import 'login.dart'; + +class LoginView extends StatelessWidget { + final LoginController controller; + + const LoginView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + final homeserver = controller.widget.client.homeserver + ?.toString() + .replaceFirst('https://', ''); + final title = homeserver == null + ? L10n.of(context).loginWithMatrixId + : L10n.of(context).logInTo(homeserver); + + return LoginScaffold( + appBar: AppBar( + leading: controller.loading ? null : const Center(child: BackButton()), + automaticallyImplyLeading: !controller.loading, + titleSpacing: !controller.loading ? 0 : null, + title: Text(title), + ), + body: Builder( + builder: (context) { + return AutofillGroup( + child: ListView( + padding: const EdgeInsets.symmetric(horizontal: 8), + children: [ + Center( + child: Hero( + tag: 'info-logo', + child: ClipRRect( + borderRadius: BorderRadius.circular(128), + child: Image.asset( + './assets/logo/mini/logo_mini.png', + width: 128, + height: 128, + ), + ), + ), + ), + const SizedBox(height: 16), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24.0), + child: TextField( + readOnly: controller.loading, + autocorrect: false, + autofocus: true, + onChanged: controller.checkWellKnownWithCoolDown, + controller: controller.usernameController, + textInputAction: TextInputAction.next, + keyboardType: TextInputType.emailAddress, + autofillHints: controller.loading + ? null + : [AutofillHints.username], + decoration: InputDecoration( + prefixIcon: const Icon(Icons.account_box_outlined), + errorText: controller.usernameError, + errorStyle: const TextStyle(color: Colors.orange), + hintText: '@username:domain', + labelText: L10n.of(context).matrixId, + ), + ), + ), + const SizedBox(height: 16), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24.0), + child: TextField( + readOnly: controller.loading, + autocorrect: false, + autofillHints: controller.loading + ? null + : [AutofillHints.password], + controller: controller.passwordController, + textInputAction: TextInputAction.go, + obscureText: !controller.showPassword, + onSubmitted: (_) => controller.login(), + decoration: InputDecoration( + prefixIcon: const Icon(Icons.lock_outlined), + errorText: controller.passwordError, + errorStyle: const TextStyle(color: Colors.orange), + suffixIcon: IconButton( + onPressed: controller.toggleShowPassword, + icon: Icon( + controller.showPassword + ? Icons.visibility_off_outlined + : Icons.visibility_outlined, + color: Colors.black, + ), + ), + hintText: '******', + labelText: L10n.of(context).password, + ), + ), + ), + const SizedBox(height: 16), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24.0), + child: ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: theme.colorScheme.primary, + foregroundColor: theme.colorScheme.onPrimary, + ), + onPressed: controller.loading ? null : controller.login, + child: controller.loading + ? const LinearProgressIndicator() + : Text(L10n.of(context).login), + ), + ), + const SizedBox(height: 16), + if (homeserver != null) + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24.0), + child: TextButton( + onPressed: controller.loading + ? () {} + : controller.passwordForgotten, + style: TextButton.styleFrom( + foregroundColor: theme.colorScheme.error, + ), + child: Text(L10n.of(context).passwordForgotten), + ), + ), + const SizedBox(height: 16), + ], + ), + ); + }, + ), + ); + } +} diff --git a/lib/pages/new_group/new_group.dart b/lib/pages/new_group/new_group.dart new file mode 100644 index 0000000..7aba239 --- /dev/null +++ b/lib/pages/new_group/new_group.dart @@ -0,0 +1,197 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:typed_data'; + +import 'package:file_picker/file_picker.dart'; +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/widgets/matrix.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart' as sdk; +import 'package:matrix/matrix.dart'; + +class NewGroup extends StatefulWidget { + final CreateGroupType createGroupType; + final String? spaceId; + const NewGroup({ + this.createGroupType = CreateGroupType.group, + this.spaceId, + super.key, + }); + + @override + NewGroupController createState() => NewGroupController(); +} + +class NewGroupController extends State { + TextEditingController nameController = TextEditingController(); + + bool publicGroup = false; + bool groupCanBeFound = false; + + Uint8List? avatar; + + Uri? avatarUrl; + + Object? error; + + bool loading = false; + + CreateGroupType get createGroupType => + _createGroupType ?? widget.createGroupType; + + CreateGroupType? _createGroupType; + + void setCreateGroupType(Set b) => + setState(() => _createGroupType = b.single); + + void setPublicGroup(bool b) => + setState(() => publicGroup = groupCanBeFound = b); + + void setGroupCanBeFound(bool b) => setState(() => groupCanBeFound = b); + + Future selectPhoto() async { + final photo = await selectFiles( + context, + type: FileType.image, + allowMultiple: false, + ); + final bytes = await photo.singleOrNull?.readAsBytes(); + + setState(() { + avatarUrl = null; + avatar = bytes; + }); + } + + Future _createGroup() async { + if (!mounted) return; + final client = Matrix.of(context).client; + + final roomId = await client.createGroupChat( + visibility: groupCanBeFound + ? sdk.Visibility.public + : sdk.Visibility.private, + preset: publicGroup + ? sdk.CreateRoomPreset.publicChat + : sdk.CreateRoomPreset.privateChat, + groupName: nameController.text.isNotEmpty ? nameController.text : null, + powerLevelContentOverride: publicGroup + ? null + : { + 'events': {MatrixRtcCallMember.eventType: 0}, + }, + initialState: [ + if (avatar != null) + sdk.StateEvent( + type: sdk.EventTypes.RoomAvatar, + content: {'url': avatarUrl.toString()}, + ), + ], + ); + await _addToSpace(roomId); + if (!mounted) return; + + context.go('/rooms/$roomId/invite'); + } + + Future _createSpace() async { + if (!mounted) return; + final spaceId = await Matrix.of(context).client.createRoom( + preset: publicGroup + ? sdk.CreateRoomPreset.publicChat + : sdk.CreateRoomPreset.privateChat, + creationContent: {'type': RoomCreationTypes.mSpace}, + visibility: publicGroup ? sdk.Visibility.public : null, + roomAliasName: publicGroup + ? nameController.text.trim().toLowerCase().replaceAll(' ', '_') + : null, + name: nameController.text.trim(), + powerLevelContentOverride: {'events_default': 100}, + initialState: [ + if (avatar != null) + sdk.StateEvent( + type: sdk.EventTypes.RoomAvatar, + content: {'url': avatarUrl.toString()}, + ), + ], + ); + await _addToSpace(spaceId); + if (!mounted) return; + context.pop(spaceId); + } + + Future _addToSpace(String roomId) async { + final spaceId = widget.spaceId; + if (spaceId != null) { + final activeSpace = Matrix.of(context).client.getRoomById(spaceId); + if (activeSpace == null) { + throw Exception('Can not add group to space: Space not found $spaceId'); + } + await activeSpace.postLoad(); + await activeSpace.setSpaceChild(roomId); + } + } + + Future submitAction([_]) async { + final client = Matrix.of(context).client; + + try { + if (nameController.text.trim().isEmpty && + createGroupType == CreateGroupType.space) { + setState(() => error = L10n.of(context).pleaseFillOut); + return; + } + + setState(() { + loading = true; + error = null; + }); + + final avatar = this.avatar; + avatarUrl ??= avatar == null ? null : await client.uploadContent(avatar); + + if (!mounted) return; + + switch (createGroupType) { + case CreateGroupType.group: + await _createGroup(); + case CreateGroupType.space: + await _createSpace(); + } + } catch (e, s) { + sdk.Logs().d('Unable to create group', e, s); + setState(() { + error = e; + loading = false; + }); + } + } + + @override + void initState() { + final spaceId = widget.spaceId; + if (spaceId != null) { + final space = Matrix.of(context).client.getRoomById(spaceId); + publicGroup = space?.joinRules == JoinRules.public; + } + super.initState(); + } + + @override + void dispose() { + nameController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) => NewGroupView(this); +} + +enum CreateGroupType { group, space } diff --git a/lib/pages/new_group/new_group_view.dart b/lib/pages/new_group/new_group_view.dart new file mode 100644 index 0000000..82e1f5e --- /dev/null +++ b/lib/pages/new_group/new_group_view.dart @@ -0,0 +1,199 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/new_group/new_group.dart'; +import 'package:tatchat/utils/localized_exception_extension.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:tatchat/widgets/layouts/max_width_body.dart'; +import 'package:material_ui/material_ui.dart'; + +class NewGroupView extends StatelessWidget { + final NewGroupController controller; + + const NewGroupView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + final avatar = controller.avatar; + final error = controller.error; + return Scaffold( + appBar: AppBar( + leading: Center( + child: BackButton( + onPressed: controller.loading ? null : Navigator.of(context).pop, + ), + ), + title: Text( + controller.createGroupType == CreateGroupType.space + ? L10n.of(context).newSpace + : L10n.of(context).createGroup, + ), + ), + body: MaxWidthBody( + child: Column( + mainAxisSize: .min, + children: [ + Padding( + padding: const EdgeInsets.all(16.0), + child: SegmentedButton( + selected: {controller.createGroupType}, + onSelectionChanged: controller.setCreateGroupType, + segments: [ + ButtonSegment( + value: CreateGroupType.group, + label: Text(L10n.of(context).group), + ), + ButtonSegment( + value: CreateGroupType.space, + label: Text(L10n.of(context).space), + ), + ], + ), + ), + const SizedBox(height: 16), + InkWell( + borderRadius: BorderRadius.circular(90), + onTap: controller.loading ? null : controller.selectPhoto, + child: CircleAvatar( + radius: Avatar.defaultSize, + child: avatar == null + ? const Icon(Icons.add_a_photo_outlined) + : ClipRRect( + borderRadius: BorderRadius.circular(90), + child: Image.memory( + avatar, + width: Avatar.defaultSize * 2, + height: Avatar.defaultSize * 2, + fit: BoxFit.cover, + ), + ), + ), + ), + const SizedBox(height: 32), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24.0), + child: TextField( + autofocus: true, + controller: controller.nameController, + autocorrect: false, + readOnly: controller.loading, + decoration: InputDecoration( + prefixIcon: const Icon(Icons.people_outlined), + labelText: controller.createGroupType == CreateGroupType.space + ? L10n.of(context).spaceName + : L10n.of(context).groupName, + ), + ), + ), + const SizedBox(height: 16), + SwitchListTile.adaptive( + contentPadding: const EdgeInsets.symmetric(horizontal: 32), + secondary: const Icon(Icons.public_outlined), + title: Text( + controller.createGroupType == CreateGroupType.space + ? L10n.of(context).spaceIsPublic + : L10n.of(context).groupIsPublic, + ), + value: controller.publicGroup, + onChanged: controller.loading ? null : controller.setPublicGroup, + ), + AnimatedSize( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + child: controller.publicGroup + ? SwitchListTile.adaptive( + contentPadding: const EdgeInsets.symmetric( + horizontal: 32, + ), + secondary: const Icon(Icons.search_outlined), + title: Text(L10n.of(context).groupCanBeFoundViaSearch), + value: controller.groupCanBeFound, + onChanged: controller.loading + ? null + : controller.setGroupCanBeFound, + ) + : const SizedBox.shrink(), + ), + AnimatedSize( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + child: controller.createGroupType == CreateGroupType.space + ? const SizedBox.shrink() + : SwitchListTile.adaptive( + contentPadding: const EdgeInsets.symmetric( + horizontal: 32, + ), + secondary: Icon( + Icons.lock_outlined, + color: theme.colorScheme.onSurface, + ), + title: Text( + L10n.of(context).enableEncryption, + style: TextStyle(color: theme.colorScheme.onSurface), + ), + value: !controller.publicGroup, + onChanged: null, + ), + ), + AnimatedSize( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + child: controller.createGroupType == CreateGroupType.space + ? ListTile( + contentPadding: const EdgeInsets.symmetric( + horizontal: 32, + ), + trailing: const Padding( + padding: EdgeInsets.symmetric(horizontal: 16.0), + child: Icon(Icons.info_outlined), + ), + subtitle: Text(L10n.of(context).newSpaceDescription), + ) + : const SizedBox.shrink(), + ), + Padding( + padding: const EdgeInsets.all(16.0), + child: SizedBox( + width: double.infinity, + child: ElevatedButton( + onPressed: controller.loading + ? null + : controller.submitAction, + child: controller.loading + ? const LinearProgressIndicator() + : Text( + controller.createGroupType == CreateGroupType.space + ? L10n.of(context).createNewSpace + : L10n.of(context).createGroupAndInviteUsers, + ), + ), + ), + ), + AnimatedSize( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + child: error == null + ? const SizedBox.shrink() + : ListTile( + leading: Icon( + Icons.warning_outlined, + color: theme.colorScheme.error, + ), + title: Text( + error.toLocalizedString(context), + style: TextStyle(color: theme.colorScheme.error), + ), + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/pages/new_private_chat/new_private_chat.dart b/lib/pages/new_private_chat/new_private_chat.dart new file mode 100644 index 0000000..e64854a --- /dev/null +++ b/lib/pages/new_private_chat/new_private_chat.dart @@ -0,0 +1,134 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; + +import 'package:device_info_plus/device_info_plus.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/new_private_chat/new_private_chat_view.dart'; +import 'package:tatchat/pages/new_private_chat/qr_scanner_modal.dart'; +import 'package:tatchat/utils/adaptive_bottom_sheet.dart'; +import 'package:tatchat/utils/tatu_share.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/utils/url_launcher.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:flutter/services.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../widgets/adaptive_dialogs/user_dialog.dart'; + +class NewPrivateChat extends StatefulWidget { + final String? deeplink; + const NewPrivateChat({super.key, required this.deeplink}); + + @override + NewPrivateChatController createState() => NewPrivateChatController(); +} + +class NewPrivateChatController extends State { + final TextEditingController controller = TextEditingController(); + final FocusNode textFieldFocus = FocusNode(); + + Future>? searchResponse; + + Timer? _searchCoolDown; + + static const Duration _coolDown = Duration(milliseconds: 500); + + @override + void initState() { + super.initState(); + + final deeplink = widget.deeplink; + if (deeplink != null) { + WidgetsBinding.instance.addPostFrameCallback((_) { + UrlLauncher(context, deeplink).openMatrixToUrl(); + }); + } + } + + Future searchUsers([String? input]) async { + final searchTerm = input ?? controller.text; + if (searchTerm.isEmpty) { + _searchCoolDown?.cancel(); + setState(() { + searchResponse = _searchCoolDown = null; + }); + return; + } + + _searchCoolDown?.cancel(); + _searchCoolDown = Timer(_coolDown, () { + setState(() { + searchResponse = _searchUser(searchTerm); + }); + }); + } + + Future> _searchUser(String searchTerm) async { + final result = await Matrix.of( + context, + ).client.searchUserDirectory(searchTerm); + final profiles = result.results; + + if (searchTerm.isValidMatrixIdStrict() && + searchTerm.sigil == '@' && + !profiles.any((profile) => profile.userId == searchTerm)) { + profiles.add(Profile(userId: searchTerm)); + } + + return profiles; + } + + void inviteAction() => TatuShare.shareInviteLink(context); + + Future openScannerAction() async { + final l10n = L10n.of(context); + final scaffoldMessenger = ScaffoldMessenger.of(context); + if (PlatformInfos.isAndroid) { + final info = await DeviceInfoPlugin().androidInfo; + if (!mounted) return; + if (info.version.sdkInt < 21) { + scaffoldMessenger.showSnackBar( + SnackBar(content: Text(l10n.unsupportedAndroidVersionLong)), + ); + return; + } + } + if (!mounted) return; + await showAdaptiveBottomSheet( + context: context, + builder: (_) => QrScannerModal( + onScan: (link) => UrlLauncher(context, link).openMatrixToUrl(), + ), + ); + } + + Future copyUserId() async { + final scaffoldMessenger = ScaffoldMessenger.of(context); + final l10n = L10n.of(context); + await Clipboard.setData( + ClipboardData(text: Matrix.of(context).client.userID!), + ); + if (!mounted) return; + scaffoldMessenger.showSnackBar( + SnackBar(content: Text(l10n.copiedToClipboard)), + ); + } + + void openUserModal(Profile profile) => + UserDialog.show(context: context, profile: profile); + + @override + void dispose() { + controller.dispose(); + textFieldFocus.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) => NewPrivateChatView(this); +} diff --git a/lib/pages/new_private_chat/new_private_chat_view.dart b/lib/pages/new_private_chat/new_private_chat_view.dart new file mode 100644 index 0000000..083e096 --- /dev/null +++ b/lib/pages/new_private_chat/new_private_chat_view.dart @@ -0,0 +1,290 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/new_private_chat/new_private_chat.dart'; +import 'package:tatchat/utils/localized_exception_extension.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:tatchat/widgets/layouts/max_width_body.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; +import 'package:pretty_qr_code/pretty_qr_code.dart'; + +import '../../widgets/qr_code_viewer.dart'; + +class NewPrivateChatView extends StatelessWidget { + final NewPrivateChatController controller; + + const NewPrivateChatView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + final searchResponse = controller.searchResponse; + final userId = Matrix.of(context).client.userID!; + return Scaffold( + appBar: AppBar( + scrolledUnderElevation: 0, + leading: const Center(child: BackButton()), + title: Text(L10n.of(context).newChat), + backgroundColor: theme.scaffoldBackgroundColor, + ), + body: MaxWidthBody( + withScrolling: false, + innerPadding: const EdgeInsets.symmetric(vertical: 8), + child: Column( + children: [ + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 16.0, + vertical: 8.0, + ), + child: TextField( + controller: controller.controller, + onChanged: controller.searchUsers, + decoration: InputDecoration( + hintText: L10n.of(context).searchForUsers, + filled: true, + fillColor: theme.colorScheme.secondaryContainer, + border: OutlineInputBorder( + borderSide: BorderSide.none, + borderRadius: BorderRadius.circular(99), + ), + hintStyle: TextStyle( + color: theme.colorScheme.onPrimaryContainer, + fontWeight: FontWeight.normal, + ), + prefixIcon: searchResponse == null + ? const Icon(Icons.search_outlined) + : FutureBuilder( + future: searchResponse, + builder: (context, snapshot) { + if (snapshot.connectionState != + ConnectionState.done) { + return const Padding( + padding: EdgeInsets.all(10.0), + child: SizedBox.square( + dimension: 24, + child: CircularProgressIndicator.adaptive( + strokeWidth: 1, + ), + ), + ); + } + return const Icon(Icons.search_outlined); + }, + ), + suffixIcon: controller.controller.text.isEmpty + ? null + : IconButton( + icon: const Icon(Icons.clear_outlined), + onPressed: () { + controller.controller.clear(); + controller.searchUsers(); + }, + ), + ), + ), + ), + Expanded( + child: AnimatedSwitcher( + duration: FluffyThemes.animationDuration, + child: searchResponse == null + ? ListView( + children: [ + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 18.0, + ), + child: SelectableText.rich( + TextSpan( + children: [ + TextSpan( + text: L10n.of(context).yourGlobalUserIdIs, + ), + TextSpan( + text: Matrix.of(context).client.userID, + style: const TextStyle( + fontWeight: FontWeight.w600, + ), + ), + ], + ), + style: TextStyle( + color: theme.colorScheme.onSurface, + fontSize: 12, + ), + ), + ), + const SizedBox(height: 8), + ListTile( + leading: CircleAvatar( + backgroundColor: + theme.colorScheme.secondaryContainer, + foregroundColor: + theme.colorScheme.onSecondaryContainer, + child: Icon(Icons.adaptive.share_outlined), + ), + title: Text(L10n.of(context).shareInviteLink), + onTap: controller.inviteAction, + ), + ListTile( + leading: CircleAvatar( + backgroundColor: + theme.colorScheme.tertiaryContainer, + foregroundColor: + theme.colorScheme.onTertiaryContainer, + child: const Icon(Icons.group_add_outlined), + ), + title: Text(L10n.of(context).createGroup), + onTap: () => context.go('/rooms/newgroup'), + ), + if (PlatformInfos.isMobile) + ListTile( + leading: CircleAvatar( + backgroundColor: + theme.colorScheme.primaryContainer, + foregroundColor: + theme.colorScheme.onPrimaryContainer, + child: const Icon( + Icons.qr_code_scanner_outlined, + ), + ), + title: Text(L10n.of(context).scanQrCode), + onTap: controller.openScannerAction, + ), + Center( + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 64.0, + vertical: 24.0, + ), + child: Material( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular( + AppConfig.borderRadius, + ), + side: BorderSide( + width: 3, + color: theme.colorScheme.primary, + ), + ), + color: Colors.transparent, + clipBehavior: Clip.hardEdge, + child: InkWell( + borderRadius: BorderRadius.circular( + AppConfig.borderRadius, + ), + onTap: () => + showQrCodeViewer(context, userId), + child: Padding( + padding: const EdgeInsets.all(16.0), + child: ConstrainedBox( + constraints: const BoxConstraints( + maxWidth: 200, + ), + child: PrettyQrView.data( + data: 'https://matrix.to/#/$userId', + decoration: PrettyQrDecoration( + shape: PrettyQrSmoothSymbol( + roundFactor: 1, + color: theme.colorScheme.primary, + ), + ), + ), + ), + ), + ), + ), + ), + ), + ], + ) + : FutureBuilder( + future: searchResponse, + builder: (context, snapshot) { + final result = snapshot.data; + final error = snapshot.error; + if (error != null) { + return Column( + mainAxisAlignment: .center, + children: [ + Text( + error.toLocalizedString(context), + textAlign: TextAlign.center, + style: TextStyle( + color: theme.colorScheme.error, + ), + ), + const SizedBox(height: 12), + OutlinedButton.icon( + onPressed: controller.searchUsers, + icon: const Icon(Icons.refresh_outlined), + label: Text(L10n.of(context).tryAgain), + ), + ], + ); + } + if (result == null) { + return const Center( + child: CircularProgressIndicator.adaptive(), + ); + } + if (result.isEmpty) { + return Column( + mainAxisAlignment: .center, + children: [ + const Icon(Icons.search_outlined, size: 86), + Padding( + padding: const EdgeInsets.all(16.0), + child: Text( + L10n.of(context).noUsersFoundWithQuery( + controller.controller.text, + ), + style: TextStyle( + color: theme.colorScheme.primary, + ), + textAlign: TextAlign.center, + ), + ), + ], + ); + } + return ListView.builder( + itemCount: result.length, + itemBuilder: (context, i) { + final contact = result[i]; + final displayname = + contact.displayName ?? + contact.userId.localpart ?? + contact.userId; + return ListTile( + leading: Avatar( + name: displayname, + mxContent: contact.avatarUrl, + presenceUserId: contact.userId, + ), + title: Text(displayname), + subtitle: Text(contact.userId), + onTap: () => controller.openUserModal(contact), + ); + }, + ); + }, + ), + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/pages/new_private_chat/qr_scanner_modal.dart b/lib/pages/new_private_chat/qr_scanner_modal.dart new file mode 100644 index 0000000..91aa1af --- /dev/null +++ b/lib/pages/new_private_chat/qr_scanner_modal.dart @@ -0,0 +1,80 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; +import 'dart:io'; + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:qr_code_scanner_plus/qr_code_scanner_plus.dart'; + +class QrScannerModal extends StatefulWidget { + final void Function(String) onScan; + const QrScannerModal({required this.onScan, super.key}); + + @override + QrScannerModalState createState() => QrScannerModalState(); +} + +class QrScannerModalState extends State { + final GlobalKey qrKey = GlobalKey(debugLabel: 'QR'); + QRViewController? controller; + + @override + void reassemble() { + super.reassemble(); + if (Platform.isAndroid) { + controller!.pauseCamera(); + } else if (Platform.isIOS) { + controller!.resumeCamera(); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + leading: IconButton( + icon: const Icon(Icons.close_outlined), + onPressed: Navigator.of(context).pop, + tooltip: L10n.of(context).close, + ), + title: Text(L10n.of(context).scanQrCode), + ), + body: Stack( + children: [ + QRView( + key: qrKey, + onQRViewCreated: _onQRViewCreated, + overlay: QrScannerOverlayShape( + borderColor: Theme.of(context).colorScheme.primary, + borderRadius: 10, + borderLength: 30, + borderWidth: 8, + ), + ), + ], + ), + ); + } + + void _onQRViewCreated(QRViewController controller) { + this.controller = controller; + // Workaround for QR Scanner is started in Pause mode + // https://github.com/juliuscanute/qr_code_scanner/issues/538#issuecomment-1133883828 + if (Platform.isAndroid) { + controller.pauseCamera(); + } + controller.resumeCamera(); + late StreamSubscription sub; + sub = controller.scannedDataStream.listen((scanData) { + sub.cancel(); + if (!mounted) return; + Navigator.of(context).pop(); + final data = scanData.code; + if (data != null) widget.onScan(data); + }); + } +} diff --git a/lib/pages/register/recaptcha_placeholder.dart b/lib/pages/register/recaptcha_placeholder.dart new file mode 100644 index 0000000..1f2d4ef --- /dev/null +++ b/lib/pages/register/recaptcha_placeholder.dart @@ -0,0 +1,27 @@ +// SPDX-FileCopyrightText: 2026 TatuChat +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:flutter/widgets.dart'; + +class RecaptchaBox extends StatelessWidget { + final String siteKey; + final ValueChanged onToken; + + const RecaptchaBox({ + super.key, + required this.siteKey, + required this.onToken, + }); + + @override + Widget build(BuildContext context) { + return const Padding( + padding: EdgeInsets.symmetric(horizontal: 16, vertical: 8), + child: Text( + 'O registro neste servidor exige verificação reCAPTCHA, ' + 'disponível apenas na versão web do TatuChat.', + textAlign: TextAlign.center, + ), + ); + } +} \ No newline at end of file diff --git a/lib/pages/register/recaptcha_web.dart b/lib/pages/register/recaptcha_web.dart new file mode 100644 index 0000000..1a88ae7 --- /dev/null +++ b/lib/pages/register/recaptcha_web.dart @@ -0,0 +1,142 @@ +// SPDX-FileCopyrightText: 2026 TatuChat +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; +import 'dart:js_interop'; +import 'dart:js_interop_unsafe'; +import 'dart:ui_web' as ui_web; + +import 'package:flutter/widgets.dart'; +import 'package:web/web.dart' as web; + +@JS('grecaptcha') +extension type _RecaptchaRuntime._(JSObject _) implements JSObject { + external void render(JSAny container, JSObject parameters); +} + +Completer? _recaptchaLoadCompleter; + +bool _grecaptchaReady() => + (web.window as JSObject)['grecaptcha'] != null; + +Future _ensureRecaptchaLoaded() async { + if (_grecaptchaReady()) return; + _recaptchaLoadCompleter ??= Completer(); + if (_recaptchaLoadCompleter!.isCompleted) return; + final existing = web.document.head + ?.querySelector('script[src*="recaptcha/api.js"]'); + final script = (existing ?? web.document.createElement('script')) + as web.HTMLScriptElement; + script.src = 'https://www.google.com/recaptcha/api.js?render=explicit'; + script.async = true; + if (existing == null) { + web.document.head?.append(script); + } + for (var i = 0; i < 150; i++) { + await Future.delayed(const Duration(milliseconds: 100)); + if (_grecaptchaReady()) { + _recaptchaLoadCompleter!.complete(); + return; + } + } + _recaptchaLoadCompleter!.completeError( + StateError('Não foi possível carregar o reCAPTCHA.'), + ); +} + +class RecaptchaBox extends StatefulWidget { + final String siteKey; + final ValueChanged onToken; + + const RecaptchaBox({ + super.key, + required this.siteKey, + required this.onToken, + }); + + @override + State createState() => _RecaptchaBoxState(); +} + +class _RecaptchaBoxState extends State { + static int _viewTypeCounter = 0; + String? _viewType; + web.HTMLDivElement? _element; + bool _rendered = false; + bool _failed = false; + + @override + void initState() { + super.initState(); + _viewType = 'tatchat-recaptcha-${_viewTypeCounter++}'; + ui_web.platformViewRegistry.registerViewFactory( + _viewType!, + (int viewId) => _createElement(), + ); + _ensureLoaded(); + } + + Future _ensureLoaded() async { + try { + await _ensureRecaptchaLoaded(); + if (mounted) _tryRender(); + } catch (_) { + if (mounted) setState(() => _failed = true); + } + } + + web.HTMLElement _createElement() { + final div = web.document.createElement('div') as web.HTMLDivElement; + div.style.width = '304px'; + div.style.height = '78px'; + div.style.marginLeft = 'auto'; + div.style.marginRight = 'auto'; + _element = div; + _tryRender(); + return div; + } + + void _tryRender() { + final div = _element; + if (div == null || _rendered) return; + if (!_grecaptchaReady()) return; + try { + final runtime = _RecaptchaRuntime._( + (web.window as JSObject)['grecaptcha'] as JSObject, + ); + final params = { + 'sitekey': widget.siteKey, + 'callback': (JSString token) { + widget.onToken(token.toDart); + }.toJS, + 'expired-callback': (JSAny? _) {}.toJS, + 'error-callback': (JSAny? _) { + if (mounted) setState(() => _failed = true); + }.toJS, + }.jsify() as JSObject; + runtime.render(div, params); + _rendered = true; + } catch (_) { + if (mounted) setState(() => _failed = true); + } + } + + @override + Widget build(BuildContext context) { + if (_failed) { + return const SizedBox( + height: 78, + child: Center( + child: Text('Não foi possível carregar o reCAPTCHA.'), + ), + ); + } + return SizedBox( + width: 304, + height: 78, + child: HtmlElementView(viewType: _viewType!), + ); + } +} \ No newline at end of file diff --git a/lib/pages/register/registration.dart b/lib/pages/register/registration.dart new file mode 100644 index 0000000..31e62cc --- /dev/null +++ b/lib/pages/register/registration.dart @@ -0,0 +1,246 @@ +// SPDX-FileCopyrightText: 2026 TatuChat +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:flutter/foundation.dart'; +import 'package:flutter/widgets.dart'; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart'; +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/platform_infos.dart'; + +import 'registration_view.dart'; + +class RegistrationPage extends StatefulWidget { + final Client client; + + const RegistrationPage({required this.client, super.key}); + + @override + RegistrationController createState() => RegistrationController(); +} + +class RegistrationController extends State { + final TextEditingController usernameController = TextEditingController(); + final TextEditingController passwordController = TextEditingController(); + final TextEditingController confirmPasswordController = + TextEditingController(); + + String? usernameError; + String? passwordError; + String? globalError; + bool loading = false; + bool showPassword = false; + int recaptchaAttempt = 0; + + String? _session; + String? _recaptchaSiteKey; + + bool get showRecaptcha => _recaptchaSiteKey != null; + + String? get recaptchaSiteKey => _recaptchaSiteKey; + + String get _username => usernameController.text.trim(); + String get _password => passwordController.text; + + void toggleShowPassword() => + setState(() => showPassword = !loading && !showPassword); + + Future _ensureHomeserver() async { + final client = widget.client; + if (client.homeserver != null) return; + var homeserver = Uri.parse(AppSettings.defaultHomeserver.value); + if (homeserver.scheme.isEmpty) { + homeserver = Uri.https(homeserver.path, ''); + } + await client.checkHomeserver(homeserver); + } + + Future register() async { + final l10n = L10n.of(context); + if (_username.isEmpty) { + setState(() => usernameError = l10n.pleaseEnterYourUsername); + } else { + setState(() => usernameError = null); + } + if (_password.isEmpty) { + setState(() => passwordError = l10n.pleaseEnterYourPassword); + } else if (_password.length < 8) { + setState( + () => passwordError = 'A senha deve ter pelo menos 8 caracteres.', + ); + } else if (_password != confirmPasswordController.text) { + setState(() => passwordError = 'As senhas não coincidem.'); + } else { + setState(() => passwordError = null); + } + if (usernameError != null || passwordError != null) return; + + setState(() { + loading = true; + globalError = null; + }); + try { + await _ensureHomeserver(); + await _submit(null); + } on MatrixException catch (e) { + if (!mounted) return; + if (e.session != null) { + _handleUia(e); + } else { + setState(() { + loading = false; + globalError = _formatException(e); + }); + } + } catch (e) { + if (!mounted) return; + setState(() { + loading = false; + globalError = e.toString(); + }); + } + } + + Future _submit(AuthenticationData? auth) async { + await widget.client.register( + username: _username, + password: _password, + initialDeviceDisplayName: PlatformInfos.appDisplayName, + auth: auth, + ); + if (mounted) context.go('/backup'); + } + + Future _handleUia(MatrixException e) async { + _session = e.session; + final completed = e.completedAuthenticationFlows; + + final nextStages = []; + for (final flow in e.authenticationFlows ?? []) { + if (flow.stages.length > completed.length && + completed.every(flow.stages.contains)) { + final s = flow.stages[completed.length]; + if (!nextStages.contains(s)) nextStages.add(s); + } + } + + for (final stage in nextStages) { + switch (stage) { + case 'm.login.dummy': + _recaptchaSiteKey = null; + await _submitWithUia( + AuthenticationData(type: 'm.login.dummy', session: _session), + ); + return; + case 'm.login.terms': + _recaptchaSiteKey = null; + await _submitWithUia( + AuthenticationData(type: 'm.login.terms', session: _session), + ); + return; + case 'm.login.recaptcha': + final params = e.authenticationParams; + final publicKey = + (params?['m.login.recaptcha'] as Map?)?['public_key'] + ?.toString(); + if (publicKey == null) { + setState(() { + loading = false; + globalError = 'Parâmetros reCAPTCHA inválidos do servidor.'; + }); + return; + } + if (!kIsWeb) { + setState(() { + loading = false; + globalError = + 'O registro neste servidor requer reCAPTCHA, ' + 'disponível apenas na versão web do TatuChat.'; + }); + return; + } + _recaptchaSiteKey = publicKey; + recaptchaAttempt++; + setState(() => loading = false); + return; + default: + setState(() { + loading = false; + globalError = + 'Etapa de autenticação não suportada pelo TatuChat: $stage'; + }); + return; + } + } + setState(() { + loading = false; + globalError = 'Fluxo de autenticação inválido.'; + }); + } + + Future _submitWithUia(AuthenticationData auth) async { + setState(() { + loading = true; + globalError = null; + }); + try { + await _submit(auth); + } on MatrixException catch (e) { + if (!mounted) return; + if (e.session != null) { + _handleUia(e); + } else { + setState(() { + loading = false; + globalError = _formatException(e); + }); + } + } catch (e) { + if (!mounted) return; + setState(() { + loading = false; + globalError = e.toString(); + }); + } + } + + void onRecaptchaToken(String token) { + if (token.isEmpty || _session == null) return; + _recaptchaSiteKey = null; + _submitWithUia( + AuthenticationRecaptcha(session: _session!, response: token), + ); + } + + String _formatException(MatrixException e) { + switch (e.error) { + case MatrixError.M_USER_IN_USE: + return 'Este nome de usuário já está em uso.'; + case MatrixError.M_INVALID_USERNAME: + return 'Nome de usuário inválido.'; + case MatrixError.M_CAPTCHA_INVALID: + return 'A verificação reCAPTCHA falhou. Tente novamente.'; + case MatrixError.M_CAPTCHA_NEEDED: + return 'É necessária uma verificação reCAPTCHA.'; + case MatrixError.M_UNAUTHORIZED: + case MatrixError.M_FORBIDDEN: + return 'O servidor recusou o registro.'; + case MatrixError.M_RESOURCE_LIMIT_EXCEEDED: + return 'Este servidor recusou o registro: limite de contas atingido.'; + default: + return e.errorMessage; + } + } + + @override + void dispose() { + usernameController.dispose(); + passwordController.dispose(); + confirmPasswordController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) => RegistrationView(this); +} \ No newline at end of file diff --git a/lib/pages/register/registration_view.dart b/lib/pages/register/registration_view.dart new file mode 100644 index 0000000..1c320de --- /dev/null +++ b/lib/pages/register/registration_view.dart @@ -0,0 +1,184 @@ +// SPDX-FileCopyrightText: 2026 TatuChat +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:material_ui/material_ui.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/widgets/layouts/login_scaffold.dart'; + +import 'recaptcha_placeholder.dart' + if (dart.library.js_interop) 'recaptcha_web.dart'; +import 'registration.dart'; + +class RegistrationView extends StatelessWidget { + final RegistrationController controller; + + const RegistrationView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + final homeserver = controller.widget.client.homeserver + ?.toString() + .replaceFirst('https://', ''); + + return LoginScaffold( + appBar: AppBar( + leading: controller.loading ? null : const Center(child: BackButton()), + automaticallyImplyLeading: !controller.loading, + titleSpacing: !controller.loading ? 0 : null, + title: Text(L10n.of(context).createNewAccount), + ), + body: Builder( + builder: (context) { + return AutofillGroup( + child: ListView( + padding: const EdgeInsets.symmetric(horizontal: 8), + children: [ + Center( + child: Hero( + tag: 'info-logo', + child: ClipRRect( + borderRadius: BorderRadius.circular(128), + child: Image.asset( + './assets/logo/mini/logo_mini.png', + width: 128, + height: 128, + ), + ), + ), + ), + const SizedBox(height: 16), + if (homeserver != null) + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24), + child: Text( + L10n.of(context).signUpGreeting, + textAlign: TextAlign.center, + style: theme.textTheme.bodyMedium, + ), + ), + const SizedBox(height: 16), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24.0), + child: TextField( + readOnly: controller.loading, + autocorrect: false, + autofocus: true, + controller: controller.usernameController, + textInputAction: TextInputAction.next, + keyboardType: TextInputType.text, + autofillHints: + controller.loading ? null : [AutofillHints.username], + decoration: InputDecoration( + prefixIcon: const Icon(Icons.account_box_outlined), + errorText: controller.usernameError, + errorStyle: const TextStyle(color: Colors.orange), + hintText: 'somente letras, números e . _ = - /', + labelText: L10n.of(context).matrixId, + ), + ), + ), + const SizedBox(height: 16), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24.0), + child: TextField( + readOnly: controller.loading, + autocorrect: false, + autofillHints: + controller.loading ? null : [AutofillHints.password], + controller: controller.passwordController, + textInputAction: TextInputAction.next, + obscureText: !controller.showPassword, + decoration: InputDecoration( + prefixIcon: const Icon(Icons.lock_outlined), + errorText: controller.passwordError, + errorStyle: const TextStyle(color: Colors.orange), + suffixIcon: IconButton( + onPressed: controller.loading + ? null + : controller.toggleShowPassword, + icon: Icon( + controller.showPassword + ? Icons.visibility_off_outlined + : Icons.visibility_outlined, + color: Colors.black, + ), + ), + hintText: '******', + labelText: L10n.of(context).password, + ), + ), + ), + const SizedBox(height: 16), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24.0), + child: TextField( + readOnly: controller.loading, + autocorrect: false, + autofillHints: + controller.loading ? null : [AutofillHints.password], + controller: controller.confirmPasswordController, + textInputAction: TextInputAction.go, + obscureText: !controller.showPassword, + onSubmitted: (_) => controller.register(), + decoration: InputDecoration( + prefixIcon: const Icon(Icons.lock_outlined), + hintText: '******', + labelText: 'Confirmar senha', + ), + ), + ), + const SizedBox(height: 16), + if (controller.showRecaptcha) + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24.0), + child: RecaptchaBox( + key: ValueKey(controller.recaptchaAttempt), + siteKey: controller.recaptchaSiteKey!, + onToken: controller.onRecaptchaToken, + ), + ), + if (controller.showRecaptcha) const SizedBox(height: 16), + if (controller.globalError != null) + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24.0), + child: Text( + controller.globalError!, + style: TextStyle(color: theme.colorScheme.error), + textAlign: TextAlign.center, + ), + ), + if (controller.globalError != null) const SizedBox(height: 16), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24.0), + child: ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: theme.colorScheme.primary, + foregroundColor: theme.colorScheme.onPrimary, + ), + onPressed: controller.loading ? null : controller.register, + child: controller.loading + ? const LinearProgressIndicator() + : Text(L10n.of(context).continueText), + ), + ), + const SizedBox(height: 16), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24.0), + child: TextButton( + onPressed: controller.loading + ? null + : () => Navigator.of(context).maybePop(), + child: const Text('Já tem uma conta? Entre aqui.'), + ), + ), + const SizedBox(height: 16), + ], + ), + ); + }, + ), + ); + } +} \ No newline at end of file diff --git a/lib/pages/settings/settings.dart b/lib/pages/settings/settings.dart new file mode 100644 index 0000000..4601fce --- /dev/null +++ b/lib/pages/settings/settings.dart @@ -0,0 +1,221 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; + +import 'package:collection/collection.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/file_selector.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_modal_action_popup.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/future_loading_dialog.dart'; +import 'package:go_router/go_router.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/encryption.dart'; +import 'package:matrix/matrix.dart'; + +import '../../widgets/matrix.dart'; +import 'settings_view.dart'; + +class Settings extends StatefulWidget { + const Settings({super.key}); + + @override + SettingsController createState() => SettingsController(); +} + +class SettingsController extends State { + Future? profileFuture; + bool profileUpdated = false; + + void updateProfile() => setState(() { + profileUpdated = true; + profileFuture = null; + }); + + Future setDisplaynameAction() async { + final l10n = L10n.of(context); + final matrix = Matrix.of(context); + final profile = await profileFuture; + if (!mounted) return; + final input = await showTextInputDialog( + useRootNavigator: false, + context: context, + title: l10n.editDisplayname, + okLabel: l10n.ok, + cancelLabel: l10n.cancel, + initialText: profile?.displayName ?? matrix.client.userID!.localpart, + ); + if (input == null) return; + if (!mounted) return; + final success = await showFutureLoadingDialog( + context: context, + future: () => matrix.client.setProfileField( + matrix.client.userID!, + 'displayname', + {'displayname': input}, + ), + ); + if (success.error == null) { + updateProfile(); + } + } + + Future logoutAction() async { + final l10n = L10n.of(context); + final matrix = Matrix.of(context); + final consent = await showOkCancelAlertDialog( + useRootNavigator: false, + context: context, + title: l10n.areYouSureYouWantToLogout, + message: l10n.noBackupWarning, + isDestructive: cryptoIdentityConnected == false, + okLabel: l10n.logout, + cancelLabel: l10n.cancel, + ); + if (consent != OkCancelResult.ok) return; + if (!mounted) return; + await showFutureLoadingDialog( + context: context, + future: () => matrix.client.logout(), + ); + if (!mounted) return; + context.go('/'); + } + + Future setAvatarAction() async { + final l10n = L10n.of(context); + final matrix = Matrix.of(context); + final profile = await profileFuture; + if (!mounted) return; + final actions = [ + if (PlatformInfos.isMobile) + AdaptiveModalAction( + value: AvatarAction.camera, + label: l10n.openCamera, + isDefaultAction: true, + icon: const Icon(Icons.camera_alt_outlined), + ), + AdaptiveModalAction( + value: AvatarAction.file, + label: l10n.openGallery, + icon: const Icon(Icons.photo_outlined), + ), + if (profile?.avatarUrl != null) + AdaptiveModalAction( + value: AvatarAction.remove, + label: l10n.removeYourAvatar, + isDestructive: true, + icon: const Icon(Icons.delete_outlined), + ), + ]; + final action = actions.length == 1 + ? actions.single.value + : await showModalActionPopup( + context: context, + title: l10n.changeYourAvatar, + cancelLabel: l10n.cancel, + actions: actions, + ); + if (action == null) return; + if (!mounted) return; + if (action == AvatarAction.remove) { + final success = await showFutureLoadingDialog( + context: context, + future: () => matrix.client.setAvatar(null), + ); + if (success.error == null) { + updateProfile(); + } + return; + } + MatrixFile file; + if (PlatformInfos.isMobile) { + final result = await ImagePicker().pickImage( + source: action == AvatarAction.camera + ? ImageSource.camera + : ImageSource.gallery, + imageQuality: 50, + ); + if (result == null) return; + file = MatrixFile(bytes: await result.readAsBytes(), name: result.path); + } else { + if (!mounted) return; + final result = await selectFiles(context, type: FileType.image); + final pickedFile = result.firstOrNull; + if (pickedFile == null) return; + file = MatrixFile( + bytes: await pickedFile.readAsBytes(), + name: pickedFile.name, + ); + } + if (!mounted) return; + final success = await showFutureLoadingDialog( + context: context, + future: () => matrix.client.setAvatar(file), + ); + if (success.error == null) { + updateProfile(); + } + } + + @override + void initState() { + WidgetsBinding.instance.addPostFrameCallback((_) => checkBootstrap()); + + super.initState(); + } + + Future checkBootstrap() async { + final client = Matrix.of(context).client; + if (!client.encryptionEnabled) return; + if (!client.isLogged()) return; + await client.accountDataLoading; + await client.userDeviceKeysLoading; + if (client.prevBatch == null) { + await client.onSync.stream.first; + } + + final state = await client.getCryptoIdentityState(); + if (!mounted) return; + setState(() { + cryptoIdentityConnected = state.initialized && state.connected; + }); + } + + bool? cryptoIdentityConnected; + + Future firstRunBootstrapAction([_]) async { + if (cryptoIdentityConnected == true) { + final action = await showOkCancelAlertDialog( + context: context, + title: L10n.of(context).chatBackup, + message: L10n.of(context).onlineKeyBackupEnabled, + okLabel: L10n.of(context).resetRecoveryKey, + cancelLabel: L10n.of(context).close, + isDestructive: true, + ); + if (action != OkCancelResult.ok) return; + if (!mounted) return; + await context.push('/backup?reset=true'); + return; + } + await context.push('/backup'); + checkBootstrap(); + } + + @override + Widget build(BuildContext context) { + final client = Matrix.of(context).client; + profileFuture ??= client.getProfileFromUserId(client.userID!); + return SettingsView(this); + } +} + +enum AvatarAction { camera, file, remove } diff --git a/lib/pages/settings/settings_view.dart b/lib/pages/settings/settings_view.dart new file mode 100644 index 0000000..c4608f6 --- /dev/null +++ b/lib/pages/settings/settings_view.dart @@ -0,0 +1,219 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:async/async.dart'; +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/tatu_share.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart' hide Result; +import 'package:url_launcher/url_launcher.dart'; +import 'package:url_launcher/url_launcher_string.dart'; + +import '../../widgets/mxc_image_viewer.dart'; +import 'settings.dart'; + +class SettingsView extends StatelessWidget { + final SettingsController controller; + + const SettingsView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final activeRoute = GoRouter.of( + context, + ).routeInformationProvider.value.uri.path; + + return Scaffold( + appBar: AppBar( + title: Text(L10n.of(context).settings), + leading: Center( + child: BackButton(onPressed: () => context.go('/rooms')), + ), + ), + body: ListTileTheme( + iconColor: theme.colorScheme.onSurface, + child: ListView( + key: const Key('SettingsListViewContent'), + children: [ + FutureBuilder( + future: controller.profileFuture, + builder: (context, snapshot) { + final profile = snapshot.data; + final avatar = profile?.avatarUrl; + final mxid = + Matrix.of(context).client.userID ?? L10n.of(context).user; + final displayname = + profile?.displayName ?? mxid.localpart ?? mxid; + return Column( + crossAxisAlignment: .center, + mainAxisSize: .min, + children: [ + Stack( + children: [ + Avatar( + mxContent: avatar, + name: displayname, + size: Avatar.defaultSize * 2.5, + onTap: avatar != null + ? () => showDialog( + context: context, + builder: (_) => MxcImageViewer(avatar), + ) + : null, + ), + if (profile != null) + Positioned( + bottom: 0, + right: 0, + child: FloatingActionButton.small( + elevation: 2, + onPressed: controller.setAvatarAction, + heroTag: null, + child: const Icon(Icons.camera_alt_outlined), + ), + ), + ], + ), + const SizedBox(height: 8), + TextButton.icon( + onPressed: controller.setDisplaynameAction, + icon: const Icon(Icons.edit_outlined, size: 16), + style: TextButton.styleFrom( + foregroundColor: theme.colorScheme.onSurface, + iconColor: theme.colorScheme.onSurface, + ), + label: Text( + displayname, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: const TextStyle(fontSize: 18), + ), + ), + TextButton( + onPressed: () => TatuShare.share(mxid, context), + style: TextButton.styleFrom( + foregroundColor: theme.colorScheme.secondary, + iconColor: theme.colorScheme.secondary, + ), + child: Text( + mxid, + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + const SizedBox(height: 8), + ], + ); + }, + ), + SwitchListTile.adaptive( + controlAffinity: ListTileControlAffinity.trailing, + value: controller.cryptoIdentityConnected == true, + secondary: const Icon(Icons.backup_outlined), + title: Text(L10n.of(context).chatBackup), + onChanged: controller.firstRunBootstrapAction, + contentPadding: EdgeInsets.only(left: 16, right: 8), + ), + FutureBuilder( + future: Result.capture( + Matrix.of(context).client.getAuthMetadata(), + ).then((result) => result.asValue?.value), + builder: (context, snapshot) { + final accountManageUrl = snapshot.data?.accountManagementUri; + if (accountManageUrl == null) { + return const SizedBox.shrink(); + } + return ListTile( + leading: const Icon(Icons.account_circle_outlined), + title: Text(L10n.of(context).manageAccount), + trailing: const Icon(Icons.open_in_new_outlined), + onTap: () => launchUrl( + accountManageUrl, + mode: LaunchMode.inAppBrowserView, + ), + ); + }, + ), + ListTile( + leading: const Icon(Icons.format_paint_outlined), + title: Text(L10n.of(context).changeTheme), + tileColor: activeRoute.startsWith('/rooms/settings/style') + ? theme.colorScheme.surfaceContainerHigh + : null, + onTap: () => context.go('/rooms/settings/style'), + ), + ListTile( + leading: const Icon(Icons.notifications_outlined), + title: Text(L10n.of(context).notifications), + tileColor: activeRoute.startsWith('/rooms/settings/notifications') + ? theme.colorScheme.surfaceContainerHigh + : null, + onTap: () => context.go('/rooms/settings/notifications'), + ), + ListTile( + leading: const Icon(Icons.devices_outlined), + title: Text(L10n.of(context).devices), + onTap: () => context.go('/rooms/settings/devices'), + tileColor: activeRoute.startsWith('/rooms/settings/devices') + ? theme.colorScheme.surfaceContainerHigh + : null, + ), + ListTile( + leading: const Icon(Icons.forum_outlined), + title: Text(L10n.of(context).chat), + onTap: () => context.go('/rooms/settings/chat'), + tileColor: activeRoute.startsWith('/rooms/settings/chat') + ? theme.colorScheme.surfaceContainerHigh + : null, + ), + ListTile( + leading: const Icon(Icons.shield_outlined), + title: Text(L10n.of(context).security), + onTap: () => context.go('/rooms/settings/security'), + tileColor: activeRoute.startsWith('/rooms/settings/security') + ? theme.colorScheme.surfaceContainerHigh + : null, + ), + Divider(color: theme.dividerColor), + ListTile( + leading: const Icon(Icons.dns_outlined), + title: Text( + L10n.of(context).aboutHomeserver( + Matrix.of(context).client.userID?.domain ?? 'homeserver', + ), + ), + onTap: () => context.go('/rooms/settings/homeserver'), + tileColor: activeRoute.startsWith('/rooms/settings/homeserver') + ? theme.colorScheme.surfaceContainerHigh + : null, + ), + ListTile( + leading: const Icon(Icons.privacy_tip_outlined), + title: Text(L10n.of(context).privacy), + onTap: () => launchUrlString(AppSettings.privacyPolicy.value), + ), + ListTile( + leading: const Icon(Icons.info_outline_rounded), + title: Text(L10n.of(context).about), + onTap: () => PlatformInfos.showDialog(context), + ), + Divider(color: theme.dividerColor), + ListTile( + leading: const Icon(Icons.logout_outlined), + title: Text(L10n.of(context).logout), + onTap: controller.logoutAction, + ), + ], + ), + ), + ); + } +} diff --git a/lib/pages/settings_3pid/settings_3pid.dart b/lib/pages/settings_3pid/settings_3pid.dart new file mode 100644 index 0000000..2fc5894 --- /dev/null +++ b/lib/pages/settings_3pid/settings_3pid.dart @@ -0,0 +1,104 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.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/future_loading_dialog.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import 'settings_3pid_view.dart'; + +class Settings3Pid extends StatefulWidget { + static int sendAttempt = 0; + + const Settings3Pid({super.key}); + + @override + Settings3PidController createState() => Settings3PidController(); +} + +class Settings3PidController extends State { + Future add3PidAction() async { + final l10n = L10n.of(context); + final matrix = Matrix.of(context); + final input = await showTextInputDialog( + useRootNavigator: false, + context: context, + title: l10n.enterAnEmailAddress, + okLabel: l10n.ok, + cancelLabel: l10n.cancel, + hintText: l10n.enterAnEmailAddress, + keyboardType: TextInputType.emailAddress, + ); + if (input == null) return; + if (!mounted) return; + final clientSecret = DateTime.now().millisecondsSinceEpoch.toString(); + final response = await showFutureLoadingDialog( + context: context, + future: () => matrix.client.requestTokenToRegisterEmail( + clientSecret, + input, + Settings3Pid.sendAttempt++, + ), + ); + if (response.error != null) return; + if (!mounted) return; + final ok = await showOkAlertDialog( + useRootNavigator: false, + context: context, + title: l10n.weSentYouAnEmail, + message: l10n.pleaseClickOnLink, + okLabel: l10n.iHaveClickedOnLink, + ); + if (ok != OkCancelResult.ok) return; + if (!mounted) return; + final success = await showFutureLoadingDialog( + context: context, + delay: false, + future: () => matrix.client.uiaRequestBackground( + (auth) => matrix.client.add3PID( + clientSecret, + response.result!.sid, + auth: auth, + ), + ), + ); + if (success.error != null) return; + setState(() => request = null); + } + + Future?>? request; + + Future delete3Pid(ThirdPartyIdentifier identifier) async { + final l10n = L10n.of(context); + final matrix = Matrix.of(context); + if (await showOkCancelAlertDialog( + useRootNavigator: false, + context: context, + title: l10n.areYouSure, + okLabel: l10n.yes, + cancelLabel: l10n.cancel, + ) != + OkCancelResult.ok) { + return; + } + if (!mounted) return; + final success = await showFutureLoadingDialog( + context: context, + future: () => matrix.client.delete3pidFromAccount( + identifier.address, + identifier.medium, + ), + ); + if (success.error != null) return; + setState(() => request = null); + } + + @override + Widget build(BuildContext context) => Settings3PidView(this); +} diff --git a/lib/pages/settings_3pid/settings_3pid_view.dart b/lib/pages/settings_3pid/settings_3pid_view.dart new file mode 100644 index 0000000..5e0add1 --- /dev/null +++ b/lib/pages/settings_3pid/settings_3pid_view.dart @@ -0,0 +1,119 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/settings_3pid/settings_3pid.dart'; +import 'package:tatchat/widgets/layouts/max_width_body.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class Settings3PidView extends StatelessWidget { + final Settings3PidController controller; + + const Settings3PidView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + controller.request ??= Matrix.of(context).client.getAccount3PIDs(); + return Scaffold( + appBar: AppBar( + leading: const Center(child: BackButton()), + title: Text(L10n.of(context).passwordRecovery), + actions: [ + IconButton( + icon: const Icon(Icons.add_outlined), + onPressed: controller.add3PidAction, + tooltip: L10n.of(context).addEmail, + ), + ], + ), + body: MaxWidthBody( + withScrolling: false, + child: FutureBuilder?>( + future: controller.request, + builder: + ( + BuildContext context, + AsyncSnapshot?> snapshot, + ) { + if (snapshot.hasError) { + return Center( + child: Text( + snapshot.error.toString(), + textAlign: TextAlign.center, + ), + ); + } + if (!snapshot.hasData) { + return const Center( + child: CircularProgressIndicator.adaptive(strokeWidth: 2), + ); + } + final identifier = snapshot.data!; + return Column( + children: [ + ListTile( + leading: CircleAvatar( + backgroundColor: theme.scaffoldBackgroundColor, + foregroundColor: identifier.isEmpty + ? Colors.orange + : Colors.grey, + child: Icon( + identifier.isEmpty + ? Icons.warning_outlined + : Icons.info_outlined, + ), + ), + title: Text( + identifier.isEmpty + ? L10n.of(context).noPasswordRecoveryDescription + : L10n.of( + context, + ).withTheseAddressesRecoveryDescription, + ), + ), + const Divider(), + Expanded( + child: ListView.builder( + itemCount: identifier.length, + itemBuilder: (BuildContext context, int i) => ListTile( + leading: CircleAvatar( + backgroundColor: theme.scaffoldBackgroundColor, + foregroundColor: Colors.grey, + child: Icon(identifier[i].iconData), + ), + title: Text(identifier[i].address), + trailing: IconButton( + tooltip: L10n.of(context).delete, + icon: const Icon(Icons.delete_forever_outlined), + color: Colors.red, + onPressed: () => + controller.delete3Pid(identifier[i]), + ), + ), + ), + ), + ], + ); + }, + ), + ), + ); + } +} + +extension on ThirdPartyIdentifier { + IconData get iconData { + switch (medium) { + case ThirdPartyIdentifierMedium.email: + return Icons.mail_outline_rounded; + case ThirdPartyIdentifierMedium.msisdn: + return Icons.phone_android_outlined; + } + } +} diff --git a/lib/pages/settings_chat/settings_chat.dart b/lib/pages/settings_chat/settings_chat.dart new file mode 100644 index 0000000..40d18c6 --- /dev/null +++ b/lib/pages/settings_chat/settings_chat.dart @@ -0,0 +1,22 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:material_ui/material_ui.dart'; + +import 'settings_chat_view.dart'; + +class SettingsChat extends StatefulWidget { + const SettingsChat({super.key}); + + @override + SettingsChatController createState() => SettingsChatController(); +} + +class SettingsChatController extends State { + void updateState() => setState(() {}); + + @override + Widget build(BuildContext context) => SettingsChatView(this); +} diff --git a/lib/pages/settings_chat/settings_chat_view.dart b/lib/pages/settings_chat/settings_chat_view.dart new file mode 100644 index 0000000..6212026 --- /dev/null +++ b/lib/pages/settings_chat/settings_chat_view.dart @@ -0,0 +1,172 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:emoji_picker_flutter/emoji_picker_flutter.dart'; +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/adaptive_bottom_sheet.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/widgets/layouts/max_width_body.dart'; +import 'package:tatchat/widgets/settings_switch_list_tile.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; + +import 'settings_chat.dart'; + +class SettingsChatView extends StatelessWidget { + final SettingsChatController controller; + const SettingsChatView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + return Scaffold( + appBar: AppBar( + title: Text(L10n.of(context).chat), + automaticallyImplyLeading: !FluffyThemes.isColumnMode(context), + centerTitle: FluffyThemes.isColumnMode(context), + ), + body: ListTileTheme( + iconColor: theme.textTheme.bodyLarge!.color, + child: MaxWidthBody( + child: Column( + children: [ + SettingsSwitchListTile.adaptive( + title: L10n.of(context).formattedMessages, + subtitle: L10n.of(context).formattedMessagesDescription, + setting: AppSettings.renderHtml, + ), + SettingsSwitchListTile.adaptive( + title: L10n.of(context).hideRedactedMessages, + subtitle: L10n.of(context).hideRedactedMessagesBody, + setting: AppSettings.hideRedactedEvents, + ), + SettingsSwitchListTile.adaptive( + title: L10n.of(context).hideRoomsInSpaces, + setting: AppSettings.hideRoomsInSpaces, + ), + SettingsSwitchListTile.adaptive( + title: L10n.of(context).hideInvalidOrUnknownMessageFormats, + setting: AppSettings.hideUnknownEvents, + ), + if (PlatformInfos.isMobile) + SettingsSwitchListTile.adaptive( + title: L10n.of(context).autoplayImages, + setting: AppSettings.autoplayImages, + ), + SettingsSwitchListTile.adaptive( + title: L10n.of(context).sendOnEnter, + setting: AppSettings.sendOnEnter, + ), + SettingsSwitchListTile.adaptive( + title: L10n.of(context).swipeRightToLeftToReply, + setting: AppSettings.swipeRightToLeftToReply, + ), + SettingsSwitchListTile.adaptive( + title: L10n.of(context).showThumbnailsInTimeline, + setting: AppSettings.showThumbnailsInTimeline, + ), + SettingsSwitchListTile.adaptive( + title: L10n.of(context).doubleTapToReact, + subtitle: L10n.of(context).doubleTapToReactDescription, + setting: AppSettings.doubleTapToReact, + onChanged: (_) => controller.updateState(), + ), + if (AppSettings.doubleTapToReact.value) + ListTile( + title: Text(L10n.of(context).doubleTapReaction), + trailing: Text( + AppSettings.doubleTapReaction.value, + style: const TextStyle(fontSize: 24), + ), + onTap: () async { + final emoji = await showAdaptiveBottomSheet( + context: context, + builder: (context) => Scaffold( + appBar: AppBar( + title: Text(L10n.of(context).doubleTapReaction), + leading: CloseButton( + onPressed: () => Navigator.of(context).pop(null), + ), + ), + body: SizedBox( + height: double.infinity, + child: EmojiPicker( + onEmojiSelected: (_, emoji) => + Navigator.of(context).pop(emoji.emoji), + config: Config( + locale: Localizations.localeOf(context), + emojiViewConfig: const EmojiViewConfig( + backgroundColor: Colors.transparent, + ), + bottomActionBarConfig: + const BottomActionBarConfig(enabled: false), + categoryViewConfig: CategoryViewConfig( + initCategory: Category.SMILEYS, + backspaceColor: theme.colorScheme.primary, + iconColor: theme.colorScheme.primary.withAlpha( + 128, + ), + iconColorSelected: theme.colorScheme.primary, + indicatorColor: theme.colorScheme.primary, + backgroundColor: theme.colorScheme.surface, + ), + skinToneConfig: SkinToneConfig( + dialogBackgroundColor: Color.lerp( + theme.colorScheme.surface, + theme.colorScheme.primaryContainer, + 0.75, + )!, + indicatorColor: theme.colorScheme.onSurface, + ), + ), + ), + ), + ), + ); + if (emoji != null) { + await AppSettings.doubleTapReaction.setItem(emoji); + controller.updateState(); + } + }, + ), + Divider(color: theme.dividerColor), + ListTile( + title: Text( + L10n.of(context).customEmojisAndStickers, + style: TextStyle( + color: theme.colorScheme.secondary, + fontWeight: FontWeight.bold, + ), + ), + ), + ListTile( + title: Text(L10n.of(context).customEmojisAndStickers), + subtitle: Text(L10n.of(context).customEmojisAndStickersBody), + onTap: () => context.go('/rooms/settings/chat/emotes'), + trailing: const Padding( + padding: EdgeInsets.all(16.0), + child: Icon(Icons.chevron_right_outlined), + ), + ), + Divider(color: theme.dividerColor), + ListTile( + title: Text( + L10n.of(context).calls, + style: TextStyle( + color: theme.colorScheme.secondary, + fontWeight: FontWeight.bold, + ), + ), + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/pages/settings_emotes/import_archive_dialog.dart b/lib/pages/settings_emotes/import_archive_dialog.dart new file mode 100644 index 0000000..192dd85 --- /dev/null +++ b/lib/pages/settings_emotes/import_archive_dialog.dart @@ -0,0 +1,363 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; + +import 'package:archive/archive.dart'; +import 'package:collection/collection.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/settings_emotes/settings_emotes.dart'; +import 'package:tatchat/utils/client_manager.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:flutter/services.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class ImportEmoteArchiveDialog extends StatefulWidget { + final EmotesSettingsController controller; + final Archive archive; + + const ImportEmoteArchiveDialog({ + super.key, + required this.controller, + required this.archive, + }); + + @override + State createState() => + _ImportEmoteArchiveDialogState(); +} + +class _ImportEmoteArchiveDialogState extends State { + Map _importMap = {}; + + bool _loading = false; + + double _progress = 0; + + @override + void initState() { + _importFileMap(); + super.initState(); + } + + @override + Widget build(BuildContext context) { + return AlertDialog( + title: Text(L10n.of(context).importEmojis), + content: _loading + ? Center(child: CircularProgressIndicator(value: _progress)) + : SingleChildScrollView( + child: Wrap( + alignment: WrapAlignment.spaceEvenly, + crossAxisAlignment: WrapCrossAlignment.center, + runSpacing: 8, + spacing: 8, + children: _importMap.entries + .map( + (e) => _EmojiImportPreview( + key: ValueKey(e.key.name), + entry: e, + onNameChanged: (name) => _importMap[e.key] = name, + onRemove: () => + setState(() => _importMap.remove(e.key)), + ), + ) + .toList(), + ), + ), + actions: [ + TextButton( + onPressed: _loading ? null : Navigator.of(context).pop, + child: Text(L10n.of(context).cancel), + ), + TextButton( + onPressed: _loading + ? null + : _importMap.isNotEmpty + ? _addEmotePack + : null, + child: Text(L10n.of(context).importNow), + ), + ], + ); + } + + void _importFileMap() { + _importMap = Map.fromEntries( + widget.archive.files + .where((e) => e.isFile) + .map((e) => MapEntry(e, e.name.emoteNameFromPath)) + .sorted((a, b) => a.value.compareTo(b.value)), + ); + } + + Future _addEmotePack() async { + final matrix = Matrix.of(context); + setState(() { + _loading = true; + _progress = 0; + }); + final imports = _importMap; + final successfulUploads = {}; + + // check for duplicates first + + final skipKeys = []; + + for (final entry in imports.entries) { + final imageCode = entry.value; + + if (widget.controller.pack!.images.containsKey(imageCode)) { + final completer = Completer(); + WidgetsBinding.instance.addPostFrameCallback((timeStamp) async { + final result = await showOkCancelAlertDialog( + useRootNavigator: false, + context: context, + title: L10n.of(context).emoteExists, + message: imageCode, + cancelLabel: L10n.of(context).replace, + okLabel: L10n.of(context).skip, + ); + completer.complete(result); + }); + + final result = await completer.future; + if (result == OkCancelResult.ok) { + skipKeys.add(entry.key); + } + } + } + + for (final key in skipKeys) { + imports.remove(key); + } + + for (final entry in imports.entries) { + setState(() { + _progress += 1 / imports.length; + }); + final file = entry.key; + final imageCode = entry.value; + + try { + var mxcFile = MatrixImageFile(bytes: file.content, name: file.name); + + final thumbnail = (await mxcFile.generateThumbnail( + nativeImplementations: ClientManager.nativeImplementations, + )); + if (thumbnail == null) { + Logs().w('Unable to create thumbnail'); + } else { + mxcFile = thumbnail; + } + final uri = await matrix.client.uploadContent( + mxcFile.bytes, + filename: mxcFile.name, + contentType: mxcFile.mimeType, + ); + + final info = {...mxcFile.info}; + + // normalize width / height to 256, required for stickers + if (info['w'] is int && info['h'] is int) { + final ratio = info['w'] / info['h']; + if (info['w'] > info['h']) { + info['w'] = 256; + info['h'] = (256.0 / ratio).round(); + } else { + info['h'] = 256; + info['w'] = (ratio * 256.0).round(); + } + } + widget.controller.pack!.images[imageCode] = + ImagePackImageContent.fromJson({ + 'url': uri.toString(), + 'info': info, + }); + successfulUploads.add(file.name); + } catch (e) { + Logs().d('Could not upload emote $imageCode'); + } + } + + if (!mounted) return; + await widget.controller.save(context); + _importMap.removeWhere( + (key, value) => successfulUploads.contains(key.name), + ); + + _loading = false; + _progress = 0; + + // in case we have unhandled / duplicated emotes left, don't pop + if (mounted) setState(() {}); + if (_importMap.isEmpty) { + WidgetsBinding.instance.addPostFrameCallback( + (_) => Navigator.of(context).pop(), + ); + } + } +} + +class _EmojiImportPreview extends StatefulWidget { + final MapEntry entry; + final ValueChanged onNameChanged; + final VoidCallback onRemove; + + const _EmojiImportPreview({ + super.key, + required this.entry, + required this.onNameChanged, + required this.onRemove, + }); + + @override + State<_EmojiImportPreview> createState() => _EmojiImportPreviewState(); +} + +class _EmojiImportPreviewState extends State<_EmojiImportPreview> { + final hasErrorNotifier = ValueNotifier(false); + final controller = TextEditingController(); + + @override + void initState() { + super.initState(); + controller.text = widget.entry.value; + } + + @override + void dispose() { + hasErrorNotifier.dispose(); + controller.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + // TODO: support Lottie here as well ... + return Stack( + alignment: Alignment.topRight, + children: [ + IconButton( + onPressed: widget.onRemove, + icon: const Icon(Icons.remove_circle), + tooltip: L10n.of(context).remove, + ), + ValueListenableBuilder( + valueListenable: hasErrorNotifier, + builder: (context, hasError, child) { + if (hasError) return _ImageFileError(name: widget.entry.key.name); + + return Column( + mainAxisSize: .min, + mainAxisAlignment: .center, + crossAxisAlignment: .center, + children: [ + Image.memory( + widget.entry.key.content, + height: 64, + width: 64, + errorBuilder: (context, e, s) { + WidgetsBinding.instance.addPostFrameCallback( + (_) => _setRenderError(), + ); + + return _ImageFileError(name: widget.entry.key.name); + }, + ), + SizedBox( + width: 128, + child: TextField( + controller: controller, + inputFormatters: [ + FilteringTextInputFormatter.allow(RegExp(r'^[-\w]+$')), + ], + autocorrect: false, + minLines: 1, + maxLines: 1, + decoration: InputDecoration( + hintText: L10n.of(context).emoteShortcode, + prefixText: ': ', + suffixText: ':', + border: const OutlineInputBorder(), + prefixStyle: TextStyle( + color: theme.colorScheme.secondary, + fontWeight: FontWeight.bold, + ), + suffixStyle: TextStyle( + color: theme.colorScheme.secondary, + fontWeight: FontWeight.bold, + ), + ), + onChanged: widget.onNameChanged, + onSubmitted: widget.onNameChanged, + ), + ), + ], + ); + }, + ), + ], + ); + } + + void _setRenderError() { + hasErrorNotifier.value = true; + widget.onRemove.call(); + } +} + +class _ImageFileError extends StatelessWidget { + final String name; + + const _ImageFileError({required this.name}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + return SizedBox.square( + dimension: 64, + child: Tooltip( + message: name, + child: Column( + mainAxisAlignment: .start, + mainAxisSize: .min, + crossAxisAlignment: .center, + children: [ + const Icon(Icons.error), + Text( + L10n.of(context).notAnImage, + textAlign: TextAlign.center, + style: theme.textTheme.labelSmall, + ), + ], + ), + ), + ); + } +} + +extension on String { + /// normalizes a file path into its name only replacing any special character + /// [^-\w] with an underscore and removing the extension + /// + /// Used to compute emote name proposal based on file name + String get emoteNameFromPath { + // ... removing leading path + return split(RegExp(r'[/\\]')).last + // ... removing file extension + .split('.') + .first + // ... lowering + .toLowerCase() + // ... replacing unexpected characters + .replaceAll(RegExp(r'[^-\w]'), '_'); + } +} diff --git a/lib/pages/settings_emotes/settings_emotes.dart b/lib/pages/settings_emotes/settings_emotes.dart new file mode 100644 index 0000000..a47b5d8 --- /dev/null +++ b/lib/pages/settings_emotes/settings_emotes.dart @@ -0,0 +1,422 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; + +import 'package:archive/archive.dart' + if (dart.library.io) 'package:archive/archive_io.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/client_manager.dart'; +import 'package:tatchat/utils/file_selector.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/matrix_file_extension.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/future_loading_dialog.dart'; +import 'package:flutter/foundation.dart'; +import 'package:http/http.dart' hide Client; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../widgets/matrix.dart'; +import 'import_archive_dialog.dart'; +import 'settings_emotes_view.dart'; + +class EmotesSettings extends StatefulWidget { + final String? roomId; + const EmotesSettings({required this.roomId, super.key}); + + @override + EmotesSettingsController createState() => EmotesSettingsController(); +} + +class EmotesSettingsController extends State { + late final Room? room; + + String? stateKey; + + List? get packKeys { + final room = this.room; + if (room == null) return null; + final keys = room.states['im.ponies.room_emotes']?.keys.toList() ?? []; + keys.sort(); + return keys; + } + + @override + void initState() { + super.initState(); + room = widget.roomId != null + ? Matrix.of(context).client.getRoomById(widget.roomId!) + : null; + setStateKey(packKeys?.firstOrNull, reset: false); + } + + void setStateKey(String? key, {reset = true}) { + stateKey = key; + + final event = key == null + ? null + : room?.getState('im.ponies.room_emotes', key); + final eventPack = event?.content.tryGetMap('pack'); + packDisplayNameController.text = + eventPack?.tryGet('display_name') ?? ''; + packAttributionController.text = + eventPack?.tryGet('attribution') ?? ''; + if (reset) resetAction(); + } + + bool showSave = false; + + ImagePackContent _getPack() { + final client = Matrix.of(context).client; + final event = + (room != null + ? room!.getState('im.ponies.room_emotes', stateKey ?? '') + : client.accountData['im.ponies.user_emotes']) ?? + BasicEvent(type: 'm.dummy', content: {}); + // make sure we work on a *copy* of the event + return BasicEvent.fromJson(event.toJson()).parsedImagePackContent; + } + + ImagePackContent? _pack; + + ImagePackContent? get pack { + if (_pack != null) { + return _pack; + } + _pack = _getPack(); + return _pack; + } + + Future save(BuildContext context) async { + if (readonly) { + return; + } + final client = Matrix.of(context).client; + final result = await showFutureLoadingDialog( + context: context, + future: () => room != null + ? client.setRoomStateWithKey( + room!.id, + 'im.ponies.room_emotes', + stateKey ?? '', + pack!.toJson(), + ) + : client.setAccountData( + client.userID!, + 'im.ponies.user_emotes', + pack!.toJson(), + ), + ); + if (!result.isError) { + setState(() { + showSave = false; + }); + } + } + + Future setIsGloballyActive(bool active) async { + if (room == null) { + return; + } + final client = Matrix.of(context).client; + final content = + client.accountData['im.ponies.emote_rooms']?.content ?? + {}; + if (active) { + if (content['rooms'] is! Map) { + content['rooms'] = {}; + } + if (content['rooms'][room!.id] is! Map) { + content['rooms'][room!.id] = {}; + } + if (content['rooms'][room!.id][stateKey ?? ''] is! Map) { + content['rooms'][room!.id][stateKey ?? ''] = {}; + } + } else if (content['rooms'] is Map && content['rooms'][room!.id] is Map) { + content['rooms'][room!.id].remove(stateKey ?? ''); + } + // and save + await showFutureLoadingDialog( + context: context, + future: () => client.setAccountData( + client.userID!, + 'im.ponies.emote_rooms', + content, + ), + ); + setState(() {}); + } + + final TextEditingController packDisplayNameController = + TextEditingController(); + + final TextEditingController packAttributionController = + TextEditingController(); + + void removeImageAction(String oldImageCode) => setState(() { + pack!.images.remove(oldImageCode); + showSave = true; + }); + + void toggleUsage(String imageCode, ImagePackUsage usage) { + setState(() { + final usages = pack!.images[imageCode]!.usage ??= List.from( + ImagePackUsage.values, + ); + if (!usages.remove(usage)) usages.add(usage); + showSave = true; + }); + } + + void submitDisplaynameAction() { + if (readonly) return; + packDisplayNameController.text = packDisplayNameController.text.trim(); + final input = packDisplayNameController.text; + + setState(() { + pack!.pack.displayName = input; + showSave = true; + }); + } + + void submitAttributionAction() { + if (readonly) return; + packAttributionController.text = packAttributionController.text.trim(); + final input = packAttributionController.text; + + setState(() { + pack!.pack.attribution = input; + showSave = true; + }); + } + + void submitImageAction( + String oldImageCode, + ImagePackImageContent image, + TextEditingController controller, + ) { + controller.text = controller.text.trim().replaceAll(' ', '-'); + final imageCode = controller.text; + if (imageCode == oldImageCode) return; + if (pack!.images.keys.any((k) => k == imageCode && k != oldImageCode)) { + controller.text = oldImageCode; + showOkAlertDialog( + useRootNavigator: false, + context: context, + title: L10n.of(context).emoteExists, + okLabel: L10n.of(context).ok, + ); + return; + } + if (!RegExp(r'^[-\w]+$').hasMatch(imageCode)) { + controller.text = oldImageCode; + showOkAlertDialog( + useRootNavigator: false, + context: context, + title: L10n.of(context).emoteInvalid, + okLabel: L10n.of(context).ok, + ); + return; + } + setState(() { + pack!.images[imageCode] = image; + pack!.images.remove(oldImageCode); + showSave = true; + }); + } + + bool isGloballyActive(Client? client) => + room != null && + client!.accountData['im.ponies.emote_rooms']?.content + .tryGetMap('rooms') + ?.tryGetMap(room!.id) + ?.tryGetMap(stateKey ?? '') != + null; + + bool get readonly => + room != null && + room?.canChangeStateEvent('im.ponies.room_emotes') == false; + + void resetAction() { + setState(() { + _pack = _getPack(); + showSave = false; + }); + } + + Future createImagePack() async { + final room = this.room; + if (room == null) throw Exception('Cannot create image pack without room'); + + final input = await showTextInputDialog( + context: context, + title: L10n.of(context).newStickerPack, + hintText: L10n.of(context).name, + okLabel: L10n.of(context).create, + ); + final name = input?.trim(); + if (name == null || name.isEmpty) return; + if (!mounted) return; + + final keyName = name.toLowerCase().replaceAll(' ', '_'); + + if (packKeys?.contains(name) ?? false) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text(L10n.of(context).stickerPackNameAlreadyExists)), + ); + return; + } + + await showFutureLoadingDialog( + context: context, + future: () => room.client.setRoomStateWithKey( + room.id, + 'im.ponies.room_emotes', + keyName, + { + 'images': {}, + 'pack': {'display_name': name}, + }, + ), + ); + if (!mounted) return; + setState(() {}); + await room.client.oneShotSync(); + if (!mounted) return; + setState(() {}); + } + + Future saveAction() async { + await save(context); + setState(() { + showSave = false; + }); + } + + Future createStickers() async { + final matrix = Matrix.of(context); + final pickedFiles = await selectFiles( + context, + type: FileType.image, + allowMultiple: true, + ); + if (pickedFiles.isEmpty) return; + if (!mounted) return; + + await showFutureLoadingDialog( + context: context, + futureWithProgress: (setProgress) async { + for (final (i, pickedFile) in pickedFiles.indexed) { + setProgress(i / pickedFiles.length); + var file = MatrixImageFile( + bytes: await pickedFile.readAsBytes(), + name: pickedFile.name, + ); + file = + await file.generateThumbnail( + nativeImplementations: ClientManager.nativeImplementations, + ) ?? + file; + final uri = await matrix.client.uploadContent( + file.bytes, + filename: file.name, + contentType: file.mimeType, + ); + + setState(() { + final info = {...file.info}; + // normalize width / height to 256, required for stickers + if (info['w'] is int && info['h'] is int) { + final ratio = info['w'] / info['h']; + if (info['w'] > info['h']) { + info['w'] = 256; + info['h'] = (256.0 / ratio).round(); + } else { + info['h'] = 256; + info['w'] = (ratio * 256.0).round(); + } + } + final imageCode = pickedFile.name.split('.').first; + pack!.images[imageCode] = ImagePackImageContent.fromJson( + {'url': uri.toString(), 'info': info}, + ); + }); + } + }, + ); + + setState(() { + showSave = true; + }); + } + + @override + void dispose() { + packDisplayNameController.dispose(); + packAttributionController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return EmotesSettingsView(this); + } + + Future importEmojiZip() async { + final result = await selectFiles(context, type: FileType.any); + + if (result.isEmpty) return; + + final buffer = InputMemoryStream(await result.single.readAsBytes()); + + final archive = ZipDecoder().decodeStream(buffer); + if (!mounted) return; + + await showDialog( + context: context, + // breaks [Matrix.of] calls otherwise + useRootNavigator: false, + builder: (context) => + ImportEmoteArchiveDialog(controller: this, archive: archive), + ); + setState(() {}); + } + + Future exportAsZip() async { + final client = Matrix.of(context).client; + + final result = await showFutureLoadingDialog( + context: context, + future: () async { + final pack = _getPack(); + final archive = Archive(); + for (final entry in pack.images.entries) { + final emote = entry.value; + final name = entry.key; + final url = await emote.url.getDownloadUri(client); + final response = await get( + url, + headers: {'authorization': 'Bearer ${client.accessToken}'}, + ); + + archive.addFile( + ArchiveFile(name, response.bodyBytes.length, response.bodyBytes), + ); + } + final fileName = + '${pack.pack.displayName ?? client.userID?.localpart ?? 'emotes'}.zip'; + final output = ZipEncoder().encode(archive); + + return MatrixFile(name: fileName, bytes: Uint8List.fromList(output)); + }, + ); + final file = result.result; + if (file == null) return; + if (!mounted) return; + file.save(context); + } +} diff --git a/lib/pages/settings_emotes/settings_emotes_view.dart b/lib/pages/settings_emotes/settings_emotes_view.dart new file mode 100644 index 0000000..d3e8236 --- /dev/null +++ b/lib/pages/settings_emotes/settings_emotes_view.dart @@ -0,0 +1,385 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/utils/url_launcher.dart'; +import 'package:tatchat/widgets/layouts/max_width_body.dart'; +import 'package:tatchat/widgets/mxc_image.dart'; +import 'package:tatchat/widgets/mxc_image_viewer.dart'; +import 'package:flutter/services.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../widgets/matrix.dart'; +import 'settings_emotes.dart'; + +enum PopupMenuEmojiActions { import, export } + +class EmotesSettingsView extends StatelessWidget { + final EmotesSettingsController controller; + + const EmotesSettingsView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + if (controller.widget.roomId != null && controller.room == null) { + return Scaffold( + appBar: AppBar(title: Text(L10n.of(context).oopsSomethingWentWrong)), + body: Center( + child: Text(L10n.of(context).youAreNoLongerParticipatingInThisChat), + ), + ); + } + final theme = Theme.of(context); + + final client = Matrix.of(context).client; + final imageKeys = controller.pack!.images.keys.toList(); + final packKeys = controller.packKeys; + if (packKeys != null && packKeys.isEmpty) { + packKeys.add(''); + } + final attributionUrl = Uri.tryParse( + controller.packAttributionController.text, + ); + + return Scaffold( + appBar: AppBar( + leading: controller.showSave + ? TextButton( + onPressed: controller.resetAction, + child: Text(L10n.of(context).cancel), + ) + : null, + title: Text(L10n.of(context).customEmojisAndStickers), + actions: [ + if (controller.showSave) + Padding( + padding: const EdgeInsets.only(right: 16.0), + child: TextButton( + onPressed: () => controller.save(context), + style: ElevatedButton.styleFrom( + backgroundColor: theme.colorScheme.primary, + foregroundColor: theme.colorScheme.onPrimary, + ), + child: Text(L10n.of(context).saveChanges), + ), + ) + else + PopupMenuButton( + useRootNavigator: true, + onSelected: (value) { + switch (value) { + case PopupMenuEmojiActions.export: + controller.exportAsZip(); + break; + case PopupMenuEmojiActions.import: + controller.importEmojiZip(); + break; + } + }, + itemBuilder: (context) => [ + if (!controller.readonly) + PopupMenuItem( + value: PopupMenuEmojiActions.import, + child: Text(L10n.of(context).importFromZipFile), + ), + if (imageKeys.isNotEmpty) + PopupMenuItem( + value: PopupMenuEmojiActions.export, + child: Text(L10n.of(context).exportEmotePack), + ), + ], + ), + ], + bottom: packKeys == null + ? null + : PreferredSize( + preferredSize: const Size.fromHeight(48), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: SizedBox( + height: 40, + child: ListView.builder( + scrollDirection: Axis.horizontal, + itemCount: packKeys.length + 1, + itemBuilder: (context, i) { + if (i == 0) { + if (controller.readonly) { + return const SizedBox.shrink(); + } + return Padding( + padding: const EdgeInsets.symmetric( + horizontal: 4.0, + ), + child: FilterChip( + label: const Icon(Icons.add_outlined, size: 20), + onSelected: controller.showSave + ? null + : (_) => controller.createImagePack(), + ), + ); + } + i--; + final key = packKeys[i]; + final event = controller.room?.getState( + 'im.ponies.room_emotes', + packKeys[i], + ); + + final eventPack = event?.content + .tryGetMap('pack'); + final packName = + eventPack?.tryGet('display_name') ?? + eventPack?.tryGet('name') ?? + (key.isNotEmpty ? key : 'Default'); + + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 4.0), + child: FilterChip( + label: Text(packName), + selected: + controller.stateKey == key || + (controller.stateKey == null && key.isEmpty), + onSelected: controller.showSave + ? null + : (_) => controller.setStateKey(key), + ), + ); + }, + ), + ), + ), + ), + ), + body: MaxWidthBody( + child: Column( + mainAxisSize: .min, + crossAxisAlignment: .stretch, + children: [ + if (controller.room != null) ...[ + const SizedBox(height: 16), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0), + child: TextField( + maxLength: 256, + controller: controller.packDisplayNameController, + readOnly: controller.readonly, + onSubmitted: (_) => controller.submitDisplaynameAction(), + decoration: InputDecoration( + counter: const SizedBox.shrink(), + hintText: controller.stateKey, + labelText: L10n.of(context).stickerPackName, + ), + ), + ), + const SizedBox(height: 8), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0), + child: TextField( + maxLength: 256, + controller: controller.packAttributionController, + readOnly: controller.readonly, + keyboardType: TextInputType.url, + onSubmitted: (_) => controller.submitAttributionAction(), + decoration: InputDecoration( + counter: const SizedBox.shrink(), + labelText: L10n.of(context).attribution, + suffixIcon: attributionUrl == null + ? null + : IconButton( + icon: const Icon(Icons.link_outlined), + onPressed: () => UrlLauncher( + context, + attributionUrl.toString(), + ).launchUrl(), + ), + ), + ), + ), + ], + if (!controller.readonly) ...[ + Padding( + padding: const EdgeInsets.all(16.0), + child: ElevatedButton.icon( + onPressed: controller.createStickers, + icon: const Icon(Icons.upload_outlined), + label: Text(L10n.of(context).createSticker), + ), + ), + const Divider(), + ], + if (controller.room != null && imageKeys.isNotEmpty) + SwitchListTile.adaptive( + title: Text(L10n.of(context).enableEmotesGlobally), + value: controller.isGloballyActive(client), + onChanged: controller.setIsGloballyActive, + ), + imageKeys.isEmpty + ? Center( + child: Padding( + padding: const EdgeInsets.all(16), + child: Text( + L10n.of(context).noEmotesFound, + style: const TextStyle(fontSize: 20), + ), + ), + ) + : ListView.separated( + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + separatorBuilder: (BuildContext context, int i) => + const SizedBox.shrink(), + itemCount: imageKeys.length, + itemBuilder: (BuildContext context, int i) { + final imageCode = imageKeys[i]; + final image = controller.pack!.images[imageCode]!; + // TODO: Dispose this + final textEditingController = TextEditingController(); + textEditingController.text = imageCode; + final useShortCuts = + (PlatformInfos.isWeb || PlatformInfos.isDesktop); + return ListTile( + title: Row( + children: [ + Expanded( + child: Shortcuts( + shortcuts: !useShortCuts + ? {} + : { + LogicalKeySet(LogicalKeyboardKey.enter): + SubmitLineIntent(), + }, + child: Actions( + actions: !useShortCuts + ? {} + : { + SubmitLineIntent: CallbackAction( + onInvoke: (i) { + controller.submitImageAction( + imageCode, + image, + textEditingController, + ); + return null; + }, + ), + }, + child: TextField( + readOnly: controller.readonly, + controller: textEditingController, + autocorrect: false, + minLines: 1, + maxLines: 1, + maxLength: 128, + decoration: InputDecoration( + hintText: L10n.of(context).emoteShortcode, + prefixText: ': ', + suffixText: ':', + counter: const SizedBox.shrink(), + filled: false, + enabledBorder: const OutlineInputBorder( + borderSide: BorderSide( + color: Colors.transparent, + ), + ), + ), + onSubmitted: (s) => + controller.submitImageAction( + imageCode, + image, + textEditingController, + ), + ), + ), + ), + ), + if (!controller.readonly) + PopupMenuButton( + onSelected: (usage) => + controller.toggleUsage(imageCode, usage), + itemBuilder: (context) => [ + PopupMenuItem( + value: ImagePackUsage.sticker, + child: Row( + mainAxisSize: .min, + children: [ + if (image.usage?.contains( + ImagePackUsage.sticker, + ) ?? + true) + const Icon(Icons.check_outlined), + const SizedBox(width: 12), + Text(L10n.of(context).useAsSticker), + ], + ), + ), + PopupMenuItem( + value: ImagePackUsage.emoticon, + child: Row( + mainAxisSize: .min, + children: [ + if (image.usage?.contains( + ImagePackUsage.emoticon, + ) ?? + true) + const Icon(Icons.check_outlined), + const SizedBox(width: 12), + Text(L10n.of(context).useAsEmoji), + ], + ), + ), + ], + icon: const Icon(Icons.edit_outlined), + ), + ], + ), + leading: _EmoteImage(image.url), + trailing: controller.readonly + ? null + : IconButton( + tooltip: L10n.of(context).delete, + onPressed: () => + controller.removeImageAction(imageCode), + icon: const Icon(Icons.delete_outlined), + ), + ); + }, + ), + ], + ), + ), + ); + } +} + +class _EmoteImage extends StatelessWidget { + final Uri mxc; + + const _EmoteImage(this.mxc); + + @override + Widget build(BuildContext context) { + const size = 44.0; + final key = 'sticker_preview_$mxc'; + return InkWell( + borderRadius: BorderRadius.circular(4), + onTap: () => + showDialog(context: context, builder: (_) => MxcImageViewer(mxc)), + child: MxcImage( + key: ValueKey(key), + cacheKey: key, + uri: mxc, + fit: BoxFit.contain, + width: size, + height: size, + isThumbnail: true, + animated: true, + ), + ); + } +} + +class SubmitLineIntent extends Intent {} diff --git a/lib/pages/settings_homeserver/settings_homeserver.dart b/lib/pages/settings_homeserver/settings_homeserver.dart new file mode 100644 index 0000000..cf55c13 --- /dev/null +++ b/lib/pages/settings_homeserver/settings_homeserver.dart @@ -0,0 +1,57 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:convert'; + +import 'package:http/http.dart' as http; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../widgets/matrix.dart'; +import 'settings_homeserver_view.dart'; + +class SettingsHomeserver extends StatefulWidget { + const SettingsHomeserver({super.key}); + + @override + SettingsHomeserverController createState() => SettingsHomeserverController(); +} + +class SettingsHomeserverController extends State { + Future<({String name, String version, Uri federationBaseUrl})> + fetchServerInfo() async { + final client = Matrix.of(context).client; + final domain = client.userID!.domain!; + final httpClient = client.httpClient; + var federationBaseUrl = Uri(host: domain, port: 8448, scheme: 'https'); + try { + final serverWellKnownResult = await httpClient.get( + Uri.https(domain, '/.well-known/matrix/server'), + ); + final serverWellKnown = jsonDecode(serverWellKnownResult.body); + federationBaseUrl = Uri.https(serverWellKnown['m.server']); + } catch (e, s) { + Logs().w( + 'Unable to fetch federation base uri. Use $federationBaseUrl', + e, + s, + ); + } + + final serverVersionResult = await http.get( + federationBaseUrl.resolveUri(Uri(path: '/_matrix/federation/v1/version')), + ); + final { + 'server': {'name': String name, 'version': String version}, + } = Map>.from( + jsonDecode(serverVersionResult.body), + ); + + return (name: name, version: version, federationBaseUrl: federationBaseUrl); + } + + @override + Widget build(BuildContext context) => SettingsHomeserverView(this); +} diff --git a/lib/pages/settings_homeserver/settings_homeserver_view.dart b/lib/pages/settings_homeserver/settings_homeserver_view.dart new file mode 100644 index 0000000..db7d2a7 --- /dev/null +++ b/lib/pages/settings_homeserver/settings_homeserver_view.dart @@ -0,0 +1,298 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:convert'; + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/localized_exception_extension.dart'; +import 'package:tatchat/widgets/layouts/max_width_body.dart'; +import 'package:flutter_linkify/flutter_linkify.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; +import 'package:url_launcher/url_launcher_string.dart'; + +import '../../widgets/matrix.dart'; +import 'settings_homeserver.dart'; + +class SettingsHomeserverView extends StatelessWidget { + final SettingsHomeserverController controller; + + const SettingsHomeserverView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + final client = Matrix.of(context).client; + + return Scaffold( + appBar: AppBar( + automaticallyImplyLeading: !FluffyThemes.isColumnMode(context), + centerTitle: FluffyThemes.isColumnMode(context), + title: Text( + L10n.of( + context, + ).aboutHomeserver(client.userID?.domain ?? 'Homeserver'), + ), + ), + body: MaxWidthBody( + withScrolling: true, + child: SelectionArea( + child: Column( + mainAxisSize: .min, + children: [ + ListTile( + title: Text( + L10n.of(context).serverInformation, + style: TextStyle( + color: theme.colorScheme.secondary, + fontWeight: FontWeight.bold, + ), + ), + ), + FutureBuilder( + future: client.getWellknownSupport(), + builder: (context, snapshot) { + final error = snapshot.error; + final data = snapshot.data; + if (error != null) { + return ListTile( + leading: const Icon(Icons.error_outlined), + title: Text( + error.toLocalizedString( + context, + ExceptionContext.checkServerSupportInfo, + ), + style: const TextStyle(fontSize: 14), + ), + ); + } + if (data == null) { + return const Center( + child: CircularProgressIndicator.adaptive(strokeWidth: 2), + ); + } + final supportPage = data.supportPage; + final contacts = data.contacts; + if (supportPage == null && contacts == null) { + return ListTile( + leading: const Icon(Icons.error_outlined), + title: Text( + L10n.of(context).noContactInformationProvided, + style: const TextStyle(fontSize: 14), + ), + ); + } + return Column( + mainAxisSize: .min, + children: [ + if (supportPage != null) + ListTile( + title: Text(L10n.of(context).supportPage), + subtitle: Text(supportPage.toString()), + ), + if (contacts != null) + ...contacts.map((contact) { + return ListTile( + title: Text( + contact.role.localizedString(L10n.of(context)), + ), + subtitle: Column( + mainAxisSize: .min, + children: [ + if (contact.emailAddress != null) + TextButton( + onPressed: () {}, + child: Text(contact.emailAddress!), + ), + if (contact.matrixId != null) + TextButton( + onPressed: () {}, + child: Text(contact.matrixId!), + ), + ], + ), + ); + }), + ], + ); + }, + ), + FutureBuilder( + future: controller.fetchServerInfo(), + builder: (context, snapshot) { + final error = snapshot.error; + if (error != null) { + return Column( + mainAxisAlignment: .center, + children: [ + Icon( + Icons.error_outlined, + color: theme.colorScheme.error, + ), + const SizedBox(height: 12), + Text( + error.toLocalizedString(context), + textAlign: TextAlign.center, + style: TextStyle(color: theme.colorScheme.error), + ), + ], + ); + } + final data = snapshot.data; + if (data == null) { + return const Center( + child: CircularProgressIndicator.adaptive(strokeWidth: 2), + ); + } + return Column( + mainAxisSize: .min, + children: [ + ListTile( + title: Text(L10n.of(context).name), + subtitle: Text(data.name), + ), + ListTile( + title: Text(L10n.of(context).version), + subtitle: Text(data.version), + ), + ListTile( + title: Text(L10n.of(context).federationBaseUrl), + subtitle: Linkify( + text: data.federationBaseUrl.toString(), + textScaleFactor: MediaQuery.textScalerOf( + context, + ).scale(1), + options: const LinkifyOptions(humanize: false), + linkStyle: TextStyle( + color: theme.colorScheme.primary, + decorationColor: theme.colorScheme.primary, + ), + onOpen: (link) => launchUrlString(link.url), + ), + ), + ], + ); + }, + ), + Divider(color: theme.dividerColor), + FutureBuilder( + future: client.getWellknown(), + builder: (context, snapshot) { + final error = snapshot.error; + if (error != null) { + return Column( + mainAxisAlignment: .center, + children: [ + Icon( + Icons.error_outlined, + color: theme.colorScheme.error, + ), + const SizedBox(height: 12), + Text( + error.toLocalizedString(context), + textAlign: TextAlign.center, + style: TextStyle(color: theme.colorScheme.error), + ), + ], + ); + } + final wellKnown = snapshot.data; + if (wellKnown == null) { + return const Center( + child: CircularProgressIndicator.adaptive(strokeWidth: 2), + ); + } + final identityServer = wellKnown.mIdentityServer; + return Column( + mainAxisSize: .min, + children: [ + ListTile( + title: Text( + L10n.of(context).clientWellKnownInformation, + style: TextStyle( + color: theme.colorScheme.secondary, + fontWeight: FontWeight.bold, + ), + ), + ), + ListTile( + title: Text(L10n.of(context).baseUrl), + subtitle: Linkify( + text: wellKnown.mHomeserver.baseUrl.toString(), + textScaleFactor: MediaQuery.textScalerOf( + context, + ).scale(1), + options: const LinkifyOptions(humanize: false), + linkStyle: TextStyle( + color: theme.colorScheme.primary, + decorationColor: theme.colorScheme.primary, + ), + onOpen: (link) => launchUrlString(link.url), + ), + ), + if (identityServer != null) + ListTile( + title: Text(L10n.of(context).identityServer), + subtitle: Linkify( + text: identityServer.baseUrl.toString(), + textScaleFactor: MediaQuery.textScalerOf( + context, + ).scale(1), + options: const LinkifyOptions(humanize: false), + linkStyle: TextStyle( + color: theme.colorScheme.primary, + decorationColor: theme.colorScheme.primary, + ), + onOpen: (link) => launchUrlString(link.url), + ), + ), + ...wellKnown.additionalProperties.entries.map( + (entry) => ListTile( + title: Text(entry.key), + subtitle: Material( + borderRadius: BorderRadius.circular( + AppConfig.borderRadius, + ), + color: theme.colorScheme.surfaceContainer, + child: SingleChildScrollView( + padding: const EdgeInsets.all(16), + scrollDirection: Axis.horizontal, + child: Text( + const JsonEncoder.withIndent( + ' ', + ).convert(entry.value), + style: TextStyle( + color: theme.colorScheme.onSurface, + ), + ), + ), + ), + ), + ), + ], + ); + }, + ), + ], + ), + ), + ), + ); + } +} + +extension on Role { + String localizedString(L10n l10n) { + switch (this) { + case Role.mRoleAdmin: + return l10n.contactServerAdmin; + case Role.mRoleSecurity: + return l10n.contactServerSecurity; + } + } +} diff --git a/lib/pages/settings_ignore_list/settings_ignore_list.dart b/lib/pages/settings_ignore_list/settings_ignore_list.dart new file mode 100644 index 0000000..9ccc370 --- /dev/null +++ b/lib/pages/settings_ignore_list/settings_ignore_list.dart @@ -0,0 +1,67 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../widgets/matrix.dart'; +import 'settings_ignore_list_view.dart'; + +class SettingsIgnoreList extends StatefulWidget { + final String? initialUserId; + + const SettingsIgnoreList({super.key, this.initialUserId}); + + @override + SettingsIgnoreListController createState() => SettingsIgnoreListController(); +} + +class SettingsIgnoreListController extends State { + final TextEditingController controller = TextEditingController(); + + @override + void initState() { + super.initState(); + final initialUserId = widget.initialUserId; + if (initialUserId != null) { + controller.text = initialUserId; + } + } + + String? errorText; + + void ignoreUser(BuildContext context) { + final userId = controller.text.trim(); + if (userId.isEmpty) return; + if (!userId.isValidMatrixIdStrict() || userId.sigil != '@') { + setState(() { + errorText = L10n.of(context).invalidInput; + }); + return; + } + setState(() { + errorText = null; + }); + + final client = Matrix.of(context).client; + showFutureLoadingDialog( + context: context, + future: () => client.ignoreUser(userId), + ); + setState(() {}); + controller.clear(); + } + + @override + void dispose() { + controller.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) => SettingsIgnoreListView(this); +} diff --git a/lib/pages/settings_ignore_list/settings_ignore_list_view.dart b/lib/pages/settings_ignore_list/settings_ignore_list_view.dart new file mode 100644 index 0000000..aaa1664 --- /dev/null +++ b/lib/pages/settings_ignore_list/settings_ignore_list_view.dart @@ -0,0 +1,101 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:tatchat/widgets/layouts/max_width_body.dart'; +import 'package:material_ui/material_ui.dart'; + +import '../../widgets/matrix.dart'; +import 'settings_ignore_list.dart'; + +class SettingsIgnoreListView extends StatelessWidget { + final SettingsIgnoreListController controller; + + const SettingsIgnoreListView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + final client = Matrix.of(context).client; + return Scaffold( + appBar: AppBar( + leading: const Center(child: BackButton()), + title: Text(L10n.of(context).blockedUsers), + ), + body: MaxWidthBody( + withScrolling: false, + child: StreamBuilder( + stream: client.onSync.stream.where( + (syncUpdate) => + syncUpdate.accountData?.any( + (accountData) => accountData.type == 'm.ignored_user_list', + ) ?? + false, + ), + builder: (context, asyncSnapshot) { + if (client.prevBatch == null) { + return const Center(child: CircularProgressIndicator.adaptive()); + } + return Column( + mainAxisSize: .min, + children: [ + Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + mainAxisSize: .min, + children: [ + TextField( + controller: controller.controller, + autocorrect: false, + textInputAction: TextInputAction.done, + onSubmitted: (_) => controller.ignoreUser(context), + decoration: InputDecoration( + errorText: controller.errorText, + hintText: '@bad_guy:domain.abc', + floatingLabelBehavior: FloatingLabelBehavior.always, + labelText: L10n.of(context).blockUsername, + suffixIcon: IconButton( + tooltip: L10n.of(context).block, + icon: const Icon(Icons.add), + onPressed: () => controller.ignoreUser(context), + ), + ), + ), + const SizedBox(height: 16), + Text( + L10n.of(context).blockListDescription, + style: const TextStyle(color: Colors.orange), + ), + ], + ), + ), + Divider(color: theme.dividerColor), + Expanded( + child: ListView.builder( + itemCount: client.ignoredUsers.length, + itemBuilder: (c, i) => ListTile( + title: Text(client.ignoredUsers[i]), + trailing: IconButton( + tooltip: L10n.of(context).delete, + icon: const Icon(Icons.delete_outlined), + onPressed: () => showFutureLoadingDialog( + context: context, + future: () => + client.unignoreUser(client.ignoredUsers[i]), + ), + ), + ), + ), + ), + ], + ); + }, + ), + ), + ); + } +} diff --git a/lib/pages/settings_notifications/push_rule_extensions.dart b/lib/pages/settings_notifications/push_rule_extensions.dart new file mode 100644 index 0000000..439a9e6 --- /dev/null +++ b/lib/pages/settings_notifications/push_rule_extensions.dart @@ -0,0 +1,126 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:matrix/matrix.dart'; + +extension PushRuleExtension on PushRule { + String getPushRuleName(L10n l10n) { + switch (ruleId) { + case '.m.rule.contains_user_name': + return l10n.notificationRuleContainsUserName; + case '.m.rule.master': + return l10n.notificationRuleMaster; + case '.m.rule.suppress_notices': + return l10n.notificationRuleSuppressNotices; + case '.m.rule.invite_for_me': + return l10n.notificationRuleInviteForMe; + case '.m.rule.member_event': + return l10n.notificationRuleMemberEvent; + case '.m.rule.is_user_mention': + return l10n.notificationRuleIsUserMention; + case '.m.rule.contains_display_name': + return l10n.notificationRuleContainsDisplayName; + case '.m.rule.is_room_mention': + return l10n.notificationRuleIsRoomMention; + case '.m.rule.roomnotif': + return l10n.notificationRuleRoomnotif; + case '.m.rule.tombstone': + return l10n.notificationRuleTombstone; + case '.m.rule.reaction': + return l10n.notificationRuleReaction; + case '.m.rule.room_server_acl': + return l10n.notificationRuleRoomServerAcl; + case '.m.rule.suppress_edits': + return l10n.notificationRuleSuppressEdits; + case '.m.rule.call': + return l10n.notificationRuleCall; + case '.m.rule.encrypted_room_one_to_one': + return l10n.notificationRuleEncryptedRoomOneToOne; + case '.m.rule.room_one_to_one': + return l10n.notificationRuleRoomOneToOne; + case '.m.rule.message': + return l10n.notificationRuleMessage; + case '.m.rule.encrypted': + return l10n.notificationRuleEncrypted; + case '.m.rule.room.server_acl': + return l10n.notificationRuleServerAcl; + case '.im.vector.jitsi': + return l10n.notificationRuleJitsi; + default: + return ruleId.split('.').last.replaceAll('_', ' ').capitalize(); + } + } + + String getPushRuleDescription(L10n l10n) { + switch (ruleId) { + case '.m.rule.contains_user_name': + return l10n.notificationRuleContainsUserNameDescription; + case '.m.rule.master': + return l10n.notificationRuleMasterDescription; + case '.m.rule.suppress_notices': + return l10n.notificationRuleSuppressNoticesDescription; + case '.m.rule.invite_for_me': + return l10n.notificationRuleInviteForMeDescription; + case '.m.rule.member_event': + return l10n.notificationRuleMemberEventDescription; + case '.m.rule.is_user_mention': + return l10n.notificationRuleIsUserMentionDescription; + case '.m.rule.contains_display_name': + return l10n.notificationRuleContainsDisplayNameDescription; + case '.m.rule.is_room_mention': + return l10n.notificationRuleIsRoomMentionDescription; + case '.m.rule.roomnotif': + return l10n.notificationRuleRoomnotifDescription; + case '.m.rule.tombstone': + return l10n.notificationRuleTombstoneDescription; + case '.m.rule.reaction': + return l10n.notificationRuleReactionDescription; + case '.m.rule.room_server_acl': + return l10n.notificationRuleRoomServerAclDescription; + case '.m.rule.suppress_edits': + return l10n.notificationRuleSuppressEditsDescription; + case '.m.rule.call': + return l10n.notificationRuleCallDescription; + case '.m.rule.encrypted_room_one_to_one': + return l10n.notificationRuleEncryptedRoomOneToOneDescription; + case '.m.rule.room_one_to_one': + return l10n.notificationRuleRoomOneToOneDescription; + case '.m.rule.message': + return l10n.notificationRuleMessageDescription; + case '.m.rule.encrypted': + return l10n.notificationRuleEncryptedDescription; + case '.m.rule.room.server_acl': + return l10n.notificationRuleServerAclDescription; + case '.im.vector.jitsi': + return l10n.notificationRuleJitsiDescription; + default: + return l10n.unknownPushRule(ruleId); + } + } +} + +extension PushRuleKindLocal on PushRuleKind { + String localized(L10n l10n) { + switch (this) { + case PushRuleKind.content: + return l10n.contentNotificationSettings; + case PushRuleKind.override: + return l10n.generalNotificationSettings; + case PushRuleKind.room: + return l10n.roomNotificationSettings; + case PushRuleKind.sender: + return l10n.userSpecificNotificationSettings; + case PushRuleKind.underride: + return l10n.otherNotificationSettings; + } + } +} + +extension on String { + String capitalize() { + return '${this[0].toUpperCase()}${substring(1).toLowerCase()}'; + } +} diff --git a/lib/pages/settings_notifications/settings_notifications.dart b/lib/pages/settings_notifications/settings_notifications.dart new file mode 100644 index 0000000..69f99f1 --- /dev/null +++ b/lib/pages/settings_notifications/settings_notifications.dart @@ -0,0 +1,196 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:convert'; + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/settings_notifications/push_rule_extensions.dart'; +import 'package:tatchat/utils/localized_exception_extension.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/adaptive_dialog_action.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_modal_action_popup.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../widgets/matrix.dart'; +import 'settings_notifications_view.dart'; + +class SettingsNotifications extends StatefulWidget { + const SettingsNotifications({super.key}); + + @override + SettingsNotificationsController createState() => + SettingsNotificationsController(); +} + +class SettingsNotificationsController extends State { + bool isLoading = false; + + Future onPusherTap(Pusher pusher) async { + final delete = await showModalActionPopup( + context: context, + title: pusher.deviceDisplayName, + message: '${pusher.appDisplayName} (${pusher.appId})', + cancelLabel: L10n.of(context).cancel, + actions: [ + AdaptiveModalAction( + label: L10n.of(context).delete, + isDestructive: true, + value: true, + ), + ], + ); + if (delete != true) return; + if (!mounted) return; + + final success = await showFutureLoadingDialog( + context: context, + future: () => Matrix.of(context).client.deletePusher( + PusherId(appId: pusher.appId, pushkey: pusher.pushkey), + ), + ); + + if (success.error != null) return; + + setState(() { + pusherFuture = null; + }); + } + + Future?>? pusherFuture; + + Future togglePushRule(PushRuleKind kind, PushRule pushRule) async { + setState(() { + isLoading = true; + }); + try { + final updateFromSync = Matrix.of(context).client.onSync.stream + .where( + (syncUpdate) => + syncUpdate.accountData?.any( + (accountData) => accountData.type == 'm.push_rules', + ) ?? + false, + ) + .first; + await Matrix.of( + context, + ).client.setPushRuleEnabled(kind, pushRule.ruleId, !pushRule.enabled); + await updateFromSync; + } catch (e, s) { + Logs().w('Unable to toggle push rule', e, s); + if (!mounted) return; + ScaffoldMessenger.of( + context, + ).showSnackBar(SnackBar(content: Text(e.toLocalizedString(context)))); + } finally { + if (mounted) { + setState(() { + isLoading = false; + }); + } + } + } + + Future editPushRule(PushRule rule, PushRuleKind kind) async { + final theme = Theme.of(context); + final action = await showAdaptiveDialog( + context: context, + builder: (context) => ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 256), + child: AlertDialog.adaptive( + title: Text(rule.getPushRuleName(L10n.of(context))), + content: Padding( + padding: const EdgeInsets.only(top: 16.0), + child: Material( + borderRadius: BorderRadius.circular(AppConfig.borderRadius), + color: theme.colorScheme.surfaceContainer, + child: SingleChildScrollView( + padding: const EdgeInsets.all(16), + scrollDirection: Axis.horizontal, + child: SelectableText( + prettyJson(rule.toJson()), + style: TextStyle(color: theme.colorScheme.onSurface), + ), + ), + ), + ), + actions: [ + AdaptiveDialogAction( + onPressed: Navigator.of(context).pop, + child: Text(L10n.of(context).close), + ), + if (!rule.ruleId.startsWith('.m.')) + AdaptiveDialogAction( + onPressed: () => + Navigator.of(context).pop(PushRuleDialogAction.delete), + child: Text( + L10n.of(context).delete, + style: TextStyle(color: theme.colorScheme.error), + ), + ), + ], + ), + ), + ); + if (action == null) return; + if (!mounted) return; + switch (action) { + case PushRuleDialogAction.delete: + final consent = await showOkCancelAlertDialog( + context: context, + title: L10n.of(context).areYouSure, + message: L10n.of(context).deletePushRuleCanNotBeUndone, + okLabel: L10n.of(context).delete, + isDestructive: true, + ); + if (consent != OkCancelResult.ok) return; + if (!mounted) return; + setState(() { + isLoading = true; + }); + try { + final updateFromSync = Matrix.of(context).client.onSync.stream + .where( + (syncUpdate) => + syncUpdate.accountData?.any( + (accountData) => accountData.type == 'm.push_rules', + ) ?? + false, + ) + .first; + await Matrix.of(context).client.deletePushRule(kind, rule.ruleId); + await updateFromSync; + } catch (e, s) { + Logs().w('Unable to delete push rule', e, s); + if (!mounted) return; + ScaffoldMessenger.of( + context, + ).showSnackBar(SnackBar(content: Text(e.toLocalizedString(context)))); + } finally { + if (mounted) { + setState(() { + isLoading = false; + }); + } + } + return; + } + } + + @override + Widget build(BuildContext context) => SettingsNotificationsView(this); +} + +enum PushRuleDialogAction { delete } + +String prettyJson(Map json) { + const decoder = JsonDecoder(); + const encoder = JsonEncoder.withIndent(' '); + final object = decoder.convert(jsonEncode(json)); + return encoder.convert(object); +} diff --git a/lib/pages/settings_notifications/settings_notifications_view.dart b/lib/pages/settings_notifications/settings_notifications_view.dart new file mode 100644 index 0000000..4f06d77 --- /dev/null +++ b/lib/pages/settings_notifications/settings_notifications_view.dart @@ -0,0 +1,254 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/settings_notifications/push_rule_extensions.dart'; +import 'package:tatchat/utils/background_push.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/utils/push_helper.dart'; +import 'package:tatchat/widgets/layouts/max_width_body.dart'; +import 'package:tatchat/widgets/settings_switch_list_tile.dart'; +import 'package:flutter/foundation.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; +import 'package:unifiedpush/unifiedpush.dart'; +import 'package:unifiedpush_ui/unifiedpush_ui.dart'; + +import '../../utils/localized_exception_extension.dart'; +import '../../widgets/matrix.dart'; +import 'settings_notifications.dart'; + +class SettingsNotificationsView extends StatelessWidget { + final SettingsNotificationsController controller; + + const SettingsNotificationsView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final pushRules = Matrix.of(context).client.globalPushRules; + final pushCategories = [ + if (pushRules?.override?.isNotEmpty ?? false) + (rules: pushRules?.override ?? [], kind: PushRuleKind.override), + if (pushRules?.content?.isNotEmpty ?? false) + (rules: pushRules?.content ?? [], kind: PushRuleKind.content), + if (pushRules?.sender?.isNotEmpty ?? false) + (rules: pushRules?.sender ?? [], kind: PushRuleKind.sender), + if (pushRules?.underride?.isNotEmpty ?? false) + (rules: pushRules?.underride ?? [], kind: PushRuleKind.underride), + ]; + final pushService = Matrix.of(context).backgroundPush; + return Scaffold( + appBar: AppBar( + automaticallyImplyLeading: !FluffyThemes.isColumnMode(context), + centerTitle: FluffyThemes.isColumnMode(context), + title: Text(L10n.of(context).notifications), + ), + body: MaxWidthBody( + child: StreamBuilder( + stream: Matrix.of(context).client.onSync.stream.where( + (syncUpdate) => + syncUpdate.accountData?.any( + (accountData) => accountData.type == 'm.push_rules', + ) ?? + false, + ), + builder: (BuildContext context, _) { + final theme = Theme.of(context); + final lastReceivedPush = + lastReceivedPushNotification[Matrix.of( + context, + ).client.clientName]; + return SelectionArea( + child: Column( + children: [ + if (kDebugMode && lastReceivedPush != null) + ListTile( + title: Text('Last received push notification'), + subtitle: Text(lastReceivedPush.toIso8601String()), + ), + if (kIsWeb) + SettingsSwitchListTile.adaptive( + title: L10n.of(context).playSoundOnNotification, + setting: AppSettings.webNotificationSound, + ), + if (pushRules != null) + for (final category in pushCategories) ...[ + ListTile( + title: Text( + category.kind.localized(L10n.of(context)), + style: TextStyle( + color: theme.colorScheme.secondary, + fontWeight: FontWeight.bold, + ), + ), + ), + for (final rule in category.rules) + ListTile( + title: Text(rule.getPushRuleName(L10n.of(context))), + subtitle: Text.rich( + TextSpan( + children: [ + TextSpan( + text: rule.getPushRuleDescription( + L10n.of(context), + ), + ), + const TextSpan(text: ' '), + WidgetSpan( + child: InkWell( + onTap: () => controller.editPushRule( + rule, + category.kind, + ), + child: Text( + L10n.of(context).more, + style: TextStyle( + color: theme.colorScheme.primary, + decoration: TextDecoration.underline, + decorationColor: + theme.colorScheme.primary, + ), + ), + ), + ), + ], + ), + ), + trailing: Switch.adaptive( + value: rule.enabled, + onChanged: controller.isLoading + ? null + : rule.ruleId != '.m.rule.master' && + Matrix.of( + context, + ).client.allPushNotificationsMuted + ? null + : (_) => controller.togglePushRule( + category.kind, + rule, + ), + ), + ), + Divider(color: theme.dividerColor), + ], + + if (pushService?.firebaseEnabled != true) + ListTile( + title: Text(L10n.of(context).buildDoesNotSupportFirebase), + leading: Icon( + Icons.close, + color: theme.colorScheme.error, + ), + ), + if (PlatformInfos.isAndroid) + FutureBuilder( + future: UnifiedPush.getDistributors(), + builder: (context, snapshot) { + final distributors = snapshot.data; + if (distributors == null || distributors.isEmpty) { + if (pushService?.firebaseEnabled == true && + pushService?.fcmToken == null) { + return ListTile( + title: Text( + L10n.of( + context, + ).unableToRegisterDeviceForFirebase, + ), + leading: Icon( + Icons.close, + color: theme.colorScheme.error, + ), + ); + } + return SizedBox.shrink(); + } + return ListTile( + title: Text(L10n.of(context).unifiedPushDistributors), + leading: Icon(Icons.info_outlined), + subtitle: SelectableText(distributors.join(', ')), + trailing: distributors.length >= 2 + ? IconButton( + onPressed: () => UnifiedPushUi( + context: context, + instances: ['default'], + unifiedPushFunctions: UPFunctions(), + showNoDistribDialog: false, + onNoDistribDialogDismissed: + () {}, // TODO: Implement me + ).registerAppWithDialog(), + icon: Icon(Icons.edit_outlined), + style: IconButton.styleFrom( + backgroundColor: + theme.colorScheme.primaryContainer, + foregroundColor: + theme.colorScheme.onPrimaryContainer, + ), + ) + : null, + ); + }, + ), + ListTile( + title: Text( + L10n.of(context).devices, + style: TextStyle( + color: theme.colorScheme.secondary, + fontWeight: FontWeight.bold, + ), + ), + ), + FutureBuilder?>( + future: controller.pusherFuture ??= Matrix.of( + context, + ).client.getPushers(), + builder: (context, snapshot) { + if (snapshot.hasError) { + Center( + child: Text( + snapshot.error!.toLocalizedString(context), + ), + ); + } + if (snapshot.connectionState != ConnectionState.done) { + const Center( + child: CircularProgressIndicator.adaptive( + strokeWidth: 2, + ), + ); + } + final pushers = snapshot.data ?? []; + if (pushers.isEmpty) { + return Center( + child: Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: Text(L10n.of(context).noOtherDevicesFound), + ), + ); + } + return SelectionArea( + child: ListView.builder( + physics: const NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: pushers.length, + itemBuilder: (_, i) => ListTile( + title: Text(pushers[i].appId), + subtitle: Text(pushers[i].data.url.toString()), + onTap: () => controller.onPusherTap(pushers[i]), + ), + ), + ); + }, + ), + ], + ), + ); + }, + ), + ), + ); + } +} diff --git a/lib/pages/settings_password/settings_password.dart b/lib/pages/settings_password/settings_password.dart new file mode 100644 index 0000000..55d8acc --- /dev/null +++ b/lib/pages/settings_password/settings_password.dart @@ -0,0 +1,98 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/settings_password/settings_password_view.dart'; +import 'package:tatchat/utils/localized_exception_extension.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; + +class SettingsPassword extends StatefulWidget { + const SettingsPassword({super.key}); + + @override + SettingsPasswordController createState() => SettingsPasswordController(); +} + +class SettingsPasswordController extends State { + final TextEditingController oldPasswordController = TextEditingController(); + final TextEditingController newPassword1Controller = TextEditingController(); + final TextEditingController newPassword2Controller = TextEditingController(); + + String? oldPasswordError; + String? newPassword1Error; + String? newPassword2Error; + + bool loading = false; + + Future changePassword() async { + final l10n = L10n.of(context); + final scaffoldMessenger = ScaffoldMessenger.of(context); + final theme = Theme.of(context); + setState(() { + oldPasswordError = newPassword1Error = newPassword2Error = null; + }); + if (oldPasswordController.text.isEmpty) { + setState(() { + oldPasswordError = L10n.of(context).pleaseEnterYourPassword; + }); + return; + } + if (newPassword1Controller.text.isEmpty || + newPassword1Controller.text.length < 6) { + setState(() { + newPassword1Error = L10n.of(context).pleaseChooseAStrongPassword; + }); + return; + } + if (newPassword1Controller.text != newPassword2Controller.text) { + setState(() { + newPassword2Error = L10n.of(context).passwordsDoNotMatch; + }); + return; + } + + setState(() { + loading = true; + }); + try { + await Matrix.of(context).client.changePassword( + newPassword1Controller.text, + oldPassword: oldPasswordController.text, + ); + if (!mounted) return; + scaffoldMessenger.showSnackBar( + SnackBar(content: Text(l10n.passwordHasBeenChanged)), + ); + if (mounted) context.pop(); + } catch (e) { + scaffoldMessenger.showSnackBar( + SnackBar( + backgroundColor: theme.colorScheme.error, + content: Text( + e.toLocalizedString(context), + style: TextStyle(color: theme.colorScheme.onError), + ), + ), + ); + } finally { + setState(() { + loading = false; + }); + } + } + + @override + void dispose() { + oldPasswordController.dispose(); + newPassword1Controller.dispose(); + newPassword2Controller.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) => SettingsPasswordView(this); +} diff --git a/lib/pages/settings_password/settings_password_view.dart b/lib/pages/settings_password/settings_password_view.dart new file mode 100644 index 0000000..2cd0e55 --- /dev/null +++ b/lib/pages/settings_password/settings_password_view.dart @@ -0,0 +1,93 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/settings_password/settings_password.dart'; +import 'package:tatchat/widgets/layouts/max_width_body.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; + +class SettingsPasswordView extends StatelessWidget { + final SettingsPasswordController controller; + const SettingsPasswordView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + return Scaffold( + appBar: AppBar(title: Text(L10n.of(context).changePassword)), + body: ListTileTheme( + iconColor: theme.colorScheme.onSurface, + child: MaxWidthBody( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + children: [ + const SizedBox(height: 16), + TextField( + controller: controller.oldPasswordController, + obscureText: true, + autocorrect: false, + autofocus: true, + readOnly: controller.loading, + decoration: InputDecoration( + prefixIcon: const Icon(Icons.lock_outlined), + hintText: '********', + labelText: L10n.of(context).pleaseEnterYourCurrentPassword, + errorText: controller.oldPasswordError, + ), + ), + const Divider(height: 64), + TextField( + controller: controller.newPassword1Controller, + obscureText: true, + autocorrect: false, + readOnly: controller.loading, + decoration: InputDecoration( + prefixIcon: const Icon(Icons.lock_reset_outlined), + hintText: '********', + labelText: L10n.of(context).newPassword, + errorText: controller.newPassword1Error, + ), + ), + const SizedBox(height: 16), + TextField( + controller: controller.newPassword2Controller, + obscureText: true, + autocorrect: false, + readOnly: controller.loading, + decoration: InputDecoration( + prefixIcon: const Icon(Icons.repeat_outlined), + hintText: '********', + labelText: L10n.of(context).repeatPassword, + errorText: controller.newPassword2Error, + ), + ), + const SizedBox(height: 32), + SizedBox( + width: double.infinity, + child: ElevatedButton( + onPressed: controller.loading + ? null + : controller.changePassword, + child: controller.loading + ? const LinearProgressIndicator() + : Text(L10n.of(context).changePassword), + ), + ), + const SizedBox(height: 16), + TextButton( + child: Text(L10n.of(context).passwordRecoverySettings), + onPressed: () => context.go('/rooms/settings/security/3pid'), + ), + ], + ), + ), + ), + ), + ); + } +} diff --git a/lib/pages/settings_security/settings_security.dart b/lib/pages/settings_security/settings_security.dart new file mode 100644 index 0000000..41bb1ab --- /dev/null +++ b/lib/pages/settings_security/settings_security.dart @@ -0,0 +1,166 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/l10n/l10n.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/app_lock.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:local_auth/local_auth.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import 'settings_security_view.dart'; + +class SettingsSecurity extends StatefulWidget { + const SettingsSecurity({super.key}); + + @override + SettingsSecurityController createState() => SettingsSecurityController(); +} + +class SettingsSecurityController extends State { + Future toggleBiometrics() async { + AppLock.of(context).showLockScreen(); + + final oldState = AppLock.of(context).useBiometrics; + final actionStr = oldState + ? L10n.of(context).disableBiometrics + : L10n.of(context).enableBiometrics; + final consent = await showOkCancelAlertDialog( + context: context, + title: actionStr, + message: L10n.of(context).biometricsDescription, + okLabel: actionStr, + cancelLabel: L10n.of(context).cancel, + isDestructive: true, + ); + if (consent != OkCancelResult.ok) return; + if (!mounted) return; + + if (!oldState) { + final localAuth = LocalAuthentication(); + final unlocked = await localAuth.authenticate( + localizedReason: actionStr, + biometricOnly: true, + ); + if (!unlocked) return; + if (!mounted) return; + } + await AppLock.of(context).changeUseBiometrics(!oldState); + setState(() {}); + } + + Future disableAppLockAction() async { + AppLock.of(context).showLockScreen(); + final consent = await showOkCancelAlertDialog( + context: context, + title: L10n.of(context).disableAppLock, + message: L10n.of(context).disableAppLockAreYouSure, + okLabel: L10n.of(context).disableAppLock, + cancelLabel: L10n.of(context).cancel, + isDestructive: true, + ); + if (consent != OkCancelResult.ok) return; + if (!mounted) return; + await AppLock.of(context).changePincode(null); + if (!mounted) return; + setState(() {}); + } + + Future setAppLockAction() async { + await AppLock.of(context).changeUseBiometrics(false); + if (!mounted) return; + final l10n = L10n.of(context); + if (AppLock.of(context).isActive) { + AppLock.of(context).showLockScreen(); + } + final newLock = await showTextInputDialog( + useRootNavigator: false, + context: context, + title: l10n.pleaseChooseAPasscode, + message: l10n.pleaseEnter6Digits, + cancelLabel: l10n.cancel, + validator: (text) { + if (text.length == 6 && int.tryParse(text)! >= 0) { + return null; + } + return l10n.pleaseEnter6Digits; + }, + keyboardType: TextInputType.number, + obscureText: true, + maxLines: 1, + minLines: 1, + maxLength: 6, + ); + if (newLock != null) { + if (!mounted) return; + await AppLock.of(context).changePincode(newLock); + setState(() {}); + } + } + + Future deleteAccountAction() async { + final l10n = L10n.of(context); + final matrix = Matrix.of(context); + if (await showOkCancelAlertDialog( + useRootNavigator: false, + context: context, + title: l10n.warning, + message: l10n.deactivateAccountWarning, + okLabel: l10n.ok, + cancelLabel: l10n.cancel, + isDestructive: true, + ) == + OkCancelResult.cancel) { + return; + } + if (!mounted) return; + final supposedMxid = matrix.client.userID!; + final mxid = await showTextInputDialog( + useRootNavigator: false, + context: context, + title: l10n.confirmMatrixId, + validator: (text) => + text == supposedMxid ? null : l10n.supposedMxid(supposedMxid), + isDestructive: true, + okLabel: l10n.delete, + cancelLabel: l10n.cancel, + ); + if (mxid == null || mxid.isEmpty || mxid != supposedMxid) { + return; + } + if (!mounted) return; + final resp = await showFutureLoadingDialog( + context: context, + delay: false, + future: () => matrix.client.uiaRequestBackground( + (auth) => matrix.client.deactivateAccount(auth: auth, erase: true), + ), + ); + + if (!resp.isError) { + if (!mounted) return; + await showFutureLoadingDialog( + context: context, + future: () => matrix.client.logout(), + ); + } + } + + Future dehydrateAction() => Matrix.of(context).dehydrateAction(context); + + Future changeShareKeysWith(ShareKeysWith? shareKeysWith) async { + if (shareKeysWith == null) return; + AppSettings.shareKeysWith.setItem(shareKeysWith.name); + Matrix.of(context).client.shareKeysWith = shareKeysWith; + setState(() {}); + } + + @override + Widget build(BuildContext context) => SettingsSecurityView(this); +} diff --git a/lib/pages/settings_security/settings_security_view.dart b/lib/pages/settings_security/settings_security_view.dart new file mode 100644 index 0000000..7320de3 --- /dev/null +++ b/lib/pages/settings_security/settings_security_view.dart @@ -0,0 +1,253 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +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'; +import 'package:tatchat/utils/beautify_string_extension.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/widgets/app_lock.dart'; +import 'package:tatchat/widgets/layouts/max_width_body.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:tatchat/widgets/settings_switch_list_tile.dart'; +import 'package:go_router/go_router.dart'; +import 'package:local_auth/local_auth.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import 'settings_security.dart'; + +class SettingsSecurityView extends StatelessWidget { + final SettingsSecurityController controller; + + const SettingsSecurityView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final client = Matrix.of(context).client; + final publicMasterKey = + client.userDeviceKeys[client.userID]?.masterKey?.publicKey; + + return Scaffold( + appBar: AppBar( + title: Text(L10n.of(context).security), + automaticallyImplyLeading: !FluffyThemes.isColumnMode(context), + centerTitle: FluffyThemes.isColumnMode(context), + ), + body: ListTileTheme( + iconColor: theme.colorScheme.onSurface, + child: MaxWidthBody( + child: FutureBuilder( + future: Matrix.of( + context, + ).client.getCapabilities().timeout(const Duration(seconds: 10)), + builder: (context, snapshot) { + final capabilities = snapshot.data; + final error = snapshot.error; + if (error == null && capabilities == null) { + return const Center( + child: Padding( + padding: EdgeInsets.all(16.0), + child: CircularProgressIndicator.adaptive(strokeWidth: 2), + ), + ); + } + return Column( + children: [ + ListTile( + title: Text( + L10n.of(context).privacy, + style: TextStyle( + color: theme.colorScheme.secondary, + fontWeight: FontWeight.bold, + ), + ), + ), + SettingsSwitchListTile.adaptive( + title: L10n.of(context).sendTypingNotifications, + subtitle: L10n.of( + context, + ).sendTypingNotificationsDescription, + setting: AppSettings.sendTypingNotifications, + ), + SettingsSwitchListTile.adaptive( + title: L10n.of(context).sendReadReceipts, + subtitle: L10n.of(context).sendReadReceiptsDescription, + setting: AppSettings.sendPublicReadReceipts, + ), + SettingsSwitchListTile.adaptive( + title: L10n.of(context).shareCrashReports, + subtitle: L10n.of(context).shareCrashReportsDescription, + setting: AppSettings.autoSendErrorReports, + defaultValue: false, + ), + ListTile( + trailing: const Icon(Icons.chevron_right_outlined), + title: Text(L10n.of(context).blockedUsers), + subtitle: Text( + L10n.of(context).thereAreCountUsersBlocked( + Matrix.of(context).client.ignoredUsers.length, + ), + ), + onTap: () => + context.go('/rooms/settings/security/ignorelist'), + ), + if (PlatformInfos.supportsAppLock) ...[ + Divider(color: theme.dividerColor), + ListTile( + title: Text( + L10n.of(context).appLock, + style: TextStyle( + color: theme.colorScheme.secondary, + fontWeight: FontWeight.bold, + ), + ), + subtitle: Text(L10n.of(context).appLockDescription), + ), + SwitchListTile.adaptive( + value: AppLock.of(context).isActive, + title: Text(L10n.of(context).useAppLock), + onChanged: (active) => active + ? controller.setAppLockAction() + : controller.disableAppLockAction(), + ), + if (AppLock.of(context).isActive) ...[ + FutureBuilder( + future: LocalAuthentication().canCheckBiometrics, + builder: (context, snapshot) { + if (snapshot.data != true) return SizedBox.shrink(); + return SwitchListTile.adaptive( + value: AppLock.of(context).useBiometrics, + onChanged: (_) => controller.toggleBiometrics(), + title: Text(L10n.of(context).unlockWithBiometrics), + ); + }, + ), + ListTile( + trailing: const Icon(Icons.lock_reset_outlined), + title: Text(L10n.of(context).resetPin), + onTap: controller.setAppLockAction, + ), + ], + ], + + Divider(color: theme.dividerColor), + ListTile( + title: Text( + L10n.of(context).shareKeysWith, + style: TextStyle( + color: theme.colorScheme.secondary, + fontWeight: FontWeight.bold, + ), + ), + subtitle: Text(L10n.of(context).shareKeysWithDescription), + ), + ListTile( + title: Material( + borderRadius: BorderRadius.circular( + AppConfig.borderRadius / 2, + ), + color: theme.colorScheme.onInverseSurface, + child: DropdownButton( + isExpanded: true, + padding: const EdgeInsets.symmetric(horizontal: 8.0), + borderRadius: BorderRadius.circular( + AppConfig.borderRadius / 2, + ), + underline: const SizedBox.shrink(), + value: Matrix.of(context).client.shareKeysWith, + items: ShareKeysWith.values + .map( + (share) => DropdownMenuItem( + value: share, + child: Text(share.localized(L10n.of(context))), + ), + ) + .toList(), + onChanged: controller.changeShareKeysWith, + ), + ), + ), + Divider(color: theme.dividerColor), + ListTile( + title: Text( + L10n.of(context).account, + style: TextStyle( + color: theme.colorScheme.secondary, + fontWeight: FontWeight.bold, + ), + ), + ), + if (publicMasterKey != null) + ListTile( + title: Text(L10n.of(context).yourPublicKey), + leading: const Icon(Icons.verified_user_outlined), + subtitle: SelectableText( + publicMasterKey.beautified, + style: const TextStyle(fontFamily: 'RobotoMono'), + ), + ), + ListTile( + title: Text(L10n.of(context).deviceIdentityKey), + leading: const Icon(Icons.mobile_friendly_outlined), + subtitle: SelectableText( + Matrix.of(context).client.fingerprintKey.beautified, + style: const TextStyle(fontFamily: 'RobotoMono'), + ), + ), + if (capabilities?.mChangePassword?.enabled != false || + error != null) + ListTile( + leading: const Icon(Icons.password_outlined), + trailing: const Icon(Icons.chevron_right_outlined), + title: Text(L10n.of(context).changePassword), + onTap: () => + context.go('/rooms/settings/security/password'), + ), + Divider(color: theme.dividerColor), + ListTile( + iconColor: Colors.orange, + leading: const Icon(Icons.delete_sweep_outlined), + title: Text( + L10n.of(context).dehydrate, + style: const TextStyle(color: Colors.orange), + ), + onTap: controller.dehydrateAction, + ), + ListTile( + iconColor: Colors.red, + leading: const Icon(Icons.delete_outlined), + title: Text( + L10n.of(context).deleteAccount, + style: const TextStyle(color: Colors.red), + ), + onTap: controller.deleteAccountAction, + ), + ], + ); + }, + ), + ), + ), + ); + } +} + +extension on ShareKeysWith { + String localized(L10n l10n) { + switch (this) { + case ShareKeysWith.all: + return l10n.allDevices; + case ShareKeysWith.crossVerifiedIfEnabled: + return l10n.crossVerifiedDevicesIfEnabled; + case ShareKeysWith.crossVerified: + return l10n.crossVerifiedDevices; + case ShareKeysWith.directlyVerifiedOnly: + return l10n.verifiedDevicesOnly; + } + } +} diff --git a/lib/pages/settings_style/settings_style.dart b/lib/pages/settings_style/settings_style.dart new file mode 100644 index 0000000..aecace3 --- /dev/null +++ b/lib/pages/settings_style/settings_style.dart @@ -0,0 +1,141 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:file_picker/file_picker.dart'; +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/utils/account_config.dart'; +import 'package:tatchat/utils/file_selector.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:tatchat/widgets/theme_builder.dart'; +import 'package:material_ui/material_ui.dart'; + +import '../../widgets/matrix.dart'; +import 'settings_style_view.dart'; + +class SettingsStyle extends StatefulWidget { + const SettingsStyle({super.key}); + + @override + SettingsStyleController createState() => SettingsStyleController(); +} + +class SettingsStyleController extends State { + void setChatColor(Color? color) { + AppSettings.colorSchemeSeedInt.setItem( + color?.toARGB32() ?? AppSettings.colorSchemeSeedInt.defaultValue, + ); + ThemeController.of(context).setPrimaryColor(color); + } + + Future setWallpaper() async { + final client = Matrix.of(context).client; + final picked = await selectFiles(context, type: FileType.image); + final pickedFile = picked.firstOrNull; + if (pickedFile == null) return; + if (!mounted) return; + + await showFutureLoadingDialog( + context: context, + future: () async { + final url = await client.uploadContent( + await pickedFile.readAsBytes(), + filename: pickedFile.name, + ); + await client.updateApplicationAccountConfig( + ApplicationAccountConfig(wallpaperUrl: url), + ); + }, + ); + } + + double get wallpaperOpacity => + _wallpaperOpacity ?? + Matrix.of(context).client.applicationAccountConfig.wallpaperOpacity ?? + 0.5; + + double? _wallpaperOpacity; + + Future saveWallpaperOpacity(double opacity) async { + final client = Matrix.of(context).client; + final result = await showFutureLoadingDialog( + context: context, + future: () => client.updateApplicationAccountConfig( + ApplicationAccountConfig(wallpaperOpacity: opacity), + ), + ); + if (result.isValue) return; + + setState(() { + _wallpaperOpacity = client.applicationAccountConfig.wallpaperOpacity; + }); + } + + void updateWallpaperOpacity(double opacity) { + setState(() { + _wallpaperOpacity = opacity; + }); + } + + double get wallpaperBlur => + _wallpaperBlur ?? + Matrix.of(context).client.applicationAccountConfig.wallpaperBlur ?? + 0.5; + double? _wallpaperBlur; + + Future saveWallpaperBlur(double blur) async { + final client = Matrix.of(context).client; + final result = await showFutureLoadingDialog( + context: context, + future: () => client.updateApplicationAccountConfig( + ApplicationAccountConfig(wallpaperBlur: blur), + ), + ); + if (result.isValue) return; + + setState(() { + _wallpaperBlur = client.applicationAccountConfig.wallpaperBlur; + }); + } + + void updateWallpaperBlur(double blur) { + setState(() { + _wallpaperBlur = blur; + }); + } + + void deleteChatWallpaper() => showFutureLoadingDialog( + context: context, + future: () => Matrix.of(context).client.setApplicationAccountConfig( + const ApplicationAccountConfig(wallpaperUrl: null, wallpaperBlur: null), + ), + ); + + ThemeMode get currentTheme => ThemeController.of(context).themeMode; + Color? get currentColor => ThemeController.of(context).primaryColor; + + void switchTheme(ThemeMode? newTheme) { + if (newTheme == null) return; + switch (newTheme) { + case ThemeMode.light: + ThemeController.of(context).setThemeMode(ThemeMode.light); + break; + case ThemeMode.dark: + ThemeController.of(context).setThemeMode(ThemeMode.dark); + break; + case ThemeMode.system: + ThemeController.of(context).setThemeMode(ThemeMode.system); + break; + } + setState(() {}); + } + + Future changeFontSizeFactor(double d) async { + await AppSettings.fontSizeFactor.setItem(d); + setState(() {}); + } + + @override + Widget build(BuildContext context) => SettingsStyleView(this); +} diff --git a/lib/pages/settings_style/settings_style_view.dart b/lib/pages/settings_style/settings_style_view.dart new file mode 100644 index 0000000..3587275 --- /dev/null +++ b/lib/pages/settings_style/settings_style_view.dart @@ -0,0 +1,349 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:ui'; + +import 'package:dynamic_color/dynamic_color.dart'; +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/chat/events/state_message.dart'; +import 'package:tatchat/utils/account_config.dart'; +import 'package:tatchat/utils/color_value.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:tatchat/widgets/layouts/max_width_body.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'; + +import '../../config/app_config.dart'; +import 'settings_style.dart'; + +class SettingsStyleView extends StatelessWidget { + final SettingsStyleController controller; + + const SettingsStyleView(this.controller, {super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + const colorPickerSize = 32.0; + final client = Matrix.of(context).client; + return Scaffold( + appBar: AppBar( + automaticallyImplyLeading: !FluffyThemes.isColumnMode(context), + centerTitle: FluffyThemes.isColumnMode(context), + title: Text(L10n.of(context).changeTheme), + ), + backgroundColor: theme.colorScheme.surface, + body: MaxWidthBody( + child: Column( + crossAxisAlignment: .stretch, + children: [ + Padding( + padding: const EdgeInsets.all(12.0), + child: SegmentedButton( + selected: {controller.currentTheme}, + onSelectionChanged: (selected) => + controller.switchTheme(selected.single), + segments: [ + ButtonSegment( + value: ThemeMode.light, + label: Text(L10n.of(context).lightTheme), + icon: const Icon(Icons.light_mode_outlined), + ), + ButtonSegment( + value: ThemeMode.dark, + label: Text(L10n.of(context).darkTheme), + icon: const Icon(Icons.dark_mode_outlined), + ), + ButtonSegment( + value: ThemeMode.system, + label: Text(L10n.of(context).systemTheme), + icon: const Icon(Icons.auto_mode_outlined), + ), + ], + ), + ), + Divider(color: theme.dividerColor), + ListTile( + title: Text( + L10n.of(context).setColorTheme, + style: TextStyle( + color: theme.colorScheme.secondary, + fontWeight: FontWeight.bold, + ), + ), + ), + DynamicColorBuilder( + builder: (light, dark) { + final systemColor = + Theme.of(context).brightness == Brightness.light + ? light?.primary + : dark?.primary; + final colors = [null, AppConfig.chatColor, ...Colors.primaries]; + if (systemColor == null) { + colors.remove(null); + } + return GridView.builder( + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + gridDelegate: const SliverGridDelegateWithMaxCrossAxisExtent( + maxCrossAxisExtent: 64, + ), + itemCount: colors.length, + itemBuilder: (context, i) { + final color = colors[i]; + return Padding( + padding: const EdgeInsets.all(12.0), + child: Tooltip( + message: color == null + ? L10n.of(context).systemTheme + : '#${color.hexValue.toRadixString(16).toUpperCase()}', + child: InkWell( + borderRadius: BorderRadius.circular(colorPickerSize), + onTap: () => controller.setChatColor(color), + child: Material( + color: color ?? systemColor, + elevation: 6, + borderRadius: BorderRadius.circular( + colorPickerSize, + ), + child: SizedBox( + width: colorPickerSize, + height: colorPickerSize, + child: controller.currentColor == color + ? Center( + child: Icon( + Icons.check, + size: 16, + color: Theme.of( + context, + ).colorScheme.onPrimary, + ), + ) + : null, + ), + ), + ), + ), + ); + }, + ); + }, + ), + Divider(color: theme.dividerColor), + ListTile( + title: Text( + L10n.of(context).messagesStyle, + style: TextStyle( + color: theme.colorScheme.secondary, + fontWeight: FontWeight.bold, + ), + ), + ), + StreamBuilder( + stream: client.onSync.stream.where( + (syncUpdate) => + syncUpdate.accountData?.any( + (accountData) => + accountData.type == + ApplicationAccountConfigExtension.accountDataKey, + ) ?? + false, + ), + builder: (context, snapshot) { + final accountConfig = client.applicationAccountConfig; + + return Column( + mainAxisSize: .min, + children: [ + MediaQuery( + data: MediaQuery.of(context).copyWith( + textScaler: TextScaler.linear( + AppSettings.fontSizeFactor.value, + ), + ), + child: AnimatedContainer( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + decoration: const BoxDecoration(), + clipBehavior: Clip.hardEdge, + child: Stack( + alignment: Alignment.center, + children: [ + if (accountConfig.wallpaperUrl != null) + Opacity( + opacity: controller.wallpaperOpacity, + child: ImageFiltered( + imageFilter: ImageFilter.blur( + sigmaX: controller.wallpaperBlur, + sigmaY: controller.wallpaperBlur, + ), + child: MxcImage( + key: ValueKey(accountConfig.wallpaperUrl), + uri: accountConfig.wallpaperUrl, + fit: BoxFit.cover, + isThumbnail: true, + width: FluffyThemes.columnWidth * 2, + height: 212, + ), + ), + ), + Column( + mainAxisSize: .min, + children: [ + const SizedBox(height: 16), + StateMessage( + Event( + eventId: 'style_dummy', + room: Room( + id: '!style_dummy', + client: client, + ), + content: {'membership': 'join'}, + type: EventTypes.RoomMember, + senderId: client.userID!, + originServerTs: DateTime.now(), + stateKey: client.userID, + ), + ), + Padding( + padding: EdgeInsets.only( + left: 12 + 12 + Avatar.defaultSize, + right: 12, + top: accountConfig.wallpaperUrl == null + ? 0 + : 12, + bottom: 12, + ), + child: DecoratedBox( + decoration: BoxDecoration( + color: theme.bubbleColor, + borderRadius: BorderRadius.circular( + AppConfig.borderRadius, + ), + ), + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 16, + vertical: 8, + ), + child: Text( + 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor', + style: TextStyle( + color: theme.onBubbleColor, + fontSize: AppConfig.messageFontSize, + ), + ), + ), + ), + ), + Align( + alignment: Alignment.centerLeft, + child: Padding( + padding: EdgeInsets.only( + right: 12, + left: 12, + top: accountConfig.wallpaperUrl == null + ? 0 + : 12, + bottom: 12, + ), + child: Material( + color: theme + .colorScheme + .surfaceContainerHigh, + borderRadius: BorderRadius.circular( + AppConfig.borderRadius, + ), + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 16, + vertical: 8, + ), + child: Text( + 'Lorem ipsum dolor sit amet', + style: TextStyle( + color: theme.colorScheme.onSurface, + fontSize: AppConfig.messageFontSize, + ), + ), + ), + ), + ), + ), + ], + ), + ], + ), + ), + ), + Divider(color: theme.dividerColor), + ListTile( + title: TextButton.icon( + style: TextButton.styleFrom( + backgroundColor: theme.colorScheme.secondaryContainer, + foregroundColor: + theme.colorScheme.onSecondaryContainer, + ), + onPressed: controller.setWallpaper, + icon: const Icon(Icons.edit_outlined), + label: Text(L10n.of(context).setWallpaper), + ), + trailing: accountConfig.wallpaperUrl == null + ? null + : IconButton( + icon: const Icon(Icons.delete_outlined), + color: theme.colorScheme.error, + onPressed: controller.deleteChatWallpaper, + ), + ), + if (accountConfig.wallpaperUrl != null) ...[ + ListTile(title: Text(L10n.of(context).opacity)), + Slider.adaptive( + min: 0.1, + max: 1.0, + divisions: 9, + semanticFormatterCallback: (d) => d.toString(), + value: controller.wallpaperOpacity, + onChanged: controller.updateWallpaperOpacity, + onChangeEnd: controller.saveWallpaperOpacity, + ), + ListTile(title: Text(L10n.of(context).blur)), + Slider.adaptive( + min: 0.0, + max: 10.0, + divisions: 10, + semanticFormatterCallback: (d) => d.toString(), + value: controller.wallpaperBlur, + onChanged: controller.updateWallpaperBlur, + onChangeEnd: controller.saveWallpaperBlur, + ), + ], + ], + ); + }, + ), + ListTile( + title: Text(L10n.of(context).fontSize), + trailing: Text('× ${AppSettings.fontSizeFactor.value}'), + ), + Slider.adaptive( + min: 0.5, + max: 2.5, + divisions: 20, + value: AppSettings.fontSizeFactor.value, + semanticFormatterCallback: (d) => d.toString(), + onChanged: controller.changeFontSizeFactor, + ), + ], + ), + ), + ); + } +} diff --git a/lib/pages/sign_in/sign_in_page.dart b/lib/pages/sign_in/sign_in_page.dart new file mode 100644 index 0000000..a0d5253 --- /dev/null +++ b/lib/pages/sign_in/sign_in_page.dart @@ -0,0 +1,247 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/sign_in/view_model/model/public_homeserver_data.dart'; +import 'package:tatchat/pages/sign_in/view_model/sign_in_view_model.dart'; +import 'package:tatchat/utils/localized_exception_extension.dart'; +import 'package:tatchat/utils/sign_in_flows/check_homeserver.dart'; +import 'package:tatchat/widgets/layouts/login_scaffold.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:tatchat/widgets/view_model_builder.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:url_launcher/url_launcher_string.dart'; + +class SignInPage extends StatelessWidget { + final bool signUp; + const SignInPage({required this.signUp, super.key}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + return ViewModelBuilder( + create: () => SignInViewModel(Matrix.of(context), signUp: signUp), + builder: (context, viewModel, _) { + final state = viewModel.value; + final publicHomeservers = state.filteredPublicHomeservers; + final selectedHomserver = state.selectedHomeserver; + return LoginScaffold( + appBar: AppBar( + leading: + state.loginLoading.connectionState == ConnectionState.waiting + ? CloseButton( + onPressed: () => + viewModel.setLoginLoading(AsyncSnapshot.nothing()), + ) + : BackButton(onPressed: Navigator.of(context).pop), + backgroundColor: theme.colorScheme.surface, + surfaceTintColor: theme.colorScheme.surface, + scrolledUnderElevation: 0, + centerTitle: true, + title: Text( + signUp + ? L10n.of(context).createNewAccount + : L10n.of(context).login, + ), + ), + body: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0), + child: Column( + spacing: 16, + children: [ + SelectableText( + signUp + ? L10n.of(context).signUpGreeting + : L10n.of(context).signInGreeting, + textAlign: .center, + ), + TextField( + readOnly: + state.publicHomeservers.connectionState == + ConnectionState.waiting || + state.loginLoading.connectionState == + ConnectionState.waiting, + controller: viewModel.filterTextController, + autocorrect: false, + keyboardType: TextInputType.url, + decoration: InputDecoration( + filled: true, + fillColor: theme.colorScheme.secondaryContainer, + border: OutlineInputBorder( + borderSide: BorderSide.none, + borderRadius: BorderRadius.circular(99), + ), + errorText: state.publicHomeservers.error?.toLocalizedString( + context, + ), + prefixIcon: const Icon(Icons.search_outlined), + hintText: L10n.of(context).searchOrEnterHomeserverAddress, + ), + ), + if (state.publicHomeservers.connectionState == + ConnectionState.done) + Expanded( + child: Material( + borderRadius: BorderRadius.circular( + AppConfig.borderRadius, + ), + clipBehavior: Clip.hardEdge, + color: theme.colorScheme.surfaceContainerLow, + child: RadioGroup( + groupValue: state.selectedHomeserver, + onChanged: viewModel.selectHomeserver, + child: ListView.builder( + itemCount: publicHomeservers.length, + itemBuilder: (context, i) { + final server = publicHomeservers[i]; + final website = server.website; + return RadioListTile( + value: server, + enabled: + state.loginLoading.connectionState != + ConnectionState.waiting, + title: Row( + children: [ + Expanded( + child: Text(server.name ?? 'Unknown'), + ), + if (website != null) + SizedBox.square( + dimension: 32, + child: IconButton( + tooltip: website, + icon: const Icon( + Icons.open_in_new_outlined, + size: 16, + ), + onPressed: () => + launchUrlString(website), + ), + ), + ], + ), + subtitle: Column( + spacing: 4.0, + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + if (server.features?.isNotEmpty == true) + Wrap( + spacing: 4.0, + runSpacing: 4.0, + children: [ + ...?server.languages?.map( + (language) => Material( + borderRadius: BorderRadius.circular( + AppConfig.borderRadius, + ), + color: theme + .colorScheme + .tertiaryContainer, + child: Padding( + padding: + const EdgeInsets.symmetric( + horizontal: 6.0, + vertical: 3.0, + ), + child: Text( + language, + style: TextStyle( + fontSize: 10, + color: theme + .colorScheme + .onTertiaryContainer, + ), + ), + ), + ), + ), + ...server.features!.map( + (feature) => Material( + borderRadius: BorderRadius.circular( + AppConfig.borderRadius, + ), + color: theme + .colorScheme + .secondaryContainer, + child: Padding( + padding: + const EdgeInsets.symmetric( + horizontal: 6.0, + vertical: 3.0, + ), + child: Text( + feature, + style: TextStyle( + fontSize: 10, + color: theme + .colorScheme + .onSecondaryContainer, + ), + ), + ), + ), + ), + ], + ), + Text( + server.description ?? 'A matrix homeserver', + ), + ], + ), + ); + }, + ), + ), + ), + ) + else + Center(child: CircularProgressIndicator.adaptive()), + ], + ), + ), + bottomNavigationBar: AnimatedSize( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + child: + selectedHomserver == null || + !publicHomeservers.contains(selectedHomserver) + ? const SizedBox.shrink() + : Material( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: SafeArea( + child: ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: theme.colorScheme.primary, + foregroundColor: theme.colorScheme.onPrimary, + ), + onPressed: + state.loginLoading.connectionState == + ConnectionState.waiting + ? null + : () => connectToHomeserverFlow( + selectedHomserver, + context, + viewModel.setLoginLoading, + signUp, + ), + child: + state.loginLoading.connectionState == + ConnectionState.waiting + ? const CircularProgressIndicator.adaptive() + : Text(L10n.of(context).continueText), + ), + ), + ), + ), + ), + ); + }, + ); + } +} diff --git a/lib/pages/sign_in/view_model/model/public_homeserver_data.dart b/lib/pages/sign_in/view_model/model/public_homeserver_data.dart new file mode 100644 index 0000000..b911435 --- /dev/null +++ b/lib/pages/sign_in/view_model/model/public_homeserver_data.dart @@ -0,0 +1,84 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +class PublicHomeserverData { + final String? name; + final String? clientDomain; + final String? website; + final String? isp; + final String? staffJur; + final String? rules; + final String? privacy; + final bool? usingVanillaReg; + final String? description; + final String? regMethod; + final String? regLink; + final String? software; + final String? version; + final bool? captcha; + final bool? email; + final List? languages; + final List? features; + final int? onlineStatus; + final String? serverDomain; + final int? verStatus; + final int? roomDirectory; + final bool? slidingSync; + final bool? ipv6; + + PublicHomeserverData({ + this.name, + this.clientDomain, + this.website, + this.isp, + this.staffJur, + this.rules, + this.privacy, + this.usingVanillaReg, + this.description, + this.regMethod, + this.regLink, + this.software, + this.version, + this.captcha, + this.email, + this.languages, + this.features, + this.onlineStatus, + this.serverDomain, + this.verStatus, + this.roomDirectory, + this.slidingSync, + this.ipv6, + }); + + factory PublicHomeserverData.fromJson(Map json) { + return PublicHomeserverData( + name: json['name'], + clientDomain: json['client_domain'], + website: json['website'], + isp: json['isp'], + staffJur: json['staff_jur'], + rules: json['rules'], + privacy: json['privacy'], + usingVanillaReg: json['using_vanilla_reg'], + description: json['description'], + regMethod: json['reg_method'], + regLink: json['reg_link'], + software: json['software'], + version: json['version'], + captcha: json['captcha'], + email: json['email'], + languages: List.from(json['languages'] ?? []), + features: List.from(json['features'] ?? []), + onlineStatus: json['online_status'], + serverDomain: json['server_domain'], + verStatus: json['ver_status'], + roomDirectory: json['room_directory'], + slidingSync: json['sliding_sync'], + ipv6: json['ipv6'], + ); + } +} diff --git a/lib/pages/sign_in/view_model/sign_in_state.dart b/lib/pages/sign_in/view_model/sign_in_state.dart new file mode 100644 index 0000000..51a29a2 --- /dev/null +++ b/lib/pages/sign_in/view_model/sign_in_state.dart @@ -0,0 +1,15 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/pages/sign_in/view_model/model/public_homeserver_data.dart'; +import 'package:material_ui/material_ui.dart'; + +class SignInState { + PublicHomeserverData? selectedHomeserver; + AsyncSnapshot> publicHomeservers = + const AsyncSnapshot.nothing(); + List filteredPublicHomeservers = []; + AsyncSnapshot loginLoading = const AsyncSnapshot.nothing(); +} diff --git a/lib/pages/sign_in/view_model/sign_in_view_model.dart b/lib/pages/sign_in/view_model/sign_in_view_model.dart new file mode 100644 index 0000000..81dc3d5 --- /dev/null +++ b/lib/pages/sign_in/view_model/sign_in_view_model.dart @@ -0,0 +1,114 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:convert'; + +import 'package:collection/collection.dart'; +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/pages/sign_in/view_model/model/public_homeserver_data.dart'; +import 'package:tatchat/pages/sign_in/view_model/sign_in_state.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:flutter/widgets.dart'; +import 'package:matrix/matrix_api_lite/utils/logs.dart'; + +class SignInViewModel extends ValueNotifier { + final MatrixState matrixService; + final bool signUp; + final TextEditingController filterTextController = TextEditingController(); + + SignInViewModel(this.matrixService, {required this.signUp}) + : super(SignInState()) { + refreshPublicHomeservers(); + filterTextController.addListener(_filterHomeservers); + } + + @override + void dispose() { + filterTextController.removeListener(_filterHomeservers); + filterTextController.dispose(); + super.dispose(); + } + + void _filterHomeservers() { + final filterText = filterTextController.text.trim().toLowerCase(); + final filteredPublicHomeservers = + value.publicHomeservers.data + ?.where( + (homeserver) => + homeserver.name?.toLowerCase().contains(filterText) ?? false, + ) + .toList() ?? + []; + if (filterText.length >= 3 && + (filterText.contains('.') || filterText.endsWith('localhost')) && + Uri.tryParse(filterText) != null && + !filteredPublicHomeservers.any( + (homeserver) => homeserver.name == filterText, + )) { + filteredPublicHomeservers.add(PublicHomeserverData(name: filterText)); + } + value.filteredPublicHomeservers = filteredPublicHomeservers; + notifyListeners(); + } + + Future refreshPublicHomeservers() async { + notifyListeners(); + value.publicHomeservers = AsyncSnapshot.waiting(); + final defaultHomeserverData = PublicHomeserverData( + name: AppSettings.defaultHomeserver.value, + ); + try { + final client = await matrixService.getLoginClient(); + final response = await client.httpClient.get(AppConfig.homeserverList); + final json = jsonDecode(response.body) as Map; + final homeserverJsonList = json['public_servers'] as List; + + final publicHomeservers = homeserverJsonList + .map((json) => PublicHomeserverData.fromJson(json)) + .toList(); + + if (signUp) { + publicHomeservers.removeWhere((server) { + return server.regMethod == null; + }); + } + + final defaultServer = publicHomeservers.singleWhereOrNull( + (server) => server.name == AppSettings.defaultHomeserver.value, + ); + + if (defaultServer == null) { + publicHomeservers.insert(0, defaultHomeserverData); + } + + value.selectedHomeserver = + value.selectedHomeserver ?? publicHomeservers.first; + value.publicHomeservers = AsyncSnapshot.withData( + ConnectionState.done, + publicHomeservers, + ); + notifyListeners(); + } catch (e, s) { + Logs().w('Unable to fetch public homeservers...', e, s); + value.selectedHomeserver = defaultHomeserverData; + value.publicHomeservers = AsyncSnapshot.withData(ConnectionState.done, [ + defaultHomeserverData, + ]); + notifyListeners(); + } + _filterHomeservers(); + } + + void selectHomeserver(PublicHomeserverData? publicHomeserverData) { + value.selectedHomeserver = publicHomeserverData; + notifyListeners(); + } + + void setLoginLoading(AsyncSnapshot loginLoading) { + value.loginLoading = loginLoading; + notifyListeners(); + } +} diff --git a/lib/utils/account_bundles.dart b/lib/utils/account_bundles.dart new file mode 100644 index 0000000..f5a9374 --- /dev/null +++ b/lib/utils/account_bundles.dart @@ -0,0 +1,105 @@ +// 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'; + +class AccountBundles { + String? prefix; + List? bundles; + + AccountBundles({this.prefix, this.bundles}); + + AccountBundles.fromJson(Map json) + : prefix = json.tryGet('prefix'), + bundles = json['bundles'] is List + ? json['bundles'] + .map((b) { + try { + return AccountBundle.fromJson(b); + } catch (_) { + return null; + } + }) + .whereType() + .toList() + : null; + + Map toJson() => { + if (prefix != null) 'prefix': prefix, + if (bundles != null) 'bundles': bundles!.map((v) => v.toJson()).toList(), + }; +} + +class AccountBundle { + String? name; + int? priority; + + AccountBundle({this.name, this.priority}); + + AccountBundle.fromJson(Map json) + : name = json.tryGet('name'), + priority = json.tryGet('priority'); + + Map toJson() => { + if (name != null) 'name': name, + if (priority != null) 'priority': priority, + }; +} + +const accountBundlesType = 'im.fluffychat.account_bundles'; + +extension AccountBundlesExtension on Client { + List get accountBundles { + List? ret; + if (accountData.containsKey(accountBundlesType)) { + ret = AccountBundles.fromJson( + accountData[accountBundlesType]!.content, + ).bundles; + } + ret ??= []; + if (ret.isEmpty) { + ret.add(AccountBundle(name: userID, priority: 0)); + } + return ret; + } + + Future setAccountBundle(String name, [int? priority]) async { + final data = AccountBundles.fromJson( + accountData[accountBundlesType]?.content ?? {}, + ); + var foundBundle = false; + final bundles = data.bundles ??= []; + for (final bundle in bundles) { + if (bundle.name == name) { + bundle.priority = priority; + foundBundle = true; + break; + } + } + if (!foundBundle) { + bundles.add(AccountBundle(name: name, priority: priority)); + } + await setAccountData(userID!, accountBundlesType, data.toJson()); + } + + Future removeFromAccountBundle(String name) async { + if (!accountData.containsKey(accountBundlesType)) { + return; // nothing to do + } + final data = AccountBundles.fromJson( + accountData[accountBundlesType]!.content, + ); + if (data.bundles == null) return; + data.bundles!.removeWhere((b) => b.name == name); + await setAccountData(userID!, accountBundlesType, data.toJson()); + } + + String get sendPrefix { + final data = AccountBundles.fromJson( + accountData[accountBundlesType]?.content ?? {}, + ); + return data.prefix!; + } +} diff --git a/lib/utils/account_config.dart b/lib/utils/account_config.dart new file mode 100644 index 0000000..a5f246a --- /dev/null +++ b/lib/utils/account_config.dart @@ -0,0 +1,68 @@ +// 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'; + +extension ApplicationAccountConfigExtension on Client { + static const String accountDataKey = 'im.fluffychat.account_config'; + + ApplicationAccountConfig get applicationAccountConfig => + ApplicationAccountConfig.fromJson( + accountData[accountDataKey]?.content ?? {}, + ); + + Future setApplicationAccountConfig(ApplicationAccountConfig config) => + setAccountData(userID!, accountDataKey, config.toJson()); + + /// Only updates the specified values in ApplicationAccountConfig + Future updateApplicationAccountConfig(ApplicationAccountConfig config) { + final currentConfig = applicationAccountConfig; + return setAccountData( + userID!, + accountDataKey, + ApplicationAccountConfig( + wallpaperUrl: config.wallpaperUrl ?? currentConfig.wallpaperUrl, + wallpaperOpacity: + config.wallpaperOpacity ?? currentConfig.wallpaperOpacity, + wallpaperBlur: config.wallpaperBlur ?? currentConfig.wallpaperBlur, + ).toJson(), + ); + } +} + +class ApplicationAccountConfig { + final Uri? wallpaperUrl; + final double? wallpaperOpacity; + final double? wallpaperBlur; + + const ApplicationAccountConfig({ + this.wallpaperUrl, + this.wallpaperOpacity, + this.wallpaperBlur, + }); + + static double _sanitizedOpacity(double? opacity) { + if (opacity == null) return 1; + if (opacity > 1 || opacity < 0) return 1; + return opacity; + } + + factory ApplicationAccountConfig.fromJson(Map json) => + ApplicationAccountConfig( + wallpaperUrl: json['wallpaper_url'] is String + ? Uri.tryParse(json['wallpaper_url']) + : null, + wallpaperOpacity: _sanitizedOpacity( + json.tryGet('wallpaper_opacity'), + ), + wallpaperBlur: json.tryGet('wallpaper_blur'), + ); + + Map toJson() => { + 'wallpaper_url': wallpaperUrl?.toString(), + 'wallpaper_opacity': wallpaperOpacity, + 'wallpaper_blur': wallpaperBlur, + }; +} diff --git a/lib/utils/adaptive_bottom_sheet.dart b/lib/utils/adaptive_bottom_sheet.dart new file mode 100644 index 0000000..70c0287 --- /dev/null +++ b/lib/utils/adaptive_bottom_sheet.dart @@ -0,0 +1,58 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:math'; + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:material_ui/material_ui.dart'; + +Future showAdaptiveBottomSheet({ + required BuildContext context, + required Widget Function(BuildContext) builder, + bool isDismissible = true, + bool isScrollControlled = true, + bool useRootNavigator = true, +}) { + if (FluffyThemes.isColumnMode(context)) { + return showDialog( + context: context, + useRootNavigator: useRootNavigator, + barrierDismissible: isDismissible, + useSafeArea: true, + builder: (context) => Center( + child: Container( + margin: const EdgeInsets.all(16), + constraints: const BoxConstraints(maxWidth: 480, maxHeight: 720), + child: Material( + elevation: Theme.of(context).dialogTheme.elevation ?? 4, + shadowColor: Theme.of(context).dialogTheme.shadowColor, + borderRadius: BorderRadius.circular(AppConfig.borderRadius), + color: Theme.of(context).scaffoldBackgroundColor, + clipBehavior: Clip.hardEdge, + child: builder(context), + ), + ), + ), + ); + } + + return showModalBottomSheet( + context: context, + builder: (context) => ConstrainedBox( + constraints: BoxConstraints( + maxHeight: + MediaQuery.viewInsetsOf(context).bottom + + min(MediaQuery.sizeOf(context).height - 32, 600), + ), + child: builder(context), + ), + useSafeArea: true, + useRootNavigator: useRootNavigator, + isDismissible: isDismissible, + isScrollControlled: isScrollControlled, + clipBehavior: Clip.hardEdge, + ); +} diff --git a/lib/utils/background_push.dart b/lib/utils/background_push.dart new file mode 100644 index 0000000..ad9d9c7 --- /dev/null +++ b/lib/utils/background_push.dart @@ -0,0 +1,464 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// Copyright (C) 2020, 2021 Famedly GmbH +// Copyright (C) 2021 Fluffychat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; +import 'dart:convert'; +import 'dart:io'; +import 'dart:isolate'; +import 'dart:ui'; + +//import 'package:fcm_shared_isolate/fcm_shared_isolate.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/main.dart'; +import 'package:tatchat/utils/notification_background_handler.dart'; +import 'package:tatchat/utils/push_helper.dart'; +import 'package:tatchat/widgets/tatu_chat_app.dart'; +import 'package:flutter_local_notifications/flutter_local_notifications.dart'; +import 'package:http/http.dart' as http; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; +import 'package:unifiedpush/unifiedpush.dart'; +import 'package:unifiedpush_ui/unifiedpush_ui.dart'; + +import '../config/app_config.dart'; +import '../config/setting_keys.dart'; +import '../widgets/matrix.dart'; +import 'platform_infos.dart'; + +class BackgroundPush { + static BackgroundPush? _instance; + final FlutterLocalNotificationsPlugin _flutterLocalNotificationsPlugin = + FlutterLocalNotificationsPlugin(); + + List _clients; + + List get clients => matrix?.widget.clients ?? _clients; + + MatrixState? matrix; + String? _fcmToken; + + String? get fcmToken => _fcmToken; + void Function(String errorMsg, {Uri? link})? onFcmError; + L10n? l10n; + + Future loadLocale() async { + final context = matrix?.context; + // inspired by _lookupL10n in .dart_tool/flutter_gen/gen_l10n/l10n.dart + l10n ??= + (context != null && context.mounted ? L10n.of(context) : null) ?? + (await L10n.delegate.load(PlatformDispatcher.instance.locale)); + } + + final pendingTests = >{}; + bool firebaseEnabled = false; + + //final firebase = FcmSharedIsolate(); + + DateTime? lastReceivedPush; + + bool upAction = false; + + Future _init() async { + //firebaseEnabled = true; + try { + mainIsolateReceivePort?.listen((message) async { + try { + await notificationTap( + NotificationResponseJson.fromJsonString(message), + clients: clients, + router: TatuChatApp.router, + l10n: l10n, + ); + } catch (e, s) { + Logs().wtf('Main Notification Tap crashed', e, s); + } + }); + if (PlatformInfos.isAndroid) { + final port = ReceivePort(); + IsolateNameServer.removePortNameMapping('background_tab_port'); + IsolateNameServer.registerPortWithName( + port.sendPort, + 'background_tab_port', + ); + port.listen((message) async { + try { + await notificationTap( + NotificationResponseJson.fromJsonString(message), + clients: clients, + router: TatuChatApp.router, + l10n: l10n, + ); + } catch (e, s) { + Logs().wtf('Main Notification Tap crashed', e, s); + } + }); + } + await _flutterLocalNotificationsPlugin.initialize( + settings: const InitializationSettings( + android: AndroidInitializationSettings('notifications_icon'), + iOS: DarwinInitializationSettings(), + ), + onDidReceiveNotificationResponse: (response) => notificationTap( + response, + clients: clients, + router: TatuChatApp.router, + l10n: l10n, + ), + onDidReceiveBackgroundNotificationResponse: notificationTapBackground, + ); + Logs().v('Flutter Local Notifications initialized'); + //firebase.setListeners( + // onMessage: (message) => pushHelper( + // PushNotification.fromJson( + // message.tryGetMap('data') ?? message, + // ), + // clients: clients, + // l10n: l10n, + // activeRoomId: matrix?.activeRoomId, + // flutterLocalNotificationsPlugin: _flutterLocalNotificationsPlugin, + // ), + //); + if (Platform.isAndroid) { + await UnifiedPush.initialize( + onNewEndpoint: _newUpEndpoint, + onRegistrationFailed: (_, i) => _upUnregistered(i), + onUnregistered: _upUnregistered, + onMessage: _onUpMessage, + ); + } + } catch (e, s) { + Logs().e('Unable to initialize Flutter local notifications', e, s); + } + } + + BackgroundPush._(this._clients) { + _init(); + } + + factory BackgroundPush.clientOnly(List clients) { + return _instance ??= BackgroundPush._(clients); + } + + factory BackgroundPush( + MatrixState matrix, { + void Function(String errorMsg, {Uri? link})? onFcmError, + }) { + final instance = BackgroundPush.clientOnly(matrix.widget.clients); + instance.matrix = matrix; + // ignore: prefer_initializing_formals + instance.onFcmError = onFcmError; + return instance; + } + + /// Makes sure that there is exactly ONE pusher with these settings for this + /// client and deletes all other pushers if not. + Future setupPusher({ + required Client client, + String? gatewayUrl, + String? token, + }) async { + if (PlatformInfos.isIOS) { + //await firebase.requestPermission(); + } + if (PlatformInfos.isAndroid && !isIntegrationTest) { + _flutterLocalNotificationsPlugin + .resolvePlatformSpecificImplementation< + AndroidFlutterLocalNotificationsPlugin + >() + ?.requestNotificationsPermission(); + } + final appDisplayName = PlatformInfos.appDisplayName; + + final pushers = + await (client.getPushers().catchError((e) { + Logs().w('[Push] Unable to request pushers', e); + return []; + })) ?? + []; + + // we need the deviceAppId to remove potential legacy pusher + var deviceAppId = '${AppConfig.pushNotificationsAppId}.${client.deviceID}'; + // appId may only be up to 64 chars as per spec + if (deviceAppId.length > 64) { + deviceAppId = deviceAppId.substring(0, 64); + } + final thisAppId = deviceAppId; + if (gatewayUrl == null || token == null) { + Logs().w('[Push] Missing required push credentials'); + return; + } + + if (pushers.any( + (currentPusher) => + currentPusher.pushkey == token && + currentPusher.data.additionalProperties['client_name'] == + client.clientName && + currentPusher.kind == 'http' && + currentPusher.appId == thisAppId && + currentPusher.appDisplayName == appDisplayName && + currentPusher.deviceDisplayName == client.deviceName && + currentPusher.lang == 'en' && + currentPusher.data.url.toString() == gatewayUrl && + currentPusher.data.format == + AppSettings.pushNotificationsPusherFormat.value && + currentPusher.data.additionalProperties['data_message'] == + pusherDataMessageFormat, + )) { + Logs().i('[Push] Pusher already set for ${client.deviceID}'); + return; + } + + if (!client.isLogged()) return; + + final legacyPushers = pushers.where( + (pusher) => + pusher.appId == thisAppId || // To migrate older app-id format: + ((pusher.appId == 'chat.fluffy.fluffychat.data_message' || + pusher.appId == 'chat.fluffy.fluffychat') && + pusher.pushkey == token), + ); + for (final pusher in legacyPushers) { + try { + await client.deletePusher(pusher); + Logs().i('[Push] Removed legacy pusher for ${client.deviceID}'); + } catch (err) { + Logs().w( + '[Push] Failed to remove old pusher for ${client.deviceID}', + err, + ); + } + } + + Logs().i('Need to set new pusher for ${client.clientName}'); + try { + await client.postPusher( + Pusher( + pushkey: token, + appId: thisAppId, + appDisplayName: appDisplayName, + deviceDisplayName: PlatformInfos.appDisplayName, + lang: 'en', + data: PusherData( + url: Uri.parse(gatewayUrl), + format: AppSettings.pushNotificationsPusherFormat.value, + additionalProperties: { + 'client_name': client.clientName, + 'data_message': pusherDataMessageFormat, + }, + ), + kind: 'http', + ), + append: true, + ); + } catch (e, s) { + Logs().e('[Push] Unable to set pushers', e, s); + } + } + + final pusherDataMessageFormat = Platform.isAndroid; + + static bool _wentToRoomOnStartup = false; + + Future setupPush(BuildContext context) async { + if (PlatformInfos.isAndroid && + (await UnifiedPush.getDistributors()).isNotEmpty && + context.mounted) { + await UnifiedPushUi( + context: context, + instances: ['default'], + unifiedPushFunctions: UPFunctions(), + showNoDistribDialog: false, + onNoDistribDialogDismissed: () {}, // TODO: Implement me + ).registerAppWithDialog(); + } else { + for (final client in clients) { + Logs().d('SetupPush for Client ${client.clientName}'); + if (client.onLoginStateChanged.value != LoginState.loggedIn || + !PlatformInfos.isMobile || + matrix == null) { + return; + } + // Do not setup unifiedpush if this has been initialized by + // an unifiedpush action + if (upAction) { + return; + } + await setupFirebase(client); + } + } + + // ignore: unawaited_futures + _flutterLocalNotificationsPlugin.getNotificationAppLaunchDetails().then(( + details, + ) { + if (details == null || + !details.didNotificationLaunchApp || + _wentToRoomOnStartup) { + return; + } + _wentToRoomOnStartup = true; + final response = details.notificationResponse; + if (response != null) { + notificationTap( + response, + clients: clients, + router: TatuChatApp.router, + l10n: l10n, + ); + } + }); + } + + Future _noFcmWarning() async { + if (matrix == null) { + return; + } + if (AppSettings.showNoGoogle.value) { + return; + } + await loadLocale(); + WidgetsBinding.instance.addPostFrameCallback((_) { + if (PlatformInfos.isAndroid) { + onFcmError?.call( + l10n!.noGoogleServicesWarning, + link: Uri.parse(AppConfig.enablePushTutorial), + ); + return; + } + onFcmError?.call(l10n!.oopsPushError); + }); + } + + Future setupFirebase(Client client) async { + Logs().v('Setup firebase'); + if (!firebaseEnabled) { + await _noFcmWarning(); + return; + } + if (_fcmToken?.isEmpty ?? true) { + if (PlatformInfos.isIOS) { + //await firebase.requestPermission(); + } + const max = 5; + for (var i = 0; i < max; i++) { + try { + await Future.delayed(const Duration(seconds: 1)); + //_fcmToken = await firebase.getToken(); + if (_fcmToken != null) break; + } catch (e, s) { + Logs().w( + '[Push] cannot get token - try ($i/$max)', + e, + e is String ? null : s, + ); + } + } + if (_fcmToken == null) { + await _noFcmWarning(); + return; + } + } + await setupPusher( + client: client, + gatewayUrl: AppSettings.pushNotificationsGatewayUrl.value, + token: _fcmToken, + ); + } + + Future _newUpEndpoint(PushEndpoint newPushEndpoint, String i) async { + final newEndpoint = newPushEndpoint.url; + upAction = true; + if (newEndpoint.isEmpty) { + await _upUnregistered(i); + return; + } + var endpoint = + 'https://matrix.gateway.unifiedpush.org/_matrix/push/v1/notify'; + try { + final url = Uri.parse(newEndpoint) + .replace(path: '/_matrix/push/v1/notify', query: '') + .toString() + .split('?') + .first; + final res = json.decode( + utf8.decode((await http.get(Uri.parse(url))).bodyBytes), + ); + if (res['gateway'] == 'matrix' || + (res['unifiedpush'] is Map && + res['unifiedpush']['gateway'] == 'matrix')) { + endpoint = url; + } + } catch (e) { + Logs().i( + '[Push] No self-hosted unified push gateway present: $newEndpoint', + ); + } + Logs().i('[Push] UnifiedPush using endpoint $endpoint'); + + for (final client in clients) { + await setupPusher( + client: client, + gatewayUrl: endpoint, + token: newEndpoint, + ); + } + await AppSettings.unifiedPushEndpoint.setItem(newEndpoint); + await AppSettings.unifiedPushRegistered.setItem(true); + } + + Future _upUnregistered(String i) async { + upAction = true; + Logs().i('[Push] Removing UnifiedPush endpoint...'); + await AppSettings.unifiedPushEndpoint.setItem( + AppSettings.unifiedPushEndpoint.defaultValue, + ); + await AppSettings.unifiedPushRegistered.setItem(false); + } + + Future _onUpMessage(PushMessage pushMessage, String i) async { + final message = pushMessage.content; + upAction = true; + final data = Map.from( + json.decode(utf8.decode(message))['notification'], + ); + // UP may strip the devices list + data['devices'] ??= []; + await pushHelper( + PushNotification.fromJson(data), + clients: clients, + l10n: l10n, + activeRoomId: matrix?.activeRoomId, + flutterLocalNotificationsPlugin: _flutterLocalNotificationsPlugin, + ); + } +} + +class UPFunctions extends UnifiedPushFunctions { + final List features = [ + /*list of features*/ + ]; + + @override + Future getDistributor() async { + return await UnifiedPush.getDistributor(); + } + + @override + Future> getDistributors() async { + return await UnifiedPush.getDistributors(features); + } + + @override + Future registerApp(String instance) async { + await UnifiedPush.register(instance: instance, features: features); + } + + @override + Future saveDistributor(String distributor) async { + await UnifiedPush.saveDistributor(distributor); + } +} diff --git a/lib/utils/beautify_string_extension.dart b/lib/utils/beautify_string_extension.dart new file mode 100644 index 0000000..58d44e4 --- /dev/null +++ b/lib/utils/beautify_string_extension.dart @@ -0,0 +1,31 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +extension BeautifyStringExtension on String { + String get beautifiedOneLine { + var beautifiedStr = ''; + for (var i = 0; i < length; i++) { + beautifiedStr += substring(i, i + 1); + if (i % 4 == 3) { + beautifiedStr += ' '; + } + } + return beautifiedStr; + } + + String get beautified { + var beautifiedStr = ''; + for (var i = 0; i < length; i++) { + beautifiedStr += substring(i, i + 1); + if (i % 4 == 3) { + beautifiedStr += ' '; + } + if (i % 16 == 15) { + beautifiedStr += '\n'; + } + } + return beautifiedStr; + } +} diff --git a/lib/utils/call_kit_params.dart b/lib/utils/call_kit_params.dart new file mode 100644 index 0000000..b1aeb73 --- /dev/null +++ b/lib/utils/call_kit_params.dart @@ -0,0 +1,89 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:ui'; + +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/matrix_live_kit_calls/matrix_live_kit_call.dart'; +import 'package:tatchat/utils/notification_avatar_extension.dart'; +import 'package:flutter_callkit_incoming/entities/entities.dart'; +import 'package:matrix/matrix.dart'; +import 'package:uuid/uuid.dart'; + +Future buildFluffyChatCallKitParams( + Room room, { + L10n? l10n, + MatrixRtcCallIntent intent = .video, + Duration timeout = RtcNotificationContent.defaultLifetime, +}) async { + l10n ??= await lookupL10n(PlatformDispatcher.instance.locale); + final avatarUrl = await room.avatar?.getThumbnailUri( + room.client, + width: notificationAvatarDimension, + height: notificationAvatarDimension, + method: ThumbnailMethod.crop, + ); + + return CallKitParams( + id: Uuid().v4(), + extra: { + 'roomId': room.id, + 'clientName': room.client.clientName, + 'intent': intent.name, + }, + appName: AppSettings.applicationName.value, + nameCaller: room.getLocalizedDisplayname(), + avatar: avatarUrl?.toString(), + handle: switch (intent) { + MatrixRtcCallIntent.voice => l10n.voiceCall, + MatrixRtcCallIntent.video => l10n.videoCall, + }, + type: intent.callKitType, + duration: timeout.inMilliseconds, + headers: avatarUrl == null + ? null + : {'authorization': 'Bearer ${room.client.accessToken}'}, + missedCallNotification: NotificationParams( + showNotification: true, + isShowCallback: true, + subtitle: l10n.missedCall, + callbackText: l10n.callBack, + ), + callingNotification: NotificationParams( + showNotification: true, + isShowCallback: true, + subtitle: l10n.waitingForParticipant, + callbackText: l10n.hangUp, + ), + android: AndroidParams( + textAccept: l10n.accept, + textDecline: l10n.decline, + ringtonePath: 'system_ringtone_default', + incomingCallNotificationChannelName: l10n.incomingCall, + missedCallNotificationChannelName: l10n.missedCall, + ), + ios: IOSParams( + iconName: 'LaunchImage', + handleType: 'generic', + supportsVideo: intent == .video, + maximumCallGroups: 1, + maximumCallsPerCallGroup: 1, + supportsDTMF: false, + supportsHolding: false, + supportsGrouping: false, + supportsUngrouping: false, + includesCallsInRecents: true, + ringtonePath: 'system_ringtone_default', + audioSessionMode: switch (intent) { + .video => 'videoChat', + .voice => 'voiceChat', + }, + audioSessionActive: true, + audioSessionPreferredSampleRate: 44100.0, + audioSessionPreferredIOBufferDuration: 0.005, + ), + ); +} diff --git a/lib/utils/client_download_content_extension.dart b/lib/utils/client_download_content_extension.dart new file mode 100644 index 0000000..511215b --- /dev/null +++ b/lib/utils/client_download_content_extension.dart @@ -0,0 +1,109 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:math' show min; +import 'dart:typed_data'; +import 'dart:ui'; + +import 'package:matrix/matrix.dart'; + +extension ClientDownloadContentExtension on Client { + Future downloadMxcCached( + Uri mxc, { + num? width, + num? height, + bool isThumbnail = false, + bool? animated, + ThumbnailMethod? thumbnailMethod, + bool rounded = false, + }) async { + // To stay compatible with previous storeKeys: + final cacheKey = isThumbnail + // ignore: deprecated_member_use + ? mxc.getThumbnail( + this, + width: width, + height: height, + animated: animated, + method: thumbnailMethod, + ) + : mxc; + + final cachedData = await database.getFile(cacheKey); + if (cachedData != null) return cachedData; + + final httpUri = isThumbnail + ? await mxc.getThumbnailUri( + this, + width: width, + height: height, + animated: animated, + method: thumbnailMethod, + ) + : await mxc.getDownloadUri(this); + + final response = await httpClient.get( + httpUri, + headers: accessToken == null + ? null + : {'authorization': 'Bearer $accessToken'}, + ); + if (response.statusCode != 200) { + unexpectedResponse(response, response.bodyBytes); + } + var imageData = response.bodyBytes; + + if (rounded) { + imageData = await _convertToCircularImage( + imageData, + min(width ?? 64, height ?? 64).round(), + ); + } + + await database.storeFile(cacheKey, imageData, 0); + + return imageData; + } +} + +Future _convertToCircularImage( + Uint8List imageBytes, + int size, +) async { + final codec = await instantiateImageCodec(imageBytes); + final frame = await codec.getNextFrame(); + final originalImage = frame.image; + + final recorder = PictureRecorder(); + final canvas = Canvas(recorder); + + final paint = Paint(); + final rect = Rect.fromLTWH(0, 0, size.toDouble(), size.toDouble()); + + final clipPath = Path() + ..addOval( + Rect.fromCircle(center: Offset(size / 2, size / 2), radius: size / 2), + ); + + canvas.clipPath(clipPath); + + canvas.drawImageRect( + originalImage, + Rect.fromLTWH( + 0, + 0, + originalImage.width.toDouble(), + originalImage.height.toDouble(), + ), + rect, + paint, + ); + + final picture = recorder.endRecording(); + final circularImage = await picture.toImage(size, size); + + final byteData = await circularImage.toByteData(format: ImageByteFormat.png); + return byteData!.buffer.asUint8List(); +} diff --git a/lib/utils/client_manager.dart b/lib/utils/client_manager.dart new file mode 100644 index 0000000..63d9d8e --- /dev/null +++ b/lib/utils/client_manager.dart @@ -0,0 +1,188 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:collection/collection.dart'; +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/l10n/l10n.dart'; +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/platform_infos.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter_local_notifications/flutter_local_notifications.dart'; +import 'package:flutter_vodozemac/flutter_vodozemac.dart' as vod; +import 'package:matrix/encryption/utils/key_verification.dart'; +import 'package:matrix/matrix.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:universal_html/html.dart' as html; + +import 'matrix_sdk_extensions/flutter_matrix_dart_sdk_database/builder.dart'; + +abstract class ClientManager { + static const String clientNamespace = 'im.fluffychat.store.clients'; + + static Future> getClients({ + bool initialize = true, + required SharedPreferences store, + }) async { + final clientNames = {}; + try { + final clientNamesList = store.getStringList(clientNamespace) ?? []; + clientNames.addAll(clientNamesList); + } catch (e, s) { + Logs().w('Client names in store are corrupted', e, s); + await store.remove(clientNamespace); + } + if (clientNames.isEmpty) { + clientNames.add(PlatformInfos.appDisplayName); + await store.setStringList(clientNamespace, clientNames.toList()); + } + final clients = await Future.wait( + clientNames.map((name) => createClient(name, store)), + ); + if (initialize) { + await Future.wait( + clients.map( + (client) => client + .initWithRestore( + onMigration: () async { + final l10n = await lookupL10n( + PlatformDispatcher.instance.locale, + ); + sendInitNotification( + l10n.databaseMigrationTitle, + l10n.databaseMigrationBody, + ); + }, + ) + .catchError( + (e, s) => Logs().e('Unable to initialize client', e, s), + ), + ), + ); + } + if (clients.length > 1 && clients.any((c) => !c.isLogged())) { + final loggedOutClients = clients.where((c) => !c.isLogged()).toList(); + for (final client in loggedOutClients) { + Logs().w( + 'Multi account is enabled but client ${client.userID} is not logged in. Removing...', + ); + clientNames.remove(client.clientName); + clients.remove(client); + } + await store.setStringList(clientNamespace, clientNames.toList()); + } + return clients; + } + + static Future addClientNameToStore( + String clientName, + SharedPreferences store, + ) async { + final clientNamesList = store.getStringList(clientNamespace) ?? []; + clientNamesList.add(clientName); + await store.setStringList(clientNamespace, clientNamesList); + } + + static Future removeClientNameFromStore( + String clientName, + SharedPreferences store, + ) async { + final clientNamesList = store.getStringList(clientNamespace) ?? []; + clientNamesList.remove(clientName); + await store.setStringList(clientNamespace, clientNamesList); + } + + static NativeImplementations get nativeImplementations => kIsWeb + ? NativeImplementationsWebWorker( + Uri.parse('native_executor.js'), + timeout: const Duration(minutes: 1), + ) + : NativeImplementationsIsolate( + compute, + vodozemacInit: () => vod.init( + wasmPath: + './assets/assets/vodozemac/${AppConfig.vodozemacVersion}/', + ), + ); + + static Future createClient( + String clientName, + SharedPreferences store, + ) async { + final shareKeysWith = AppSettings.shareKeysWith.value; + final enableSoftLogout = AppSettings.enableSoftLogout.value; + + return Client( + clientName, + httpClient: CustomHttpClient.createHTTPClient(), + verificationMethods: { + KeyVerificationMethod.numbers, + if (kIsWeb || PlatformInfos.isMobile || PlatformInfos.isLinux) + KeyVerificationMethod.emoji, + }, + importantStateEvents: { + // To make room emotes work + 'im.ponies.room_emotes', + // To display call state in chat list + MatrixRtcCallMember.eventType, + }, + customImageResizer: PlatformInfos.supportsCustomImageResizer + ? customImageResizer + : null, + logLevel: Level.verbose, + database: await flutterMatrixSdkDatabaseBuilder(clientName), + supportedLoginTypes: { + AuthenticationTypes.password, + AuthenticationTypes.sso, + }, + nativeImplementations: nativeImplementations, + defaultNetworkRequestTimeout: const Duration(minutes: 30), + enableDehydratedDevices: true, + shareKeysWith: + ShareKeysWith.values.singleWhereOrNull( + (share) => share.name == shareKeysWith, + ) ?? + ShareKeysWith.all, + onSoftLogout: enableSoftLogout ? (c) => c.refreshAccessToken() : null, + sendTimelineEventTimeout: Duration( + seconds: AppSettings.sendTimelineEventTimeout.value, + ), + ); + } + + static Future sendInitNotification(String title, String body) async { + if (kIsWeb) { + html.Notification(title, body: body); + return; + } + + final flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin(); + + await flutterLocalNotificationsPlugin.initialize( + settings: const InitializationSettings( + android: AndroidInitializationSettings('notifications_icon'), + iOS: DarwinInitializationSettings(), + ), + ); + + await flutterLocalNotificationsPlugin.show( + id: 0, + title: title, + body: body, + notificationDetails: const NotificationDetails( + android: AndroidNotificationDetails( + 'error_message', + 'Error Messages', + importance: Importance.high, + priority: Priority.max, + ), + iOS: DarwinNotificationDetails(sound: 'notification.caf'), + ), + ); + } +} diff --git a/lib/utils/code_highlight_theme.dart b/lib/utils/code_highlight_theme.dart new file mode 100644 index 0000000..e2396cc --- /dev/null +++ b/lib/utils/code_highlight_theme.dart @@ -0,0 +1,45 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:flutter/widgets.dart'; + +const hightlightTextColor = Color(0xffabb2bf); +const atomOneBackgroundColor = Color(0xff282c34); +const atomOneDarkTheme = { + 'root': TextStyle(color: hightlightTextColor), + 'comment': TextStyle(color: Color(0xff5c6370), fontStyle: FontStyle.italic), + 'quote': TextStyle(color: Color(0xff5c6370), fontStyle: FontStyle.italic), + 'doctag': TextStyle(color: Color(0xffc678dd)), + 'keyword': TextStyle(color: Color(0xffc678dd)), + 'formula': TextStyle(color: Color(0xffc678dd)), + 'section': TextStyle(color: Color(0xffe06c75)), + 'name': TextStyle(color: Color(0xffe06c75)), + 'selector-tag': TextStyle(color: Color(0xffe06c75)), + 'deletion': TextStyle(color: Color(0xffe06c75)), + 'subst': TextStyle(color: Color(0xffe06c75)), + 'literal': TextStyle(color: Color(0xff56b6c2)), + 'string': TextStyle(color: Color(0xff98c379)), + 'regexp': TextStyle(color: Color(0xff98c379)), + 'addition': TextStyle(color: Color(0xff98c379)), + 'attribute': TextStyle(color: Color(0xff98c379)), + 'meta-string': TextStyle(color: Color(0xff98c379)), + 'built_in': TextStyle(color: Color(0xffe6c07b)), + 'attr': TextStyle(color: Color(0xffd19a66)), + 'variable': TextStyle(color: Color(0xffd19a66)), + 'template-variable': TextStyle(color: Color(0xffd19a66)), + 'type': TextStyle(color: Color(0xffd19a66)), + 'selector-class': TextStyle(color: Color(0xffd19a66)), + 'selector-attr': TextStyle(color: Color(0xffd19a66)), + 'selector-pseudo': TextStyle(color: Color(0xffd19a66)), + 'number': TextStyle(color: Color(0xffd19a66)), + 'symbol': TextStyle(color: Color(0xff61aeee)), + 'bullet': TextStyle(color: Color(0xff61aeee)), + 'link': TextStyle(color: Color(0xff61aeee)), + 'meta': TextStyle(color: Color(0xff61aeee)), + 'selector-id': TextStyle(color: Color(0xff61aeee)), + 'title': TextStyle(color: Color(0xff61aeee)), + 'emphasis': TextStyle(fontStyle: FontStyle.italic), + 'strong': TextStyle(fontWeight: FontWeight.bold), +}; diff --git a/lib/utils/color_value.dart b/lib/utils/color_value.dart new file mode 100644 index 0000000..e706044 --- /dev/null +++ b/lib/utils/color_value.dart @@ -0,0 +1,19 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:flutter/widgets.dart'; + +extension ColorValue on Color { + int get hexValue { + return _floatToInt8(a) << 24 | + _floatToInt8(r) << 16 | + _floatToInt8(g) << 8 | + _floatToInt8(b) << 0; + } + + static int _floatToInt8(double x) { + return (x * 255.0).round() & 0xff; + } +} diff --git a/lib/utils/custom_http_client.dart b/lib/utils/custom_http_client.dart new file mode 100644 index 0000000..7b1d04a --- /dev/null +++ b/lib/utils/custom_http_client.dart @@ -0,0 +1,41 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:convert'; +import 'dart:io'; + +import 'package:tatchat/config/isrg_x1.dart'; +import 'package:tatchat/config/isrg_x2.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:http/http.dart' as http; +import 'package:http/io_client.dart'; +import 'package:http/retry.dart' as retry; + +/// Custom HTTP client that adds the ISRG Root certificates used by Let's +/// Encrypt. Older Android versions may not include these roots in their +/// trust store, so we ship them ourselves to ensure TLS connections to +/// Let's Encrypt–signed servers continue to work. +class CustomHttpClient { + static HttpClient customHttpClient() { + final context = SecurityContext.defaultContext; + + try { + context.setTrustedCertificatesBytes(utf8.encode(ISRG_X1)); + context.setTrustedCertificatesBytes(utf8.encode(ISRG_X2)); + } on TlsException catch (e) { + if (e.osError != null && + e.osError!.message.contains('CERT_ALREADY_IN_HASH_TABLE')) { + } else { + rethrow; + } + } + + return HttpClient(context: context); + } + + static http.Client createHTTPClient() => retry.RetryClient( + PlatformInfos.isAndroid ? IOClient(customHttpClient()) : http.Client(), + ); +} diff --git a/lib/utils/custom_image_resizer.dart b/lib/utils/custom_image_resizer.dart new file mode 100644 index 0000000..a938f7e --- /dev/null +++ b/lib/utils/custom_image_resizer.dart @@ -0,0 +1,109 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:ui'; + +import 'package:flutter/foundation.dart'; +import 'package:flutter/painting.dart'; +import 'package:matrix/matrix.dart'; +import 'package:native_imaging/native_imaging.dart' as native; + +(int, int) _scaleToBox(int width, int height, {required int boxSize}) { + final fit = applyBoxFit( + BoxFit.scaleDown, + Size(width.toDouble(), height.toDouble()), + Size(boxSize.toDouble(), boxSize.toDouble()), + ).destination; + return (fit.width.round(), fit.height.round()); +} + +Future customImageResizer( + MatrixImageFileResizeArguments arguments, +) async { + await native.init(); + + var imageBytes = arguments.bytes; + String? blurhash; + + var originalWidth = 0; + var originalHeight = 0; + var width = 0; + var height = 0; + String? mimeType; + + try { + // for the other platforms + final dartCodec = await instantiateImageCodec(arguments.bytes); + final frameCount = dartCodec.frameCount; + final dartFrame = await dartCodec.getNextFrame(); + final rgbaData = await dartFrame.image.toByteData(); + if (rgbaData == null) { + return null; + } + final rgba = Uint8List.view( + rgbaData.buffer, + rgbaData.offsetInBytes, + rgbaData.lengthInBytes, + ); + + width = originalWidth = dartFrame.image.width; + height = originalHeight = dartFrame.image.height; + + var nativeImg = native.Image.fromRGBA(width, height, rgba); + + dartFrame.image.dispose(); + dartCodec.dispose(); + + if (arguments.calcBlurhash) { + // scale down image for blurhashing to speed it up + final (blurW, blurH) = _scaleToBox(width, height, boxSize: 100); + final blurhashImg = nativeImg.resample( + blurW, + blurH, + // nearest is unsupported... + native.Transform.bilinear, + ); + + blurhash = blurhashImg.toBlurhash(3, 3); + + blurhashImg.free(); + } + + if (frameCount > 1) { + // Don't scale down animated images, since those would lose frames. + nativeImg.free(); + } else { + final max = arguments.maxDimension; + if (width > max || height > max) { + (width, height) = _scaleToBox(width, height, boxSize: max); + + final scaledImg = nativeImg.resample( + width, + height, + native.Transform.lanczos, + ); + nativeImg.free(); + nativeImg = scaledImg; + } + + imageBytes = await nativeImg.toJpeg(75); + mimeType = 'image/jpeg'; + nativeImg.free(); + } + } catch (e, s) { + Logs().e('Could not generate preview', e, s); + mimeType = null; + } + + return MatrixImageFileResizedResponse( + bytes: imageBytes, + width: width, + height: height, + originalWidth: originalWidth, + originalHeight: originalHeight, + blurhash: blurhash, + mimeType: mimeType, + ); +} diff --git a/lib/utils/custom_scroll_behaviour.dart b/lib/utils/custom_scroll_behaviour.dart new file mode 100644 index 0000000..d3b7dcd --- /dev/null +++ b/lib/utils/custom_scroll_behaviour.dart @@ -0,0 +1,15 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:flutter/gestures.dart'; +import 'package:material_ui/material_ui.dart'; + +class CustomScrollBehavior extends MaterialScrollBehavior { + @override + Set get dragDevices => { + PointerDeviceKind.touch, + PointerDeviceKind.trackpad, + }; +} diff --git a/lib/utils/date_time_extension.dart b/lib/utils/date_time_extension.dart new file mode 100644 index 0000000..988b842 --- /dev/null +++ b/lib/utils/date_time_extension.dart @@ -0,0 +1,191 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:intl/intl.dart'; +import 'package:material_ui/material_ui.dart'; + +/// Provides extra functionality for formatting the time. +extension DateTimeExtension on DateTime { + bool operator <(DateTime other) { + return millisecondsSinceEpoch < other.millisecondsSinceEpoch; + } + + bool operator >(DateTime other) { + return millisecondsSinceEpoch > other.millisecondsSinceEpoch; + } + + bool operator >=(DateTime other) { + return millisecondsSinceEpoch >= other.millisecondsSinceEpoch; + } + + bool operator <=(DateTime other) { + return millisecondsSinceEpoch <= other.millisecondsSinceEpoch; + } + + /// Checks if two DateTimes are close enough to belong to the same + /// environment. + bool sameEnvironment(DateTime prevTime) => + difference(prevTime).abs() < const Duration(minutes: 5) && + sameDay(prevTime); + + bool sameDay(DateTime prevTime) => + prevTime.year == year && prevTime.month == month && prevTime.day == day; + + /// Returns a simple time String. + String localizedTimeOfDay(BuildContext context) => use24HourFormat(context) + ? DateFormat( + 'HH:mm', + Localizations.localeOf(context).languageCode, + ).format(this) + : DateFormat( + 'h:mm a', + Localizations.localeOf(context).languageCode, + ).format(this); + + /// Returns [localizedTimeOfDay()] if the ChatTime is today, the name of the week + /// day if the ChatTime is this week and a date string else. + String localizedTimeShort(BuildContext context) { + final now = DateTime.now(); + + final sameYear = now.year == year; + + final sameDay = sameYear && now.month == month && now.day == day; + + final sameWeek = + sameYear && + !sameDay && + now.millisecondsSinceEpoch - millisecondsSinceEpoch < + 1000 * 60 * 60 * 24 * 7; + + if (sameDay) { + return localizedTimeOfDay(context); + } else if (sameWeek) { + return DateFormat.E( + Localizations.localeOf(context).languageCode, + ).format(this); + } else if (sameYear) { + return DateFormat.MMMd( + Localizations.localeOf(context).languageCode, + ).format(this); + } + return DateFormat.yMMMd( + Localizations.localeOf(context).languageCode, + ).format(this); + } + + DateTime get dateOnly => DateTime(year, month, day); + + String localizedDate(BuildContext context) { + final date = dateOnly; + final now = DateTime.now().dateOnly; + + final sameYear = now.year == date.year; + + final sameDay = now == date; + + final sameWeek = + sameYear && + !sameDay && + now.millisecondsSinceEpoch - millisecondsSinceEpoch < + 1000 * 60 * 60 * 24 * 7; + + if (sameDay) { + return L10n.of(context).today; + } else if (now.difference(date).inDays == 1) { + return L10n.of(context).yesterday; + } else if (sameWeek) { + return DateFormat.EEEE( + Localizations.localeOf(context).languageCode, + ).format(date); + } else if (sameYear) { + return DateFormat.MMMMd( + Localizations.localeOf(context).languageCode, + ).format(date); + } + return DateFormat.yMMMMd( + Localizations.localeOf(context).languageCode, + ).format(date); + } + + /// If the DateTime is today, this returns [localizedTimeOfDay()], if not it also + /// shows the date. + /// TODO: Add localization + String localizedTime(BuildContext context) { + final now = DateTime.now(); + + final sameYear = now.year == year; + + final sameDay = sameYear && now.month == month && now.day == day; + + if (sameDay) return localizedTimeOfDay(context); + return L10n.of(context).dateAndTimeOfDay( + localizedTimeShort(context), + localizedTimeOfDay(context), + ); + } + + String localizedDetailedTime(BuildContext context) => + L10n.of(context).dateAndTimeOfDay( + DateFormat.yMMMd( + Localizations.localeOf(context).languageCode, + ).format(this), + use24HourFormat(context) + ? DateFormat( + 'HH:mm:ss', + Localizations.localeOf(context).languageCode, + ).format(this) + : DateFormat( + 'h:mm:ss a', + Localizations.localeOf(context).languageCode, + ).format(this), + ); + + /// Check if time needs to be in 24h format + bool use24HourFormat(BuildContext context) { + final mediaQuery24h = MediaQuery.alwaysUse24HourFormatOf(context); + + // For Android this should always work. + if (PlatformInfos.isAndroid) return mediaQuery24h; + + final locale = Localizations.localeOf(context).languageCode; + // Note: I don't like maintaining my own list but I haven't found a way to + // check this completely in Flutter side, as `alwaysUse24HourFormatOf()` + // doesn't seem to work on web or desktop. + const languages24Hour = { + 'de', + 'fr', + 'es', + 'it', + 'nl', + 'pt', + 'ru', + 'zh', + 'ja', + 'ko', + 'ar', + 'pl', + 'cs', + 'hu', + 'sv', + 'no', + 'da', + 'fi', + 'el', + 'he', + 'tr', + 'lt', + }; + final l10n24h = languages24Hour.contains(locale); + + // https://github.com/krille-chan/fluffychat/pull/1457#discussion_r1836817914 + if (PlatformInfos.isIOS) { + return mediaQuery24h || l10n24h; + } + + return l10n24h; + } +} diff --git a/lib/utils/error_reporter.dart b/lib/utils/error_reporter.dart new file mode 100644 index 0000000..052481a --- /dev/null +++ b/lib/utils/error_reporter.dart @@ -0,0 +1,164 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:convert'; + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/adaptive_dialog_action.dart'; +import 'package:tatchat/widgets/tatu_chat_app.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/services.dart'; +import 'package:http/http.dart' as http; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; +import 'package:universal_html/universal_html.dart' as html; +import 'package:url_launcher/url_launcher.dart'; + +class ErrorReporter { + final BuildContext? context; + final String? message; + + const ErrorReporter(this.context, [this.message]); + + static const Set ingoredTypes = { + 'IOException', + 'ClientException', + 'SocketException', + 'TlsException', + 'HandshakeException', + }; + + static void onFlutterError(Object error, [StackTrace? stackTrace]) { + if (AppSettings.autoSendErrorReports.value != true) { + debugPrint('Exception caught but auto send crash reports is disabled.'); + debugPrint(error.toString()); + debugPrintStack(stackTrace: stackTrace); + return; + } + final hash = (stackTrace ?? error).hashCode.toString(); + if (AppSettings.knownErrorHashes.value.contains(hash)) return; + AppSettings.knownErrorHashes.setItem([ + ...AppSettings.knownErrorHashes.value, + hash, + ]); + ErrorReporter(null, 'Flutter error').onErrorCallback(error, stackTrace); + } + + Future onErrorCallback(Object error, [StackTrace? stackTrace]) async { + if (ingoredTypes.contains(error.runtimeType.toString())) return; + Logs().e(message ?? 'Error caught', error, stackTrace); + WidgetsBinding.instance.addPostFrameCallback( + (_) => _onErrorCallback(error, stackTrace), + ); + } + + Future _onErrorCallback(Object error, [StackTrace? stackTrace]) async { + final context = + this.context ?? + TatuChatApp.router.routerDelegate.navigatorKey.currentContext; + final text = '$error\n${stackTrace ?? ''}'; + + if (context == null || !context.mounted) { + debugPrint( + 'Exception caught but we have no mounted BuildContext to display a dialog to the user!\n$text', + ); + return; + } + showAdaptiveDialog( + context: context, + builder: (context) => AlertDialog.adaptive( + title: Text(L10n.of(context).reportErrorDescription), + content: SizedBox( + height: 256, + width: 256, + child: SingleChildScrollView( + child: Text( + text, + style: const TextStyle(fontSize: 14, fontFamily: 'RobotoMono'), + ), + ), + ), + actions: [ + AdaptiveDialogAction( + onPressed: () => Navigator.of(context).pop(), + child: Text(L10n.of(context).close), + ), + AdaptiveDialogAction( + onPressed: () => Clipboard.setData(ClipboardData(text: text)), + child: Text(L10n.of(context).copy), + ), + AdaptiveDialogAction( + onPressed: () async { + final existingIssueUrl = stackTrace == null + ? null + : await _searchIssue( + (error.toString() + stackTrace.toString()).hashCode + .toString(), + ); + if (existingIssueUrl != null) { + launchUrl(existingIssueUrl); + return; + } + launchUrl( + AppConfig.newIssueUrl.resolveUri( + Uri( + queryParameters: { + 'template': 'bug_report.yml', + 'title': + '[Error ${stackTrace.hashCode}] ${message ?? error}', + 'bug-description': error.toString(), + 'stacktrace': stackTrace?.toString(), + 'app-version': await PlatformInfos.getVersion(), + 'platform-info': kIsWeb + ? html.window.navigator.userAgent + : switch (defaultTargetPlatform) { + TargetPlatform.android => 'Android', + TargetPlatform.fuchsia => 'Other', + TargetPlatform.iOS => 'iOS', + TargetPlatform.linux => 'Linux', + TargetPlatform.macOS => 'macOS (Self-compiled)', + TargetPlatform.windows => + 'Windows (Self-compiled)', + }, + }, + ), + ), + mode: LaunchMode.externalApplication, + ); + }, + child: Text(L10n.of(context).report), + ), + ], + ), + ); + } + + Future _searchIssue(String hash) async { + final result = await http.get( + Uri( + scheme: 'https', + host: 'api.github.com', + path: '/search/issues', + query: 'q=repo:krille-chan/fluffychat+is:issue+$hash', + ), + ); + try { + final jsonResult = + jsonDecode(utf8.decode(result.bodyBytes)) as Map; + final uriString = jsonResult + .tryGetList>('items') + ?.firstOrNull + ?.tryGet('html_url'); + if (uriString == null) return null; + return Uri.tryParse(uriString); + } catch (e, s) { + Logs().w('Unable to search for existing issues on GitHub', e, s); + return null; + } + } +} diff --git a/lib/utils/event_checkbox_extension.dart b/lib/utils/event_checkbox_extension.dart new file mode 100644 index 0000000..01d4e20 --- /dev/null +++ b/lib/utils/event_checkbox_extension.dart @@ -0,0 +1,31 @@ +// 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'; + +extension EventCheckboxRoomExtension on Room { + static const String relationshipType = 'im.fluffychat.checkboxes'; + Future checkCheckbox( + String eventId, + int checkboxId, { + String? txid, + }) => sendEvent( + { + 'm.relates_to': { + 'rel_type': relationshipType, + 'event_id': eventId, + 'checkbox_id': checkboxId, + }, + }, + type: EventTypes.Reaction, + txid: txid, + ); +} + +extension EventCheckboxExtension on Event { + int? get checkedCheckboxId => content + .tryGetMap('m.relates_to') + ?.tryGet('checkbox_id'); +} diff --git a/lib/utils/file_description.dart b/lib/utils/file_description.dart new file mode 100644 index 0000000..68f9067 --- /dev/null +++ b/lib/utils/file_description.dart @@ -0,0 +1,29 @@ +// 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'; + +extension FileDescriptionExtension on Event { + String? get fileDescription { + if (!{ + MessageTypes.File, + MessageTypes.Image, + MessageTypes.Sticker, + MessageTypes.Video, + MessageTypes.Audio, + }.contains(messageType)) { + return null; + } + final filename = content.tryGet('filename'); + final body = calcUnlocalizedBody(hideReply: true, plaintextBody: true); + + if (filename != body && + filename != null && + content.tryGet('body')?.isNotEmpty == true) { + return body; + } + return null; + } +} diff --git a/lib/utils/file_selector.dart b/lib/utils/file_selector.dart new file mode 100644 index 0000000..0e9b561 --- /dev/null +++ b/lib/utils/file_selector.dart @@ -0,0 +1,38 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:file_picker/file_picker.dart'; +import 'package:file_selector/file_selector.dart'; +import 'package:tatchat/widgets/app_lock.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:flutter/widgets.dart'; + +Future> selectFiles( + BuildContext context, { + String? title, + FileType type = FileType.any, + bool allowMultiple = false, +}) async { + final result = await AppLock.of(context).pauseWhile( + showFutureLoadingDialog( + context: context, + future: () async { + if (allowMultiple) { + final result = await FilePicker.pickFiles( + type: type, + dialogTitle: title, + ); + return result.map((file) => file.xFile).toList(); + } + final result = await FilePicker.pickFile( + type: type, + dialogTitle: title, + ); + return [?result?.xFile]; + }, + ), + ); + return result.result ?? []; +} diff --git a/lib/utils/init_with_restore.dart b/lib/utils/init_with_restore.dart new file mode 100644 index 0000000..5854e8c --- /dev/null +++ b/lib/utils/init_with_restore.dart @@ -0,0 +1,154 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:convert'; +import 'dart:ui'; + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/client_manager.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:matrix/matrix.dart'; + +class SessionBackup { + final String? olmAccount; + final String accessToken; + final String userId; + final String homeserver; + final String? deviceId; + final String? deviceName; + + const SessionBackup({ + required this.olmAccount, + required this.accessToken, + required this.userId, + required this.homeserver, + required this.deviceId, + this.deviceName, + }); + + factory SessionBackup.fromJsonString(String json) => + SessionBackup.fromJson(jsonDecode(json)); + + factory SessionBackup.fromJson(Map json) => SessionBackup( + olmAccount: json['olm_account'], + accessToken: json['access_token'], + userId: json['user_id'], + homeserver: json['homeserver'], + deviceId: json['device_id'], + deviceName: json['device_name'], + ); + + Map toJson() => { + 'olm_account': olmAccount, + 'access_token': accessToken, + 'user_id': userId, + 'homeserver': homeserver, + 'device_id': deviceId, + if (deviceName != null) 'device_name': deviceName, + }; + + @override + String toString() => jsonEncode(toJson()); +} + +extension InitWithRestoreExtension on Client { + static Future deleteSessionBackup(String clientName) async { + final storage = PlatformInfos.isMobile || PlatformInfos.isLinux + ? const FlutterSecureStorage() + : null; + await storage?.delete( + key: '${AppSettings.applicationName.value}_session_backup_$clientName', + ); + } + + Future initWithRestore({void Function()? onMigration}) async { + final storageKey = + '${AppSettings.applicationName.value}_session_backup_$clientName'; + final storage = PlatformInfos.isMobile || PlatformInfos.isLinux + ? const FlutterSecureStorage() + : null; + + try { + await init( + onInitStateChanged: (state) { + if (state == InitState.migratingDatabase) onMigration?.call(); + }, + waitForFirstSync: false, + waitUntilLoadCompletedLoaded: false, + ); + if (isLogged()) { + final accessToken = this.accessToken; + final homeserver = this.homeserver?.toString(); + final deviceId = deviceID; + final userId = userID; + final hasBackup = + accessToken != null && + homeserver != null && + deviceId != null && + userId != null; + assert(hasBackup); + if (hasBackup) { + Logs().v('Store session in backup'); + storage?.write( + key: storageKey, + value: SessionBackup( + olmAccount: encryption?.pickledOlmAccount, + accessToken: accessToken, + deviceId: deviceId, + homeserver: homeserver, + deviceName: deviceName, + userId: userId, + ).toString(), + ); + } + } + } catch (e, s) { + Logs().wtf('Client init failed!', e, s); + final l10n = await lookupL10n(PlatformDispatcher.instance.locale); + final sessionBackupString = await storage?.read(key: storageKey); + if (sessionBackupString == null) { + ClientManager.sendInitNotification( + l10n.initAppError, + l10n.sessionLostBody(AppConfig.newIssueUrl.toString(), e.toString()), + ); + rethrow; + } + + try { + final sessionBackup = SessionBackup.fromJsonString(sessionBackupString); + await init( + newToken: sessionBackup.accessToken, + newOlmAccount: sessionBackup.olmAccount, + newDeviceID: sessionBackup.deviceId, + newDeviceName: sessionBackup.deviceName, + newHomeserver: Uri.tryParse(sessionBackup.homeserver), + newUserID: sessionBackup.userId, + waitForFirstSync: false, + waitUntilLoadCompletedLoaded: false, + onInitStateChanged: (state) { + if (state == InitState.migratingDatabase) onMigration?.call(); + }, + ); + ClientManager.sendInitNotification( + l10n.initAppError, + l10n.restoreSessionBody( + AppConfig.newIssueUrl.toString(), + e.toString(), + ), + ); + } catch (e, s) { + Logs().wtf('Restore client failed!', e, s); + ClientManager.sendInitNotification( + l10n.initAppError, + l10n.sessionLostBody(AppConfig.newIssueUrl.toString(), e.toString()), + ); + rethrow; + } + } + } +} diff --git a/lib/utils/localized_exception_extension.dart b/lib/utils/localized_exception_extension.dart new file mode 100644 index 0000000..5cb0899 --- /dev/null +++ b/lib/utils/localized_exception_extension.dart @@ -0,0 +1,121 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:io'; +import 'dart:math'; + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/other_party_can_receive.dart'; +import 'package:flutter/services.dart'; +import 'package:http/http.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/encryption.dart'; +import 'package:matrix/matrix.dart'; + +import 'uia_request_manager.dart'; + +extension LocalizedExceptionExtension on Object { + static String _formatFileSize(int size) { + if (size < 1000) return '$size B'; + final i = (log(size) / log(1000)).floor(); + final num = (size / pow(1000, i)); + final round = num.round(); + final numString = round < 10 + ? num.toStringAsFixed(2) + : round < 100 + ? num.toStringAsFixed(1) + : round.toString(); + return '$numString ${'kMGTPEZY'[i - 1]}B'; + } + + String toLocalizedString( + BuildContext context, [ + ExceptionContext? exceptionContext, + ]) { + if (this is FileTooBigMatrixException) { + final exception = this as FileTooBigMatrixException; + return L10n.of( + context, + ).fileIsTooBigForServer(_formatFileSize(exception.maxFileSize)); + } + if (this is OtherPartyCanNotReceiveMessages) { + return L10n.of(context).otherPartyNotLoggedIn; + } + if (this is MatrixException) { + switch ((this as MatrixException).error) { + case MatrixError.M_FORBIDDEN: + if (exceptionContext == ExceptionContext.changePassword) { + return L10n.of(context).passwordIsWrong; + } + return L10n.of(context).noPermission; + case MatrixError.M_LIMIT_EXCEEDED: + return L10n.of(context).tooManyRequestsWarning; + default: + if (exceptionContext == ExceptionContext.joinRoom) { + return L10n.of(context).unableToJoinChat; + } + return L10n.of( + context, + ).serverRespondedWithError((this as MatrixException).errorMessage); + } + } + if (this is InvalidPassphraseException) { + return L10n.of(context).wrongRecoveryKey; + } + if (this is PlatformException) { + if ((this as PlatformException).code == 'CANCELED') { + return L10n.of(context).theProcessWasCanceled; + } + final message = (this as PlatformException).message; + if (message != null) { + return message; + } + } + if (this is BadServerLoginTypesException) { + final serverVersions = (this as BadServerLoginTypesException) + .serverLoginTypes + .toString() + .replaceAll('{', '"') + .replaceAll('}', '"'); + final supportedVersions = (this as BadServerLoginTypesException) + .supportedLoginTypes + .toString() + .replaceAll('{', '"') + .replaceAll('}', '"'); + return L10n.of( + context, + ).badServerLoginTypesException(serverVersions, supportedVersions); + } + if (this is IOException || + this is SocketException || + this is SyncConnectionException || + this is ClientException) { + return L10n.of(context).noConnectionToTheServer; + } + if (this is FormatException && + exceptionContext == ExceptionContext.checkHomeserver) { + return L10n.of(context).doesNotSeemToBeAValidHomeserver; + } + if (this is FormatException && + exceptionContext == ExceptionContext.checkServerSupportInfo) { + return L10n.of(context).noContactInformationProvided; + } + if (this is String) return toString(); + if (this is UiaException) return toString(); + + if (exceptionContext == ExceptionContext.joinRoom) { + return L10n.of(context).unableToJoinChat; + } + + return L10n.of(context).unexpectedErrorOccurded(toString()); + } +} + +enum ExceptionContext { + changePassword, + checkHomeserver, + checkServerSupportInfo, + joinRoom, +} diff --git a/lib/utils/markdown_context_builder.dart b/lib/utils/markdown_context_builder.dart new file mode 100644 index 0000000..202da71 --- /dev/null +++ b/lib/utils/markdown_context_builder.dart @@ -0,0 +1,142 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_text_input_dialog.dart'; +import 'package:material_ui/material_ui.dart'; + +class MarkdownContextBuilder extends StatelessWidget { + final EditableTextState editableTextState; + final TextEditingController controller; + + const MarkdownContextBuilder({ + required this.editableTextState, + required this.controller, + super.key, + }); + + @override + Widget build(BuildContext context) { + final value = editableTextState.textEditingValue; + final selectedText = value.selection.textInside(value.text); + final buttonItems = editableTextState.contextMenuButtonItems; + final l10n = L10n.of(context); + + return AdaptiveTextSelectionToolbar.buttonItems( + anchors: editableTextState.contextMenuAnchors, + buttonItems: [ + ...buttonItems, + if (selectedText.isNotEmpty) ...[ + ContextMenuButtonItem( + label: l10n.link, + onPressed: () async { + final input = await showTextInputDialog( + context: context, + title: l10n.addLink, + okLabel: l10n.ok, + cancelLabel: l10n.cancel, + validator: (text) { + if (text.isEmpty) { + return l10n.pleaseFillOut; + } + try { + text.startsWith('http') ? Uri.parse(text) : Uri.https(text); + } catch (_) { + return l10n.invalidUrl; + } + return null; + }, + hintText: 'www...', + keyboardType: TextInputType.url, + ); + final urlString = input; + if (urlString == null) return; + final url = urlString.startsWith('http') + ? Uri.parse(urlString) + : Uri.https(urlString); + final selection = controller.selection; + controller.text = controller.text.replaceRange( + selection.start, + selection.end, + '[$selectedText]($url)', + ); + ContextMenuController.removeAny(); + }, + ), + ContextMenuButtonItem( + label: l10n.checkList, + onPressed: () { + final text = controller.text; + final selection = controller.selection; + + var start = selection.textBefore(text).lastIndexOf('\n'); + if (start == -1) start = 0; + final end = selection.end; + + final fullLineSelection = TextSelection( + baseOffset: start, + extentOffset: end, + ); + + const checkBox = '- [ ]'; + + final replacedRange = fullLineSelection + .textInside(text) + .split('\n') + .map( + (line) => line.startsWith(checkBox) || line.isEmpty + ? line + : '$checkBox $line', + ) + .join('\n'); + controller.text = controller.text.replaceRange( + start, + end, + replacedRange, + ); + ContextMenuController.removeAny(); + }, + ), + ContextMenuButtonItem( + label: l10n.boldText, + onPressed: () { + final selection = controller.selection; + controller.text = controller.text.replaceRange( + selection.start, + selection.end, + '**$selectedText**', + ); + ContextMenuController.removeAny(); + }, + ), + ContextMenuButtonItem( + label: l10n.italicText, + onPressed: () { + final selection = controller.selection; + controller.text = controller.text.replaceRange( + selection.start, + selection.end, + '*$selectedText*', + ); + ContextMenuController.removeAny(); + }, + ), + ContextMenuButtonItem( + label: l10n.strikeThrough, + onPressed: () { + final selection = controller.selection; + controller.text = controller.text.replaceRange( + selection.start, + selection.end, + '~~$selectedText~~', + ); + ContextMenuController.removeAny(); + }, + ), + ], + ], + ); + } +} diff --git a/lib/utils/matrix_live_kit_calls/call_keys_event_content.dart b/lib/utils/matrix_live_kit_calls/call_keys_event_content.dart new file mode 100644 index 0000000..5b948db --- /dev/null +++ b/lib/utils/matrix_live_kit_calls/call_keys_event_content.dart @@ -0,0 +1,125 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:convert'; + +import 'package:matrix/matrix.dart'; + +class CallKeysEvent extends ToDeviceEvent { + CallKeysEvent._({ + required super.sender, + required super.type, + required super.content, + }); + + factory CallKeysEvent.fromToDeviceEvent(ToDeviceEvent event) => + CallKeysEvent._( + content: event.content, + sender: event.sender, + type: event.type, + ); + + CallKeysEventContent get callKeysContent => + CallKeysEventContent.fromJson(super.content); + + String get key => + String.fromCharCodes(base64Decode(callKeysContent.keys.key)); +} + +/// To-device event content for encryption key exchange (EncryptionKeysToDeviceEventContent). +class CallKeysEventContent { + static const String eventType = 'io.element.call.encryption_keys'; + + final CallKeysEntry keys; + final CallKeysMember member; + final String roomId; + final CallKeysSession session; + final int? sentTs; + + const CallKeysEventContent({ + required this.keys, + required this.member, + required this.roomId, + required this.session, + this.sentTs, + }); + + factory CallKeysEventContent.fromJson(Map json) => + CallKeysEventContent( + keys: CallKeysEntry.fromJson( + Map.from(json['keys'] as Map), + ), + member: CallKeysMember.fromJson( + Map.from(json['member'] as Map), + ), + roomId: json['room_id'] as String, + session: CallKeysSession.fromJson( + Map.from(json['session'] as Map), + ), + sentTs: json['sent_ts'] as int?, + ); + + Map toJson() => { + 'keys': keys.toJson(), + 'member': member.toJson(), + 'room_id': roomId, + 'session': session.toJson(), + if (sentTs != null) 'sent_ts': sentTs, + }; +} + +class CallKeysEntry { + final int index; + final String key; + + const CallKeysEntry({required this.index, required this.key}); + + factory CallKeysEntry.fromJson(Map json) => + CallKeysEntry(index: json['index'] as int, key: json['key'] as String); + + Map toJson() => {'index': index, 'key': key}; +} + +class CallKeysMember { + final String id; + final String claimedDeviceId; + + const CallKeysMember({required this.id, required this.claimedDeviceId}); + + factory CallKeysMember.fromJson(Map json) => CallKeysMember( + id: json['id'] as String, + claimedDeviceId: json['claimed_device_id'] as String, + ); + + Map toJson() => { + 'id': id, + 'claimed_device_id': claimedDeviceId, + }; +} + +class CallKeysSession { + final String application; + final String callId; + final String scope; + + const CallKeysSession({ + required this.application, + required this.callId, + required this.scope, + }); + + factory CallKeysSession.fromJson(Map json) => + CallKeysSession( + application: json['application'] as String, + callId: json['call_id'] as String, + scope: json['scope'] as String, + ); + + Map toJson() => { + 'application': application, + 'call_id': callId, + 'scope': scope, + }; +} diff --git a/lib/utils/matrix_live_kit_calls/matrix_live_kit_call.dart b/lib/utils/matrix_live_kit_calls/matrix_live_kit_call.dart new file mode 100644 index 0000000..10e2269 --- /dev/null +++ b/lib/utils/matrix_live_kit_calls/matrix_live_kit_call.dart @@ -0,0 +1,352 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:convert'; +import 'dart:typed_data'; + +import 'package:collection/collection.dart'; +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/utils/matrix_live_kit_calls/call_keys_event_content.dart'; +import 'package:tatchat/utils/matrix_live_kit_calls/matrix_live_kit_call_member.dart'; +import 'package:matrix/matrix.dart'; + +extension MatrixRtcClientExtension on Client { + Future> getLiveKitServiceUrls() async { + if (AppSettings.customLiveKitInstance.value.isNotEmpty) { + return [AppSettings.customLiveKitInstance.value]; + } + final wellKnown = await getWellknown(); + final rtcFociMap = wellKnown.additionalProperties + .tryGetMap( + 'org.matrix.msc4143.rtc_foci', + TryGet.silent, + ); // Famedly style + if (rtcFociMap != null) { + return [?rtcFociMap.tryGet('livekit_service_url')]; + } + + // TODO: Also query /_matrix/client/unstable/org.matrix.msc4143/rtc/transports + + return wellKnown.additionalProperties + .tryGetList>('org.matrix.msc4143.rtc_foci') + ?.map((foci) => foci.tryGet('livekit_service_url')) + .whereType() + .toList() ?? + []; + } + + Stream get onCallEncryptionKeys => onToDeviceEvent.stream + .where((event) => event.type == CallKeysEventContent.eventType) + .map(CallKeysEvent.fromToDeviceEvent); +} + +extension MatrixRtcRoomExtension on Room { + bool get hasActiveMatrixRtcCall => getActiveMatrixRtcMembers().isNotEmpty; + + MatrixRtcCallIntent? get activeMatrixRtcCallIntent { + final members = getActiveMatrixRtcMembers(); + if (members.isEmpty) return null; + if (members.any((member) => member.callIntent == .video)) return .video; + return .voice; + } + + bool get hasPermissionForMatrixRtcCall => + canChangeStateEvent(MatrixRtcCallMember.eventType); + + List getActiveMatrixRtcMembers() { + final states = this.states[MatrixRtcCallMember.eventType]; + if (states == null) return []; + // Empty content {} means the member has left — filter those out + final activeMemberStates = states.values.where((event) { + if (event.content.isEmpty) return false; + if (event is! Event) return false; + try { + final validContent = MatrixRtcCallMember.fromJson( + event.content, + senderId: event.senderId, + ); + if (validContent.focusActive?.type != 'livekit') return false; + final expiresAt = (validContent.createdAt ?? event.originServerTs).add( + validContent.expires, + ); + if (expiresAt.isBefore(DateTime.now())) return false; + return true; + } catch (e, s) { + Logs().d('Invalid "org.matrix.msc3401.call.member" event!', e, s); + return false; + } + }); + return activeMemberStates + .map( + (state) => MatrixRtcCallMember.fromJson( + state.content, + senderId: state.senderId, + ), + ) + .toList(); + } + + String get _ownMatrixRtcMembershipStateKey => + '_${client.userID}_${client.deviceID}_m.call'; + + MatrixRtcCallMember? get ownMatrixRtcMembership { + final state = getState( + MatrixRtcCallMember.eventType, + _ownMatrixRtcMembershipStateKey, + ); + if (state == null || state.content.isEmpty) return null; + try { + return MatrixRtcCallMember.fromJson( + state.content, + senderId: state.senderId, + ); + } catch (e, s) { + Logs().d( + 'Unknown format for ${MatrixRtcCallMember.eventType} event', + e, + s, + ); + return null; + } + } + + Future setMatrixRtcMembershipState( + List fociPreferred, { + MatrixRtcCallIntent intent = MatrixRtcCallIntent.video, + }) => client.setRoomStateWithKey( + id, + MatrixRtcCallMember.eventType, + _ownMatrixRtcMembershipStateKey, + MatrixRtcCallMember( + application: 'm.call', + callId: '', + deviceId: client.deviceID, + expires: Duration(hours: 4), + createdAt: DateTime.now(), + fociPreferred: fociPreferred, + focusActive: MatrixRtcFocusActive( + focusSelection: 'oldest_membership', + type: 'livekit', + ), + callIntent: intent, + membershipId: '${client.userID}:${client.deviceID}', + scope: 'm.room', + senderId: null, + ).toJson(), + ); + + bool participantRaisedHandInMatrixRtcCall( + String matrixId, + Timeline timeline, + ) { + final stateEvent = + states[MatrixRtcCallMember.eventType]?[_ownMatrixRtcMembershipStateKey] + as Event?; + if (stateEvent == null) return false; + final aggregatedEvents = timeline + .aggregatedEvents[stateEvent.eventId]?['m.annotation'] + ?.where( + (event) => + event.senderId == matrixId && + event.content + .tryGetMap('m.relates_to') + ?.tryGet('key') == + '🖐️', + ); + if (aggregatedEvents == null || aggregatedEvents.isEmpty) return false; + + return true; + } + + Future raiseHandInMatrixRtcCall() async { + final ownMemberStateEvent = + states[MatrixRtcCallMember.eventType]?[_ownMatrixRtcMembershipStateKey] + as Event?; + if (ownMemberStateEvent == null) return null; + return await sendReaction(ownMemberStateEvent.eventId, '🖐️'); + } + + Future lowerHandInMatrixRtcCall(Timeline timeline) async { + final ownMemberStateEvent = + states[MatrixRtcCallMember.eventType]?[_ownMatrixRtcMembershipStateKey] + as Event?; + if (ownMemberStateEvent == null) return null; + final reaction = timeline.events.firstWhereOrNull( + (event) => + event.type == EventTypes.Reaction && + event.relationshipEventId == ownMemberStateEvent.eventId && + event.senderId == client.userID && + event.status.isSent && + event.content + .tryGetMap('m.relates_to') + ?.tryGet('key') == + '🖐️', + ); + if (reaction == null) { + throw Exception('Hand raise reaction event not found!'); + } + return await reaction.redactEvent(); + } + + Future shareMatrixRtcCallKey({ + required Uint8List key, + required int index, + required String memberId, + required List deviceKeys, + }) async { + if (deviceKeys.isEmpty) { + Logs().d('No devices to share call keys with'); + return; + } + Logs().d( + 'Share call keys with', + deviceKeys.map((key) => '${key.userId}:${key.deviceId}'), + ); + + final doNotEncryptTo = deviceKeys.where((d) => !d.encryptToDevice); + if (doNotEncryptTo.isNotEmpty) { + Logs().w( + 'Not sharing keys with ${doNotEncryptTo.length} device(s) because of key sharing restrictions!', + ); + deviceKeys.removeWhere((d) => !d.encryptToDevice); + } + + await client.sendToDeviceEncrypted( + deviceKeys, + CallKeysEventContent.eventType, + CallKeysEventContent( + keys: CallKeysEntry(index: index, key: base64Encode(key)), + member: CallKeysMember(id: memberId, claimedDeviceId: client.deviceID!), + roomId: id, + sentTs: DateTime.now().millisecondsSinceEpoch, + session: CallKeysSession( + application: 'm.call', + callId: '', + scope: 'm.room', + ), + ).toJson(), + ); + } + + Future joinMatrixRtcCall({ + MatrixRtcCallIntent intent = MatrixRtcCallIntent.video, + }) async { + await postLoad(); + if (ownMatrixRtcMembership != null) { + Logs().w( + 'User has already an active rtc membership state in this room. Resetting it now...', + ); + } + Logs().d('[Join MatrixRtc Call] (1/5) Get LiveKit Backend Urls...'); + + final hasActiveMatrixRtcCall = this.hasActiveMatrixRtcCall; + + final urls = getActiveMatrixRtcMembers() + .map( + (state) => + state.fociPreferred.map((focus) => focus.livekitServiceUrl), + ) + .fold>([], (urls, foci) => [...urls, ...foci]); + + if (urls.isEmpty) { + urls.addAll(await client.getLiveKitServiceUrls()); + } + + Logs().v('Available SFUs', urls); + if (urls.isEmpty) { + throw Exception('This server does not support livekit calls!'); + } + + Logs().d( + '[Join MatrixRtc Call] (2/5) Set "${MatrixRtcCallMember.eventType}" State event...', + ); + await setMatrixRtcMembershipState( + urls + .map( + (url) => MatrixRtcFocusPreferred( + type: 'livekit', + livekitServiceUrl: url, + livekitAlias: id, + ), + ) + .toList(), + intent: intent, + ); + + if (!hasActiveMatrixRtcCall) { + final dmUserId = directChatMatrixID; + if (dmUserId != null) { + await sendRtcNotification(type: .ring, userIds: [dmUserId]); + } else { + await sendRtcNotification(type: .notification, mentionRoom: true); + } + } + + Logs().v('[Join MatrixRtc Call] (3/5) Request OpenId Token...'); + final openIdCredentials = await client.requestOpenIdToken( + client.userID!, + {}, + ); + + for (final url in urls) { + try { + Logs().d( + '[Join MatrixRtc Call] (4/5) Try authenticate to LiveKit instance $url...', + ); + final response = await client.httpClient.post( + Uri.parse('${url.replaceAll(RegExp(r'/+$'), '')}/sfu/get'), + headers: {'Content-Type': 'application/json'}, + body: jsonEncode({ + 'room': id, + 'openid_token': openIdCredentials.toJson(), + 'device_id': client.deviceID, + }), + ); + if (response.statusCode != 200) { + throw Exception(response.reasonPhrase ?? response.body); + } + final json = + jsonDecode(utf8.decode(response.bodyBytes)) as Map; + Logs().d('Use SFU', url); + return MatrixRtcCredentials.fromJson(json); + } catch (e) { + Logs().v( + '[Join MatrixRtc Call] (4/4) Unable to authenticate to $url', + e, + ); + } + } + throw Exception( + 'Unable to authenticate to any of the visible LiveKit instances!', + ); + } + + Future leaveMatrixRtcCall() async { + await client.setRoomStateWithKey( + id, + MatrixRtcCallMember.eventType, + _ownMatrixRtcMembershipStateKey, + {}, + ); + } +} + +class MatrixRtcCredentials { + final String url, jwt; + const MatrixRtcCredentials({required this.url, required this.jwt}); + factory MatrixRtcCredentials.fromJson(Map json) => + MatrixRtcCredentials( + url: json['url'] as String, + jwt: json['jwt'] as String, + ); +} + +enum MatrixRtcCallIntent { + voice(callKitType: 0), + video(callKitType: 1); + + final int callKitType; + const MatrixRtcCallIntent({required this.callKitType}); +} diff --git a/lib/utils/matrix_live_kit_calls/matrix_live_kit_call_member.dart b/lib/utils/matrix_live_kit_calls/matrix_live_kit_call_member.dart new file mode 100644 index 0000000..0b9d119 --- /dev/null +++ b/lib/utils/matrix_live_kit_calls/matrix_live_kit_call_member.dart @@ -0,0 +1,135 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:collection/collection.dart'; +import 'package:tatchat/utils/matrix_live_kit_calls/matrix_live_kit_call.dart'; +import 'package:matrix/matrix_api_lite/utils/try_get_map_extension.dart'; + +class MatrixRtcCallMember { + static const String eventType = 'org.matrix.msc3401.call.member'; + + final String application; + final String callId; + final String? deviceId; + final DateTime? createdAt; + final Duration expires; + final List fociPreferred; + final MatrixRtcFocusActive? focusActive; + final MatrixRtcCallIntent callIntent; + final String? membershipId; + final String scope; + + /// Not part of JSON content but for convenience + final String? senderId; + + const MatrixRtcCallMember({ + required this.application, + required this.callId, + required this.deviceId, + required this.expires, + required this.fociPreferred, + required this.focusActive, + required this.callIntent, + required this.membershipId, + required this.scope, + required this.createdAt, + required this.senderId, + }); + + factory MatrixRtcCallMember.fromJson( + Map json, { + required String? senderId, + }) => MatrixRtcCallMember( + application: json.tryGet('application') ?? '', + callId: json.tryGet('call_id') ?? '', + deviceId: json.tryGet('device_id'), + createdAt: json.tryGet('created_at') == null + ? null + : DateTime.fromMillisecondsSinceEpoch(json.tryGet('created_at')!), + expires: Duration(milliseconds: json.tryGet('expires') ?? 0), + fociPreferred: + (json['foci_preferred'] as List?) + ?.whereType() + .map( + (e) => MatrixRtcFocusPreferred.fromJson( + Map.from(e), + ), + ) + .toList() ?? + [], + focusActive: json['focus_active'] is Map + ? MatrixRtcFocusActive.fromJson( + Map.from(json['focus_active'] as Map), + ) + : null, + callIntent: + MatrixRtcCallIntent.values.singleWhereOrNull( + (intent) => intent.name == json.tryGet('m.call.intent'), + ) ?? + MatrixRtcCallIntent.video, + membershipId: json.tryGet('membershipID'), + scope: json.tryGet('scope') ?? 'm.room', + senderId: senderId, + ); + + Map toJson() => { + 'application': application, + 'call_id': callId, + if (deviceId != null) 'device_id': deviceId, + 'expires': expires.inMilliseconds, + 'foci_preferred': fociPreferred.map((f) => f.toJson()).toList(), + if (focusActive != null) 'focus_active': focusActive!.toJson(), + 'm.call.intent': callIntent.name, + if (membershipId != null) 'membershipID': membershipId, + 'scope': scope, + 'created_at': ?createdAt?.millisecondsSinceEpoch, + }; +} + +class MatrixRtcFocusPreferred { + final String type; + final String livekitServiceUrl; + final String livekitAlias; + + const MatrixRtcFocusPreferred({ + required this.type, + required this.livekitServiceUrl, + required this.livekitAlias, + }); + + factory MatrixRtcFocusPreferred.fromJson(Map json) => + MatrixRtcFocusPreferred( + type: json.tryGet('type') ?? '', + livekitServiceUrl: json.tryGet('livekit_service_url') ?? '', + livekitAlias: json.tryGet('livekit_alias') ?? '', + ); + + Map toJson() => { + 'type': type, + 'livekit_service_url': livekitServiceUrl, + 'livekit_alias': livekitAlias, + }; +} + +class MatrixRtcFocusActive { + final String type; + final String focusSelection; + + const MatrixRtcFocusActive({ + required this.type, + required this.focusSelection, + }); + + factory MatrixRtcFocusActive.fromJson(Map json) => + MatrixRtcFocusActive( + type: json.tryGet('type') ?? '', + focusSelection: json.tryGet('focus_selection') ?? '', + ); + + Map toJson() => { + 'type': type, + 'focus_selection': focusSelection, + }; +} diff --git a/lib/utils/matrix_sdk_extensions/device_extension.dart b/lib/utils/matrix_sdk_extensions/device_extension.dart new file mode 100644 index 0000000..4e17895 --- /dev/null +++ b/lib/utils/matrix_sdk_extensions/device_extension.dart @@ -0,0 +1,49 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:material_ui/material_ui.dart'; + +import 'package:matrix/matrix.dart'; + +IconData _getIconFromName(String displayname) { + final name = displayname.toLowerCase(); + if ({'android'}.any(name.contains)) { + return Icons.phone_android_outlined; + } + if ({'ios', 'ipad', 'iphone', 'ipod'}.any(name.contains)) { + return Icons.phone_iphone_outlined; + } + if ({ + 'web', + 'http://', + 'https://', + 'firefox', + 'chrome', + '/_matrix', + 'safari', + 'opera', + }.any(name.contains)) { + return Icons.web_outlined; + } + if ({'desktop', 'windows', 'macos', 'linux', 'ubuntu'}.any(name.contains)) { + return Icons.desktop_mac_outlined; + } + return Icons.device_unknown_outlined; +} + +extension DeviceExtension on Device { + String get displayname => + (displayName?.isNotEmpty ?? false) ? displayName! : 'Unknown device'; + + IconData get icon => _getIconFromName(displayname); +} + +extension DeviceKeysExtension on DeviceKeys { + String get displayname => (deviceDisplayName?.isNotEmpty ?? false) + ? deviceDisplayName! + : 'Unknown device'; + + IconData get icon => _getIconFromName(displayname); +} diff --git a/lib/utils/matrix_sdk_extensions/event_extension.dart b/lib/utils/matrix_sdk_extensions/event_extension.dart new file mode 100644 index 0000000..11f3c0e --- /dev/null +++ b/lib/utils/matrix_sdk_extensions/event_extension.dart @@ -0,0 +1,68 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:async/async.dart' as async; +import 'package:tatchat/utils/size_string.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:flutter/foundation.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import 'matrix_file_extension.dart'; + +extension LocalizedBody on Event { + Future> _getFile(BuildContext context) => + showFutureLoadingDialog( + context: context, + futureWithProgress: (onProgress) { + final fileSize = infoMap['size'] is int + ? infoMap['size'] as int + : null; + return downloadAndDecryptAttachment( + onDownloadProgress: fileSize == null + ? null + : (bytes) => onProgress(bytes / fileSize), + ); + }, + ); + + Future saveFile(BuildContext context) async { + final matrixFile = await _getFile(context); + if (!context.mounted) return; + + matrixFile.result?.save(context); + } + + Future shareFile(BuildContext context) async { + final matrixFile = await _getFile(context); + if (!context.mounted) return; + + matrixFile.result?.share(context); + } + + bool get isAttachmentSmallEnough => + infoMap['size'] is int && + (infoMap['size'] as int) < room.client.database.maxFileSize; + + bool get isThumbnailSmallEnough => + thumbnailInfoMap['size'] is int && + (thumbnailInfoMap['size'] as int) < room.client.database.maxFileSize; + + bool get showThumbnail => + [ + MessageTypes.Image, + MessageTypes.Sticker, + MessageTypes.Video, + ].contains(messageType) && + (kIsWeb || + isAttachmentSmallEnough || + isThumbnailSmallEnough || + (content['url'] is String)); + + String? get sizeString => content + .tryGetMap('info') + ?.tryGet('size') + ?.sizeString; +} diff --git a/lib/utils/matrix_sdk_extensions/filtered_timeline_extension.dart b/lib/utils/matrix_sdk_extensions/filtered_timeline_extension.dart new file mode 100644 index 0000000..1dd9c42 --- /dev/null +++ b/lib/utils/matrix_sdk_extensions/filtered_timeline_extension.dart @@ -0,0 +1,57 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/setting_keys.dart'; +import 'package:matrix/matrix.dart'; + +extension VisibleInGuiExtension on List { + List filterByVisibleInGui({ + String? exceptionEventId, + String? threadId, + }) => where((event) { + if (threadId != null && + event.relationshipType != RelationshipTypes.reaction) { + if ((event.relationshipType != RelationshipTypes.thread || + event.relationshipEventId != threadId) && + event.eventId != threadId) { + return false; + } + } else if (event.relationshipType == RelationshipTypes.thread) { + return false; + } + return event.isVisibleInGui || event.eventId == exceptionEventId; + }).toList(); +} + +extension IsStateExtension on Event { + bool get isVisibleInGui => + // always filter out edit and reaction relationships + !{ + RelationshipTypes.edit, + RelationshipTypes.reaction, + }.contains(relationshipType) && + // always filter out m.key.* and other known but unimportant events + !isKnownHiddenStates && + // event types to hide: redaction and reaction events + // if a reaction has been redacted we also want it to be hidden in the timeline + !{EventTypes.Reaction, EventTypes.Redaction}.contains(type) && + // if we enabled to hide all redacted events, don't show those + (!AppSettings.hideRedactedEvents.value || !redacted) && + // if we enabled to hide all unknown events, don't show those + (!AppSettings.hideUnknownEvents.value || isEventTypeKnown); + + bool get isState => !{EventTypes.Message, EventTypes.Sticker}.contains(type); + + bool get isCollapsedState => !{ + EventTypes.Message, + EventTypes.Sticker, + EventTypes.RoomCreate, + EventTypes.RoomTombstone, + }.contains(type); + + bool get isKnownHiddenStates => + {PollEventContent.responseType}.contains(type) || + type.startsWith('m.key.verification.'); +} diff --git a/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/builder.dart b/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/builder.dart new file mode 100644 index 0000000..7c29be7 --- /dev/null +++ b/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/builder.dart @@ -0,0 +1,214 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:io'; + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/client_manager.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:flutter/foundation.dart'; +import 'package:matrix/matrix.dart'; +import 'package:path/path.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:path_provider_foundation/path_provider_foundation.dart'; +import 'package:sqflite_common/utils/utils.dart' as sqflite_utils; +import 'package:sqflite_common_ffi/sqflite_ffi.dart'; +import 'package:universal_html/html.dart' as html; + +import 'cipher.dart'; + +Future flutterMatrixSdkDatabaseBuilder(String clientName) async { + try { + return await _constructDatabase(clientName); + } catch (e, s) { + Logs().wtf('Unable to construct database!', e, s); + + try { + // Send error notification: + final l10n = await lookupL10n(PlatformDispatcher.instance.locale); + // We expect that the database cannot be open on iOS 2.8.0 due to that + // the team ID has changed and te app can no longer access the database + // key in the iOS keychain. This should be removed from 2.9.0 on. + if (!PlatformInfos.isIOS) { + ClientManager.sendInitNotification(l10n.initAppError, e.toString()); + } + } catch (e, s) { + Logs().e('Unable to send error notification', e, s); + } + + // Delete database file: + if (!kIsWeb) { + final dbFile = File(await _getDatabasePath(clientName)); + if (await dbFile.exists()) await dbFile.delete(); + } + + // Try again + return await _constructDatabase(clientName); + } +} + +Future getFileStorageLocation() async { + try { + late final Directory temporaryDirectory; + if (PlatformInfos.isIOS) { + final containerPath = await PathProviderFoundation().getContainerPath( + appGroupIdentifier: 'group.im.fluffychat.app', + ); + temporaryDirectory = Directory(containerPath!); + } else if (PlatformInfos.isLinux) { + temporaryDirectory = await getApplicationCacheDirectory(); + } else { + temporaryDirectory = await getTemporaryDirectory(); + } + return await Directory( + join(temporaryDirectory.path, 'fluffychat_download_cache'), + ).create(recursive: true); + } on MissingPlatformDirectoryException catch (_) { + Logs().w( + 'No temporary directory for file cache available on this platform.', + ); + } + return null; +} + +Future _constructDatabase(String clientName) async { + if (kIsWeb) { + html.window.navigator.storage?.persist(); + return await MatrixSdkDatabase.init(clientName); + } + + final cipher = await getDatabaseCipher(); + + final fileStorageLocation = await getFileStorageLocation(); + + final path = await _getDatabasePath(clientName); + + // import the SQLite / SQLCipher shared objects / dynamic libraries + final factory = createDatabaseFactoryFfi(); + + // required for [getDatabasesPath] + databaseFactory = factory; + + // migrate from potential previous SQLite database path to current one + await _migrateLegacyLocation(path, clientName); + + // in case we got a cipher, we use the encryption helper + // to manage SQLite encryption + final helper = cipher == null + ? null + : SQfLiteEncryptionHelper(factory: factory, path: path, cipher: cipher); + + // check whether the DB is already encrypted and otherwise do so + await helper?.ensureDatabaseFileEncrypted(); + + final database = await factory.openDatabase( + path, + options: OpenDatabaseOptions( + version: 1, + // most important : apply encryption when opening the DB + onConfigure: helper?.applyPragmaKey, + ), + ); + + Logs().i('Database file size', await File(database.path).length()); + + final pageCount = sqflite_utils.firstIntValue( + await database.rawQuery('PRAGMA page_count'), + ); + final freePages = sqflite_utils.firstIntValue( + await database.rawQuery('PRAGMA freelist_count'), + ); + final pageSize = sqflite_utils.firstIntValue( + await database.rawQuery('PRAGMA page_size'), + ); + Logs().i( + 'DB pages: $pageCount total, $freePages free (~${(freePages ?? 0) * (pageSize ?? 0)} bytes wasted)', + ); + + final tables = await database.rawQuery( + "SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'", + ); + for (final t in tables) { + final name = t['name'] as String; + final c = sqflite_utils.firstIntValue( + await database.rawQuery('SELECT COUNT(*) FROM "$name"'), + ); + Logs().i('Table $name: $c rows'); + } + + await _ensureIncrementalAutoVacuum(database); + + return await MatrixSdkDatabase.init( + clientName, + database: database, + maxFileSize: 1000 * 1000 * 10, + fileStorageLocation: fileStorageLocation?.uri, + deleteFilesAfterDuration: const Duration(days: 30), + ); +} + +/// Without auto vacuum the database can never really shrink +Future _ensureIncrementalAutoVacuum(Database database) async { + const incrementalAutoVacuum = 2; + + final currentMode = sqflite_utils.firstIntValue( + await database.rawQuery('PRAGMA auto_vacuum'), + ); + + if (currentMode != incrementalAutoVacuum) { + Logs().i('Switching database to incremental auto_vacuum...'); + await database.execute('PRAGMA auto_vacuum = $incrementalAutoVacuum'); + await database.execute('VACUUM'); + return; + } + + await database.execute('PRAGMA incremental_vacuum'); +} + +Future _getDatabaseDirectory() async { + if (PlatformInfos.isIOS) { + final containerPath = await PathProviderFoundation().getContainerPath( + appGroupIdentifier: 'group.im.fluffychat.app', + ); + if (containerPath == null) { + Logs().w('No container path found for iOS app!'); + return (await getLibraryDirectory()).path; + } + return containerPath; + } + if (PlatformInfos.isMacOS) { + return (await getLibraryDirectory()).path; + } + return (await getApplicationSupportDirectory()).path; +} + +Future _getDatabasePath(String clientName) async { + final databaseDirectory = await _getDatabaseDirectory(); + + return join(databaseDirectory, '$clientName.sqlite'); +} + +Future _migrateLegacyLocation( + String sqlFilePath, + String clientName, +) async { + final oldPath = PlatformInfos.isDesktop + ? (await getApplicationSupportDirectory()).path + : PlatformInfos.isIOS + ? (await getLibraryDirectory()).path + : await getDatabasesPath(); + + final oldFilePath = join(oldPath, '$clientName.sqlite'); + if (oldFilePath == sqlFilePath) return; + + final maybeOldFile = File(oldFilePath); + if (await maybeOldFile.exists()) { + Logs().i( + 'Migrate legacy location for database from "$oldFilePath" to "$sqlFilePath"', + ); + await maybeOldFile.copy(sqlFilePath); + await maybeOldFile.delete(); + } +} diff --git a/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/cipher.dart b/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/cipher.dart new file mode 100644 index 0000000..d532aa0 --- /dev/null +++ b/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/cipher.dart @@ -0,0 +1,88 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:convert'; +import 'dart:math'; + +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/client_manager.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:matrix/matrix.dart'; + +const _passwordStorageKey = 'database_password'; + +Future getDatabaseCipher() async { + String? password; + + const iosOptions = IOSOptions(groupId: 'group.im.fluffychat.app'); + + try { + password = await FlutterSecureStorage( + iOptions: iosOptions, + ).read(key: _passwordStorageKey, iOptions: iosOptions); + if (password != null) return password; + + if (PlatformInfos.isIOS) { + final legacyPassword = await FlutterSecureStorage().read( + key: _passwordStorageKey, + ); + if (legacyPassword != null) { + Logs().i('Migrate database key location on iOS...'); + await FlutterSecureStorage().delete(key: _passwordStorageKey); + await FlutterSecureStorage(iOptions: iosOptions).write( + key: _passwordStorageKey, + value: legacyPassword, + iOptions: iosOptions, + ); + return legacyPassword; + } + } + + final rng = Random.secure(); + final list = Uint8List(32); + list.setAll(0, Iterable.generate(list.length, (i) => rng.nextInt(256))); + final newPassword = base64UrlEncode(list); + await FlutterSecureStorage( + iOptions: iosOptions, + ).write(key: _passwordStorageKey, value: newPassword, iOptions: iosOptions); + // workaround for if we just wrote to the key and it still doesn't exist + password = await FlutterSecureStorage( + iOptions: iosOptions, + ).read(key: _passwordStorageKey, iOptions: iosOptions); + if (password == null) throw MissingPluginException(); + return password; + } on MissingPluginException catch (e) { + FlutterSecureStorage( + iOptions: iosOptions, + ).delete(key: _passwordStorageKey, iOptions: iosOptions).catchError((_) {}); + Logs().w('Database encryption is not supported on this platform', e); + _sendNoEncryptionWarning(e); + } catch (e, s) { + FlutterSecureStorage( + iOptions: iosOptions, + ).delete(key: _passwordStorageKey, iOptions: iosOptions).catchError((_) {}); + Logs().w('Unable to init database encryption', e, s); + _sendNoEncryptionWarning(e); + } + return null; +} + +Future _sendNoEncryptionWarning(Object exception) async { + final isStored = AppSettings.noEncryptionWarningShown.value; + + if (isStored == true) return; + + final l10n = await lookupL10n(PlatformDispatcher.instance.locale); + ClientManager.sendInitNotification( + l10n.noDatabaseEncryption, + exception.toString(), + ); + + await AppSettings.noEncryptionWarningShown.setItem(true); +} diff --git a/lib/utils/matrix_sdk_extensions/matrix_file_extension.dart b/lib/utils/matrix_sdk_extensions/matrix_file_extension.dart new file mode 100644 index 0000000..2f03f19 --- /dev/null +++ b/lib/utils/matrix_sdk_extensions/matrix_file_extension.dart @@ -0,0 +1,70 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:file_picker/file_picker.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/size_string.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; +import 'package:share_plus/share_plus.dart'; + +extension MatrixFileExtension on MatrixFile { + Future save(BuildContext context) async { + final scaffoldMessenger = ScaffoldMessenger.of(context); + final l10n = L10n.of(context); + final downloadPath = await FilePicker.saveFile( + dialogTitle: l10n.saveFile, + fileName: name, + type: filePickerFileType, + bytes: bytes, + ); + if (downloadPath == null) return; + + scaffoldMessenger.showSnackBar( + SnackBar( + content: Text(l10n.fileHasBeenSavedAt(downloadPath.toString())), + showCloseIcon: true, + ), + ); + } + + FileType get filePickerFileType { + if (this is MatrixImageFile) return FileType.image; + if (this is MatrixAudioFile) return FileType.audio; + if (this is MatrixVideoFile) return FileType.video; + return FileType.any; + } + + Future share(BuildContext context) async { + // Workaround for iPad from + // https://github.com/fluttercommunity/plus_plugins/tree/main/packages/share_plus/share_plus#ipad + final box = context.findRenderObject() as RenderBox?; + + await SharePlus.instance.share( + ShareParams( + files: [XFile.fromData(bytes, name: name, mimeType: mimeType)], + sharePositionOrigin: box == null + ? null + : box.localToGlobal(Offset.zero) & box.size, + ), + ); + return; + } + + MatrixFile get detectFileType { + if (msgType == MessageTypes.Image) { + return MatrixImageFile(bytes: bytes, name: name); + } + if (msgType == MessageTypes.Video) { + return MatrixVideoFile(bytes: bytes, name: name); + } + if (msgType == MessageTypes.Audio) { + return MatrixAudioFile(bytes: bytes, name: name); + } + return this; + } + + String get sizeString => size.sizeString; +} diff --git a/lib/utils/matrix_sdk_extensions/matrix_locals.dart b/lib/utils/matrix_sdk_extensions/matrix_locals.dart new file mode 100644 index 0000000..79ab4c1 --- /dev/null +++ b/lib/utils/matrix_sdk_extensions/matrix_locals.dart @@ -0,0 +1,382 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:matrix/matrix.dart'; + +/// This is a temporary helper class until there is a proper solution to this with the new system +class MatrixLocals extends MatrixLocalizations { + final L10n l10n; + + MatrixLocals(this.l10n); + + @override + String acceptedTheInvitation(String targetName) { + return l10n.acceptedTheInvitation(targetName); + } + + @override + String activatedEndToEndEncryption(String senderName) { + return l10n.activatedEndToEndEncryption(senderName); + } + + @override + String answeredTheCall(String senderName) { + return l10n.answeredTheCall(senderName); + } + + @override + String get anyoneCanJoin => l10n.anyoneCanJoin; + + @override + String bannedUser(String senderName, String targetName) { + return l10n.bannedUser(senderName, targetName); + } + + @override + String changedTheChatAvatar(String senderName) { + return l10n.changedTheChatAvatar(senderName); + } + + @override + String changedTheChatDescriptionTo(String senderName, _) { + return l10n.changedTheChatDescription(senderName); + } + + @override + String changedTheChatNameTo(String senderName, _) { + return l10n.changedTheChatName(senderName); + } + + @override + String changedTheChatPermissions(String senderName) { + return l10n.changedTheChatPermissions(senderName); + } + + @override + String changedTheDisplaynameTo(String targetName, String newDisplayname) { + return l10n.changedTheDisplaynameTo(targetName, newDisplayname); + } + + @override + String changedTheGuestAccessRules(String senderName) { + return l10n.changedTheGuestAccessRules(senderName); + } + + @override + String changedTheGuestAccessRulesTo( + String senderName, + String localizedString, + ) { + return l10n.changedTheGuestAccessRulesTo(senderName, localizedString); + } + + @override + String changedTheHistoryVisibility(String senderName) { + return l10n.changedTheHistoryVisibility(senderName); + } + + @override + String changedTheHistoryVisibilityTo( + String senderName, + String localizedString, + ) { + return l10n.changedTheHistoryVisibilityTo(senderName, localizedString); + } + + @override + String changedTheJoinRules(String senderName) { + return l10n.changedTheJoinRules(senderName); + } + + @override + String changedTheJoinRulesTo(String senderName, String localizedString) { + return l10n.changedTheJoinRulesTo(senderName, localizedString); + } + + @override + String changedTheProfileAvatar(String targetName) { + return l10n.changedTheProfileAvatar(targetName); + } + + @override + String changedTheRoomAliases(String senderName) { + return l10n.changedTheRoomAliases(senderName); + } + + @override + String changedTheRoomInvitationLink(String senderName) { + return l10n.changedTheRoomInvitationLink(senderName); + } + + @override + String get channelCorruptedDecryptError => l10n.channelCorruptedDecryptError; + + @override + String couldNotDecryptMessage(String errorText) { + return l10n.couldNotDecryptMessage(errorText); + } + + @override + String createdTheChat(String senderName) { + return l10n.createdTheChat(senderName); + } + + @override + String get emptyChat => l10n.emptyChat; + + @override + String get encryptionNotEnabled => l10n.encryptionNotEnabled; + + @override + String endedTheCall(String senderName) { + return l10n.endedTheCall(senderName); + } + + @override + String get fromJoining => l10n.fromJoining; + + @override + String get fromTheInvitation => l10n.fromTheInvitation; + + @override + String groupWith(String displayname) { + return l10n.groupWith(displayname); + } + + @override + String get guestsAreForbidden => l10n.guestsAreForbidden; + + @override + String get guestsCanJoin => l10n.guestsCanJoin; + + @override + String hasWithdrawnTheInvitationFor(String senderName, String targetName) { + return l10n.hasWithdrawnTheInvitationFor(senderName, targetName); + } + + @override + String invitedUser(String senderName, String targetName) { + return l10n.invitedUser(senderName, targetName); + } + + @override + String get invitedUsersOnly => l10n.invitedUsersOnly; + + @override + String joinedTheChat(String targetName) { + return l10n.joinedTheChat(targetName); + } + + @override + String kicked(String senderName, String targetName) { + return l10n.kicked(senderName, targetName); + } + + @override + String kickedAndBanned(String senderName, String targetName) { + return l10n.kickedAndBanned(senderName, targetName); + } + + @override + String get needPantalaimonWarning => l10n.oopsSomethingWentWrong; + + @override + String get noPermission => l10n.noKeyForThisMessage; + + @override + String redactedAnEvent(Event redactedEvent) { + return l10n.redactedAnEvent( + redactedEvent.redactedBecause?.senderFromMemoryOrFallback + .calcDisplayname() ?? + l10n.user, + ); + } + + @override + String rejectedTheInvitation(String targetName) { + return l10n.rejectedTheInvitation(targetName); + } + + @override + String removedBy(Event redactedEvent) { + return l10n.redactedBy( + redactedEvent.senderFromMemoryOrFallback.calcDisplayname(), + ); + } + + @override + String get roomHasBeenUpgraded => l10n.roomHasBeenUpgraded; + + @override + String sentAFile(String senderName) { + return l10n.sentAFile(senderName); + } + + @override + String sentAPicture(String senderName) { + return l10n.sentAPicture(senderName); + } + + @override + String sentASticker(String senderName) { + return l10n.sentASticker(senderName); + } + + @override + String sentAVideo(String senderName) { + return l10n.sentAVideo(senderName); + } + + @override + String sentAnAudio(String senderName) { + return l10n.sentAnAudio(senderName); + } + + @override + String sentCallInformations(String senderName) { + return l10n.sentCallInformations(senderName); + } + + @override + String sharedTheLocation(String senderName) { + return l10n.sharedTheLocation(senderName); + } + + @override + String startedACall(String senderName) { + return l10n.startedACall(senderName); + } + + @override + String unbannedUser(String senderName, String targetName) { + return l10n.unbannedUser(senderName, targetName); + } + + @override + String get unknownEncryptionAlgorithm => l10n.unknownEncryptionAlgorithm; + + @override + String unknownEvent(String typeKey) { + return l10n.userSentUnknownEvent('User', typeKey); + } + + @override + String userLeftTheChat(String targetName) { + return l10n.userLeftTheChat(targetName); + } + + @override + String get visibleForAllParticipants => l10n.visibleForAllParticipants; + + @override + String get visibleForEveryone => l10n.visibleForEveryone; + + @override + String get you => l10n.you; + + @override + String sentReaction(String senderName, String reactionKey) => + l10n.reactedWith(senderName, reactionKey); + + @override + // TODO: implement youAcceptedTheInvitation + String get youAcceptedTheInvitation => l10n.youAcceptedTheInvitation; + + @override + String youBannedUser(String targetName) => l10n.youBannedUser(targetName); + + @override + String youHaveWithdrawnTheInvitationFor(String targetName) => + l10n.youHaveWithdrawnTheInvitationFor(targetName); + + @override + String youInvitedBy(String senderName) => l10n.youInvitedBy(senderName); + + @override + String youInvitedUser(String targetName) => l10n.youInvitedUser(targetName); + + @override + // TODO: implement youJoinedTheChat + String get youJoinedTheChat => l10n.youJoinedTheChat; + + @override + String youKicked(String targetName) => l10n.youKicked(targetName); + + @override + String youKickedAndBanned(String targetName) => + l10n.youKickedAndBanned(targetName); + + @override + // TODO: implement youRejectedTheInvitation + String get youRejectedTheInvitation => l10n.youRejectedTheInvitation; + + @override + String youUnbannedUser(String targetName) => l10n.youUnbannedUser(targetName); + + @override + String wasDirectChatDisplayName(String oldDisplayName) => + l10n.wasDirectChatDisplayName(oldDisplayName); + + @override + String get unknownUser => l10n.user; + + @override + String hasKnocked(String targetName) => l10n.hasKnocked(targetName); + + @override + String acceptedKeyVerification(String senderName) => + l10n.acceptedKeyVerification(senderName); + + @override + String canceledKeyVerification(String senderName) => + l10n.canceledKeyVerification(senderName); + + @override + String completedKeyVerification(String senderName) => + l10n.completedKeyVerification(senderName); + + @override + String isReadyForKeyVerification(String senderName) => + l10n.isReadyForKeyVerification(senderName); + + @override + String requestedKeyVerification(String senderName) => + l10n.requestedKeyVerification(senderName); + + @override + String startedKeyVerification(String senderName) => + l10n.startedKeyVerification(senderName); + + @override + String invitedBy(String senderName) => senderName; + + @override + String get cancelledSend => l10n.sendCanceled; + + @override + String voiceMessage( + String senderName, + Duration? duration, + ) => l10n.sentVoiceMessage( + senderName, + duration == null + ? '' + : '${duration.inMinutes.toString().padLeft(2, '0')}:${(duration.inSeconds % 60).toString().padLeft(2, '0')}', + ); + + @override + String get refreshingLastEvent => l10n.loadingPleaseWait; + + @override + String startedAPoll(String senderName) => '$senderName started a poll'; + + @override + String get pollHasBeenEnded => l10n.pollHasBeenEnded; + + @override + String incomingCallFrom(String senderName) => + l10n.incomingCallFrom(senderName); +} diff --git a/lib/utils/matrix_sdk_extensions/oidc_session_json_extension.dart b/lib/utils/matrix_sdk_extensions/oidc_session_json_extension.dart new file mode 100644 index 0000000..fd941f6 --- /dev/null +++ b/lib/utils/matrix_sdk_extensions/oidc_session_json_extension.dart @@ -0,0 +1,29 @@ +// 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'; + +extension OidcSessionJsonExtension on OidcLoginSession { + static const String storeKey = 'oidc_session'; + static const String homeserverStoreKey = 'oidc_stored_homeserver'; + Map toJson() => { + 'oidc_client_data': oidcClientData.toJson(), + 'authentication_uri': authenticationUri.toString(), + 'redirect_uri': redirectUri.toString(), + 'code_verifier': codeVerifier, + 'state': state, + }; + + static OidcLoginSession fromJson(Map json) => + OidcLoginSession( + oidcClientData: OidcClientData.fromJson( + json['oidc_client_data'] as Map, + ), + authenticationUri: Uri.parse(json['authentication_uri'] as String), + redirectUri: Uri.parse(json['redirect_uri'] as String), + codeVerifier: json['code_verifier'] as String, + state: json['state'] as String, + ); +} diff --git a/lib/utils/notification_avatar_extension.dart b/lib/utils/notification_avatar_extension.dart new file mode 100644 index 0000000..4b03037 --- /dev/null +++ b/lib/utils/notification_avatar_extension.dart @@ -0,0 +1,58 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:io'; +import 'dart:typed_data'; + +import 'package:tatchat/utils/client_download_content_extension.dart'; +import 'package:matrix/matrix.dart'; +import 'package:path/path.dart' as path; + +import 'matrix_sdk_extensions/flutter_matrix_dart_sdk_database/builder.dart'; + +const notificationAvatarDimension = 128; + +extension NotificationAvatarExtension on Client { + Future tryDownloadNotificationAvatar(Uri? avatar) async { + if (avatar == null) return null; + try { + return await downloadMxcCached( + avatar, + thumbnailMethod: ThumbnailMethod.crop, + width: notificationAvatarDimension, + height: notificationAvatarDimension, + animated: false, + isThumbnail: true, + rounded: true, + ).timeout(const Duration(seconds: 3)); + } catch (e, s) { + Logs().e('Unable to get avatar picture', e, s); + return null; + } + } + + /// Keep in sync with `createAttachment()` in iOS Notification Extension + /// This loads the avatar for a room and also stores it in a temporary + /// directory so the Notification Service Extension can access it later. + Future getIosNotificationAvatar(Uri? roomAvatar) async { + if (roomAvatar == null) return null; + + final directory = await getFileStorageLocation(); + if (directory == null) return null; + + final host = roomAvatar.host.replaceAll('.', '_'); + final rawPath = roomAvatar.pathSegments.join('_'); + final fileName = 'notification_${host}_$rawPath.jpg'; + final cachedFile = File(path.join(directory.path, fileName)); + + if (!await cachedFile.exists()) { + final bytes = await tryDownloadNotificationAvatar(roomAvatar); + if (bytes == null) return null; + await cachedFile.writeAsBytes(bytes); + } + + return cachedFile.path; + } +} diff --git a/lib/utils/notification_background_handler.dart b/lib/utils/notification_background_handler.dart new file mode 100644 index 0000000..24f33ec --- /dev/null +++ b/lib/utils/notification_background_handler.dart @@ -0,0 +1,214 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:convert'; +import 'dart:isolate'; +import 'dart:ui'; + +import 'package:collection/collection.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/client_manager.dart'; +import 'package:tatchat/utils/push_helper.dart'; +import 'package:flutter_local_notifications/flutter_local_notifications.dart'; +import 'package:flutter_vodozemac/flutter_vodozemac.dart' as vod; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart'; + +import '../config/app_config.dart'; +import '../config/setting_keys.dart'; + +bool _vodInitialized = false; + +extension NotificationResponseJson on NotificationResponse { + String toJsonString() => jsonEncode({ + 'type': notificationResponseType.name, + 'id': id, + 'actionId': actionId, + 'input': input, + 'payload': payload, + 'data': data, + }); + + static NotificationResponse fromJsonString(String jsonString) { + final json = jsonDecode(jsonString) as Map; + return NotificationResponse( + notificationResponseType: NotificationResponseType.values.singleWhere( + (t) => t.name == json['type'], + ), + id: json['id'] as int?, + actionId: json['actionId'] as String?, + input: json['input'] as String?, + payload: json['payload'] as String?, + data: json['data'] as Map, + ); + } +} + +Future waitForPushIsolateDone() async { + if (IsolateNameServer.lookupPortByName(AppConfig.pushIsolatePortName) != + null) { + Logs().i('Wait for Push Isolate to be done...'); + await Future.delayed(const Duration(milliseconds: 300)); + } +} + +@pragma('vm:entry-point') +Future notificationTapBackground( + NotificationResponse notificationResponse, +) async { + final sendPort = IsolateNameServer.lookupPortByName( + AppConfig.mainIsolatePortName, + ); + if (sendPort != null) { + sendPort.send(notificationResponse.toJsonString()); + Logs().i('Notification tap sent to main isolate!'); + return; + } + Logs().i( + 'Main isolate no up - Create temporary client for notification tap intend!', + ); + + final pushIsolateReceivePort = ReceivePort(); + IsolateNameServer.registerPortWithName( + pushIsolateReceivePort.sendPort, + AppConfig.pushIsolatePortName, + ); + + if (!_vodInitialized) { + await vod.init(); + _vodInitialized = true; + } + final store = await AppSettings.init(); + + final payload = FluffyChatPushPayload.fromString( + notificationResponse.payload ?? '', + ); + final clientName = payload.clientName; + final client = clientName == null + ? (await ClientManager.getClients(store: store, initialize: false)).first + : (await ClientManager.createClient(clientName, store)); + await client.abortSync(); + await client.init( + waitForFirstSync: false, + waitUntilLoadCompletedLoaded: false, + ); + + if (!client.isLogged()) { + throw Exception('Notification tab in background but not logged in!'); + } + try { + await notificationTap(notificationResponse, clients: [client]); + } finally { + await client.dispose(closeDatabase: false); + pushIsolateReceivePort.sendPort.send('DONE'); + IsolateNameServer.removePortNameMapping(AppConfig.pushIsolatePortName); + } + return; +} + +Future notificationTap( + NotificationResponse notificationResponse, { + GoRouter? router, + required List clients, + L10n? l10n, +}) async { + Logs().d( + 'Notification action handler started', + notificationResponse.notificationResponseType.name, + ); + final payload = FluffyChatPushPayload.fromString( + notificationResponse.payload ?? '', + ); + final client = + clients.firstWhereOrNull( + (client) => client.clientName == payload.clientName, + ) ?? + clients.first; + + updateSummaryNotification( + flutterLocalNotificationsPlugin: FlutterLocalNotificationsPlugin(), + clientName: client.clientName, + l10n: await lookupL10n(PlatformDispatcher.instance.locale), + ); + + switch (notificationResponse.notificationResponseType) { + case NotificationResponseType.selectedNotification: + final roomId = payload.roomId; + if (roomId == null) return; + + if (router == null) { + Logs().v('Ignore select notification action in background mode'); + return; + } + Logs().v('Open room from notification tap', roomId); + await client.roomsLoading; + await client.accountDataLoading; + if (client.getRoomById(roomId) == null) { + await client + .waitForRoomInSync(roomId) + .timeout(const Duration(seconds: 30)); + } + router.go( + client.getRoomById(roomId)?.membership == Membership.invite + ? '/rooms?client=${client.clientName}' + : '/rooms/$roomId?client=${client.clientName}', + ); + case NotificationResponseType.selectedNotificationAction: + final actionType = FluffyChatNotificationActions.values.singleWhereOrNull( + (action) => action.name == notificationResponse.actionId, + ); + if (actionType == null) { + throw Exception('Selected notification with action but no action ID'); + } + final roomId = payload.roomId; + if (roomId == null) { + throw Exception('Selected notification with action but no payload'); + } + await client.roomsLoading; + await client.accountDataLoading; + await client.userDeviceKeysLoading; + final room = client.getRoomById(roomId); + if (room == null) { + throw Exception( + 'Selected notification with action but unknown room $roomId', + ); + } + switch (actionType) { + case FluffyChatNotificationActions.markAsRead: + await room.setReadMarker( + payload.eventId ?? room.lastEvent!.eventId, + mRead: payload.eventId ?? room.lastEvent!.eventId, + public: AppSettings.sendPublicReadReceipts.value, + ); + case FluffyChatNotificationActions.reply: + final input = notificationResponse.input; + if (input == null || input.isEmpty) { + throw Exception( + 'Selected notification with reply action but without input', + ); + } + + await room.sendTextEvent( + input, + parseCommands: false, + displayPendingEvent: false, + ); + case FluffyChatNotificationActions.mute: + await room.setPushRuleState(PushRuleState.mentionsOnly); + case FluffyChatNotificationActions.open: + router?.go( + client.getRoomById(roomId)?.membership == Membership.invite + ? '/rooms?client=${client.clientName}' + : '/rooms/$roomId?client=${client.clientName}', + ); + case FluffyChatNotificationActions.enterCall: + router?.go('/rooms/$roomId?client=${client.clientName}&action=call'); + } + case NotificationResponseType.notificationDismissed: + return; + } +} + +enum FluffyChatNotificationActions { markAsRead, reply, mute, open, enterCall } diff --git a/lib/utils/other_party_can_receive.dart b/lib/utils/other_party_can_receive.dart new file mode 100644 index 0000000..2efc33f --- /dev/null +++ b/lib/utils/other_party_can_receive.dart @@ -0,0 +1,26 @@ +// 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'; + +extension OtherPartyCanReceiveExtension on Room { + bool get otherPartyCanReceiveMessages { + if (!encrypted) return true; + final users = getParticipants() + .map((u) => u.id) + .where((userId) => userId != client.userID) + .toSet(); + if (users.isEmpty) return true; + + for (final userId in users) { + if (client.userDeviceKeys[userId]?.deviceKeys.values.isNotEmpty == true) { + return true; + } + } + return false; + } +} + +class OtherPartyCanNotReceiveMessages implements Exception {} diff --git a/lib/utils/platform_infos.dart b/lib/utils/platform_infos.dart new file mode 100644 index 0000000..4b4642e --- /dev/null +++ b/lib/utils/platform_infos.dart @@ -0,0 +1,108 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:io'; + +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:flutter/foundation.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:package_info_plus/package_info_plus.dart'; +import 'package:url_launcher/url_launcher_string.dart'; + +import '../config/app_config.dart'; + +abstract class PlatformInfos { + static bool get isWeb => kIsWeb; + static bool get isLinux => !kIsWeb && Platform.isLinux; + static bool get isWindows => !kIsWeb && Platform.isWindows; + static bool get isMacOS => !kIsWeb && Platform.isMacOS; + static bool get isIOS => !kIsWeb && Platform.isIOS; + static bool get isAndroid => !kIsWeb && Platform.isAndroid; + + static bool get isCupertinoStyle => isIOS || isMacOS; + + static bool get isMobile => isAndroid || isIOS; + + /// For desktops which don't support ChachedNetworkImage yet + static bool get isBetaDesktop => isWindows || isLinux; + + static bool get isDesktop => isLinux || isWindows || isMacOS; + + static bool get usesTouchscreen => !isMobile; + + static bool get supportsVideoPlayer => + !PlatformInfos.isWindows && !PlatformInfos.isLinux; + + static bool get supportsCustomImageResizer => + PlatformInfos.isWeb || PlatformInfos.isMobile; + + /// Web could also record in theory but currently creates broken opus + static bool get platformCanRecord => (isMobile || isMacOS); + + static bool get supportsAppLock => (isMobile || isMacOS); + + static String get appDisplayName => + '${AppSettings.applicationName.value} ${isWeb ? 'web' : Platform.operatingSystem}${kReleaseMode ? '' : 'Debug'}'; + + static Future getVersion() async { + var version = kIsWeb ? 'Web' : 'Unknown'; + try { + version = (await PackageInfo.fromPlatform()).version; + } catch (_) {} + return version; + } + + static Future showDialog(BuildContext context) async { + final l10n = L10n.of(context); + final version = await PlatformInfos.getVersion(); + if (!context.mounted) return; + showAboutDialog( + context: context, + children: [ + Text(l10n.versionWithNumber(version)), + TextButton.icon( + onPressed: () => launchUrlString(AppConfig.sourceCodeUrl), + icon: const Icon(Icons.source_outlined), + label: Text(l10n.sourceCode), + ), + Builder( + builder: (innerContext) { + return TextButton.icon( + onPressed: () { + context.go('/logs'); + Navigator.of(innerContext).pop(); + }, + icon: const Icon(Icons.list_outlined), + label: Text(l10n.logs), + ); + }, + ), + Builder( + builder: (innerContext) { + return TextButton.icon( + onPressed: () { + context.go('/configs'); + Navigator.of(innerContext).pop(); + }, + icon: const Icon(Icons.settings_applications_outlined), + label: Text(l10n.advancedConfigs), + ); + }, + ), + ], + applicationIcon: ClipRRect( + borderRadius: BorderRadius.circular(64), + child: Image.asset( + './assets/logo/mini/logo_mini.png', + width: 64, + height: 64, + ), + ), + applicationName: AppSettings.applicationName.value, + ); + } +} diff --git a/lib/utils/position_from_build_context.dart b/lib/utils/position_from_build_context.dart new file mode 100644 index 0000000..540ad3f --- /dev/null +++ b/lib/utils/position_from_build_context.dart @@ -0,0 +1,25 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:flutter/widgets.dart'; + +extension PositionFromBuildContext on BuildContext { + RelativeRect get position { + final overlay = Overlay.of(this).context.findRenderObject() as RenderBox; + + final button = findRenderObject() as RenderBox; + + return RelativeRect.fromRect( + Rect.fromPoints( + button.localToGlobal(const Offset(0, -65), ancestor: overlay), + button.localToGlobal( + button.size.bottomRight(Offset.zero) + const Offset(-50, 0), + ancestor: overlay, + ), + ), + Offset.zero & overlay.size, + ); + } +} diff --git a/lib/utils/push_helper.dart b/lib/utils/push_helper.dart new file mode 100644 index 0000000..0435322 --- /dev/null +++ b/lib/utils/push_helper.dart @@ -0,0 +1,547 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; +import 'dart:convert'; +import 'dart:io'; +import 'dart:ui'; + +import 'package:collection/collection.dart'; +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/call_kit_params.dart'; +import 'package:tatchat/utils/client_manager.dart'; +import 'package:tatchat/utils/matrix_live_kit_calls/matrix_live_kit_call.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:tatchat/utils/notification_avatar_extension.dart'; +import 'package:tatchat/utils/notification_background_handler.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/utils/start_push_foreground_service.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter_callkit_incoming/flutter_callkit_incoming.dart'; +import 'package:flutter_local_notifications/flutter_local_notifications.dart'; +import 'package:flutter_new_badger/flutter_new_badger.dart'; +import 'package:flutter_shortcuts_new/flutter_shortcuts_new.dart'; +import 'package:http/http.dart' as http; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart' hide Result; +import 'package:shared_preferences/shared_preferences.dart'; + +final Map lastReceivedPushNotification = {}; + +Future pushHelper( + PushNotification notification, { + List? clients, + L10n? l10n, + String? activeRoomId, + required FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin, +}) async { + l10n ??= await lookupL10n(PlatformDispatcher.instance.locale); + + try { + await _tryPushHelper( + notification, + clients: clients, + l10n: l10n, + activeRoomId: activeRoomId, + flutterLocalNotificationsPlugin: flutterLocalNotificationsPlugin, + ).timeout(const Duration(seconds: 30)); + } catch (e, s) { + if (PlatformInfos.isAndroid && + e is! TimeoutException && + e is! IOException && + e is! http.ClientException) { + Logs().e('Push Helper has crashed! Writing into temporary file...', e, s); + final store = await SharedPreferences.getInstance(); + await store.setStringList(AppConfig.pushHelperCrashReportKey, [ + e.toString(), + s.toString(), + ]); + } + + if (notification.roomId != null) { + await flutterLocalNotificationsPlugin.show( + id: notification.notificationId, + title: l10n.newMessageInFluffyChat, + body: l10n.openAppToReadMessages, + notificationDetails: NotificationDetails( + iOS: DarwinNotificationDetails( + threadIdentifier: + '${notification.clientName}_${notification.roomId}', + ), + android: AndroidNotificationDetails( + AppConfig.pushNotificationsChannelId, + l10n.incomingMessages, + number: notification.counts?.unread, + ticker: l10n.unreadChatsInApp( + AppSettings.applicationName.value, + (notification.counts?.unread ?? 0).toString(), + ), + importance: Importance.high, + priority: Priority.max, + shortcutId: notification.roomId, + category: AndroidNotificationCategory.message, + groupKey: notification.clientName, + ), + ), + ); + } + rethrow; + } finally { + ForegroundServices.stopService('background_push'); + } +} + +Future _tryPushHelper( + PushNotification notification, { + List? clients, + L10n? l10n, + String? activeRoomId, + required FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin, +}) async { + final isBackgroundMessage = clients == null; + Logs().v( + 'Push helper has been started (background=$isBackgroundMessage).', + notification.toJson(), + ); + + final clientName = notification.clientName; + final store = await AppSettings.init(); + + final client = clientName == null + ? (clients?.first ?? + (await ClientManager.getClients( + initialize: false, + store: store, + )).first) + : (clients?.firstWhereOrNull( + (client) => client.clientName == clientName, + ) ?? + await ClientManager.createClient(clientName, store)); + + lastReceivedPushNotification[client.clientName] = DateTime.now(); + + l10n ??= await L10n.delegate.load(PlatformDispatcher.instance.locale); + + Logs().v('Load event...'); + final event = await client.getEventByPushNotification( + notification, + storeInDatabase: false, + ); + + updateAppBadge(notification.counts?.unread ?? 0); + + if (event == null) { + Logs().v('Notification is a clearing indicator.'); + if (clients?.length == 1 && (notification.counts?.unread == 0)) { + await flutterLocalNotificationsPlugin.cancelAll(); + } else { + // Make sure client is fully loaded and synced before dismiss notifications: + await client.roomsLoading; + await client + .oneShotSync() + .timeout(const Duration(seconds: 8)) + .catchError((_) => null); + + final activeNotifications = await flutterLocalNotificationsPlugin + .getActiveNotifications(); + activeNotifications.removeWhere( + (notification) => notification.groupKey != client.clientName, + ); + var needsUpdateForSummaryNotification = false; + for (final activeNotification in activeNotifications) { + final room = client.rooms.singleWhereOrNull( + (room) => + '${client.clientName}_${room.id}'.hashCode == + activeNotification.id, + ); + if (room != null && !room.isUnreadOrInvited) { + flutterLocalNotificationsPlugin.cancel(id: activeNotification.id!); + if (PlatformInfos.isAndroid) needsUpdateForSummaryNotification = true; + } + } + if (needsUpdateForSummaryNotification) { + await updateSummaryNotification( + clientName: client.clientName, + l10n: l10n, + flutterLocalNotificationsPlugin: flutterLocalNotificationsPlugin, + ); + } + } + return; + } + + Logs().v('Push helper got notification event of type ${event.type}.'); + + if (!client.pushruleEvaluator.match(event).notify) { + Logs().i('Push helper: filtered by client-side push rules.'); + return; + } + + if (event.type == RtcNotificationContent.eventType && + event.tryParseRtcNotificationContent()?.notificationType == .ring && + PlatformInfos.isMobile) { + _showIncomingCall(event, l10n); + return; + } + + if (notification.roomId != null && + activeRoomId == notification.roomId && + WidgetsBinding.instance.lifecycleState == AppLifecycleState.resumed) { + Logs().v('Room is in foreground. Stop push helper here.'); + return; + } + + final matrixLocals = MatrixLocals(l10n); + + // Calculate the body + final body = event.type == EventTypes.Encrypted + ? l10n.newMessageInFluffyChat + : await event.calcLocalizedBody( + matrixLocals, + plaintextBody: true, + withSenderNamePrefix: false, + hideReply: true, + hideEdit: true, + removeMarkdown: true, + ); + + // The person object for the android message style notification + final avatar = event.room.avatar; + final senderAvatar = event.room.isDirectChat + ? avatar + : event.senderFromMemoryOrFallback.avatarUrl; + + final ownUser = event.room.unsafeGetUserFromMemoryOrFallback(client.userID!); + + final userAvatarFile = await client.tryDownloadNotificationAvatar( + ownUser.avatarUrl, + ); + final roomAvatarFile = await client.tryDownloadNotificationAvatar(avatar); + final senderAvatarFile = await client.tryDownloadNotificationAvatar( + senderAvatar, + ); + + final id = '${client.clientName}_${notification.roomId}'.hashCode; + + final senderName = event.senderFromMemoryOrFallback.calcDisplayname(); + // Show notification + + final newMessage = Message( + body, + event.originServerTs, + Person( + bot: event.messageType == MessageTypes.Notice, + key: event.senderId, + name: senderName, + icon: senderAvatarFile == null + ? null + : ByteArrayAndroidIcon(senderAvatarFile), + ), + ); + + final messagingStyleInformation = PlatformInfos.isAndroid + ? await AndroidFlutterLocalNotificationsPlugin() + .getActiveNotificationMessagingStyle(id: id) + : null; + messagingStyleInformation?.messages?.add(newMessage); + + final roomName = event.room.getLocalizedDisplayname(MatrixLocals(l10n)); + + final notificationGroupId = event.room.isDirectChat + ? 'directChats' + : 'groupChats'; + final groupName = event.room.isDirectChat ? l10n.directChats : l10n.groups; + + final messageRooms = AndroidNotificationChannelGroup( + notificationGroupId, + groupName, + ); + final roomsChannel = AndroidNotificationChannel( + event.room.id, + roomName, + groupId: notificationGroupId, + ); + + await flutterLocalNotificationsPlugin + .resolvePlatformSpecificImplementation< + AndroidFlutterLocalNotificationsPlugin + >() + ?.createNotificationChannelGroup(messageRooms); + await flutterLocalNotificationsPlugin + .resolvePlatformSpecificImplementation< + AndroidFlutterLocalNotificationsPlugin + >() + ?.createNotificationChannel(roomsChannel); + + final androidPlatformChannelSpecifics = AndroidNotificationDetails( + AppConfig.pushNotificationsChannelId, + l10n.incomingMessages, + number: notification.counts?.unread, + category: AndroidNotificationCategory.message, + shortcutId: event.room.id, + styleInformation: + messagingStyleInformation ?? + MessagingStyleInformation( + Person( + name: ownUser.calcDisplayname(), + icon: userAvatarFile == null + ? null + : ByteArrayAndroidIcon(userAvatarFile), + key: event.room.client.userID, + ), + conversationTitle: event.room.isDirectChat ? null : roomName, + groupConversation: !event.room.isDirectChat, + messages: [newMessage], + ), + ticker: event.calcLocalizedBodyFallback( + matrixLocals, + plaintextBody: true, + withSenderNamePrefix: !event.room.isDirectChat, + hideReply: true, + hideEdit: true, + removeMarkdown: true, + ), + importance: Importance.high, + priority: Priority.max, + groupKey: client.clientName, + actions: switch (event.type) { + EventTypes.Message || + EventTypes.Encrypted || + EventTypes.Sticker => [ + AndroidNotificationAction( + FluffyChatNotificationActions.reply.name, + l10n.reply, + inputs: [AndroidNotificationActionInput(label: l10n.writeAMessage)], + allowGeneratedReplies: true, + semanticAction: SemanticAction.reply, + ), + AndroidNotificationAction( + FluffyChatNotificationActions.markAsRead.name, + l10n.markAsRead, + semanticAction: SemanticAction.markAsRead, + ), + AndroidNotificationAction( + FluffyChatNotificationActions.mute.name, + l10n.mute, + semanticAction: SemanticAction.mute, + ), + ], + RtcNotificationContent.eventType => [ + AndroidNotificationAction( + FluffyChatNotificationActions.enterCall.name, + l10n.enterCall, + semanticAction: SemanticAction.call, + ), + ], + _ => null, + }, + ); + final iOSAttachmentPath = PlatformInfos.isIOS + ? await client.getIosNotificationAvatar(event.room.avatar) + : null; + final iOSPlatformChannelSpecifics = DarwinNotificationDetails( + threadIdentifier: '${notification.clientName}_${notification.roomId}', + attachments: iOSAttachmentPath == null + ? null + : [ + DarwinNotificationAttachment( + iOSAttachmentPath, + identifier: 'image', + ), + ], + ); + final platformChannelSpecifics = NotificationDetails( + android: androidPlatformChannelSpecifics, + iOS: iOSPlatformChannelSpecifics, + ); + + final title = event.room.getLocalizedDisplayname(MatrixLocals(l10n)); + + if (PlatformInfos.isAndroid && messagingStyleInformation == null) { + await _setShortcut(event, l10n, title, roomAvatarFile); + } + + final needsTitleAndBody = !PlatformInfos.isAndroid; + + await flutterLocalNotificationsPlugin.show( + id: notification.notificationId, + title: needsTitleAndBody ? title : null, + body: needsTitleAndBody ? body : null, + notificationDetails: platformChannelSpecifics, + payload: FluffyChatPushPayload( + client.clientName, + event.room.id, + event.eventId, + ).toString(), + ); + + // Send summary notification on Android + if (PlatformInfos.isAndroid) { + await updateSummaryNotification( + clientName: client.clientName, + l10n: l10n, + flutterLocalNotificationsPlugin: flutterLocalNotificationsPlugin, + ); + } + Logs().v('Push helper has been completed!'); +} + +void updateAppBadge(int unreadCount) { + if (PlatformInfos.isAndroid || PlatformInfos.isMacOS || PlatformInfos.isIOS) { + if (unreadCount == 0) { + FlutterNewBadger.removeBadge(); + } else { + FlutterNewBadger.setBadge(unreadCount); + } + return; + } +} + +Future updateSummaryNotification({ + required FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin, + required String clientName, + required L10n l10n, +}) async { + final activeNotifications = + (await flutterLocalNotificationsPlugin.getActiveNotifications()) + .where((n) => n.groupKey == clientName) + .toList(); + + if (activeNotifications.length <= 1) { + await flutterLocalNotificationsPlugin.cancel(id: clientName.hashCode); + return; + } + + if (activeNotifications.any( + (notification) => notification.id == clientName.hashCode, + )) { + // Already have a visible summary notification! + return; + } + + await flutterLocalNotificationsPlugin.show( + id: clientName.hashCode, + notificationDetails: NotificationDetails( + android: AndroidNotificationDetails( + AppConfig.pushNotificationsChannelId, + l10n.incomingMessages, + groupKey: clientName, + setAsGroupSummary: true, + styleInformation: InboxStyleInformation( + activeNotifications.map((n) => n.body ?? '').toList(), + ), + autoCancel: false, + ), + ), + ); +} + +class FluffyChatPushPayload { + final String? clientName, roomId, eventId; + + FluffyChatPushPayload(this.clientName, this.roomId, this.eventId); + + factory FluffyChatPushPayload.fromString(String payload) { + final parts = payload.split('|'); + if (parts.length != 3) { + return FluffyChatPushPayload(null, null, null); + } + return FluffyChatPushPayload(parts.first, parts[1], parts[2]); + } + + @override + String toString() => '$clientName|$roomId|$eventId'; +} + +/// Creates a shortcut for Android platform but does not block displaying the +/// notification. This is optional but provides a nicer view of the +/// notification popup. +Future _setShortcut( + Event event, + L10n l10n, + String title, + Uint8List? avatarFile, +) async { + final flutterShortcuts = FlutterShortcuts(); + await flutterShortcuts.initialize(debug: !kReleaseMode); + await flutterShortcuts.pushShortcutItem( + shortcut: ShortcutItem( + id: event.room.id, + action: AppConfig.inviteLinkPrefix + event.room.id, + shortLabel: title, + conversationShortcut: true, + icon: avatarFile == null ? null : base64Encode(avatarFile), + shortcutIconAsset: avatarFile == null + ? ShortcutIconAsset.androidAsset + : ShortcutIconAsset.memoryAsset, + isImportant: event.room.isFavourite, + ), + ); +} + +extension on PushNotification { + String? get clientName => + devices?.firstOrNull?.data?.tryGet('client_name'); + int get notificationId { + final roomId = this.roomId; + if (roomId == null) return 0; + final clientName = this.clientName; + if (clientName == null) return roomId.hashCode; + return '${clientName}_$roomId'.hashCode; + } +} + +Future _showIncomingCall(Event event, L10n l10n) async { + final callId = '${event.room.id}|${event.room.client.clientName}'; + final activeCalls = await FlutterCallkitIncoming.activeCalls(); + if (activeCalls.any((call) => call.id == callId)) { + Logs().d( + 'Call with this ID is already active. Ignoring this Push Notification...', + callId, + ); + return; + } + final intentStr = event.content.tryGet('m.call.intent'); + final intent = + MatrixRtcCallIntent.values.singleWhereOrNull( + (i) => i.name == intentStr, + ) ?? + .video; + final timeout = + event.tryParseRtcNotificationContent()?.lifetime ?? + RtcNotificationContent.defaultLifetime; + final params = await buildFluffyChatCallKitParams( + event.room, + l10n: l10n, + intent: intent, + timeout: timeout, + ); + final timeoutDateTime = DateTime.now().add(timeout); + await FlutterCallkitIncoming.showCallkitIncoming(params); + + while (DateTime.now().isBefore(timeoutDateTime)) { + await event.room.client.oneShotSync(); + if (!event.room.hasActiveMatrixRtcCall) { + Logs().i('The other party has ended the call'); + await FlutterCallkitIncoming.endCall(params.id); + break; + } + if (event.room.ownMatrixRtcMembership != null) { + Logs().d('User has joined the call.'); + break; + } + if (event.room.getActiveMatrixRtcMembers().any( + (member) => + member.senderId == event.room.client.userID! && + member.deviceId != event.room.client.deviceID!, + )) { + Logs().i('User has accepted the call on a different device'); + await FlutterCallkitIncoming.endCall(params.id); + break; + } + } +} diff --git a/lib/utils/resize_video.dart b/lib/utils/resize_video.dart new file mode 100644 index 0000000..79a616b --- /dev/null +++ b/lib/utils/resize_video.dart @@ -0,0 +1,65 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:cross_file/cross_file.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:light_compressor_v2/light_compressor_v2.dart'; +import 'package:matrix/matrix.dart'; +import 'package:mime/mime.dart'; + +extension ResizeImage on XFile { + Future getVideoInfo({bool compress = true}) async { + MediaInfo? mediaInfo; + String? destinationPath; + try { + if (PlatformInfos.isMobile || PlatformInfos.isMacOS) { + final result = await LightCompressor().compressVideo( + path: path, + videoQuality: VideoQuality.medium, + android: AndroidConfig(isSharedStorage: false), + ios: IOSConfig(saveInGallery: false), + video: Video(videoName: name, targetSizeMb: 5), + ); + if (result is OnFailure) { + throw result.message; + } + if (result is OnSuccess) { + destinationPath = result.destinationPath; + } + if (destinationPath != null) { + mediaInfo = await LightCompressor().getMediaInfo(destinationPath); + } + } + } catch (e, s) { + Logs().w('Error while fetching video media info', e, s); + } + + return MatrixVideoFile( + bytes: destinationPath != null + ? await XFile(destinationPath).readAsBytes() + : await readAsBytes(), + name: name, + mimeType: destinationPath != null + ? lookupMimeType(destinationPath) + : mimeType, + width: mediaInfo?.width, + height: mediaInfo?.height, + duration: mediaInfo?.duration?.inMilliseconds, + ); + } + + Future getVideoThumbnail() async { + if (!PlatformInfos.isMobile) return null; + + try { + final thumbnailPath = await LightCompressor().getVideoThumbnail(path); + final bytes = await XFile(thumbnailPath).readAsBytes(); + return MatrixImageFile(bytes: bytes, name: name); + } catch (e, s) { + Logs().w('Error while compressing video', e, s); + } + return null; + } +} diff --git a/lib/utils/room_status_extension.dart b/lib/utils/room_status_extension.dart new file mode 100644 index 0000000..a6f4bec --- /dev/null +++ b/lib/utils/room_status_extension.dart @@ -0,0 +1,62 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:flutter/widgets.dart'; +import 'package:matrix/matrix.dart'; + +import '../config/app_config.dart'; + +extension RoomStatusExtension on Room { + String getLocalizedTypingText(BuildContext context) { + var typingText = ''; + final typingUsers = this.typingUsers; + typingUsers.removeWhere((User u) => u.id == client.userID); + + if (AppConfig.hideTypingUsernames) { + typingText = L10n.of(context).isTyping; + if (typingUsers.first.id != directChatMatrixID) { + typingText = L10n.of(context).numUsersTyping(typingUsers.length); + } + } else if (typingUsers.length == 1) { + typingText = L10n.of(context).isTyping; + if (typingUsers.first.id != directChatMatrixID) { + typingText = L10n.of( + context, + ).userIsTyping(typingUsers.first.calcDisplayname()); + } + } else if (typingUsers.length == 2) { + typingText = L10n.of(context).userAndUserAreTyping( + typingUsers.first.calcDisplayname(), + typingUsers[1].calcDisplayname(), + ); + } else if (typingUsers.length > 2) { + typingText = L10n.of(context).userAndOthersAreTyping( + typingUsers.first.calcDisplayname(), + (typingUsers.length - 1), + ); + } + return typingText; + } + + List getSeenByUsers(Timeline timeline, {String? eventId}) { + if (timeline.events.isEmpty) return []; + eventId ??= timeline.events.first.eventId; + + final lastReceipts = {}; + // now we iterate the timeline events until we hit the first rendered event + for (final event in timeline.events) { + lastReceipts.addAll(event.receipts.map((r) => r.user)); + if (event.eventId == eventId) { + break; + } + } + lastReceipts.removeWhere( + (user) => + user.id == client.userID || user.id == timeline.events.first.senderId, + ); + return lastReceipts.toList(); + } +} diff --git a/lib/utils/show_scaffold_dialog.dart b/lib/utils/show_scaffold_dialog.dart new file mode 100644 index 0000000..61ea702 --- /dev/null +++ b/lib/utils/show_scaffold_dialog.dart @@ -0,0 +1,38 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:material_ui/material_ui.dart'; + +Future showScaffoldDialog({ + required BuildContext context, + Color? barrierColor, + Color? containerColor, + double maxWidth = 480, + double maxHeight = 720, + required Widget Function(BuildContext context) builder, +}) => showDialog( + context: context, + useSafeArea: false, + builder: FluffyThemes.isColumnMode(context) + ? (context) => Center( + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(AppConfig.borderRadius), + color: + containerColor ?? Theme.of(context).scaffoldBackgroundColor, + ), + clipBehavior: Clip.hardEdge, + margin: const EdgeInsets.all(16), + constraints: BoxConstraints( + maxWidth: maxWidth, + maxHeight: maxHeight, + ), + child: builder(context), + ), + ) + : builder, +); diff --git a/lib/utils/show_update_snackbar.dart b/lib/utils/show_update_snackbar.dart new file mode 100644 index 0000000..3d86ef9 --- /dev/null +++ b/lib/utils/show_update_snackbar.dart @@ -0,0 +1,73 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/adaptive_dialog_action.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:url_launcher/url_launcher_string.dart'; + +abstract class UpdateNotifier { + static const String versionStoreKey = 'last_known_version'; + + static Future showUpdateDialog(BuildContext context) async { + final l10n = L10n.of(context); + final currentVersion = await PlatformInfos.getVersion(); + final store = await SharedPreferences.getInstance(); + final storedVersion = store.getString(versionStoreKey); + if (!context.mounted) return; + + if (currentVersion != storedVersion) { + if (storedVersion != null) { + showAdaptiveDialog( + barrierDismissible: true, + context: context, + builder: (context) => AlertDialog.adaptive( + title: Text( + l10n.updateInstalled(currentVersion), + style: TextStyle(fontWeight: FontWeight.bold), + ), + content: Text(l10n.possibleByYou), + actions: [ + AdaptiveDialogAction( + bigButtons: true, + onPressed: () => launchUrlString(AppConfig.helpUrl), + child: Row( + mainAxisSize: .min, + spacing: 4, + children: [ + Icon( + Icons.favorite, + color: Theme.of(context).colorScheme.error, + ), + Text( + l10n.support, + style: TextStyle( + color: Theme.of(context).colorScheme.error, + ), + ), + ], + ), + ), + AdaptiveDialogAction( + bigButtons: true, + onPressed: () => launchUrlString(AppConfig.changelogUrl), + child: Text(l10n.changelog), + ), + AdaptiveDialogAction( + bigButtons: true, + onPressed: () => Navigator.of(context).pop(), + child: Text(l10n.close), + ), + ], + ), + ); + } + await store.setString(versionStoreKey, currentVersion); + } + } +} diff --git a/lib/utils/sign_in_flows/calc_redirect_url.dart b/lib/utils/sign_in_flows/calc_redirect_url.dart new file mode 100644 index 0000000..a6c5075 --- /dev/null +++ b/lib/utils/sign_in_flows/calc_redirect_url.dart @@ -0,0 +1,30 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:flutter/foundation.dart'; +import 'package:universal_html/html.dart' as html; + +(Uri redirectUrl, String urlScheme) calcRedirectUrl({ + bool withAuthHtmlPath = false, +}) { + var redirectUrl = kIsWeb + ? Uri.parse(html.window.location.href.split('#').first.split('?').first) + : (PlatformInfos.isMobile || PlatformInfos.isMacOS) + ? Uri.parse('${AppConfig.appSsoUrlScheme.toLowerCase()}:/login') + : Uri.parse('http://localhost:3001/login'); + + if (kIsWeb && withAuthHtmlPath) { + redirectUrl = redirectUrl.resolveUri(Uri(pathSegments: ['auth.html'])); + } + + final urlScheme = + (PlatformInfos.isMobile || PlatformInfos.isWeb || PlatformInfos.isMacOS) + ? redirectUrl.scheme + : 'http://localhost:3001'; + + return (redirectUrl, urlScheme); +} diff --git a/lib/utils/sign_in_flows/check_homeserver.dart b/lib/utils/sign_in_flows/check_homeserver.dart new file mode 100644 index 0000000..acd9544 --- /dev/null +++ b/lib/utils/sign_in_flows/check_homeserver.dart @@ -0,0 +1,104 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/pages/sign_in/view_model/model/public_homeserver_data.dart'; +import 'package:tatchat/utils/localized_exception_extension.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/utils/sign_in_flows/oidc_login.dart'; +import 'package:tatchat/utils/sign_in_flows/sso_login.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:flutter/foundation.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; +import 'package:url_launcher/url_launcher_string.dart'; + +Future connectToHomeserverFlow( + PublicHomeserverData homeserverData, + BuildContext context, + void Function(AsyncSnapshot) setState, + bool signUp, +) async { + setState(AsyncSnapshot.waiting()); + try { + final homeserverInput = homeserverData.name!; + var homeserver = Uri.parse(homeserverInput); + if (homeserver.scheme.isEmpty) { + homeserver = Uri.https(homeserverInput, ''); + } + final l10n = L10n.of(context); + final client = await Matrix.of(context).getLoginClient(); + final (_, _, loginFlows, authMetadata) = await client.checkHomeserver( + homeserver, + fetchAuthMetadata: true, + ); + + final regLink = homeserverData.regLink; + final supportsSso = loginFlows.any((flow) => flow.type == 'm.login.sso'); + + if ((kIsWeb || PlatformInfos.isLinux) && + (supportsSso || authMetadata != null || (signUp && regLink != null))) { + if (!context.mounted) return; + final consent = await showOkCancelAlertDialog( + context: context, + title: l10n.appWantsToUseForLogin(homeserverInput), + message: l10n.appWantsToUseForLoginDescription, + okLabel: l10n.continueText, + ); + if (consent != OkCancelResult.ok) return; + if (!context.mounted) return; + } + if (!context.mounted) return; + + if (authMetadata != null && AppSettings.enableMatrixNativeOIDC.value) { + await oidcLoginFlow(client, context, signUp); + } else if (supportsSso) { + await ssoLoginFlow(client, context, signUp, loginFlows); + } else { + final segments = GoRouter.of(context) + .routeInformationProvider + .value + .uri + .pathSegments; + final location = + segments.length >= 3 && + segments[0] == 'rooms' && + segments[1] == 'settings' + ? '/rooms/settings/addaccount' + : '/home'; + if (signUp && regLink != null) { + await launchUrlString(regLink); + if (!context.mounted) return; + } + context.go( + '$location/${signUp && regLink == null ? 'register' : 'login'}', + extra: client, + ); + setState(AsyncSnapshot.withData(ConnectionState.done, true)); + return; + } + + await AppSettings.defaultHomeserver.setItem(homeserverInput); + + if (context.mounted) { + setState(AsyncSnapshot.withData(ConnectionState.done, true)); + context.go('/backup'); + } + } catch (e, s) { + Logs().w('Unable to login', e, s); + setState(AsyncSnapshot.withError(ConnectionState.done, e, s)); + if (!context.mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + e.toLocalizedString(context, ExceptionContext.checkHomeserver), + ), + ), + ); + } +} diff --git a/lib/utils/sign_in_flows/oidc_login.dart b/lib/utils/sign_in_flows/oidc_login.dart new file mode 100644 index 0000000..8ccd41c --- /dev/null +++ b/lib/utils/sign_in_flows/oidc_login.dart @@ -0,0 +1,92 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:convert'; + +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/oidc_session_json_extension.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/utils/sign_in_flows/calc_redirect_url.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter_web_auth_2/flutter_web_auth_2.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +Future oidcLoginFlow( + Client client, + BuildContext context, + bool signUp, +) async { + Logs().i('Starting Matrix Native OIDC Flow...'); + + final (redirectUrl, urlScheme) = calcRedirectUrl(); + + final clientUri = Uri.parse(AppSettings.website.value); + final supportWebPlatform = + kIsWeb && + kReleaseMode && + redirectUrl.scheme == 'https' && + redirectUrl.host.contains(clientUri.host); + if (kIsWeb && !supportWebPlatform) { + Logs().w( + 'OIDC Application Type web is not supported. Using native now. Please use this instance not in production!', + ); + } + + final oidcClientData = await client.registerOidcClient( + redirectUris: [redirectUrl], + applicationType: supportWebPlatform + ? OidcApplicationType.web + : OidcApplicationType.native, + clientInformation: OidcClientInformation( + clientName: AppSettings.applicationName.value, + clientUri: clientUri, + logoUri: Uri.parse(AppSettings.logoUrl.value), + tosUri: Uri.parse(AppSettings.tos.value), + policyUri: Uri.parse(AppSettings.privacyPolicy.value), + ), + ); + + final session = await client.initOidcLoginSession( + oidcClientData: oidcClientData, + redirectUri: redirectUrl, + prompt: signUp ? 'create' : null, + ); + + if (!context.mounted) return; + + if (kIsWeb) { + final store = await SharedPreferences.getInstance(); + store.setString( + OidcSessionJsonExtension.homeserverStoreKey, + client.homeserver!.toString(), + ); + store.setString( + OidcSessionJsonExtension.storeKey, + jsonEncode(session.toJson()), + ); + } + + final returnUrlString = await FlutterWebAuth2.authenticate( + url: session.authenticationUri.toString(), + callbackUrlScheme: urlScheme, + options: FlutterWebAuth2Options( + useWebview: PlatformInfos.isMobile, + windowName: '_self', + ), + ); + if (kIsWeb) return; // On Web we return at intro page when app starts again! + + final returnUrl = Uri.parse(returnUrlString); + final queryParameters = returnUrl.fragment.isNotEmpty + ? Uri.parse(returnUrl.fragment).queryParameters + : returnUrl.queryParameters; + + final code = queryParameters['code'] as String; + final state = queryParameters['state'] as String; + + await client.oidcLogin(session: session, code: code, state: state); +} diff --git a/lib/utils/sign_in_flows/sso_login.dart b/lib/utils/sign_in_flows/sso_login.dart new file mode 100644 index 0000000..cc1685a --- /dev/null +++ b/lib/utils/sign_in_flows/sso_login.dart @@ -0,0 +1,74 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/utils/sign_in_flows/calc_redirect_url.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_modal_action_popup.dart'; +import 'package:flutter_web_auth_2/flutter_web_auth_2.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +Future ssoLoginFlow( + Client client, + BuildContext context, + bool signUp, + List loginFlows, +) async { + final (redirectUrl, urlScheme) = calcRedirectUrl(withAuthHtmlPath: true); + + Logs().i('Starting legacy SSO Flow with redirect URL', redirectUrl); + + final ssoProviders = + (loginFlows + .firstWhere((flow) => flow.type == 'm.login.sso') + .additionalProperties['identity_providers'] + as List?) + ?.map( + (json) => ( + name: json['name'] as String, + id: json['id'] as String, + brand: json['brand'] as String?, + icon: json['icon'] as String?, + ), + ) + .toList(); + + final provider = ssoProviders == null + ? null + : await showModalActionPopup( + context: context, + title: L10n.of(context).logInTo(client.homeserver!.host), + actions: ssoProviders + .map( + (provider) => + AdaptiveModalAction(label: provider.name, value: provider), + ) + .toList(), + ); + + final url = client.homeserver!.replace( + path: + '/_matrix/client/v3/login/sso/redirect${provider == null ? '' : '/${provider.id}'}', + queryParameters: { + 'redirectUrl': redirectUrl.toString(), + 'action': signUp ? 'register' : 'login', + }, + ); + + final result = await FlutterWebAuth2.authenticate( + url: url.toString(), + callbackUrlScheme: urlScheme, + options: FlutterWebAuth2Options(useWebview: PlatformInfos.isMobile), + ); + final token = Uri.parse(result).queryParameters['loginToken']; + if (token?.isEmpty ?? false) return; + + await client.login( + LoginType.mLoginToken, + token: token, + initialDeviceDisplayName: PlatformInfos.appDisplayName, + ); +} diff --git a/lib/utils/size_string.dart b/lib/utils/size_string.dart new file mode 100644 index 0000000..7860091 --- /dev/null +++ b/lib/utils/size_string.dart @@ -0,0 +1,26 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +extension SizeString on num { + String get sizeString { + var size = toDouble(); + if (size < 1000) { + return '${size.round()} Bytes'; + } + if (size < 1000 * 1000) { + size = size / 1000; + size = (size * 10).round() / 10; + return '$size KB'; + } + if (size < 1000 * 1000 * 1000) { + size = size / 1000000; + size = (size * 10).round() / 10; + return '$size MB'; + } + size = size / 1000 * 1000 * 1000 * 1000; + size = (size * 10).round() / 10; + return '$size GB'; + } +} diff --git a/lib/utils/start_push_foreground_service.dart b/lib/utils/start_push_foreground_service.dart new file mode 100644 index 0000000..aa5972b --- /dev/null +++ b/lib/utils/start_push_foreground_service.dart @@ -0,0 +1,86 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter_foreground_task/flutter_foreground_task.dart'; +import 'package:matrix/matrix_api_lite/utils/logs.dart'; +import 'package:universal_html/html.dart' as html; + +import '../l10n/l10n.dart'; + +abstract class ForegroundServices { + static final List runningServices = []; + + static bool get platformSupported => + PlatformInfos.isMobile || PlatformInfos.isWeb; + + static bool _beforeUnload(html.Event e) { + e.preventDefault(); + return true; + } + + static Future stopService(String name) async { + runningServices.remove(name); + if (runningServices.isNotEmpty) return; + if (kIsWeb) { + html.window.removeEventListener('beforeunload', _beforeUnload); + return; + } + FlutterForegroundTask.stopService(); + } + + static Future startService(String name) async { + try { + runningServices.add(name); + if (kIsWeb) { + html.window.addEventListener('beforeunload', _beforeUnload); + return; + } + if (PlatformInfos.isMobile) { + final l10n = await L10n.delegate.load( + PlatformDispatcher.instance.locale, + ); + FlutterForegroundTask.init( + androidNotificationOptions: AndroidNotificationOptions( + channelId: 'fluffychat_sync', + channelName: l10n.loadingMessages, + channelDescription: l10n.loadingMessages, + onlyAlertOnce: true, + playSound: false, + enableVibration: false, + priority: NotificationPriority.LOW, + ), + iosNotificationOptions: const IOSNotificationOptions( + showNotification: false, + playSound: false, + ), + foregroundTaskOptions: ForegroundTaskOptions( + eventAction: ForegroundTaskEventAction.nothing(), + allowWakeLock: true, + ), + ); + if (await FlutterForegroundTask.isRunningService) { + Logs().d('[PushHelper] Foreground service already running'); + return; + } + final result = await FlutterForegroundTask.startService( + serviceTypes: [ForegroundServiceTypes.shortService], + notificationTitle: 'FluffyChat', + notificationText: l10n.loadingMessages, + notificationIcon: NotificationIcon(metaDataName: 'ic_launcher'), + ); + final started = result is ServiceRequestSuccess; + Logs().d('[PushHelper] Foreground service start: $started ($result)'); + } else if (kIsWeb) { + // TODO: Implement window.onBeforeUnload overwrite + } + return; + } catch (e, s) { + Logs().w('[PushHelper] Unable to start foreground service', e, s); + return; + } + } +} diff --git a/lib/utils/stream_extension.dart b/lib/utils/stream_extension.dart new file mode 100644 index 0000000..93fa60d --- /dev/null +++ b/lib/utils/stream_extension.dart @@ -0,0 +1,53 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; + +extension StreamExtension on Stream { + /// Returns a new Stream which outputs only `true` for every update of the original + /// stream, ratelimited by the Duration t + Stream rateLimit(Duration t) { + final controller = StreamController(); + Timer? timer; + var gotMessage = false; + // as we call our inline-defined function recursively we need to make sure that the + // variable exists prior of creating the function. Silly dart. + Function? onMessage; + // callback to determine if we should send out an update + onMessage = () { + // do nothing if it is already closed + if (controller.isClosed) { + return; + } + if (timer == null) { + // if we don't have a timer yet, send out the update and start a timer + gotMessage = false; + controller.add(true); + timer = Timer(t, () { + // the timer has ended...delete it and, if we got a message, re-run the + // method to send out an update! + timer = null; + if (gotMessage) { + onMessage?.call(); + } + }); + } else { + // set that we got a message + gotMessage = true; + } + }; + final subscription = listen( + (_) => onMessage?.call(), + onDone: controller.close, + onError: (e, s) => controller.addError(e, s), + ); + // add proper cleanup to the subscription and the controller, to not memory leak + controller.onCancel = () { + subscription.cancel(); + controller.close(); + }; + return controller.stream; + } +} diff --git a/lib/utils/string_color.dart b/lib/utils/string_color.dart new file mode 100644 index 0000000..4e83e0c --- /dev/null +++ b/lib/utils/string_color.dart @@ -0,0 +1,25 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:material_ui/material_ui.dart'; + +extension StringColor on String { + static final _colorSchemeCache = {}; + + ColorScheme get colorScheme => + _colorSchemeCache[this] ??= ColorScheme.fromSeed( + seedColor: _getColorLight(0.3), + dynamicSchemeVariant: DynamicSchemeVariant.rainbow, + ); + + Color _getColorLight(double light) { + var number = 0.0; + for (var i = 0; i < length; i++) { + number += codeUnitAt(i); + } + number = (number % 12) * 25.5; + return HSLColor.fromAHSL(0.75, number, 1, light).toColor(); + } +} diff --git a/lib/utils/sync_status_localization.dart b/lib/utils/sync_status_localization.dart new file mode 100644 index 0000000..9400ce3 --- /dev/null +++ b/lib/utils/sync_status_localization.dart @@ -0,0 +1,31 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/localized_exception_extension.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +extension SyncStatusLocalization on SyncStatusUpdate { + String calcLocalizedString(BuildContext context) { + final progress = this.progress; + switch (status) { + case SyncStatus.waitingForResponse: + return L10n.of(context).waitingForServer; + case SyncStatus.error: + return ((error?.exception ?? Object()) as Object).toLocalizedString( + context, + ); + case SyncStatus.processing: + case SyncStatus.cleaningUp: + case SyncStatus.finished: + return progress == null + ? L10n.of(context).synchronizingPleaseWait + : L10n.of(context).synchronizingPleaseWaitCounter( + (progress * 100).round().toString(), + ); + } + } +} diff --git a/lib/utils/tatu_share.dart b/lib/utils/tatu_share.dart new file mode 100644 index 0000000..72e2c2a --- /dev/null +++ b/lib/utils/tatu_share.dart @@ -0,0 +1,54 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:flutter/services.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:share_plus/share_plus.dart'; + +import '../widgets/matrix.dart'; + +abstract class TatuShare { + static Future share( + String text, + BuildContext context, { + bool copyOnly = false, + }) async { + final l10n = L10n.of(context); + final scaffoldMessenger = ScaffoldMessenger.of(context); + if (PlatformInfos.isMobile && !copyOnly) { + final box = context.findRenderObject() as RenderBox; + await SharePlus.instance.share( + ShareParams( + text: text, + sharePositionOrigin: box.localToGlobal(Offset.zero) & box.size, + ), + ); + return; + } + await Clipboard.setData(ClipboardData(text: text)); + if (!PlatformInfos.isMobile) { + scaffoldMessenger.showSnackBar( + SnackBar(showCloseIcon: true, content: Text(l10n.copiedToClipboard)), + ); + } + return; + } + + static Future shareInviteLink(BuildContext context) async { + final l10n = L10n.of(context); + final client = Matrix.of(context).client; + final ownProfile = await client.fetchOwnProfile(); + if (!context.mounted) return; + await TatuShare.share( + l10n.inviteText( + ownProfile.displayName ?? client.userID!, + 'https://matrix.to/#/${client.userID}?client=im.tatuchat', + ), + context, + ); + } +} diff --git a/lib/utils/uia_request_manager.dart b/lib/utils/uia_request_manager.dart new file mode 100644 index 0000000..f088a76 --- /dev/null +++ b/lib/utils/uia_request_manager.dart @@ -0,0 +1,110 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; + +import 'package:tatchat/l10n/l10n.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/tatu_chat_app.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; +import 'package:url_launcher/url_launcher.dart'; + +extension UiaRequestManager on MatrixState { + Future uiaRequestHandler(UiaRequest uiaRequest) async { + final l10n = L10n.of(context); + final navigatorContext = + TatuChatApp.router.routerDelegate.navigatorKey.currentContext ?? + context; + try { + if (uiaRequest.state != UiaRequestState.waitForUser || + uiaRequest.nextStages.isEmpty) { + Logs().d('Uia Request Stage: ${uiaRequest.state}'); + return; + } + final stage = uiaRequest.nextStages.first; + Logs().d('Uia Request Stage: $stage'); + switch (stage) { + case AuthenticationTypes.password: + final input = + cachedPassword ?? + (await showTextInputDialog( + context: navigatorContext, + title: l10n.pleaseEnterYourPassword, + okLabel: l10n.ok, + cancelLabel: l10n.cancel, + minLines: 1, + maxLines: 1, + obscureText: true, + hintText: '******', + )); + if (input == null || input.isEmpty) { + return uiaRequest.cancel(); + } + return await uiaRequest.completeStage( + AuthenticationPassword( + session: uiaRequest.session, + password: input, + identifier: AuthenticationUserIdentifier(user: client.userID!), + ), + ); + case AuthenticationTypes.dummy: + return await uiaRequest.completeStage( + AuthenticationData( + type: AuthenticationTypes.dummy, + session: uiaRequest.session, + ), + ); + default: + final stageUrl = uiaRequest.params + .tryGetMap(stage) + ?.tryGet('url'); + final fallbackUrl = client.homeserver!.replace( + path: '/_matrix/client/v3/auth/$stage/fallback/web', + queryParameters: {'session': uiaRequest.session}, + ); + final url = stageUrl != null + ? (Uri.tryParse(stageUrl) ?? fallbackUrl) + : fallbackUrl; + + final consent = await showOkCancelAlertDialog( + useRootNavigator: false, + title: l10n.pleaseFollowInstructionsOnWeb, + context: navigatorContext, + okLabel: l10n.open, + cancelLabel: l10n.cancel, + ); + if (consent != OkCancelResult.ok) return uiaRequest.cancel(); + + launchUrl(url, mode: LaunchMode.inAppBrowserView); + final completer = Completer(); + final listener = AppLifecycleListener(onResume: completer.complete); + await completer.future; + listener.dispose(); + + return await uiaRequest.completeStage( + AuthenticationData( + session: uiaRequest.session, + type: stageUrl == null ? null : stage, + ), + ); + } + } catch (e, s) { + Logs().e('Error while background UIA', e, s); + return uiaRequest.cancel(e is Exception ? e : Exception(e)); + } + } +} + +class UiaException implements Exception { + final String reason; + + UiaException(this.reason); + + @override + String toString() => reason; +} diff --git a/lib/utils/url_launcher.dart b/lib/utils/url_launcher.dart new file mode 100644 index 0000000..9006dce --- /dev/null +++ b/lib/utils/url_launcher.dart @@ -0,0 +1,253 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:collection/collection.dart' show IterableExtension; +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/user_dialog.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; +import 'package:punycode/punycode.dart'; +import 'package:url_launcher/url_launcher_string.dart'; + +import '../widgets/adaptive_dialogs/public_room_dialog.dart'; +import 'platform_infos.dart'; + +class UrlLauncher { + /// The url to open. + final String? url; + + /// The visible name in the GUI. For example the name of a markdown link + /// which may differ from the actual url to open. + final String? name; + + final BuildContext context; + + const UrlLauncher(this.context, this.url, [this.name]); + + Future launchUrl() async { + final l10n = L10n.of(context); + final scaffoldMessenger = ScaffoldMessenger.of(context); + if (url!.toLowerCase().startsWith(AppConfig.deepLinkPrefix) || + url!.toLowerCase().startsWith(AppConfig.inviteLinkPrefix) || + {'#', '@', '!', '+', '\$'}.contains(url![0]) || + url!.toLowerCase().startsWith(AppConfig.schemePrefix)) { + return openMatrixToUrl(); + } + final uri = Uri.tryParse(url!); + if (uri == null) { + // we can't open this thing + scaffoldMessenger.showSnackBar( + SnackBar(content: Text(l10n.cantOpenUri(url!))), + ); + return; + } + + if (name != null && url != name) { + // If there is a name which differs from the url, we need to make sure + // that the user can see the actual url before opening the browser. + final consent = await showOkCancelAlertDialog( + context: context, + title: l10n.openLinkInBrowser, + message: url, + okLabel: l10n.open, + cancelLabel: l10n.cancel, + ); + if (consent != OkCancelResult.ok) return; + } + + if (!{'https', 'http'}.contains(uri.scheme)) { + // just launch non-https / non-http uris directly + + // we need to transmute geo URIs on desktop and on iOS + if ((!PlatformInfos.isMobile || PlatformInfos.isIOS) && + uri.scheme == 'geo') { + final latlong = uri.path + .split(';') + .first + .split(',') + .map(double.tryParse) + .toList(); + if (latlong.length == 2 && + latlong.first != null && + latlong.last != null) { + if (PlatformInfos.isIOS) { + // iOS is great at not following standards, so we need to transmute the geo URI + // to an apple maps thingy + // https://developer.apple.com/library/archive/featuredarticles/iPhoneURLScheme_Reference/MapLinks/MapLinks.html + final ll = '${latlong.first},${latlong.last}'; + launchUrlString('https://maps.apple.com/?q=$ll&sll=$ll'); + } else { + // transmute geo URIs on desktop to openstreetmap links, as those usually can't handle + // geo URIs + launchUrlString( + 'https://www.openstreetmap.org/?mlat=${latlong.first}&mlon=${latlong.last}#map=16/${latlong.first}/${latlong.last}', + ); + } + return; + } + } + launchUrlString(url!); + return; + } + if (uri.host.isEmpty) { + scaffoldMessenger.showSnackBar( + SnackBar(content: Text(l10n.cantOpenUri(url!))), + ); + return; + } + // okay, we have either an http or an https URI. + // As some platforms have issues with opening unicode URLs, we are going to help + // them out by punycode-encoding them for them ourself. + final newHost = uri.host + .split('.') + .map((hostPartEncoded) { + final hostPart = Uri.decodeComponent(hostPartEncoded); + final hostPartPunycode = punycodeEncode(hostPart); + return hostPartPunycode != '$hostPart-' + ? 'xn--$hostPartPunycode' + : hostPart; + }) + .join('.'); + // Force LaunchMode.externalApplication, otherwise url_launcher will default + // to opening links in a webview on mobile platforms. + launchUrlString( + uri.replace(host: newHost).toString(), + mode: LaunchMode.externalApplication, + ); + } + + Future openMatrixToUrl() async { + final matrix = Matrix.of(context); + final url = this.url!.replaceFirst( + AppConfig.deepLinkPrefix, + AppConfig.inviteLinkPrefix, + ); + + // The identifier might be a matrix.to url and needs escaping. Or, it might have multiple + // identifiers (room id & event id), or it might also have a query part. + // All this needs parsing. + final identityParts = + url.parseIdentifierIntoParts() ?? + Uri.tryParse(url)?.host.parseIdentifierIntoParts() ?? + Uri.tryParse(url)?.pathSegments + .lastWhereOrNull((_) => true) + ?.parseIdentifierIntoParts(); + if (identityParts == null) { + return; // no match, nothing to do + } + if (identityParts.primaryIdentifier.sigil == '#' || + identityParts.primaryIdentifier.sigil == '!') { + // we got a room! Let's open that one + final roomIdOrAlias = identityParts.primaryIdentifier; + final event = identityParts.secondaryIdentifier; + var room = + matrix.client.getRoomByAlias(roomIdOrAlias) ?? + matrix.client.getRoomById(roomIdOrAlias); + var roomId = room?.id; + // we make the servers a set and later on convert to a list, so that we can easily + // deduplicate servers added via alias lookup and query parameter + final servers = {}; + if (room == null && roomIdOrAlias.sigil == '#') { + // we were unable to find the room locally...so resolve it + final response = await showFutureLoadingDialog( + context: context, + future: () => matrix.client.getRoomIdByAlias(roomIdOrAlias), + ); + final result = response.result; + if (result != null) { + roomId = result.roomId; + servers.addAll(result.servers!); + room = matrix.client.getRoomById(roomId!); + } + } + servers.addAll(identityParts.via); + if (!context.mounted) return; + if (room != null) { + if (room.isSpace) { + // TODO: Implement navigate to space + context.go('/rooms/${room.id}'); + + return; + } + // we have the room, so....just open it + if (event != null) { + context.go( + '/${Uri(pathSegments: ['rooms', room.id], queryParameters: {'event': event})}', + ); + } else { + context.go('/rooms/${room.id}'); + } + return; + } else { + if (!context.mounted) return; + await showAdaptiveDialog( + context: context, + barrierDismissible: true, + builder: (c) => + PublicRoomDialog(roomAlias: identityParts.primaryIdentifier), + ); + } + if (roomIdOrAlias.sigil == '!') { + if (!context.mounted) return; + if (await showOkCancelAlertDialog( + useRootNavigator: false, + context: context, + title: 'Join room $roomIdOrAlias', + ) == + OkCancelResult.ok) { + roomId = roomIdOrAlias; + if (!context.mounted) return; + final response = await showFutureLoadingDialog( + context: context, + future: () => matrix.client.joinRoom( + roomIdOrAlias, + via: servers.isNotEmpty ? servers.toList() : null, + ), + ); + if (response.error != null) return; + if (!context.mounted) return; + // wait for two seconds so that it probably came down /sync + await showFutureLoadingDialog( + context: context, + future: () => Future.delayed(const Duration(seconds: 2)), + ); + if (!context.mounted) return; + if (event != null) { + context.go( + Uri( + pathSegments: ['rooms', response.result!], + queryParameters: {'event': event}, + ).toString(), + ); + } else { + context.go('/rooms/${response.result!}'); + } + } + } + } else if (identityParts.primaryIdentifier.sigil == '@') { + final userId = identityParts.primaryIdentifier; + var noProfileWarning = false; + final profileResult = await showFutureLoadingDialog( + context: context, + future: () => + matrix.client.getProfileFromUserId(userId).catchError((_) { + noProfileWarning = true; + return Profile(userId: userId); + }), + ); + if (!context.mounted) return; + await UserDialog.show( + context: context, + profile: profileResult.result!, + noProfileWarning: noProfileWarning, + ); + } + } +} diff --git a/lib/utils/verified_room_extension.dart b/lib/utils/verified_room_extension.dart new file mode 100644 index 0000000..f4e3c7c --- /dev/null +++ b/lib/utils/verified_room_extension.dart @@ -0,0 +1,15 @@ +// 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'; + +extension VerifiedRoomExtension on Room { + bool get allUsersVerified { + final users = getParticipants(); + return !users.any( + (user) => client.userDeviceKeys[user.id]?.masterKey?.verified != true, + ); + } +} diff --git a/lib/widgets/adaptive_dialogs/adaptive_dialog_action.dart b/lib/widgets/adaptive_dialogs/adaptive_dialog_action.dart new file mode 100644 index 0000000..969c3bc --- /dev/null +++ b/lib/widgets/adaptive_dialogs/adaptive_dialog_action.dart @@ -0,0 +1,164 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:cupertino_ui/cupertino_ui.dart'; +import 'package:tatchat/config/app_config.dart'; +import 'package:material_ui/material_ui.dart'; + +class AdaptiveDialogAction extends StatelessWidget { + final VoidCallback? onPressed; + final bool autofocus; + final Widget child; + final bool bigButtons; + final BorderRadius? borderRadius; + + static const BorderRadius topRadius = BorderRadius.only( + topLeft: Radius.circular(AppConfig.borderRadius), + topRight: Radius.circular(AppConfig.borderRadius), + bottomLeft: Radius.circular(2), + bottomRight: Radius.circular(2), + ); + static const BorderRadius centerRadius = BorderRadius.all(Radius.circular(2)); + static const BorderRadius bottomRadius = BorderRadius.only( + bottomLeft: Radius.circular(AppConfig.borderRadius), + bottomRight: Radius.circular(AppConfig.borderRadius), + topLeft: Radius.circular(2), + topRight: Radius.circular(2), + ); + + const AdaptiveDialogAction({ + super.key, + required this.onPressed, + required this.child, + this.autofocus = false, + this.bigButtons = false, + this.borderRadius, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + switch (theme.platform) { + case TargetPlatform.android: + case TargetPlatform.fuchsia: + case TargetPlatform.linux: + case TargetPlatform.windows: + if (bigButtons) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 2.0), + child: SizedBox( + width: double.infinity, + child: ElevatedButton( + style: ElevatedButton.styleFrom( + shape: RoundedRectangleBorder( + borderRadius: + borderRadius ?? + BorderRadius.circular(AppConfig.borderRadius), + ), + backgroundColor: autofocus + ? theme.colorScheme.primary + : theme.colorScheme.surfaceBright, + foregroundColor: autofocus + ? theme.colorScheme.onPrimary + : theme.colorScheme.primary, + ), + onPressed: onPressed, + autofocus: autofocus, + child: child, + ), + ), + ); + } + return TextButton( + onPressed: onPressed, + autofocus: autofocus, + child: child, + ); + case TargetPlatform.iOS: + case TargetPlatform.macOS: + return CupertinoDialogAction( + onPressed: onPressed, + isDefaultAction: autofocus, + child: child, + ); + } + } +} + +class AdaptiveDialogInkWell extends StatelessWidget { + final Widget child; + final VoidCallback? onTap; + final EdgeInsets padding; + + const AdaptiveDialogInkWell({ + super.key, + required this.onTap, + required this.child, + this.padding = const EdgeInsets.all(16), + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + if ({TargetPlatform.iOS, TargetPlatform.macOS}.contains(theme.platform)) { + return CupertinoButton( + onPressed: onTap, + borderRadius: BorderRadius.circular(AppConfig.borderRadius / 2), + color: theme.colorScheme.surfaceBright, + padding: padding, + child: child, + ); + } + return Material( + color: onTap == null + ? theme.colorScheme.surfaceContainer + : theme.colorScheme.surfaceBright, + borderRadius: BorderRadius.circular(AppConfig.borderRadius / 2), + child: InkWell( + borderRadius: BorderRadius.circular(AppConfig.borderRadius / 2), + onTap: onTap, + child: Padding( + padding: padding, + child: Center(child: child), + ), + ), + ); + } +} + +class AdaptiveIconTextButton extends StatelessWidget { + final String label; + final IconData icon; + final VoidCallback? onTap; + const AdaptiveIconTextButton({ + super.key, + required this.label, + required this.icon, + required this.onTap, + }); + + @override + Widget build(BuildContext context) { + final color = Theme.of(context).colorScheme.secondary; + return Expanded( + child: AdaptiveDialogInkWell( + padding: EdgeInsets.all(8.0), + onTap: onTap, + child: Column( + mainAxisSize: .min, + children: [ + Icon(icon, color: color), + Text( + label, + style: TextStyle(fontSize: 12, color: color), + maxLines: 1, + overflow: .ellipsis, + ), + ], + ), + ), + ); + } +} diff --git a/lib/widgets/adaptive_dialogs/dialog_text_field.dart b/lib/widgets/adaptive_dialogs/dialog_text_field.dart new file mode 100644 index 0000000..a339a49 --- /dev/null +++ b/lib/widgets/adaptive_dialogs/dialog_text_field.dart @@ -0,0 +1,120 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:cupertino_ui/cupertino_ui.dart'; +import 'package:tatchat/config/app_config.dart'; +import 'package:material_ui/material_ui.dart'; + +class DialogTextField extends StatelessWidget { + final TextEditingController? controller; + final String? hintText; + final String? labelText; + final String? initialText; + final String? counterText; + final String? prefixText; + final String? suffixText; + final String? errorText; + final bool obscureText; + final bool isDestructive = false; + final int? minLines; + final int? maxLines; + final TextInputType? keyboardType; + final int? maxLength; + final bool autocorrect = true; + final bool readOnly; + final TextStyle? textStyle; + + const DialogTextField({ + super.key, + this.hintText, + this.labelText, + this.initialText, + this.prefixText, + this.suffixText, + this.minLines, + this.maxLines, + this.keyboardType, + this.maxLength, + this.controller, + this.counterText, + this.errorText, + this.obscureText = false, + this.readOnly = false, + this.textStyle, + }); + + @override + Widget build(BuildContext context) { + final prefixText = this.prefixText; + final suffixText = this.suffixText; + final errorText = this.errorText; + final theme = Theme.of(context); + switch (theme.platform) { + case TargetPlatform.android: + case TargetPlatform.fuchsia: + case TargetPlatform.linux: + case TargetPlatform.windows: + return TextField( + readOnly: readOnly, + controller: controller, + obscureText: obscureText, + minLines: minLines, + maxLines: maxLines, + maxLength: maxLength, + keyboardType: keyboardType, + autocorrect: autocorrect, + style: textStyle, + decoration: InputDecoration( + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppConfig.borderRadius / 2), + borderSide: BorderSide(color: theme.dividerColor), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppConfig.borderRadius / 2), + borderSide: BorderSide(color: theme.dividerColor), + ), + filled: true, + fillColor: theme.colorScheme.surfaceBright, + errorText: errorText, + hintText: hintText, + labelText: labelText, + prefixText: prefixText, + suffixText: suffixText, + counterText: counterText, + ), + ); + case TargetPlatform.iOS: + case TargetPlatform.macOS: + final placeholder = labelText ?? hintText; + return Column( + children: [ + SizedBox( + height: placeholder == null ? null : ((maxLines ?? 1) + 1) * 20, + child: CupertinoTextField( + controller: controller, + readOnly: readOnly, + obscureText: obscureText, + minLines: minLines, + maxLines: maxLines, + maxLength: maxLength, + keyboardType: keyboardType, + autocorrect: autocorrect, + style: textStyle, + prefix: prefixText != null ? Text(prefixText) : null, + suffix: suffixText != null ? Text(suffixText) : null, + placeholder: placeholder, + ), + ), + if (errorText != null) + Text( + errorText, + style: TextStyle(fontSize: 11, color: theme.colorScheme.error), + textAlign: TextAlign.left, + ), + ], + ); + } + } +} diff --git a/lib/widgets/adaptive_dialogs/public_room_dialog.dart b/lib/widgets/adaptive_dialogs/public_room_dialog.dart new file mode 100644 index 0000000..106d1ad --- /dev/null +++ b/lib/widgets/adaptive_dialogs/public_room_dialog.dart @@ -0,0 +1,308 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/tatu_share.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:flutter/services.dart'; +import 'package:flutter_linkify/flutter_linkify.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../config/themes.dart'; +import '../../utils/url_launcher.dart'; +import '../avatar.dart'; +import '../future_loading_dialog.dart'; +import '../hover_builder.dart'; +import '../matrix.dart'; +import '../mxc_image_viewer.dart'; +import 'adaptive_dialog_action.dart'; + +class PublicRoomDialog extends StatelessWidget { + final String? roomAlias; + final PublishedRoomsChunk? chunk; + final List? via; + + const PublicRoomDialog({super.key, this.roomAlias, this.chunk, this.via}); + + Future _joinRoom(BuildContext context) async { + final l10n = L10n.of(context); + final client = Matrix.of(context).client; + final chunk = this.chunk; + final knock = chunk?.joinRule == 'knock'; + final result = await showFutureLoadingDialog( + context: context, + future: () async { + if (chunk != null && + client.getRoomById(chunk.roomId) != null && + client.getRoomById(chunk.roomId)?.membership != Membership.leave) { + return chunk.roomId; + } + final roomId = chunk != null && knock + ? await client.knockRoom(chunk.roomId, via: via) + : await client.joinRoom(roomAlias ?? chunk!.roomId, via: via); + + if (!knock && client.getRoomById(roomId) == null) { + await client.waitForRoomInSync(roomId); + } + return roomId; + }, + ); + final roomId = result.result; + if (roomId == null) return; + if (!context.mounted) return; + if (knock && client.getRoomById(roomId) == null) { + Navigator.of(context).pop(true); + await showOkAlertDialog( + context: context, + title: l10n.youHaveKnocked, + message: l10n.pleaseWaitUntilInvited, + ); + return; + } + if (result.error != null) return; + if (!context.mounted) return; + Navigator.of(context).pop(true); + // don't open the room if the joined room is a space + if (chunk?.roomType != 'm.space' && + !client.getRoomById(result.result!)!.isSpace) { + context.go('/rooms/$roomId'); + } else { + context.go('/rooms?spaceId=$roomId'); + } + return; + } + + bool _testRoom(PublishedRoomsChunk r) => r.canonicalAlias == roomAlias; + + Future _search(BuildContext context) async { + final l10n = L10n.of(context); + final chunk = this.chunk; + if (chunk != null) return chunk; + final query = await Matrix.of(context).client.queryPublicRooms( + server: roomAlias!.domain, + filter: PublicRoomQueryFilter(genericSearchTerm: roomAlias), + ); + if (!query.chunk.any(_testRoom)) { + throw (l10n.noRoomsFound); + } + return query.chunk.firstWhere(_testRoom); + } + + @override + Widget build(BuildContext context) { + final roomAlias = this.roomAlias ?? chunk?.canonicalAlias; + final roomLink = roomAlias ?? chunk?.roomId; + var copied = false; + return AlertDialog.adaptive( + content: ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 256), + child: FutureBuilder( + future: _search(context), + builder: (context, snapshot) { + final theme = Theme.of(context); + + final profile = snapshot.data; + final avatar = profile?.avatarUrl; + final topic = profile?.topic; + return SingleChildScrollView( + child: Column( + spacing: 8, + mainAxisSize: .min, + crossAxisAlignment: .stretch, + children: [ + Row( + spacing: 12, + children: [ + Avatar( + mxContent: avatar, + name: profile?.name ?? roomLink, + size: Avatar.defaultSize * 1.5, + onTap: avatar != null + ? () => showDialog( + context: context, + builder: (_) => MxcImageViewer(avatar), + ) + : null, + ), + Expanded( + child: Column( + crossAxisAlignment: .start, + children: [ + Text( + profile?.name ?? + roomLink ?? + profile?.roomId ?? + ' - ', + maxLines: 1, + overflow: .ellipsis, + style: TextStyle(fontSize: 16), + ), + const SizedBox(height: 8), + if (roomLink != null) + HoverBuilder( + builder: (context, hovered) => StatefulBuilder( + builder: (context, setState) => MouseRegion( + cursor: SystemMouseCursors.click, + child: GestureDetector( + onTap: () { + Clipboard.setData( + ClipboardData(text: roomLink), + ); + setState(() { + copied = true; + }); + }, + child: RichText( + text: TextSpan( + children: [ + WidgetSpan( + child: Padding( + padding: const EdgeInsets.only( + right: 4.0, + ), + child: AnimatedScale( + duration: FluffyThemes + .animationDuration, + curve: FluffyThemes + .animationCurve, + scale: hovered + ? 1.33 + : copied + ? 1.25 + : 1.0, + child: Icon( + copied + ? Icons.check_circle + : Icons.copy, + size: 12, + color: copied + ? Colors.green + : null, + ), + ), + ), + ), + TextSpan(text: roomLink), + ], + style: theme.textTheme.bodyMedium + ?.copyWith(fontSize: 10), + ), + maxLines: 1, + textAlign: TextAlign.center, + ), + ), + ), + ), + ), + + if (profile?.numJoinedMembers != null) + Text( + L10n.of(context).countParticipants( + profile?.numJoinedMembers ?? 0, + ), + style: const TextStyle(fontSize: 10), + textAlign: TextAlign.center, + ), + ], + ), + ), + ], + ), + if (topic != null && topic.isNotEmpty) + ConstrainedBox( + constraints: BoxConstraints(maxHeight: 200), + child: Scrollbar( + thumbVisibility: true, + trackVisibility: true, + child: SingleChildScrollView( + child: SelectableLinkify( + text: topic, + textScaleFactor: MediaQuery.textScalerOf( + context, + ).scale(1), + textAlign: .start, + options: const LinkifyOptions(humanize: false), + linkStyle: TextStyle( + color: theme.colorScheme.primary, + decoration: TextDecoration.underline, + decorationColor: theme.colorScheme.primary, + ), + onOpen: (url) => + UrlLauncher(context, url.url).launchUrl(), + ), + ), + ), + ), + + Row( + mainAxisAlignment: .spaceBetween, + spacing: 4, + children: [ + AdaptiveIconTextButton( + label: L10n.of(context).report, + icon: Icons.gavel_outlined, + onTap: () async { + Navigator.of(context).pop(); + final reason = await showTextInputDialog( + context: context, + title: L10n.of(context).whyDoYouWantToReportThis, + okLabel: L10n.of(context).report, + cancelLabel: L10n.of(context).cancel, + hintText: L10n.of(context).reason, + ); + if (reason == null || reason.isEmpty) return; + if (!context.mounted) return; + await showFutureLoadingDialog( + context: context, + future: () => Matrix.of(context).client.reportRoom( + chunk?.roomId ?? roomAlias!, + reason, + ), + ); + }, + ), + AdaptiveIconTextButton( + label: L10n.of(context).copy, + icon: Icons.copy_outlined, + onTap: () => + Clipboard.setData(ClipboardData(text: roomLink!)), + ), + AdaptiveIconTextButton( + label: L10n.of(context).share, + icon: Icons.adaptive.share, + onTap: () => TatuShare.share( + 'https://matrix.to/#/$roomLink', + context, + ), + ), + ], + ), + AdaptiveDialogInkWell( + onTap: () => _joinRoom(context), + child: Text( + chunk?.joinRule == 'knock' && + Matrix.of( + context, + ).client.getRoomById(chunk!.roomId) == + null + ? L10n.of(context).knock + : chunk?.roomType == 'm.space' + ? L10n.of(context).joinSpace + : L10n.of(context).joinRoom, + style: TextStyle(color: theme.colorScheme.secondary), + ), + ), + ], + ), + ); + }, + ), + ), + ); + } +} diff --git a/lib/widgets/adaptive_dialogs/show_modal_action_popup.dart b/lib/widgets/adaptive_dialogs/show_modal_action_popup.dart new file mode 100644 index 0000000..8cdb736 --- /dev/null +++ b/lib/widgets/adaptive_dialogs/show_modal_action_popup.dart @@ -0,0 +1,119 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:cupertino_ui/cupertino_ui.dart'; +import 'package:material_ui/material_ui.dart'; + +Future showModalActionPopup({ + required BuildContext context, + required List> actions, + String? title, + String? message, + String? cancelLabel, + bool useRootNavigator = true, +}) { + final theme = Theme.of(context); + + switch (theme.platform) { + case TargetPlatform.android: + case TargetPlatform.fuchsia: + case TargetPlatform.windows: + case TargetPlatform.linux: + return showModalBottomSheet( + isScrollControlled: true, + useRootNavigator: useRootNavigator, + context: context, + clipBehavior: Clip.hardEdge, + constraints: BoxConstraints( + maxWidth: 512, + maxHeight: MediaQuery.sizeOf(context).height - 32, + ), + builder: (context) => ListView( + shrinkWrap: true, + children: [ + if (title != null || message != null) ...[ + ListTile( + title: title == null + ? null + : Text(title, style: theme.textTheme.labelSmall), + subtitle: message == null ? null : Text(message), + ), + const Divider(height: 1), + ], + ...actions.map( + (action) => ListTile( + leading: action.icon, + title: Text( + action.label, + maxLines: 1, + style: action.isDestructive + ? TextStyle( + color: theme.colorScheme.error, + fontWeight: action.isDefaultAction + ? FontWeight.bold + : null, + ) + : null, + ), + onTap: () => Navigator.of(context).pop(action.value), + ), + ), + if (cancelLabel != null) ...[ + const Divider(height: 1), + ListTile( + title: Text(cancelLabel), + onTap: () => Navigator.of(context).pop(null), + ), + ], + ], + ), + ); + case TargetPlatform.iOS: + case TargetPlatform.macOS: + return showCupertinoModalPopup( + context: context, + useRootNavigator: useRootNavigator, + builder: (context) => ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 512), + child: CupertinoActionSheet( + title: title == null ? null : Text(title), + message: message == null ? null : Text(message), + cancelButton: cancelLabel == null + ? null + : CupertinoActionSheetAction( + onPressed: () => Navigator.of(context).pop(null), + child: Text(cancelLabel), + ), + actions: actions + .map( + (action) => CupertinoActionSheetAction( + isDestructiveAction: action.isDestructive, + isDefaultAction: action.isDefaultAction, + onPressed: () => Navigator.of(context).pop(action.value), + child: Text(action.label, maxLines: 1), + ), + ) + .toList(), + ), + ), + ); + } +} + +class AdaptiveModalAction { + final String label; + final T value; + Icon? icon; + final bool isDefaultAction; + final bool isDestructive; + + AdaptiveModalAction({ + required this.label, + required this.value, + this.icon, + this.isDefaultAction = false, + this.isDestructive = false, + }); +} diff --git a/lib/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart b/lib/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart new file mode 100644 index 0000000..04a80e0 --- /dev/null +++ b/lib/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart @@ -0,0 +1,106 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/url_launcher.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/adaptive_dialog_action.dart'; +import 'package:flutter_linkify/flutter_linkify.dart'; +import 'package:material_ui/material_ui.dart'; + +enum OkCancelResult { ok, cancel } + +Future showOkCancelAlertDialog({ + required BuildContext context, + required String title, + String? message, + String? okLabel, + String? cancelLabel, + bool isDestructive = false, + bool useRootNavigator = true, +}) => showAdaptiveDialog( + context: context, + useRootNavigator: useRootNavigator, + builder: (context) => AlertDialog.adaptive( + title: ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 256), + child: Text(title), + ), + content: ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 256), + child: message == null + ? null + : SelectableLinkify( + text: message, + textScaleFactor: MediaQuery.textScalerOf(context).scale(1), + linkStyle: TextStyle( + color: Theme.of(context).colorScheme.primary, + decorationColor: Theme.of(context).colorScheme.primary, + ), + options: const LinkifyOptions(humanize: false), + onOpen: (url) => UrlLauncher(context, url.url).launchUrl(), + ), + ), + actions: [ + AdaptiveDialogAction( + key: Key('ok_cancel_alert_dialog_cancel_button'), + onPressed: () => + Navigator.of(context).pop(OkCancelResult.cancel), + child: Text(cancelLabel ?? L10n.of(context).cancel), + ), + AdaptiveDialogAction( + key: Key('ok_cancel_alert_dialog_ok_button'), + onPressed: () => + Navigator.of(context).pop(OkCancelResult.ok), + autofocus: true, + child: Text( + okLabel ?? L10n.of(context).ok, + style: isDestructive + ? TextStyle(color: Theme.of(context).colorScheme.error) + : null, + ), + ), + ], + ), +); + +Future showOkAlertDialog({ + required BuildContext context, + required String title, + String? message, + String? okLabel, + bool useRootNavigator = true, +}) => showAdaptiveDialog( + context: context, + useRootNavigator: useRootNavigator, + builder: (context) => AlertDialog.adaptive( + title: ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 256), + child: Text(title), + ), + content: ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 256), + child: message == null + ? null + : SelectableLinkify( + text: message, + textScaleFactor: MediaQuery.textScalerOf(context).scale(1), + linkStyle: TextStyle( + color: Theme.of(context).colorScheme.primary, + decorationColor: Theme.of(context).colorScheme.primary, + ), + options: const LinkifyOptions(humanize: false), + onOpen: (url) => UrlLauncher(context, url.url).launchUrl(), + ), + ), + actions: [ + AdaptiveDialogAction( + onPressed: () => + Navigator.of(context).pop(OkCancelResult.ok), + autofocus: true, + child: Text(okLabel ?? L10n.of(context).close), + ), + ], + ), +); diff --git a/lib/widgets/adaptive_dialogs/show_text_input_dialog.dart b/lib/widgets/adaptive_dialogs/show_text_input_dialog.dart new file mode 100644 index 0000000..96c0d02 --- /dev/null +++ b/lib/widgets/adaptive_dialogs/show_text_input_dialog.dart @@ -0,0 +1,112 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/url_launcher.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/adaptive_dialog_action.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/dialog_text_field.dart'; +import 'package:flutter_linkify/flutter_linkify.dart'; +import 'package:material_ui/material_ui.dart'; + +Future showTextInputDialog({ + required BuildContext context, + required String title, + String? message, + String? okLabel, + String? cancelLabel, + bool useRootNavigator = true, + String? hintText, + String? labelText, + String? initialText, + String? prefixText, + String? suffixText, + bool obscureText = false, + bool isDestructive = false, + int? minLines, + int? maxLines, + String? Function(String input)? validator, + TextInputType? keyboardType, + int? maxLength, + bool autocorrect = true, +}) { + // TODO: Dispose this somewhere + final controller = TextEditingController(text: initialText); + return showAdaptiveDialog( + context: context, + useRootNavigator: useRootNavigator, + builder: (context) { + final error = ValueNotifier(null); + return AlertDialog.adaptive( + title: ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 256), + child: Text(title), + ), + content: ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 256), + child: Column( + mainAxisSize: .min, + children: [ + if (message != null) + SelectableLinkify( + text: message, + textScaleFactor: MediaQuery.textScalerOf(context).scale(1), + linkStyle: TextStyle( + color: Theme.of(context).colorScheme.primary, + decorationColor: Theme.of(context).colorScheme.primary, + ), + options: const LinkifyOptions(humanize: false), + onOpen: (url) => UrlLauncher(context, url.url).launchUrl(), + ), + const SizedBox(height: 16), + ValueListenableBuilder( + valueListenable: error, + builder: (context, error, _) { + return DialogTextField( + hintText: hintText, + errorText: error, + labelText: labelText, + controller: controller, + initialText: initialText, + prefixText: prefixText, + suffixText: suffixText, + minLines: minLines, + maxLines: maxLines, + maxLength: maxLength, + keyboardType: keyboardType, + obscureText: obscureText, + ); + }, + ), + ], + ), + ), + actions: [ + AdaptiveDialogAction( + onPressed: () => Navigator.of(context).pop(null), + child: Text(cancelLabel ?? L10n.of(context).cancel), + ), + AdaptiveDialogAction( + onPressed: () { + final input = controller.text; + final errorText = validator?.call(input); + if (errorText != null) { + error.value = errorText; + return; + } + Navigator.of(context).pop(input); + }, + autofocus: true, + child: Text( + okLabel ?? L10n.of(context).ok, + style: isDestructive + ? TextStyle(color: Theme.of(context).colorScheme.error) + : null, + ), + ), + ], + ); + }, + ); +} diff --git a/lib/widgets/adaptive_dialogs/user_dialog.dart b/lib/widgets/adaptive_dialogs/user_dialog.dart new file mode 100644 index 0000000..d2c3206 --- /dev/null +++ b/lib/widgets/adaptive_dialogs/user_dialog.dart @@ -0,0 +1,274 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/date_time_extension.dart'; +import 'package:tatchat/utils/tatu_share.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/adaptive_dialog_action.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_text_input_dialog.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:tatchat/widgets/presence_builder.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_linkify/flutter_linkify.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import '../../utils/url_launcher.dart'; +import '../future_loading_dialog.dart'; +import '../hover_builder.dart'; +import '../matrix.dart'; +import '../mxc_image_viewer.dart'; + +// ignore: unused_import + +class UserDialog extends StatelessWidget { + static Future show({ + required BuildContext context, + required Profile profile, + bool noProfileWarning = false, + }) => showAdaptiveDialog( + context: context, + barrierDismissible: true, + builder: (context) => + UserDialog(profile, noProfileWarning: noProfileWarning), + ); + + final Profile profile; + final bool noProfileWarning; + + const UserDialog(this.profile, {this.noProfileWarning = false, super.key}); + + @override + Widget build(BuildContext context) { + final client = Matrix.of(context).client; + final directChatRoomId = client.getDirectChatFromUserId(profile.userId); + final displayname = + profile.displayName ?? + profile.userId.localpart ?? + L10n.of(context).user; + var copied = false; + final theme = Theme.of(context); + final avatar = profile.avatarUrl; + return AlertDialog.adaptive( + content: PresenceBuilder( + userId: profile.userId, + client: Matrix.of(context).client, + builder: (context, presence) { + if (presence == null) return const SizedBox.shrink(); + final statusMsg = presence.statusMsg; + final lastActiveTimestamp = presence.lastActiveTimestamp; + final presenceText = presence.currentlyActive == true + ? L10n.of(context).currentlyActive + : lastActiveTimestamp != null + ? L10n.of( + context, + ).lastActiveAgo(lastActiveTimestamp.localizedTimeShort(context)) + : null; + return Column( + spacing: 8, + mainAxisSize: .min, + crossAxisAlignment: .stretch, + children: [ + Row( + spacing: 12, + children: [ + Avatar( + mxContent: avatar, + name: displayname, + size: Avatar.defaultSize * 1.5, + onTap: avatar != null + ? () => showDialog( + context: context, + builder: (_) => MxcImageViewer(avatar), + ) + : null, + ), + Expanded( + child: Column( + crossAxisAlignment: .start, + children: [ + Text( + displayname, + maxLines: 1, + overflow: .ellipsis, + style: TextStyle(fontSize: 16), + ), + const SizedBox(height: 8), + HoverBuilder( + builder: (context, hovered) => StatefulBuilder( + builder: (context, setState) => MouseRegion( + cursor: SystemMouseCursors.click, + child: GestureDetector( + onTap: () { + Clipboard.setData( + ClipboardData(text: profile.userId), + ); + setState(() { + copied = true; + }); + }, + child: RichText( + text: TextSpan( + children: [ + WidgetSpan( + child: Padding( + padding: const EdgeInsets.only( + right: 4.0, + ), + child: AnimatedScale( + duration: + FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + scale: hovered + ? 1.33 + : copied + ? 1.25 + : 1.0, + child: Icon( + copied + ? Icons.check_circle + : Icons.copy, + size: 12, + color: copied + ? Colors.green + : null, + ), + ), + ), + ), + TextSpan(text: profile.userId), + ], + style: theme.textTheme.bodyMedium?.copyWith( + fontSize: 10, + ), + ), + maxLines: 1, + overflow: .ellipsis, + textAlign: TextAlign.center, + ), + ), + ), + ), + ), + if (presenceText != null) + Text( + presenceText, + style: theme.textTheme.bodyMedium?.copyWith( + fontSize: 10, + ), + ), + ], + ), + ), + ], + ), + + if (statusMsg != null) + ConstrainedBox( + constraints: BoxConstraints(maxHeight: 200), + child: Scrollbar( + thumbVisibility: true, + trackVisibility: true, + child: SingleChildScrollView( + child: SelectableLinkify( + text: statusMsg, + textScaleFactor: MediaQuery.textScalerOf( + context, + ).scale(1), + textAlign: TextAlign.start, + options: const LinkifyOptions(humanize: false), + linkStyle: TextStyle( + color: theme.colorScheme.primary, + decoration: TextDecoration.underline, + decorationColor: theme.colorScheme.primary, + ), + onOpen: (url) => + UrlLauncher(context, url.url).launchUrl(), + ), + ), + ), + ), + Row( + mainAxisAlignment: .spaceBetween, + spacing: 4, + children: [ + AdaptiveIconTextButton( + label: L10n.of(context).block, + icon: Icons.block_outlined, + onTap: client.userID == profile.userId + ? null + : () { + final router = GoRouter.of(context); + Navigator.of(context).pop(); + router.go( + '/rooms/settings/security/ignorelist', + extra: profile.userId, + ); + }, + ), + AdaptiveIconTextButton( + label: L10n.of(context).report, + icon: Icons.gavel_outlined, + onTap: client.userID == profile.userId + ? null + : () async { + Navigator.of(context).pop(); + final reason = await showTextInputDialog( + context: context, + title: L10n.of(context).whyDoYouWantToReportThis, + okLabel: L10n.of(context).report, + cancelLabel: L10n.of(context).cancel, + hintText: L10n.of(context).reason, + ); + if (reason == null || reason.isEmpty) return; + if (!context.mounted) return; + await showFutureLoadingDialog( + context: context, + future: () => Matrix.of( + context, + ).client.reportUser(profile.userId, reason), + ); + }, + ), + AdaptiveIconTextButton( + label: L10n.of(context).share, + icon: Icons.adaptive.share, + onTap: () => TatuShare.share( + 'https://matrix.to/#/${profile.userId}', + context, + ), + ), + ], + ), + AdaptiveDialogInkWell( + onTap: client.userID == profile.userId + ? null + : () async { + final router = GoRouter.of(context); + final roomIdResult = await showFutureLoadingDialog( + context: context, + future: () => client.startDirectChat(profile.userId), + ); + final roomId = roomIdResult.result; + if (roomId == null) return; + if (context.mounted) Navigator.of(context).pop(); + router.go('/rooms/$roomId'); + }, + child: Text( + directChatRoomId == null + ? L10n.of(context).createNewChat + : L10n.of(context).sendAMessage, + style: TextStyle(color: theme.colorScheme.secondary), + ), + ), + ], + ); + }, + ), + ); + } +} diff --git a/lib/widgets/app_lock.dart b/lib/widgets/app_lock.dart new file mode 100644 index 0000000..a3dcc97 --- /dev/null +++ b/lib/widgets/app_lock.dart @@ -0,0 +1,146 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/widgets/lock_screen.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:local_auth/local_auth.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:provider/provider.dart'; + +class AppLockWidget extends StatefulWidget { + const AppLockWidget({ + required this.child, + required this.pincode, + required this.useBiometrics, + required this.isLoggedIn, + super.key, + }); + + final bool isLoggedIn, useBiometrics; + final String? pincode; + final Widget child; + + @override + State createState() => AppLock(); +} + +class AppLock extends State with WidgetsBindingObserver { + String? _pincode; + bool _isLocked = false; + bool _useBiometrics = false; + bool _triedAutoBiometrics = false; + bool _paused = false; + bool get isActive => + _pincode != null && + int.tryParse(_pincode!) != null && + _pincode!.length >= 4 && + !_paused; + bool get useBiometrics => _useBiometrics; + + @override + void initState() { + _useBiometrics = widget.useBiometrics; + _pincode = widget.pincode; + _isLocked = isActive; + super.initState(); + WidgetsBinding.instance.addObserver(this); + WidgetsBinding.instance.addPostFrameCallback(_checkLoggedIn); + if (isActive && useBiometrics) unlockWithBiometrics(); + } + + Future _checkLoggedIn(_) async { + if (widget.isLoggedIn) return; + + await changePincode(null); + setState(() { + _isLocked = false; + }); + } + + @override + void didChangeAppLifecycleState(AppLifecycleState state) { + if (isActive && state == AppLifecycleState.hidden && !_isLocked) { + showLockScreen(); + } + if (_isLocked && + state == AppLifecycleState.resumed && + useBiometrics && + !_triedAutoBiometrics) { + unlockWithBiometrics(); + } + } + + bool get isLocked => _isLocked; + + Future changeUseBiometrics(bool useBiometrics) async { + await const FlutterSecureStorage().write( + key: 'chat.fluffy.use_biometrics', + value: useBiometrics.toString(), + ); + _useBiometrics = useBiometrics; + return; + } + + Future changePincode(String? pincode) async { + await const FlutterSecureStorage().write( + key: 'chat.fluffy.app_lock', + value: pincode, + ); + _pincode = pincode; + return; + } + + Future unlockWithBiometrics() async { + _triedAutoBiometrics = true; + final localAuth = LocalAuthentication(); + final unlocked = await localAuth.authenticate( + localizedReason: 'Please authenticate to unlock the app.', + persistAcrossBackgrounding: true, + biometricOnly: true, + ); + if (unlocked) { + setState(() { + _isLocked = false; + _triedAutoBiometrics = false; + }); + } + return unlocked; + } + + bool unlock(String pincode) { + final isCorrect = pincode == _pincode; + if (isCorrect) { + setState(() { + _isLocked = false; + }); + } + return isCorrect; + } + + void showLockScreen() => setState(() { + _isLocked = true; + }); + + Future pauseWhile(Future future) async { + _paused = true; + try { + return await future; + } finally { + _paused = false; + } + } + + static AppLock of(BuildContext context) => + Provider.of(context, listen: false); + + @override + Widget build(BuildContext context) => Provider( + create: (_) => this, + child: Stack( + fit: StackFit.expand, + children: [widget.child, if (isLocked) const LockScreen()], + ), + ); +} diff --git a/lib/widgets/avatar.dart b/lib/widgets/avatar.dart new file mode 100644 index 0000000..028fd5d --- /dev/null +++ b/lib/widgets/avatar.dart @@ -0,0 +1,170 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/tatu_palette.dart'; +import 'package:tatchat/utils/string_color.dart'; +import 'package:tatchat/widgets/mxc_image.dart'; +import 'package:tatchat/widgets/presence_builder.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class Avatar extends StatelessWidget { + final Uri? mxContent; + final String? name; + final double size; + final void Function()? onTap; + static const double defaultSize = 48; + final Client? client; + final String? presenceUserId; + final Color? presenceBackgroundColor; + final BorderRadius? borderRadius; + final IconData? icon; + final ShapeBorder? shapeBorder; + final Color? backgroundColor; + final Color? textColor; + + const Avatar({ + this.mxContent, + this.name, + this.size = defaultSize, + this.onTap, + this.client, + this.presenceUserId, + this.presenceBackgroundColor, + this.borderRadius, + this.shapeBorder, + this.icon, + this.backgroundColor, + this.textColor, + super.key, + }); + + String _calcFallbackLetters() { + final name = this.name?.trim(); + if (name == null || name.isEmpty) return '@'; + final words = name.split(' '); + if (words.length <= 1) return name.substring(0, 1); + return '${words.first.substring(0, 1)}${words.last.substring(0, 1)}'; + } + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + final fallbackLetters = _calcFallbackLetters(); + + final noPic = + mxContent == null || + mxContent.toString().isEmpty || + mxContent.toString() == 'null'; + final borderRadius = this.borderRadius ?? BorderRadius.circular(size / 2); + final presenceUserId = this.presenceUserId; + final container = Stack( + children: [ + SizedBox( + width: size, + height: size, + child: Material( + color: theme.brightness == Brightness.light + ? Colors.white + : Colors.black, + shape: + shapeBorder ?? + RoundedSuperellipseBorder( + borderRadius: borderRadius, + side: BorderSide.none, + ), + clipBehavior: Clip.antiAlias, + child: MxcImage( + client: client, + borderRadius: borderRadius, + key: ValueKey(mxContent.toString()), + cacheKey: '${mxContent}_$size', + uri: mxContent, + fit: BoxFit.cover, + width: size, + height: size, + placeholder: (_) => noPic + ? Container( + decoration: BoxDecoration( + color: + backgroundColor ?? + fallbackLetters.colorScheme.primaryContainer, + ), + alignment: Alignment.center, + child: Text( + fallbackLetters, + textAlign: TextAlign.center, + style: TextStyle( + fontFamily: 'RobotoMono', + color: + textColor ?? + fallbackLetters.colorScheme.onPrimaryContainer, + fontWeight: FontWeight.bold, + fontSize: (size / 2.5).roundToDouble(), + ), + ), + ) + : Center( + child: Icon( + Icons.person_2, + color: theme.colorScheme.tertiary, + size: size / 1.5, + ), + ), + ), + ), + ), + if (presenceUserId != null) + PresenceBuilder( + client: client, + userId: presenceUserId, + builder: (context, presence) { + if (presence == null || + (presence.presence == PresenceType.offline && + presence.lastActiveTimestamp == null)) { + return const SizedBox.shrink(); + } + final dotColor = presence.presence.isOnline + ? TatuPalette.brandEmerald + : presence.presence.isUnavailable + ? Colors.orange + : Colors.grey; + return Positioned( + bottom: -3, + right: -3, + child: Container( + width: 16, + height: 16, + decoration: BoxDecoration( + color: presenceBackgroundColor ?? theme.colorScheme.surface, + borderRadius: BorderRadius.circular(32), + ), + alignment: Alignment.center, + child: Container( + width: 10, + height: 10, + decoration: BoxDecoration( + color: dotColor, + borderRadius: BorderRadius.circular(16), + border: Border.all( + width: 1, + color: theme.colorScheme.surface, + ), + ), + ), + ), + ); + }, + ), + ], + ); + if (onTap == null) return container; + return MouseRegion( + cursor: SystemMouseCursors.click, + child: GestureDetector(onTap: onTap, child: container), + ); + } +} diff --git a/lib/widgets/blur_hash.dart b/lib/widgets/blur_hash.dart new file mode 100644 index 0000000..3b48538 --- /dev/null +++ b/lib/widgets/blur_hash.dart @@ -0,0 +1,91 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:blurhash_dart/blurhash_dart.dart' as b; +import 'package:flutter/foundation.dart'; +import 'package:image/image.dart' as image; +import 'package:material_ui/material_ui.dart'; + +class BlurHash extends StatefulWidget { + final double width; + final double height; + final String blurhash; + final BoxFit fit; + + const BlurHash({ + super.key, + String? blurhash, + required this.width, + required this.height, + this.fit = BoxFit.cover, + }) : blurhash = blurhash ?? 'LEHV6nWB2yk8pyo0adR*.7kCMdnj'; + + @override + State createState() => _BlurHashState(); +} + +class _BlurHashState extends State { + Uint8List? _data; + + static Future getBlurhashData(BlurhashData blurhashData) async { + final blurhash = b.BlurHash.decode(blurhashData.hsh); + final img = blurhash.toImage(blurhashData.w, blurhashData.h); + return Uint8List.fromList(image.encodePng(img)); + } + + Future _computeBlurhashData() async { + if (_data != null) return _data!; + final ratio = widget.width / widget.height; + var width = 32; + var height = 32; + if (ratio > 1.0) { + height = (width / ratio).round(); + } else { + width = (height * ratio).round(); + } + + return _data ??= await compute( + getBlurhashData, + BlurhashData(hsh: widget.blurhash, w: width, h: height), + ); + } + + @override + Widget build(BuildContext context) { + return FutureBuilder( + future: _computeBlurhashData(), + initialData: _data, + builder: (context, snapshot) { + final data = snapshot.data; + if (data == null) { + return Container( + width: widget.width, + height: widget.height, + color: Theme.of(context).colorScheme.onInverseSurface, + ); + } + return Image.memory( + data, + fit: widget.fit, + width: widget.width, + height: widget.height, + ); + }, + ); + } +} + +class BlurhashData { + final String hsh; + final int w; + final int h; + + const BlurhashData({required this.hsh, required this.w, required this.h}); + + factory BlurhashData.fromJson(Map json) => + BlurhashData(hsh: json['hsh'], w: json['w'], h: json['h']); + + Map toJson() => {'hsh': hsh, 'w': w, 'h': h}; +} diff --git a/lib/widgets/chat_settings_popup_menu.dart b/lib/widgets/chat_settings_popup_menu.dart new file mode 100644 index 0000000..08b29ab --- /dev/null +++ b/lib/widgets/chat_settings_popup_menu.dart @@ -0,0 +1,145 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import 'matrix.dart'; + +enum ChatPopupMenuActions { details, encryption, leave, search } + +class ChatSettingsPopupMenu extends StatefulWidget { + final Room room; + final bool displayChatDetails; + + const ChatSettingsPopupMenu(this.room, this.displayChatDetails, {super.key}); + + @override + ChatSettingsPopupMenuState createState() => ChatSettingsPopupMenuState(); +} + +class ChatSettingsPopupMenuState extends State { + StreamSubscription? notificationChangeSub; + + @override + void dispose() { + notificationChangeSub?.cancel(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + notificationChangeSub ??= Matrix.of(context).client.onSync.stream + .where( + (syncUpdate) => + syncUpdate.accountData?.any( + (accountData) => accountData.type == 'm.push_rules', + ) ?? + false, + ) + .listen((u) => setState(() {})); + return Stack( + alignment: Alignment.center, + children: [ + const SizedBox.shrink(), + PopupMenuButton( + useRootNavigator: true, + onSelected: (choice) async { + switch (choice) { + case ChatPopupMenuActions.leave: + final l10n = L10n.of(context); + final router = GoRouter.of(context); + final confirmed = await showOkCancelAlertDialog( + context: context, + title: l10n.areYouSure, + message: l10n.archiveRoomDescription, + okLabel: l10n.leave, + cancelLabel: l10n.cancel, + isDestructive: true, + ); + if (confirmed != OkCancelResult.ok) return; + if (!context.mounted) return; + final result = await showFutureLoadingDialog( + context: context, + future: () => widget.room.leave(), + ); + if (result.error == null) { + router.go('/rooms'); + } + + break; + case ChatPopupMenuActions.details: + _showChatDetails(); + break; + case ChatPopupMenuActions.search: + context.go('/rooms/${widget.room.id}/search'); + break; + case ChatPopupMenuActions.encryption: + context.go('/rooms/${widget.room.id}/encryption'); + break; + } + }, + itemBuilder: (BuildContext context) => [ + if (widget.displayChatDetails) + PopupMenuItem( + value: ChatPopupMenuActions.details, + child: Row( + children: [ + const Icon(Icons.info_outline_rounded), + const SizedBox(width: 12), + Text(L10n.of(context).chatDetails), + ], + ), + ), + PopupMenuItem( + value: ChatPopupMenuActions.search, + child: Row( + children: [ + const Icon(Icons.search_outlined), + const SizedBox(width: 12), + Text(L10n.of(context).search), + ], + ), + ), + PopupMenuItem( + value: ChatPopupMenuActions.encryption, + child: Row( + children: [ + const Icon(Icons.lock_outlined), + const SizedBox(width: 12), + Text(L10n.of(context).encryption), + ], + ), + ), + PopupMenuItem( + value: ChatPopupMenuActions.leave, + child: Row( + children: [ + const Icon(Icons.delete_outlined), + const SizedBox(width: 12), + Text(L10n.of(context).leave), + ], + ), + ), + ], + ), + ], + ); + } + + void _showChatDetails() { + if (GoRouterState.of(context).uri.path.endsWith('/details')) { + context.go('/rooms/${widget.room.id}'); + } else { + context.go('/rooms/${widget.room.id}/details'); + } + } +} diff --git a/lib/widgets/config_viewer.dart b/lib/widgets/config_viewer.dart new file mode 100644 index 0000000..07baf28 --- /dev/null +++ b/lib/widgets/config_viewer.dart @@ -0,0 +1,146 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_text_input_dialog.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class ConfigViewer extends StatefulWidget { + const ConfigViewer({super.key}); + + @override + State createState() => _ConfigViewerState(); +} + +class _ConfigViewerState extends State { + String _searchQuery = ''; + + Future _changeSetting( + AppSettings appSetting, + SharedPreferences store, + String initialValue, + ) async { + if (appSetting is AppSettings) { + await appSetting.setItem(!(initialValue == 'true')); + setState(() {}); + return; + } + + final value = await showTextInputDialog( + context: context, + title: appSetting.name, + hintText: appSetting.defaultValue.toString(), + initialText: initialValue, + ); + if (value == null) return; + + if (appSetting is AppSettings) { + await appSetting.setItem(value); + } + if (appSetting is AppSettings) { + await appSetting.setItem(int.parse(value)); + } + if (appSetting is AppSettings) { + await appSetting.setItem(double.parse(value)); + } + + setState(() {}); + } + + Future _reset() async { + await AppSettings.reset(); + setState(() {}); + } + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final normalizedQuery = _searchQuery.trim().toLowerCase(); + final filteredSettings = AppSettings.values + .where((setting) { + if (normalizedQuery.isEmpty) return true; + return setting.name.toLowerCase().contains(normalizedQuery); + }) + .toList(growable: false); + + return Scaffold( + appBar: AppBar( + title: Text(L10n.of(context).advancedConfigurations), + leading: BackButton(onPressed: () => context.go('/')), + actions: [ + TextButton(onPressed: _reset, child: Text(L10n.of(context).reset)), + ], + ), + body: Column( + crossAxisAlignment: .stretch, + children: [ + Container( + margin: const EdgeInsets.all(16), + padding: const EdgeInsets.all(16), + color: theme.colorScheme.errorContainer, + child: Text( + 'Changing configs by hand is untested! Use without any warranty!', + style: TextStyle(color: theme.colorScheme.onErrorContainer), + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: TextField( + onChanged: (value) => setState(() => _searchQuery = value), + decoration: InputDecoration( + hintText: 'Search config key', + prefixIcon: const Icon(Icons.search), + border: const OutlineInputBorder(), + isDense: true, + filled: true, + fillColor: theme.colorScheme.surfaceContainerHighest.withAlpha( + 128, + ), + ), + ), + ), + const SizedBox(height: 8), + Expanded( + child: ListView.builder( + itemCount: filteredSettings.length, + itemBuilder: (context, i) { + final store = Matrix.of(context).store; + final appSetting = filteredSettings[i]; + var value = ''; + if (appSetting is AppSettings) { + value = appSetting.value; + } + if (appSetting is AppSettings) { + value = appSetting.value.toString(); + } + if (appSetting is AppSettings) { + return SwitchListTile.adaptive( + title: Text(appSetting.name), + subtitle: Text(value), + value: appSetting.value, + onChanged: (value) => + _changeSetting(appSetting, store, (!value).toString()), + ); + } + if (appSetting is AppSettings) { + value = appSetting.value.toString(); + } + return ListTile( + title: Text(appSetting.name), + subtitle: Text(value), + onTap: () => _changeSetting(appSetting, store, value), + ); + }, + ), + ), + ], + ), + ); + } +} diff --git a/lib/widgets/future_loading_dialog.dart b/lib/widgets/future_loading_dialog.dart new file mode 100644 index 0000000..3ee2347 --- /dev/null +++ b/lib/widgets/future_loading_dialog.dart @@ -0,0 +1,170 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; + +import 'package:async/async.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/localized_exception_extension.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/adaptive_dialog_action.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix_api_lite/utils/logs.dart'; + +/// Displays a loading dialog which reacts to the given [future]. The dialog +/// will be dismissed and the value will be returned when the future completes. +/// If an error occured, then [onError] will be called and this method returns +/// null. +Future> showFutureLoadingDialog({ + required BuildContext context, + Future Function()? future, + Future Function(void Function(double?) setProgress)? futureWithProgress, + String? title, + String? backLabel, + bool barrierDismissible = false, + bool delay = true, + ExceptionContext? exceptionContext, + bool ignoreError = false, +}) async { + assert(future != null || futureWithProgress != null); + final onProgressStream = StreamController(); + final futureExec = + futureWithProgress?.call(onProgressStream.add) ?? future!(); + final resultFuture = ResultFuture(futureExec); + + if (delay) { + var i = 3; + while (i > 0) { + final result = resultFuture.result; + if (result != null) { + if (result.isError) break; + return result; + } + await Future.delayed(const Duration(milliseconds: 100)); + i--; + } + } + + if (!context.mounted) { + Logs().e( + 'Unable to show loading dialog!', + Exception('The BuildContext is not mounted!'), + StackTrace.current, + ); + return Result.capture(futureExec); + } + + final result = await showAdaptiveDialog>( + context: context, + barrierDismissible: barrierDismissible, + builder: (BuildContext context) => LoadingDialog( + future: futureExec, + title: title, + backLabel: backLabel, + exceptionContext: exceptionContext, + onProgressStream: onProgressStream.stream, + ), + ); + return result ?? + Result.error(Exception('FutureDialog canceled'), StackTrace.current); +} + +class LoadingDialog extends StatefulWidget { + final String? title; + final String? backLabel; + final Future future; + final ExceptionContext? exceptionContext; + final Stream onProgressStream; + + const LoadingDialog({ + super.key, + required this.future, + this.title, + this.backLabel, + this.exceptionContext, + required this.onProgressStream, + }); + + @override + LoadingDialogState createState() => LoadingDialogState(); +} + +class LoadingDialogState extends State { + Object? exception; + StackTrace? stackTrace; + + @override + void initState() { + super.initState(); + widget.future.then( + (result) { + if (!mounted) return; + if (!Navigator.of(context).canPop()) return; + Navigator.of(context).pop>(Result.value(result)); + }, + onError: (e, s) => setState(() { + exception = e; + stackTrace = s; + }), + ); + } + + @override + Widget build(BuildContext context) { + final exception = this.exception; + final titleLabel = exception != null + ? exception.toLocalizedString(context, widget.exceptionContext) + : widget.title ?? L10n.of(context).loadingPleaseWait; + + return AlertDialog.adaptive( + title: exception == null + ? null + : Icon( + Icons.error_outline_outlined, + color: Theme.of(context).colorScheme.error, + size: 48, + ), + content: ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 256), + child: Row( + crossAxisAlignment: .center, + children: [ + if (exception == null) ...[ + StreamBuilder( + stream: widget.onProgressStream, + builder: (context, snapshot) => + CircularProgressIndicator.adaptive(value: snapshot.data), + ), + const SizedBox(width: 20), + ], + Expanded( + child: Text( + titleLabel, + maxLines: 4, + textAlign: exception == null ? TextAlign.left : null, + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + ), + actions: exception == null + ? null + : [ + AdaptiveDialogAction( + onPressed: () => Navigator.of( + context, + ).pop>(Result.error(exception, stackTrace)), + child: Text(widget.backLabel ?? L10n.of(context).close), + ), + ], + ); + } +} + +extension DeprecatedApiAccessExtension on Result { + T? get result => asValue?.value; + + Object? get error => asError?.error; +} diff --git a/lib/widgets/hover_builder.dart b/lib/widgets/hover_builder.dart new file mode 100644 index 0000000..bffa0c5 --- /dev/null +++ b/lib/widgets/hover_builder.dart @@ -0,0 +1,34 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:material_ui/material_ui.dart'; + +class HoverBuilder extends StatefulWidget { + final Widget Function(BuildContext context, bool hovered) builder; + const HoverBuilder({required this.builder, super.key}); + + @override + State createState() => _HoverBuilderState(); +} + +class _HoverBuilderState extends State { + bool hovered = false; + @override + Widget build(BuildContext context) { + return MouseRegion( + onEnter: (_) => hovered + ? null + : setState(() { + hovered = true; + }), + onExit: (_) => !hovered + ? null + : setState(() { + hovered = false; + }), + child: widget.builder(context, hovered), + ); + } +} diff --git a/lib/widgets/incoming_call_dialog.dart b/lib/widgets/incoming_call_dialog.dart new file mode 100644 index 0000000..63fe8fa --- /dev/null +++ b/lib/widgets/incoming_call_dialog.dart @@ -0,0 +1,117 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/matrix_live_kit_calls/matrix_live_kit_call.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:tatchat/widgets/pulsating_widget.dart'; +import 'package:go_router/go_router.dart'; +import 'package:just_audio/just_audio.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class IncomingCallDialog extends StatefulWidget { + final Event event; + const IncomingCallDialog({required this.event, super.key}); + + @override + State createState() => _IncomingCallDialogState(); +} + +class _IncomingCallDialogState extends State { + final AudioPlayer _player = AudioPlayer(); + + StreamSubscription? _onSync; + + @override + void initState() { + _initAudioPlayer(); + _onSync = widget.event.room.client.onSync.stream.listen((_) { + if (!mounted) return; + if (!widget.event.room.hasActiveMatrixRtcCall) { + Logs().i('The other party has ended the call'); + Navigator.of(context).pop(); + } else if (widget.event.room.getActiveMatrixRtcMembers().any( + (member) => + member.senderId == widget.event.room.client.userID! && + member.deviceId != widget.event.room.client.deviceID!, + )) { + Logs().i('User has accepted the call on a different device'); + Navigator.of(context).pop(); + } + }); + final timeout = + widget.event.tryParseRtcNotificationContent()?.lifetime ?? + RtcNotificationContent.defaultLifetime; + Future.delayed(timeout).then((_) { + if (!mounted) return; + Navigator.of(context).pop(); + }); + super.initState(); + } + + Future _initAudioPlayer() async { + await _player.setAsset('assets/sounds/call_ring.mp3'); + await _player.setLoopMode(.one); + await _player.play(); + } + + @override + void dispose() { + _onSync?.cancel(); + _player.stop(); + _player.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + final displayname = widget.event.room.getLocalizedDisplayname(); + final avatar = widget.event.room.avatar; + final theme = Theme.of(context); + return AlertDialog( + title: Center(child: Text(L10n.of(context).incomingCall)), + content: Column( + mainAxisSize: .min, + spacing: 8, + children: [ + PulsatingWidget( + spreadRadius: 10.0, + color: theme.colorScheme.primary, + child: Avatar(mxContent: avatar, name: displayname), + ), + Text(displayname, textAlign: .center), + ], + ), + actionsAlignment: .spaceEvenly, + actions: [ + IconButton( + style: IconButton.styleFrom( + fixedSize: Size.fromRadius(24), + elevation: theme.appBarTheme.elevation ?? 4, + shadowColor: theme.appBarTheme.shadowColor, + backgroundColor: Colors.red.shade700, + foregroundColor: Colors.white, + ), + icon: Icon(Icons.call_end_outlined), + onPressed: () => context.pop(false), + ), + IconButton( + style: IconButton.styleFrom( + fixedSize: Size.fromRadius(24), + elevation: theme.appBarTheme.elevation ?? 4, + shadowColor: theme.appBarTheme.shadowColor, + backgroundColor: Colors.green.shade700, + foregroundColor: Colors.white, + ), + icon: Icon(Icons.call_outlined), + onPressed: () => context.pop(true), + ), + ], + ); + } +} diff --git a/lib/widgets/layouts/call_overlay.dart b/lib/widgets/layouts/call_overlay.dart new file mode 100644 index 0000000..ff34079 --- /dev/null +++ b/lib/widgets/layouts/call_overlay.dart @@ -0,0 +1,70 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/pages/call/call_page.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:material_ui/material_ui.dart'; + +class CallOverlay extends StatelessWidget { + final Widget child; + const CallOverlay({required this.child, super.key}); + + @override + Widget build(BuildContext context) { + return ValueListenableBuilder( + valueListenable: Matrix.of(context).activeCallRoomId, + builder: (context, value, _) { + final roomId = value; + if (roomId == null) return child; + return ValueListenableBuilder( + valueListenable: Matrix.of(context).callPosition, + builder: (context, value, _) { + final callPosition = value; + final callFullScreen = callPosition == .fullScreen; + return Stack( + children: [ + child, + AnimatedPositioned( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + top: callFullScreen + ? 0 + : callPosition == .top + ? 86 + : null, + left: callFullScreen ? 0 : null, + right: callFullScreen ? 0 : 8, + bottom: callFullScreen ? 0 : null, + height: callFullScreen ? null : 256, + width: callFullScreen ? null : 256, + child: Material( + elevation: callFullScreen ? 0 : 4, + clipBehavior: .hardEdge, + shape: callFullScreen + ? null + : RoundedRectangleBorder( + side: BorderSide(color: Colors.grey), + borderRadius: BorderRadius.circular( + AppConfig.borderRadius, + ), + ), + child: Navigator( + onDidRemovePage: (_) { + Matrix.of(context).activeCallRoomId.value = null; + }, + pages: [MaterialPage(child: CallPage(roomId: roomId))], + ), + ), + ), + ], + ); + }, + ); + }, + ); + } +} diff --git a/lib/widgets/layouts/empty_page.dart b/lib/widgets/layouts/empty_page.dart new file mode 100644 index 0000000..4dbfdf9 --- /dev/null +++ b/lib/widgets/layouts/empty_page.dart @@ -0,0 +1,37 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:math'; + +import 'package:material_ui/material_ui.dart'; + +class EmptyPage extends StatelessWidget { + static const double _width = 400; + const EmptyPage({super.key}); + @override + Widget build(BuildContext context) { + final width = min(MediaQuery.sizeOf(context).width, EmptyPage._width) / 2; + final theme = Theme.of(context); + return Scaffold( + // Add invisible appbar to make status bar on Android tablets bright. + appBar: AppBar( + automaticallyImplyLeading: false, + elevation: 0, + backgroundColor: Colors.transparent, + ), + extendBodyBehindAppBar: true, + body: Container( + alignment: Alignment.center, + child: Image.asset( + 'assets/logo/mini/logo_mono_mini.png', + color: theme.colorScheme.surfaceContainerHigh, + width: width, + height: width, + filterQuality: FilterQuality.medium, + ), + ), + ); + } +} diff --git a/lib/widgets/layouts/login_scaffold.dart b/lib/widgets/layouts/login_scaffold.dart new file mode 100644 index 0000000..a46539d --- /dev/null +++ b/lib/widgets/layouts/login_scaffold.dart @@ -0,0 +1,144 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +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'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:particles_network/particles_network.dart'; +import 'package:url_launcher/url_launcher_string.dart'; + +class LoginScaffold extends StatelessWidget { + final Widget body; + final AppBar? appBar; + final Widget? bottomNavigationBar; + + const LoginScaffold({ + super.key, + required this.body, + this.appBar, + this.bottomNavigationBar, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + return LayoutBuilder( + builder: (context, constraints) { + final isMobileMode = !FluffyThemes.isColumnModeByWidth( + constraints.maxWidth, + ); + if (isMobileMode) { + return Scaffold( + key: const Key('LoginScaffold'), + appBar: appBar, + body: SafeArea(child: body), + bottomNavigationBar: bottomNavigationBar, + ); + } + return Container( + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [ + theme.colorScheme.surfaceContainerLow, + theme.colorScheme.surfaceContainer, + theme.colorScheme.surfaceContainerHighest, + ], + begin: Alignment.topLeft, + end: Alignment.bottomRight, + ), + ), + child: Stack( + children: [ + if (!MediaQuery.disableAnimationsOf(context)) + ParticleNetwork( + maxSpeed: 0.25, + particleColor: theme.colorScheme.primary, + lineColor: theme.colorScheme.secondary, + ), + Column( + children: [ + const SizedBox(height: 16), + Expanded( + child: Center( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0), + child: Material( + borderRadius: BorderRadius.circular( + AppConfig.borderRadius, + ), + clipBehavior: Clip.hardEdge, + elevation: + theme.appBarTheme.scrolledUnderElevation ?? 4, + shadowColor: theme.appBarTheme.shadowColor, + child: ConstrainedBox( + constraints: isMobileMode + ? const BoxConstraints() + : const BoxConstraints( + maxWidth: 480, + maxHeight: 640, + ), + child: Scaffold( + key: const Key('LoginScaffold'), + appBar: appBar, + body: SafeArea(child: body), + bottomNavigationBar: bottomNavigationBar, + ), + ), + ), + ), + ), + ), + const _PrivacyButtons(mainAxisAlignment: .center), + ], + ), + ], + ), + ); + }, + ); + } +} + +class _PrivacyButtons extends StatelessWidget { + final MainAxisAlignment mainAxisAlignment; + const _PrivacyButtons({required this.mainAxisAlignment}); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final shadowTextStyle = TextStyle(color: theme.colorScheme.secondary); + return SizedBox( + height: 64, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Row( + mainAxisAlignment: mainAxisAlignment, + children: [ + TextButton( + onPressed: () => launchUrlString(AppSettings.website.value), + child: Text(L10n.of(context).website, style: shadowTextStyle), + ), + TextButton( + onPressed: () => launchUrlString(AppConfig.supportUrl), + child: Text(L10n.of(context).help, style: shadowTextStyle), + ), + TextButton( + onPressed: () => launchUrlString(AppSettings.privacyPolicy.value), + child: Text(L10n.of(context).privacy, style: shadowTextStyle), + ), + TextButton( + onPressed: () => PlatformInfos.showDialog(context), + child: Text(L10n.of(context).about, style: shadowTextStyle), + ), + ], + ), + ), + ); + } +} diff --git a/lib/widgets/layouts/max_width_body.dart b/lib/widgets/layouts/max_width_body.dart new file mode 100644 index 0000000..93a6d3f --- /dev/null +++ b/lib/widgets/layouts/max_width_body.dart @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:material_ui/material_ui.dart'; + +class MaxWidthBody extends StatelessWidget { + final Widget child; + final double maxWidth; + final bool withScrolling; + final EdgeInsets? innerPadding; + + const MaxWidthBody({ + required this.child, + this.maxWidth = 600, + this.withScrolling = true, + this.innerPadding, + super.key, + }); + @override + Widget build(BuildContext context) { + return SafeArea( + child: LayoutBuilder( + builder: (context, constraints) { + final theme = Theme.of(context); + + const desiredWidth = FluffyThemes.columnWidth * 1.5; + final body = constraints.maxWidth <= desiredWidth + ? child + : Container( + alignment: Alignment.topCenter, + padding: const EdgeInsets.all(32), + child: ConstrainedBox( + constraints: const BoxConstraints( + maxWidth: FluffyThemes.columnWidth * 1.5, + ), + child: Material( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular( + AppConfig.borderRadius, + ), + side: BorderSide(color: theme.dividerColor), + ), + clipBehavior: Clip.hardEdge, + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 16.0), + child: child, + ), + ), + ), + ); + if (!withScrolling) return body; + + return SingleChildScrollView( + padding: innerPadding, + physics: const ScrollPhysics(), + child: body, + ); + }, + ), + ); + } +} diff --git a/lib/widgets/layouts/two_column_layout.dart b/lib/widgets/layouts/two_column_layout.dart new file mode 100644 index 0000000..66c9814 --- /dev/null +++ b/lib/widgets/layouts/two_column_layout.dart @@ -0,0 +1,43 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/themes.dart'; +import 'package:material_ui/material_ui.dart'; + +class TwoColumnLayout extends StatelessWidget { + final Widget mainView; + final Widget sideView; + final bool hasNavigationRail; + + const TwoColumnLayout({ + super.key, + required this.mainView, + required this.sideView, + this.hasNavigationRail = true, + }); + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + return ScaffoldMessenger( + child: Scaffold( + body: Row( + children: [ + Container( + clipBehavior: Clip.antiAlias, + decoration: const BoxDecoration(), + width: + FluffyThemes.columnWidth + + (hasNavigationRail ? FluffyThemes.navRailWidth : 0), + child: mainView, + ), + Container(width: 1.0, color: theme.dividerColor), + Expanded(child: ClipRRect(child: sideView)), + ], + ), + ), + ); + } +} diff --git a/lib/widgets/local_notifications_extension.dart b/lib/widgets/local_notifications_extension.dart new file mode 100644 index 0000000..f06b0a4 --- /dev/null +++ b/lib/widgets/local_notifications_extension.dart @@ -0,0 +1,141 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/client_download_content_extension.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:tatchat/utils/notification_background_handler.dart'; +import 'package:tatchat/utils/push_helper.dart'; +import 'package:tatchat/widgets/tatu_chat_app.dart'; +import 'package:tatchat/widgets/incoming_call_dialog.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter_local_notifications/flutter_local_notifications.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; +import 'package:universal_html/html.dart' as html; + +extension LocalNotificationsExtension on MatrixState { + static final html.AudioElement _audioPlayer = html.AudioElement() + ..src = 'assets/assets/sounds/notification.mp3' + ..load(); + + Future showLocalNotification(Event event) async { + if (event.type == RtcNotificationContent.eventType && + event.tryParseRtcNotificationContent()?.notificationType == .ring) { + final context = + TatuChatApp.router.routerDelegate.navigatorKey.currentContext ?? + this.context; + showDialog( + context: context, + builder: (_) => IncomingCallDialog(event: event), + ).then((joinCall) { + if (joinCall != true) return; + if (!context.mounted) return; + setActiveClient(event.room.client); + TatuChatApp.router.go('/rooms/${event.room.id}?action=call'); + }); + } + + final l10n = L10n.of(context); + final roomId = event.room.id; + if (activeRoomId == roomId) { + if (WidgetsBinding.instance.lifecycleState == AppLifecycleState.resumed) { + return; + } + } + + final title = event.room.getLocalizedDisplayname( + MatrixLocals(L10n.of(context)), + ); + final body = await event.calcLocalizedBody( + MatrixLocals(L10n.of(context)), + withSenderNamePrefix: + !event.room.isDirectChat || + event.room.lastEvent?.senderId == client.userID, + plaintextBody: true, + hideReply: true, + hideEdit: true, + removeMarkdown: true, + ); + final avatarUrl = event.room.avatar; + + const size = 128; + const thumbnailMethod = ThumbnailMethod.crop; + + if (avatarUrl != null) { + // Pre-cache so that we can later just set the thumbnail uri as icon: + try { + await client.downloadMxcCached( + avatarUrl, + width: size, + height: size, + thumbnailMethod: thumbnailMethod, + isThumbnail: true, + rounded: true, + ); + } catch (e, s) { + Logs().d('Unable to pre-download avatar for web notification', e, s); + } + } + + if (kIsWeb) { + final thumbnailUri = await avatarUrl?.getThumbnailUri( + client, + width: size, + height: size, + method: thumbnailMethod, + ); + + if (AppSettings.webNotificationSound.value) _audioPlayer.play(); + + html.Notification( + title, + body: body, + icon: thumbnailUri?.toString(), + tag: event.room.id, + ); + return; + } + + FlutterLocalNotificationsPlugin().show( + id: event.room.id.hashCode, + title: title, + body: body, + notificationDetails: NotificationDetails( + linux: LinuxNotificationDetails( + sound: ThemeLinuxSound('message-new-instant'), + actions: switch (event.type) { + EventTypes.Message || + EventTypes.Encrypted || + EventTypes.Sticker => [ + LinuxNotificationAction( + key: FluffyChatNotificationActions.markAsRead.name, + label: l10n.markAsRead, + ), + LinuxNotificationAction( + key: FluffyChatNotificationActions.mute.name, + label: l10n.mute, + ), + ], + RtcNotificationContent.eventType => [ + LinuxNotificationAction( + key: FluffyChatNotificationActions.enterCall.name, + label: l10n.enterCall, + ), + ], + _ => [], + }, + ), + ), + payload: FluffyChatPushPayload( + client.clientName, + event.room.id, + event.eventId, + ).toString(), + ); + } +} diff --git a/lib/widgets/lock_screen.dart b/lib/widgets/lock_screen.dart new file mode 100644 index 0000000..548efab --- /dev/null +++ b/lib/widgets/lock_screen.dart @@ -0,0 +1,198 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/widgets/app_lock.dart'; +import 'package:flutter/services.dart'; +import 'package:local_auth/local_auth.dart'; +import 'package:material_ui/material_ui.dart'; + +class LockScreen extends StatefulWidget { + const LockScreen({super.key}); + + @override + State createState() => _LockScreenState(); +} + +class _LockScreenState extends State { + String? _errorText; + int _coolDownSeconds = 5; + bool _inputBlocked = false; + final TextEditingController _textEditingController = TextEditingController(); + + Future tryUnlockWithBiometrics() async { + setState(() { + _errorText = null; + }); + + final success = await AppLock.of(context).unlockWithBiometrics(); + + if (success) { + setState(() { + _inputBlocked = false; + _errorText = null; + }); + return; + } + + setState(() { + _errorText = L10n.of(context).wrongPinEntered(_coolDownSeconds); + _inputBlocked = true; + }); + Future.delayed(Duration(seconds: _coolDownSeconds)).then((_) { + setState(() { + _inputBlocked = false; + _coolDownSeconds *= 2; + _errorText = null; + }); + }); + _textEditingController.clear(); + } + + Future tryUnlock(String text) async { + text = text.trim(); + setState(() { + _errorText = null; + }); + + final enteredPin = int.tryParse(text); + if (enteredPin == null) { + setState(() { + _errorText = L10n.of(context).invalidInput; + }); + _textEditingController.clear(); + return; + } + + if (AppLock.of(context).unlock(text)) { + setState(() { + _inputBlocked = false; + _errorText = null; + }); + _textEditingController.clear(); + return; + } + + setState(() { + _errorText = L10n.of(context).wrongPinEntered(_coolDownSeconds); + _inputBlocked = true; + }); + Future.delayed(Duration(seconds: _coolDownSeconds)).then((_) { + setState(() { + _inputBlocked = false; + _coolDownSeconds *= 2; + _errorText = null; + }); + }); + _textEditingController.clear(); + } + + @override + Widget build(BuildContext context) { + return Overlay( + initialEntries: [ + OverlayEntry( + builder: (context) => Scaffold( + appBar: AppBar( + title: Text(L10n.of(context).pleaseEnterYourPin), + centerTitle: true, + ), + body: ListView( + shrinkWrap: true, + padding: const EdgeInsets.all(16.0), + children: [ + Center( + child: Image.asset( + 'assets/logo/mini/logo_mono_mini.png', + width: 128, + color: Theme.of(context).colorScheme.surfaceContainerHigh, + ), + ), + const SizedBox(height: 16), + Center( + child: TextField( + controller: _textEditingController, + textInputAction: TextInputAction.go, + keyboardType: TextInputType.number, + obscureText: true, + autofocus: true, + textAlign: TextAlign.center, + readOnly: _inputBlocked, + onChanged: (text) { + if (text.length >= 6) tryUnlock(text); + }, + onSubmitted: tryUnlock, + style: const TextStyle(fontSize: 40), + inputFormatters: [LengthLimitingTextInputFormatter(6)], + decoration: InputDecoration( + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(40), + ), + errorText: _errorText, + hintText: '✱✱✱✱', + hintStyle: TextStyle( + color: Theme.of( + context, + ).colorScheme.surfaceContainerHighest, + ), + prefix: AppLock.of(context).useBiometrics + ? IconButton( + tooltip: L10n.of(context).unlockWithBiometrics, + icon: FutureBuilder( + future: LocalAuthentication() + .getAvailableBiometrics(), + builder: (context, snapshot) { + final availableBiometrics = + snapshot.data ?? []; + if (availableBiometrics.contains( + BiometricType.face, + )) { + return Icon(Icons.face_unlock_outlined); + } + return Icon(Icons.fingerprint_outlined); + }, + ), + onPressed: _inputBlocked + ? null + : tryUnlockWithBiometrics, + ) + : IconButton( + tooltip: L10n.of(context).reset, + icon: Icon(Icons.cancel_outlined), + onPressed: _inputBlocked + ? null + : _textEditingController.clear, + ), + suffix: IconButton( + tooltip: L10n.of(context).unlock, + icon: Icon(Icons.send_outlined), + onPressed: _inputBlocked + ? null + : () => tryUnlock(_textEditingController.text), + ), + ), + ), + ), + if (_inputBlocked) + const Padding( + padding: EdgeInsets.all(16.0), + child: CircularProgressIndicator.adaptive(), + ), + ], + ), + ), + ), + ], + ); + } + + @override + void dispose() { + _textEditingController.dispose(); + super.dispose(); + } +} diff --git a/lib/widgets/log_view.dart b/lib/widgets/log_view.dart new file mode 100644 index 0000000..e54bc94 --- /dev/null +++ b/lib/widgets/log_view.dart @@ -0,0 +1,97 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class LogViewer extends StatefulWidget { + const LogViewer({super.key}); + + @override + LogViewerState createState() => LogViewerState(); +} + +class LogViewerState extends State { + Level logLevel = Level.debug; + double fontSize = 14; + @override + Widget build(BuildContext context) { + final outputEvents = Logs().outputEvents + .where((e) => e.level.index <= logLevel.index) + .toList(); + return Scaffold( + backgroundColor: Colors.black, + appBar: AppBar( + title: Text(logLevel.toString()), + leading: BackButton(onPressed: () => context.go('/')), + actions: [ + IconButton( + icon: const Icon(Icons.zoom_in_outlined), + onPressed: () => setState(() => fontSize++), + ), + IconButton( + icon: const Icon(Icons.zoom_out_outlined), + onPressed: () => setState(() => fontSize--), + ), + PopupMenuButton( + useRootNavigator: true, + itemBuilder: (context) => Level.values + .map( + (level) => PopupMenuItem( + value: level, + child: Text(level.toString()), + ), + ) + .toList(), + onSelected: (Level level) => setState(() => logLevel = level), + ), + ], + ), + body: SelectionArea( + child: ListView.builder( + itemCount: outputEvents.length, + itemBuilder: (context, i) => SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Text( + outputEvents[i].toDisplayString(), + style: TextStyle(color: outputEvents[i].color), + ), + ), + ), + ), + ); + } +} + +extension on LogEvent { + Color get color { + switch (level) { + case Level.wtf: + return Colors.purple; + case Level.error: + return Colors.red; + case Level.warning: + return Colors.orange; + case Level.info: + return Colors.green; + case Level.debug: + return Colors.white; + case Level.verbose: + return Colors.grey; + } + } + + String toDisplayString() { + var str = '# [${level.toString().split('.').last.toUpperCase()}] $title'; + if (exception != null) { + str += ' - $exception'; + } + if (stackTrace != null) { + str += '\n$stackTrace'; + } + return str; + } +} diff --git a/lib/widgets/matrix.dart b/lib/widgets/matrix.dart new file mode 100644 index 0000000..31e7082 --- /dev/null +++ b/lib/widgets/matrix.dart @@ -0,0 +1,435 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; +import 'dart:convert'; + +import 'package:collection/collection.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/client_manager.dart'; +import 'package:tatchat/utils/init_with_restore.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/matrix_file_extension.dart'; +import 'package:tatchat/utils/notification_background_handler.dart'; +import 'package:tatchat/utils/platform_infos.dart'; +import 'package:tatchat/utils/uia_request_manager.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart'; +import 'package:tatchat/widgets/tatu_chat_app.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter_local_notifications/flutter_local_notifications.dart'; +import 'package:intl/intl.dart'; +import 'package:just_audio/just_audio.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/encryption.dart'; +import 'package:matrix/matrix.dart'; +import 'package:provider/provider.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:universal_html/html.dart' as html; +import 'package:url_launcher/url_launcher_string.dart'; + +import '../config/setting_keys.dart'; +import '../pages/key_verification/key_verification_dialog.dart'; +import '../utils/account_bundles.dart'; +import '../utils/background_push.dart'; +import 'local_notifications_extension.dart'; + +class Matrix extends StatefulWidget { + final Widget? child; + + final List clients; + + final Map? queryParameters; + + final SharedPreferences store; + + const Matrix({ + this.child, + required this.clients, + required this.store, + this.queryParameters, + super.key, + }); + + @override + MatrixState createState() => MatrixState(); + + /// Returns the (nearest) Client instance of your application. + static MatrixState of(BuildContext context) => + Provider.of(context, listen: false); +} + +class MatrixState extends State { + int _activeClient = -1; + String? activeBundle; + + SharedPreferences get store => widget.store; + + BackgroundPush? backgroundPush; + + final ValueNotifier activeCallRoomId = ValueNotifier(null); + final ValueNotifier callPosition = ValueNotifier( + CallPosition.fullScreen, + ); + + Client get client { + if (_activeClient < 0 || _activeClient >= widget.clients.length) { + return currentBundle!.first!; + } + return widget.clients[_activeClient]; + } + + bool get isMultiAccount => widget.clients.length > 1; + + int getClientIndexByMatrixId(String matrixId) => + widget.clients.indexWhere((client) => client.userID == matrixId); + + void setActiveClient(Client? cl) { + final i = widget.clients.indexWhere((c) => c == cl); + if (i != -1) { + _activeClient = i; + } else { + Logs().w('Tried to set an unknown client ${cl!.userID} as active'); + } + } + + List? get currentBundle { + if (!hasComplexBundles) { + return List.from(widget.clients); + } + final bundles = accountBundles; + if (bundles.containsKey(activeBundle)) { + return bundles[activeBundle]; + } + return bundles.values.first; + } + + Map> get accountBundles { + final resBundles = + >{}; + for (var i = 0; i < widget.clients.length; i++) { + final bundles = widget.clients[i].accountBundles; + for (final bundle in bundles) { + if (bundle.name == null) { + continue; + } + resBundles[bundle.name] ??= []; + resBundles[bundle.name]!.add(( + client: widget.clients[i], + bundle: bundle, + )); + } + } + for (final b in resBundles.values) { + b.sort( + (a, b) => a.bundle!.priority == null + ? 1 + : b.bundle!.priority == null + ? -1 + : a.bundle!.priority!.compareTo(b.bundle!.priority!), + ); + } + return resBundles.map( + (k, v) => MapEntry(k, v.map((vv) => vv.client).toList()), + ); + } + + bool get hasComplexBundles => accountBundles.values.any((v) => v.length > 1); + + Client? _loginClientCandidate; + + AudioPlayer? audioPlayer; + final ValueNotifier voiceMessageEventId = ValueNotifier(null); + + Future getLoginClient() async { + if (widget.clients.isNotEmpty && !client.isLogged()) { + return client; + } + final candidate = _loginClientCandidate ??= + await ClientManager.createClient( + '${AppSettings.applicationName.value}-${DateTime.now().millisecondsSinceEpoch}', + store, + ) + ..onLoginStateChanged.stream + .where((l) => l == LoginState.loggedIn) + .first + .then((_) { + if (!widget.clients.contains(_loginClientCandidate)) { + widget.clients.add(_loginClientCandidate!); + } + ClientManager.addClientNameToStore( + _loginClientCandidate!.clientName, + store, + ); + _registerSubs(_loginClientCandidate!.clientName); + setActiveClient(_loginClientCandidate); + _loginClientCandidate = null; + TatuChatApp.router.go('/backup'); + }); + if (widget.clients.isEmpty) widget.clients.add(candidate); + return candidate; + } + + Client? getClientByName(String name) => + widget.clients.firstWhereOrNull((c) => c.clientName == name); + + final onRoomKeyRequestSub = {}; + final onKeyVerificationRequestSub = {}; + final onNotification = {}; + final onLogoutSub = >{}; + final onUiaRequest = >{}; + + String? _cachedPassword; + Timer? _cachedPasswordClearTimer; + + String? get cachedPassword => _cachedPassword; + + set cachedPassword(String? p) { + Logs().d('Password cached'); + _cachedPasswordClearTimer?.cancel(); + _cachedPassword = p; + _cachedPasswordClearTimer = Timer(const Duration(minutes: 10), () { + _cachedPassword = null; + Logs().d('Cached Password cleared'); + }); + } + + String? get activeRoomId { + final route = TatuChatApp.router.routeInformationProvider.value.uri.path; + if (!route.startsWith('/rooms/')) return null; + return route.split('/')[2]; + } + + @override + void initState() { + super.initState(); + _listener = AppLifecycleListener(onStateChange: didChangeAppLifecycleState); + initMatrix(); + } + + AppLifecycleListener? _listener; + + void _registerSubs(String name) { + final c = getClientByName(name); + if (c == null) { + Logs().w( + 'Attempted to register subscriptions for non-existing client $name', + ); + return; + } + onRoomKeyRequestSub[name] ??= c.onRoomKeyRequest.stream.listen(( + RoomKeyRequest request, + ) async { + if (widget.clients.any( + ((cl) => + cl.userID == request.requestingDevice.userId && + cl.identityKey == request.requestingDevice.curve25519Key), + )) { + Logs().i( + '[Key Request] Request is from one of our own clients, forwarding the key...', + ); + await request.forwardKey(); + } + }); + onKeyVerificationRequestSub[name] ??= c.onKeyVerificationRequest.stream + .listen((KeyVerification request) async { + var hidPopup = false; + request.onUpdate = () { + if (!hidPopup && + { + KeyVerificationState.done, + KeyVerificationState.error, + }.contains(request.state)) { + TatuChatApp.router.pop('dialog'); + } + hidPopup = true; + }; + request.onUpdate = null; + hidPopup = true; + await KeyVerificationDialog(request: request).show( + TatuChatApp.router.routerDelegate.navigatorKey.currentContext ?? + context, + ); + }); + onLogoutSub[name] ??= c.onLoginStateChanged.stream + .where((state) => state == LoginState.loggedOut) + .listen((_) { + final loggedInWithMultipleClients = widget.clients.length > 1; + + _cancelSubs(c.clientName); + widget.clients.remove(c); + ClientManager.removeClientNameFromStore(c.clientName, store); + InitWithRestoreExtension.deleteSessionBackup(name); + + if (loggedInWithMultipleClients) { + final snackbarContext = + TatuChatApp + .router + .routerDelegate + .navigatorKey + .currentContext ?? + context; + + if (!snackbarContext.mounted) return; + final l10n = L10n.of(snackbarContext); + ScaffoldMessenger.of( + snackbarContext, + ).showSnackBar(SnackBar(content: Text(l10n.oneClientLoggedOut))); + return; + } + TatuChatApp.router.go('/'); + }); + onUiaRequest[name] ??= c.onUiaRequest.stream.listen(uiaRequestHandler); + if (PlatformInfos.isWeb || PlatformInfos.isLinux) { + FlutterLocalNotificationsPlugin().initialize( + settings: InitializationSettings( + linux: LinuxInitializationSettings( + defaultActionName: FluffyChatNotificationActions.open.name, + ), + ), + onDidReceiveNotificationResponse: (response) => notificationTap( + response, + clients: widget.clients, + router: TatuChatApp.router, + l10n: null, + ), + ); + c.onSync.stream.first.then((s) { + html.Notification.requestPermission(); + onNotification[name] ??= c.onNotification.stream.listen( + showLocalNotification, + ); + }); + } + } + + void _cancelSubs(String name) { + onRoomKeyRequestSub[name]?.cancel(); + onRoomKeyRequestSub.remove(name); + onKeyVerificationRequestSub[name]?.cancel(); + onKeyVerificationRequestSub.remove(name); + onLogoutSub[name]?.cancel(); + onLogoutSub.remove(name); + onNotification[name]?.cancel(); + onNotification.remove(name); + } + + void initMatrix() { + for (final c in widget.clients) { + _registerSubs(c.clientName); + } + + if (PlatformInfos.isMobile) { + backgroundPush = BackgroundPush( + this, + onFcmError: (errorMsg, {Uri? link}) async { + final context = + TatuChatApp.router.routerDelegate.navigatorKey.currentContext ?? + this.context; + if (!context.mounted) return; + final result = await showOkCancelAlertDialog( + context: context, + title: L10n.of(context).pushNotificationsNotAvailable, + message: errorMsg, + okLabel: link == null + ? L10n.of(context).ok + : L10n.of(context).learnMore, + cancelLabel: L10n.of(context).doNotShowAgain, + ); + if (result == OkCancelResult.ok && link != null) { + launchUrlString( + link.toString(), + mode: LaunchMode.externalApplication, + ); + } + if (result == OkCancelResult.cancel) { + await AppSettings.showNoGoogle.setItem(true); + } + }, + ); + } + } + + void didChangeAppLifecycleState(AppLifecycleState state) { + final foreground = + state != AppLifecycleState.inactive && + state != AppLifecycleState.paused; + for (final client in widget.clients) { + client.syncPresence = state == AppLifecycleState.resumed + ? null + : PresenceType.unavailable; + if (PlatformInfos.isMobile) { + client.backgroundSync = foreground; + client.requestHistoryOnLimitedTimeline = !foreground; + Logs().v('Set background sync to', foreground); + } + } + } + + @override + void dispose() { + _listener?.dispose(); + + for (final sub in onRoomKeyRequestSub.values) { + sub.cancel(); + } + for (final sub in onKeyVerificationRequestSub.values) { + sub.cancel(); + } + for (final sub in onLogoutSub.values) { + sub.cancel(); + } + for (final sub in onNotification.values) { + sub.cancel(); + } + for (final sub in onUiaRequest.values) { + sub.cancel(); + } + onRoomKeyRequestSub.clear(); + onKeyVerificationRequestSub.clear(); + onLogoutSub.clear(); + onNotification.clear(); + onUiaRequest.clear(); + + voiceMessageEventId.dispose(); + + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Provider(create: (_) => this, child: widget.child); + } + + Future dehydrateAction(BuildContext context) async { + final l10n = L10n.of(context); + final response = await showOkCancelAlertDialog( + context: context, + isDestructive: true, + title: l10n.dehydrate, + message: l10n.dehydrateWarning, + ); + if (response != OkCancelResult.ok) { + return; + } + if (!context.mounted) return; + final result = await showFutureLoadingDialog( + context: context, + future: client.exportDump, + ); + final export = result.result; + if (export == null) return; + + final exportBytes = Uint8List.fromList(const Utf8Codec().encode(export)); + + final exportFileName = + 'fluffychat-export-${DateFormat(DateFormat.YEAR_MONTH_DAY).format(DateTime.now())}.fluffybackup'; + + final file = MatrixFile(bytes: exportBytes, name: exportFileName); + if (!context.mounted) return; + file.save(context); + } +} + +enum CallPosition { fullScreen, top } diff --git a/lib/widgets/member_actions_popup_menu_button.dart b/lib/widgets/member_actions_popup_menu_button.dart new file mode 100644 index 0000000..76dc622 --- /dev/null +++ b/lib/widgets/member_actions_popup_menu_button.dart @@ -0,0 +1,377 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/widgets/permission_slider_dialog.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import 'adaptive_dialogs/show_ok_cancel_alert_dialog.dart'; +import 'adaptive_dialogs/show_text_input_dialog.dart'; +import 'adaptive_dialogs/user_dialog.dart'; +import 'avatar.dart'; +import 'future_loading_dialog.dart'; + +Future showMemberActionsPopupMenu({ + required BuildContext context, + required User user, + void Function()? onMention, +}) async { + final l10n = L10n.of(context); + final scaffoldMessenger = ScaffoldMessenger.of(context); + final theme = Theme.of(context); + final displayname = user.calcDisplayname(); + final isMe = user.room.client.userID == user.id; + + final overlay = Overlay.of(context).context.findRenderObject() as RenderBox; + + final button = context.findRenderObject() as RenderBox; + + final position = RelativeRect.fromRect( + Rect.fromPoints( + button.localToGlobal(const Offset(0, -65), ancestor: overlay), + button.localToGlobal( + button.size.bottomRight(Offset.zero) + const Offset(-50, 0), + ancestor: overlay, + ), + ), + Offset.zero & overlay.size, + ); + + const defaultPowerLevels = {0, 50, 100, 9007199254740991}; + + final action = await showMenu<_MemberActions>( + context: context, + position: position, + items: >[ + PopupMenuItem( + value: _MemberActions.info, + child: Row( + spacing: 12.0, + children: [ + Avatar(name: displayname, size: 30, mxContent: user.avatarUrl), + ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 200), + child: Text( + displayname, + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + ), + if (onMention != null) + PopupMenuItem( + value: _MemberActions.mention, + child: Row( + children: [ + const Icon(Icons.alternate_email_outlined), + const SizedBox(width: 18), + Text(L10n.of(context).mention), + ], + ), + ), + if (user.membership == Membership.knock) + PopupMenuItem( + value: _MemberActions.approve, + child: Row( + children: [ + const Icon(Icons.how_to_reg_outlined), + const SizedBox(width: 18), + Text(L10n.of(context).approve), + ], + ), + ), + if (user.canChangeUserPowerLevel) ...[ + if (user.powerLevel.level < 100) + PopupMenuItem( + value: _MemberActions.makeAdmin, + child: Row( + children: [ + const Icon(Icons.admin_panel_settings_outlined), + const SizedBox(width: 18), + Text(L10n.of(context).makeAdmin), + ], + ), + ), + if (user.powerLevel.level < 50) + PopupMenuItem( + value: _MemberActions.makeModerator, + child: Row( + children: [ + const Icon(Icons.add_moderator_outlined), + const SizedBox(width: 18), + Text(L10n.of(context).makeModerator), + ], + ), + ), + if (user.powerLevel.role == PowerLevelRole.admin) + PopupMenuItem( + value: _MemberActions.removeAdmin, + child: Row( + children: [ + const Icon(Icons.remove_moderator_outlined), + const SizedBox(width: 18), + Text(L10n.of(context).removeAdminRights), + ], + ), + ) + else if (user.powerLevel.role == PowerLevelRole.moderator) + PopupMenuItem( + value: _MemberActions.removeModerator, + child: Row( + children: [ + const Icon(Icons.remove_moderator_outlined), + const SizedBox(width: 18), + Text(L10n.of(context).removeModeratorRights), + ], + ), + ), + ], + if (user.canChangeUserPowerLevel || + !defaultPowerLevels.contains(user.powerLevel.level)) + PopupMenuItem( + value: _MemberActions.setPowerLevel, + enabled: user.canChangeUserPowerLevel, + child: Row( + children: [ + const Icon(Icons.manage_accounts_outlined), + const SizedBox(width: 18), + Text( + user.canChangeUserPowerLevel + ? L10n.of(context).setPowerLevel + : L10n.of(context).powerLevel, + ), + if (!defaultPowerLevels.contains(user.powerLevel.level)) + Text(' (${user.powerLevel})'), + ], + ), + ), + if (user.canKick) + PopupMenuItem( + value: _MemberActions.kick, + child: Row( + children: [ + Icon( + Icons.person_remove_outlined, + color: theme.colorScheme.onErrorContainer, + ), + const SizedBox(width: 18), + Text( + L10n.of(context).kickFromChat, + style: TextStyle(color: theme.colorScheme.onErrorContainer), + ), + ], + ), + ), + if (user.canBan && user.membership != Membership.ban) + PopupMenuItem( + value: _MemberActions.ban, + child: Row( + children: [ + Icon( + Icons.block_outlined, + color: theme.colorScheme.onErrorContainer, + ), + const SizedBox(width: 18), + Text( + L10n.of(context).banFromChat, + style: TextStyle(color: theme.colorScheme.onErrorContainer), + ), + ], + ), + ), + if (user.canBan && user.membership == Membership.ban) + PopupMenuItem( + value: _MemberActions.unban, + child: Row( + children: [ + const Icon(Icons.warning), + const SizedBox(width: 18), + Text(L10n.of(context).unbanFromChat), + ], + ), + ), + if (!isMe) + PopupMenuItem( + value: _MemberActions.report, + child: Row( + children: [ + Icon( + Icons.gavel_outlined, + color: theme.colorScheme.onErrorContainer, + ), + const SizedBox(width: 18), + Text( + L10n.of(context).reportUser, + style: TextStyle(color: theme.colorScheme.onErrorContainer), + ), + ], + ), + ), + ], + ); + if (action == null) return; + if (!context.mounted) return; + + switch (action) { + case _MemberActions.mention: + onMention?.call(); + return; + case _MemberActions.setPowerLevel: + final power = await showPermissionChooser( + context, + currentLevel: user.powerLevel.level, + maxLevel: user.room.ownPowerLevel.level, + ); + if (power == null) return; + if (!context.mounted) return; + if (power >= 100) { + final consent = await showOkCancelAlertDialog( + context: context, + title: L10n.of(context).areYouSure, + message: L10n.of(context).makeAdminDescription, + ); + if (consent != OkCancelResult.ok) return; + if (!context.mounted) return; + } + await showFutureLoadingDialog( + context: context, + future: () => user.setPower(power), + ); + return; + case _MemberActions.approve: + await showFutureLoadingDialog( + context: context, + future: () => user.room.invite(user.id), + ); + return; + case _MemberActions.kick: + if (await showOkCancelAlertDialog( + context: context, + title: l10n.areYouSure, + okLabel: l10n.yes, + cancelLabel: l10n.no, + message: l10n.kickUserDescription, + ) == + OkCancelResult.ok) { + if (!context.mounted) return; + await showFutureLoadingDialog( + context: context, + future: () => user.kick(), + ); + } + return; + case _MemberActions.ban: + if (await showOkCancelAlertDialog( + context: context, + title: l10n.areYouSure, + okLabel: l10n.yes, + cancelLabel: l10n.no, + message: l10n.banUserDescription, + ) == + OkCancelResult.ok) { + if (!context.mounted) return; + await showFutureLoadingDialog( + context: context, + future: () => user.ban(), + ); + } + return; + case _MemberActions.report: + final reason = await showTextInputDialog( + context: context, + title: l10n.whyDoYouWantToReportThis, + okLabel: l10n.report, + cancelLabel: l10n.cancel, + hintText: l10n.reason, + ); + if (reason == null || reason.isEmpty) return; + if (!context.mounted) return; + + final result = await showFutureLoadingDialog( + context: context, + future: () => user.room.client.reportUser(user.id, reason), + ); + if (result.error != null) return; + if (!context.mounted) return; + scaffoldMessenger.showSnackBar( + SnackBar(content: Text(l10n.contentHasBeenReported)), + ); + return; + case _MemberActions.info: + await UserDialog.show( + context: context, + profile: Profile( + userId: user.id, + displayName: user.displayName, + avatarUrl: user.avatarUrl, + ), + ); + return; + case _MemberActions.unban: + if (await showOkCancelAlertDialog( + context: context, + title: l10n.areYouSure, + okLabel: l10n.yes, + cancelLabel: l10n.no, + message: l10n.unbanUserDescription, + ) == + OkCancelResult.ok) { + if (!context.mounted) return; + await showFutureLoadingDialog( + context: context, + future: () => user.unban(), + ); + } + case _MemberActions.makeAdmin: + if (user.room.ownPowerLevel.level <= 100) { + final consent = await showOkCancelAlertDialog( + context: context, + title: L10n.of(context).areYouSure, + message: L10n.of(context).makeAdminDescription, + ); + if (consent != OkCancelResult.ok) return; + if (!context.mounted) return; + } + await showFutureLoadingDialog( + context: context, + future: () => user.setPower(100), + ); + case _MemberActions.makeModerator: + await showFutureLoadingDialog( + context: context, + future: () => user.setPower(50), + ); + case _MemberActions.removeAdmin: + case _MemberActions.removeModerator: + final defaultUserLevel = + user.room + .getState(EventTypes.RoomPowerLevels) + ?.content + .tryGet('users_default') ?? + 0; + await showFutureLoadingDialog( + context: context, + future: () => user.setPower(defaultUserLevel), + ); + } +} + +enum _MemberActions { + info, + mention, + setPowerLevel, + makeAdmin, + makeModerator, + removeAdmin, + removeModerator, + kick, + ban, + approve, + unban, + report, +} diff --git a/lib/widgets/mxc_image.dart b/lib/widgets/mxc_image.dart new file mode 100644 index 0000000..3d32b0e --- /dev/null +++ b/lib/widgets/mxc_image.dart @@ -0,0 +1,266 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:convert'; +import 'dart:io'; +import 'dart:math'; +import 'dart:typed_data'; + +import 'package:archive/archive.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/utils/client_download_content_extension.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/matrix_file_extension.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:lottie/lottie.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class MxcImage extends StatefulWidget { + final Uri? uri; + final Event? event; + final double? width; + final double? height; + final BoxFit? fit; + final bool isThumbnail; + final bool animated; + final Duration retryDuration; + final Duration animationDuration; + final Curve animationCurve; + final ThumbnailMethod thumbnailMethod; + final Widget Function(BuildContext context)? placeholder; + final String? cacheKey; + final String? cacheName; + final Client? client; + final BorderRadius borderRadius; + + static void clearCache(String cacheName) => + _MxcImageState._imageDataCaches.remove(cacheName); + + const MxcImage({ + this.uri, + this.event, + this.width, + this.height, + this.fit, + this.placeholder, + this.isThumbnail = true, + this.animated = false, + this.animationDuration = FluffyThemes.animationDuration, + this.retryDuration = const Duration(seconds: 2), + this.animationCurve = FluffyThemes.animationCurve, + this.thumbnailMethod = ThumbnailMethod.scale, + this.cacheKey, + this.client, + this.borderRadius = BorderRadius.zero, + this.cacheName, + super.key, + }); + + @override + State createState() => _MxcImageState(); +} + +class _MxcImageState extends State { + static final Map> _imageDataCaches = {}; + Map get _imageDataCache => + _imageDataCaches[widget.cacheName ?? ''] ??= {}; + + Uint8List? _imageDataNoCache; + + Uint8List? get _imageData => widget.cacheKey == null + ? _imageDataNoCache + : _imageDataCache[widget.cacheKey]; + + set _imageData(Uint8List? data) { + if (data == null) return; + final cacheKey = widget.cacheKey; + cacheKey == null + ? _imageDataNoCache = data + : _imageDataCache[cacheKey] = data; + } + + Future _load() async { + if (!mounted) return; + final client = + widget.client ?? widget.event?.room.client ?? Matrix.of(context).client; + final uri = widget.uri; + final event = widget.event; + + if (uri != null) { + final devicePixelRatio = MediaQuery.devicePixelRatioOf(context); + final width = widget.width; + final realWidth = width == null ? null : width * devicePixelRatio; + final height = widget.height; + final realHeight = height == null ? null : height * devicePixelRatio; + + final remoteData = await client.downloadMxcCached( + uri, + width: realWidth, + height: realHeight, + thumbnailMethod: widget.thumbnailMethod, + isThumbnail: widget.isThumbnail, + animated: widget.animated, + ); + if (!mounted) return; + setState(() { + _imageData = remoteData; + }); + } + + if (event != null) { + final useThumbnail = widget.isThumbnail && event.hasThumbnail; + if (!useThumbnail && + !{ + MessageTypes.Image, + MessageTypes.Sticker, + }.contains(event.messageType)) { + Logs().e('Event of type ${event.messageType} has no thumbnail!'); + } + final data = await event.downloadAndDecryptAttachment( + getThumbnail: useThumbnail, + ); + if (data.detectFileType is MatrixImageFile) { + if (!mounted) return; + setState(() { + _imageData = data.bytes; + }); + return; + } + } + } + + Future _tryLoad() async { + if (_imageData != null) { + return; + } + try { + await _load(); + } on IOException catch (_) { + if (!mounted) return; + await Future.delayed(widget.retryDuration); + _tryLoad(); + } on MatrixException catch (e) { + Logs().d('Unable to load image', e); + } + } + + @override + void initState() { + super.initState(); + WidgetsBinding.instance.addPostFrameCallback((_) => _tryLoad()); + } + + @override + Widget build(BuildContext context) { + final data = _imageData; + final hasData = data != null && data.isNotEmpty; + final ungzippedLottieData = data == null ? null : _ungzipLottie(data); + + Widget errorFallback( + BuildContext context, + Object error, + StackTrace? stackTrace, + ) { + Logs().d('Unable to render mxc image', error, stackTrace); + return SizedBox( + width: widget.width, + height: widget.height, + child: Material( + color: Theme.of(context).colorScheme.surfaceContainer, + child: Icon( + Icons.broken_image_outlined, + size: min(widget.height ?? 64, 64), + color: Theme.of(context).colorScheme.onSurface, + ), + ), + ); + } + + final imageChild = data == null + ? _MxcImagePlaceholder( + width: widget.width, + height: widget.height, + placeholder: widget.placeholder, + ) + : (ungzippedLottieData != null + ? Lottie.memory( + ungzippedLottieData, + width: widget.width, + height: widget.height, + fit: widget.fit, + errorBuilder: errorFallback, + ) + : Image.memory( + data, + width: widget.width, + height: widget.height, + fit: widget.fit, + filterQuality: widget.isThumbnail + ? FilterQuality.low + : FilterQuality.medium, + errorBuilder: errorFallback, + )); + + return AnimatedCrossFade( + duration: FluffyThemes.animationDuration, + firstChild: ClipRRect( + borderRadius: widget.borderRadius, + child: imageChild, + ), + secondChild: _MxcImagePlaceholder( + width: widget.width, + height: widget.height, + placeholder: widget.placeholder, + ), + crossFadeState: hasData + ? CrossFadeState.showFirst + : CrossFadeState.showSecond, + ); + } +} + +class _MxcImagePlaceholder extends StatelessWidget { + final double? width; + final double? height; + final Widget Function(BuildContext context)? placeholder; + + const _MxcImagePlaceholder({ + required this.width, + required this.height, + required this.placeholder, + }); + + @override + Widget build(BuildContext context) { + return placeholder?.call(context) ?? + Container( + width: width, + height: height, + alignment: Alignment.center, + child: const CircularProgressIndicator.adaptive(strokeWidth: 2), + ); + } +} + +Uint8List? _ungzipLottie(Uint8List data) { + // early return if the data is not gzipped + if (data.length < 2 || data.first != 0x1f || data[1] != 0x8b) { + return null; + } + + // try decoding json + try { + final decompressed = GZipDecoder().decodeBytes(data); + final jsonStr = utf8.decode(decompressed); + final json = jsonDecode(jsonStr); + if (json is Map && json.containsKey('v')) { + return Uint8List.fromList(utf8.encode(jsonStr)); + } + } catch (_) { + return null; + } + + return null; +} diff --git a/lib/widgets/mxc_image_viewer.dart b/lib/widgets/mxc_image_viewer.dart new file mode 100644 index 0000000..a1c1418 --- /dev/null +++ b/lib/widgets/mxc_image_viewer.dart @@ -0,0 +1,64 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:material_ui/material_ui.dart'; + +import 'mxc_image.dart'; + +class MxcImageViewer extends StatelessWidget { + final Uri mxContent; + + const MxcImageViewer(this.mxContent, {super.key}); + + @override + Widget build(BuildContext context) { + final iconButtonStyle = IconButton.styleFrom( + backgroundColor: Colors.black.withAlpha(200), + foregroundColor: Colors.white, + ); + return GestureDetector( + onTap: () => Navigator.of(context).pop(), + child: Scaffold( + backgroundColor: Colors.black.withAlpha(128), + extendBodyBehindAppBar: true, + appBar: AppBar( + elevation: 0, + leading: IconButton( + style: iconButtonStyle, + icon: const Icon(Icons.close), + onPressed: Navigator.of(context).pop, + color: Colors.white, + tooltip: L10n.of(context).close, + ), + backgroundColor: Colors.transparent, + ), + body: InteractiveViewer( + minScale: 1.0, + maxScale: 10.0, + onInteractionEnd: (endDetails) { + if (endDetails.velocity.pixelsPerSecond.dy > + MediaQuery.sizeOf(context).height * 1.5) { + Navigator.of(context, rootNavigator: false).pop(); + } + }, + child: Center( + child: GestureDetector( + // Ignore taps to not go back here: + onTap: () {}, + child: MxcImage( + key: ValueKey(mxContent.toString()), + uri: mxContent, + fit: BoxFit.contain, + isThumbnail: false, + animated: true, + ), + ), + ), + ), + ), + ); + } +} diff --git a/lib/widgets/permission_slider_dialog.dart b/lib/widgets/permission_slider_dialog.dart new file mode 100644 index 0000000..9cb6266 --- /dev/null +++ b/lib/widgets/permission_slider_dialog.dart @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/adaptive_dialog_action.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/dialog_text_field.dart'; +import 'package:material_ui/material_ui.dart'; + +Future showPermissionChooser( + BuildContext context, { + int currentLevel = 0, + int maxLevel = 100, +}) async { + final controller = TextEditingController(text: currentLevel.toString()); + final error = ValueNotifier(null); + return await showAdaptiveDialog( + context: context, + builder: (context) => AlertDialog.adaptive( + title: Center(child: Text(L10n.of(context).chatPermissions)), + content: ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 256, maxHeight: 256), + child: Column( + mainAxisSize: .min, + crossAxisAlignment: .stretch, + spacing: 16.0, + children: [ + Text(L10n.of(context).setPowerLevelDescription), + ValueListenableBuilder( + valueListenable: error, + builder: (context, errorText, _) => DialogTextField( + controller: controller, + hintText: currentLevel.toString(), + keyboardType: TextInputType.number, + labelText: L10n.of(context).custom, + errorText: errorText, + ), + ), + ], + ), + ), + actions: [ + AdaptiveDialogAction( + onPressed: () { + final level = int.tryParse(controller.text.trim()); + if (level == null) { + error.value = L10n.of(context).pleaseEnterANumber; + return; + } + if (level > maxLevel) { + error.value = L10n.of(context).noPermission; + return; + } + Navigator.of(context).pop(level); + }, + child: Text(L10n.of(context).setPowerLevel), + ), + AdaptiveDialogAction( + onPressed: () => Navigator.of(context).pop(null), + child: Text(L10n.of(context).cancel), + ), + ], + ), + ); +} diff --git a/lib/widgets/presence_builder.dart b/lib/widgets/presence_builder.dart new file mode 100644 index 0000000..2749c96 --- /dev/null +++ b/lib/widgets/presence_builder.dart @@ -0,0 +1,60 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; + +import 'package:tatchat/widgets/matrix.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +class PresenceBuilder extends StatefulWidget { + final Widget Function(BuildContext context, CachedPresence? presence) builder; + final String? userId; + final Client? client; + + const PresenceBuilder({ + required this.builder, + this.userId, + this.client, + super.key, + }); + + @override + State createState() => _PresenceBuilderState(); +} + +class _PresenceBuilderState extends State { + CachedPresence? _presence; + StreamSubscription? _sub; + + void _updatePresence(CachedPresence? presence) { + if (!mounted) return; + setState(() { + _presence = presence; + }); + } + + @override + void initState() { + super.initState(); + final client = widget.client ?? Matrix.of(context).client; + final userId = widget.userId; + if (userId != null) { + client.fetchCurrentPresence(userId).then(_updatePresence); + _sub = client.onPresenceChanged.stream + .where((presence) => presence.userid == userId) + .listen(_updatePresence); + } + } + + @override + void dispose() { + _sub?.cancel(); + super.dispose(); + } + + @override + Widget build(BuildContext context) => widget.builder(context, _presence); +} diff --git a/lib/widgets/pulsating_widget.dart b/lib/widgets/pulsating_widget.dart new file mode 100644 index 0000000..aa18341 --- /dev/null +++ b/lib/widgets/pulsating_widget.dart @@ -0,0 +1,69 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:flutter/material.dart'; + +class PulsatingWidget extends StatefulWidget { + final Color color; + final Widget child; + final double spreadRadius; + const PulsatingWidget({ + required this.child, + this.color = Colors.red, + this.spreadRadius = 1.0, + super.key, + }); + + @override + State createState() => _PulsatingWidgetState(); +} + +/// [AnimationController]s can be created with `vsync: this` because of +/// [TickerProviderStateMixin]. +class _PulsatingWidgetState extends State + with TickerProviderStateMixin { + late final DecorationTween decorationTween = DecorationTween( + begin: BoxDecoration( + borderRadius: BorderRadius.circular(128), + boxShadow: [ + BoxShadow( + color: widget.color.withAlpha(16), + blurRadius: 0.0, + spreadRadius: 0.0, + ), + ], + ), + end: BoxDecoration( + borderRadius: BorderRadius.circular(128), + boxShadow: [ + BoxShadow( + color: widget.color.withAlpha(128), + blurRadius: 0.0, + spreadRadius: widget.spreadRadius, + ), + ], + ), + ); + + late final AnimationController _controller = AnimationController( + vsync: this, + duration: const Duration(seconds: 2), + )..repeat(reverse: true); + + @override + void dispose() { + _controller.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + if (MediaQuery.disableAnimationsOf(context)) return widget.child; + return DecoratedBoxTransition( + decoration: decorationTween.animate(_controller), + child: widget.child, + ); + } +} diff --git a/lib/widgets/qr_code_viewer.dart b/lib/widgets/qr_code_viewer.dart new file mode 100644 index 0000000..ea9b8fc --- /dev/null +++ b/lib/widgets/qr_code_viewer.dart @@ -0,0 +1,144 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/tatu_share.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/matrix_file_extension.dart'; +import 'package:tatchat/widgets/future_loading_dialog.dart'; +import 'package:flutter/foundation.dart'; +import 'package:image/image.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; +import 'package:particles_network/particles_network.dart'; +import 'package:pretty_qr_code/pretty_qr_code.dart'; +import 'package:qr_image/qr_image.dart'; + +import '../config/themes.dart'; + +Future showQrCodeViewer(BuildContext context, String content) => + showDialog( + context: context, + builder: (context) => QrCodeViewer(content: content), + ); + +class QrCodeViewer extends StatelessWidget { + final String content; + + const QrCodeViewer({required this.content, super.key}); + + Future _save(BuildContext context) async { + final imageResult = await showFutureLoadingDialog( + context: context, + future: () { + final inviteLink = 'https://matrix.to/#/$content'; + final image = QRImage(inviteLink, size: 256, radius: 1).generate(); + return compute(encodePng, image); + }, + ); + final bytes = imageResult.result; + if (bytes == null) return; + if (!context.mounted) return; + + MatrixImageFile( + bytes: bytes, + name: 'QR_Code_$content.png', + mimeType: 'image/png', + ).save(context); + } + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final inviteLink = 'https://matrix.to/#/$content'; + return Scaffold( + backgroundColor: Colors.black.withAlpha(128), + extendBodyBehindAppBar: true, + appBar: AppBar( + elevation: 0, + leading: IconButton( + style: IconButton.styleFrom( + backgroundColor: Colors.black.withAlpha(128), + ), + icon: const Icon(Icons.close), + onPressed: Navigator.of(context).pop, + color: Colors.white, + tooltip: L10n.of(context).close, + ), + backgroundColor: Colors.transparent, + actions: [ + IconButton( + style: IconButton.styleFrom( + backgroundColor: Colors.black.withAlpha(128), + ), + icon: Icon(Icons.adaptive.share_outlined), + onPressed: () => TatuShare.share(inviteLink, context), + color: Colors.white, + tooltip: L10n.of(context).share, + ), + const SizedBox(width: 8), + IconButton( + style: IconButton.styleFrom( + backgroundColor: Colors.black.withAlpha(128), + ), + icon: const Icon(Icons.download_outlined), + onPressed: () => _save(context), + color: Colors.white, + tooltip: L10n.of(context).downloadFile, + ), + const SizedBox(width: 8), + ], + ), + body: Stack( + children: [ + if (!MediaQuery.disableAnimationsOf(context)) + ParticleNetwork(maxSpeed: 0.25), + Center( + child: Container( + margin: const EdgeInsets.all(32.0), + padding: const EdgeInsets.all(32.0), + decoration: BoxDecoration( + border: Border.all( + color: theme.colorScheme.onSurface, + width: 8, + ), + color: theme.colorScheme.surfaceBright, + borderRadius: BorderRadius.circular(AppConfig.borderRadius), + ), + child: Column( + mainAxisSize: .min, + children: [ + ConstrainedBox( + constraints: const BoxConstraints( + maxWidth: FluffyThemes.columnWidth, + ), + child: PrettyQrView.data( + data: inviteLink, + decoration: PrettyQrDecoration( + shape: PrettyQrSmoothSymbol( + roundFactor: 1, + color: theme.colorScheme.onSurface, + ), + ), + ), + ), + const SizedBox(height: 8.0), + SelectableText( + content, + textAlign: TextAlign.center, + style: TextStyle( + color: theme.colorScheme.onPrimaryContainer, + fontSize: 12, + ), + ), + ], + ), + ), + ), + ], + ), + ); + } +} diff --git a/lib/widgets/settings_switch_list_tile.dart b/lib/widgets/settings_switch_list_tile.dart new file mode 100644 index 0000000..55dbc48 --- /dev/null +++ b/lib/widgets/settings_switch_list_tile.dart @@ -0,0 +1,44 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:tatchat/config/setting_keys.dart'; +import 'package:material_ui/material_ui.dart'; + +class SettingsSwitchListTile extends StatefulWidget { + final AppSettings setting; + final String title; + final String? subtitle; + final Function(bool)? onChanged; + final bool? defaultValue; + + const SettingsSwitchListTile.adaptive({ + super.key, + required this.setting, + required this.title, + this.subtitle, + this.onChanged, + this.defaultValue, + }); + + @override + SettingsSwitchListTileState createState() => SettingsSwitchListTileState(); +} + +class SettingsSwitchListTileState extends State { + @override + Widget build(BuildContext context) { + final subtitle = widget.subtitle; + return SwitchListTile.adaptive( + value: widget.setting.value ?? widget.defaultValue ?? false, + title: Text(widget.title), + subtitle: subtitle == null ? null : Text(subtitle), + onChanged: (bool newValue) async { + widget.onChanged?.call(newValue); + await widget.setting.setItem(newValue); + setState(() {}); + }, + ); + } +} diff --git a/lib/widgets/share_scaffold_dialog.dart b/lib/widgets/share_scaffold_dialog.dart new file mode 100644 index 0000000..69dc22f --- /dev/null +++ b/lib/widgets/share_scaffold_dialog.dart @@ -0,0 +1,215 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:cross_file/cross_file.dart'; +import 'package:tatchat/config/app_config.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/utils/matrix_sdk_extensions/matrix_locals.dart'; +import 'package:tatchat/widgets/adaptive_dialogs/show_ok_cancel_alert_dialog.dart'; +import 'package:tatchat/widgets/avatar.dart'; +import 'package:tatchat/widgets/matrix.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +abstract class ShareItem {} + +class TextShareItem extends ShareItem { + final String value; + TextShareItem(this.value); +} + +class ContentShareItem extends ShareItem { + final Map value; + ContentShareItem(this.value); +} + +class FileShareItem extends ShareItem { + final XFile value; + FileShareItem(this.value); +} + +class ShareScaffoldDialog extends StatefulWidget { + final List items; + + const ShareScaffoldDialog({required this.items, super.key}); + + @override + State createState() => _ShareScaffoldDialogState(); +} + +class _ShareScaffoldDialogState extends State { + final TextEditingController _filterController = TextEditingController(); + + String? selectedRoomId; + + void _toggleRoom(String roomId) { + setState(() { + selectedRoomId = roomId; + }); + } + + Future _forwardAction() async { + final roomId = selectedRoomId; + if (roomId == null) { + throw Exception( + 'Started forward action before room was selected. This should never happen.', + ); + } + if (widget.items.any((item) => item is! FileShareItem)) { + final consent = await showOkCancelAlertDialog( + context: context, + title: L10n.of(context).forwardCountMessages(widget.items.length), + okLabel: L10n.of(context).forward, + cancelLabel: L10n.of(context).cancel, + ); + if (consent != OkCancelResult.ok) return; + } + if (!mounted) return; + while (context.canPop()) { + context.pop(); + } + context.go('/rooms/$roomId', extra: widget.items); + } + + @override + void dispose() { + _filterController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final rooms = Matrix.of(context).client.rooms + .where( + (room) => + room.canSendDefaultMessages && + !room.isSpace && + room.membership == Membership.join, + ) + .toList(); + final filter = _filterController.text.trim().toLowerCase(); + return Scaffold( + appBar: AppBar( + leading: Center(child: CloseButton(onPressed: context.pop)), + title: Text(L10n.of(context).share), + ), + body: CustomScrollView( + slivers: [ + SliverAppBar( + floating: true, + toolbarHeight: 72, + scrolledUnderElevation: 0, + backgroundColor: Colors.transparent, + automaticallyImplyLeading: false, + title: TextField( + controller: _filterController, + onChanged: (_) => setState(() {}), + textInputAction: TextInputAction.search, + decoration: InputDecoration( + filled: true, + fillColor: theme.colorScheme.secondaryContainer, + border: OutlineInputBorder( + borderSide: BorderSide.none, + borderRadius: BorderRadius.circular(99), + ), + contentPadding: EdgeInsets.zero, + hintText: L10n.of(context).search, + hintStyle: TextStyle( + color: theme.colorScheme.onPrimaryContainer, + fontWeight: FontWeight.normal, + ), + floatingLabelBehavior: FloatingLabelBehavior.never, + prefixIcon: IconButton( + onPressed: () {}, + icon: Icon( + Icons.search_outlined, + color: theme.colorScheme.onPrimaryContainer, + ), + ), + ), + ), + ), + SliverList.builder( + itemCount: rooms.length, + itemBuilder: (context, i) { + final room = rooms[i]; + final displayname = room.getLocalizedDisplayname( + MatrixLocals(L10n.of(context)), + ); + final value = selectedRoomId == room.id; + final filterOut = !displayname.toLowerCase().contains(filter); + if (!value && filterOut) { + return const SizedBox.shrink(); + } + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0), + child: Opacity( + opacity: filterOut ? 0.5 : 1, + child: FutureBuilder( + future: room.loadHeroUsers(), + builder: (context, _) => CheckboxListTile.adaptive( + checkboxShape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(90), + ), + controlAffinity: ListTileControlAffinity.trailing, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular( + AppConfig.borderRadius, + ), + ), + secondary: Avatar( + mxContent: room.avatar, + name: displayname, + size: Avatar.defaultSize * 0.75, + ), + title: Text( + displayname, + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + subtitle: Text( + room.directChatMatrixID ?? + L10n.of(context).countParticipants( + (room.summary.mJoinedMemberCount ?? 0) + + (room.summary.mInvitedMemberCount ?? 0), + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + value: selectedRoomId == room.id, + onChanged: (_) => _toggleRoom(room.id), + ), + ), + ), + ); + }, + ), + ], + ), + bottomNavigationBar: AnimatedSize( + duration: FluffyThemes.animationDuration, + curve: FluffyThemes.animationCurve, + child: selectedRoomId == null + ? const SizedBox.shrink() + : Material( + elevation: 8, + shadowColor: theme.appBarTheme.shadowColor, + child: SafeArea( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: ElevatedButton( + onPressed: _forwardAction, + child: Text(L10n.of(context).forward), + ), + ), + ), + ), + ), + ); + } +} diff --git a/lib/widgets/tatu_chat_app.dart b/lib/widgets/tatu_chat_app.dart new file mode 100644 index 0000000..850fdcc --- /dev/null +++ b/lib/widgets/tatu_chat_app.dart @@ -0,0 +1,102 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// 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/config/routes.dart'; +import 'package:tatchat/config/setting_keys.dart'; +import 'package:tatchat/config/themes.dart'; +import 'package:tatchat/l10n/l10n.dart'; +import 'package:tatchat/widgets/app_lock.dart'; +import 'package:tatchat/widgets/layouts/call_overlay.dart'; +import 'package:tatchat/widgets/theme_builder.dart'; +import 'package:go_router/go_router.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import '../utils/custom_scroll_behaviour.dart'; +import 'matrix.dart'; + +class TatuChatApp extends StatelessWidget { + final Widget? testWidget; + final List clients; + final ({String? pincode, bool useBiometrics}) appLockSettings; + final SharedPreferences store; + + const TatuChatApp({ + super.key, + this.testWidget, + required this.clients, + required this.store, + required this.appLockSettings, + }); + + /// getInitialLink may rereturn the value multiple times if this view is + /// opened multiple times for example if the user logs out after they logged + /// in with qr code or magic link. + static bool gotInitialLink = false; + + // Router must be outside of build method so that hot reload does not reset + // the current path. + static final GoRouter router = GoRouter( + routes: AppRoutes.routes, + debugLogDiagnostics: true, + redirect: (context, state) { + // Workaround for content sharings passed to go router: + if ({ + 'content', + 'sharemedia-im.tatuchat.app', + }.contains(state.uri.scheme)) { + Logs().d('Ignore content sharing handling in go router', state.uri); + return '/'; + } + + // Pass deep links to app: + if (state.uri.toString().startsWith(AppConfig.deepLinkPrefix)) { + return '/rooms/newprivatechat#${state.uri}'; + } + return null; + }, + ); + + @override + Widget build(BuildContext context) { + return ThemeBuilder( + builder: (context, themeMode, primaryColor) => MaterialApp.router( + title: AppSettings.applicationName.value, + themeMode: themeMode, + theme: FluffyThemes.buildTheme(context, Brightness.light, primaryColor), + darkTheme: FluffyThemes.buildTheme( + context, + Brightness.dark, + primaryColor, + ), + scrollBehavior: CustomScrollBehavior(), + localizationsDelegates: [ + ...L10n.localizationsDelegates, + ...GlobalMaterialLocalizations.delegates, + ...GlobalCupertinoLocalizations.delegates, + ], + supportedLocales: L10n.supportedLocales, + routerConfig: router, + builder: (context, child) => AppLockWidget( + pincode: appLockSettings.pincode, + useBiometrics: appLockSettings.useBiometrics, + isLoggedIn: clients.any((client) => client.isLogged()), + // Need a navigator above the Matrix widget for + // displaying dialogs + child: Matrix( + clients: clients, + store: store, + child: CallOverlay( + child: testWidget ?? child ?? const SizedBox.shrink(), + ), + ), + ), + ), + ); + } +} diff --git a/lib/widgets/theme_builder.dart b/lib/widgets/theme_builder.dart new file mode 100644 index 0000000..ecb8446 --- /dev/null +++ b/lib/widgets/theme_builder.dart @@ -0,0 +1,103 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:collection/collection.dart'; +import 'package:dynamic_color/dynamic_color.dart'; +import 'package:tatchat/utils/color_value.dart'; +import 'package:material_ui/material_ui.dart'; +import 'package:provider/provider.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class ThemeBuilder extends StatefulWidget { + final Widget Function( + BuildContext context, + ThemeMode themeMode, + Color? primaryColor, + ) + builder; + + final String themeModeSettingsKey; + final String primaryColorSettingsKey; + + const ThemeBuilder({ + required this.builder, + this.themeModeSettingsKey = 'theme_mode', + this.primaryColorSettingsKey = 'primary_color', + super.key, + }); + + @override + State createState() => ThemeController(); +} + +class ThemeController extends State { + SharedPreferences? _sharedPreferences; + ThemeMode? _themeMode; + Color? _primaryColor; + + ThemeMode get themeMode => _themeMode ?? ThemeMode.system; + + Color? get primaryColor => _primaryColor; + + static ThemeController of(BuildContext context) => + Provider.of(context, listen: false); + + Future _loadData(_) async { + final preferences = _sharedPreferences ??= + await SharedPreferences.getInstance(); + + final rawThemeMode = preferences.getString(widget.themeModeSettingsKey); + final rawColor = preferences.getInt(widget.primaryColorSettingsKey); + + setState(() { + _themeMode = ThemeMode.values.singleWhereOrNull( + (value) => value.name == rawThemeMode, + ); + _primaryColor = rawColor == null ? null : Color(rawColor); + }); + } + + Future setThemeMode(ThemeMode newThemeMode) async { + final preferences = _sharedPreferences ??= + await SharedPreferences.getInstance(); + await preferences.setString(widget.themeModeSettingsKey, newThemeMode.name); + setState(() { + _themeMode = newThemeMode; + }); + } + + Future setPrimaryColor(Color? newPrimaryColor) async { + final preferences = _sharedPreferences ??= + await SharedPreferences.getInstance(); + if (newPrimaryColor == null) { + await preferences.remove(widget.primaryColorSettingsKey); + } else { + await preferences.setInt( + widget.primaryColorSettingsKey, + newPrimaryColor.hexValue, + ); + } + setState(() { + _primaryColor = newPrimaryColor; + }); + } + + @override + void initState() { + WidgetsBinding.instance.addPostFrameCallback(_loadData); + super.initState(); + } + + @override + Widget build(BuildContext context) { + return Provider( + create: (_) => this, + child: DynamicColorBuilder( + builder: (light, _) => + widget.builder(context, themeMode, primaryColor ?? light?.primary), + ), + ); + } +} diff --git a/lib/widgets/typing_animation.dart b/lib/widgets/typing_animation.dart new file mode 100644 index 0000000..4f9eb4c --- /dev/null +++ b/lib/widgets/typing_animation.dart @@ -0,0 +1,71 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:async'; + +import 'package:tatchat/config/themes.dart'; +import 'package:material_ui/material_ui.dart'; + +class TypingAnimation extends StatefulWidget { + final double size; + const TypingAnimation({this.size = 8.0, super.key}); + + @override + State createState() => _TypingAnimationState(); +} + +class _TypingAnimationState extends State { + int _tick = 0; + + late final Timer _timer; + + static const Duration animationDuration = Duration(milliseconds: 300); + + @override + void initState() { + _timer = Timer.periodic(animationDuration, (_) { + if (!mounted) { + return; + } + setState(() { + _tick = (_tick + 1) % 4; + }); + }); + super.initState(); + } + + @override + void dispose() { + _timer.cancel(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final size = widget.size; + + return Row( + mainAxisSize: .min, + children: [ + for (var i = 1; i <= 3; i++) + AnimatedContainer( + duration: animationDuration * 1.5, + curve: FluffyThemes.animationCurve, + width: size, + height: _tick == i ? size * 2 : size, + margin: EdgeInsets.symmetric( + horizontal: size / 4, + vertical: _tick == i ? 4 : 8, + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(size * 2), + color: theme.colorScheme.secondary, + ), + ), + ], + ); + } +} diff --git a/lib/widgets/unread_rooms_badge.dart b/lib/widgets/unread_rooms_badge.dart new file mode 100644 index 0000000..dbcb4c3 --- /dev/null +++ b/lib/widgets/unread_rooms_badge.dart @@ -0,0 +1,48 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:badges/badges.dart' as b; +import 'package:material_ui/material_ui.dart'; +import 'package:matrix/matrix.dart'; + +import 'matrix.dart'; + +class UnreadRoomsBadge extends StatelessWidget { + final bool Function(Room) filter; + final b.BadgePosition? badgePosition; + final Widget? child; + + const UnreadRoomsBadge({ + super.key, + required this.filter, + this.badgePosition, + this.child, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + final unreadCount = Matrix.of(context).client.rooms + .where(filter) + .where((r) => (r.isUnread || r.membership == Membership.invite)) + .length; + return b.Badge( + badgeStyle: b.BadgeStyle( + badgeColor: theme.colorScheme.tertiary, + elevation: 4, + borderSide: BorderSide(color: theme.colorScheme.surface, width: 2), + ), + badgeContent: Text( + unreadCount.toString(), + style: TextStyle(color: theme.colorScheme.onTertiary, fontSize: 12), + ), + showBadge: unreadCount != 0, + badgeAnimation: const b.BadgeAnimation.scale(), + position: badgePosition ?? b.BadgePosition.bottomEnd(), + child: child, + ); + } +} diff --git a/lib/widgets/view_model_builder.dart b/lib/widgets/view_model_builder.dart new file mode 100644 index 0000000..c94cbdf --- /dev/null +++ b/lib/widgets/view_model_builder.dart @@ -0,0 +1,48 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:material_ui/material_ui.dart'; + +class ViewModelBuilder extends StatefulWidget { + final T Function() create; + final Widget Function(BuildContext context, T viewModel, Widget? child) + builder; + final Widget? child; + const ViewModelBuilder({ + super.key, + required this.create, + required this.builder, + this.child, + }); + + @override + State> createState() => _ViewModelBuilderState(); +} + +class _ViewModelBuilderState + extends State> { + late final T _viewModel; + + @override + void initState() { + _viewModel = widget.create(); + super.initState(); + } + + @override + void dispose() { + _viewModel.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return ValueListenableBuilder( + valueListenable: _viewModel, + builder: (context, value, child) => + widget.builder.call(context, _viewModel, child), + ); + } +} diff --git a/licenses.yaml b/licenses.yaml new file mode 100644 index 0000000..b9910ef --- /dev/null +++ b/licenses.yaml @@ -0,0 +1,48 @@ +# SPDX-FileCopyrightText: 2019-Present Christian Kußowski +# SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +# This is a config for a license compliance checker script. It runs in CI. +# +# To run locally: +# dart run license_checker check-licenses -c licenses.yaml --problematic +# +# SPDX license list: https://spdx.org/licenses/ + +# Before you add a license here: Is it free software? Is it compatible with AGPL-3.0? +permittedLicenses: + - AGPL-3.0 + - Apache-2.0 + - BSD-2-Clause + - BSD-3-Clause + - EUPL-1.2 + - ISC + - LGPL-3.0 + - MIT + - MPL-2.0 + - Zlib + +packageLicenseOverride: + dependency_validator: Apache-2.0 + flutter_gen: MIT + hive: Apache-2.0 + hive_flutter: Apache-2.0 + latlong2: Apache-2.0 + platform_detect: Apache-2.0 + rxdart: Apache-2.0 + flutter_new_badger: MIT + sqlcipher_flutter_libs: MIT + just_audio_media_kit: MIT + + # flutter's internal packages + flutter_driver: BSD-3-Clause + flutter_localizations: BSD-3-Clause + flutter_test: BSD-3-Clause + flutter_web_plugins: BSD-3-Clause + fuchsia_remote_debug_protocol: BSD-3-Clause + integration_test: BSD-3-Clause + sky_engine: BSD-3-Clause + +rejectedLicenses: + - BUSL-1.1 diff --git a/linux/.gitignore b/linux/.gitignore new file mode 100644 index 0000000..d3896c9 --- /dev/null +++ b/linux/.gitignore @@ -0,0 +1 @@ +flutter/ephemeral diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt new file mode 100644 index 0000000..53d22d7 --- /dev/null +++ b/linux/CMakeLists.txt @@ -0,0 +1,147 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.10) +project(runner LANGUAGES CXX) + +# smth sqlcipher_flutter_libs static linking Hundreds +set(OPENSSL_USE_STATIC_LIBS OFF) +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "tatuchat") +# The unique GTK application identifier for this application. See: +# https://wiki.gnome.org/HowDoI/ChooseApplicationID +set(APPLICATION_ID "chat.fluffy.tatuchat") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(SET CMP0063 NEW) + +# Load bundled libraries from the lib/ directory relative to the binary. +set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") + +# Root filesystem for cross-building. +if(FLUTTER_TARGET_PLATFORM_SYSROOT) + set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +endif() + +# Define build configuration options. +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") +endif() + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_14) + target_compile_options(${TARGET} PRIVATE -Wall -Werror) + target_compile_options(${TARGET} PRIVATE "$<$>:-O3>") + target_compile_definitions(${TARGET} PRIVATE "$<$>:NDEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) + +add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") + +# Define the application target. To change its name, change BINARY_NAME above, +# not the value here, or `flutter run` will no longer work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} + "main.cc" + "my_application.cc" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add dependency libraries. Add any application-specific dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter) +target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) + +# Only the install-generated bundle's copy of the executable will launch +# correctly, since the resources must in the right relative locations. To avoid +# people trying to run the unbundled copy, put it in a subdirectory instead of +# the default top-level location. +set_target_properties(${BINARY_NAME} + PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run" +) + + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# By default, "installing" just makes a relocatable bundle in the build +# directory. +set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle") +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +# Start with a clean build bundle directory every time. +install(CODE " + file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\") + " COMPONENT Runtime) + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES}) + install(FILES "${bundled_library}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endforeach(bundled_library) + +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/linux/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +if(NOT CMAKE_BUILD_TYPE MATCHES "Debug") + install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() diff --git a/linux/flutter/CMakeLists.txt b/linux/flutter/CMakeLists.txt new file mode 100644 index 0000000..d5bd016 --- /dev/null +++ b/linux/flutter/CMakeLists.txt @@ -0,0 +1,88 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.10) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. + +# Serves the same purpose as list(TRANSFORM ... PREPEND ...), +# which isn't available in 3.10. +function(list_prepend LIST_NAME PREFIX) + set(NEW_LIST "") + foreach(element ${${LIST_NAME}}) + list(APPEND NEW_LIST "${PREFIX}${element}") + endforeach(element) + set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE) +endfunction() + +# === Flutter Library === +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) +pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0) +pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0) + +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "fl_basic_message_channel.h" + "fl_binary_codec.h" + "fl_binary_messenger.h" + "fl_dart_project.h" + "fl_engine.h" + "fl_json_message_codec.h" + "fl_json_method_codec.h" + "fl_message_codec.h" + "fl_method_call.h" + "fl_method_channel.h" + "fl_method_codec.h" + "fl_method_response.h" + "fl_plugin_registrar.h" + "fl_plugin_registry.h" + "fl_standard_message_codec.h" + "fl_standard_method_codec.h" + "fl_string_codec.h" + "fl_value.h" + "fl_view.h" + "flutter_linux.h" +) +list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}") +target_link_libraries(flutter INTERFACE + PkgConfig::GTK + PkgConfig::GLIB + PkgConfig::GIO +) +add_dependencies(flutter flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CMAKE_CURRENT_BINARY_DIR}/_phony_ + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh" + ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE} + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} +) diff --git a/linux/main.cc b/linux/main.cc new file mode 100644 index 0000000..e7c5c54 --- /dev/null +++ b/linux/main.cc @@ -0,0 +1,6 @@ +#include "my_application.h" + +int main(int argc, char** argv) { + g_autoptr(MyApplication) app = my_application_new(); + return g_application_run(G_APPLICATION(app), argc, argv); +} diff --git a/linux/my_application.cc b/linux/my_application.cc new file mode 100644 index 0000000..3f00b35 --- /dev/null +++ b/linux/my_application.cc @@ -0,0 +1,137 @@ +#include "my_application.h" + +#include +#ifdef GDK_WINDOWING_X11 +#include +#endif + +#include "flutter/generated_plugin_registrant.h" + +struct _MyApplication { + GtkApplication parent_instance; + char** dart_entrypoint_arguments; +}; + +G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) + +// Implements GApplication::activate. +static void my_application_activate(GApplication* application) { + MyApplication* self = MY_APPLICATION(application); + GtkWindow* window = + GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application))); + + // Use a header bar when running in GNOME as this is the common style used + // by applications and is the setup most users will be using (e.g. Ubuntu + // desktop). + // If running on X and not using GNOME then just use a traditional title bar + // in case the window manager does more exotic layout, e.g. tiling. + // If running on Wayland assume the header bar will work (may need changing + // if future cases occur). + gboolean use_header_bar = TRUE; + // Lines added to the template start + // Please re-add these lines after updating the linux build files + // If the user explicitly requests to disable the header bar, switch back to + // using a traditional title bar + const gchar* gtk_csd_env = g_getenv("GTK_CSD"); + if (gtk_csd_env != nullptr && g_strcmp0(gtk_csd_env, "1") != 0) + use_header_bar = FALSE; + // Lines added to the template end +#ifdef GDK_WINDOWING_X11 + GdkScreen* screen = gtk_window_get_screen(window); + if (GDK_IS_X11_SCREEN(screen)) { + const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen); + if (g_strcmp0(wm_name, "GNOME Shell") != 0) { + use_header_bar = FALSE; + // Lines added to the template start + // Please re-add these lines after updating the linux build files + // Disable libhandy here, otherwise the close button disappears on KDE X11 + g_setenv("GTK_CSD", "0", TRUE); + // Lines added to the template end + } + } +#endif + if (use_header_bar) { + GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); + gtk_widget_show(GTK_WIDGET(header_bar)); + gtk_header_bar_set_title(header_bar, "TatuChat"); + gtk_header_bar_set_show_close_button(header_bar, TRUE); + gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); + } else { + gtk_window_set_title(window, "TatuChat"); + } + + gtk_window_set_default_size(window, 864, 720); + + g_autoptr(FlDartProject) project = fl_dart_project_new(); + fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments); + + FlView* view = fl_view_new(project); + gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); + + fl_register_plugins(FL_PLUGIN_REGISTRY(view)); + + gtk_widget_show(GTK_WIDGET(window)); + gtk_widget_show(GTK_WIDGET(view)); + gtk_widget_grab_focus(GTK_WIDGET(view)); +} + +// Implements GApplication::local_command_line. +static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) { + MyApplication* self = MY_APPLICATION(application); + // Strip out the first argument as it is the binary name. + self->dart_entrypoint_arguments = g_strdupv(*arguments + 1); + + g_autoptr(GError) error = nullptr; + if (!g_application_register(application, nullptr, &error)) { + g_warning("Failed to register: %s", error->message); + *exit_status = 1; + return TRUE; + } + + g_application_activate(application); + *exit_status = 0; + + return TRUE; +} + +// Implements GApplication::startup. +static void my_application_startup(GApplication* application) { + //MyApplication* self = MY_APPLICATION(object); + + // Perform any actions required at application startup. + + G_APPLICATION_CLASS(my_application_parent_class)->startup(application); +} + +// Implements GApplication::shutdown. +static void my_application_shutdown(GApplication* application) { + //MyApplication* self = MY_APPLICATION(object); + + // Perform any actions required at application shutdown. + + G_APPLICATION_CLASS(my_application_parent_class)->shutdown(application); +} + +// Implements GObject::dispose. +static void my_application_dispose(GObject* object) { + MyApplication* self = MY_APPLICATION(object); + g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev); + G_OBJECT_CLASS(my_application_parent_class)->dispose(object); +} + +static void my_application_class_init(MyApplicationClass* klass) { + G_APPLICATION_CLASS(klass)->activate = my_application_activate; + G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line; + G_APPLICATION_CLASS(klass)->startup = my_application_startup; + G_APPLICATION_CLASS(klass)->shutdown = my_application_shutdown; + G_OBJECT_CLASS(klass)->dispose = my_application_dispose; +} + +static void my_application_init(MyApplication* self) {} + +MyApplication* my_application_new() { + return MY_APPLICATION(g_object_new(my_application_get_type(), + "application-id", APPLICATION_ID, + "flags", G_APPLICATION_NON_UNIQUE, + nullptr)); +} diff --git a/linux/my_application.h b/linux/my_application.h new file mode 100644 index 0000000..72271d5 --- /dev/null +++ b/linux/my_application.h @@ -0,0 +1,18 @@ +#ifndef FLUTTER_MY_APPLICATION_H_ +#define FLUTTER_MY_APPLICATION_H_ + +#include + +G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, + GtkApplication) + +/** + * my_application_new: + * + * Creates a new Flutter-based application. + * + * Returns: a new #MyApplication. + */ +MyApplication* my_application_new(); + +#endif // FLUTTER_MY_APPLICATION_H_ diff --git a/macos/.gitignore b/macos/.gitignore new file mode 100644 index 0000000..746adbb --- /dev/null +++ b/macos/.gitignore @@ -0,0 +1,7 @@ +# Flutter-related +**/Flutter/ephemeral/ +**/Pods/ + +# Xcode-related +**/dgph +**/xcuserdata/ diff --git a/macos/Flutter/Flutter-Debug.xcconfig b/macos/Flutter/Flutter-Debug.xcconfig new file mode 100644 index 0000000..4b81f9b --- /dev/null +++ b/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/Flutter-Release.xcconfig b/macos/Flutter/Flutter-Release.xcconfig new file mode 100644 index 0000000..5caa9d1 --- /dev/null +++ b/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Podfile b/macos/Podfile new file mode 100644 index 0000000..b9bae3a --- /dev/null +++ b/macos/Podfile @@ -0,0 +1,43 @@ +platform :osx, '12.2' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\"" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_macos_podfile_setup + +target 'Runner' do + use_frameworks! + use_modular_headers! + + flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_macos_build_settings(target) + target.build_configurations.each do |config| + config.build_settings.delete 'MACOSX_DEPLOYMENT_TARGET' + end + end +end diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..fd9f295 --- /dev/null +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,679 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXAggregateTarget section */ + 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; + buildPhases = ( + 33CC111E2044C6BF0003C045 /* ShellScript */, + ); + dependencies = ( + ); + name = "Flutter Assemble"; + productName = FLX; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; + 9CAF203E1D098383F2EDFFCB /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B3C62FEBAA272B5A33AFFC95 /* Pods_Runner.framework */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC111A2044C6BA0003C045; + remoteInfo = FLX; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 33CC110E2044A8840003C045 /* Bundle Framework */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Bundle Framework"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 2D119A6B273B2CE4A6AE3322 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; + 33CC10ED2044A3C60003C045 /* FluffyChat.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FluffyChat.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; + 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; + 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; + 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; + 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 35E6B919318905352ECC7D69 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + 5CDC3DD55F4AC23D2067B292 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; + A1CEA3AEDDC9976F00DB3AFE /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + AF767714B5564068E3D500A8 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + B3C62FEBAA272B5A33AFFC95 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B5C1522B2F3865267414BD3C /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + CC70F3DF47EEC43FC2D35C75 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, + 9CAF203E1D098383F2EDFFCB /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 33BA886A226E78AF003329D5 /* Configs */ = { + isa = PBXGroup; + children = ( + 33E5194F232828860026EE4D /* AppInfo.xcconfig */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, + ); + path = Configs; + sourceTree = ""; + }; + 33CC10E42044A3C60003C045 = { + isa = PBXGroup; + children = ( + 33FAB671232836740065AC1E /* Runner */, + 33CEB47122A05771004F2AC0 /* Flutter */, + 33CC10EE2044A3C60003C045 /* Products */, + D73912EC22F37F3D000D13A0 /* Frameworks */, + F9F203356080D460FB6D4567 /* Pods */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* FluffyChat.app */, + ); + name = Products; + sourceTree = ""; + }; + 33CC11242044D66E0003C045 /* Resources */ = { + isa = PBXGroup; + children = ( + 33CC10F22044A3C60003C045 /* Assets.xcassets */, + 33CC10F42044A3C60003C045 /* MainMenu.xib */, + 33CC10F72044A3C60003C045 /* Info.plist */, + ); + name = Resources; + path = ..; + sourceTree = ""; + }; + 33CEB47122A05771004F2AC0 /* Flutter */ = { + isa = PBXGroup; + children = ( + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, + ); + path = Flutter; + sourceTree = ""; + }; + 33FAB671232836740065AC1E /* Runner */ = { + isa = PBXGroup; + children = ( + 33CC10F02044A3C60003C045 /* AppDelegate.swift */, + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, + 33E51913231747F40026EE4D /* DebugProfile.entitlements */, + 33E51914231749380026EE4D /* Release.entitlements */, + 33CC11242044D66E0003C045 /* Resources */, + 33BA886A226E78AF003329D5 /* Configs */, + ); + path = Runner; + sourceTree = ""; + }; + D73912EC22F37F3D000D13A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + B3C62FEBAA272B5A33AFFC95 /* Pods_Runner.framework */, + A1CEA3AEDDC9976F00DB3AFE /* Pods_RunnerTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + F9F203356080D460FB6D4567 /* Pods */ = { + isa = PBXGroup; + children = ( + CC70F3DF47EEC43FC2D35C75 /* Pods-Runner.debug.xcconfig */, + B5C1522B2F3865267414BD3C /* Pods-Runner.release.xcconfig */, + AF767714B5564068E3D500A8 /* Pods-Runner.profile.xcconfig */, + 5CDC3DD55F4AC23D2067B292 /* Pods-RunnerTests.debug.xcconfig */, + 2D119A6B273B2CE4A6AE3322 /* Pods-RunnerTests.release.xcconfig */, + 35E6B919318905352ECC7D69 /* Pods-RunnerTests.profile.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 33CC10EC2044A3C60003C045 /* Runner */ = { + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); + isa = PBXNativeTarget; + buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 213E973AEF6461D8FA01037B /* [CP] Check Pods Manifest.lock */, + 33CC10E92044A3C60003C045 /* Sources */, + 33CC10EA2044A3C60003C045 /* Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, + 33CC110E2044A8840003C045 /* Bundle Framework */, + 3399D490228B24CF009A79C7 /* ShellScript */, + 889FA79FC2223BE511C611AF /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 33CC11202044C79F0003C045 /* PBXTargetDependency */, + ); + name = Runner; + productName = Runner; + productReference = 33CC10ED2044A3C60003C045 /* FluffyChat.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 33CC10E52044A3C60003C045 /* Project object */ = { + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, + ); + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 1510; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 33CC10EC2044A3C60003C045 = { + CreatedOnToolsVersion = 9.2; + LastSwiftMigration = 1100; + SystemCapabilities = { + com.apple.Sandbox = { + enabled = 1; + }; + }; + }; + 33CC111A2044C6BA0003C045 = { + CreatedOnToolsVersion = 9.2; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 33CC10E42044A3C60003C045; + productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 33CC10EC2044A3C60003C045 /* Runner */, + 33CC111A2044C6BA0003C045 /* Flutter Assemble */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 33CC10EB2044A3C60003C045 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 213E973AEF6461D8FA01037B /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 3399D490228B24CF009A79C7 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; + }; + 33CC111E2044C6BF0003C045 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + Flutter/ephemeral/FlutterInputs.xcfilelist, + ); + inputPaths = ( + Flutter/ephemeral/tripwire, + ); + outputFileListPaths = ( + Flutter/ephemeral/FlutterOutputs.xcfilelist, + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; + }; + 889FA79FC2223BE511C611AF /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 33CC10E92044A3C60003C045 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; + targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 33CC10F52044A3C60003C045 /* Base */, + ); + name = MainMenu.xib; + path = Runner; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 338D0CE9231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 12.2; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Profile; + }; + 338D0CEA231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = 4NXF6Z997G; + INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = FluffyChat; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 12.2; + PRODUCT_COPYRIGHT = "Copyright © 2023 FluffyChat authors. All rights reserved."; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Profile; + }; + 338D0CEB231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = FluffyChat; + }; + name = Profile; + }; + 33CC10F92044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 12.2; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 33CC10FA2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 12.2; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + 33CC10FC2044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = 4NXF6Z997G; + INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = FluffyChat; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 12.2; + PRODUCT_COPYRIGHT = "Copyright © 2023 FluffyChat authors. All rights reserved."; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 33CC10FD2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = 4NXF6Z997G; + INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = FluffyChat; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 12.2; + PRODUCT_COPYRIGHT = "Copyright © 2023 FluffyChat authors. All rights reserved."; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 33CC111C2044C6BA0003C045 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = FluffyChat; + }; + name = Debug; + }; + 33CC111D2044C6BA0003C045 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = FluffyChat; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10F92044A3C60003C045 /* Debug */, + 33CC10FA2044A3C60003C045 /* Release */, + 338D0CE9231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10FC2044A3C60003C045 /* Debug */, + 33CC10FD2044A3C60003C045 /* Release */, + 338D0CEA231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC111C2044C6BA0003C045 /* Debug */, + 33CC111D2044C6BA0003C045 /* Release */, + 338D0CEB231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; + }; +/* End XCLocalSwiftPackageReference section */ +/* Begin XCSwiftPackageProductDependency section */ + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; +/* End XCSwiftPackageProductDependency section */ + }; + rootObject = 33CC10E52044A3C60003C045 /* Project object */; +} diff --git a/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..99f1cda --- /dev/null +++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner.xcworkspace/contents.xcworkspacedata b/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..21a3cc1 --- /dev/null +++ b/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/macos/Runner/AppDelegate.swift b/macos/Runner/AppDelegate.swift new file mode 100644 index 0000000..b3c1761 --- /dev/null +++ b/macos/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import Cocoa +import FlutterMacOS + +@main +class AppDelegate: FlutterAppDelegate { + override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } +} diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/1024-mac.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/1024-mac.png new file mode 100644 index 0000000000000000000000000000000000000000..7d0807b33191660e2ae241ad1843904e04a19bad GIT binary patch literal 21100 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 Sjp9yg*j=zBfw%reumAwzVTnor literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/16-mac.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/16-mac.png new file mode 100644 index 0000000000000000000000000000000000000000..77ef66d1d85f5a03cbc3abf45a4debc68f0a56ea GIT binary patch literal 316 zcmV-C0mJ@MNk&FA0RRA3MM6+kP&il$0000G0000F000jF06|PpNM8T|00D3uNs^db}_b09H^qAg%xa08j$}odGHk z01yBHKqe&s6rcK0#CX3LKQWjka0%pa8Z2s{0RH;pHw!LM%l*FwkGG9U5&LcKadQPu zX^`Ccw$pT`#%%OSVQa_w@$>x^{?mn*P>1T*ld)1v>|b=VF9l1q*w$Kj>n};wjk*{J zSG=RD$DbhB#ysFBdphl1e?i>D<*rw~{aLgVE-3X00nE0d)90BoyZ^*?@UXAFR-2@C Ot7brz{mjzUcGLh-+=r+T+hT5VHS8Ouz(q z;{X4UByHP1-`_tnOJjTHux;C1*|zQVvC`^T+O}=m$JlLERaR#F|KCO9IF5+S_#ZwZ zVgfRL|KFbjiDEAtDX_5@nL^ndsZvPj5CWt_$$+d*`LD16AI8PGaHL8uUPOru5Np>s z^{ms^PC9-yjgDCvjY1(nLT(a)A&L$ob;3T34>C|@pkly~+v#NAq)hhg*uVXf?dR`r z0Yb$KC6qzu+~&qNxb`)UZdl}H{n9`G@i#yDa|@xoFj9u2?sA{I-Ef(MT?#^g{#G&| zgSz6sp8;bc#KG1}N)o==gv@zbtL8v%&HDM3WbDNni!Ip&h!0e7ZV2*fZIj%c~b z!^UV1iBs-9g20GD8!Fu6+Ia4mYu<=i$cRBJOk}QoeTwFbIrnr3hOn^2>NW9v;iNzq z4WL8HoX&h*12L#oSeqlF#bQVcWVVp!gV@d>7u$%rU@o)_8eA3^p*djAznX#WnEf92 zk1Kyi0S__E1%E<)OMIQ7ZZO|H(6`8+DGQ$m#|>QddKHaah<^8OL1+Hm*&-Q3kT0HJRK1ne#Uu!ng4guZ~iPuVMd1F)*( z`7eFHzg2zp@9O)9Ec8u(=nLpu|6va?{h@FE!yaPp8;oo2AAxr5QGfsRcd5Qv?Nz6{ z=h{#YTp9m}^*@>1J=aDLo$JEg6Q%MfxiZ{6&uYSy9+Vlb2YQjWsLE{IF_mduOtR>@ zOI>VcI$vhsYA^>{b*|mOROCiW*R{2SdNfRP_ws&R4Ve8ibFL~vD-64;v-AZXLK7s|uvDa_@1|Ikf+L z>^g{Y`t90L_X>X`s6&+--e8uxm(#DOfvX_mE+?euUeTo&U@B0UyF1Z+v-2mEDu}Xr z(>&?{W%dIC4?oM-JY(AQp-n&D8Ad}-C~i-pkC{uqOJVR!C0&1G+zYpxUm!pO&+=JE zZ#BJO8s9xXtbr$pn;dB9XUSK863fF5<(1?2kKB_je|l#UgI=V#{yvGG&hlSAMjL3r zp*9_}bL761&GLaA1Vi45Yi>8a@pN|nyHCnt4K<;*@%EAFZC>~LAHbjw?tPI=e?8sU zajWY)Jk+dw(w+B2aev6`dFd`>4K9(D zVtmP^q=N9U0gG)HwlZ_pIqQnwAPPg)$WHwJLYF*$oM+nmg9}JDc$gTuB({HVTg-Bq zJ1Ej|Ni=%x}dwc3-lyIex5ADI87< z$jAUT37G!j+uyk)d*9ymNn4ofrfK$H{D;dnS63AwD7HYL1!6FmkT`hH?|$*qiw{J5 zVBh*=mYM6OxD+*I=lQ?<)dkx((y?O}`)vL4%P#)&1-m!GTk8ilCbMGZy~#PZtr~A$ z_WPfI=eW~PIC<@awb6KOd8vsInsdgb|&RaOU@;i>|z$POU@!B zAt50Sn)3!@YrN=y|U4|2Til9>5&qJivb7ddK<}{`cuS z)Nkl#(+7}~hAkc!>jh<%B|4(_k3ZkBu_~y;-<3afZWcc6{;q^ zu#=|c=b%ID`hT2^SkrvO(NGn9vBrj&h3ouec+xDKG&;RSu;>7Q; zZ8tlNh<%nEqriyO__cWT@PG3+MdQISCZd746>9>ukBIoQu(#7v+b201N%tq6r1akJ z@}~g16^c%w|IGk}j5qU#g{9K&gzHVubLoD`Jg(2w&_!b40092}>X0bE=ACL=fAdZ( z5Xb&$z=Ild|1|5r@^=ORHw`kAM*q4fXSV!oK_U-q_>SJO(gavY#}tqTaR_SuutNj> zu%^=?*C8m_6$)5}CK}5u?+rG3qo$^JXgp6}f?};Q@yg^Xo6WUK`CHV}4?*doiEcBh z;GyI;-YSkG@dXseXaMLmGVB^o-Pm7kf92Ujp5Vh>fXr&w=%@L_Y~k)$hRtW~s8=I5 zn(iNzqRXUsFbuV~%t+@_2s;9~KWR$hO|RJBSf|!=Dk>#t@_zpI*p5>>%hj71el=uU zHpN*+(JfNQLo)JvE*tGSM%R(+D2|BJX1nhCG>KRfrXdgGMM};BVw{8eWib z`S9Lr1CaBNnfhbY3^}^;D&>uVE71yP>FrnH|AcivxTj})iTa311e!J+;{`;`J59=o*enPRDTdLfK6 z$yl`cuDi4lTK*F>%O1YteIbEf!MfprEC$ftOl#1!C~B$AY{(@OjQS=@TKqP4J(ceU z)<78yo`EPx=RIV(5%BeRbgAV>yzA6KMZg~RqnhwJCoIAkQZA772WOY(o>C`PC;J>H zmff9aJcRjjdERUS*syEz{<3TwGZgWN?;6udljJKS$-4)^wt8_3M3R%G`p8Lry2)rY z3IVR4F|*OI-cmXITSXBy@=DHc_g>vyqXn+aBpOwh{72vnWQ&bYIRD-A<~>g)mp=cD zCxyvIr;Gn~U3#oALPil69kjpGY(XiHwufa_F9SpW7{3L?-UqSF>ty3y+`^9`=4$l$ zV8@hFJE~Pbwsy-5>Fh*PZj(a7^@MzRT4$?3*PB^Vo|P}+W|tW2w`1s@#dBTvD#IRI z)I)kMBq;YbC-y^+F&N=xiQRZ7v!>zG_MFF>wnR?&$|g;+W6X*hCrzLn->1o<2!Lxn zDE5C+gBWeD@!zo7#Vj>~3tw{e3JYMjkFQkmT)g2H0*zc%QCf|sY}(aD%L!(wkPr4? zO$Al1X2(cSA-$r+&GE(wHzo)g>Di%4<=P&HLL7rU>Q0 z5$?%rHr4Gf!H|FB7vX8`Pm;FeBvuXu+qhn$Kb@aRC3~04y*;fbr$Sm1M*NStL*!?4u;=QZsFHrzlmi11B>8`dNkj2L4E-vpx1#2iN{1^JhzLb)bKo1MjYl?*9ox zG-8gCed2VZEY?n;{JLsv4xTI{1zLyMy4!N|ROC)(|A!GvjsG>7qt#G)+cHm$in>2( zeCNUr3+fQW1-q{&Xx373B(~KR?4-s-JJj2l^AUarzqTcqC5Y0$<%&1qOTeY%0B2W63 zoXGXG!=EeGRgMiv1jnj1vUS7O2vF~z38!B_s$@X8+Tty>mX!DP+pwFMh_*B?6@Z(7 z-*Pe#YM%Hx#E`3AJ8%D@ieMKIISEq6bdBF=0_n;MNWt*te9A#YJ5W2LT2R())$%gT z50grhGEE5TE0Og~%Z~v-h3u>GAGBh8M%}~wqD8zY#cs^EuHTP2dKZxZ1~r{8{{lj5 z@kZ7t(lG^5{`?njRfXX6Nit{-A;q>PI^h|~?#5A}4^}Q`fMK%Rh z!}v#HAg=0)r8XPBsFG`O0GK*nA9pk+Ry(-=#6ph)(9oTh|xv4mML00wk02#rRdMUmW0c<05(6> zAHi&)!p_2r-M_)Tb>iFq>tMnSU@7gUz|IL(bCU88Vx!LOM*e-?T<)_2-k#g(Ym zYu@~I*Mx&Ps0e6bIRL#sAYIsFWu(y2e=xj3z;r%jd9H-m7*X83P}VV-)o16ZJf;1* z9UnyAnNTVPd2ostjc87zS#~T48@d*Bo}9E2+*-8gh+|p_34C$#!v8|5vQgU$7N!Z1 zX!|+6*vkWo<={=Xe4p^bndvlNQCC+TK1N|=nrXp5YB#Sh5q5((03Y?-$NF)c5k*a(b>Ob=8sSt5k-#mcPCTP}H*O;SJr9|qs89th1ASLlw}Kl6s; z!KVZ8Q*y7{2)p}9hF2louca5l@jTt^K*(MIgwV22vfDTAfD*#yC9eU zw2lx^r$P)Njzb3B$6}JC_WL;n421I;pp{Wo_IPg&-MJaX-HXFl9KM@qRwZPQ_;~r2 zL9${xRh~!)kL*w;=fFoktoVWjpDiIrSqe0_X*PITU}*{3Tt^zy!|0F@TNcFGsPFxs kn$xwSWq)ws6+42aC!@Jfg3=rV5cB-j7l(*t_76y5{a&_F3q;?-LP5#02nagaZy-G!&MQgVu7e{3L|5!= z>VSpyTYed`=%n=_fXL?y4y%=;=s7a-wJj4yRVIwC5ryQ;!e&Dkt`f<>_4_2C=Ge(q z+J|nPLIxbqkFV^^4nA)zoB2mpW$iE036h3f|sG{$GTWCi{MIA8Yo zB>X1%_5Y>iTj$^Up5Z^rf29A)>(l!)?05SzyLfC=rCf}RJsmX_W;|MXyIp*Ku?j_6 zB%Md~^dJBL{{JT1nTwBMZsD+z$g>e#Mm>Wm_3i&PDU0P^IRUe+#%H6IV7%!sd-*_rWTLs;2eGepSDOgR z>eZY6^jkWr5MV2)_!D&MZE1-MW5U)Nxr)ACu{lECVzNte)xrK)@_vp>Lnof+H4#c1!C{9X0=P|J6HaB-jbxKR;T(}mGuobNfSclJ94`%Tq9Wh42dd=-Xh zo%sf7WZ4hdD(!y&>sy01GDXM$FwuJu%5uVLwCyi^H@+eTpeJx82l=X&7Zwbs_chxR z9)k-WL?K+inn2R@yfxbnQ^~HkfQCIJe`eUmmH4bT+pa&FdV76Btasab*=V4yl}fd# zp)Y$}kW$o>3}Sm^_lKwZN529;YryB=e}kbSc^-B1jjwocDjs1RLZSo>SUMzF#LJR3 z1tvsYzEF>5Rkt{0@7JgBZWqVXt$~3FE!aHD!PBrLo^iZMwV1XBczG}@K96yD5Zz;!X%&`GNDMI<8lsm=BM0J{Shx6ZCt%Mn2(q z;$&EKxZo5zMKbh&CSxS8`+m_9gPiVy<^MA8cm2BU2mNmi{UAb%&n~X_7Cl*o7+J$` z_vVOE3BS>kBJjhj2B!VYCrl1?*=KdxcZz(30D{AWi;F{vf2Rug&S)R9x1klx;C=*nR3n>VFm(jmH?Ha0HzLCI#Ors+@I;sJ4NJ zfsa@jF!=0t1Q{-He$R1!Fmn2DSScNTyWav0Ai~)fMy4nXKH_{+!ntdLzJZsXu#P1E z?ar;D@m%5e{DxKK2ow9!7e`#o%3-3%?WFb$f>Ug%E>rP)KFvIhipDdH$wCCrpOY=s zmwGQfZBKNLggY*cV0WKpk}t9L?$*3myi!mO{V3o#eqI)mA+^^0E(98{3!Gin%(#;^ zM5)t^7{%R|B*lvn^cPQNZ6~z0O>BF+8;M7!to7$O-WLui=ax-@Gf?_6^iy6z7{3t* zLC7)iCl?7q_!v}6KDSJkJ2f|6UP|YMr2EHiDsF;_H%@BnB}=92@hhQ-RKdJjZ`FaW zsS>GV^a@8y;1XV}KVC~xQf18%{C-O!M?DEV*J38Y9`atxCtLh8iGg#`IpgBUV^q|*!O|2xPFYAXfVPH z5BV_Rq^qR_IqBOkiox8UqpDZndZvE$=SR#gi$D(Hk?V4jPZTjL2&dgUp=wrf^;>7d zRF0V1WnK<0jBT+<9=gC9VfN*oiK}Od$VFHYk7L|c!qiw+K?BS1(X^mYiL#mjHAb{v z+^rQqcY;19VF!kaW(r_n@G!u+p65G zUwm@DYqIlLlGC*6Tv!a=0)kcubkEU2u6$>+(=--QC?o>e{Ry;&vqU|^LQSawDrLFe z3tUpO&ZK$9e;tGct&r%R)1gS<4~KkYxTK=u1apEM_e|kiUH&)H;zdUtDtH4s)Zf<%2F8oa$m9892!n&*lzt+Mk$A;hp!GZu{w2RoNXv&M zcYH2J)&vgR)2Vs+X9=yKLd*j1;cYqEvS-j1v?OdXkI+mWUSQ5 z7p1@*LaP>jf$J~OrV)P*Ik!XWmEHf7=PL!t;*-u$+RG?);Z!aB>1)Vm8Ig0(^CFFrU|F5W2b_}BC>D!mzrPdi?V$VEE- z&mdK;X0|D!9gbu;HtQH{ss6wi<^a|#3zepyf@M0nW*0e)V%$=ms7fOedAw$(e<(!a zwH4F?kM@TZk;TI-pTr%e#RK*NOQEnkfQZzx6mu1>7;-FILo)6zRQE@;Qd{Ia3$T@M%=~1{3*pA25cJ>7?Jz*FH~d?e z@3HWG2b37FpY+uSEDn72gOVT%^~4q71rA*uJ>>y5-yQCtI!-g1S^1j;=_ao}03i#H z0A8WIW?G>gLo4q+%1?0k|6X%ovtZw4zZ2YGu)og_vIFs~j~Q0T z+n8(8*HhFF$k!Lt2efa033Dgm-rt};6z<&a-gdxtKE)66%>Ckjvzm~<_-nZ74!sSw z-yk^5UypHK!JRbck@qO>f0%B*Zg2^}S8eY!!`Ts%K&}n35wswo1||(%t#JrIQ~VfW zYi~yOLaVp**UD*VMlx-9J?z#O;Rw#*{emhw2>i zM6koTBMRIY-RZeb6}T%YI_C zCh>y)2E*B^iPzxj1dIPV^f%>{pM!*rcTB~qQw;8d0j77xl{m%?tEQTycTqby0Uo|? zfaoUq0e8CIzCgit%c|>PydJ3FUkRY6%MvvxA%NtFwk>Xit+DDhw}d zCa=CqlU8oF&(o{oES}=^mf9p4zw4>$1|C_n0q-e@+(9$j3wsqWx$~`)<3Ctec8_B3 z5%;l%ZRkvnvVj}5MP%{y(%dppc%|p=L!mC@$;Np{+a%hWPTQ?+Eny&o-$$U;nmAx; zb;xiM>B}rm&F17EGc?e}{%%Wx6`V@-`=U##85u_fE0}#{Qe@On7@vE--`_f0@zbSc z2HEz8wxg+r1bJDA#P>^?rvH8$Fl)-{PoB$T+sFEd9Td$=LBm-ET))ow<&dEOrY50( z-xb?AC;rrhm+(_Z;U;9|0^!!i~~JJ8BCTGB#AoZ{ck=ssIaxNU`7)qg#-bK5fKV5I4MBF^oD4(htop87ON{+=rUfhxp@&T0SHG~kiYI< zL>Rp7o~FjTBJO@W%{Ch87|-<-Pm$)&8^aam=60{WI1QMF$x}rMRBqQ;L2j&5^|=|Q z81ksdc^~NJd=x=&P`XP(`R#~A;S^RM1g)rpC zsJy9Ff>|4ebWxpousN*0pP3jJYd2Sf&sDELlYL2hI2+Ru$Cly3L%`8-J{H{X##xOt zpx<&(=rYLDk2CA4Z{UVRFfT&X-St~vs}I>HSxqjjMK4TbU+3`mmyY#K z2D=75wHS#2ma1F?pQ05Ll#-iEQ83jKfSy9^kc(tGRzaUaF5ERQS?z>J`yQ{kE>AmI z8xuQfhBv8z7_9}{UupH#I+Thk z`MB2p>@8X4BHj=HL^Wl)C^VT$~^_)p;C<>BrRyBqt8x*PyVe-_4VMtk+Koe6PflCESrA zqmb-Z&#a1VYrZo5^t`>#L>_&%K49wHM^1=>tr6vJP-->=|Bhr9IKoQ^LGt_97~tjv zah=yV=goB;D_5gMTx*-E{7XV#J(ia%GlnXGY7+F+`3fyHS>73d04Y4mHl_P&Ki5}h zyN-A~3W`P)S#)YSRa{&*yLMRw$QULmC(zyt`2NJ)`}L@~77MWsg*8G=PA19I?rllk z7-=Tlq;HC)`u*0>Z|zu_C5TueSUWBRD^DfZr2g&V@nKn({wG%~UV=;e{Wrf?$6T-d z!ANEbF%zF9lVGgm(Z_i$rHxV<9BxlMQK^%*?T_;};p4$HH+Gpk_&TKk97?K`(Z?in z+7=g43K7as^zSJ<6Ib2m`$A7slgz8|lEK<7)P*96bV;k6afU*!VxlSWvv|fj3*kGr z6`vN5r@3zZi?+2;l5_*FFp2T;WW~OpyCpS5!sRNuWCiHGNOHI^KkR)cGdhIs_EGg$ zB@rlaw5MU<;~{90K*L)PBW*#$*m+!#_@KAwXa^~}*5@JKuJhEm*XZ@LMT6!LEb<7~ zN%#hfT2r-V60hZsDLdkCBEcgP0FJdVkBlsdzedM5yg43wgHJwVlkkZ~M3?X%Q5`^D@h11s~Ce)^$Z97{h!v>yL!#QU><{C7= zWD!GFP}khqK?<(w%_QIMj)Z-u`{RCnb&nUcwL!Cpc*Hg^VS|^w_`2P8y;Z_0(CBdo za`S#K!)&PX7=uMZCy(&Sw>=gs=A38G;OMx|Y3Tw@qi(pqB~Z3(JGk&?*XB-bzAS~% z8m#zU?t&E=TsUBm7n&&-YxasF()H0Tt;CN~HJ@ymC;Y!%Q zdOz>U{4t9u7}R1IVm<9}u!QDIl}*azWmqak=2srN{_Oto zScwCl^FR3;%&MBM-qx18msDi(1Vx98q9^jTub3P3$f%<0=9}l00H!^V`jl^K>xIs; zRUdQVDs-vjRM3z!-2kX`Nz+avn{U~t41_vTV!a%XHABD6%=CG3hx5hi{!+tJiTDE= zi#=GOR+#YC55)L6V?^L(DS}t72-c_m9oFy-K13`}5FG;&1a-}gZ)y{bJ3r+@5R67n zRcFZao25#(+n*{pScFUjU}DSb-|Nplw8F$xY>R*nKOnR|bebF=KL80yj`lB_ToOL^ z;YHWgu_M9P#qmNy{FgeAU)eOJ8>qu&#D<5{6CG}%D#e5iTlY!W2&avg>OBA^z47}n z1TTZV*a8149c0P)0KjztARB@K011E;vgJvap`sMdqgs^3y#5klZubV(Iu;aCm_b;{ zsX6xI=c@7DA6w5!<(rR3tq`UnJ(>Vvxz85xx3}fkqk?Xf zN5GEmJKTq#k?;|4+waCR6%0Cpy7#-^ZURDpr@EB!wvq6)DHUmWP6Qv-3`90f{}^#6aG zcA*I3Pt7@X;QUW?3(db_7U(Yo-Bu;iGY-U4v|gd{FuSrjtTGgf17aez2wQP>0xIv* z#>>v}#L{oDQktP^op7Hn!6sF*8R;=3nhw)tddCDM71QBeCO{<5@_utj^DGqyYJ0y~ zXdXWR)5Kqf51uohRvZ_SQ z>CG3?qiPjnf>qsYNopIkz0S^4t^Oxt zZs7E)=0s0MGs&WiB{FYp^_1gCbav3)8&c1n1~qb!1$N_N>r2j_ffB790NBWt1AbW!jZW?cK;9CJVUN6%h&5i;5$;{N~Y zFkt~cb@QQ}Y@6(Eo&N{Zx#Eh38R~zhs7n2xCkIDUs%eMmS^@@2$&|4b$@XlzMLOW4 zq)2-g?g^O?p%zeg>lcJd0G z*6%EO#K8o@Yjx2IuBPNrE;1o*Gp}JyT?IK3a$}41u2!#NXs&-&I<*yLKEk1i$+@8M zM502hz%3-hSw8jaC)XM~;xdXNqBi@)|25gayMIKJxwbqXyr>u|mtx+&OEDabApeGD zPSJ#Tyh;icHYi5aK$L{j8OGpMXwZ&diSO3k_~!wM+gQujVz7-CrmLIIt@pv3N>5w0 zAZ2>`>R~5^kpK9}!B2jhVsmG6%%LK($awyp{2m?*uPuW&b=TY5|2T-k-EQ}8k9e6W zTB7|VbSJk5Fe<>R91Km=&$!-KNcc_yH_C>ZawAKZTV`DvOskW`i$1kzL`XpHG0)PF z0G_tarAMIV{ydNpp9~q^g9HCx`wsq**Qqom$$BG+ES=;J~wM<39aw5jkSdTzlR$KtnLIAReHI-U#p#) z6V#7HDz2ct|GGR1*Tfl6F3gn`O2~*DVT|V8FB&cr!vH({Hw4H#!GRREfMsR$=<0|& z{r>Y#=jmxET)yHk6b#0CPHD=g|IF_PLnRbw`#!#qs_}oN{3@e{p^GzC0eEwJ-vIzV z!OqG5s=~5av~r01$Y-8gbwmMJu_lCG znn}yf@qa`VEsM&!>N|*-7hKm?VXC0gUpA|X8dy3vtZ#YWsS0i+`LGaq^RZC%dXz8I z@Ux;b%NCG{dZfXU=5}{|wcuIIp+yR>#4=9S*C@$My&!vGn$>@#J_i<}y;yq`BiokN zBESe)SfO4{Q!J+Pq?8{}DO+0iWM5Y7aS3lyO79$Gw&=X%JOnAD;)9aYQdq!+@oI2l zeF~MiGM-F_xr6))9A($M~rRwt1gn=9mB1t z$#tw<;C#n%k!yvq52JvX1j_y~@BR;kMaQU}x>O`*F!kc)3ITps?XOlcDY~t1y+`fN)w%L`uy3 zXD~m>oKMHi#GGF^j3tq9bQ!^h|1=8eD8EHOf97EX!mfmncr8ajwF@(++M}ZQ;^{6+ z8d)d{5)CjYOBy(pnj`Q#(NX6>8WFLvK5mbjl&Z@)cSpDVkzUtzYlX}A{)ijG}fpwr4C_L@t9Xl?rE4>2;JJYVhCVD)p z&1MHB;p=LJyK*BiNF7-10h__z#)oNCK&HYk`K7~k1W%09tze5rZn`drIw4%zjL1Hb zli-whM67Fh_7FWwxQ$^ukZNi?>)#U~MYQ38ICXLV?#gY%A3%_HUIQU;ycb2w{05EVE9bpjiaI&Dx$?LK019{S>7HhDlwr0~Nn5%j)v zcg_U!YnwkdgzdWLk%pZSzRWN8%IV%nQJz8ZrR(xkptZOOqo5^>%~#Nq4u@9gV`+vS^^-4!IZUEC>E9fFIZ z5xI@U zZ=0M^eCG0yuqIV9SW{|j*u5twU%DlYq*OWtFJpaZ6q~xwC>(6#YHg?3RzL1o6ps3= z{hZ>+j!YHs<_&1s5#9ybhwp9c$VOj3nVI}Thfn5~9g_PQQ}GM1ucqB{dQN{<>R9eD z%s)gL`BK|TM@d4D@_1Al<(cVl-yNVN`l}#~g|nIE;CJDf!p993^%wA?4gkAWBUmNY zw2WHJ>8@50bZ}uVJm$OzIe-f2I&fqy)uK0Ieg1mnou_#c2&IC#>()XehV0$uQK@|+ z)+@q{fkroOGWop%gGUETfA$NnP*^5tpM%y|s^NH-j})}q6kGx*xG+`o~ETHpt~n3L;^|}GkT2plDpV-b8Fz3HH3bOifm|ZYD68X zQL#Y1u7uLfri8(lic?68f<$f<5s|xywqRy=>Ic(__e(uK+`b`|B{5lir%?-65s9nZ zRM^w2wTqW`ye_ATD|o~~s(-dv<({bMFV{!s2DJBdl~YfA@mba!?`P%LKU;MtvPAHWe*~SklIgy8ONN z1>473C{D7@G{6Z_^92$$FxR4T(Y0Fg>&*T}M(ATiCIymtUP<`(dMC9_atw4C!Iml1 zpr0!6N>8(%23i&~rQPqQ0NA~q+1^1|#qY2tq7e{L9|OA@T1ue@6pEa7f81RsrjbE@ zEbfV<2MfQ_`Q8UNR(4G5hs=#mHku>TBs_lPRiW&XayW`gjhBM2nUaM<3E|+)@JA+e zoLtm2=r%PUAO!o)Tl7xUJpN=VEq+B)WGQm96NQmGc})zhZ#f3ae@YiS>EX9}A8~$H zssqumfQuq8Iy^u2ziC|~t{mKnJl_RwHwwTK59znpEc?Y!+v9@#8J?HvPapl$zM0U%JHp_pRXJ_-*7wXMGo?h zG{?6?l4@oyCLcUZ^heH5QrpR7$n`N22~y~zQMJ>=iw+|nW5t})WflnT-SM!GOr?|> zbqH=2#+n@6uDdK-5t6x(&RN-gpvfA>;3RHP6#SoprFmlVluiN=b?_f2(%I%*HO(tf zYr$MAcG-%+!w6R%ZSe-F-cueM(YL~(;}f?9z+7<89M{b#h>h@99(}Cm7x5!*sm{ubrn&0hb##JPCX1w3O!|2qs4l-E6O%sIvpqJxl`KJ>Sj1uQ()hl774)8nolMr;7#ASHY}<6rmY zS8QGM)xl_Mpa8YwAv0-0%&AQAP$aE)IwP7X`kb0o`YoRhWKl-pXu(yA;d?n}b48$CA7D z7kb`zZLm8bl6BLioj!f=Zstb{g)fW+p-vHH0ev1?OU`<#LF4Qb!oQ@H&|`bm6-Y2l zwa(m*QPcSqGTOAn7R;EccmDlTBpGgBsijc{C#t4rY2h8zB>Pb>sU6?o&JC8p_Vr@V+2oPYK3`nSfC~## ztPpry#QuH}r0V4A)tMzwQVH=I-bhM8j_gNInseLj3+nwiZc{6P4g4a1NgZ|EZ*mma zu_JvX$jMx9{Ja};cgNQrj<{bl$rZL@!ykLo== zNGk;TB_`%_&P3qYAp{Q`r=x8PCims5j5dT6BZ!l_HnUy#VIdY zgiv8p&-5O5kw|s5eZhF-Iu^z?E6s(GFr+Lw|8$mXKFTigp z!d21HR@(L^ZVnWf!7FfLNsvn-p}d5HZ*q%82si>P?LNCb_hMcQi|INXVfdSdBk42guaY$e z_cTpnI~N7i)F2z5Jdb!BpV5b>DJqH#?jD_#261?sleXx7AI8F(3o$$MX~+-`CT5qK z0ZF+ln~a}dx4d6UxmM<5b(_1+qH}T#h%9Hkj!`CjN~6eeASPmr4bf@v*CkSKL*j2d z9@oU}zJ>E!ZQ=2P0 zZCmT1U4?WG2Bf6LRy8a%r-pGh#VrYZ!MbQrpbKf^1oQx)RGq3Y(HMtVArhq85HCX_ zbNrnxRgi3)cdpOxp=?wCa)iVwn@m%>kY(LKFn_Fu{+P>` zmeoi5^EmfyD6C%OZyS`8MzbyP`Ub0rOgD4w|K(Wr@6@V_n%mgMo%T62;x-(`);mN%v3xH~a~mP5 zcV0GRHc4^d`_dQLQPD&)>*rifIfL*HMgi1Ledkg+!tAAA@ z#z1a0$a4l|Suab<^0!^7tx!5z9xH1XwnoKoPsv9n6+c?RnfUd|iGh2!^N_r$RrsTd zIPn2drUE#q_epT*u1k+c92*}tVGnmF-j$K>*ib;-uL*#*)K%7-USGp#AWop)5c-|^ zORZek>hD{}EdNEWFV1ApI0GZy2O@aA=Bti&r(RAE1;4`tM@SGH?*kw_Nx!6DaaE1L9)k}b_0yVa?HVtXwd0&jWH z{1rx2Q9v&L{t!U|^uru8G8~sZ_WXK;9QJdPx4yMC+gC^BP%r_uhSD?U_*UV~>f}!! z(~a`hu?6>zjvXfJ?x9s)E0V zhSi5F5OqjH(L>`#;?#h36ayk&dg_DzZ);iMiC8B&-{tY0ya9iG z!H<0X96~9-36f6}!H8QgxiPhVkdh9U_4YZ%%5&^#4Ji|_20IMQy-_0 z=C?jx_TOUFw_EE9O$A^O?e?~`t}FtaML_A+Hrm~ti>p=`q;OP*Zv_=FXQIrzH7)GVdEuX4$#W;Z z%l>?r{`3fzO?1Yw-)#Sm!5ssGWJLf?Nmf`2#Rd7_Y}1ZeC3e?pAy03~0C0%?h)g~CI-wrn@I={WAy|fJ5PGeyTC=%J?ggU``Ev{tl+=QRjc<1i1gN-F#!o0RC?-76T`x&XGMB z0~=gb8xuk1t~8j-N`RM5rF&HChpA(ql_wOIN1qA_yjo5X4ybb3^i5sYQ+iTQaZG)o d@mkBA(H6ED)Ba>1?x%@uM8``u4Lo-YOI-Dk>@}11l;jDhh?S-hAoKne7uCU^8)Ow&PX`*x)ToWuty-*^N%AKUViW6bO z(EMX1A{8YmudiCeggER{B2tl(N^}S=1oji9qM{{>`nm-IEyhcvA||P6u%#S!$j9cj zAI(C}DN*E!uELcvxF^rJ==BsP(YO5=<$F%Ssfv*DctP1M*}{q}Oq{QWmqs z*r2ClpGO2gY9 ze30i0{yZR&8ANgnX&-guZeGR`|)a(!3 zc30A2j&(@=m+cu`#l4zb&&!)>oT`v|VPLZ&a?l%{@_TW5tKzL)4!p*H-C*k?(e`W8 zt^n_J>8!V0?uPg=Md9X_0}9V^5i>=Am;eC%!qPr633v$`<4tXra!!(!Gj-06aE&Kg zetFyecH)xhmVL=pc$+1u+<%sm4MU7Z#;+7G?EM5+!@ty5@2|8NeSPPYOw>Fri=J!A z!iNdJHswW}NS_T*VCy-5S7yPqHCCsK<8k~YHMg|*O+r|D%Vrqwl9}GY2#Nsrw27GR zTo4#JrTtla>^S=4HUF~{RP6+zG|s7UGy!At7ACm{*4j!9yzOeT*jN9geG^~*^2DG0 z)utt6!E~uUQ5TX7xSwPdqq|Lt>_7rPjXG5>8P+Z6+6%8V&!#>Ndq}pHLm9^Dm!WQe z<)5;3D71Ipaj6-*Y=fWb`sXp8NxnLN{Wz{5GEg>sOrbN``V988BcrpZ6s z+lIOYa4YY8;#Dir%oSL+GY-SF|4v!+Dpn9o`)M^#^k79bC%*ruKlZXK1<^R+d<*Qv z(7FH0Z3SU5TvhMa#_*AD#(36SMd{!POW8yOW1Nw{J&N%`X zu1Cu%sI&Q2C!yzFBGaD1k_Lnlx4*u#7vSrzmbI7tMvIg)oBd-Ia}zb7kYR`wYR|WC`G-F8ngK zL7m)$mN^S_#Iw;1fwoS?#`RM(tYt6em-X-GA6ps!RWBo4AaB~80Cuv17jkJx<-9Q; zrz<}HYRZYAw*c!o{}N`fwz20r=KlPhfX4k5&n_UMvo~04A5zu6gA>;d2ei()Csi*hv(@vZUVuHWRMh5D?i~l#+|A)tL@BZgj(h-+b1wV5!WPca`BNY96 zO!B?|;BATp=kNFbH-w7)eY6yGOY$!zT&4eCu=(ND{l6RhkC5`g9_t_Q;7CK_zhv)3 z-~G=5=U>48CBy$_5jdO2U)ppY_x?St^S^ofUxw;@aw!DhXV>mN-d`3%${~Idu z{zKnN#s7Tw-*Mu<(B2aGdx)zv|KG(vq^k6vJN*~9+_&-mKK<{A@$a7h2L}G@PW|g< ze>d+H{r~N}|Dp?Z_6zO(g!sD_6e%UwSaDao>3KcdJHvw!e%266?-)|G5p~zY(E-VgGmc{{sb` zWPR&qe}%C3e#CF-f6m!e{13nV7n=e3_~#KE8TX&Xf2qFz(J`xk)#{R;_1~*3VckMt zE|-~uYvcrqC^AAM>&-vPOj=Aq%6K ztRzGLj0>?dIujZM%IbkyWn0mhI$IT`GRGGu>OqyKXgnCqcDjmO8|%dh3&C`Uo!qr; zhPe6Ju!6(K{B~Pd9yRM&SE~qKMN7lWigDTW9hEBv;}2Ah5kYU09(yH<-aNr5t4wET ze}c#TyiZL>m2kSB8cAHdqvWn>0P_>m>A}n-B`#Fn`~*n1$pkoR`JbY1wA#=okwOP;QZ%e(J;dcknE(>CwLfn_0v4Y_9hBI_75H{w1_ zRyL}Yv`CeQs=aw_&mF`iIN#$d+U!MJQq!>B1-CjV zuHd)Ws~Kl-T17FpXvR;Km>=p1PfSyaES??QP>zgmA`rL%!T;#;U}hH#xoRkHZkVa) zmma(hFUv*8>-Atd)Yw^`g^^d=^?cY~xX41fL+rA! z&S;*O)lOTn+X2ttXg`1;i_aDCk#;r1W-;3o?OS3cuf`m7M_w9B-`8tDD#fw3{VZY) zbv~vv)8nywRyp2A{9ZR%##FX9D9bnKb!2pr4Wj<`^aU#SX>gEI^9*@&3gCJ=PS|?F zYp!scpW&&4hL2f8a)o(ys~-wUwr+Gqd0m%@BEwaC2tf+Xr_D6T&WI_(*8yHQa>uY} zdg>&~Y?@fRob{AR^z-=vpgPhg#_???Q6=;5%?nT6*QI^G+fmNglt`oY@|#nzBQxY% z35%v(gYd#I&tXFTLK(7NMRG0%uzCq0CO#ML8aiT~kE z7Dbe3)OlL~8&&S+q*v>`yPDEtc6L`;$(Ql4Ad9kY2TSB=$5YR@Hx(R~Q%JwwSCvAM zeqVMEt}zgsS?|ELV}T$mlf!H=B+jkr6$E83itX!(>QJp78+MH34<}8E-s?mFoOmZhbGl@Ktvunq78Gz^x=n^xy_E=GS`Ys&BD;5F8H z($OqNc7O~!U+!BxRx$90A;!RFTP3qWNkhe(NQc$poSE|BOap84caX+cPfj|Q`EGtg zPleK58y^jMJ*@|(`fO`vFpidb(t&)^qh6v8##r6(lG_l}Trv|xQDR<`r&~0{J>Evw zI$SisNdR?z1E~2n9(7dIptoTbT1;_DXg!HyMhXeuW7kC08!)tYWK>+rP)WsskHF$Y zaSCj9&w|H2qQJ&EZ+k(i!k?p)00>V$&*NK#yNeIQ!_n10KNE`nZgp!yhV8gvMw&hN zfPI&34~9F#Ko+ce+3g@Stp&M(4Ezm2>qM0 zXm5-9I@$q%ytvEXa8(||<{~)+|GkGn!6AdGI@TS-9o0q*O&!KThymw~E#(a}8VHIO z4AjqiI%ncAb(XNY$53{|!dFkGS-dy$Rn24FqRzJ(qVILNBf@g~m|q8pI=LrhJ`XCC zKt9evZB}YHIMGkEaRW##ci%BjyIK|wn#nZf)0SEc_kUMeSr8ZV;KTDF0oq@weDXVL zgh!W2Q4%t!;ELnXB<-!*-A;Vzujs)Cc#~(9H@qLuK!0F-W+pLPD30MSc08KrH&FM42!a6Ha?v#|XRc(AE18v^51JRUMfnze~0PKqB-m?jQ zr=YmqLYbFei@z+dTUJ9$beH^~0b@F8HTLN`nttuJbtm0saoDm6skl>pD31*+hPQn- z^+y+!oxs?S@3(mQlKn9$z@vCc42guRVED?fuA5yscsf(@$QQFHI8gaa_Cywjrhp)F zy-8e~Lm{D)AwG5Vw^6#}$E9rOHZ{2y0>Gr?1M^kkPcUk~+RBVP9wU0`HWDMgJqTD{ zO>6dgyeI8|^}OMV8vkd;5(mhgQgP+&;>o5Np+(Ir8c5_#dI(X8N1q|lyXxaKtg~s- z=)P~V&*xRKp`};4!kB>tZM&2@tUGQJ&}hCtH9QJH8mbag=0dn-c7^Uyp*rtlvwuwI zNVKKz@`bbS>PM;h0qn?IS8pn5e>5k|5Bh@){MA6Xol|Gc%=1=G;R+JQFCkdup9a6d zS^m=PkEc+zy$wO>g^v!8y94wW`>A!gy&4JFW#9w3>LzxTRv1~5P>qG*$3auwr;7(U#9UeyBbEA9cmpw*;IzozkCTm()$Rj2=u2&G zJvMDBz2t+(T%4)TNoi`z!e%4L-TkG6`|=!Y@Jqb<`$?;Ajgp=w;?%`&`%ef?;GEj$ zmhqC0$7}k%?z83=5hu*BZ^gN4_z+s1$Q> z%o}FBV|TvI?7KX5gar?}#RL7s1x7|(l7fm)kLH7yRTH2;t>eGXv0gbf~@mL#?E1CG{gn)T{GU5nDYkuzt600Pvn;g0WR-dp2n`kupF0UB4y=|tX*6eE@u@4D$)(q#p(*&rdBhAsiuT#cD)j7% z6I_c2-`J`fKq3<4$0IHn!~tjDCJf{a=iQ7q#aVMU%V1e zRiBs3_VQ{n33&Ew*b!Bu?Ag-(bA;ArrIhVpzN)U@Lb}29o~+2P8l1<)Svt-sX;{;f zqiPUzZg?|arU5%gNj5QSG7A=zWC3lz(#Dd2YVnCc_+%zymox{3Rj?7E*?^<=jC{ZCEfAD z!L`ak`^PK?`&G@JeE6xc)HOsap`;IJ=6$&JX<`w9t%g$QZ>EVWogaa-z&k`S3F^pRn{Z-e%MnP{PbXhi7+O!?D5jf_@ROv6e-zf7zCb^0ysYcj9 z`8Y9lccoJnSOt!9VkJ#G7y`Cri3{bRlSrP1Q`K(d)1N1 zEykG>8GI?QF^iM9u!xcH(Jb~jWD3O@%rsyXZa&(_gug3c3qF||I(Xf&$d%PIH%rb$ zbExWR+Pf?J4x3T_Ycei29@*7%)}+DS$DBMbajf`%!rA7({Q1vtB{QN@x!aj87f`khbR@pmOPUnFaHeGZi;Dq9=B%3FEUlm zvKM4rH3fG!8-%yYJXn(YmHfC_{+y;B9TyZdaB-N@6Z92$R*AIeG95`WI>f^xNHJA! zlJJ&SI~?ON$OeB_sV5hV1vK=<3Ngc(=BzqJ3I)x)KCrB1yS6_W>!~>dJeJ_C9MV>aDJ0J7}w_@Bhdm z$T3jonx|MllYb`rgSY2w#*TE|tY29>hgMaCBW`6&#d;N0BI)N*J)RRhFvpDa+%06z|5Ll| zW7&D_%F{*uyFEr{Pt)&q=rK{6X!FqWl~v<}!^umwnPl!n{NVQ}dv|t??#X!t^Vzzc z(Q@TpL!ZkY8!gl9I0>eDg00$G?`_~d0;w4!z(9Py-5KInx*Ba|MLpdXsFWSps+k>B zYoHK1)U4NjlI&M{uoUY0sXF!28$qpRYs{-sH>7ji20k94p|4}t_2_XzrrSGJf-m>DIqU*}Pcntu>UdULEB3J;JiXo1J{d zouXR#KB*V?TxVIQ_D8kOoIxd5l1uQ)ha-d^QowQdR|y)K_X2`{*VD%bQb`-Zd~;pb zP#whU^{&2Z7w0vvy_7pA?eIPLdOqrB8gZtWnsa>|d+RMd!bWlRaeMuErLe&?R3^x@ z0}l%MZcEW$EwrGH4sIi=tcU}eFG0>ESjAttiEV0ehROX_`tyhi=N9Qdd;%-R=2EP) zIfo1O_w|fw&j5K{AF};MTSQie=ek~b$$M)taI~~y%rFdZNp3u9jEB)F9zXaSn|BbR zL^AzaPbu}YYr( z#MH_+a5uf?SvLhX0~wu?bHFwd`|j@PoEpjf%&k9Ps`Gm`FGR9fyzA$jup{;-Sht)c zzgGFKJ7}djfXd zvi%-w?$kD;4FcKsjqJ>{I7lzv>5%37RYSuwCN@)(;)RpJ@5YNC6Eu%R9OEHh5h`IN<+a_pSmiM`4cPg<^n z^Y$jUnQ02LYslqUbJ68DZYfU>&*XWV>W8mU#mVF7B1J}R2RZpWyUQK%qqBz&#MOD0mh2szf!{ssfVA=Npn-9TiK?hkNV-ZhL zb4zX|R9d)v`Kk{KTVVjBEMq$|m*ksf<3nI|1D11)mhl_vKs@O_NmcU{7KT9tK22{U z@TT=->bRIx5YIa8qr*^_<=$AxB#d7cgL2cm=TYBmr|{nio9VJClJ>0p!5>0Dg-wf< zNxv**Q|x?;`$DRPa&kYGXv<^CCwajCOXnw*{x{N}=*QK69S2X|{l0dyU$bL&wHd!z z1sRM8%P{dh4Sp^5xD_2pa`Gyym~lv*U8dqoe9^7uqz($9(uc=CdiBU#!pq>Td%wR+ zxF-Zmv}~>P<~7p&NLVzZoW5uGaNI1|)ATa$P!W-2$iG~T#vWXXDrThXb2$7Q(g#!j zqWcUr66B+{+fgoyaI0QTM@$Z&3WpgEQ%E?k?nfKbTIcd{h&NobL2r$i-7IvN7AY}4 z>vp&y+9-^~pEOXBYIQp`z{b+syr(CH{%AVG&Yc-4FkJqjn5G0`T~hd#dQSJ`-SvYJ zaZMQ!jpvar(v2|``@qYanC9rd)cyGn=I*>}MpudEn;`fP6wqg-QusNT<=u)Hzo&W6 zryEP9$eXT0Cdlk7r7j0%w?dmAc5Lr>x*?~GJ^5C64D~}KlPrhQ7S85EgypC4Wy#wQ zbJYvpOt-mKtvIQ$rD>Tqf}plvStlcbsH$S3EwWX|GmX;RmCS8FXZk*nc1@lrrN?^V*OTd!0IzPG^8n^LlAjd;JbWcigFzqUgyIhQ z^?tc^`zE;|Vxj?5v@;%tb(!s@j}ZLuRtrXAQ|=o$-i5BO-`)Ll$HvE1O>71>Hk};b zo_(KsU2|ZxGd0k^!mLV4q^#@lT@$8Ht|2$&(PU9)1&v?$3MqhpSj(#aD*?NiRXmgv zA?5F0CpoiCi}BJ@2+aySJaH^DMmv%gUUX#7lP;m74oYKMS#bhOm4hWIv~sr{P`dSU zA~2>uaodTb6|;{)nzhL;V5LvY-#tmME%?;%TwD^e{z|k z%Wq~^I(X=reYi7*@27Jn9vq}MLngd6hN@CIJ)SnlFsoNe09FAkO>Sjvs8 z9@yA-A@;y|tFc7^cG;H>Es?BJ0jPLpkn(2_MBU2^a>mKSCI};9rTe4&ywvR@$YPfoXqdhOnNrzdXh-6IP$=E5}pVAh0k zMq2wMy>pw*qg=JD8}UVH50MYm1P)Lz^+u_K(lobO%sijC8P#}Orm*M6u}KqceBd{XWUZ_27V5O;RQw&2|GgEIKs`JWBgl#*|x z22h^S^vcRx7hf1puJ0(q`1v#E+3R~$^RUOp$r25TK95NVuJ_JeJYjwbTxl!h#&q4YU(#KU+jA7wI+-_x^bds* z9!h>>$}oX7if>xGp5p}(--pXS&|+^Er1LKvd~}G!os>zUWspovWWgt|4mS8Kb$Um^ zJ(wa(BZ5vewbndF@*ZoRQV6%9-rX%>irF-5GhhgsfyCW1I~%2qDqfkzd}G7+y5n)l zhSZ-Y?G(0C$auM9lYK4I+U`A7Tp^0ES4-e3J6f5^pe?Lszv~@nzIO#B$J<^RZFpRj z@8>dyGWfn6fvHuzwo8q%7dxIkjYeoDg_l`qOs(mck#>d>l`UVih-qwg7?ff*5sQlE ziP9fIE?~~vt_2-AW(oY@xg$z-GU7iKefY;~t=>H)+cURP=8YA15`*qg(f9R|lV0Yq zi3e7lRBgWXKblwVFMpH{Jt7AY#AhOE$f`6lU`=&c9F_B?Y{mai=?&xxB0?>PKE6qn zh2O(0%y7G!FxW&+8Vh`3y^b117rShfb=4V`as%T;x3=WJSG_v z1d3==ZB^RInXvejMEJAhT#mcl;O*_<@Bsh_(r4?DbA z0QnVmmyWt`&Zw|C>UG)#`jMWMLdsv&{{AN2?27|}cDhVUispN9l~x?0ho4h-SC*p; zc)OM)fIIM-(l%$|Fkec%ZdlODin*meYNo2iWiKiD%+j!ypBd!HSg%`mC94liC8;>b z%e0>~1$x!6%?~%dQt)(Pr~5N7#F)h%BmIL1fofE57B@4NeUB~v5vFR($6eo(HldbR z>03R1`wxoCacA+n3u-pxxn~t$72!TW&wU*7J^eB1f7KBkSaBf-f?>1!*ZRTuqBv}*shuw`4p~-+qK)Sw{Z5v zBpdaRLJdbau zb*0ue6twT@sh@Fd4OlM@-xl?|>m0N2)SgiFckQDQ4dFhaWA}pw^Hi3OGx;zHv{Drs znH@BLMZt!!M0N+yVDiT&npV-{wpI|VFf<~UX-zb~$Qw-b`?{3(4fy-M?Pr?($i_P& zDfP7YRI|t~lpOV|ClIE?_(9;tyvFgHpLAE~L0oX_HYGl!8;BlhUo7{hHY}#Wl{{Sk zfG(@3vtDtKueSEQjmECd1;KUjSq#qsBPbd?Q(J1T;k>%325(MtPNS_e?Z$FCChb;51{IN5so2WRmVWeuZ~c8be?7K!`v+E$aOqEpgg`&%vN zD=*4bJo(s)bzj2tjMCI%@!_cISIgw~OOqvQ`5g?2(GT#wXZrY){7wh0x=x(BGh-_j zv{(h!!W?!z;@{mLa27+j2+v6$P(&!{DkexOROqw5?`+Jmt)Vlk!gyXuI^nq z!hHvIyHa0Px<)OGvi!!`JRt&>wEf}s8^fK^q(+U; zk788ff>Bt9TNj#>+4T7*s`52!+=K(oHTkebIsDzXu)2Xg{=|9rBJL)9W%x^yA~?xmc~7`sr;qorHcNLP<4}@CHOsnz{k3&!$eKPqrTN zlA9ILU|%eCG_Q1F9&_DDc|hm&JBVsn5#+8KcW|oEN@EiwzU*6_yRQNc7n=+6M44!L z!>0qW_a}8pc8(h~>YR@DPQA({e~Zqh8xyAWk@!4TcJQiyaTx%#F{arfC^}C|`yR&3 zN#E6!5V@QGyz+%PpHybtS~gX(5bd1k^RI;aDESMJC%fg$h4teAiSl|TJn<8)d^XwP zJxz^eXHJt)L_H_bK|z75<-SIn-gWRbcrM|XNhXl|6IJKH=hq3+A2f6H>=C>KuSHQY zDKzG1KX7CZ_5*Rq7=JEdY_t7*l=O3`Jy%MM2HfmyasH7bS7XRx)*TmOe`JF@chaQM zVz^|O@}t2VEN)xoBTM_z8X&LZ zyBcSCHZ+gsA5|>F_|!5g_kCnhE`9I4X!hwD^~ZZSSdjhCqBnMH9}_+3jvxCka8Cmz z#MgE`g{_%`-tXHe zK*z|kySJ8RrMoOn3};)utCtr3)epgQ$RPVpXIi61j$chyL=BjPya)1*<8d=oSza2t z8j=lx z-ez!ZJI`RWZ|20rWVp36ki}`fmN8V6yDU1l%Ub7J)^hKsf?c-87c`8gog?_xh!gFm zKYW~~2JG?bJns2!CtoKH4jJo#Yx$aGZVt<=sCzhT&}@GO@j%6pjatrSWhq<`?Z}v-nvV(~ckKWe?DM~s- z>e!2K2%+scG5Zeom$UetvkIEbI2QBWglRP;B6qf)6H$x@t*77|j0V1>yQq;fZB)xx zsSFHpJR(}oVEdAl8?wko4PExKd{f{tudk!m=zo^8m-w}u+3kdl4F+3%_eMJz_oYfNz9iw+dfjfs#7=nXQH$@%9mNTCUnm)asr<;2b?5`7ox8&MnLSm z`urCo6Q$po4|Yj~TiD;^sF&poeS1mJlBh1!Ab;|44ZHf~ykM=XYQ^EG6wUeajJ*U) z48~R|JIMO+0~6h+_}EHm$ozLtR2MK)0+*$9oh#?;*->Oy5Bv#y40Tk0HeN^y-Cv&6 z9L#m;CGhYrSRURx>0h9y({fkdY0`CgU7l@B-LU<}k_`AzU2Hktir2I-IeeRWm;uaA z%6rY2-qnT_WmBB2VsmXh@_1uuDcSaYL<{@)x0ZszCtku!&p*b))iU(%BE7D4{Ori@ zMwM=W%2L2?yOCI+giIhN3wX=XM?EfG1)2M}AC4R~eX-~4u)@q#rOP5?fCusKHr;$F`j4vY_1S!?sr+Oduj4vS zX>@-_lfO*8q%d>Jq84wRHO`M)@44g3ou9_ex`?BaG0uXveTErM2i3eFEq74M--NN- zar43S=Add+tEy6(BIbpI(blEtfrJi_s0^OtD`oYE2e{9!+qA#T1=7C6T1Q`m>~QWe z(gE<-4j5AQSkHHt+#IEq(OA@FdlvTlV5u$3<$UkGc=@9jx4nmSuDH7CnkRX;cPL9C zr})~~lL9Bs-KKpk>n7_&-=?G7dxZV1r}Q1so}zBC3#y&gmuixlvHk79}GOhG@EyK z^YeQublSXxn5LQ?HwpZzfQTJou${PKR1Ls6$0 z@7)H>)e|gYxo;=kc#a_T+ff!A<;%JSDx%7sS*j|S!4A@wAwRGl5mB;2NaF75cpa6xN)ovHkfAPj@Zp*0 z9I8WNVebU9UG%f6tAvPZ3Y5f2xG6KcESSD`?CC=J5fI!;5?EEbg_PLx1s&dxu)Snl zwJfu{Q}g_K?SH=Fc(q|B_MBtu?DW^oZb4zc_xY;PO*dK=q@|vmM}G|zGf50dqZy#; zxD)EjeHioP-nYkN+ceETKiy}CMCLw8_NZc42Dvl|j(B|Q%_V@Twmt;-0|79fCJ zG>)YkF~dQ=r|skjt&pHB-e$P+G}7`Up_fku%9ZD|ISDg$L8R`oS@xIxP~-rPH0{#&r(iNdGtv|LeOOifJbcvqGAyAM>`9waQ!A9xk35l9yze#_aE4v;F|?}p(kZ%FsiRtLXbfauYflJ7F7I(w8e_i z_B@En78Hzm)HHly8^Le2-KX}vz7__h-4B}$hGe{eOGq{V^QW5U`t*i~_X&SmBrEwU zM$CeNOLj}y{yO9R2H%Kui`dn}nU9m1hOGMVnai)_2?NI@xL8{nqBhOK*S>}gNq4X+ ze2*_G#T8`2fs7)%ha?|nw0boV;Sz!5S^)+JaB#Ed*I$4mz)kEe-5{n<`1Mvig=dTqQwl4#YI2 z+hk~JC39_CW8Ey=u9Q7;!=rnBOj=lw|J9{b5lx)3CiE#i4Dn^0O9YZ5D=-8)Y|nHS z=~$s$L(a7OVy7-{(%kt@(crz~gLk4IY%Y){X8eMa}q zp-7u=f!NK&Bt=&tCN9TK(6j|QCu?7ziP#l)UW$f2#E){y(m0Zi`u=*m=f7j?89cpW(G zGsFj4T77?9Eq)c=OC#RqhW9~+0|+S9B7#`&F(xcTS|IR zo=OnV>X{l3)>7UcH_)8WS+ZJc5K1s-WFJ>X2l441BVZ4!P5hjk92!OCV$UkjL@R^~ z9SNL0Vvkc&;2hcLGo>ye_QSzU#QO#1?KiQAD zrbfwlzXl(^s0ei`!{kP>Am0Z+Tvi#n)dQ~V^(ZJ_WqQa6U}cwjx*Eo)4rP5E-(!K` zO;^r+Pu8vd&>f{I7Owc_!Vcj)e}X$~U$)H^wbdb{e@{W}3m=GlsaedYW$MCciD(4%5DE^|V6k@V| zT(vip*FwP9S*ac%^L{J5N0RgVTRy%NGzQlSA-4SIUZY}Z4AAM|>DOO4MaEStZFvmL@r-kf9L}p+= z9T5HS1~fWy%7`HJ+Y@_o5vNH@pDVQv3&;v*R4eRj}^nFR!)JV-|X z3LlJ?X!&-s_S@|ui5U;|4ZK=Vp0&H9VF9#7Qh)C#Q;O1P&pSLe5B>)@olE#J#>bv9 zefvwPHz|;y^a?G(90TqjMchoM-CQ>4Fo4AAuaspcy^lK)W2~p zU-CUs!h|{Bx_x(je9Fp}CF^rZ6Dfl*k>aU47PPF1h!2># z(6)i}sE}2kX0$Dl;BEI{;C|!8_G?QT&<^FMB55})BF!${`ra4;lNeft2W#HJg4S)~ z;Mnuc;^csE|GeIREZ+>;GyegH(DZ_=+ERg&uUH(>HrqZ!hD3=poCA!=C+@#%i5oK8F(9LKXdPd~?D z6TBk)vWB!$&sePLCJkpzpngkQY~#xGET(Yi5=| zagj%!g$2b+UUK1nnBq2(itS||h^ z{eu!>=q}qz(8j*~ra34ltnv^H%(2~Ya3lz~iSi~V_Zz~{fP8BpUsS&;UpJ@#Yg1Fx zU`RqYKL-pAQNRqldZ-|o7|{DO-11KD(oveti5SSTfc+qF+yP0=eboH|X-sZbcx-W5*kucoRw^;(UwCfo@o0;Tt z5p9%^mctv`2R+N(h;r~6#*4vfNyz6yQBO21B!uaq1V1GpR_p8w8A~x2ApYepDyl;+wjx< znJ!HRt@bF}L4v-c7=u3dn3&!`@1tpTTy^~?t^_igQ;d8MAXDykqP*Gl-c(=|3+_7V zKT>%cfdiE_El{sf&epwZDl?!XrSQ1>{@xZ68-j|pN$^uDIY9ZP%MG#9cJNt;r8&i8 zEbXg;e`<1=*-9lNW0GHR-*F)*`_S}s zkbtIDz1i!r-a#K=L4We4e1AQxNykkO!20gXUFlB%VL>9YiW$C)VE82n*)8$=g<2)Z z?|=q-6;`TWlZ+6=r!_>#*V;UuU6GHC#lCI#C=R2%CPCBlX|W&g<6~Ao3k;$; zUX-V%V&#_9HnoWl8Y4lLV%o#^t?6fA402yUEL{#wYhi)SDF>nb!~oG_(DiGUyP7vl z3R|qkqr=Pm1QT?p(hw{j=VxE5|Gc9L3kI5yri?BZXaff1aqezmrj~qNA2~EQ==Bg^Z8RrtL}5lesSwI`p=qcX>#^BYDrc}l}Gbl=;Efjgme+*hPV(#y7YHv#+L0t@Oi*2+Jr zY%Eo4zo^QJf8KlR4$Yx*LGN7m*CWs)^f=o2m_YOXb27M?ron`vo2w>h%w34}dt>gd z`WhFT?s9`u!Maz=N9tb>mLzeSQ=SN%otT?Vuet5Mz=_2I$4fskgJeqIlZuEzAI@fA z96Z7e4%Z-P^mimtxDE1<#jQf9(4XVvbwp`s7;J1Y1I(Rt+U{zSnXIk<1Wn{39G+3b zQA&JfdUp>~G6c`?b*JS#6eU$jK6w9h` z7@YY2**#&jIWYTOASlhJ6RK4xvozAm4peh_HpivXj{+TddAl~?P)co^*8`Kc`hRy& z_aptM)P;nh*gos!)Vzese{Otto_?6V7-3sRFPLt-`r^YWk2A1ZAXYOb`$h(plz9$I zIla4r)QMLTsnEVDF*KLM-U#zvE7@hsOe`~6lPg-|Cf)-6KID2^=!T3sbvWr-199%m zLuAF<&0WDmH=$AiEZ?9ASEAV)UsQNlSS6)-`C*kPgIB zM?mCaY28zng(0m)x(_{2`lb)?4R2+3&AHN;YytiOk-Lr^?#kJnqX*cTHE;g;K>WMy z>o3)EFyH1w`^;N|BeW~Mak5|{$dDTw=9=Dx9}0SnDVkI6TYk6Q2$Z2XJ*on7)@aQ1 znCW=vA+VLwbvvA0W7hAHVafpgmpm@ox=8)|h`p?u-C}Bq^ki$}$jF#6)}ps!0eE(u z5+uHaP)Rlp_(-?ZI{gORl@4^9)9C_G6s=WFvL zg4aWBb0RY|DIf1wVt#^{WJx5e=NB0xb%N`cDt`|02c}j~ZbdvJh z2jEc(Bi_NuecIeA*M1bUb+&uM z0woY7(}~6oZXrXNn}Vr;IJ1&BW%(2+kUXeMrH8c86`=T$@&w*f#Bv z1a7MPlgSsZ3ph{+Jg>tLVD)a7Y!hhwItm`x4~*KhOX~9$yL;~%AY)wU6`iqJNlqII zTZLddzN-T-y-AmkCDloQRfcMgJfc>Pwi+6l&^hP9A{4-EP38r5bzgxtGhTY>w6|x^ zNimu8sK`?h%94ipjyE;aF}vNn(OMYSdIkE` zVEhVICem%wkS{MOU)#syD^}4E%iqC?o;VSAHG+0}PHw_gw5#Uw%YKv@?hjA(?2; zS~m9sPuZW?4w<&jlWXO5^lyQ3*$)NG^X;T1H&i7FYncUdUA7q86)X1xb{$&&{4=l# zw6ts}hvc65r}_j84qM=5USdu?O6wmBAT_Tl>cEMU+uF}JFItx3FaJakj9VsnO#_jZ z;oY7|&zRl$T22VgJ=_^xxZQUTg09&T@Nh0!lv*nokwz+gk7T~w0uK+*t$#z_Z7&At zeqjdEQ6T#TL85VLw$>xj-ztJlJ+=7*lf_T?dhUP}+zWRw+uSqT;MBPe!KRj+LL2{1HWkeOnt-Hu*ejqgw zB&%*^k;N4=G7N7Z>E;qXh#z+MqeKINL$xG1B9V>`jHI~xflp=b(T*|J9S|e*%+_?# zGZt(;P*_P*3}s8`VugFF&tPS<9ZFogoNy-C^DU^a=d9_0t|Ip;w3hAhh*KcB~wS@d=Omx#CS$|ogO5yKza znRJe{#Y8w(8_Zw0*T3ij_g))#Gv~c_!xzc(-LuMiY*?g2WDN^md6EdGP<3tj1jQ|Y z!N|0<7U9v9OhkVhthohdyza*ySCtcOVD4dIK~z8U%;^)jT%IOdjBeljI1>sVG`yKi zZ|s)Aa55T*bD4^e(U%BVghzJQ1lR4 zl&+@bc#Sz~mjd65%^FePSUbpasi8Eo%h18wA=`@=!gaWXrEH1dbXBpexHfV8QV9MV z+`?*mW??TJl2H!?lM-Bsi_(d+Zy^M_*1Twh;Oz*Tl_vn=Vjhvuo*8+eL&@xXu>E_U zUods7jd+O%u=stimb>pAyH*qAU<~| zvC2!JdZ>n&yWm31d&(im;LktW>k;T|FD$skG`Y*VBkez$4@-1B-bF87WVVl>rFTFP zrVD2BYh(in?&AG6reFmWwXD%w=P2ei6Qg)=86BViyjn+#{i!<}frYX++l21E%nj;^>&KZ7u8C;3xGb23LwTd z3lKw=Vm`t;o;LQH)?q+M>V_nB2Of)dy~{>|j_~BVnZo4wB>wVtgq0}hP~XqSN^1~& zbPHU`N7dNf_0-^jxdG?TH`6Rxn#+Zh?kzDm)o&pv@>lnHSsiUYi0ksJUDoV}7xH&p z!7x61Vg2pc8U*-y*L7LzWPseDk}rOmXg==inInrVhiId>7U+U}emO*+;87o?vi7l2 zcd~H}3%0}+JK(~dP=#`DAwDT~Kat|>lmWXytx0it+q;TIBiH)y44TXTEOL20V~q7U zF$T?ot9;wCDY07WrLdPR$Z`(c zhpo3aV+`o#GBN^bW4Ul4i%ePGi`@A}QFhR%ww;cCN)$Rr?F&5HX}!gpvBeDOb5mMj z7@{iPq;!s5UTKNi#Wp0YG2v?#lUj{a51f_UfdF@&QeFSX0j-oS$Kp9c!$C53o(Vq7 z*aLxgmC8v}uZb)`u{Adb9|4-w2C7z>_|5Ci5A>G4c!6!$ zQTlilw7~4`(#Jj<`O21-dMc}sMDer{)XJUy7fn|k5LNfI?*alMWnj?0iV~tC-6$eT zNJ*z6%>u&GwHBzzVj(3Z-MNeODgsJMcPL1g(z)L({yzT_cJGNfb0(g7<^p=U;NHR` zG%fS~4M%JBgBu?+SM@(X>Sz&s-@xk3AxMw~{?kF?6YtryW4Q$mzSUoq>ww1z+?N(z zjf3BQi@#Sj_f+Amuu+KfcQmN0i#nXZNLt*|eELpzDG3ssbE!mqZjj))691}Y4c22> zk4XTp0psmn)RnH?>AgJ9m8E^CF98*sl@eR zEh5E>XT2=GS9{7FOx@>uYlpY_#pWu{sG~C4jj>d3kcY20Z)%+TP8u}a&70LY_N_@q zc)iMea_~&!!o#q>Ch_%v#brM(&&O%AQX4<+cWCX@NxhjIUp^{({=fxu%>_HEW4{;6 zk1}%{{pG#k`HKnChEa}g8N@-XZ9RUjt?YMrT*RU7SH#3%@dtx!q!FX)7bPUx+bz4D z|4ro>8_uOu6Z7tkeG&1w_5mkz@wTM2eK?^?JElk1p@+cQMY@u`-Xl(u*`Y+Rb%hH8 zw<|AerJ1}M-E8d^Q%WN9d#snugo=)eYM;EnJEaxQ>>-?sXCL zWuxxBdPwn9p1Hvi9!g6($ z!KgC(8-_kX%NF6Dn(x=j7?Kv~$`nk4NfDwr!HK_X_>EDA5cWnQ3Ng;tL$P}ry_g2r z49Vx44LC~cA%a*O5`iC)QC0Xa4f)5Io<-g1VI$GdL*g6<;1jX85jq)jXqHqRL{L)z_^HQQh|0XOzJ4DefXR6mD74Y5< z$KR6&Hvg?rwDI_O3=Z)M&3cHxkpDVmdD(sI00(>zMpZYs6zOIC$TXh8jpL5?t4;VH44eVuPKziFBNtW)f(B;SR zR;w-fIgo;*-E@Uatf%*hr%wyW@eV?hnwa?THz}Wo70FML<-r?OXBtojor}UjEQ94P z^4{fSnb42Hp}aU?#BPluj}G!vL{t&sErrLp_Ty<Hf)|#&17mqpY>m!B9RkQH!T;6-3B90*}NPeZ{$U=LqzNh%U zo}*ffWc!I7@{TWIpUyv-N~PA@FTQw5C%k`tsLZOWtIO8okvP=GG1!ZlRjDZbWsRiz z60v`u+Yi0?k7ZmJ_DcR-;>(<~$G)x;>rIJ4H!7&P1`&a7J$F=JvCZ7H$1Z>lm zeHw_*9CXxjd?B+l+DeHPbF*-o7oMhNmcG*Xt}OK{=*A@zcFe)^n`>k9`=_}?QYT$7 zmO1*F&j5ue_kAKnx$s!SqjLqt3nN6O^`S|Y(@m<}Wv*j9|WI2P*NNAgyKCaqwiMd#s z8@#`@rJ_<{R~bqKl?J!JK3e>Y@|hbYnv1CC|JJX;-!QcGcNYypyg`;s=@5g@I1cYK z9)8!pORNsV4*S?JP*<-^9V|3bI?x4Ak-wK@xLqw5AfVGTI9$JP0X8Dt=ge;yWxzs( zM37N0)rsHJUxf#b&+V!wHKHOnJIrqP#D+2G-F!Apmh{ro zJh|S~c3Jwp$3>-Hdo;tTfQ|XW&`CP6c!D)a|+`r+YN{f|cO8Bl-*i2oi?IRTFby1PFd0?@6TI|U8{bhRHnu)$A7#CwBMa|3% z2f9;tV$r!HJ;^A;D#mtykRLbQ7kn!Jm_$#XR3Ik6H-g+RjIy<&y9ITqd7nJT!b-2s z$Apy#_!^h~|5sX~e=GHumEJM+t^0SAACG(V%+7`p;N+=}u_8pSjqx0MJ+eKfDmZ0+ zKdYh%4GYk;h4&5;jSgIPo^T44BjESXOF}`ik7aABnH~%_R*@3v4K6XesgoD*$G-1e z-Toft&O1z#mYL9+4E1{`5)A`l!IjBByE6Bf4YSyxI8MhT$^nravi);RTsZtS+21g~ zG6B;;uRv_LIgqt(K9YGTcglKSrh8vf-FddQlF+|S(QH^|Bgozt&v-}u_2EBK<4ec) zRRl)QnpycfmSJx@`je~o#EE91(Y(sP2ATbyFLY;*P3-ULvU%8>O!WH!r@ytT=DC?r47<9_&TSDM)L%)nOUz6~_L zqxWg`?--kI>tlwc2sj~j>;X5AEZ-5YP-&ss{r&H_V%!3p!a?|&a6aq_CFW{6lTPYg zc$QidOg_+JZYh~Pj7E^!b@wn^LXdL+RQC@JaK7ZQogol@b4}V0*fQ)jZO>{nr$7^(? z^sI}JO&L*(eBZ>f`NcRWX{AIE?2X9X=G*v1_N)izg^t0y^oU&DdHn6l&iCPtQt?E5 z^**IwS+V-X8gF+Zsp|2Y{d=4*>d;RrV#?O>_phAhRnWY500BjGXYkpo!uu@MDs~pS z7w^lEaK~6@v2?P(JgpmZjN2AWW(AQ|VR>V`t86jq?hB_c^$PS7vnB@b1fI z9a`9giF-5#Y^{~SKC&&QrX@Yr827q z1^2oBPV%>~3F2cR99tNpRJh)Pp9~EdxC zO&_g@s&IB23J>mvPGYcZiyZqAj>3=r%A#uwGP{&!pxH~Wtqv{Ymx6~_-R}tO-#r9N zjf@KDm29Ob>#)S1Oe9N(d|0$nr%#_wJ%bRg!BdI-{XVi{-k}R#nEbMJocR9C=?0gy z5iceNgjf%ELF9M0ZrSXg&ohIvE&tZvW~2G>i^=IsH(^?2i8>-O(KKs7K|s>}8D~2qx?41Fv@zyn zd58i_`Rg7vyc*7*=KS=_Tc!}6fQ;<5+U`oNR@{!u%FVs1w5i+BZsf6@pY-VvTUUS8?{l<~wVmeilY_$8BY7AL{TO5>5h z0!8V<1~p|$3JN%jkS}Mhb(NuC`mAaE*wE?cdn!w=f84lU{|VD{i;va!p0S{DWS+)w zi)QzG?T!K@2@E0)_u1N_3$7MdMP=RTy;kM;7b#oRbY20jkkXEeIC?=FT1}i11W=BYeX>cU= z#1Ex!7P*2l?gUXIOVZuf4QD@-ikGGMG7R7Ci(=_vJjFoRR4n8qV5ibmjC- zY%3^6K$2>!1iY-n*?o@HX5Z@WjHZuicb-dm&KX-_WaaAsy5|S+;V3ug!O5FBcDM{-Mvzs`SNH$L5q1Mr&ldvh(-%qu zO6ivED2Q18Vxy#N;?djeZL&H3xak`>L1iuo(avAS7)3KnVh znGTV-F}d)dY$`JjOg9*vXCH(zLIU>q^rcH8VsI29tRSFAqAQC*zSO)j|8?%W464^l zOPag${bpsP)ZZ`+Ifucy?6C~VPL_dUAT*hzSN9p%x~?@IpMZ^vfT8a-i+^}4u9CbP z;%BK@XH&eNRvhce#2{{R{&Sr5_(#>;+24|_fT1H21{_l2U5Uzs&R?aaFg#5tgv9fa zN3}b1;SCD=nbyOjty4ECk*nlS8d-NdCzMS8m$G1HV-s>Kf8njhIKfmu{&kP((A-Sq z(E+}Tr@vt6N13{M#CgTj?np|nXC|j>*DA4OW?~vmjq|pGsGkN0^Id63dGdr;G&Jmv ziQl{a;t>67_ll>dkbDgq?SUh2le!As$#-aS)1TYm<*5<9=?oEs`2*Ny<3gN+#hQx&f}*wtFUr;& zQ-5eqm>^4eL*)?58WQw&Kjf&h{l%ZjGT1D&qA?lB-U@G*GaK?P(QK^}>~z+2VBmcJ z@zWFDcq2@j-w0V)rXLPECS(n$fR?}PMB(9Eg7sp1|-Lq-qRiY*^Kx#mPzi-RpNc7zdvp0Gqjg#;p%^_`!RUoL(&N@ z^YmN#j2+1WK@W=PM>SxK-HuH3(c1GjY&9N)PV*8`v96E0+0!?Xou*v;d|{DX`*?8ubZ5~v*wh$RCrB|VT!>&Z^~%;&E_0y7?r|ut z&ebfh{?!SQ*|waw{mgVq%6sLG?B3s7tfFOa!RGH+G)_>+`t`84PLAO4IThJ;9lZu3 zmvq+U9(=fW4?NBzbsllcjkAv+D(O{GsXv!`hIlT!D3|2j7hxnJ-hnw5FTkJvBgG~l zo$Y*BH;+CSKVus*H(P#5Y-Y`&dX+uP#?#!t;%bce`1Dh|qg}a_muN@*pMTFr6qX+J z6)YdJDdaTjFSa=)%zDY!_qokMyBj`<)4TzeIUZhf!(4dL9L;rENwc3n@1~wXE&Vqe zusG6sp`np$?FR{Z&1N&&=zO?|9}g{4;U z5No}UG3L)#raO`5PEs!p$5&SCJw5Q-XKhu7g{8UBkjR)#JpxDD>6@1)!cqI|*B3fd zOuw(sLUV`v*S1*o`iG$giWt*e=F%Yyidn|w$Vh&E@RP5!9fz66yYu>TR9iL_c$C6Z zlTL~{ck7vYtSN7;Z`<%kR~9K~7IE$^?o4`atqkGeb6wr(Zuu6Hfrf^xuH|_Qgj8a` z=$QV{$5TBz@NdC($mnPax~YffsJ!N_f+DWHz}4k1^IO~AT(jZpt#|Gpljp};bpH5} z;7by%`NKr2&dkZ_agXrJJuxC@s?6EZ1u~#=CLMPCl=T?>MEOZH4$Ey7``G`F-Qw~R zNjfC3Kb7qwNxQY`LFSh)8-A$I6MwcRW*(R5Md1!>4&qnKCVsWL*Tg2df3{LgN828A zcpADYdw}XFAU&b^mv2Oj5e+BJ%>&ky`CX>sNYz)i%SB{mym1SWt}h{NVI*!l=XN@@ z3JP(Y;nvkJUHuVTgm?2jh-V1ZHnS#mh*-!2F2}a&e&O?%hXreMLzvnKT=ZJt<>9?` z*VU<^Ye!qTAjZb-<~#mjly#ZC&>=*@2@mUP8vwwwui9e#0<&t$3e4Y|`MOvp{jx)6 z-PDy2(yb3)QLNm;--$=%z*Sy4pWW}V%M&mB&QV@#;Kxa&1K=wjSK=D3j&@BO{)H#z9#x3XB{o2`m%ufN>UJRv#@l z2z6EHR{m~borxIS;bOUHf>C{ZyJ|3JTO0WH>Z@o6c6&C)8`fK#9fz@$b#IS2@|-Wf z7F!M@KSVs%Lr1a--(*zM~-Ziz>s<~(~kgI@RW`+5#Z`B>?>b~N5^mFj> z^Nu`c&|x^T_n@YDC3<+f%{SmOM~#?SfNSEpxB>I$--RG3z}-MEU$kdi>&Z;ngj|LO zl1@h+clXyI8clP*{FY@8nqe(Hqa^)!VeTjv9~Qm@@4MGq?0NUOLn#ucDV3?Ai8I)(BVT2kQ=F zX>Wt_Tw-W{!LunfBSAooR#%aH-WHY!XY>qYKeSv_H%-iPmK%gAU#Fw1uA*zqHy`*A z$o__W6oxXM;ta@6n7Fx-wbUbY<@T0}X}}Pz(q&P$C29MZMa_ZyOOUHZOIxOq@${t3 z&mP)6$G%Gq{de~4SIjXg?3W$a9MjT94E+E@+Q5y{mrKeQdmqj=`#nVf0d`*hmuL=X!&RgXrV{2h0%)u_&R~ zYuHJhKV4h9h_^$_LUVXQJICNl0;hT7fNAP)RS(;ZZ)@Z;gVScRXA4-&ViMNXH3Zb? z2QNrc6<~e;&8w*wtI8s#c`w_pc}{2MIm3}3w)QWIf<FABFVCU53H7>$vVQLDc z$9)D$KN7xqYrA<@UHKtup0X+doi55zqm?cDeef)0l@fYc-ae+Nt4nk$ zrM^3(Y8Z2bC=DX*&X#?1Nv`ZRQ?-P4;$5{r?r$Ili^h#g2n4otf45l^<)F+LwT~fb z4SbkyTo-=#nm|TC9pK5eb{*A~=JQcf)7dSlNyISio(b}EY(0NOY5YR_CjvXgCi@HR z!iM9^`rwf)c;s+uWuc)z4NsQax>twR=y|&g@6s6H zDBZQ?6*w4s-}zQ(T$ywDpp)2MjTw22Y)e%9C*N>RU-Y|s(NAJCpgeTc~!531|1eFDbv1(|=jx8z0?Ye)o}3d50dHE1(d0pz-y+;ikFu zi)Ja(oTpMRPoR2@wC+kO7SbCQT1Z1$tDKIWxbHloNJ%_hNSNz-XB;6QU(ybXJP!-e z(i3d%>9i4>DhyoHrIken0P^UBQ!Wg$LM<`a$4E*_pQ4zg0^mL41gBxzOr{h}8c)V% zqxLq%M4vPCct@;X<~SgyZF1+X)FVr);8t>FFlE40k}6Y|vRLg=Bacd@yrF)YXOyF7ah zk5J!{mX$xo(?*2L`aMIEnjGc%d9AlI1;E5h==qyIwzr=-#-R>qix{l9OSj1^KV}YX z6<4w+aNMns`omMeszn@rG;-(*wy(aWvFlBLpE?HFGL2@Wjt*KBkw8=KKdEP`xKt#k zD1W=PdvLKR{JqgH$>GB;tooEA>n@+5h5`7C+N4RlDP+BMlGO@He;yw|m?b>sd6(xF zNq4sxA*L4Mpt<}45XDP20@dqA(Ev^SSoLJQv#ckSdM5Gkmos0~lwFFS(FPPFRSIa~ z^N;fUHSKI|moEG<-_pr_-!hW363PPs5bANc$f&qj_QiJmiI$$y2#=m89nyRkUUng$ zdHG+oTfe|RI``ijHY?%@INa-h@l3Yfk}N8w#>pRd_*0zwlR_O{+|f2cOC4u^m2OR3 z1e8*AweOBq>SC8@36mymJrz~#xq`!F>1n&tpGOe6YiQxLTaL-ow7tQLa?R~o8hIxM zq95)mk`Z05R2zrMHP_fcC8kxjK>*^|vAwB-=~3-vXdNh+4SXa-b%@|5R1-3CGCBk_ za(m{SJumxEOCW$Q$`^Pm7MwFLzb?CV&i;!XhkLJ94$H)^dFupKr{S-lXfwm*Pod6% z)*5K~>A+=Xh?@ z-91@(utpg#&VkAogtJEv)W+bjBVLmuG2R*#26kFA(M{&G z?84Q<7d-)6IjQi&wE#zNThX*4TQ)YMB(*u$BDGi;$Nu;@;Px(p;b-hwYASkDA-0~NYxIvqI^Jn4%_0XY?NZ@-OCvx3EgDFQ~epOri?g- zk&P9B_@<=%3x(aF%2O-&V zp#n3kIY6N?uvQS~djX+=vg4>CRNh&UiISi9$VMsDsyG!pbu;$zaUqe;bSktvU=jve`r!&jRLz#8&{G;}#|-SnRDBH_c1v6uGE9rZHnBMLjA3zWyWO zfY|KbOzL*f)aRH$J*ZqwODJf9+HbrPO{bnP#r(cJf$ zNH|dSuqJvoE{&;c%ri$*>na`|{NZv-?FZs#H9iHJq0oLXZM_XLD4pSjD;-*nJTm{O zoiLN@1UFW&A2uE0^rt>MTk2Ui^|qu#bgc1$?z?h89w|5l5QOWNJ!eW{l2J4cbqfx@ zY^Ut7&nUqVWYrLLf?l(+TOC4B_K^Mwwobz6JqDwysmx(1OKtJy9s8K7-LpEIrBGZ! zp+ewv&)ArD4!OAn5nU#pQi`r_^6cmSF9feEm12Ico*|C|x@!vKbe$D5NsAlMJs;O* z2p1t$%kf)|x@U+_0|C!NJ z5dCG`zmX>Cn7W>HNKH>2oL}veo`$SUke-ez;4uq=jR0K0{kQrq3v0s)Nx^N$u5$Iq zcpraL-enG+^rugP0L%!2(#PnDPO-%VLZ2#>gIY?9(*P81uN1$i>o1!pi}Geg{Ej1e z)9q)>dNeqb-!T@XCXF%~s7Hn5vge*(h2Chhyv_;w zf`vmDWyCiRZ!tKfPNs%-yXojT{0x%>?DqyJDC=jRj=&ZkS&^A^u?w3_M=t88a|ZnM ziiNbf3pzG%M==Y&_bQIO{RjeIlI|qbB@+6~)!w=c?GQEnH}3`w2iPSI;+qa&g~_Jw zS{6Y_YV3=Xl>Ig7r%$22^q8`HW%ndiqd-eC+t;ZrB*F53I%~9g#M>PjN zoB^mc?Zc2#Qhmx)A72*U@34UNs0?@k${)#gpISDJJ=G;D-%g?rJ?a6VhfhXEjY%Ue zDVlZo{cia1uJH_kCJd@lMDu+6fxorVBC`V`9a@hl@Xb+2-u&lYf2L-2?s3-2*m@uA zI6w(J6W8hX-h=ZZ)0x9BG@gmXQkz*+9*|gkb2{!EahxqR26yyFwpBrErFZnlj{tC> zmQG~%uPrT~w{_?@Zn$|#gyVby1cZVYE?kG0;+vb}Xm(x+L}DAEs_c}=PDZk|*4Cuy zV^IrRHwg16ZOkMz4NoaWZ|!JzXi;cizaME9DW=6Ye-z@H{P=q@H)ck-K4cWtRp&td z(D8smyJO>~J)6vOOm3MKmcP*fKN@UGUN}I)qZ;%aecIxKq6P&I4nx!#>{RCP($zD3 zCZ<&za$Mf-f!F8FBn=fAZvnf6h_dfFef3hcwAP8(wW@|jd$sz5ynqW%)!L;A2uVVb zl?ur^Xi+)EcQLa&s4E-1HXPvE&z0r!=|=*-LPH~{Y*HAP_n+&!x}~Dq(re8PMK29} zmZHW)7oKoJ)*x|nm!_mmU@<;XwRJ~RH{1yp{|G-hvK9TcRyhjNwtE~u{bt|YE&JoV z{H_EDDeS~Faw&M!xo4$~ZxRE+b-;ZFcfT#X4yGgAe0n=iEDC4&u8TS9Z_^*C)wuwe z!#4Tunf_TkQ)@fRWWd};II>Gk=V8@LTjB%*sNzL&yTVNdhsei<96l0I>C$Is5tGa%C1R zSy=8w;w--=Dr0_xILGInE1>^dTjf3o}USYKQwp_U|6N%9#hstYo z`k=}*b6#3nlQ>6x9$?U`zlxv7?G_+&R>W6gTV4}qOJlnRhyfsI=bODp z7-x@e(hbi-E41{3dt5`S-z0)|6SZ0@(u1u7i%e6XV5E#96O!2Tyt8a$15iu~z2XiM zqw1bvP`+AepYQR{QlDK`Q?`F6Hvh|g{mhsQkdHou^i$6nL**#e)k$C7*E6bsH+9}sRnSGPR*p|}6J_A*$XD~{~ zpEUROw2pRNtrmWymqq{?wH>=Xlh8I6>4n=par}5@(K&{{7ldNhW?U=R2DRshbgZPh z;|pR+CZx>)FsNLw*=RPQ#dH;~^?h+T{ zHMO_2rVn;+#s*Gnwi*|So9`Kx7p_O+R^^WzNpfFPdW_jiQS7X+$_7C85rSvfFdx&H zhdK+nQjBx2dpZ=g6?Vhn2wNf<3qKIS)b%F5P-HenMDRmQ20F^RrH@dR#w3|td0V!; zx-P!+?e{%|v0>3+0PxJtiaujq9aEdLOn7Lm#MoxW`M)i;^M6eio2Kl~n}SA4v-wH= z;Lq6#oNg;~_I-B)QcH$|r$ft%NOSz##MLY}nd(V_?kl~CXZr2to;b03UegeDX#46J zcnVS8M56_UjB_MM(i{L=j+VE{T06Gw5u#AecyLBOIW&kf`WpJNR&W?v6?StKb_10& zfu})#*0`z;ANd=fXw>aKpQFr+wyZMq^(d&?^-CID@X6bi?QUK=5W&#p9YL?v@d@7S zSBfktXG^&?MET3=tK*I1{qt|@0KznH$YZuGoxSD#wfAD#PXFP!x^v95TZ~TDzy=e& z*h20nm(EU^rgeF>P#Hbj7IC|MTp8Cj!QkEhAv&!|P^n?q?Bj=6UtJS}#5W&RbV*Kj zXs8MwdGnEFKt%h`K`r|MxvPBhV_i8mZmscsDayj7CW&=>m57A?^<-5W4c6qMizm~w zU*6L&9Vp1TURtiQUQRId-89BO*HH=fa-Vva%;_JUWfT8i#s0YE+{mGgGxJhny7w`W znf%R;4^b7*$!sZbD6D=^d)SCyU2F15TD5V;XJ!q?1>U&+L@42i0Q-NEE_T$)g*+&!^y?8sqA9%%eXQ~Wn#% z(=8t(@>~<6_Gz+kLjUZ!davB%@sm8_AzHKVBwCrp5tm0#l5f_2ExV(o2Pno5-fUoD z8Bm%a+>wULx2(~E+D7(qR|v=Kl=TWGPZBr`dE$Zt0$cw>qNjvP$?$UkCy4O?2$^=Qgz?;*hA%`RWxv|o3y!@9Zp%fU2=zX72O%=;y|{7Mg%AO3j&CUp5Hx4 ze-)AdwoJlI9kG$3K<0F;ta9E9_UAs8x3>Q|sMh+}UGddIXI6H4*9)G$xLN(!avq2A z*BqjMzuks1OA@4$q1IGb%EKqP?n+Voumxt>$?wfcog%m|4BYt!zRQz-@u}11j_n`4 zqvB+@Ji=d_O_dINqn|r`8A-dxEotaE?lzOdLF(V+jc!5*8Fh zO)eM#{FzZ&MCjd03^eEGw-?Ii{`XprQn!iu)*Kb94Od#-$AwHW^Mb)yi^Oh-+KD8W9_s11 z3!~yDerz>-*<;2Ck!to^CDVvmihjK5$BLo7*iJ6TiRS*9(mM75T~gULZ|idkgqfCK zV2C{dmjI+5i5quBMi!7A=QU3|pCz1OKi)Er95mLSGAb`6)>*U#q^04-&`t&-q z#xAIn+OLfH;$oTSym;v9M^g`Ds~v|-5(HXF1_Q#XkQ*F;^gDG>(%3HMulwTI*l$;% z=WN(OC{ypGp%5y`6X**PO6sA@sg9IO)$UoYnD3{!yr>60m&UL03bP`7j#}{ zXo%u3==fJgIf~TlU0%Y;%eoAx`R~#766YqVE_g%htbOObWZHyg4>~;%Hg5-P08Z@c{j}dc22^y%@k%^UmsB`OJd#EFD?};39gUxyl5o65d^= z2NlV4ea?fpyejUz7k*4v;4~kAnuyq8&cguvCn;TDx=4w2o*OpIJs>}Kq*XQl=!uaw zmp4H^cGDV?QfuQl2*C26r}J_usK0oYjG`op%lV&IUv4{ThoU}8-U0kOVsNaP!04<|NE z&6g+q)Fm=|+T}wKwOyUQVcAlH9C_Y{0IdKLnEgH{CK`tjgSvB?dInEP1IXbA^l|p- z0gWq|x~HJRmq{b7W?@W{|fl)dyc7aA6n%r0DU3acx^pA6TXns zwr+lZrqit)id5X+o<4b!ZW(bFZ4?h+%vkZ_JHWP(81MCw3@Ew-%W_m0)WLwOveYn` zV@R*rxDHm&{cUxs>k%~;CF@fH3Wg1JG%!ujNKJvg?$e&TJuW!u|pB zLm}E9t<+2!f11ppt-@#exu{W*%m{4%5@aK9;>rR`;{qpbYio-Detj77jJ9Lx^}J}{ z?VxF1oY3EIIPwjA$TZxW>@1(+Q6p&*r`U!HZX7X9Oj|Th{2mrM8hQl#*cIXn5oBlT zSyDN`*xcWmx1>~^E5Gd=mpCK<6y6JQC8}H%Rkr{HZUkMsYCHF2A=-7)v8$)eU>zUl zZ$O+tx$$xJEr@o1of)VLb(`JK9AeX(@(wgJZjHEDp)siL~kVOT*(K63$R(%T8~YC^UCj4$OMkmm zF89-Qb$3VM?l}Z=w(JEWG?Pi<;?uE#X%OL^ggjv*7Rr&FrOP%$t6y&d^9C5A+|NXw zhyHkWM(Xk*VsQ2t$!Fc!4qyfDm7%m#KBQGLx0DPd>=FOgmbapOO|??ZZQr4G5XEwEy5@|JS)vp6}1e zi)qVlp98uBH|>+BPwm^oYgULkMPSck$24Yhy7?Z!YH3}%ACuY-NcyaIh4vR_^a3d{ z0T{GJM81!O13ILp^wRo*{ z(bT)<=8)&I8USl!$--Nis_WL|6>$Rvx1qlb$Vn6S(;DUY0QZNJ>&P4%Xb)w+k6~P{ zgm3D(xDiF0+cSw%C*`god%cDy=sTtJay9q)5La7S>wJdL$`IiYTW4lifj^tppi=VU zZ`Qkb<3u0;S~*|RvG#f1E`B`g;~-k<9P=HMBc@kI6%6E`4F}5Vj`$OlpgfUr^!DO4 z2#iQS>6kj^nO=6K*!bH@sr)DhyKP@H97rV0%*^1I>SN;?ebO)SWoqkMaX2rdxLp41 zFtLA-trd;lYBKV_?4E>^EJ(u1R~GfVk5jV{133aPHtG^75mnod+|ro3h3Y+fQuMjN znjl;SdirwPKj`M~waSg2s31_WW>jSBnODRwl=ge#I!1pAc6w^Mt#b97Jov-TMJq8h z&xGsxwQ0zIF;j$tXNo=Gj*aa4gdN?%yBqu#%JFIgbCMtP9-erE9f1?Au=TAoYhA6S zF}^>P=dlo%kSlw%E5-LwKOs!F=)I7Aw~UdN(A~JCFG#QX^811^QpOl&HMvzy`5^zn z=WT#>9E4UXF)P`f>a`|lEkf$a0PC}^=Har^uWq}CBLwaUshdFPp2O+?R^-<=G1dSB zhgL0pWbSw5nD12fEy~rO##v~>Qj0OT-RuK{!NFB#Y zv(GqM`$bI~3b_o;E6OmSkTuu(cb3I>SDkXqiv}?7uGCQeqxs8qlJg znUO2Zaoz$0478P%5nR>lYYAaUHXTGNBUFXZ-Kma%_Ws_n)-7zC)8KVY3fTl1& ztH&PS{iIVL+usL9TF#|6^0v=*h@1Ow@A&legfAHOYBult%4BVOfmV5Y)a6CX(2-&% zU0}UoEy4a#41)cGhAJ^Ji<`#&mv^t3x_>^eGIGa43ODj0@H_L++Nc4fhv3GSl70r4 zq(bZVI1tvEd)swFAWk2(o7B0Jm?3~mwc%%BI_+-m-z#*c< zo__va3pyRdqU9Z+T?TuGyxI@tgkcO75^&_mf3ll1d_J~++5LA~?ECD(&9q%#F8I32 z0LK;6tt2Zej2m=Xcz^_gOQQPp^?r~g>UR5Cv1?2+?jLT;RF*94Ok&Wj^nZnm6q7qz z7V-jzWP@&z5Sg+ywN7~_&SaakY%ujMP)bq2vPo1xwvEtBjOR0MdHl435He)g&pYb< zCB~}Xg_OaBHoSLd1a&{QrSl zV;@npJiqb-NRg{6ip%fH#CkB<)tyDohfH_#YRE8iYv~9;11;s*VGWIgTPv~6Ab%VH z4YU>!=JE=lR%DBLdG^%SH_I|86vpCRoZg!S-px4P(nz0v3ibR}8>?(?7Jw!?%DDND zuQWM#P&@d>+{L`X53YidZ=u0yl`H;jQ?(%8I~ru_MoyA)2_E#RFa{-7b$(w%cjv2&BK{5SFXkHRkjKJl)8V% zw{>98^7d4sb#u(d$|5E3D%&m&?fsxNb^8p3njY}yz0o1{f!r?FuRocovSFP3$wdq( z8veq>*4E-S#`E>k$ z{~0RK63exvM7qMo89I-yUxco>e9?eMl&CNLW4>cU!RaFj6CiNfdpZ4e(;FQ=zPaXr zwekXy&ts8a_mp4-ZwGgS}NOK_*>8Q?;k6n zLv}0&pT~+gcQXo_7eg-sk+6}$NcF7f;zEkh*Z?^v2znD;>y^9rSp7T->t8g1GI5(_ zHkEo%X74Zq#B;~*wX_JaVox!~p*`FmN*M@pIn#Z>AU42^$$x3<2836}z>l{uP;>m` zRJF*wU%LR#w8fy|iPiQVE@v%oK1vkI8ScPIkIhxe&W|iQ#n1$CLH%Bhdw=PW=zKT> zY?Po#iCj+CC*2Q~Px;pXf%=^+Ts~d2-fnOJ@j3;C$OHlBljBiUkRo77FEn0ujw>rq z69SubDTN!6Jn%0kuef52Tgi>G$d37ACc9}#PVe~!KUm-Zq*o_h7g8$M#{!`vXVk&{Th5sTXXqcDE10Kg@`7WLX+YYz8KT)~3O_=F#1%($xpkO)Tdx3-lb7CU~WsG9W z&-0!E0_-v3ag&t}g!BUUz^-$O0D%ZVJqH|qkLy9*QyE zB$y1Mm=_&tCwm=h4b~sNAL_vo4arC^HEgamh_k<8f1ZT4T%8Z(0{tfmDr71C*|*E? zi#6mI3SoD{-?8UR*+%dS41&b2hCywO%YFVecZ2{rO@b~QGVs@d6qbZX<0zs;+tKb|8$C zoq~dwP}`J((SwdU9*0>@=yk7vCP*w7v@qL4YK16h-Ws{%C`DnxMsA+zFRg6)H)-Kr z_lINwf_vZj#!3-cQf?w>^sjH2d$g;w({4HF8XWe3OF<&_QeH8G5=re`(f`qQpS<%354;avx9OM{6 ztY{-|eEoVPU=k1=IQ*%I<^PrijP86EIFWe3fZ2ME+Y^8M>z<=ZhIXaO)xT2Y1w9a= zU|y=`vT=mV0!>6rhXQ&NU#=V>e{>hF7*V6BWOl|l=-Y2P$mwA2QNKR{(XdlNa7*;O ze7S2Ff^yjGzg8**!;&i+v-*?d?Eou-_$p6M1@ITh{iL0%3(49@Fu6yISbUAP@>Utp zOkVJR1Fiy8fEIcjY=6HQ0-Yw*0`>v@bB1X&ak9`C4Ns3j&{erJu0q}}`AXl9buPE_ zPxM(+-|yQcriTspr)LZLLa61~43H;sqjKq+tL*lg1f<9NEqoT&yWbyy`a-Oi7|IXY zhOu`u91a2It`;g?P_!?z0DT?PG#Y2q^yp|Z`DuXcKCuy;#)*k%j07?ai~oJ8;|I5_ z@NXNd${MBpSIw&o-`vSH4-lU(b{JcR*v9rAt=q9$Oc~49yY!Kh;HbP0PCP#+W&bRPRyY);y z3ptkIk?dCcU(**65t)kB@0o2r(c=?DLM_Rkh;hOaiyVBToIYU)abByox8c$vSMxqr z=!K1x-*KxRfo9B6TXLw?NyzcV?A8{oe08wws<3*w-&;h(fT877>)_%%QpFX(G4d=_)ZA=o6Gf!$A8OioZ-9@1u!ltnTO?jQ~ z29Ddect(|>8+dDLm7{TR`SUf%#LdkvJ#~MlP{7B)AuPdd!*Um_q?wlOG%aH4Ymz#h znd_-25G?UmZcfkK;+56mtXabaCMsSCT$sN%^7T|-j8B?O<;Zf9eY@YUxAd(w=SQXZ zZgQvSCRnnKqvR2F;LzDF#pYCxh+H4jSjc|GJV9=~Ar;|Pjm!Vjh_5QY6*6I+RfY54 zQ%E4IL}Fp3sLxz(?bbq(VABzf@NBQFgJhNaoY{lBU4WFU zu6OgEsr-6V40-sF8nHOjcw*8k7o})q`|Cg@Z{sVSTgs%&$h3bubJ=bDdjuY53pRPx*uo5 z7<`JcCThfHzHD7o(W-YlyJ&sOFV03@PL6119!Bh&Ee{}(sx4g}mNZ=Ii3l-Tjfm4(b;SKgp5a{md~c zaXMw=XRqKlZ5*r=%$U=$rEvgW=2SwE%H3#i6LOo$EKWjr{#$pBpLkeUT#$Lrj17O5 z#Gl+Bz2&vEVE1QBKy@r4aL;ySu+sAC2p6*9`Tek;{I>iV%ZYd4cFHJ~X9tl4?uk}I zHhsU}QJ>a=j(*gr&b6yYVGGx0LPEyy5r>RtD1U39kYj4D$Cvb5d}RXMW^X+hJuTag zqeQF(`c{}MjQJ4kqs(CwF8R`5wHu8i8X>V|C92Yl$h(xj4*fI^6z^3!Bw>_4!s(gu z-qH<|2hH0Z(DH0$*HPDBdVEUO;HSy8$9`p%c zBN60d`3pQQ^`!OTK?xr*aEYZ}*<5^AE49nOJ{bY^< zyr*HQwo)GUu^v&%0dUJ8TiJd94 zKmF-Ew&gR(9)@U3{m(T8?b-{@hVue%Y2KICU%1u z58$`sV#m_Qe9~aHD@mlPp^uhn-35u6Vz3M02sb)z&6^{ee}vk~fHjCDz~3cVWOun4 z<~9F21?G#EJPO0k^_8g7OIeo`TOtY*bCu5G2au&W@_g)TRdII82v%(d(69c(*dwn( z@@Wy?mk)#I-+(Z`C7V@B2eqyeeTB%{RCo|xK)zBoKPWd(t8fsw$PcgG0;h^Zn@wIs zgFjyUPK9VPOS?O;%}W>GmZnDTYYz}|+HuG`Rl_jKgDQavH0+VB<4XgrQa+E_AXA zH~ip(MGD|=pr`g*R}g(04f&~#HN5;TFt&8YH-&scR&xTX7f3XO7jR20&V}W@eD;v6 z2x_PH#w*A-=NgRD^htKQ6+8g_D^hkv1qD;*+)cNN@qM~0t*0Mp+!#_ zL0(v3kK&}u^&h1xrNm$4f@S8{!h(W0E$`Hu>qy5mQu>iShev9AjS%hGn`pXN#<%%C zACEDO>xkwBL%0wN=EQqdH8t!<7$o8Q=0zWQerN78Yi)x&WU>e|h# zReCvye6?@=ucZ)BPYO3x*)*O4^N;4WsG`Y4^1yUX0wJ5J0sp5VhIDiuQH(qU*ovN6 zwjsnS<457A0~LX^wcK{=7pScRIqV+F(zT&G*R3#llFQA(*TcwKD@IyBLrIlR$PCub z`?fc>ZbY~v{RN=nwkn!P?625<+_W{pR;F3`a-IL>#*L-BY&n*g3z0lju`_CxmeRa4`V_Yu-nV>xamiH^oB-EW_99 zo~ya)k6emW0y0ec3sET*Y1>0QfQ@OM;+=nR&OTz zod!;-*F0s=RMGQyETqEZw%po&OYKhm?HD+|J=?Ec7577+Wq$`gIX39JXI0 zC`E(T#iYFA-;TBm_4oL^uRW^M(*Bxo+&KJ%eYnph=CuMpn8r&(W$^RtFQp}@Nz*Qw zj!-Fea{J=MsN^(Do7UWy?=U!5XM-DZo!#n1BNiFxyPN*Jmn0f8J#HG2~`=~Bi&l8d4&lP&j`>5|I z;cHr_Yh3%>8VKr|_kw%x`qTVV5e{|K{k;^Mv#%pT~tF+cWdP#9NP28eww zn3VVUwq=;Fl~$9j^)bxxY(k_Lz?QR&+L<2h5d&P0XSSYF;c&Tr^O>Q_S6~~bB`$h8 z?fUTN!fP6Vo>$}wq93e(X|1msu<;+yiCYvUkJi9;kmAsa$8zxiSURPxz(V=j!uxHU zYoaB|p>-?Xd>gi-3IzqW*M~yYaeE*~*-F>ZQz-iREa3Z`?0p->pivNBmkFS>Bk+ub zJ<#WYCIkAly0E^hjEm3&aE@gHCfe@0VC{VLD6_#o`h~eASlnKooc751d36~e02oTg zD-IBQdKhXteY*9iqZaVFL44v`O-Pb;%|)>G(=JzsgZD2y+XD`5O%M5^133MfHBz-r z5pWEpi5&iFx1{~jW=XxwU<8ygq`1J3u{y2Ja;^55P&UM0TDgu^TTmH4mxW(>1FcMb zgFhURH8*eGTIVZk@@4+aHB>Iv5YPs$yLm}_Q{=wN5dV_}?)-GsbhxhH<*H^$ zfD|N*KxSxvk47K?tiP*j?pHkln9yy%4C0jclLlMS+VlWpz_7PDy7JWb=4D*sEK&sE z*pWxD$1W}4hsXrrMT62zGDcf|%HJ^h*4)NMe0`?aP;2iuT8-V0#aBQ!h_-m}W!($K z8#nsDsJsR;bDB=i*|S>O^DidfC%GpgO)6mlTtg9JJ{*m$k(~87CimufK+R@#ZJh@o zQM1p!ZdW2%cyM7-ci-9#k?T_;0+SW8@3xe|7)(7!s-qL}V^RQ+db~G}>x#ziRcAq3 z08*@);u-Ce0ZciO*WCPz*pV}A;3}bzZ@@*3Qig}KwK;T`ZTeFW7W+^fW@{HA z=xmGqZao%A;R1U|eV;xFBX|31fnt-mxFFrLVN=T7z+cFNrT5+F8QN;sb8Un_&{xOZ zJy2WY7f)-fs|zoifA5N*$$Bc$KZi|N4fvj!j9b2#xseh(&^jnaBIXM&MTd62*se(v zti?9~ka3!@%0kn`b^SgM3H$7to~xsAOPASd?1kFOnsx%8e4KDuheytk=3iAzB_9N$ z;V=vE1t~41CH^e%yA@r(^048D)N#E1{;W$JKjRNU$NNxPuS~%h*B0DFva73gMgnhU z1SDM zacWlvTAs(ptd%<0?_N$1*@~=P>evR;d)n@YVjCM#0)3}!sId;l9zU>1r_b}VOCqAD zokP0>&*P|r&#>FDBhN6C;p|_h(tf)0xYV-6+e=$MfRN*t=;Yznz7{2mpijWalTS*+cH*hK4yG|odVqp;vkEA;V^s;^ zI`-mCY|M27{{!??(;(tyAczdy0n&*z^xDB7=aomp)>-hYSG;14V8TZ+P1F6tL33}p z@F@=;KE&2;6$(ua<6QDZxsLO*HJrXa%n3}^>C@LyLTql#mz7VU#Wv=mDfZML+wIxJ zwHwYdMI{AzI1Rb{SQB85wtZXxQfmj04~T<+2%tfwJTzKStk&hiZxikyu4E|PU13s( zG!~U}>(X6!M;55>Z{V@dFU0^P`cwu~$;@?pCYbS^RlvPGRrGTyK>=XO6^bF%zH_kM zy?im;FW8ou!*_PHI(I!DMzaoMEq=Vtv=w1;s8oHXd2y8813>DJb@*`sKj*iw4!Vvn zq4K#}us(xoDb+H;SuZes^Z_tN$`EHCQ5`NSkfwHef$unP-H)^2sM%X%20PfdO{eoj z@9i-}@q`Aq+?{JSqH9n#!a-EM;?eW?03B_{5t1S&nl)b&4!Msul`H477tPnm}+CWtS=d3B%`AkBc??jfv0lo=kP5aPbAC-R0 zdQPAI`k+1l-X!bMF&`TX%fVJ-jEIOHQ%%OLaFI2QEBrFp5`9AiflU%nyxq3J_8?(2 zn|o7BcroD;Ynrup5tni8q#Z&JafbOdmZ9=a#)TJLt*4{1v*n$-%kibOs3*mLdt6cG zR6+qalqvuslC6x~bz^4M82_1}5WL0Sgl_vT$Qe zLE^L7EMcAXp<;${XLYI)`Z7lu?{cGS7=u#ZJG$v^5NCauz`~YM$36336b@gg$S;i^ zsrO`s+nq0svrj-)d5)gi+k^=`7Sskq6YgkFz5Ez*Zd;68vlE^mq0xSx^_r5b=wquN zd!$ZUu*)x9T({s~98gk|pH8Ub$ibnz_4N;hDH~(LVYoC!pRsb$kWzFh%%_ETHDt5( z0VRJCxAZAAR;*4MgC5Pt+%kLbn_S_Olk!@05()G+Yl=T_&&t8Q6}?{C6d27$2^oR& z2gq8aZ2!fpG`YLT|) zk^&FHC*3VMC`Rv?y6NE&D=2>^K0-ZBeE^HxU2SC?rHJ~|pAgri+)o;L1O+1O?UMrT z2UcbKBA8sdG;@%@A&>FweHi*-=8u{FWJRjCH@3{cWjgD3!Ow*PX;alX8}YCiInliC@}sINy%G^K)dNx-XUSX2Qe#43x?Z%&po49!j`L zcyBW8I#l~gQVfLVm}X@AhdfPA#tWQFt2!nymIx8v$I8g^M9A5cZ`=)3UqV{}uo1~h zj=8lTGRy2~dN+eKE_l_fm}hLC3EwZLiB%ZZD3*~(OKMtO8l%n??51th=T0RHB^ncc zrfVa6x-4ipA`RPfW}mj@g*u;IZGCfaormeq9Z9|cB5tE_`pV&OdZ3ZkIp>p$>7|Xg zuSFOKrP_yhW$yVZde~hw#CMs_EzdcW?Zkk~V4;_FZ8Eucd^aZJHjT7?m%LI^`j~qq zGhKYsdw;_t%*GfaEDs=|*P^*rhA7W8YKZMOqy zqd~90vSM5(8>?t(OyGx9iihF%0QUT@i%NPrw7EAC!HaShS6JsCSL^innhNSVkY0FVR6H= z;=*=;ZYcpt&O~N|q!76&1!kQEpPYPy*p?nqz0li@6b48RqN)S9ycD*!&Ydgzszlcv4H49eU>}vzOhbZ>2JKVOB8^-DN_~eYX&Fx z==vqPXX3q~YJ6sRL;XRSr%v*_AMfS2d>xgV4pdfj;<&Y8(Tl_^>o;Fsx3sep!q91*&zPK_d;s>{O*Tq(!K! z33fZA03mrK=AF(7!FXdM~{sK_ffw?M`+~&(Df73@SYi@jV!Qw%^dcenayIP6p>`8e6UbS%;A^Y znIP)!b4p-g)a|o+y63Wx+LBxFHwMST$1)3S;k@lKKdLiBE&}BFReSn_nyT&*joW6W zL*6fW2@{uUHuaU>u%JCN{p_nxQatY%s;N3M8z4WCYM$t{C~xTPtIS1a1tCkAlTV%;&Vg+% zmu?Ph@53@Vqz&2Oa5$--iC%|^en!O?7Vygwd(v)`+iHwaLBroRr%kmFXVE+UpyV2H>yHNHZXP_TsidsA zu!0|qL+ykhdmw4!+|6;Jubw^h-)SZC6Gz*-+hi5wx(HM$1lc1CL|fR(_D&*;IfL*S ziqEaE8s7k4h2UX|lBPGCO?PWvgKU%+#>aLa(l@|1m>h-pq}bGls}&-bv{~^$%XcW7 zvM7{EcTh%%?}?C3UIcLxV=6!I8b|XR#187vZ$|7PrV+FxcQ!_4$mea6!k$D;z~v)Y z>nTrwngrQuT5RO0Sl>YESs0($*p~5G@#N1bzpgjp(_!M9qfY8EWCNV3B7)AT9%_F? zZ=uEd@HOAfLSr9%2|sbA#x%A&t-}Qw<+KMuTBZ5S1k-U39JJ4btPD$#&$DEQYgcRF zA_C?F+e~&!RT!9H0vi>XFsM4NIO#%Co=TnO(XF9k;Y|jEfp$AQ7~S#2hiq|TYS{*d z(@!~eP$~m$TIn@@Dp}6IikH&GU$Le|k2_MOQP_DKfpfBYcW?XRV}re>-N+{RdaK^l zyL)}3(yN=6LO4(4Q6UiWU6AL54jaMJIe$!gS)mi|Sm|k#DeCO|dK7^0M-5(L;_J?( zCR!$v5)Rw$Z-ZbU!FxNMK77Y#r;e_VA3v?yUNzfgn+$KCd<=klp@2vlDYg5za0fk{V1r)xeZ2J|5uZu;DH>Jz^f$^C)ULTLL$trSQerE>6kup8vAVn#n&w9F}qx zn%*^PXNP_%@DN4TrUsML1YD~2nJtl8qxYqKL!X5CCg^dAhZAn7L1xPU*0dX2x5}=C>oj_^S2OjeQDR9<1yX@KJjBNcF z!O@L~#X$?)hK%f*!#c?jdAZU;uHck)1a#Aj&5!2t{if7`y`Eav+3;X<24n^03ya1X zs)6m!VR733l4o52Imd5#q75=ZK7c%+SRddnl+jTAB!KKolQ`A>Yl9OxV$HfP3~>cE zdca7i1RqCJNXMuhO_#!092H?H3OsF0I3yXL{^e6(mRE0uW&T`m1!Aec#I6!x=aEX! zWCs(orUICn$D1bt$s%haF0khflF#J*EBJJ)L1H_>@6#WkKv?!s()5~O;Dm|}W-&}g zeD;~Y`=Ce9ieOgbP3!jhT|;lV7(=uin5Je*zFW`_7rK{215C6&1h@hyd+CHADa#Rc z#5KwXq(+~Cst}3fJAbURy6O7__Su#vA^>a!H3H~(&Nn@Iy)pW&yeP=GcnIK$k(>LV z$bL366+!RoD^D~QIrX962R0tz8&{UVoC7Bwr`}7KhaxX09wQEnvE4Gr_O@kBGDl=% zL}&McG%y0JADSnk@ObYxH6<>QLV5!`3jka6*KU{cBVH(i-CU`l&|>DBP|=73I=+XR z&#->z)Wur1k!k_+2nFgj1=FBjRFcdy3+<7ZtA?YDb0H8W-5B#5y&p97YW|W<-zU-_ zH}ogmG|VxOj|Q% zYGUI+dQ@;J97xZY?fH#C9w3Zd!H4tq*3_=w9zq*NIvKF&E9r-~Cv+6A!U)&OV!=&} z$4E;YKPJ_;6J?1Xl%rZK;9wsBSa3!eizzUB@j!x-4u}yY)I5u2FPwv*^JzeFa_n5J zx826IV@O|2?OeidKEOH%o3oZBMJPoDg=mnyM!AS(32bhTfHGc38W^MOiOkG2BpGB` zj)gMp(S&zmy@)|nZ@EPb0CuMZyX-{x?QIT~HZ^L1LyY=RU_*tmwv>U&B4hf)x4)Zhfjl)(@IJuy|LEtR=n6dn0SkDdyTQhs|Iy#zO|Tsg zf|9iP*&lz;6ey*Fhh6FU-+lV_J_i^b@HX^)%%l%LvfCv!rH=wb1tWRJ{`%jt_y->U zwi{A5*q{Jp3hBlJ$j$D*Ettu^?P40_#K7}!!Ts&a-{t?k&$>t0N@eyt`k*!h9;M?h z><_3T>nHX{TV(pTasH?5|4vPR?X68;B`<^huC&s3DQbevePFKy^WQRI4*=4ofut~a z{$7y(W|Ez~0&VO5wk^ry8-;0wS*AE>)sZE^Zv2m0d&>3!fZ*`o68yJ?0xt+;yO!d| z`ct-t*mVEHHop)0DG!eQ&wnQPeKeX;-N{tul! z30PF+{>Q(-?99Nh@5m;bnxul_8gA*;%*^bn)!(j`Qnr_Muiaa=S+{%ZdaK)VwQi<% z=^E|}m}{bGfeV7DpzQ0g!wd`z{Gaz21Ttqf&N&Ru`8>}&;>!cnM(R@HT*r!>a%rhgShM z4zB`i99{+3IJ^q5arg;f;|TcSw`~OAC4f!Cs{k8^_X2Dj*5Ux({$fPO$l>lKgh*_U zHf;y$>)KIKqD9el4OA6v?3{QI;^HpE&}bO~L#6Qc6G7=JgivIMHf<-WE49eJ(2O5b zYtW%%{@kpnfY?dSShCU=_V#wPZR)DqaOqqlE}Ut=waaRBb}-%ztH#AmfVjy@#Ef-< zPkF2cMvH6Jp|YSL#(=rKM*0 z=_9q!Xm0PB5D+ZEjCmdyF-8Fg2gCQMC-DhN9NnivMVXe-{xI$Z+!5;psm#Hw@3?u0 zFn_5xX3qD(@q^Vky1yDNY8K?(t=QSY-X7@Cv2O?Y1V}LF0Z(e+>7I5&knhBdb4E&X zC8Paf+y;mk;b`%9WsVM*eZMEB-0g~#9aT76+k4LyQhe; z~YV7UYIn~4I+^}^`5T16KRKQuwzRZ<$(|sN&y~R zL2sN63B4&9_9j(yzefgs$x1)Cxczor9UYyNs!IN*RIl+$yq<;2d=a1EVv)F~!%^-4 ziPWA^^~k6MkShcb2<;8FY1MR4PngWn9u5NIH;1&DyT}{i(Q<73M**4}dq36W2CsN7 z5W`0~_4(f9yWJ=Y`=ht6L#OM+onxILmKe5A;uBo4C#jtJJA9ZNt6mQ3W2})0l<+%u zN*e6{zM|J>#GYBTCYX9!nTA}elTrYUnmN75s0|>K)8AZ;x&vE2sYYSmO)HidU!J}~ zghYxlY?KrM!9s&iOZad(UV1AG|5|?o6=kj6@5kTe(r55{GBjF_->>k)*%P&xGRw{A zH8{HnF=m32id8IK>2J_dpFYn6hxb;Y<5Y zqUnH4ZjYF8GR(ZsiS}NQ2ZzZqV^jr*#Pm1o#KFey!3QNqf%4)u>UHXeCV2V^Fk!kJ zF=J)0r@84K-eNreMi@SRCyyE+!i4FrM*B5>svGq(l}Dc*Vp2OIO-S(O>ZK+Ghs*Hf zpF$}^mJSkgxsEm;{FgWs(z zZO4wybvSjn3GH z_(}-2e^mlUg?TXtrkQq+2VC7nw1ZC>j0YNVY+oZK^-Q7YhJj#DC;ff41Oby?g^nhm zQde!B(L%28%&{iKO?HHS}aoZ|{Ua zkCEKo-ofbl9iu8h+p7O5*EE|STp_jq-QW)`y-Fj6(i$({nwxc^5*9EzFbE&D)AuyD&t_>*7jXE^eo2Lee>bMp1 zYgMg%CV)ao@2V+X9dOqi1tRZ|P~lq=EFxaR=n0muDq0)FRekC;FUqj<@)J-hfk?`8 zr_@MEZlE%MdLotC>6HMr)mlb_Kwu*+TvgeM@L|2*BNrr**`Y<<`)r|+Vk}E=b!1v+dIvR=>?Ep_)2 zP^t8{LPUSjjb_F-axty~h#1SyYeslV)0GkWg9N*shJ?jpU$c}dKsZ64CwXAI8 zWJLv#aOLHT^%xneKV6ID%HI*EU)R|pP6i^S_|>ygRhpI>Z!WBD4^Ka>qMZOd=5g*! zH7nvDY!-<4IZcH}o(O|Lzz2K!%b62Zj0b?aV68+g+VH6lN^ zk+tKqS|KE5X9+(6`pLfSMXZT`uss2?&eb3@qXr{J@wR{^6y-M|?MMZ?6M)SUG33ab zHeA7bpT`;9lEu>-GU)&L_$oTgNhh`d)=R~fm#DF6Lk<$xL^HZk@^~UKKu6rWIEeLg-45hluE&Y_<&iLh26^`sLxw#vNC0Mlq$iBWuS4UvRJpr^k zetG&rf@d*t?$j$`wlCg#DIHCXEY!+jTLmnAJREn=4`l85wm@ivGah?B8XvB^z{>Gi zQvpQW&sk{NK6_)3KAt;Ug2M-|p}3$9Vu=7FVtg=nVKiJ^2Ue|+Y@QQ`^KkOW4OEsl zLg6gIs5pPjx;GMzj?9$HiJ#(yZN5^#V6*!ccSK;k}!4^yJ7 zn1uzF!gsKw{YI$wjr8|)`Q+Y=*^E3z(>qrJ^^-~3`msl^kZtfU#AzMpB)cTIuS zK+x`_>(Hp%@JM156i(*Z1nOq=}6bI>FA~jZ75q73-cq zL%Eo2!^v7eYfC#0?###H)?CbhqNZe%}uX*v(b$q##2qQ+h;leLf{ph7>aPrHcq^#S6kA|B(_+31;W+Kj}6&Ov28xtRZ ziBp67*GV%VQtYWUld$HAJx1FuTsjg#q2?vTkmIlW$2dv_{PUgjROJ=6U|j_ajZ$Lm zdvS2{FnyL+M#bI!mEB^lZJkE0s<~=Zs3IKic#V@pN#!VW6wd-eC zbbN9>6Q}u656!DjpQ4IivjM9rKq#`uEAPZwH27UCT|OF-!#(lOcYnm$w8HL*;Orv7 zgO9{u)pHZzC}*xhxv7u=TKo2N#Ki~Tvky-r>tcELXWqUFJhWmAmLQ7LQummq3eAO82{2~7H$1)jAFCfdHUMAmSVH;VWGz4{6CyC!1r83DrJR#%t|)6n zRYfzj+IC2#LU{Qo;OZ_jOOlYbGw+F{UL-PDUfKv}rGzpPnUqLlC;K2}cRpjs>j|qi zKv*QRmbsI&1kra`o=|f7L_W4`Os5P>5=OoiPj5M<%^r%!o{ooKfO&lRRL`A z;}69+b*z-dy@4#!rqyBH3#YLDUz6ePIj~#7XU+}BC-0v$scqBMr@!YtAio|?_qzgYBUgyAdFK**`N>&)^Y34}mz&8` zPht(vuAR(C3YVoQT_l)2KLiJM3G&SwZB?gP#A47h+~JWrn! zgsmI1I5{6{6+-k8J<^@Ca}8#E1LUk#1i2MXjKD4iO7{;oYE;Y@g{FhG5;6M7y1;&d z!|g!Y(PGXNGp7XY7G*X9>BtfqA>4)p>X$-p{iUBC#4vUa@#2zdo8C1JGNbc z%uz^f|4#p@j9NG08ctO}7sMFcw&@b}>LM`63198F2M#t;SMc4nrzn*;&~UB-=qN32 zgjTDA)J7&iRu~=cgT3Eh9q4Xw9}1=;DAYRE-?>7e zU@y(f9IQqK)K>R@H}PPi;CdaW);=9pqXN>772z4J4#IwHqaG}fjitN3yTZyZfSAjG zcmet#DcV~%Wnx)k%s_XARY)<5_x^GcH*yEw0{~mU7-A`#KFWYhCd9&rqkC;4ZEMr@ zdxHhny#HDnmEf^t`3OV~cc%h9nHd%M_l68yOs^Q|?sa1|DuB@00c=?R6OzBpM(lV$ zNTdSf=hh)K+y$#%h#lzenGCUKb|&Ree;-Y`0kPPDngDHP)D++ft5E?xDZEiny}B4| zYJu1>J@0Ev3p+Lbn80eh06K!gTo65SaQ)_hs#0wg7QQKPz7}9E3zkF;x+>#4|9jbr z6suvZQU!D&l?pI>zU9T0n5MZ=i%Bqk5AME(`bp??)@SU|VO3thtt?n#dIeCjkaTEoE|R{!gezH9Se7^ni7&(%{7%N%Qat(4 z9@snBBPnGO{EgK9$fsQ$F^+fbe+)YbU3){8df|thPG{uN{u7? z^Lh!)=H@n>O)EC%vaAlPRRQ-IdHPF>8u0B`7qR<)Ind}S!$u;DZ>%|rH$IrAH@ti- zi$;S62{*f>_{1@Lf()h`G0unVsOY#d$%*f_iwVB=WjS^y7s@HT*rGa!W` zd8`Ls0@ygb4PfK&D!|6!Re+7dPXHT-)n5$Zv3~v^V*lWOjMNP^00000NkvXXu0mjf DL-y9a literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png new file mode 100644 index 0000000000000000000000000000000000000000..db791dc5b72c26f90870ee6158f21698596659c6 GIT binary patch literal 582 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 literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png new file mode 100644 index 0000000000000000000000000000000000000000..6809be06c15770afa55c880e6c8da2d212ac27d9 GIT binary patch literal 1216 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

    CvEF%M~Bk>0v|fnK#}S2RTVg5V>YYd zn|g5kBnQDDhRzUr{{g^6dGR>dfXziTE!B>4#;tw?ZW3suTIhB__}%S)segm24bazL zDtY=qW{g9b2OXC}Tt-~U_}ydbq5o2htWMXlgw1kwR>vzTd4{1F>0~u4|EVfdSS{jP zo?d-@JtLgoM=XC?MRX12<~Io}{lDT(i6S9WK4RQ498jtxfG-^$b1Tt?{?}V8Xq3xs ze!1x!KH_$IkLO~v;+0Q_fQ)qAKh4z2P`!rT08L72uPjigfgyN}Xy%m$-wa3oYkkA1 z-IM=M_3wwLTWUN0$3*1?L09x7k}nE?w@WSZ2m}j*G7RjLU;q>~P#VQ)p2;lp(Vr&* zxm-=nQd-MGWW+7{lPz%Fqj^PSInfT=*jQzU8CH!C3-6>jLyasMvm!&Au2HM+&XTsO zfY%Aq5)g>QGZPJ5sMkOJDA{1>5~R35yr!;mF^6zR`aja?e|L zI)4gId47;C*QX?@Y_5@hn?q%k2W=G9jJtv_d1GyDy#wDc3=9aWCc`%x;tj)ivw1Gc zruiMHZtOiowKYh{%_u$Vi!{T;!KW6Y=Bz1;fd5`n8YLBoT@xB%O94+I;=2buot_R@ z8|A#+^(#=Oz?xz3v@)|h%~AN;c^x*FXMj3BnG{V)`OGO?#+6)#-tCzoN=2GHorcr=9TaxS|D}UP12^OG|eLI51q6z6=DG!&D;%tVWB`~-q-ScdWMPw zlF;9O1HBl=r2T#>H}NF!2L|bVm;iuceitNTlwfgDSAIT27Y0O})l)#S^`;wgidk7- z5@QBBx)UA*U1Jh~g)Dk-+CvI5iw5x8A0WKb>Cp?vrkcP-LfMhlmnEw7vm2{?EP`zs zA>zr>li_e5`%j;FSDTXdpyOyPyRu?}eG~u(z*!Mplr6DBJx)Kk$?CXoiw%9>l5@67m_q1HIU3=2dLh`!7Kc|C0+cEtxDB;V{ zKIjduCh*?WjMgoV1o|MQdDrju9t((?|F!fK?xse*t~gl%W{9m<+ep?|J|`#kDV&uk z@9yWc7jktaA(l#6vr_H^1rnQyUAM+6gJ~8Y0Fm@k1i2QpmSM%Nw%~cZn@7Q6Q?XP6 zJ&#>`T=iO!9kchffT#uwDGOn6K0E~EjXF%+($$=`;Rs`C(E*`muIOkMz!WIk>ZL~t zksXFKe+4a2#4Gm=AZ(NoO`a`;Em;6aE6;3Wbubk0>Zq}-M5kxDbDL|>1&YfY@5J7^ z+p%=lN&u)fp9@H46gS!p^^URJ6Sz2G7a1i*xE~8J1qS+%zKsYGB^LYaR0#mAgWO`7 zJeS)~09Q$uF%g~Z&>__NTky(99R6AE^NCP%L=hY8!~cBngt~)EvKRIa#_SIZ3-qsJ z2~6BA1knJTCL{wz*%G!aFAL(6t{s_$+>Dw1@MEXTm1m%!jgVoux}PdQFS;E<2#5h% z3J_|3Z(ms#KxJwTNQeaT{N_yI%G-O#l2U5Fo?MPT;5YH&YJlW0lV_>6i0vj@)!6Nh~ zBp?uf_0d*Pyf@0n5$l7Dfd{&icXlpt9}b)Ht>-CO+eC*4^*41dP~?xx3*L>6ajW&v z-<^Fu9dPPq=jS{hZ}6ukN{Mct4S&T4TL3|Bp;SGule(!-_V)c4#w0y3Dz^zF$e+pi z`w+7I19(oFcY(`V->GQeIf`_bpB@2c;^Lk3~4`gMQC zY4rdX25Zlg!_DW1h0;vQv$5i-xD4!~gS~I>u84?H_?iqq*~OC}EdWSGxu|}g84!S! z*lIc>FArpFY>Bh6@*|%65h#hJP2+4O8L^xu+H9EzD$7Jvk{S3T?frc8kP4vw@t36J z{V;kEHD<_dfd3Wc&fN;1kzO#2&vYpYBI4E0>=#a0zL!!mVG$9{dsNOCAu{>ic$h-@ zWbC&XI3PNg8Kq2M!r0*w!K{RtU(m``)}Q%!KOPNepnI*IA&M%tHPYF)mW%%U`QbpN z3pw_xzak*I`8_yz<%zJ<>O=29&&ROg39u)iMp z>2~fTa>nY<)#2i8gkhO!IG*nqa(vRI6c%3AicF1Cu!R%8A0`)e-?QEU8*`#(!L3uD z_|>sFyj&q13rTI}TFEe0w`a&h0BcVTw?M~~==5{9ReC3nWf588r!N*h+1Et$jr}Y< zKA3Yq{4h};};(MvD*P*G080Qrup&O#KU*CSp)6ySh60wz;cN901V zlzD4!1vs!?z1`?W+?0Tn5DGB2_xA{%l$D|w#uSu(SPh`kOz~O|op^}qK6EpjiE77# z)DO0Fuqy)tO$v}XsX_ab(^@PA95;Bs!gLAN(PIGwBz;+1FS_y8lw3=}5@bEYqtN=QCvYMbs}c0mEP z`8g3NhjEh>n(hRWk^ylpbrC`!_-+U4+7H_T(wwqQDTNv(| z=eEdN(GEmIp9=#Jn#IO)agY_zg&}wdBlduOEL{ic8m`5qeXH9SO?pUSe~QXsVZ$?7ssd zqF{rO_HlI6^H@6bu=l(``4mn`$)|1?jH+HDve=*|jDP~kg6Ml=vL2u6(?k;Z1+Y}0 z^5&ma?5FGaYtIuh{GO=CiR#_&}X>+A~Z(NNp`HwdURi5>z2#wxmpc z6ZCzWwP)6k3o4>zU7M;-0X2gSmym(~9Uu-0jZqZ4T~z~8tm3*~+1fiq63bQ(%cS4z z&aH2UBNNNAN!z>gY%al@4vZ)Ri8kiPYB5RP`L=RQm9;K-T#IWUrI^XVVAH?N>8zr) zk*j`Pzy+ zJ&7!Q5c{7ht~?&fuZutSeM=G9iL6r;*@>i=OpAT(hbWRncG-$4TS|+)Y!!y=>oj3R z3$kUKF|v=Hv5YZh-mCZR{e0g4p3i;mJ@?$@oO|y1o_pLSGJm-fXW?@P=9iSf6Y4s} z4Qb>lN4h%7T}*^7!BeE z0>EeY&os$6d`E~MB1_+)d)gkC{4ax>_2mcZhdsOT`~lSU;z$;Q0lEV)8Ms?>ps9_m zRnxJ(L3fpacQZ|toxs@ybxQe+GUs{X!O_l}%7vNkd0`ICbAl`z35mHG^g%&6k_PU^ z@}fqdwH8JNs_cC84}fMRq>i;?n4*S4wfLK$`526tYtwdkjD)JfDULsdbq9qFzr|#e zX~$I+g2d=7JX;u}R64(p83nQ$yT>=$=dc+>0(y;a;^G8=x=9tqu=+YL63mt83pf;D zNFy^dMUdQsQ-K()nE(-ZK(Z3Sf#Knp<|P0PfpA}TzLAOfw^xBDkGp~+N~zM*Qxas+ zh#f_p$>o4HSq}IIXkPT=S4F^Kfhd)EN#j|C9aym-c}HbuEtlpAh4+T;)o6g7cCzcR zzwT}y_;z2i(!g8s?LvE(mt9>6NH0AU>oGc%TMyFGFz|55O!Lu}sJFTQ45bJhr0e{LX~NJ;qSFN?&Z zuNcK$W|NIWt)4n0*};*XGy2(r<&*9&Vz9#Dlx-F4zNtRwx!2AzEpvU?N%8U(YZzF2 zOpbXTw|q(bnyUmNb1N@eoo5h3c{Azd1hG*VngNJk;EhBgJN4`y&(2x{2sJJ< zHf0W1uf+i$Z@MZpcFA2H^sVM+7&gCsBX~Fa6e}AsRg^nbWf=~`e216OR-<(c95W5D zv}prQvDE83VMCT0*SpbyQ;YB&MV3H5yI3FwuTa_?e&08DgSQ9y=6mJr1J4>aK6`HU zn8nvAZlO4iw(r|uXB9jR|K3~T!l}}bCmomU#i1VwFBz{ZE#T((q#NT)tr7=X>4=n^ z4LB<*Gv_($J!hpHL#^bn;qVMx2^|+#*KmcrU~JqN?V+(uKTyW|xGq{v zGiZHbL_-+3WgnIJ?Gr{LmK-EPo)p%Z@v$sd0TVEa?Qh-U- zfFwGW(%V|-{oCk4TDI-!qo-8tUc5$BUvZNAa1XJCYhb3#An5x9bQOC*;yOO4M-S^d9hNMvGDz`%d>f3q;ISDi=FM*(aHV0kaWZE=NG$TSRRr+9H>7h3~>zjy#+|nTst{G3QKHO9{L;Fp8 z_1x+a%N@JKIT!IqAm-qMnAw*KRh{6mL$ABKiX#P5rNP=2tZfE#xLZ)Ak0BlJO_plV z`h|}uzbLf`Q8e#bYk z_-zDhHaF}3eCuC-HTTr)i?n4a;LI5=TM~}%$KGvm3lGXV>##J-lS0gW$=!y*U{dn& zv-dtuN75XeocL>fzF9eE{_^-uurZlm@jULaG&gHGa@s3stI~XCP*+*l4Q63D8f7c< zF0Qq|e~Krvb{zZAXzxkIeWTh9U%$I>N&Day8M)RYP+wYkE*n2=8CaU}K+i_|>f_6G z41t==A@(d|Gv1YQ&l5}(;s$}DuEgUgJ=JS_(nn7#(YeVjE@s7TE{6oJIPUV2P?&f(}Oq3t$FH=04eX!pLoU6s>f27t7UvvC;) zLoB{%)?dD;01!KbyuYG=Xxl6C)s}VXU+^%8%_%;o;}G!j*3Flaabv`v!^7dfj^7i) zjPEIMxXI-a)z-s|?Qh{VMV7T6edlgdxRj(!+ISuSkTAhwMIU{91c8!Yztd}YGQ>+i zZ`(X?&3BP}J7MMR?5GJa;*5JfRoFiaG(0wx<=Ug08he)`>a<${idOtBl(N}n7_RFn z&TjlYJsWe$n-G&6a zw}BbKMp0zn-$`2+~R{Nno@3OP&)!d^oRsIR;@RvkAe2N~! z)Tz)sa{NHnMM{LHZq2VEnsrv?P<{|+Sz|?0+f?JzZ%;z85jgrnulOGa>ClTuX;qna~?5Hd@sQ(;= zIF-0wDW+23y zmf|h@APFpathX?eWU4Fv{COpLx z=7Fv_Qlp@=UVJHWY<~eyAW=*9>leO=eYb4ZO!jT(rhb3yiHZzOev_Y>)+ zMkU-n$fQ~9vGh&-Y}B>gz0D>5eDevjef0Lq_?Z%IPKGsxPj7w-$GQ#*n6px};U*vUoMbeFY% zs4MZ?+Xg*{A=>P?%|HhHrL_xfGEnODnXO_m-EixjIPtpGopMKE2|Oq&k^SfF1DRzxla_?6p_4;6hy)TT1#WcWwC!Dt?>d z$nzy9FfbDO3a(h@RY#~>-Pg9d%DQT9_TqB`G}Kk?STYpGS{AngHgISgp3nO4m<--^ z=ZKVLYg<%ze4!4`Mfu{6mZR`o13VpfYR6WgfF8!E?(E%l3!nXaE5eblAH53e!m31Ci@rBh2Ld2d!5)k7CNLWeF20^^09N;4z zf(+h_C-OlM<`f+iWdKrGG9H2;iKhbKL-nA<9#rjQ{M!clZ^?TbPzyr{p)eSTX&(?f z`0=;#<#LZwI(h?PWe8%OKJu3$$ch;)!o&$hhjX$*^tb3B1Bw4@*+>6h+J6`u`O8fu zBP$eb4p_SE`vs7gd<{63pacBa(KALF$o}p7|JnRIv_BR9bj1&NacATG&xrpN|8EZd z5OO}?=YZ^=;=jZE!%7Gf;2g{VtIXf7w>$ OT|94LTz2ky%)bG6z~jOI literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png new file mode 100644 index 0000000000000000000000000000000000000000..e5b187bec5b179cd5ae6571684392f3290599cbe GIT binary patch literal 2499 zcmV;!2|V_RP)0&oILbm)wVrcz_3@BLwA8iD-vwrZ(A_(@kZw?v|U)U8$_* zST~n3S)-LiJl3!VH7P+={8e>T_v?3kUw{35 z@4bG_{qqxbHcVi+Hrs@jA6%==I^KO4SGYFo1h)X&M7IFzME3zU>jbxe`%z$``v4|U zATUG#|6o2$CL3BBjOb`H-PO*Kz~i$J5hug1BbI?>raw#o>Xi;%p+2XhxnArP`1?j79Qgfk~Pi0UDZ0!e8;4#HFT z1@Mvf*d(O>!ViUcUC8>b6`d+FMTkUfEKKsEJAXM}gZ9=QqH@7uLOhxtfT+2WLH+3? zKE(?;*(##?$f5v?(zwv&Z4QTp_!MuOsjRJ;V|=BBKQe3ggjFgUa*k%^{c;Eyh2eDedm%7XfZ8gZU3dzih=Y`sz9=v4#_ygFw?Ek_(><``*)s42EMz=i2Z0WWyUxcK1p8(6f|$DwS}a$f+xgW5=0=|>;^@e2?jFqDtSp9q6|y4apx zU17wD!y5WQ^ig%)h|Mody3=PqKq4Da6zKn&=(Se6@O?DYn6P)J3ai)45Whr1r$t6d z@WPI1@Q`o@)yIUb+owY2#j{^4i}l#Qd$5C}ltEc@pY>4ZB(f1j0i*Gbz&fq#{M4(^ zpNL40Ve1}_{=!pCohbmD4GeT$W;0+k*dP?K?0qJYjVKCeyUnm#ZD6xmaN&4qJS1$_ zH{Ar~0Eg-WZa@9*TPBdmM)V3;tTxV z_2Qtt#f+kS9X;rwtU@5@ZQr1?z^JzjTMw8Fh1;5qv;rs-^ANM?S0Or9h;>_hXv-KY zC=b7Sy_fwubP6BG_IJU{mqUk2y05K9A_oX2lcB~s9U`MVX(tmZ=cD|p0SU__V=BBe z6p0=<{%sdRC-d!TO?7&Z%0)aKuDPMLpU;XF(h4y3jQ>p1sJFpv0cOVB8CTR+X+bI% z@ld!zskWcT#Cf0~SBv5T9j484JwhA{t`zDJF6SdUR%B1BRBDJEAec;ssw=ypQJWx@ z@#yz(%eF~FhQzUA!D2BMCW^tnJv=t(E%d`8m5X>fY=aG#&bMR9${_lhQi7*!bb}ms zz~wsnpyCT1=rNK-05Dw;$;ocAE8t$`^bd{15dch=#IBcgp}0_m7{%bR{JlW=H8qMZ zkWGX8V7w^0`|VP^_R&K4`H!#j8;D+K#=qVzCHDS(FkTkdXnK%!um&5Sn!&J(cb9IB z3I0JsG}MwWhk@ybk)Tj9cKkyDAHRF+=~GM!6yfDJVv&>Gh!5YoN?eYS5BSvv`LMz( zOIq;ZJ9((9?nI0t1kb;c0w2GT%?gbMGj_js7CEPGKq?br^B>}o^5E1V%Os}-;lQ2> zw72Mq+TdClyff5XU?^&vhi8;PhIu72p0C zbS9_HOs{p`hS_YzYkw?2abY|0LmXo zFlqy|!<8axwm+05tq$p_tEM~6Pc4+lr^`@up$$xAVq^i-RQT0hi!f)tpVRyCi4pkg z+iBSOMh-M;Bf=(o;m!9ShL^X*Mm+m=@)Y8)co$%Z_A|RK!#nQdcn#ZT$%jmEq}^l15cWe^#xPni$i zCvM#>PJJnUc&+pKIuk5rD@ux55u*sSr)6c96Mybvf?IcsFG>zWVDR9DlC~Btj((%W zvWMi5PrI{e>Xycc&px<_r(TS6m2ZffSsrqmQx1 zt^W*V?kjOyU1P=l{{<%eA0zkw8oU4B-~_jT3GV}#d>;RQWWrm({{WRRD8o3f^1J{5 N002ovPDHLkV1gC$*q{Ia literal 0 HcmV?d00001 diff --git a/macos/Runner/Base.lproj/MainMenu.xib b/macos/Runner/Base.lproj/MainMenu.xib new file mode 100644 index 0000000..80e867a --- /dev/null +++ b/macos/Runner/Base.lproj/MainMenu.xib @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + + + + + + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner/Configs/AppInfo.xcconfig b/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 0000000..11b3701 --- /dev/null +++ b/macos/Runner/Configs/AppInfo.xcconfig @@ -0,0 +1,14 @@ +// Application-level settings for the Runner target. +// +// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the +// future. If not, the values below would default to using the project name when this becomes a +// 'flutter create' template. + +// The application's name. By default this is also the title of the Flutter window. +PRODUCT_NAME = FluffyChat + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = im.fluffychat.fluffychat + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2023 FluffyChat authors. All rights reserved. diff --git a/macos/Runner/Configs/Debug.xcconfig b/macos/Runner/Configs/Debug.xcconfig new file mode 100644 index 0000000..36b0fd9 --- /dev/null +++ b/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/macos/Runner/Configs/Release.xcconfig b/macos/Runner/Configs/Release.xcconfig new file mode 100644 index 0000000..dff4f49 --- /dev/null +++ b/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/macos/Runner/Configs/Warnings.xcconfig b/macos/Runner/Configs/Warnings.xcconfig new file mode 100644 index 0000000..42bcbf4 --- /dev/null +++ b/macos/Runner/Configs/Warnings.xcconfig @@ -0,0 +1,13 @@ +WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings +GCC_WARN_UNDECLARED_SELECTOR = YES +CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES +CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES +CLANG_WARN_PRAGMA_PACK = YES +CLANG_WARN_STRICT_PROTOTYPES = YES +CLANG_WARN_COMMA = YES +GCC_WARN_STRICT_SELECTOR_MATCH = YES +CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES +CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES +GCC_WARN_SHADOW = YES +CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/macos/Runner/DebugProfile.entitlements b/macos/Runner/DebugProfile.entitlements new file mode 100644 index 0000000..a964b6b --- /dev/null +++ b/macos/Runner/DebugProfile.entitlements @@ -0,0 +1,26 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.assets.pictures.read-only + + com.apple.security.cs.allow-jit + + com.apple.security.device.audio-input + + com.apple.security.device.camera + + com.apple.security.files.user-selected.read-write + + com.apple.security.network.client + + com.apple.security.network.server + + com.apple.security.personal-information.location + + keychain-access-groups + + + diff --git a/macos/Runner/Info.plist b/macos/Runner/Info.plist new file mode 100644 index 0000000..4789daa --- /dev/null +++ b/macos/Runner/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + $(PRODUCT_COPYRIGHT) + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/macos/Runner/MainFlutterWindow.swift b/macos/Runner/MainFlutterWindow.swift new file mode 100644 index 0000000..3cc05eb --- /dev/null +++ b/macos/Runner/MainFlutterWindow.swift @@ -0,0 +1,15 @@ +import Cocoa +import FlutterMacOS + +class MainFlutterWindow: NSWindow { + override func awakeFromNib() { + let flutterViewController = FlutterViewController() + let windowFrame = self.frame + self.contentViewController = flutterViewController + self.setFrame(windowFrame, display: true) + + RegisterGeneratedPlugins(registry: flutterViewController) + + super.awakeFromNib() + } +} diff --git a/macos/Runner/Release.entitlements b/macos/Runner/Release.entitlements new file mode 100644 index 0000000..cfeb4e7 --- /dev/null +++ b/macos/Runner/Release.entitlements @@ -0,0 +1,22 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.assets.pictures.read-only + + com.apple.security.device.audio-input + + com.apple.security.device.camera + + com.apple.security.files.user-selected.read-write + + com.apple.security.network.client + + com.apple.security.personal-information.location + + keychain-access-groups + + + diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 0000000..d03318f --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,2551 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: "1dd467c7e56541bea70bbd35d537e3aa12dfba81f39e2a75bb6a61fc5595985b" + url: "https://pub.dev" + source: hosted + version: "97.0.0" + analysis_server_plugin: + dependency: transitive + description: + name: analysis_server_plugin + sha256: "0dfddfb7e765a3d4583c185a0b755f59844c862affc88d2496ceac7a1a3d3659" + url: "https://pub.dev" + source: hosted + version: "0.3.11" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: "041602214e3ec5a02ba85c08fe8e381aa25ac5367db17d03fbb6d22d851d4bba" + url: "https://pub.dev" + source: hosted + version: "11.0.0" + analyzer_plugin: + dependency: transitive + description: + name: analyzer_plugin + sha256: "06d68a8c9e7302fa44c45aba77d792b6926430a47e0cf82abf6b90436a70d9f4" + url: "https://pub.dev" + source: hosted + version: "0.14.5" + android_file_picker: + dependency: transitive + description: + name: android_file_picker + sha256: "665a5a57dfca27f91a715d300e4852a784f9f98e503dcff281bec9afb55767be" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + ansicolor: + dependency: transitive + description: + name: ansicolor + sha256: "50e982d500bc863e1d703448afdbf9e5a72eb48840a4f766fa361ffd6877055f" + url: "https://pub.dev" + source: hosted + version: "2.0.3" + archive: + dependency: "direct main" + description: + name: archive + sha256: ace891da0862b0e4cabbb064ee3fd87b2728b898949fdb366d83fe98342c9f19 + url: "https://pub.dev" + source: hosted + version: "4.2.0" + args: + dependency: transitive + description: + name: args + sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 + url: "https://pub.dev" + source: hosted + version: "2.7.0" + asn1lib: + dependency: transitive + description: + name: asn1lib + sha256: "9a8f69025044eb466b9b60ef3bc3ac99b4dc6c158ae9c56d25eeccf5bc56d024" + url: "https://pub.dev" + source: hosted + version: "1.6.5" + async: + dependency: "direct main" + description: + name: async + sha256: e2eb0491ba5ddb6177742d2da23904574082139b07c1e33b8503b9f46f3e1a37 + url: "https://pub.dev" + source: hosted + version: "2.13.1" + audio_session: + dependency: transitive + description: + name: audio_session + sha256: f9e7711a0e24ca8b40f5d7ac374c3c6e55016f3157912badd18199cdbbca5c4d + url: "https://pub.dev" + source: hosted + version: "0.2.4" + badges: + dependency: "direct main" + description: + name: badges + sha256: cf1c88fb3777df69ccd630b80de5267f54efa4a39381b0404a7c03d56cb7c041 + url: "https://pub.dev" + source: hosted + version: "3.2.0" + barbecue: + dependency: transitive + description: + name: barbecue + sha256: e3a0afaf9005e466887d6c87411a2ddd8d72fc46db3caabf278ee600f1e2f92c + url: "https://pub.dev" + source: hosted + version: "0.4.0" + base58check: + dependency: transitive + description: + name: base58check + sha256: "6c300dfc33e598d2fe26319e13f6243fea81eaf8204cb4c6b69ef20a625319a5" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + blurhash_dart: + dependency: "direct main" + description: + name: blurhash_dart + sha256: "43955b6c2e30a7d440028d1af0fa185852f3534b795cc6eb81fbf397b464409f" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + build_cli_annotations: + dependency: transitive + description: + name: build_cli_annotations + sha256: e563c2e01de8974566a1998410d3f6f03521788160a02503b0b1f1a46c7b3d95 + url: "https://pub.dev" + source: hosted + version: "2.1.1" + canonical_json: + dependency: transitive + description: + name: canonical_json + sha256: "618db0b1ea4238a3ef2f325908beee6269550d73b69dc5220456b75ce3cec072" + url: "https://pub.dev" + source: hosted + version: "1.1.3" + change_case: + dependency: transitive + description: + name: change_case + sha256: e41ef3df58521194ef8d7649928954805aeb08061917cf658322305e61568003 + url: "https://pub.dev" + source: hosted + version: "2.2.0" + characters: + dependency: transitive + description: + name: characters + sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b + url: "https://pub.dev" + source: hosted + version: "1.4.1" + charcode: + dependency: transitive + description: + name: charcode + sha256: fb0f1107cac15a5ea6ef0a6ef71a807b9e4267c713bb93e00e92d737cc8dbd8a + url: "https://pub.dev" + source: hosted + version: "1.4.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f" + url: "https://pub.dev" + source: hosted + version: "2.0.4" + chewie: + dependency: "direct main" + description: + name: chewie + sha256: "507f7dbcb2018f45ea6297fbbc0c47a3dc51432779d32495e97a06c4bc9f728c" + url: "https://pub.dev" + source: hosted + version: "1.15.0" + cli_config: + dependency: transitive + description: + name: cli_config + sha256: ac20a183a07002b700f0c25e61b7ee46b23c309d76ab7b7640a028f18e4d99ec + url: "https://pub.dev" + source: hosted + version: "0.2.0" + cli_util: + dependency: transitive + description: + name: cli_util + sha256: ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c + url: "https://pub.dev" + source: hosted + version: "0.4.2" + clock: + dependency: transitive + description: + name: clock + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b + url: "https://pub.dev" + source: hosted + version: "1.1.2" + code_assets: + dependency: transitive + description: + name: code_assets + sha256: "83ccdaa064c980b5596c35dd64a8d3ecc68620174ab9b90b6343b753aa721687" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + collection: + dependency: "direct main" + description: + name: collection + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" + url: "https://pub.dev" + source: hosted + version: "1.19.1" + colorize: + dependency: transitive + description: + name: colorize + sha256: "584746cd6ba1cba0633b6720f494fe6f9601c4170f0666c1579d2aa2a61071ba" + url: "https://pub.dev" + source: hosted + version: "3.0.0" + connectivity_plus: + dependency: transitive + description: + name: connectivity_plus + sha256: "762c99f890ca8bf87f7337236f99edd42793843bc6c3631da294a76653a54bd0" + url: "https://pub.dev" + source: hosted + version: "7.3.1" + connectivity_plus_platform_interface: + dependency: transitive + description: + name: connectivity_plus_platform_interface + sha256: "3c09627c536d22fd24691a905cdd8b14520de69da52c7a97499c8be5284a32ed" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + convert: + dependency: transitive + description: + name: convert + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 + url: "https://pub.dev" + source: hosted + version: "3.1.2" + coverage: + dependency: transitive + description: + name: coverage + sha256: "956a3de0725ca232ad353565a8290d3357592bf4250f6f298a185e2d949c5d3d" + url: "https://pub.dev" + source: hosted + version: "1.15.1" + crop_image: + dependency: "direct main" + description: + name: crop_image + sha256: "27cbce1685a595efee62caab81c98b49b636f765c1da86353f58f5b2bf2775d8" + url: "https://pub.dev" + source: hosted + version: "1.0.17" + cross_file: + dependency: "direct main" + description: + name: cross_file + sha256: "92c9c43c383bfa1c32079d3bc492d55d6d4318044b7b47edaff8971cbb555c51" + url: "https://pub.dev" + source: hosted + version: "0.3.5+4" + crypto: + dependency: transitive + description: + name: crypto + sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf + url: "https://pub.dev" + source: hosted + version: "3.0.7" + csslib: + dependency: transitive + description: + name: csslib + sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" + url: "https://pub.dev" + source: hosted + version: "1.0.2" + cupertino_icons: + dependency: transitive + description: + name: cupertino_icons + sha256: "41e005c33bd814be4d3096aff55b1908d419fde52ca656c8c47719ec745873cd" + url: "https://pub.dev" + source: hosted + version: "1.0.9" + cupertino_ui: + dependency: "direct main" + description: + name: cupertino_ui + sha256: "2137c0d41f3b62cc4d3d2495e6c354bd6b6133cd21c6bb155736cc31dbd49a11" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + dart_code_linter: + dependency: "direct dev" + description: + name: dart_code_linter + sha256: c5731302467ec63afdffde430f5a23312ff638711076b7230d50747247366824 + url: "https://pub.dev" + source: hosted + version: "4.3.0" + dart_earcut: + dependency: transitive + description: + name: dart_earcut + sha256: e485001bfc05dcbc437d7bfb666316182e3522d4c3f9668048e004d0eb2ce43b + url: "https://pub.dev" + source: hosted + version: "1.2.0" + dart_jsonwebtoken: + dependency: transitive + description: + name: dart_jsonwebtoken + sha256: ad84e60181696513d04d5f2078e0bbc20365b911f46f647797317414bdc88fbe + url: "https://pub.dev" + source: hosted + version: "3.4.1" + dart_polylabel2: + dependency: transitive + description: + name: dart_polylabel2 + sha256: "7eeab15ce72894e4bdba6a8765712231fc81be0bd95247de4ad9966abc57adc6" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + dart_style: + dependency: transitive + description: + name: dart_style + sha256: "29f7ecc274a86d32920b1d9cfc7502fa87220da41ec60b55f329559d5732e2b2" + url: "https://pub.dev" + source: hosted + version: "3.1.7" + dart_webrtc: + dependency: transitive + description: + name: dart_webrtc + sha256: f6d615bddea5e458ce180a914f3055c234ffb52fb7397a51b3491e76d6d7edb2 + url: "https://pub.dev" + source: hosted + version: "1.8.1" + dbus: + dependency: transitive + description: + name: dbus + sha256: a48d5da28e89bd02196e80d81ed8d7954923d00a0f4a68cc20b575038f023383 + url: "https://pub.dev" + source: hosted + version: "0.7.15" + desktop_drop: + dependency: "direct main" + description: + name: desktop_drop + sha256: "47ded09c85909edfed644fd4cbb5051b040d0aed5c79e7e062ea4b3b7156dbe4" + url: "https://pub.dev" + source: hosted + version: "0.8.4" + desktop_webview_window: + dependency: transitive + description: + name: desktop_webview_window + sha256: b6fdae2cbf9571879b1761c12f27facaf82e22d0bdc74d049907c2a09a432957 + url: "https://pub.dev" + source: hosted + version: "0.3.0" + device_info_plus: + dependency: "direct main" + description: + name: device_info_plus + sha256: "0891702f96b2e465fe567b7ec448380e6b1c14f60af552a8536d9f583b6b8442" + url: "https://pub.dev" + source: hosted + version: "13.2.0" + device_info_plus_platform_interface: + dependency: transitive + description: + name: device_info_plus_platform_interface + sha256: "04b173a92e2d9161dfead145667037c8d834db725ce2e7b942bfe18fd2f45a46" + url: "https://pub.dev" + source: hosted + version: "8.1.0" + dynamic_color: + dependency: "direct main" + description: + name: dynamic_color + sha256: "869b3bce0100eb519768ecd71c0111f0b5ea679f5f62e1f59c49d80067e730c5" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + emoji_picker_flutter: + dependency: "direct main" + description: + name: emoji_picker_flutter + sha256: "50f4da413a3dc5d2f59f2b0835ab3b3cce76c0779eb275058213506e6709503b" + url: "https://pub.dev" + source: hosted + version: "4.5.4" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" + url: "https://pub.dev" + source: hosted + version: "1.3.3" + ffi: + dependency: transitive + description: + name: ffi + sha256: "6d7fd89431262d8f3125e81b50d3847a091d846eafcd4fdb88dd06f36d705a45" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + ffi_leak_tracker: + dependency: transitive + description: + name: ffi_leak_tracker + sha256: "4093d4ef9ca06ffe2786e73bfb25e22aa92112b9bb4ec941f11e3e6b61489a97" + url: "https://pub.dev" + source: hosted + version: "0.1.2" + file: + dependency: transitive + description: + name: file + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 + url: "https://pub.dev" + source: hosted + version: "7.0.1" + file_picker: + dependency: "direct main" + description: + name: file_picker + sha256: afbaa8015d9efabd224f41084ed9fdeddfa65389ebd7cd3a9eb1476aca66b46d + url: "https://pub.dev" + source: hosted + version: "12.0.0" + file_picker_darwin: + dependency: transitive + description: + name: file_picker_darwin + sha256: "5d87d156c1d63920447a662b7117d3498c67e3444a44d2cb01ed955d6efa62ef" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + file_picker_linux: + dependency: transitive + description: + name: file_picker_linux + sha256: "93d3f62f97c657053e7b184fe0f5e22347d85067c053640a30b1ac8ad7844e3b" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + file_picker_platform_interface: + dependency: transitive + description: + name: file_picker_platform_interface + sha256: "9e7a7e01e179929241f0afeb2c8c69ac95e29e17c0abea36ed193881c6bef90c" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + file_picker_web: + dependency: transitive + description: + name: file_picker_web + sha256: f1af38b3c91fafe0ca97f659b5c6818a057473ef09bb8b722f9f3f5364aa7eed + url: "https://pub.dev" + source: hosted + version: "3.0.1" + file_selector: + dependency: "direct main" + description: + name: file_selector + sha256: bd15e43e9268db636b53eeaca9f56324d1622af30e5c34d6e267649758c84d9a + url: "https://pub.dev" + source: hosted + version: "1.1.0" + file_selector_android: + dependency: transitive + description: + name: file_selector_android + sha256: "6a26687fa65cbc28a5345c7ae6f227e89f0b47740978a4c475b1a625da7a331b" + url: "https://pub.dev" + source: hosted + version: "0.5.2+8" + file_selector_ios: + dependency: transitive + description: + name: file_selector_ios + sha256: e2ecf2885c121691ce13b60db3508f53c01f869fb6e8dc5c1cfa771e4c46aeca + url: "https://pub.dev" + source: hosted + version: "0.5.3+5" + file_selector_linux: + dependency: transitive + description: + name: file_selector_linux + sha256: "2567f398e06ac72dcf2e98a0c95df2a9edd03c2c2e0cacd4780f20cdf56263a0" + url: "https://pub.dev" + source: hosted + version: "0.9.4" + file_selector_macos: + dependency: transitive + description: + name: file_selector_macos + sha256: "5e0bbe9c312416f1787a68259ea1505b52f258c587f12920422671807c4d618a" + url: "https://pub.dev" + source: hosted + version: "0.9.5" + file_selector_platform_interface: + dependency: transitive + description: + name: file_selector_platform_interface + sha256: "35e0bd61ebcdb91a3505813b055b09b79dfdc7d0aee9c09a7ba59ae4bb13dc85" + url: "https://pub.dev" + source: hosted + version: "2.7.0" + file_selector_web: + dependency: transitive + description: + name: file_selector_web + sha256: "73181fbc5257776d8ecaa6a94ab3c8e920ad143b9132a6d984a9271dfc6928d3" + url: "https://pub.dev" + source: hosted + version: "0.9.5" + file_selector_windows: + dependency: transitive + description: + name: file_selector_windows + sha256: "62197474ae75893a62df75939c777763d39c2bc5f73ce5b88497208bc269abfd" + url: "https://pub.dev" + source: hosted + version: "0.9.3+5" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be + url: "https://pub.dev" + source: hosted + version: "1.1.1" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_callkit_incoming: + dependency: "direct main" + description: + name: flutter_callkit_incoming + sha256: a7ca78008056e2e5031f728ad9707eb6c691c5058c3fa2d8488cbcaa93a96341 + url: "https://pub.dev" + source: hosted + version: "3.1.5" + flutter_driver: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + flutter_foreground_task: + dependency: "direct main" + description: + name: flutter_foreground_task + sha256: "6aea09d5539f8e21499185edd2e8d4998daf5d5eaba3db70edc682925287d96f" + url: "https://pub.dev" + source: hosted + version: "11.0.1" + flutter_launcher_icons: + dependency: "direct dev" + description: + name: flutter_launcher_icons + sha256: "10f13781741a2e3972126fae08393d3c4e01fa4cd7473326b94b72cf594195e7" + url: "https://pub.dev" + source: hosted + version: "0.14.4" + flutter_linkify: + dependency: "direct main" + description: + name: flutter_linkify + sha256: "74669e06a8f358fee4512b4320c0b80e51cffc496607931de68d28f099254073" + url: "https://pub.dev" + source: hosted + version: "6.0.0" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: "3105dc8492f6183fb076ccf1f351ac3d60564bff92e20bfc4af9cc1651f4e7e1" + url: "https://pub.dev" + source: hosted + version: "6.0.0" + flutter_local_notifications: + dependency: "direct main" + description: + name: flutter_local_notifications + sha256: "1447ba911c60f2ba3f25dae1af151ec187162566b0f57e37771bf0b400f013ad" + url: "https://pub.dev" + source: hosted + version: "22.3.0" + flutter_local_notifications_linux: + dependency: transitive + description: + name: flutter_local_notifications_linux + sha256: "9ca97e63776f29ab1b955725c09999fc2c150523269db150c39274f2a43c5a8b" + url: "https://pub.dev" + source: hosted + version: "8.0.1" + flutter_local_notifications_platform_interface: + dependency: transitive + description: + name: flutter_local_notifications_platform_interface + sha256: "43c3761d916c9bd3d5c7ebbc44d82f4990329840c0c5d62ad5260cc1b5d399bd" + url: "https://pub.dev" + source: hosted + version: "12.2.0" + flutter_local_notifications_web: + dependency: transitive + description: + name: flutter_local_notifications_web + sha256: "516afaf97a2d1e67a036c6617321b00d205d72f7a67b6eccf936cd565f985878" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + flutter_local_notifications_windows: + dependency: transitive + description: + name: flutter_local_notifications_windows + sha256: "6f43bdd03b171b7a90f22647506fea33e2bb12294b7c7c7a3d690e960a382945" + url: "https://pub.dev" + source: hosted + version: "3.1.1" + flutter_localizations: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_map: + dependency: "direct main" + description: + name: flutter_map + sha256: "9bbe5472f66ae648d2ca2efbce97fcaa04e71261fabd3e062f26728222d7f767" + url: "https://pub.dev" + source: hosted + version: "8.3.2" + flutter_new_badger: + dependency: "direct main" + description: + name: flutter_new_badger + sha256: "586d4ea87d687d8e2bb3e9972381b4b0bedcd0b2b9fd9d13263dfd3398740746" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + flutter_plugin_android_lifecycle: + dependency: transitive + description: + name: flutter_plugin_android_lifecycle + sha256: "3854fe5e3bff0b113c658f260b90c95dea17c92db0f2addeac2e343dd9969785" + url: "https://pub.dev" + source: hosted + version: "2.0.35" + flutter_rust_bridge: + dependency: transitive + description: + name: flutter_rust_bridge + sha256: ec69331e2335ab4d456c0a9fc700892c2c85b72b9c0cb39df3ecfe8833d5d5c8 + url: "https://pub.dev" + source: hosted + version: "2.13.0" + flutter_secure_storage: + dependency: "direct main" + description: + name: flutter_secure_storage + sha256: "15e8c8fe269fdf7d469b23008ab3df521c8b826ed345820532364c31bdebace6" + url: "https://pub.dev" + source: hosted + version: "11.0.0" + flutter_secure_storage_darwin: + dependency: transitive + description: + name: flutter_secure_storage_darwin + sha256: ac6d76a752de0cd738334eb4b21743fc4943f449f5b6e308f18838b048c02ac0 + url: "https://pub.dev" + source: hosted + version: "0.4.0" + flutter_secure_storage_linux: + dependency: transitive + description: + name: flutter_secure_storage_linux + sha256: a5f35ddab43cf5c8215d2feb4ce1957851f28c5c37e6f04335066a0602087bf5 + url: "https://pub.dev" + source: hosted + version: "3.0.1" + flutter_secure_storage_platform_interface: + dependency: transitive + description: + name: flutter_secure_storage_platform_interface + sha256: "8ceea1223bee3c6ac1a22dabd8feefc550e4729b3675de4b5900f55afcb435d6" + url: "https://pub.dev" + source: hosted + version: "2.0.1" + flutter_secure_storage_web: + dependency: transitive + description: + name: flutter_secure_storage_web + sha256: "073a62b3aeb866ab4ce795f960413948e51e5a42a9b0c8333b6daf5bb3208a1c" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + flutter_secure_storage_windows: + dependency: transitive + description: + name: flutter_secure_storage_windows + sha256: "471951813a97006d899db4948acc654a4f28c440083ea08178935ce20b173ec1" + url: "https://pub.dev" + source: hosted + version: "4.2.2" + flutter_shortcuts_new: + dependency: "direct main" + description: + name: flutter_shortcuts_new + sha256: "16ee1c8a9bc9586b5117ebb774a8ff6b396f856743e97251eb483c4dc5769d7f" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + flutter_vodozemac: + dependency: "direct main" + description: + name: flutter_vodozemac + sha256: "209e7661da113a5f889ae55d574c48f245145def64df9a9fcac04d147e6f9d4e" + url: "https://pub.dev" + source: hosted + version: "0.8.1" + flutter_web_auth_2: + dependency: "direct main" + description: + name: flutter_web_auth_2 + sha256: a7655829251ee63aae64a748f8512f36670d8eba4657b0055cdf5ef304a9d164 + url: "https://pub.dev" + source: hosted + version: "5.1.0" + flutter_web_auth_2_platform_interface: + dependency: transitive + description: + name: flutter_web_auth_2_platform_interface + sha256: ba0fbba55bffb47242025f96852ad1ffba34bc451568f56ef36e613612baffab + url: "https://pub.dev" + source: hosted + version: "5.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + flutter_webrtc: + dependency: "direct main" + description: + name: flutter_webrtc + sha256: e997161d7da3adedd3d430691b20931b0b4d96fa48bb60938d9ba0bf6fca98be + url: "https://pub.dev" + source: hosted + version: "1.6.0" + frontend_server_client: + dependency: transitive + description: + name: frontend_server_client + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 + url: "https://pub.dev" + source: hosted + version: "4.0.0" + fuchsia_remote_debug_protocol: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + geoclue: + dependency: transitive + description: + name: geoclue + sha256: c2a998c77474fc57aa00c6baa2928e58f4b267649057a1c76738656e9dbd2a7f + url: "https://pub.dev" + source: hosted + version: "0.1.1" + geolocator: + dependency: "direct main" + description: + name: geolocator + sha256: e146a6d63776582651e97a79cbe459f8e1211b100101fadcd84db83361fa599f + url: "https://pub.dev" + source: hosted + version: "14.0.3" + geolocator_android: + dependency: transitive + description: + name: geolocator_android + sha256: "86ea1654e4f61ff51466848e91c116b422d6010ea269fda0fbe1af7e9e742ce1" + url: "https://pub.dev" + source: hosted + version: "5.0.3" + geolocator_apple: + dependency: transitive + description: + name: geolocator_apple + sha256: "853803d6bb1713c094e935b4a5ae5f19c0308acf81da13fa9ff84fb4c70c0b73" + url: "https://pub.dev" + source: hosted + version: "2.3.14" + geolocator_linux: + dependency: transitive + description: + name: geolocator_linux + sha256: "3da7420f11c3496511a5bd3c18fd67b88e5659f12e46b7ce00a788f6996e850a" + url: "https://pub.dev" + source: hosted + version: "0.2.6" + geolocator_platform_interface: + dependency: transitive + description: + name: geolocator_platform_interface + sha256: cdb082e4f048b69da244117b7914cc60d2a8897546ffaa4f2529c786ded7aee2 + url: "https://pub.dev" + source: hosted + version: "4.2.8" + geolocator_web: + dependency: transitive + description: + name: geolocator_web + sha256: "19e485a0f8d6a88abcf9c53cba3a4105e14b7435ed8ac1c108c067b938fe8429" + url: "https://pub.dev" + source: hosted + version: "4.1.4" + geolocator_windows: + dependency: transitive + description: + name: geolocator_windows + sha256: "175435404d20278ffd220de83c2ca293b73db95eafbdc8131fe8609be1421eb6" + url: "https://pub.dev" + source: hosted + version: "0.2.5" + glob: + dependency: transitive + description: + name: glob + sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de + url: "https://pub.dev" + source: hosted + version: "2.1.3" + go_router: + dependency: "direct main" + description: + name: go_router + sha256: "2e7fcb9ac4d52ec06cd940552f12e66ee71fccbcadb09a067cb9fe20462b5bf3" + url: "https://pub.dev" + source: hosted + version: "18.0.0" + gsettings: + dependency: transitive + description: + name: gsettings + sha256: "1b0ce661f5436d2db1e51f3c4295a49849f03d304003a7ba177d01e3a858249c" + url: "https://pub.dev" + source: hosted + version: "0.2.8" + handy_window: + dependency: "direct main" + description: + name: handy_window + sha256: "06cc2747607022dbcea54b9b863db0962d34d606f998831a9b05a551c5184462" + url: "https://pub.dev" + source: hosted + version: "0.4.2" + highlight: + dependency: "direct main" + description: + name: highlight + sha256: "5353a83ffe3e3eca7df0abfb72dcf3fa66cc56b953728e7113ad4ad88497cf21" + url: "https://pub.dev" + source: hosted + version: "0.7.0" + hooks: + dependency: transitive + description: + name: hooks + sha256: "025f060e86d2d4c3c47b56e33caf7f93bf9283340f26d23424ebcfccf34f621e" + url: "https://pub.dev" + source: hosted + version: "1.0.3" + html: + dependency: "direct main" + description: + name: html + sha256: "43b67b8f43321ab066817dfac5619596c98bb1b61624e77203bb4351785f9699" + url: "https://pub.dev" + source: hosted + version: "0.15.7" + html_unescape: + dependency: transitive + description: + name: html_unescape + sha256: "15362d7a18f19d7b742ef8dcb811f5fd2a2df98db9f80ea393c075189e0b61e3" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + http: + dependency: "direct main" + description: + name: http + sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412" + url: "https://pub.dev" + source: hosted + version: "1.6.0" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8 + url: "https://pub.dev" + source: hosted + version: "3.2.2" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + url: "https://pub.dev" + source: hosted + version: "4.1.2" + image: + dependency: "direct main" + description: + name: image + sha256: "1976370a4df3091bb0f72409c187ad1f9132a818bc6b95ca59c0bae1c75c688e" + url: "https://pub.dev" + source: hosted + version: "4.9.2" + image_picker: + dependency: "direct main" + description: + name: image_picker + sha256: d8402284df184bc05f4a2210c6c23983b0720f4cd87cbd05c5390a78af602667 + url: "https://pub.dev" + source: hosted + version: "1.2.3" + image_picker_android: + dependency: transitive + description: + name: image_picker_android + sha256: "6f3a1995eafb000333174fae92202622033b0ee7fd917a6cd3730295264df84a" + url: "https://pub.dev" + source: hosted + version: "0.8.13+19" + image_picker_for_web: + dependency: transitive + description: + name: image_picker_for_web + sha256: "66257a3191ab360d23a55c8241c91a6e329d31e94efa7be9cf7a212e65850214" + url: "https://pub.dev" + source: hosted + version: "3.1.1" + image_picker_ios: + dependency: transitive + description: + name: image_picker_ios + sha256: b9c4a438a9ff4f60808c9cf0039b93a42bb6c2211ef6ebb647394b2b3fa84588 + url: "https://pub.dev" + source: hosted + version: "0.8.13+6" + image_picker_linux: + dependency: transitive + description: + name: image_picker_linux + sha256: "1f81c5f2046b9ab724f85523e4af65be1d47b038160a8c8deed909762c308ed4" + url: "https://pub.dev" + source: hosted + version: "0.2.2" + image_picker_macos: + dependency: transitive + description: + name: image_picker_macos + sha256: "86f0f15a309de7e1a552c12df9ce5b59fe927e71385329355aec4776c6a8ec91" + url: "https://pub.dev" + source: hosted + version: "0.2.2+1" + image_picker_platform_interface: + dependency: transitive + description: + name: image_picker_platform_interface + sha256: "567e056716333a1647c64bb6bd873cff7622233a5c3f694be28a583d4715690c" + url: "https://pub.dev" + source: hosted + version: "2.11.1" + image_picker_windows: + dependency: transitive + description: + name: image_picker_windows + sha256: d248c86554a72b5495a31c56f060cf73a41c7ff541689327b1a7dbccc33adfae + url: "https://pub.dev" + source: hosted + version: "0.2.2" + integration_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + intl: + dependency: "direct main" + description: + name: intl + sha256: "1ca20c894b1717686a2319b8548763d812bc0aabdac580420a44c5178c57a867" + url: "https://pub.dev" + source: hosted + version: "0.20.3" + io: + dependency: transitive + description: + name: io + sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b + url: "https://pub.dev" + source: hosted + version: "1.0.5" + jni: + dependency: transitive + description: + name: jni + sha256: c2230682d5bc2362c1c9e8d3c7f406d9cbba23ab3f2e203a025dd47e0fb2e68f + url: "https://pub.dev" + source: hosted + version: "1.0.0" + jni_flutter: + dependency: transitive + description: + name: jni_flutter + sha256: "8b59e590786050b1cd866677dddaf76b1ade5e7bc751abe04b86e84d379d3ba6" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.dev" + source: hosted + version: "0.6.7" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: "2a743920d81b7910627f68ee2c9ac1fc0bfee32b9fc3403587d7c6791ca12f80" + url: "https://pub.dev" + source: hosted + version: "4.12.0" + just_audio: + dependency: "direct main" + description: + name: just_audio + sha256: e60aa97b233ddea025e13dfac59195207f528fa5e9e4a4a49a8c0766701e5fe6 + url: "https://pub.dev" + source: hosted + version: "0.10.6" + just_audio_media_kit: + dependency: "direct main" + description: + name: just_audio_media_kit + sha256: f3cf04c3a50339709e87e90b4e841eef4364ab4be2bdbac0c54cc48679f84d23 + url: "https://pub.dev" + source: hosted + version: "2.1.0" + just_audio_platform_interface: + dependency: transitive + description: + name: just_audio_platform_interface + sha256: "2532c8d6702528824445921c5ff10548b518b13f808c2e34c2fd54793b999a6a" + url: "https://pub.dev" + source: hosted + version: "4.6.0" + just_audio_web: + dependency: transitive + description: + name: just_audio_web + sha256: "6ba8a2a7e87d57d32f0f7b42856ade3d6a9fbe0f1a11fabae0a4f00bb73f0663" + url: "https://pub.dev" + source: hosted + version: "0.4.16" + latlong2: + dependency: "direct main" + description: + name: latlong2 + sha256: "84b776b100a84a684a0aaa3fa4dc2c9b1931c658de533701ee4e09bfa991f8dc" + url: "https://pub.dev" + source: hosted + version: "0.10.1" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" + url: "https://pub.dev" + source: hosted + version: "11.0.2" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" + url: "https://pub.dev" + source: hosted + version: "3.0.10" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + license_checker: + dependency: "direct dev" + description: + name: license_checker + sha256: "8a35b6946e50811e070ac6fe4717ee431cd1a334e080df2116956b54b0bb0d0f" + url: "https://pub.dev" + source: hosted + version: "1.6.2" + light_compressor_v2: + dependency: "direct main" + description: + name: light_compressor_v2 + sha256: "3f628c420ff5bdb2fa87956bb4cf38c6d0323fad6584cb96ead4fbc651048035" + url: "https://pub.dev" + source: hosted + version: "1.9.1" + linkify: + dependency: transitive + description: + name: linkify + sha256: "4139ea77f4651ab9c315b577da2dd108d9aa0bd84b5d03d33323f1970c645832" + url: "https://pub.dev" + source: hosted + version: "5.0.0" + lints: + dependency: transitive + description: + name: lints + sha256: "12f842a479589fea194fe5c5a3095abc7be0c1f2ddfa9a0e76aed1dbd26a87df" + url: "https://pub.dev" + source: hosted + version: "6.1.0" + livekit_client: + dependency: "direct main" + description: + name: livekit_client + sha256: "165d04b06d1d828ae85dc7ef5ffcbebf8d50f2cc7b02f3b8955fbeed96828c04" + url: "https://pub.dev" + source: hosted + version: "2.11.0" + local_auth: + dependency: "direct main" + description: + name: local_auth + sha256: ecf24edf2283c509ecd217e3595f6f71034b68888d28ad1dae6bfa0857b816ac + url: "https://pub.dev" + source: hosted + version: "3.0.2" + local_auth_android: + dependency: transitive + description: + name: local_auth_android + sha256: fdb936d59ab945c7af297defd67bd1ed87b11b6db1bc16d01e94677a8f1c38ec + url: "https://pub.dev" + source: hosted + version: "2.0.9" + local_auth_darwin: + dependency: transitive + description: + name: local_auth_darwin + sha256: a8c3d4e17454111f7fd31ff72a31222359f6059f7fe956c2dcfe0f88f49826d4 + url: "https://pub.dev" + source: hosted + version: "2.0.3" + local_auth_platform_interface: + dependency: transitive + description: + name: local_auth_platform_interface + sha256: f98b8e388588583d3f781f6806e4f4c9f9e189d898d27f0c249b93a1973dd122 + url: "https://pub.dev" + source: hosted + version: "1.1.0" + local_auth_windows: + dependency: transitive + description: + name: local_auth_windows + sha256: be12c5b8ba5e64896983123655c5f67d2484ecfcc95e367952ad6e3bff94cb16 + url: "https://pub.dev" + source: hosted + version: "2.0.1" + logger: + dependency: transitive + description: + name: logger + sha256: "25aee487596a6257655a1e091ec2ae66bc30e7af663592cc3a27e6591e05035c" + url: "https://pub.dev" + source: hosted + version: "2.7.0" + logging: + dependency: transitive + description: + name: logging + sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 + url: "https://pub.dev" + source: hosted + version: "1.3.0" + lottie: + dependency: "direct main" + description: + name: lottie + sha256: "58dda9eee3f1b1fb9d490b0161635cffe93022b3b8ca0687e3df33a53620ead2" + url: "https://pub.dev" + source: hosted + version: "3.5.1" + managed_configurations: + dependency: "direct main" + description: + name: managed_configurations + sha256: ee67e1c75cfead3c8871e935c87d3e44d91b552a0a02e33e280aa957b01fe6b8 + url: "https://pub.dev" + source: hosted + version: "1.2.0" + markdown: + dependency: transitive + description: + name: markdown + sha256: ee85086ad7698b42522c6ad42fe195f1b9898e4d974a1af4576c1a3a176cada9 + url: "https://pub.dev" + source: hosted + version: "7.3.1" + matcher: + dependency: transitive + description: + name: matcher + sha256: "31bd099b47c10cd1aeb55146a2d46ce0277630ecef3f7dae54ad7873f36696cd" + url: "https://pub.dev" + source: hosted + version: "0.12.20" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b" + url: "https://pub.dev" + source: hosted + version: "0.13.0" + material_ui: + dependency: "direct main" + description: + name: material_ui + sha256: "7ba1ca315d50a004791dbab290417c52a61466d56db2822fe3c5c2994903110c" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + matrix: + dependency: "direct main" + description: + path: "." + ref: "krille/refactor-device-keys-list-storing" + resolved-ref: "1bb9a0e3d8902bba8bc26b3791f64c69e2c8f2b8" + url: "https://github.com/famedly/matrix-dart-sdk.git" + source: git + version: "12.0.1" + media_kit: + dependency: transitive + description: + name: media_kit + sha256: ae9e79597500c7ad6083a3c7b7b7544ddabfceacce7ae5c9709b0ec16a5d6643 + url: "https://pub.dev" + source: hosted + version: "1.2.6" + media_kit_libs_android_audio: + dependency: transitive + description: + name: media_kit_libs_android_audio + sha256: "8f8f9759e537e12d66f08bc4d5279eb1bb21a0ccc519ff3442c68a9f3b6dd68b" + url: "https://pub.dev" + source: hosted + version: "1.3.8" + media_kit_libs_audio: + dependency: "direct main" + description: + name: media_kit_libs_audio + sha256: "81bf506c234e81e3ec536ba72f8f700a928543c14c345220210cae0411636316" + url: "https://pub.dev" + source: hosted + version: "1.0.7" + media_kit_libs_ios_audio: + dependency: transitive + description: + name: media_kit_libs_ios_audio + sha256: "78ccf04e27d6b4ba00a355578ccb39b772f00d48269a6ac3db076edf2d51934f" + url: "https://pub.dev" + source: hosted + version: "1.1.4" + media_kit_libs_linux: + dependency: transitive + description: + name: media_kit_libs_linux + sha256: "2b473399a49ec94452c4d4ae51cfc0f6585074398d74216092bf3d54aac37ecf" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + media_kit_libs_macos_audio: + dependency: transitive + description: + name: media_kit_libs_macos_audio + sha256: "3be21844df98f286de32808592835073cdef2c1a10078bac135da790badca950" + url: "https://pub.dev" + source: hosted + version: "1.1.4" + media_kit_libs_windows_audio: + dependency: transitive + description: + name: media_kit_libs_windows_audio + sha256: c2fd558cc87b9d89a801141fcdffe02e338a3b21a41a18fbd63d5b221a1b8e53 + url: "https://pub.dev" + source: hosted + version: "1.0.9" + meta: + dependency: transitive + description: + name: meta + sha256: "307249ce4ff29d58a18e97f6345f539382eb9c9c29ecda628900f31de0443dd9" + url: "https://pub.dev" + source: hosted + version: "1.19.0" + mgrs_dart: + dependency: transitive + description: + name: mgrs_dart + sha256: "385e7168ecc77eb545220223c49eef8ab249da7bf57f22781c40a04d23fb196f" + url: "https://pub.dev" + source: hosted + version: "3.0.0" + mime: + dependency: "direct main" + description: + name: mime + sha256: bd47de35f07e27267e69c8c8b22edf9473bfee170a60d60fcc93730c5144b7f6 + url: "https://pub.dev" + source: hosted + version: "2.1.0" + mime_type: + dependency: transitive + description: + name: mime_type + sha256: d652b613e84dac1af28030a9fba82c0999be05b98163f9e18a0849c6e63838bb + url: "https://pub.dev" + source: hosted + version: "1.0.1" + native_imaging: + dependency: "direct main" + description: + name: native_imaging + sha256: "33efb2fb86f7e04f917969a5f61618b89765dd324a3683251d32349ff6338a2b" + url: "https://pub.dev" + source: hosted + version: "0.5.0" + native_toolchain_c: + dependency: transitive + description: + name: native_toolchain_c + sha256: "6ba77bb18063eebe9de401f5e6437e95e1438af0a87a3a39084fbd37c90df572" + url: "https://pub.dev" + source: hosted + version: "0.17.6" + native_toolchain_cmake: + dependency: transitive + description: + name: native_toolchain_cmake + sha256: de90e8952bad0684bdcff4d674c53d961f5cd1fdcf3a0255a669a35986c4ac1d + url: "https://pub.dev" + source: hosted + version: "0.2.7" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + nm: + dependency: transitive + description: + name: nm + sha256: "2c9aae4127bdc8993206464fcc063611e0e36e72018696cd9631023a31b24254" + url: "https://pub.dev" + source: hosted + version: "0.5.0" + node_preamble: + dependency: transitive + description: + name: node_preamble + sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db" + url: "https://pub.dev" + source: hosted + version: "2.0.2" + objective_c: + dependency: transitive + description: + name: objective_c + sha256: "100a1c87616ab6ed41ec263b083c0ef3261ee6cd1dc3b0f35f8ddfa4f996fe52" + url: "https://pub.dev" + source: hosted + version: "9.3.0" + ogg_caf_converter: + dependency: "direct main" + description: + name: ogg_caf_converter + sha256: "3faa20f7ae854d6eda233773756de3eddb6c8d4fdc6d0165da992ded95240818" + url: "https://pub.dev" + source: hosted + version: "0.1.4" + package_config: + dependency: transitive + description: + name: package_config + sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc + url: "https://pub.dev" + source: hosted + version: "2.2.0" + package_info_plus: + dependency: "direct main" + description: + name: package_info_plus + sha256: "127e1751e37ffb2ff4658beeaca77bad0c27bf5f932bd3a501c2296926d4b481" + url: "https://pub.dev" + source: hosted + version: "10.2.1" + package_info_plus_platform_interface: + dependency: transitive + description: + name: package_info_plus_platform_interface + sha256: db762cb2f4f25ee60fb6359773861b0f199e00b90d237bd85a76a1e806b46ef4 + url: "https://pub.dev" + source: hosted + version: "4.1.0" + pana: + dependency: transitive + description: + name: pana + sha256: "847ee5df6ac13fdc6c53d641095de1b25886c973d0b0f0469c73521ebe4602fa" + url: "https://pub.dev" + source: hosted + version: "0.23.12" + particles_network: + dependency: "direct main" + description: + name: particles_network + sha256: afa9c9c70d7f13dcb2a4059edde4b6baa3b9a69ab899712522cbbd68bbd59095 + url: "https://pub.dev" + source: hosted + version: "1.9.5" + pasteboard: + dependency: "direct main" + description: + name: pasteboard + sha256: fedbe8da188d2f713aa8b01260737342e6e1087534a3ab26e1a719f8d3e8f32f + url: "https://pub.dev" + source: hosted + version: "0.5.0" + path: + dependency: "direct main" + description: + name: path + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" + url: "https://pub.dev" + source: hosted + version: "1.9.1" + path_provider: + dependency: "direct main" + description: + name: path_provider + sha256: a7f4874f987173da295a61c181b8ee71dab59b332a486b391babf26a1b884825 + url: "https://pub.dev" + source: hosted + version: "2.1.6" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: "69cbd515a62b94d32a7944f086b2f82b4ac40a1d45bebfc00813a430ab2dabcd" + url: "https://pub.dev" + source: hosted + version: "2.3.1" + path_provider_foundation: + dependency: "direct main" + description: + name: path_provider_foundation + sha256: "2a376b7d6392d80cd3705782d2caa734ca4727776db0b6ec36ef3f1855197699" + url: "https://pub.dev" + source: hosted + version: "2.6.0" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: "58c2005f147315b11e9b4a7bc889cd5203e250cba8e3f012dae259b4972b5c16" + url: "https://pub.dev" + source: hosted + version: "2.2.2" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "484838772624c3a4b94f1e44a3e19897fee738f2d5c4ce448443b0417f7c9dda" + url: "https://pub.dev" + source: hosted + version: "2.1.3" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: "91bd59303e9f769f108f8df05e371341b15d59e995e6806aefab827b58336675" + url: "https://pub.dev" + source: hosted + version: "7.0.2" + platform: + dependency: transitive + description: + name: platform + sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" + url: "https://pub.dev" + source: hosted + version: "3.1.6" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + pointycastle: + dependency: transitive + description: + name: pointycastle + sha256: "92aa3841d083cc4b0f4709b5c74fd6409a3e6ba833ffc7dc6a8fee096366acf5" + url: "https://pub.dev" + source: hosted + version: "4.0.0" + pool: + dependency: transitive + description: + name: pool + sha256: "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d" + url: "https://pub.dev" + source: hosted + version: "1.5.2" + posix: + dependency: transitive + description: + name: posix + sha256: "185ef7606574f789b40f289c233efa52e96dead518aed988e040a10737febb07" + url: "https://pub.dev" + source: hosted + version: "6.5.0" + pretty_qr_code: + dependency: "direct main" + description: + name: pretty_qr_code + sha256: "474f8a4512113fba06f14a6ec9bbf42353b4e651d7a520e3096f2a9b6bbe7a8a" + url: "https://pub.dev" + source: hosted + version: "3.6.0" + process: + dependency: transitive + description: + name: process + sha256: c6248e4526673988586e8c00bb22a49210c258dc91df5227d5da9748ecf79744 + url: "https://pub.dev" + source: hosted + version: "5.0.5" + proj4dart: + dependency: transitive + description: + name: proj4dart + sha256: ddcedc1f7876e62717de43ab3491e2829bdad0b028261805f94aa080967e5859 + url: "https://pub.dev" + source: hosted + version: "3.0.0" + protobuf: + dependency: transitive + description: + name: protobuf + sha256: "75ec242d22e950bdcc79ee38dd520ce4ee0bc491d7fadc4ea47694604d22bf06" + url: "https://pub.dev" + source: hosted + version: "6.0.0" + provider: + dependency: "direct main" + description: + name: provider + sha256: "4e82183fa20e5ca25703ead7e05de9e4cceed1fbd1eadc1ac3cb6f565a09f272" + url: "https://pub.dev" + source: hosted + version: "6.1.5+1" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + pub_updater: + dependency: transitive + description: + name: pub_updater + sha256: "739a0161d73a6974c0675b864fb0cf5147305f7b077b7f03a58fa7a9ab3e7e7d" + url: "https://pub.dev" + source: hosted + version: "0.5.0" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" + url: "https://pub.dev" + source: hosted + version: "1.5.0" + punycode: + dependency: "direct main" + description: + name: punycode + sha256: "39b874cc1f78b94e57db17e74b3f2ba2a96e25c0bebdcc8a571614dccda0ff0c" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + qr: + dependency: transitive + description: + name: qr + sha256: "5a1d2586170e172b8a8c8470bbbffd5eb0cd38a66c0d77155ea138d3af3a4445" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + qr_code_scanner_plus: + dependency: "direct main" + description: + name: qr_code_scanner_plus + sha256: "20a1abc3d12e48ad1c58eb6f31cabed23cc29469c325e750d6e838613170c94b" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + qr_image: + dependency: "direct main" + description: + name: qr_image + sha256: c3cd2ac2c6cd6b14604c97b45c477b18988b6518f72120fa04418fc54e3b0d76 + url: "https://pub.dev" + source: hosted + version: "1.0.0" + random_string: + dependency: transitive + description: + name: random_string + sha256: "03b52435aae8cbdd1056cf91bfc5bf845e9706724dd35ae2e99fa14a1ef79d02" + url: "https://pub.dev" + source: hosted + version: "2.3.1" + receive_sharing_intent: + dependency: "direct main" + description: + name: receive_sharing_intent + sha256: ec76056e4d258ad708e76d85591d933678625318e411564dcb9059048ca3a593 + url: "https://pub.dev" + source: hosted + version: "1.8.1" + record: + dependency: "direct main" + description: + name: record + sha256: "82539d1372e23cf51375fdfcba084f39912bcbf9a953b75d56596691f8f11c0f" + url: "https://pub.dev" + source: hosted + version: "7.1.1" + record_android: + dependency: transitive + description: + name: record_android + sha256: "28f1108626a190e249b01ffa9f639070e31e5157474b64a5ae380bf36aec9559" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + record_ios: + dependency: transitive + description: + name: record_ios + sha256: "21d189f49a598af4697dac4cc9e48389ac0a1fb3e916622b5504a58d9b96313e" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + record_linux: + dependency: transitive + description: + name: record_linux + sha256: b7484fdaf1f6d291543b9cf615e78096662b02df68d7a4728b13f352bde58d27 + url: "https://pub.dev" + source: hosted + version: "2.1.1" + record_macos: + dependency: transitive + description: + name: record_macos + sha256: ced7495abf3d683e8a7dbe8fc96df8ea5722837a26f922b7cb7c5de11661bb46 + url: "https://pub.dev" + source: hosted + version: "2.1.1" + record_platform_interface: + dependency: transitive + description: + name: record_platform_interface + sha256: d94b37cadb8fe203e64b0e9893271c0b71b34f2550ee7fb0c6105d650e00c1f5 + url: "https://pub.dev" + source: hosted + version: "2.1.0" + record_use: + dependency: transitive + description: + name: record_use + sha256: "2551bd8eecfe95d14ae75f6021ad0248be5c27f138c2ec12fcb52b500b3ba1ed" + url: "https://pub.dev" + source: hosted + version: "0.6.0" + record_web: + dependency: transitive + description: + name: record_web + sha256: "7d75ed681b5bf40c3a9b51b6c105fe53705f752284d859d5f030ab5a2bfd49cf" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + record_windows: + dependency: transitive + description: + name: record_windows + sha256: "9cedfacee553a02b48977a5e1d74bf08a36cc5647eba56fb83e57da20552f443" + url: "https://pub.dev" + source: hosted + version: "2.2.2" + retry: + dependency: transitive + description: + name: retry + sha256: "822e118d5b3aafed083109c72d5f484c6dc66707885e07c0fbcb8b986bba7efc" + url: "https://pub.dev" + source: hosted + version: "3.1.2" + rxdart: + dependency: transitive + description: + name: rxdart + sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962" + url: "https://pub.dev" + source: hosted + version: "0.28.0" + safe_local_storage: + dependency: transitive + description: + name: safe_local_storage + sha256: "494b982d5edb71030650ea463d939670e91b232b588323dc75229d2c5f23e7b7" + url: "https://pub.dev" + source: hosted + version: "2.0.6" + safe_url_check: + dependency: transitive + description: + name: safe_url_check + sha256: "49a3e060a7869cbafc8f4845ca1ecbbaaa53179980a32f4fdfeab1607e90f41d" + url: "https://pub.dev" + source: hosted + version: "1.1.2" + screen_retriever: + dependency: transitive + description: + name: screen_retriever + sha256: ace919117a7520c13a50a6259e60c4a0d4cbe98809468792a91b5c5adada2aa6 + url: "https://pub.dev" + source: hosted + version: "0.2.2" + screen_retriever_linux: + dependency: transitive + description: + name: screen_retriever_linux + sha256: "7b52006a5ceae1f3d5af7f77188c3290d6e7d8ded16d99809bea84967c65c257" + url: "https://pub.dev" + source: hosted + version: "0.2.2" + screen_retriever_macos: + dependency: transitive + description: + name: screen_retriever_macos + sha256: a1489b99cce597c45a54b9aae1cd94c8d4705353b7e0bb2457a6e4de44e0ad8a + url: "https://pub.dev" + source: hosted + version: "0.2.2" + screen_retriever_platform_interface: + dependency: transitive + description: + name: screen_retriever_platform_interface + sha256: "94a5535277510a63184ca178ce12a1449bc0b38618879aa1c18bf57369c5064a" + url: "https://pub.dev" + source: hosted + version: "0.2.2" + screen_retriever_windows: + dependency: transitive + description: + name: screen_retriever_windows + sha256: dafc6922b0bfbf1d48cf3ccbf519b4fff47bdcb820da1728ea6db675fecc9324 + url: "https://pub.dev" + source: hosted + version: "0.2.2" + scroll_to_index: + dependency: "direct main" + description: + name: scroll_to_index + sha256: b707546e7500d9f070d63e5acf74fd437ec7eeeb68d3412ef7b0afada0b4f176 + url: "https://pub.dev" + source: hosted + version: "3.0.1" + sdp_transform: + dependency: transitive + description: + name: sdp_transform + sha256: "73e412a5279a5c2de74001535208e20fff88f225c9a4571af0f7146202755e45" + url: "https://pub.dev" + source: hosted + version: "0.3.2" + share_plus: + dependency: "direct main" + description: + name: share_plus + sha256: "34f00f9becd2743c1fb05363d624f9f70d37f7ccdcdda47450bc0b8c9d327b8c" + url: "https://pub.dev" + source: hosted + version: "13.3.0" + share_plus_platform_interface: + dependency: transitive + description: + name: share_plus_platform_interface + sha256: "365ef7379fc22507256adda3385152942ffce08935452bc972c2e52a0bebae41" + url: "https://pub.dev" + source: hosted + version: "7.2.0" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + sha256: c3025c5534b01739267eb7d76959bbc25a6d10f6988e1c2a3036940133dd10bf + url: "https://pub.dev" + source: hosted + version: "2.5.5" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: "0634e64bd719f89c012f392938e173521f535d3ecaf66558fa94a056d22b5cc7" + url: "https://pub.dev" + source: hosted + version: "2.4.27" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: "4e7eaffc2b17ba398759f1151415869a34771ba11ebbccd1b0145472a619a64f" + url: "https://pub.dev" + source: hosted + version: "2.5.6" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: "649dc798a33931919ea356c4305c2d1f81619ea6e92244070b520187b5140ef9" + url: "https://pub.dev" + source: hosted + version: "2.4.2" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019 + url: "https://pub.dev" + source: hosted + version: "2.4.3" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shelf: + dependency: transitive + description: + name: shelf + sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 + url: "https://pub.dev" + source: hosted + version: "1.4.2" + shelf_packages_handler: + dependency: transitive + description: + name: shelf_packages_handler + sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + shelf_static: + dependency: transitive + description: + name: shelf_static + sha256: c87c3875f91262785dade62d135760c2c69cb217ac759485334c5857ad89f6e3 + url: "https://pub.dev" + source: hosted + version: "1.1.3" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925" + url: "https://pub.dev" + source: hosted + version: "3.0.0" + simple_sparse_list: + dependency: transitive + description: + name: simple_sparse_list + sha256: aa648fd240fa39b49dcd11c19c266990006006de6699a412de485695910fbc1f + url: "https://pub.dev" + source: hosted + version: "0.1.4" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + slugify: + dependency: "direct main" + description: + name: slugify + sha256: b272501565cb28050cac2d96b7bf28a2d24c8dae359280361d124f3093d337c3 + url: "https://pub.dev" + source: hosted + version: "2.0.0" + source_map_stack_trace: + dependency: transitive + description: + name: source_map_stack_trace + sha256: c0713a43e323c3302c2abe2a1cc89aa057a387101ebd280371d6a6c9fa68516b + url: "https://pub.dev" + source: hosted + version: "2.1.2" + source_maps: + dependency: transitive + description: + name: source_maps + sha256: "190222579a448b03896e0ca6eca5998fa810fda630c1d65e2f78b3f638f54812" + url: "https://pub.dev" + source: hosted + version: "0.10.13" + source_span: + dependency: transitive + description: + name: source_span + sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab" + url: "https://pub.dev" + source: hosted + version: "1.10.2" + sqflite_common: + dependency: "direct main" + description: + name: sqflite_common + sha256: "5bf6a55c166e73bf651ba7ec3ed486e577620e3dc8f3a9c6a258a8031b624590" + url: "https://pub.dev" + source: hosted + version: "2.5.11" + sqflite_common_ffi: + dependency: "direct main" + description: + name: sqflite_common_ffi + sha256: "5ccd38136edb9beb3213f6927775d52db70dfdadcdb28dad1f625ca9f2b9824f" + url: "https://pub.dev" + source: hosted + version: "2.4.2" + sqlite3: + dependency: transitive + description: + name: sqlite3 + sha256: c73fd75df1332d76a6257f4823ae4df9c791f522b97e4a60cbcad214de1becf4 + url: "https://pub.dev" + source: hosted + version: "3.5.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" + url: "https://pub.dev" + source: hosted + version: "1.12.1" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" + url: "https://pub.dev" + source: hosted + version: "1.4.1" + string_validator: + dependency: transitive + description: + name: string_validator + sha256: "50dd8ecf91db6a732f4a851eeae81ee12406eedc62d0da72f2d91a04a2d10dd8" + url: "https://pub.dev" + source: hosted + version: "0.3.0" + swipe_to_action: + dependency: "direct main" + description: + name: swipe_to_action + sha256: "05289a2bff6a0227deeff382afa1c46643d1f077e678d78f76440e153ea1ef7d" + url: "https://pub.dev" + source: hosted + version: "0.3.0" + sync_http: + dependency: transitive + description: + name: sync_http + sha256: "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961" + url: "https://pub.dev" + source: hosted + version: "0.3.1" + synchronized: + dependency: transitive + description: + name: synchronized + sha256: "93b153dcb6a26dcddee6ca087dd634b53e38c10b5aa163e8e49501a776456153" + url: "https://pub.dev" + source: hosted + version: "3.4.1" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" + url: "https://pub.dev" + source: hosted + version: "1.2.2" + test: + dependency: transitive + description: + name: test + sha256: ca578dc12bb8b2f40b67b7d3bd2fac4f31c01a6ff7130a14e2597b919934507f + url: "https://pub.dev" + source: hosted + version: "1.31.1" + test_api: + dependency: transitive + description: + name: test_api + sha256: "2a122cbe059f8b610d3a5415f42e255b6c17b1f21eee1d960f31080237fb4f11" + url: "https://pub.dev" + source: hosted + version: "0.7.12" + test_core: + dependency: transitive + description: + name: test_core + sha256: d2e98ec12998368dc59ddd47ab709f2cd55acd6b66dc7db764455a44082f4bc5 + url: "https://pub.dev" + source: hosted + version: "0.6.18" + timezone: + dependency: transitive + description: + name: timezone + sha256: "981d1020d6ef8fe1e7b3de5054e5b25579ae7c403d7734adc508ffc47668e9cb" + url: "https://pub.dev" + source: hosted + version: "0.11.1" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + unicode: + dependency: transitive + description: + name: unicode + sha256: a6f7bcfc8ea1d5ce1f6c0b1c39117a9919f4953edd9fd7a64090a9796c499b57 + url: "https://pub.dev" + source: hosted + version: "1.1.9" + unifiedpush: + dependency: "direct main" + description: + name: unifiedpush + sha256: "8ed9767f750a1dc6159a77e2171641d0cb825dc87682d1ce1b8618689b79f58e" + url: "https://pub.dev" + source: hosted + version: "6.2.0" + unifiedpush_android: + dependency: transitive + description: + name: unifiedpush_android + sha256: "2e6684e0a1a39ad8d6c7bc0d197954d50686acb1b1a7614b18ab0e0126f5492a" + url: "https://pub.dev" + source: hosted + version: "3.4.1" + unifiedpush_linux: + dependency: transitive + description: + name: unifiedpush_linux + sha256: c062d5eedd1cec70bcd33270cc4e01ae0ff6501f33d471167c06b34a968adfeb + url: "https://pub.dev" + source: hosted + version: "1.0.0" + unifiedpush_platform_interface: + dependency: transitive + description: + name: unifiedpush_platform_interface + sha256: "83372bc8d794b8b12ef6993b518d7be907dcfc2191bdf6de0ece5c4445d89880" + url: "https://pub.dev" + source: hosted + version: "4.0.0" + unifiedpush_storage_interface: + dependency: transitive + description: + name: unifiedpush_storage_interface + sha256: b8d423a4695efc616aa21d8ab48fb5ef99d6288c68b56282b8faac1579ceabd9 + url: "https://pub.dev" + source: hosted + version: "1.0.0" + unifiedpush_ui: + dependency: "direct main" + description: + name: unifiedpush_ui + sha256: "1b36b2aa0bc6b61577e2661c1183bd3442969ecf77b4c78174796d324f66dd1d" + url: "https://pub.dev" + source: hosted + version: "0.2.0" + universal_html: + dependency: "direct main" + description: + name: universal_html + sha256: c0bcae5c733c60f26c7dfc88b10b0fd27cbcc45cb7492311cdaa6067e21c9cd4 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + universal_io: + dependency: transitive + description: + name: universal_io + sha256: f63cbc48103236abf48e345e07a03ce5757ea86285ed313a6a032596ed9301e2 + url: "https://pub.dev" + source: hosted + version: "2.3.1" + universal_platform: + dependency: transitive + description: + name: universal_platform + sha256: "64e16458a0ea9b99260ceb5467a214c1f298d647c659af1bff6d3bf82536b1ec" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + unorm_dart: + dependency: transitive + description: + name: unorm_dart + sha256: "0c69186b03ca6addab0774bcc0f4f17b88d4ce78d9d4d8f0619e30a99ead58e7" + url: "https://pub.dev" + source: hosted + version: "0.3.2" + uri_parser: + dependency: transitive + description: + name: uri_parser + sha256: "051c62e5f693de98ca9f130ee707f8916e2266945565926be3ff20659f7853ce" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + url_launcher: + dependency: "direct main" + description: + name: url_launcher + sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8 + url: "https://pub.dev" + source: hosted + version: "6.3.2" + url_launcher_android: + dependency: transitive + description: + name: url_launcher_android + sha256: b413d49b73867ac08dd2f9890efd3cc11f2a0e577618d50843440a1fb3776c32 + url: "https://pub.dev" + source: hosted + version: "6.3.32" + url_launcher_ios: + dependency: transitive + description: + name: url_launcher_ios + sha256: "580fe5dfb51671ae38191d316e027f6b76272b026370708c2d898799750a02b0" + url: "https://pub.dev" + source: hosted + version: "6.4.1" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + sha256: d5e14138b3bc193a0f63c10a53c94b91d399df0512b1f29b94a043db7482384a + url: "https://pub.dev" + source: hosted + version: "3.2.2" + url_launcher_macos: + dependency: transitive + description: + name: url_launcher_macos + sha256: "368adf46f71ad3c21b8f06614adb38346f193f3a59ba8fe9a2fd74133070ba18" + url: "https://pub.dev" + source: hosted + version: "3.2.5" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + sha256: "85c81589622fbc87c1c683aaea164d3604a7777495a79d91e39ffcdec39ddb34" + url: "https://pub.dev" + source: hosted + version: "2.4.3" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + sha256: "712c70ab1b99744ff066053cbe3e80c73332b38d46e5e945c98689b2e66fc15f" + url: "https://pub.dev" + source: hosted + version: "3.1.5" + uuid: + dependency: "direct main" + description: + name: uuid + sha256: "9b129329f58692f6e6578329498a8fe9fbe98f090beb764ffbb8ee2eadd01dcd" + url: "https://pub.dev" + source: hosted + version: "4.6.0" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: f36f9f3be64c6198714492bb455c11056e33e2f85d9a0b676a48301e44fdcf47 + url: "https://pub.dev" + source: hosted + version: "2.4.2" + video_player: + dependency: "direct main" + description: + name: video_player + sha256: "8c837b570dccb9ae6ff73d2e0b03c7e708bfefd3bd1194faa7f3e7f200dfc399" + url: "https://pub.dev" + source: hosted + version: "2.14.0" + video_player_android: + dependency: transitive + description: + name: video_player_android + sha256: e229676f8fade3e0124482495aaa2b548872cc4018b6268adfca4868be16aa74 + url: "https://pub.dev" + source: hosted + version: "2.12.0" + video_player_avfoundation: + dependency: transitive + description: + name: video_player_avfoundation + sha256: c238f5f0a26845cd0bcc2956049b63065a4d3c40ddfc22c3414cd170bef7fff9 + url: "https://pub.dev" + source: hosted + version: "2.11.0" + video_player_platform_interface: + dependency: transitive + description: + name: video_player_platform_interface + sha256: "92c0fbabe20c788e71fd10d26cea998d0d253282e65d145aed0818731cf593ce" + url: "https://pub.dev" + source: hosted + version: "6.9.0" + video_player_web: + dependency: transitive + description: + name: video_player_web + sha256: "9f3c00be2ef9b76a95d94ac5119fb843dca6f2c69e6c9968f6f2b6c9e7afbdeb" + url: "https://pub.dev" + source: hosted + version: "2.4.0" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: "0016aef94fc66495ac78af5859181e3f3bf2026bd8eecc72b9565601e19ab360" + url: "https://pub.dev" + source: hosted + version: "15.2.0" + vodozemac: + dependency: transitive + description: + name: vodozemac + sha256: efce261575f7de97ebd052b16775cd57f940e8212af47d288050c166b9f9a167 + url: "https://pub.dev" + source: hosted + version: "0.8.0" + wakelock_plus: + dependency: "direct main" + description: + name: wakelock_plus + sha256: "22b3e7e937721de70e63c85e7139f4ac781dc22863b9262431a53ac030eb074b" + url: "https://pub.dev" + source: hosted + version: "1.8.0" + wakelock_plus_platform_interface: + dependency: transitive + description: + name: wakelock_plus_platform_interface + sha256: "764c25504562abc8ac3406f5d175f126b276e6ba916c7c2675690b73368ca384" + url: "https://pub.dev" + source: hosted + version: "1.7.0" + watcher: + dependency: transitive + description: + name: watcher + sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + web: + dependency: "direct main" + description: + name: web + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8 + url: "https://pub.dev" + source: hosted + version: "3.0.3" + webcrypto: + dependency: transitive + description: + name: webcrypto + sha256: "9885ed99a846191542dd6ca820c83a098117df56be57453832233a3fef68f3f2" + url: "https://pub.dev" + source: hosted + version: "0.6.1" + webdriver: + dependency: transitive + description: + name: webdriver + sha256: "2f3a14ca026957870cfd9c635b83507e0e51d8091568e90129fbf805aba7cade" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + webkit_inspection_protocol: + dependency: transitive + description: + name: webkit_inspection_protocol + sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + webpush_encryption: + dependency: transitive + description: + name: webpush_encryption + sha256: "5b83272b91acda6ae515fcd980c94f06bf413702282497c5a68f5dfc64fed27f" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + webrtc_interface: + dependency: transitive + description: + name: webrtc_interface + sha256: c6f100eac5057d9a817a60473126f9828c796d42884d498af4f339c97b21014f + url: "https://pub.dev" + source: hosted + version: "1.5.1" + win32: + dependency: transitive + description: + name: win32 + sha256: ba6f4bba816c8d7e3c1580e170f3786d216951cc6b94babc3b814c08d2cb2738 + url: "https://pub.dev" + source: hosted + version: "6.3.0" + win32_registry: + dependency: transitive + description: + name: win32_registry + sha256: "73b1d78920a9d6e03f8b4e43e612b87bf3152a0e5c5e5150267762b7c4116904" + url: "https://pub.dev" + source: hosted + version: "3.0.3" + window_manager: + dependency: transitive + description: + name: window_manager + sha256: "05c231fd7b23d2380f14c5cc10b7b93d60d4fa4a2fb4e0f032de27e44b5560e9" + url: "https://pub.dev" + source: hosted + version: "0.5.2" + window_to_front: + dependency: transitive + description: + name: window_to_front + sha256: "14fad8984db4415e2eeb30b04bb77140b180e260d6cb66b26de126a8657a9241" + url: "https://pub.dev" + source: hosted + version: "0.0.4" + windows_file_picker: + dependency: transitive + description: + name: windows_file_picker + sha256: "72cf23466e146f2c0f19e1d78be97ff6409dc15b0c090f8eb284f94f4a33de26" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + wkt_parser: + dependency: transitive + description: + name: wkt_parser + sha256: "8a555fc60de3116c00aad67891bcab20f81a958e4219cc106e3c037aa3937f13" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + xml: + dependency: transitive + description: + name: xml + sha256: "971043b3a0d3da28727e40ed3e0b5d18b742fa5a68665cca88e74b7876d5e025" + url: "https://pub.dev" + source: hosted + version: "6.6.1" + yaml: + dependency: transitive + description: + name: yaml + sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce + url: "https://pub.dev" + source: hosted + version: "3.1.3" + yaml_edit: + dependency: transitive + description: + name: yaml_edit + sha256: "07c9e63ba42519745182b88ca12264a7ba2484d8239958778dfe4d44fe760488" + url: "https://pub.dev" + source: hosted + version: "2.2.4" +sdks: + dart: ">=3.12.0 <4.0.0" + flutter: ">=3.44.0" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..4fa1282 --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,148 @@ +# SPDX-FileCopyrightText: 2019-Present Christian Kußowski +# SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +name: tatchat +description: Chat with your friends. +publish_to: none +# On version bump please also increase: +# 1. The build number (for F-Droid) +# 2. The version in /snap/snapcraft.yaml +version: 2.9.5+3566 + +environment: + sdk: ">=3.11.1 <4.0.0" + +dependencies: + archive: ^4.2.0 + async: ^2.13.1 + badges: ^3.2.0 + blurhash_dart: ^1.2.1 + chewie: ^1.15.0 + collection: ^1.18.0 + crop_image: ^1.0.17 + cross_file: ^0.3.5 + cupertino_ui: 1.0.1 + desktop_drop: ^0.8.4 + device_info_plus: ^13.2.0 + dynamic_color: ^2.1.0 + emoji_picker_flutter: ^4.5.4 + file_picker: ^12.0.0 + file_selector: ^1.1.0 + flutter: + sdk: flutter + flutter_callkit_incoming: ^3.1.5 + flutter_foreground_task: ^11.0.1 + flutter_linkify: ^6.0.0 + flutter_local_notifications: ^22.3.0 + flutter_localizations: + sdk: flutter + flutter_map: ^8.3.2 + flutter_new_badger: ^2.0.0 + flutter_secure_storage: ^11.0.0 + flutter_shortcuts_new: ^2.0.0 + flutter_vodozemac: ^0.8.1 + flutter_web_auth_2: ^5.1.0 + flutter_webrtc: ^1.6.0 + geolocator: ^14.0.3 + go_router: ^18.0.0 + handy_window: ^0.4.2 + highlight: ^0.7.0 + html: ^0.15.7 + http: ^1.6.0 + image: ^4.9.2 + image_picker: ^1.2.3 + intl: 0.20.3 + just_audio: ^0.10.6 + just_audio_media_kit: ^2.1.0 + latlong2: ^0.10.1 + light_compressor_v2: ^1.9.1 + livekit_client: ^2.11.0 + local_auth: ^3.0.2 + lottie: ^3.5.1 + managed_configurations: ^1.2.0 + material_ui: 1.1.0 + matrix: #^11.0.0 + git: + url: https://github.com/famedly/matrix-dart-sdk.git + ref: krille/refactor-device-keys-list-storing + media_kit_libs_audio: ^1.0.7 + mime: ^2.1.0 + native_imaging: ^0.5.0 + ogg_caf_converter: ^0.1.4 + package_info_plus: ^10.2.0 + particles_network: ^1.9.5 + pasteboard: ^0.5.0 + path: ^1.9.0 + path_provider: ^2.1.6 + path_provider_foundation: ^2.6.0 + pretty_qr_code: ^3.6.0 + provider: ^6.0.2 + punycode: ^1.0.0 + qr_code_scanner_plus: ^2.2.0 + qr_image: ^1.0.0 + receive_sharing_intent: ^1.8.1 + record: ^7.1.1 + scroll_to_index: ^3.0.1 + share_plus: ^13.3.0 + shared_preferences: ^2.5.5 # Pinned because https://github.com/flutter/flutter/issues/118401 + slugify: ^2.0.0 + sqflite_common: ^2.5.11 + sqflite_common_ffi: ^2.4.2 + swipe_to_action: ^0.3.0 + unifiedpush: ^6.2.0 + unifiedpush_ui: ^0.2.0 + universal_html: ^2.3.0 + url_launcher: ^6.3.2 + uuid: ^4.6.0 + video_player: ^2.14.0 + web: ^1.1.1 + wakelock_plus: ^1.8.0 + +dev_dependencies: + dart_code_linter: ^4.3.0 + flutter_launcher_icons: ^0.14.4 + flutter_lints: ^6.0.0 + flutter_test: + sdk: flutter + integration_test: + sdk: flutter + license_checker: ^1.6.2 + +flutter: + generate: true + uses-material-design: true + assets: + - assets/ + - assets/logo/mini/ + - assets/sounds/ + - assets/vodozemac/0.8.1/ + +hooks: + user_defines: + sqlite3: + source: sqlcipher + +flutter_launcher_icons: + image_path: assets/logo/img/logo.png + android: true + adaptive_icon_foreground: assets/logo/img/logo_foreground.png + adaptive_icon_background: assets/logo/img/logo_background.png + adaptive_icon_monochrome: assets/logo/img/logo_mono.png + ios: true + macos: + generate: true + windows: + generate: true + web: + generate: true + image_path: assets/logo/img/logo_standalone.png + background_color: "#FFFFFF" + theme_color: "#41a2bc" + +# Guidelines for adding a dependency override: +# 1. Don't do it if you can avoid it or fix it upstream in a manageable time +# 2. Always link an (upstream?) issue +# 3. Explain how and when this can be removed (overrides must be temporarily) +dependency_overrides: diff --git a/recommended_homeservers.json b/recommended_homeservers.json new file mode 100644 index 0000000..fef6018 --- /dev/null +++ b/recommended_homeservers.json @@ -0,0 +1,35 @@ +{ + "public_servers": [ + { + "name": "matrix.org", + "website": "https://matrix.org", + "description": "The Matrix.org Foundation offers the matrix.org homeserver as an easy entry point for anyone wanting to try out Matrix.", + "reg_method": "oidc", + "languages": [ + "All", + "English" + ] + }, + { + "name": "mozilla.org", + "website": "https://mozilla.org", + "description": "Matrix homeserver hosted by Mozilla.", + "reg_method": "oidc", + "languages": [ + "All", + "English" + ] + }, + { + "name": "tchncs.de", + "website": "https://tchncs.de", + "description": "A general homeserver. Owner also hosts other FOSS services.", + "reg_method": "oidc", + "languages": [ + "All", + "English", + "Deutsch" + ] + } + ] +} \ No newline at end of file diff --git a/scripts/add-firebase-messaging.sh b/scripts/add-firebase-messaging.sh new file mode 100644 index 0000000..0c8ee1c --- /dev/null +++ b/scripts/add-firebase-messaging.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +# SPDX-FileCopyrightText: 2019-Present Christian Kußowski +# SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +flutter pub add fcm_shared_isolate +flutter pub get + +if [[ "$OSTYPE" == "darwin"* ]]; then + sed -i '' 's,//,,g' lib/utils/background_push.dart + sed -i '' -e 's,^/\*,,' -e 's,\*/$,,' android/app/src/main/kotlin/chat/fluffy/fluffychat/FcmPushService.kt +else + sed -i 's,//,,g' lib/utils/background_push.dart + sed -i -e 's,^/\*,,' -e 's,\*/$,,' android/app/src/main/kotlin/chat/fluffy/fluffychat/FcmPushService.kt +fi diff --git a/scripts/build-ios.sh b/scripts/build-ios.sh new file mode 100644 index 0000000..6f2703b --- /dev/null +++ b/scripts/build-ios.sh @@ -0,0 +1,84 @@ +#!/usr/bin/env bash + +# SPDX-FileCopyrightText: 2019-Present Christian Kußowski +# SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +git apply ./scripts/enable-android-google-services.patch +FLUFFYCHAT_ORIG_GROUP="im.fluffychat" +FLUFFYCHAT_ORIG_TEAM="4NXF6Z997G" +#FLUFFYCHAT_NEW_GROUP="com.example.fluffychat" +#FLUFFYCHAT_NEW_TEAM="ABCDE12345" + +# In some cases (ie: running beta XCode releases) some pods haven't updated their minimum version +# but XCode will reject the package for using too old of a minimum version. +# This will fix that, but. Well. Use at your own risk. +# export I_PROMISE_IM_REALLY_SMART=1 + +# If you want to automatically install the app +# export FLUFFYCHAT_INSTALL_IPA=1 + +### Rotate IDs ### +[ -n "${FLUFFYCHAT_NEW_GROUP}" ] && { + # App group IDs + sed -i "" "s/group.${FLUFFYCHAT_ORIG_GROUP}.app/group.${FLUFFYCHAT_NEW_GROUP}.app/g" "ios/FluffyChat Share/FluffyChat Share.entitlements" + sed -i "" "s/group.${FLUFFYCHAT_ORIG_GROUP}.app/group.${FLUFFYCHAT_NEW_GROUP}.app/g" "ios/Runner/Runner.entitlements" + sed -i "" "s/group.${FLUFFYCHAT_ORIG_GROUP}.app/group.${FLUFFYCHAT_NEW_GROUP}.app/g" "ios/Runner.xcodeproj/project.pbxproj" + # Bundle identifiers + sed -i "" "s/${FLUFFYCHAT_ORIG_GROUP}.app/${FLUFFYCHAT_NEW_GROUP}.app/g" "ios/Runner.xcodeproj/project.pbxproj" +} + +[ -n "${FLUFFYCHAT_NEW_TEAM}" ] && { + # Code signing team + sed -i "" "s/${FLUFFYCHAT_ORIG_TEAM}/${FLUFFYCHAT_NEW_TEAM}/g" "ios/Runner.xcodeproj/project.pbxproj" +} +cat << EOHELP +If something later in the build explodes, and looks possibly related to App IDs: +1. Ask Xcode nicely + - Open ios/Runner.xcodeproj in Xcode + - Go to the Signing & Capabilities tab + - Ask it to repair the certificates/register app IDs/etc +2. Fix it yourself + - Go to https://developer.apple.com/account/resources/identifiers/list + - Ensure that Xcode created the App ID successfully (for fluffychat.app and fluffychat.app.FluffyChat-Share) + - Under "App Groups", make sure it registered your group + - Back "App IDs", check that the App Group was added to each App ID's entitlements +EOHELP + +### [optional] override pods minimum iphoneos deployment target ### +[ -n "${I_PROMISE_IM_REALLY_SMART}" ] && { +# 1. I'm sorry about the indentation't ;_; heredocs are weird about it +# 2. The patch basically just removes any preference on target iOS version +# This lets our default from ios/Flutter/AppFrameworkInfo.plist take precendence +cat << EOPATCH | patch --forward --reject-file=apple_please_fix_your_coreutils --silent ios/Podfile +diff --git a/ios/Podfile b/ios/Podfile +index 9411102b..0446120a 100644 +--- a/ios/Podfile ++++ b/ios/Podfile +@@ -37,5 +37,8 @@ end + post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_ios_build_settings(target) ++ target.build_configurations.each do |config| ++ config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET' ++ end + end + end +EOPATCH +rm -f apple_please_fix_your_coreutils +} + +### Make release build ### +flutter build ipa --release + +### [optional] Install release build ### +[ -n "${FLUFFYCHAT_INSTALL_IPA}" ] && { + TMPDIR=$(mktemp -d) + # 1. Turn the xcarchive that flutter created into a dev-signed IPA + echo '{"compileBitcode":false,"method":"development"}' | plutil -convert xml1 -o "${TMPDIR}/options.plist" - + xcodebuild -exportArchive -archivePath ./build/ios/archive/Runner.xcarchive -exportPath "${TMPDIR}" -exportOptionsPlist "${TMPDIR}/options.plist" + # 2. ...and install it on your connected devices + cfgutil --foreach install-app "${TMPDIR}/fluffychat.ipa" + rm -rf "${TMPDIR}" +} diff --git a/scripts/build-macos.sh b/scripts/build-macos.sh new file mode 100644 index 0000000..bbc45cf --- /dev/null +++ b/scripts/build-macos.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +# SPDX-FileCopyrightText: 2019-Present Christian Kußowski +# SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +git apply ./scripts/enable-android-google-services.patch +FLUFFYCHAT_ORIG_GROUP="im.fluffychat" +FLUFFYCHAT_ORIG_TEAM="4NXF6Z997G" +#FLUFFYCHAT_NEW_GROUP="com.example.fluffychat" +#FLUFFYCHAT_NEW_TEAM="ABCDE12345" + +# In some cases (ie: running beta XCode releases) some pods haven't updated their minimum version +# but XCode will reject the package for using too old of a minimum version. +# This will fix that, but. Well. Use at your own risk. +# export I_PROMISE_IM_REALLY_SMART=1 + +# If you want to automatically install the app +# export FLUFFYCHAT_INSTALL_IPA=1 + +### Rotate IDs ### +[ -n "${FLUFFYCHAT_NEW_GROUP}" ] && { + # App group IDs + sed -i "" "s/group.${FLUFFYCHAT_ORIG_GROUP}.app/group.${FLUFFYCHAT_NEW_GROUP}.app/g" "macos/Runner/Runner.entitlements" + sed -i "" "s/group.${FLUFFYCHAT_ORIG_GROUP}.app/group.${FLUFFYCHAT_NEW_GROUP}.app/g" "macos/Runner.xcodeproj/project.pbxproj" + # Bundle identifiers + sed -i "" "s/${FLUFFYCHAT_ORIG_GROUP}.app/${FLUFFYCHAT_NEW_GROUP}.app/g" "macos/Runner.xcodeproj/project.pbxproj" +} + +[ -n "${FLUFFYCHAT_NEW_TEAM}" ] && { + # Code signing team + sed -i "" "s/${FLUFFYCHAT_ORIG_TEAM}/${FLUFFYCHAT_NEW_TEAM}/g" "macos/Runner.xcodeproj/project.pbxproj" +} + +### Make release build ### +flutter build macos --release + +echo "Build build/macos/Build/Products/Release/FluffyChat.app" diff --git a/scripts/build-windows.ps1 b/scripts/build-windows.ps1 new file mode 100644 index 0000000..4824dee --- /dev/null +++ b/scripts/build-windows.ps1 @@ -0,0 +1,12 @@ +# SPDX-FileCopyrightText: 2019-Present Christian Kußowski +# SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +flutter doctor +flutter config --enable-windows-desktop +flutter clean +flutter pub get + +flutter build windows --release -v + diff --git a/scripts/generate-locale-config.sh b/scripts/generate-locale-config.sh new file mode 100644 index 0000000..5f719b1 --- /dev/null +++ b/scripts/generate-locale-config.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +# SPDX-FileCopyrightText: 2019-Present Christian Kußowski +# SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +# Directory containing the ARB files +l10n_dir="./lib/l10n" +# Target directory for the locale_config.xml file +xml_dir="./android/app/src/main/res/xml" + +# Create the target directory if it does not exist +mkdir -p "$xml_dir" + +# Output file name +xml_file="$xml_dir/locale_config.xml" + +rm -rf "$xml_file" + +# XML Header +echo '' > "$xml_file" +echo '' >> "$xml_file" + +# Search for ARB files and extract language codes +for file in "$l10n_dir"/intl_*.arb; do + # Extract language code + language_code=$(basename "$file" | cut -d'_' -f2 | cut -d'.' -f1) + # Write language code to the XML file + echo " " >> "$xml_file" +done + +# XML Footer +echo '' >> "$xml_file" + +echo "locale_config.xml file has been successfully created in the $xml_dir directory." diff --git a/scripts/generate_command_hints_glue.sh b/scripts/generate_command_hints_glue.sh new file mode 100644 index 0000000..75a457c --- /dev/null +++ b/scripts/generate_command_hints_glue.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +# SPDX-FileCopyrightText: 2019-Present Christian Kußowski +# SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +# Generates some glue code for translation of /command hints. + +# How to use this: +# - Add any new hints to assets/l10n/intl_en.arb +# They must be of the form commandHint_ with in lowercase. +# - Run this script to regenerate the glue code +# - Run flutter test to see if you did everything right + +# Looking to add descriptions for a new command, but don't know what it does? +# It is likely defined here (in registerDefaultCommands()): +# https://github.com/famedly/matrix-dart-sdk/tree/main/lib/src/utils/commands_extension.dart + +echo "\ +// This file is auto-generated using scripts/generate_command_hints_glue.sh. + +import 'package:flutter_gen/gen_l10n/l10n.dart'; + +String commandHint(L10n l10n, String command) { + switch (command) { +$(sed -n \ + 's/[[:blank:]]*\"\(commandHint_\([[:lower:]]*\)\)\".*/ case "\2":\ + return l10n.\1;/p' \ + lib/l10n/intl_en.arb +) + default: + return \"\"; + } +}\ +" > lib/pages/chat/command_hints.dart diff --git a/scripts/prepare-android-release.sh b/scripts/prepare-android-release.sh new file mode 100644 index 0000000..53f60b2 --- /dev/null +++ b/scripts/prepare-android-release.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +# SPDX-FileCopyrightText: 2019-Present Christian Kußowski +# SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +cd android +echo $FDROID_KEY | base64 --decode --ignore-garbage > key.jks +echo "storePassword=${FDROID_KEY_PASS}" >> key.properties +echo "keyPassword=${FDROID_KEY_PASS}" >> key.properties +echo "keyAlias=key" >> key.properties +echo "storeFile=../key.jks" >> key.properties +echo $PLAYSTORE_DEPLOY_KEY >> keys.json +ls | grep key +bundle install +bundle update fastlane +bundle exec fastlane set_build_code_internal +cd .. diff --git a/scripts/prepare-web.sh b/scripts/prepare-web.sh new file mode 100644 index 0000000..72d4ce1 --- /dev/null +++ b/scripts/prepare-web.sh @@ -0,0 +1,50 @@ +#!/bin/sh -ve + +# SPDX-FileCopyrightText: 2019-Present Christian Kußowski +# SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +SED=$(command -v gsed || command -v sed) + +# Compile Vodozemac for web +version=$(yq ".dependencies.flutter_vodozemac" < pubspec.yaml) +version=$(printf "%s" "$version" | tr -d '"^') +git clone https://github.com/famedly/dart-vodozemac.git -b ${version} .vodozemac +cd .vodozemac +cargo install flutter_rust_bridge_codegen +flutter_rust_bridge_codegen build-web --dart-root dart --rust-root $(readlink -f rust) --release +cd .. +rm -f ./assets/vodozemac/vodozemac_bindings_dart* +mkdir -p "./assets/vodozemac/$version/" +mv .vodozemac/dart/web/pkg/vodozemac_bindings_dart* "./assets/vodozemac/$version/" +rm -rf .vodozemac +grep -qF "assets/vodozemac/${version}/" pubspec.yaml || "$SED" -i "\|- assets/sounds/|a\\ - assets/vodozemac/${version}/" pubspec.yaml +"$SED" -i "s/vodozemacVersion = '.*';/vodozemacVersion = '${version}';/" lib/config/app_config.dart + +flutter pub get +dart compile js ./web/native_executor.dart -o ./web/native_executor.js -m + +# Download native_imaging for web: +version=$(yq ".dependencies.native_imaging" < pubspec.yaml) +version=$(printf "%s" "$version" | tr -d '"^') +curl -L "https://github.com/famedly/dart_native_imaging/releases/download/v${version}/native_imaging.zip" > native_imaging.zip +unzip native_imaging.zip +mv js/* web/ +rmdir js +rm native_imaging.zip + +# Enable e2ee for LiveKit: +git clone https://github.com/livekit/client-sdk-flutter.git +cd client-sdk-flutter +flutter pub get + +# Patch so that LiveKit uses HKDF by default: +# Workaroudn for https://github.com/livekit/client-sdk-flutter/issues/974 +"$SED" -i "s/{'name': 'PBKDF2'.toJS}/{'name': 'HKDF'.toJS}/g" web/e2ee.keyhandler.dart +"$SED" -i "s/getAlgoOptions('PBKDF2', salt)/getAlgoOptions('HKDF', salt)/g" web/e2ee.keyhandler.dart +"$SED" -i "s/{'name': 'PBKDF2'}/{'name': 'HKDF'}/g" web/e2ee.utils.dart + +dart compile js web/e2ee.worker.dart -o ../web/e2ee.worker.dart.js -m +cd .. +rm -rf client-sdk-flutter \ No newline at end of file diff --git a/scripts/prepare-windows.ps1 b/scripts/prepare-windows.ps1 new file mode 100644 index 0000000..5eed4fa --- /dev/null +++ b/scripts/prepare-windows.ps1 @@ -0,0 +1,10 @@ +# SPDX-FileCopyrightText: 2019-Present Christian Kußowski +# SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +choco install flutter cmake --installargs 'ADD_CMAKE_TO_PATH=System' -y +Import-Module "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1" +refreshenv + +flutter config --no-analytics diff --git a/scripts/prepare_integration_test.sh b/scripts/prepare_integration_test.sh new file mode 100644 index 0000000..20ae033 --- /dev/null +++ b/scripts/prepare_integration_test.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +# SPDX-FileCopyrightText: 2019-Present Christian Kußowski +# SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +source integration_test/data/integration_users.env + +docker rm -f synapse 2>/dev/null || true + +docker run -d --name synapse --tmpfs /data \ + --volume="$(pwd)/integration_test/synapse/data/homeserver.yaml":/data/homeserver.yaml:rw \ + --volume="$(pwd)/integration_test/synapse/data/localhost.log.config":/data/localhost.log.config:rw \ + -p 80:80 matrixdotorg/synapse:latest + +while ! curl -XGET "http://$HOMESERVER/_matrix/client/v3/login" >/dev/null 2>/dev/null; do +echo "Waiting for homeserver to be available... (GET http://$HOMESERVER/_matrix/client/v3/login)" + sleep 2 +done + +echo "Homeserver is online!" + +# create users +curl -fS --retry 3 -XPOST -d "{\"username\":\"$USER1_NAME\", \"password\":\"$USER1_PW\", \"inhibit_login\":true, \"auth\": {\"type\":\"m.login.dummy\"}}" "http://$HOMESERVER/_matrix/client/r0/register" +curl -fS --retry 3 -XPOST -d "{\"username\":\"$USER2_NAME\", \"password\":\"$USER2_PW\", \"inhibit_login\":true, \"auth\": {\"type\":\"m.login.dummy\"}}" "http://$HOMESERVER/_matrix/client/r0/register" + +echo "Homeserver is ready! Please rerun this script every time before starting an integration test!" \ No newline at end of file diff --git a/scripts/release-ios-testflight.sh b/scripts/release-ios-testflight.sh new file mode 100644 index 0000000..98c2e89 --- /dev/null +++ b/scripts/release-ios-testflight.sh @@ -0,0 +1,32 @@ +#!/bin/sh -ve + +# SPDX-FileCopyrightText: 2019-Present Christian Kußowski +# SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +# Enable FCM and get packages +flutter pub add fcm_shared_isolate +sed -i '' 's,//,,g' lib/utils/background_push.dart +flutter clean +flutter pub get + +# Reload all cocoapods +( + cd ios + rm -rf Pods Podfile.lock + pod install + pod update +) + +# pub get hardcodes FlutterGeneratedPluginSwiftPackage to iOS 13.0; regenerate so +# it picks up the project's IPHONEOS_DEPLOYMENT_TARGET before xcodebuild. +flutter build ios --config-only --release + +# Build and open archive dialog +xcodebuild \ + -workspace ios/Runner.xcworkspace \ + -scheme Runner \ + -configuration Release \ + -archivePath build/Runner.xcarchive \ + archive && open -a Xcode build/Runner.xcarchive \ No newline at end of file diff --git a/scripts/update-license-headers.sh b/scripts/update-license-headers.sh new file mode 100644 index 0000000..6a97582 --- /dev/null +++ b/scripts/update-license-headers.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash + +# SPDX-FileCopyrightText: 2019-Present Christian Kußowski +# SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +find . -type f \ + -not -path "*/.*" \ + -not -path "*/*.json" \ + -not -path "*/pubspec.lock" \ + -not -path "*/build/*" \ + -not -path "*/assets/*" \ + -not -path "*/lib/l10n/*" \ + -not -path "*/android/*" \ + -not -path "*/ios/*" \ + -not -path "*/linux/*" \ + -not -path "*/macos/*" \ + -not -path "*/LICENSE" \ + -not -path "*/LICENSES/*" \ + -not -path "*/integration_test/synapse/*" \ + -not -path "*/integration_test/data/*" \ + -not -path "*/snap/*" \ + -not -path "*/web/*" \ + -not -path "*/windows/*" \ + -exec reuse annotate \ + --copyright="Christian Kußowski" \ + --copyright="Contributors to FluffyChat" \ + --license="AGPL-3.0-or-later" \ + --year="2019-Present" \ + --merge-copyrights \ + {} + \ No newline at end of file diff --git a/snap/gui/tatuchat.desktop b/snap/gui/tatuchat.desktop new file mode 100644 index 0000000..bfca436 --- /dev/null +++ b/snap/gui/tatuchat.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=TatuChat +GenericName=Matrix Client +Comment=Chat with your friends +Exec=tatuchat +Icon=${SNAP}/meta/gui/tatuchat.png +Terminal=false +Type=Application +Categories=Network;Chat;InstantMessaging; diff --git a/snap/gui/tatuchat.png b/snap/gui/tatuchat.png new file mode 100644 index 0000000000000000000000000000000000000000..1e32231dff5ef51295a6a1d5f9fd1966c45776da GIT binary patch literal 17397 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 literal 0 HcmV?d00001 diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml new file mode 100644 index 0000000..2e9c42d --- /dev/null +++ b/snap/snapcraft.yaml @@ -0,0 +1,149 @@ +name: fluffychat +title: FluffyChat Matrix Messenger +base: core24 +version: 2.9.1 +license: AGPL-3.0 +summary: The cutest messenger in the Matrix network +description: | + ## Your communication should be yours. + + The open-source, non-profit European alternative to big tech’s messaging and video-call monopoly. End-to-end encrypted, decentralized, and easy to use for everyone. + + ### Messaging how it should be + + Whether for your friends, your company or local community, FluffyChat supports a variety of features to cover all your daily needs. + + #### Easy to use + + Simply install, log in and start chatting. The intuitive user interface makes secure communication as easy as possible. + + #### Secure + + With olm/megolm end-to-end encryption, encrypted message backups and an automated key trust system, FluffyChat is among the most secure messengers available. + + #### Decentral + + Based on the open Matrix protocol we build a decentralized messaging network together, which no entity can control. Host your own chat server while remaining in contact with everyone. + + ### Feature rich and reliable + + From public chats with tens of thousands of participants and polls to custom stickers, spaces, rich moderation tools, and multi-device support, FluffyChat delivers a comprehensive communication suite. + + #### Secure video calls + + Direct calls and video conferences, fully secured with Matrix RTC-compatible encryption. + + #### Not another walled garden + + We do not build another walled garden! FluffyChat is fully compatible with any other Matrix client like Element, Nheko, Cinny or NeoChat. Learn more at matrix.org. + + #### Made by volunteers + + FluffyChat is a non-profit project based on open standards and driven entirely by volunteers. Infrastructure is funded by donations, and participation is open to everyone. + + Join the community: https://matrix.to/#/#fluffy-space:matrix.org + Website: http://fluffychat.im + Microblog: https://troet.cafe/@krille + +grade: stable +confinement: strict + +platforms: + amd64: + build-on: amd64 + arm64: + build-on: arm64 + +parts: + flutter-git: + source: https://github.com/flutter/flutter.git + source-tag: 3.47.3 + source-depth: 1 + plugin: nil + override-build: | + mkdir -p $CRAFT_PART_INSTALL/usr/bin + mkdir -p $CRAFT_PART_INSTALL/usr/libexec + cp -r $CRAFT_PART_SRC $CRAFT_PART_INSTALL/usr/libexec/flutter + ln -s $CRAFT_PART_INSTALL/usr/libexec/flutter/bin/flutter $CRAFT_PART_INSTALL/usr/bin/flutter + ln -s $SNAPCRAFT_PART_INSTALL/usr/libexec/flutter/bin/dart $SNAPCRAFT_PART_INSTALL/usr/bin/dart + $CRAFT_PART_INSTALL/usr/bin/flutter doctor + build-packages: + - clang + - cmake + - curl + - libgtk-3-dev + - ninja-build + - unzip + - xz-utils + - zip + - lld + - llvm-18 + override-prime: '' + + fluffychat: + after: [flutter-git] + plugin: nil + source: . + override-build: | + # Install rust manually: + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + export PATH="$HOME/.cargo/bin:$PATH" + + # Workaround for Flutter build error: + rm -rf build + + flutter build linux --release -v + mkdir -p $CRAFT_PART_INSTALL/bin/ + cp -r build/linux/*/release/bundle/* $CRAFT_PART_INSTALL/bin/ + build-packages: + - libsecret-1-dev + - libjsoncpp-dev + - libssl-dev + - curl + - libpciaccess-dev + - libpulse-dev + stage-packages: + - libsecret-1-0 + - libjsoncpp25 + - libpciaccess0 + - libpulse0 + - libmpv2 + - libblas3 + - liblapack3 + override-prime: | # Workaround for MediaKit: + craftctl default + for library_dir in "$CRAFT_PRIME"/usr/lib/*-linux-gnu; do + if [ -e "$library_dir/libmpv.so.2" ]; then + ln -sf "$(basename "$library_dir")/libmpv.so.2" "$CRAFT_PRIME/usr/lib/libmpv.so.2" + fi + ln -sf blas/libblas.so.3 "$library_dir/libblas.so.3" + ln -sf lapack/liblapack.so.3 "$library_dir/liblapack.so.3" + done + +slots: + dbus-svc: + interface: dbus + bus: session + name: chat.fluffy.fluffychat + +apps: + fluffychat: + command: bin/fluffychat + extensions: [ gnome ] + plugs: + - desktop + - desktop-legacy + - home + - network + - network-manager + - opengl + - removable-media + - browser-support + - password-manager-service + - camera + - audio-record + - audio-playback + slots: + - dbus-svc + environment: + LIBMPV_LIBRARY_PATH: $SNAP/usr/lib/libmpv.so.2 # Otherwise app does not find libmp3 diff --git a/test/archive_test.dart b/test/archive_test.dart new file mode 100644 index 0000000..3f69390 --- /dev/null +++ b/test/archive_test.dart @@ -0,0 +1,16 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'package:flutter_test/flutter_test.dart'; + +void main() { + testWidgets('Test if the widget can be created', (WidgetTester tester) async { + /*await tester.pumpWidget(FluffyChatApp( + testWidget: Archive(), + testClient: await testClient(loggedIn: true), + ));*/ + return; + }); +} diff --git a/test/command_hint_test.dart b/test/command_hint_test.dart new file mode 100644 index 0000000..c4e1a41 --- /dev/null +++ b/test/command_hint_test.dart @@ -0,0 +1,29 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +import 'dart:convert'; +import 'dart:io'; + +import 'package:flutter_test/flutter_test.dart'; + +import 'utils/test_client.dart'; + +void main() async { + test('Check for missing /command hints', () async { + final translated = + jsonDecode(File('lib/l10n/intl_en.arb').readAsStringSync()).keys + .where((String k) => k.startsWith('commandHint_')) + .map((k) => k.replaceFirst('commandHint_', '')); + final commands = (await prepareTestClient()).commands.keys; + final missing = commands.where((c) => !translated.contains(c)).toList(); + + expect( + 0, + missing.length, + reason: + 'missing hints for $missing\nAdding hints? See scripts/generate_command_hints_glue.sh', + ); + }); +} diff --git a/test/homeserver_picker_test.dart b/test/homeserver_picker_test.dart new file mode 100644 index 0000000..0f9cdf3 --- /dev/null +++ b/test/homeserver_picker_test.dart @@ -0,0 +1,23 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +//import 'package:tatchat/pages/homeserver_picker.dart'; +//import 'package:tatchat/main.dart'; + +import 'package:flutter_test/flutter_test.dart'; + +//import 'utils/test_client.dart'; + +void main() { + testWidgets('Test if the widget can be created', (WidgetTester tester) async { + /*await tester.pumpWidget( + FluffyChatApp( + client: await prepareTestClient(), + testWidget: HomeserverPicker(), + ), + );*/ + return; + }); +} diff --git a/test/utils/test_client.dart b/test/utils/test_client.dart new file mode 100644 index 0000000..1f29950 --- /dev/null +++ b/test/utils/test_client.dart @@ -0,0 +1,48 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +// ignore_for_file: depend_on_referenced_packages + +import 'package:matrix/encryption/utils/key_verification.dart'; +import 'package:matrix/matrix.dart'; +import 'package:sqflite_common_ffi/sqflite_ffi.dart'; + +Future prepareTestClient({ + bool loggedIn = false, + Uri? homeserver, + String id = 'FluffyChat Widget Test', +}) async { + homeserver ??= Uri.parse('https://fakeserver.notexisting'); + final client = Client( + 'FluffyChat Widget Tests', + httpClient: FakeMatrixApi() + ..api['GET']!['/.well-known/matrix/client'] = (req) => {}, + verificationMethods: { + KeyVerificationMethod.numbers, + KeyVerificationMethod.emoji, + }, + importantStateEvents: { + 'im.ponies.room_emotes', // we want emotes to work properly + }, + database: await MatrixSdkDatabase.init( + 'test', + database: await databaseFactoryFfi.openDatabase(':memory:'), + sqfliteFactory: databaseFactoryFfi, + ), + supportedLoginTypes: { + AuthenticationTypes.password, + AuthenticationTypes.sso, + }, + ); + await client.checkHomeserver(homeserver); + if (loggedIn) { + await client.login( + LoginType.mLoginToken, + identifier: AuthenticationUserIdentifier(user: '@alice:example.invalid'), + password: '1234', + ); + } + return client; +} diff --git a/test/widget_test.dart b/test/widget_test.dart new file mode 100644 index 0000000..b6bc1ac --- /dev/null +++ b/test/widget_test.dart @@ -0,0 +1,26 @@ +// SPDX-FileCopyrightText: 2019-Present Christian Kußowski +// SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility that Flutter provides. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +//import 'package:tatchat/main.dart'; + +import 'package:flutter_test/flutter_test.dart'; + +//import 'utils/test_client.dart'; + +void main() { + testWidgets('Test if the app starts', (WidgetTester tester) async { + /* await tester.pumpWidget(FluffyChatApp( + client: await prepareTestClient(), + ));*/ + return; + }); +} diff --git a/web/auth.html b/web/auth.html new file mode 100644 index 0000000..806485b --- /dev/null +++ b/web/auth.html @@ -0,0 +1,13 @@ + +Authentication complete +

    Authentication is complete. If this does not happen automatically, please close the window.

    + \ No newline at end of file diff --git a/web/favicon.png b/web/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..0aab8764e52f9d2c70e9ba478014b5913db17074 GIT binary patch literal 762 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl47_$R>LR^8|s`TrB|NiswtcVPp z`svdT28Qm3_rBYh7k&Nu>;1c*S1*34&bpo9f4wk!6$8U;MTWl4*3I|t{Lq!{@|Hav zVR+Nkwk0EeX;SdkaIY1%+A~Yj4|kN`$;x8*`2O#kSASkS|9I!-#~WAQuUYhV>8#f$ zj=os8?CI*oPfi@Yd+Ow!^(*frI9-c(xVClE<(#;~8Igzbk`5$>YLI?eM3=A!Q{`~#*>(A=>KR$i>`r*TuCy(EhCp=E~dT{LMH7|wJp>~H{ z^)}ebZ!l8s=V9pEv-RE9wQujEak7aas1{)uclXBCZ#2YYN_3>Tnkb zp89n>y5_Xk)qcL`wZoMb(lef?%vb%%G3|AM=cF!IPpww{hMlL_mWkidn_gY#bz&al zo|Y*M!IGsGEr!b%w7gRYoH^%*!|C5Y(p0%R@9#{Uq&8)e319AC7sasHXAw)M^wzG- zYQFKG%l)*a%g#BTZ%uLxKJ3bxZau%FHBYYm{uyW4gCceRH$MD!Loj@AcgKv=%10&F zOEvCTmS3}Q>4s(5f)!TRUdv5V44D^epCfyhAttNz{I|yY`_KQrb#}5Ng9ZODo_hvA oqI4^MF)XXzcweP!`LR^8|s`TrB|NiswtcVPp z`svdT28Qm3_rBYh7k&Nu>;1c*S1*34&bpo9f4wk!6$8U;MTWl4*3I|t{Lq!{@|Hav zVR+Nkwk0EeX;SdkaIY1%+A~Yj4|kN`$;x8*`2O#kSASkS|9I!-#~WAQuUYhV>8#f$ zj=os8?CI*oPfi@Yd+Ow!^(*frI9-c(xVClE<(#;~8Igzbk`5$>YLI?eM3=A!Q{`~#*>(A=>KR$i>`r*TuCy(EhCp=E~dT{LMH7|wJp>~H{ z^)}ebZ!l8s=V9pEv-RE9wQujEak7aas1{)uclXBCZ#2YYN_3>Tnkb zp89n>y5_Xk)qcL`wZoMb(lef?%vb%%G3|AM=cF!IPpww{hMlL_mWkidn_gY#bz&al zo|Y*M!IGsGEr!b%w7gRYoH^%*!|C5Y(p0%R@9#{Uq&8)e319AC7sasHXAw)M^wzG- zYQFKG%l)*a%g#BTZ%uLxKJ3bxZau%FHBYYm{uyW4gCceRH$MD!Loj@AcgKv=%10&F zOEvCTmS3}Q>4s(5f)!TRUdv5V44D^epCfyhAttNz{I|yY`_KQrb#}5Ng9ZODo_hvA oqI4^MF)XXzcweP!`GNEIWBfTH)?2Cy-G<_H79#VLSJcGwP94EXj`c}Dv)1Mq&qQiJT8L& z|NkZvhJ0t_E*y__VBL6Q;WQ$aDi(<{9FuTd*K=RmHzJub9FcWj+cF%II3}8MUD+xY zjCNw)Di(`LHLO-byC)WiZdlcNW#VvJ)iolQRY18W7KcPKr$8>FQa!dpE~Q{g#$rv# zJu06&CY(JgpgSg=Pdu|O9FR*muRkiGE*p(#RL?6GjbBN`MKY*BE24K}-*H^nV^7Lu zP|Qa%sb^EoG9r{tJF-nWu~KRu_?eH&*U|Ob*6n_4*{r11kbvEggv>`bnwEy=wyxZQcD3?v_d26{& zJ)&(~#A#cvjCtpZdflX(&y9n?Rz;;_QMg`DsDp3iy|>(`ge4vT001>~QchC<1PLDo z5*aW_C^=9-4I~z15Ge3P@ znDlpo_vd4?TCG;^36j~Q2BSK@SrCd#VaP3l;H~64^pp=U9v30WG$dsvgb)biur#NB%~fMM zGjB{(wibW4jL(~SAKyQM+T_U4t~w_tr#m`87yZf6q1|^bc65Ng4#!7G|9nRWsP!;D zN`}3{!EzTh<&Oqa$apgSR3>?vQJUr8+EI7mV7*Nn3|w1ER33yL!Nh$DXg>V}CMgRY zT;K$X1?#qO(AY%ivTw<72MgRFomz)vn))7=i7XlITf1{|+UNkGks%Y8`3nz;aVTQu zVo0VahP`e%$aMzpO(i10RYGnYg4`##%8M!*w7cs;-dqCoWvJ*a4{ySzW1%@j`T`Ow zvi^Cy+cXB~%2Y^j4Q^(b+Zl7lXtIMa7U@H%svPxJV^GsX=u%VV4A=6qH8G2MMZNeo zA@y)AJ`mp*W3aIV2n`-pB3us%#*a-H(Yum~(>RY!Ak1ytKnT>MGtorV3Frg0jhnC& zRh{^*YtyrixR*oKsPf$E>+T}Sw@2p*2FE}@5=*j&I~oPU^X-5evFDB?!cPbQNWn*D&7Hi zH=9d<(C%T226pn3zIUV%yX zJ4sCNe%SK-lHg4Tr1b`#e=Q8O*FVSdAGz}<2(OL+Y|{eI#s34-E4&EgcwaH)NE{GRa_!XuiaJmM^cR%Ow4cv)SAu8+DS_Ad4<;9xoqs?Vs(|j8P75?QmXb4+`YUOpnd7WL zz=De4TMpl&<7S?v+Y$VEEl3MA^Smt(7($g?&;mb@V9%2h@Dp^undgY{4oIB<3+W?t zh6Gz#esp&kbAcxx5lk*1wF3jX#Ox>^tNAi10T+0M2@L2hF_SD{#{I@}y;xch# zEiM*lbmvQUVSrqWVD5xE3bOZ3kvv2ZD;%kid^i>s67Dzlw=zW zYC1z^klsOTue`u6ip}@4>=Ez*@Q0q_sRRVZ5W}2W1oSYKAEpZn_zV&T&Jg4?Fo5F; z2pr-ZgF?(5Jd}t)7ZlPv6cA|Rc%YCz5egR|&_Nl@7ZLbGpzsV?R3;$-pMfeSLIMXA zJy3++rXq<6D64V*KuBPp>Z%#sp>bst}kKk9q34qyH*+=j6)0>J?9y`2qr;aatzO^uBLv5$7WY zV(6EfTEzNw;ecH{l!$-_B+T8`VtyK8TXIv2SudL3R6yVZ&ICxVwG`hBk^FBot(3tO z4<#Z%PvDo9;j6&;+0@dU(?z%{FR(%g+%Ujl=USHXRld}+xO9o}P)|_-g5SK{&ui0Q z9LI4KJc#b#X{WK_C5m_$_yG?)dKtUOs^BziJ=lv-bv(x*m=y9ratI-$q_kb3Z9@M{ znINrse&qQ+OY*u0KJPsXX$vifT(liPJOaO8x$=lXF8M$Ra20Nu{?E9b0f92z?C{vs zl_LeXOL;*l%m`p+DO{ODCdgb;fKu#3VlB+@U?vu>Od()l`okp!4AqJ>gkaI&32ad1 z-wrk80Xi;MJq5PLFvNv`5LMxj9PnK$tDmugA$C+vXQ=WE-5QI4T%1w42~I+oTGihI z@M4!3@KdAMFbMdWZ~%sa|DS;+gG^E=_fP}k05a)r!NP~RWcQzF>_N^eNCB5h85B0# z9V-TkWP1js2NkYbL<@KyK*d}AP3SK;i2UXJ?#i=ut}AyM3CN(q!f3;N*zlqaA3-an z1pHQsV1@B`R*uKx^`5WqpkW~6{?r6~iIcUIZo59s?dF?0TDVip$GKzmgo{IwPS1o3UrD0Yy$K+y2BicfI*G*2wh>>K+hyVRCwq{I2+gm zT-7>FeYA@&^C+JUYL^%Wh~|?xb25gOEUyHFfX~KKw8Sx8aL<4YEs5_FaPY|(M@tgZ z1urE5uZ{Q58Ct@6h7%4Y0Z)IKTA(#^!wIs0$6rjf7vNtRPIxW}cywVJaL&*YZaU$W zBw+9O!W2hKCZ-Gag)c-uc)0h*IADf$M5Y6d_wT+_e;4p53Ic~fMz;&n#U1(|WYd_*F+?B@ z9z+ZR2|+A`|IFU`Ts>W-hC3@b`i&18{PBI?6JDNvy`qBPDs=Y+eqLZvCba^3Sc1r> zYugK&FP>YBlWiDA8!Qf4LWKZm@uzDnLzd=0adQDamPZ?0z-f|_fG?ITw+}{BmX`9j2$ZEF22$XkrtSOtoi7h zKw2p9?wQuY6hAYYp-m4JhLg2?hPs!g7-$KLF>?MfXXmncF^PR<)52`XMA<(CScUnc z!8Ajp#+|V(L<-GCc7@GV6ldHdi{td(Zi=q#4XC*p3>LiCZ4sCNH^}W1qK()JsvORS z8WRgH=OWl1T|C+Rq)ZgHg6i&Og9V+*Tm&3#llf_x(Eza(R5buv(Cy8Bw-S9iU;l2cRuSkEo3-i0U{0V!8lFNH?u>O4hM_1r&=5PAAVPov;Yb;xL`f%BW`xwKe^B-RKcc>QrmvM1DV7Y$6|B)Y z&-ZyX^Wz5M4IU~H48CTRo}U(A_!$~5k-3Q$^1b?=P5$sZ1sW>RLaOdIlT;<~tHgbZ zY1kl@`Q?6_L%NpwZ~2D{#3iCNkXfnklSen_Bkix@mm~P;2&{qV?h~gf|M6piX#vI= z#CcI&Cyd?!eDPSX@+3v}cpFnpB9j^C+|*CDV1IY2_3kX7K|o1%w*3?KMTeS8hp(XWDafCMyx zXOAerC%JoC;1tLK60ksI*Z>^tfCoL}gFk?Rb=Z)_v$7<3 zq7Q;k3TP5J7zt=VBycuJMDUiL@q;M5SqW&s1OH&znxDxU@T2K}0OGwh%2d5I9{>OV M07*qoM6N<$g59dl_y7O^ literal 0 HcmV?d00001 diff --git a/web/icons/Icon-32.png b/web/icons/Icon-32.png new file mode 100644 index 0000000000000000000000000000000000000000..94aba634194c71be01d4b3df0ac638edd82ee6c6 GIT binary patch literal 1677 zcmV;826Fj{P)05&jnbzt0gVb&`bi(^p4NnIK}DwIeysXi*8I!HZdPS;;a%7Ag#G9!&wL%T2> zka=d^OhA-bOr~~W(^5dKM>e8TRWYTT;%ZaXFCC6VFsCyelTt;UHZOKLG;>@?xIa2? za9zje<@QiNu~kN{JTQ@*k>P)C+*?YxQ9!gnEu%XooHZhrIV_JgCysb!-C#<|OggVF zAB1~n+;LycMmvmhU(`Z6en2mnWmLI$WY;`3cyeLSOiWWtPXI|tTSi7vM_K>?000F5 zh=+LI004(LDUWSi%QhvGa9q(iErK^KfHEb7G$n~dIEh|Rt34~1WmCjkQk8RO$52!` zIW34)TohGR0RR90|Nj2{{r>;{|NQ*^foktKB$+7`kox)jbz$3YTG%ljllJxa;okK* zC7l2OgZK9OA(r#<`R?uX&dKxS=XYS|+1TcW zbmezp;b%zUQyt)zir;!>-(Nr1S~}CWw9r8OF&ZE2wZ0H9k_pG!ZTG8CObF`GCjmq0R>HYSlWB9SN(kQxAt z003&`;`rX&?XaiptDx)R;p)`V>X3lufNkVmG~ib#;KRV)h3N+iRNiNTSKz;26E&!`G5vhK9sCss$NjsodO`k|PpBw<4VqBX%Dw;MVmLLF< zNI#Gq0FNjRju-%p004E|&(1^u003KbQchC<7Z;ZMY5n{M1^)gF{{H>_{QUctm1${d zJpTUv{rr}cg=uFg{{H^{{r&v>{QUg<{QLX+*u|QbhlgorS5ibJ9UK-E2>ko|+tkRy zwzi#@m4aASR8m7NCnqoLSDF9-0`^HnK~y-)jgeJU+&~nDQ)6Klr-l{^b$5lLb@%pW zla^&!!QG0xySux)Q+IcFckg2-lf$9B^~;>hWd3h%X3h}*i-F;o@#Dv^Fe5{QVey)! zMd^ozkzTZP?@+!XJ5#8pHkx7KLfomTIb>!pvlz_NX3m&dtl(&6W##C=c230?G}fgp zvyj8}^AyBDCl;0not#Q876v#e2m@w_0j6l?t;WJ;2PK-erNH|}>J$wd&=A`Ncms8m zrj;BvnjpgP-CWBH%;2v3m*ez5nBUAGWj-!YV%!>j@DaiLG z%M^t>ZY)=4C@GmL09=AE=<3=K( zoD*^c?C4=RMTsFJgcF2?AkKs9c#<59Ni1J`$Wdg335qJ!s04{(Y~T)koqAfWQaOnc zDpi~xBZ1i)$>tO@_PX^%B^V3Avz}i;6N36LK7h;Ew>%Sp05V?8Vg={fE;YvhdV zfhI{Bs^a7Q0POF(%yu4&go)0Jr@lE4AbO|l3mBgtEgk?#HDOchuu!-7?IY%=v~-qCo8P5A7ELQZ%GkH>S}frMR6b0v~b zF}2JE-~tq%PlJEV2Z>~E(@G@lKg{s8v(^g$XxzZ>WqTx^)<=6FHc95WxpjT-v;mPl z@IAoY->V_6>zkX~yoe3zW=JrK(9yB(mX=ai+uCz(e$1+p#{BHIM(9MYJSa~fwnwO{ z_VzclNq_&6#`R0%ruX#3YH6veMs86zB^YG4MMcFbuU|V|S!@0R<@pO_7-FNNw(c{Q zC0Ij$iA)00000NkvXXu0mjfjddtF literal 0 HcmV?d00001 diff --git a/web/icons/Icon-48.png b/web/icons/Icon-48.png new file mode 100644 index 0000000000000000000000000000000000000000..871841b2b3e3eb863354feda048168544f666800 GIT binary patch literal 2203 zcmV;M2xRw(P)i)m2p@O-y1%MNeBtzf?fCOh{ZpE~HmOykAPhNj0oVM^j@@ z$WK11MKqpKRSif-RZ>rYOgXMkJhEI&ut+(XO-@NmNL6@a;5{pxJ13eoBb9Mo)Mrx6 zMKY)^8;)^Z*)koHRYs^zK%qf1jyNxRUroALMznBV&P_~HR8=HRPD)HnV?Kn}Q>;NXiDXd3YFNx@SiCkWeLOCTVO5_0|Ns8}|NZ>_ zDHM<_8I5&d+=6TIFC33_U)nMrls_t=I3$|;`~ET;^!j&W+*m@xO*gkpIj{f#c=;rv}-1LBI@XE&Rc3)6)jdu8QkP1#{j!c;)JQ9iXkC8t9%pc?>}I4Y4T6phx>^V!z&$HDEp zwCt0F=&hvXb6VqWQ{vCg-g#!+kAvIE$JuLC*JDT5Xi?Q=Ptjpa&0I&wpq;@{JiLE+ zxk4+dVpygy1g1A3pEML&vn+E`q>FM#H zlj_{t=cSwCxwPNI!PRS6%yMGNI{~{i1Fn5|tpNb0WL=#^H<>gcmn8s@M?jB2Hjg(f ziNe0&tf$mY9?*t+$#iDMsHMY7Cci)&xRa2!EC98JfwVstv^)^AJsq$d0Inner6d5N zN;{z|0H0V=mrh2MClZJu0*50Hg#Z9#mxeE100010bW%=J0R8(Ny)v6K9tZyZ68`@F z{tf+`n=L2|{{6hXE*Jj({{8&?{QLU)yu7-ho11n%J~$g06A-tmmzI!wYD+}<_Vw@V z>F2MjcxYEeAsVETi-mF>LHqLn9YwFa5G&bKM{Vl-PZn5( z_<-3O3wZcL%+VBG-HnW}QA;c3#uc_7bzNP#k)oxgB50)^ z#;3mpctAYgf*I+{kIk7 z^Z2;CPAbQZ5!^VO6YmcKl^2#@QZ?erqp`t-9q&$XRD`q>9|M7hj=S8EN)2G>Z1+q;cH(FoJO!=fe?y)G%C)dhqL^OOwGp)A%6j1&V|4$xTk0aVjHhF_uWu zZXS0*GbK@vq~8d#l0FCzD=13&QTbcwTiA3TXNY&i@9n;k zC5+hWjLFEXJ`@dXjEyU5>guS7QZQeK$vEdMRCCV}pdi1jqe!QP>FE~hDa8I>-su$ z)yG0t+m$pCWFQc`-jb)H#R@VJE?JT!X}MB~?TmpM_+hNsYWf=6)tD?Yu;dI$Ml{^5 zA)Oj(?%$7y$XeZmZMdBS?g$&2!@_$xQIL&fR+dwJc0+w+eM4lV6HBk~wqx)Dv@v*C z_|jfW5s_K-_{S*{kC!SzlPEs`?SMgl@WOFRvRk)E_L6aSD6fqdV2mNNhE2>~(gN8N zht6;qNatC@alk0Mp>5SL)Na&Fhk+&<`Z&*`scq^w+t9Fs8VpTLx@xfHSw&ylbdZKR d25Ga^{{ZH0!?5#c?SKFP002ovPDHLkV1l$0D%t=5 literal 0 HcmV?d00001 diff --git a/web/icons/Icon-512.png b/web/icons/Icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..a4418f3ccaf7a25fa9bda91eccaa74c8ad14db0b GIT binary patch literal 10837 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 literal 0 HcmV?d00001 diff --git a/web/icons/Icon-maskable-192.png b/web/icons/Icon-maskable-192.png new file mode 100644 index 0000000000000000000000000000000000000000..86aeff20000332ce19f12f9ad96ef928ee0a320a GIT binary patch literal 4318 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 M07*qoM6N<$g59dl_y7O^ literal 0 HcmV?d00001 diff --git a/web/icons/Icon-maskable-512.png b/web/icons/Icon-maskable-512.png new file mode 100644 index 0000000000000000000000000000000000000000..a4418f3ccaf7a25fa9bda91eccaa74c8ad14db0b GIT binary patch literal 10837 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 literal 0 HcmV?d00001 diff --git a/web/index.html b/web/index.html new file mode 100644 index 0000000..a3c336d --- /dev/null +++ b/web/index.html @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + FluffyChat + + + + + + + + + + + + \ No newline at end of file diff --git a/web/manifest.json b/web/manifest.json new file mode 100644 index 0000000..117b277 --- /dev/null +++ b/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "FluffyChat", + "short_name": "FluffyChat", + "start_url": ".", + "display": "standalone", + "background_color": "#FFFFFF", + "theme_color": "#41a2bc", + "description": "The cutest messenger in the Matrix network", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "icons/Icon-maskable-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "icons/Icon-maskable-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +} \ No newline at end of file diff --git a/web/native_executor.dart b/web/native_executor.dart new file mode 100644 index 0000000..888af44 --- /dev/null +++ b/web/native_executor.dart @@ -0,0 +1,3 @@ +import 'package:matrix/matrix.dart'; + +void main() => startWebWorker(); diff --git a/windows/.gitignore b/windows/.gitignore new file mode 100644 index 0000000..d492d0d --- /dev/null +++ b/windows/.gitignore @@ -0,0 +1,17 @@ +flutter/ephemeral/ + +# Visual Studio user-specific files. +*.suo +*.user +*.userosscache +*.sln.docstates + +# Visual Studio build-related files. +x64/ +x86/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ diff --git a/windows/CMakeLists.txt b/windows/CMakeLists.txt new file mode 100644 index 0000000..1c2b994 --- /dev/null +++ b/windows/CMakeLists.txt @@ -0,0 +1,101 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.14) +project(fluffychat LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "fluffychat") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(SET CMP0063 NEW) + +# Define build configuration option. +get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) +if(IS_MULTICONFIG) + set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" + CACHE STRING "" FORCE) +else() + if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") + endif() +endif() +# Define settings for the Profile build mode. +set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") +set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") +set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}") +set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}") + +# Use Unicode for all projects. +add_definitions(-DUNICODE -D_UNICODE) + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_17) + target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100") + target_compile_options(${TARGET} PRIVATE /EHsc) + target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0") + target_compile_definitions(${TARGET} PRIVATE "$<$:_DEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# Application build; see runner/CMakeLists.txt. +add_subdirectory("runner") + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# Support files are copied into place next to the executable, so that it can +# run in place. This is done instead of making a separate bundle (as on Linux) +# so that building and running from within Visual Studio will work. +set(BUILD_BUNDLE_DIR "$") +# Make the "install" step default, as it's required to run. +set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1) +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +if(PLUGIN_BUNDLED_LIBRARIES) + install(FILES "${PLUGIN_BUNDLED_LIBRARIES}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + CONFIGURATIONS Profile;Release + COMPONENT Runtime) diff --git a/windows/flutter/CMakeLists.txt b/windows/flutter/CMakeLists.txt new file mode 100644 index 0000000..930d207 --- /dev/null +++ b/windows/flutter/CMakeLists.txt @@ -0,0 +1,104 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.14) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. +set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") + +# === Flutter Library === +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/windows/app.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "flutter_export.h" + "flutter_windows.h" + "flutter_messenger.h" + "flutter_plugin_registrar.h" + "flutter_texture_registrar.h" +) +list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib") +add_dependencies(flutter flutter_assemble) + +# === Wrapper === +list(APPEND CPP_WRAPPER_SOURCES_CORE + "core_implementations.cc" + "standard_codec.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_PLUGIN + "plugin_registrar.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_APP + "flutter_engine.cc" + "flutter_view_controller.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/") + +# Wrapper sources needed for a plugin. +add_library(flutter_wrapper_plugin STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} +) +apply_standard_settings(flutter_wrapper_plugin) +set_target_properties(flutter_wrapper_plugin PROPERTIES + POSITION_INDEPENDENT_CODE ON) +set_target_properties(flutter_wrapper_plugin PROPERTIES + CXX_VISIBILITY_PRESET hidden) +target_link_libraries(flutter_wrapper_plugin PUBLIC flutter) +target_include_directories(flutter_wrapper_plugin PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_plugin flutter_assemble) + +# Wrapper sources needed for the runner. +add_library(flutter_wrapper_app STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_APP} +) +apply_standard_settings(flutter_wrapper_app) +target_link_libraries(flutter_wrapper_app PUBLIC flutter) +target_include_directories(flutter_wrapper_app PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_app flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_") +set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE) +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} + ${PHONY_OUTPUT} + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" + windows-x64 $ + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} +) diff --git a/windows/runner/CMakeLists.txt b/windows/runner/CMakeLists.txt new file mode 100644 index 0000000..b9e550f --- /dev/null +++ b/windows/runner/CMakeLists.txt @@ -0,0 +1,32 @@ +cmake_minimum_required(VERSION 3.14) +project(runner LANGUAGES CXX) + +# Define the application target. To change its name, change BINARY_NAME in the +# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer +# work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} WIN32 + "flutter_window.cpp" + "main.cpp" + "utils.cpp" + "win32_window.cpp" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" + "Runner.rc" + "runner.exe.manifest" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Disable Windows macros that collide with C++ standard library functions. +target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") + +# Add dependency libraries and include directories. Add any application-specific +# dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) +target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) diff --git a/windows/runner/Runner.rc b/windows/runner/Runner.rc new file mode 100644 index 0000000..eb68f44 --- /dev/null +++ b/windows/runner/Runner.rc @@ -0,0 +1,121 @@ +// Microsoft Visual C++ generated resource script. +// +#pragma code_page(65001) +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_APP_ICON ICON "resources\\app_icon.ico" + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +#ifdef FLUTTER_BUILD_NUMBER +#define VERSION_AS_NUMBER FLUTTER_BUILD_NUMBER +#else +#define VERSION_AS_NUMBER 1,0,0 +#endif + +#ifdef FLUTTER_BUILD_NAME +#define VERSION_AS_STRING #FLUTTER_BUILD_NAME +#else +#define VERSION_AS_STRING "1.0.0" +#endif + +VS_VERSION_INFO VERSIONINFO + FILEVERSION VERSION_AS_NUMBER + PRODUCTVERSION VERSION_AS_NUMBER + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904e4" + BEGIN + VALUE "CompanyName", "chat.fluffy" "\0" + VALUE "FileDescription", "tatuchat" "\0" + VALUE "FileVersion", VERSION_AS_STRING "\0" + VALUE "InternalName", "tatuchat" "\0" + VALUE "LegalCopyright", "Copyright (C) 2022 chat.fluffy. All rights reserved." "\0" + VALUE "OriginalFilename", "tatuchat.exe" "\0" + VALUE "ProductName", "tatuchat" "\0" + VALUE "ProductVersion", VERSION_AS_STRING "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED diff --git a/windows/runner/flutter_window.cpp b/windows/runner/flutter_window.cpp new file mode 100644 index 0000000..b43b909 --- /dev/null +++ b/windows/runner/flutter_window.cpp @@ -0,0 +1,61 @@ +#include "flutter_window.h" + +#include + +#include "flutter/generated_plugin_registrant.h" + +FlutterWindow::FlutterWindow(const flutter::DartProject& project) + : project_(project) {} + +FlutterWindow::~FlutterWindow() {} + +bool FlutterWindow::OnCreate() { + if (!Win32Window::OnCreate()) { + return false; + } + + RECT frame = GetClientArea(); + + // The size here must match the window dimensions to avoid unnecessary surface + // creation / destruction in the startup path. + flutter_controller_ = std::make_unique( + frame.right - frame.left, frame.bottom - frame.top, project_); + // Ensure that basic setup of the controller was successful. + if (!flutter_controller_->engine() || !flutter_controller_->view()) { + return false; + } + RegisterPlugins(flutter_controller_->engine()); + SetChildContent(flutter_controller_->view()->GetNativeWindow()); + return true; +} + +void FlutterWindow::OnDestroy() { + if (flutter_controller_) { + flutter_controller_ = nullptr; + } + + Win32Window::OnDestroy(); +} + +LRESULT +FlutterWindow::MessageHandler(HWND hwnd, UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + // Give Flutter, including plugins, an opportunity to handle window messages. + if (flutter_controller_) { + std::optional result = + flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam, + lparam); + if (result) { + return *result; + } + } + + switch (message) { + case WM_FONTCHANGE: + flutter_controller_->engine()->ReloadSystemFonts(); + break; + } + + return Win32Window::MessageHandler(hwnd, message, wparam, lparam); +} diff --git a/windows/runner/flutter_window.h b/windows/runner/flutter_window.h new file mode 100644 index 0000000..6da0652 --- /dev/null +++ b/windows/runner/flutter_window.h @@ -0,0 +1,33 @@ +#ifndef RUNNER_FLUTTER_WINDOW_H_ +#define RUNNER_FLUTTER_WINDOW_H_ + +#include +#include + +#include + +#include "win32_window.h" + +// A window that does nothing but host a Flutter view. +class FlutterWindow : public Win32Window { + public: + // Creates a new FlutterWindow hosting a Flutter view running |project|. + explicit FlutterWindow(const flutter::DartProject& project); + virtual ~FlutterWindow(); + + protected: + // Win32Window: + bool OnCreate() override; + void OnDestroy() override; + LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, + LPARAM const lparam) noexcept override; + + private: + // The project to run. + flutter::DartProject project_; + + // The Flutter instance hosted by this window. + std::unique_ptr flutter_controller_; +}; + +#endif // RUNNER_FLUTTER_WINDOW_H_ diff --git a/windows/runner/main.cpp b/windows/runner/main.cpp new file mode 100644 index 0000000..3c2f3ab --- /dev/null +++ b/windows/runner/main.cpp @@ -0,0 +1,43 @@ +#include +#include +#include + +#include "flutter_window.h" +#include "utils.h" + +int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, + _In_ wchar_t *command_line, _In_ int show_command) { + // Attach to console when present (e.g., 'flutter run') or create a + // new console when running with a debugger. + if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) { + CreateAndAttachConsole(); + } + + // Initialize COM, so that it is available for use in the library and/or + // plugins. + ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); + + flutter::DartProject project(L"data"); + + std::vector command_line_arguments = + GetCommandLineArguments(); + + project.set_dart_entrypoint_arguments(std::move(command_line_arguments)); + + FlutterWindow window(project); + Win32Window::Point origin(10, 10); + Win32Window::Size size(1280, 720); + if (!window.CreateAndShow(L"FluffyChat", origin, size)) { + return EXIT_FAILURE; + } + window.SetQuitOnClose(true); + + ::MSG msg; + while (::GetMessage(&msg, nullptr, 0, 0)) { + ::TranslateMessage(&msg); + ::DispatchMessage(&msg); + } + + ::CoUninitialize(); + return EXIT_SUCCESS; +} diff --git a/windows/runner/resource.h b/windows/runner/resource.h new file mode 100644 index 0000000..66a65d1 --- /dev/null +++ b/windows/runner/resource.h @@ -0,0 +1,16 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by Runner.rc +// +#define IDI_APP_ICON 101 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 102 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/windows/runner/resources/app_icon.ico b/windows/runner/resources/app_icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..6995a1126a5d2c1564543670c56c859c80f7e9e7 GIT binary patch literal 1886 zcmV-k2ch@?0096205C8B0000W07wS_02TlM0EtjeM-2)Z3IG5A4M|8uQUCw|FaQ7m zFbD zicB>UlBD2Jt9BpZQ9_iJbl_@fr+)?9GzyH175TJrc^o{Fro^-qIez(}8K-}2hT9E< zYeZPSPE9OzEZ2b9=^w!GaT`gq$tjB#iesbaJd{Te@2ZbGr~xD zAVftAQGU@sM_LQW6g={@+gv#KQ46{qZp0-Dk+whvbz~4Bq>U5d%e^{m+O9=}rdMH2 zj0nM@L7s6ag+*d6k{?x)x;9pf>sLDP>{czNrYJ~Ti=i98|7Jm5wH-1A7aLz010Ih9 znVbhYj`Tjj?S1}L>p)YZla$+9thjvMilu9nn6*HL>8UEbl+A@YQt0Uy9WU`3CrHpw zo&t~0!M0uT(8P#I{Yr@y$G$eAk7tVkXlm$2WVC>ApyNnu0f)VZJgsJL8EVT21pOwT zJYC^;41ee&PeB#J!^1Sp_vdujT?`hWd1>nCJ#F~>ezH6sz!z}HDh?O8TtKem5+y7q zmuDWrp|hJ_0XiqX*W7!`P%A_sToZ(iuY^J(bjAfDj~-zWf5JiIdC7K$XDO!MACE>o?fd$L!D!UX!j!_NeES_ zl$2|4nb2jWkNS+c&>!bphyv6WicJvG$_@v{g!jh}YHlWev`$Q+_>2K-o{xb{9z-iQ z+~~48QFzKg>%d@gVhU!H0|!63iLBjIz4DZi#y1D5(P6YP%CSnPTU%`8G>9B09VU9r z7&BG`v4jVUd5Avn=o~e&-=03;>YF-kC_Y<@uy7e>ri~kvg>GDHLQT~@%$ggGFtyC* z{pt;|(8fve-s@#UQ($tkYCvLbtyZjA_!aaGy{YczSJSX#cRDNbd56ofd;71XELRGV zcXA`*CWQLPMQLR$oY+l&EmVA_5sO!7AryHBu>2EM9`Y0p?JGsr8}q>9aTyiJ*y_HA@?e>_bl*|v2{6dwpLQOfiw{4~z@CqmKq%ys zdLJmWfBRJ#O3vxva5#}LX)Ly6&4NtcYr&-CaGbro6;_MG)8;cikAue-M&d%Do7UO2WBVGH@W1NCiG^?QLCnD?8s)FU-Gvrs$BTt{YGn*ote-$D+lSy#36^9e;?z%7q#hF=g4DTMR(&a4C~QRDp-NO%v@y!E z3S>2vZ77QnvsQq@#|Ky8^oc51%nmHhNQ6YkIJE-;G_=5wk}q(tSwM< zT8Ay`JE4hI;I%hXAy*84YJK42G8CQB!BB4o+rKW1PW&Kl-DpMK?RM;Z|M7rH(t-Ns zXw>WeL66gi zfd3DSPYl7-8EP+L73Iz3luAk-OWJHUCyLM1VbSvb2)t)U0ZE}}&(q@g_mwc{O#zd~ zV4e6utj?TFR+0)fMfrDd_+U9It~4QWN*F%NSq_C#h@5>_kh8xG!J%TzoE1gh7o4hv zy~~NboNGfO?ol963rM7V9R2n>a=$2t?smJU{pO!dSekl>d_R~wd#_<$$~;C==#F+9 zSf7t95s(j1*p-#<_nqDDg5B=@Eo*GE1~d;7{saHWM!N!mI`O{+0sFwe1*3lpjdlh8 Y2DGg25Bm%#j{pDw07*qoM6N<$f`8qD2LJ#7 literal 0 HcmV?d00001 diff --git a/windows/runner/runner.exe.manifest b/windows/runner/runner.exe.manifest new file mode 100644 index 0000000..c977c4a --- /dev/null +++ b/windows/runner/runner.exe.manifest @@ -0,0 +1,20 @@ + + + + + PerMonitorV2 + + + + + + + + + + + + + + + diff --git a/windows/runner/utils.cpp b/windows/runner/utils.cpp new file mode 100644 index 0000000..f5bf9fa --- /dev/null +++ b/windows/runner/utils.cpp @@ -0,0 +1,64 @@ +#include "utils.h" + +#include +#include +#include +#include + +#include + +void CreateAndAttachConsole() { + if (::AllocConsole()) { + FILE *unused; + if (freopen_s(&unused, "CONOUT$", "w", stdout)) { + _dup2(_fileno(stdout), 1); + } + if (freopen_s(&unused, "CONOUT$", "w", stderr)) { + _dup2(_fileno(stdout), 2); + } + std::ios::sync_with_stdio(); + FlutterDesktopResyncOutputStreams(); + } +} + +std::vector GetCommandLineArguments() { + // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use. + int argc; + wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc); + if (argv == nullptr) { + return std::vector(); + } + + std::vector command_line_arguments; + + // Skip the first argument as it's the binary name. + for (int i = 1; i < argc; i++) { + command_line_arguments.push_back(Utf8FromUtf16(argv[i])); + } + + ::LocalFree(argv); + + return command_line_arguments; +} + +std::string Utf8FromUtf16(const wchar_t* utf16_string) { + if (utf16_string == nullptr) { + return std::string(); + } + int target_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + -1, nullptr, 0, nullptr, nullptr); + std::string utf8_string; + if (target_length == 0 || target_length > utf8_string.max_size()) { + return utf8_string; + } + utf8_string.resize(target_length); + int converted_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + -1, utf8_string.data(), + target_length, nullptr, nullptr); + if (converted_length == 0) { + return std::string(); + } + return utf8_string; +} diff --git a/windows/runner/utils.h b/windows/runner/utils.h new file mode 100644 index 0000000..3879d54 --- /dev/null +++ b/windows/runner/utils.h @@ -0,0 +1,19 @@ +#ifndef RUNNER_UTILS_H_ +#define RUNNER_UTILS_H_ + +#include +#include + +// Creates a console for the process, and redirects stdout and stderr to +// it for both the runner and the Flutter library. +void CreateAndAttachConsole(); + +// Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string +// encoded in UTF-8. Returns an empty std::string on failure. +std::string Utf8FromUtf16(const wchar_t* utf16_string); + +// Gets the command line arguments passed in as a std::vector, +// encoded in UTF-8. Returns an empty std::vector on failure. +std::vector GetCommandLineArguments(); + +#endif // RUNNER_UTILS_H_ diff --git a/windows/runner/win32_window.cpp b/windows/runner/win32_window.cpp new file mode 100644 index 0000000..c10f08d --- /dev/null +++ b/windows/runner/win32_window.cpp @@ -0,0 +1,245 @@ +#include "win32_window.h" + +#include + +#include "resource.h" + +namespace { + +constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; + +// The number of Win32Window objects that currently exist. +static int g_active_window_count = 0; + +using EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd); + +// Scale helper to convert logical scaler values to physical using passed in +// scale factor +int Scale(int source, double scale_factor) { + return static_cast(source * scale_factor); +} + +// Dynamically loads the |EnableNonClientDpiScaling| from the User32 module. +// This API is only needed for PerMonitor V1 awareness mode. +void EnableFullDpiSupportIfAvailable(HWND hwnd) { + HMODULE user32_module = LoadLibraryA("User32.dll"); + if (!user32_module) { + return; + } + auto enable_non_client_dpi_scaling = + reinterpret_cast( + GetProcAddress(user32_module, "EnableNonClientDpiScaling")); + if (enable_non_client_dpi_scaling != nullptr) { + enable_non_client_dpi_scaling(hwnd); + FreeLibrary(user32_module); + } +} + +} // namespace + +// Manages the Win32Window's window class registration. +class WindowClassRegistrar { + public: + ~WindowClassRegistrar() = default; + + // Returns the singleton registar instance. + static WindowClassRegistrar* GetInstance() { + if (!instance_) { + instance_ = new WindowClassRegistrar(); + } + return instance_; + } + + // Returns the name of the window class, registering the class if it hasn't + // previously been registered. + const wchar_t* GetWindowClass(); + + // Unregisters the window class. Should only be called if there are no + // instances of the window. + void UnregisterWindowClass(); + + private: + WindowClassRegistrar() = default; + + static WindowClassRegistrar* instance_; + + bool class_registered_ = false; +}; + +WindowClassRegistrar* WindowClassRegistrar::instance_ = nullptr; + +const wchar_t* WindowClassRegistrar::GetWindowClass() { + if (!class_registered_) { + WNDCLASS window_class{}; + window_class.hCursor = LoadCursor(nullptr, IDC_ARROW); + window_class.lpszClassName = kWindowClassName; + window_class.style = CS_HREDRAW | CS_VREDRAW; + window_class.cbClsExtra = 0; + window_class.cbWndExtra = 0; + window_class.hInstance = GetModuleHandle(nullptr); + window_class.hIcon = + LoadIcon(window_class.hInstance, MAKEINTRESOURCE(IDI_APP_ICON)); + window_class.hbrBackground = 0; + window_class.lpszMenuName = nullptr; + window_class.lpfnWndProc = Win32Window::WndProc; + RegisterClass(&window_class); + class_registered_ = true; + } + return kWindowClassName; +} + +void WindowClassRegistrar::UnregisterWindowClass() { + UnregisterClass(kWindowClassName, nullptr); + class_registered_ = false; +} + +Win32Window::Win32Window() { + ++g_active_window_count; +} + +Win32Window::~Win32Window() { + --g_active_window_count; + Destroy(); +} + +bool Win32Window::CreateAndShow(const std::wstring& title, + const Point& origin, + const Size& size) { + Destroy(); + + const wchar_t* window_class = + WindowClassRegistrar::GetInstance()->GetWindowClass(); + + const POINT target_point = {static_cast(origin.x), + static_cast(origin.y)}; + HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST); + UINT dpi = FlutterDesktopGetDpiForMonitor(monitor); + double scale_factor = dpi / 96.0; + + HWND window = CreateWindow( + window_class, title.c_str(), WS_OVERLAPPEDWINDOW | WS_VISIBLE, + Scale(origin.x, scale_factor), Scale(origin.y, scale_factor), + Scale(size.width, scale_factor), Scale(size.height, scale_factor), + nullptr, nullptr, GetModuleHandle(nullptr), this); + + if (!window) { + return false; + } + + return OnCreate(); +} + +// static +LRESULT CALLBACK Win32Window::WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + if (message == WM_NCCREATE) { + auto window_struct = reinterpret_cast(lparam); + SetWindowLongPtr(window, GWLP_USERDATA, + reinterpret_cast(window_struct->lpCreateParams)); + + auto that = static_cast(window_struct->lpCreateParams); + EnableFullDpiSupportIfAvailable(window); + that->window_handle_ = window; + } else if (Win32Window* that = GetThisFromHandle(window)) { + return that->MessageHandler(window, message, wparam, lparam); + } + + return DefWindowProc(window, message, wparam, lparam); +} + +LRESULT +Win32Window::MessageHandler(HWND hwnd, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + switch (message) { + case WM_DESTROY: + window_handle_ = nullptr; + Destroy(); + if (quit_on_close_) { + PostQuitMessage(0); + } + return 0; + + case WM_DPICHANGED: { + auto newRectSize = reinterpret_cast(lparam); + LONG newWidth = newRectSize->right - newRectSize->left; + LONG newHeight = newRectSize->bottom - newRectSize->top; + + SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth, + newHeight, SWP_NOZORDER | SWP_NOACTIVATE); + + return 0; + } + case WM_SIZE: { + RECT rect = GetClientArea(); + if (child_content_ != nullptr) { + // Size and position the child window. + MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left, + rect.bottom - rect.top, TRUE); + } + return 0; + } + + case WM_ACTIVATE: + if (child_content_ != nullptr) { + SetFocus(child_content_); + } + return 0; + } + + return DefWindowProc(window_handle_, message, wparam, lparam); +} + +void Win32Window::Destroy() { + OnDestroy(); + + if (window_handle_) { + DestroyWindow(window_handle_); + window_handle_ = nullptr; + } + if (g_active_window_count == 0) { + WindowClassRegistrar::GetInstance()->UnregisterWindowClass(); + } +} + +Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept { + return reinterpret_cast( + GetWindowLongPtr(window, GWLP_USERDATA)); +} + +void Win32Window::SetChildContent(HWND content) { + child_content_ = content; + SetParent(content, window_handle_); + RECT frame = GetClientArea(); + + MoveWindow(content, frame.left, frame.top, frame.right - frame.left, + frame.bottom - frame.top, true); + + SetFocus(child_content_); +} + +RECT Win32Window::GetClientArea() { + RECT frame; + GetClientRect(window_handle_, &frame); + return frame; +} + +HWND Win32Window::GetHandle() { + return window_handle_; +} + +void Win32Window::SetQuitOnClose(bool quit_on_close) { + quit_on_close_ = quit_on_close; +} + +bool Win32Window::OnCreate() { + // No-op; provided for subclasses. + return true; +} + +void Win32Window::OnDestroy() { + // No-op; provided for subclasses. +} diff --git a/windows/runner/win32_window.h b/windows/runner/win32_window.h new file mode 100644 index 0000000..17ba431 --- /dev/null +++ b/windows/runner/win32_window.h @@ -0,0 +1,98 @@ +#ifndef RUNNER_WIN32_WINDOW_H_ +#define RUNNER_WIN32_WINDOW_H_ + +#include + +#include +#include +#include + +// A class abstraction for a high DPI-aware Win32 Window. Intended to be +// inherited from by classes that wish to specialize with custom +// rendering and input handling +class Win32Window { + public: + struct Point { + unsigned int x; + unsigned int y; + Point(unsigned int x, unsigned int y) : x(x), y(y) {} + }; + + struct Size { + unsigned int width; + unsigned int height; + Size(unsigned int width, unsigned int height) + : width(width), height(height) {} + }; + + Win32Window(); + virtual ~Win32Window(); + + // Creates and shows a win32 window with |title| and position and size using + // |origin| and |size|. New windows are created on the default monitor. Window + // sizes are specified to the OS in physical pixels, hence to ensure a + // consistent size to will treat the width height passed in to this function + // as logical pixels and scale to appropriate for the default monitor. Returns + // true if the window was created successfully. + bool CreateAndShow(const std::wstring& title, + const Point& origin, + const Size& size); + + // Release OS resources associated with window. + void Destroy(); + + // Inserts |content| into the window tree. + void SetChildContent(HWND content); + + // Returns the backing Window handle to enable clients to set icon and other + // window properties. Returns nullptr if the window has been destroyed. + HWND GetHandle(); + + // If true, closing this window will quit the application. + void SetQuitOnClose(bool quit_on_close); + + // Return a RECT representing the bounds of the current client area. + RECT GetClientArea(); + + protected: + // Processes and route salient window messages for mouse handling, + // size change and DPI. Delegates handling of these to member overloads that + // inheriting classes can handle. + virtual LRESULT MessageHandler(HWND window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Called when CreateAndShow is called, allowing subclass window-related + // setup. Subclasses should return false if setup fails. + virtual bool OnCreate(); + + // Called when Destroy is called. + virtual void OnDestroy(); + + private: + friend class WindowClassRegistrar; + + // OS callback called by message pump. Handles the WM_NCCREATE message which + // is passed when the non-client area is being created and enables automatic + // non-client DPI scaling so that the non-client area automatically + // responsponds to changes in DPI. All other messages are handled by + // MessageHandler. + static LRESULT CALLBACK WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Retrieves a class instance pointer for |window| + static Win32Window* GetThisFromHandle(HWND const window) noexcept; + + bool quit_on_close_ = false; + + // window handle for top level window. + HWND window_handle_ = nullptr; + + // window handle for hosted content. + HWND child_content_ = nullptr; +}; + +#endif // RUNNER_WIN32_WINDOW_H_

    uBR*N&>q)P-gx4bl!^WDKO%l~ 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�jo*dP>GCku0GIg;$$CUM;7W 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

    uBR*N&>q)P-gx4bl!^WDKO%l~ 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�jo*dP>GCku0GIg;$$CUM;7W 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≷0!yq9#zj3D^BwvFwuT7R@!&fr*d@pp6v z`aNYtMyx(c4|^y*DPD=VF;;QtJ%SEAC@Wdu3yVU85F40M3F>XW#)CB6$bnt~a#)22 z<>IeY>oO!g6z;O32#U2S_p)7a0ChEsz_ec#jWp~aYWV1zpQN6My7@^|$y(89AcH-P zIgl(Z>~d6#`}gshZH2>bZDm||-!%Kx90ij-tbw&|N@5=JFhHF+qy+GSij{4^Hm@mk z02^;kA*?W}6Pj7eX<*pd_2$pqvu}+N+s<85#}zZtXxOB5I^kpkE=JKR&gd?B0gk|`HJT;JZi&hJuYqM-%!qh!cx+^8p$m~2k*f51j!Na!1gvZ{H>^HA>5wWGPb&`q@#IAogoZH5t#V2a&?tYXf)f- zrpH7R-K<-pGQZuZYeLPw2f_3z0L&~+!J;CbopOx^^QCmJ23~9t$$Q~n|-mT_AqtFO`0l|iZqUIN z0Kt^g)R7vFb|q~<#!ESnO2k}sBzWdo7?31o>UVHaWZAqNrt}h3zesvvNGJV*0= z&-sd1+wmFds2~W_pq%jU=xEW_^Pbsz3%_r`C`>G)yE}ix)APDdZc)2=x#F;E-BQzZ zu-$cSASx22`GKkRMP@3WB=J2YW}m}e@;|TFD6`3C!jyuKm<%lkQNdM8?EJ+I5foh$ zbx$VYkvhza2g%H_Th-<@aC^;cz{qj*dBr-B*L5Fkyy{xY3i9tl$c66-I=}lyC>C+TC3NM-K{4hGl}WG93!yBbPluF@}|1 z<4P%FLKuz5$xX|0wY3&hNT|Jk6%_%HArDR+;tfuD(@v4fI3Hd@I=sBPwcck|De|zd zvHZx_ITn3Ry>CjMq*@@!!^l4sXhhstI0NY)qf&gk@R=?%1==taoG{2i07$~(BI3qg zb_b@Zt+D!@E3hF>cewQ3?Hxr}MIN%Jhm}?mcI(z5IP+d2Je&F#b2`jbZ$cNWN#ul) z0DHn>aoosK;eLu!A{=8P*fhq-LW@9Hl6V#(Gg5IwT&X%&*XYNA>PM-TfGSKGhIIAX zdcz|9p&@A5SjJq6?1I5-$TQi}Su8#wNc>WxP;uF^5yJ>Q0={KDO%e4{uDCm_K)Eh7 zr##Bej*h*nDYP5-7Su6y=*W$j)g!u%S|XXCTK)ZyRZ^1poL*-rI{hoiNdO_eA&MlC zTX90iN;vh%t7JxuwzYV&%eC_J{DFtKigqFkh6HgO?x!vy(tauyIFXEhYmjsF8P;F- z^XiEPJfiP-Mz2u3Z@l|kxHyvHFzJiS+}Sj@FCKa#WXqw;-d}@W!Lt5aF9?{~pH9sL z-(2k3uLcsGSqfxtM5sVoxqqbTDlaD6aVhWV+BX%Fwd_RbA%r#5udCbIJSM(8X6l>i zb0Dz$>rn5!z^H21Y5-*qSi(Zipv*+_^p_DxRZNXImyEfh{SPejjRngL=0|YoC_?P! zQKjx!(NC&&5iDS2nq=@8lAD|dQolp;{7%CcwJJ9aJWg$5!>-aCpDJT7c^D+yUQSBc z*4slKQVyTO=buQgE@!~mK+DlA|55I|!AG~S*q|G#E_2nY2HBX96HWxn`+m_(=X_9c zdC7Tw=9rK0oNv*L@8L09r;!rLkPQXflKXr{r2LS}GMFRv;}P+~rea-g^YdM)@%nSD z_$;ZWzTZ)Is`hR2%S68M`ggMEAHadw3ZXQG@qiI_2oXx;Bm650G2FBsnkA-J~88Cz_YHKSbiU(Wig(~CS}`LRle*5R;5 zrk=^69fH$CGT7$U>}W&^W3}M2(0%DU8A~5uRY-qKSip64FJJzxkul6jWCthdq_*LL zH!B}HqF}KA5+&!w78UBut=+FUJ8#aYm4KP8fUb}?u&D1Zf`6vGZn2PYD zlB$ELL==R_FS7+q-ge1yKJL`K?jrPVZ_RSmJp}K?ypPwZfj{#U! zrR$L7$&bD5w26;`TG5+Zy7vdqdiPr^J9is9UVT@Obj6I)f;5dTCcd8}c9ZG| zKf{uPHjAE*?}YE$okX?WQ)gFtSDr_!emeW1K`uH2vqe>_BV`Ti2C{w=hv)`(?1kAXV5S zO%B>L?>GbDu>o~>NvV-UZlqyiF(u%)knaC>;HX&x*E9Fj(-j|8s2!+b92}}$utS_~ zGUH?zfUQ)uGl@|G1SQqw)n0B*NLPkyxy-Z^c`FNzQ}Hy?k>8x&_=j;KQH4bLilaDZ z*g5T5r27L949Gx5J5i_BV!AeI#|I{=pHu2mY#(-vAQ25oL>*3aBoaDjFrH@iZ1piP z4m@d%8B*hR4J%pFKDPu_c!7wIO$Z0GYdIBJ|H_wME9o&XaW}mOD`z&h@V@Ufzw>1~ zRaT{VKLAy8ODMP7U;Il{-g1h0ee!S9?4ydfN$PV+xp}X+soxe^-7G-akpasIf5(>= z*k*wI``=~e$m6r#{}|ohx^%k7pzQ+~bJBg^hZkhO;qAYG`n7*Dqa>C|nlyjZEGu*s z{0WNlRqs-<#z%*98wKfS!zIE?a94l#o5I3!wN^}I$}I6_$Uyp^T>@|M6Um(vI!NGe zW|{Vh^*)R7nhBM4&~IC9c)m1rQaE~a50T91K*AxwgJF~fj9fnC;T~;EQFcMKa`3)Y zH^XQVy*g_bM)=}0iTCq?exQE3ORBlyM`9Ikr&pFYu9u2Y(KKq#0;^Kj<5CqVrDz2| zPHPb^$p{Q?reT1Qnqz2x3OX{Ga4NG~8Mm0KRu$$(ay9Veq`Kn#%zOq7B=RH{le+0~ zyh=KJZ2lWq@uM~`0_$_|P0nO|r<9FX1tVFrwx)_{ z+PD8Mx?)Ko=cZs<7t4=s%uu=M)$e?VHj7}yf|!D=O2YC4PjOk>a#K#<7xpal7r)A7UVfX@KgVX@-BX0lB2Fz;eC*d1KiYJAgt@(=3^&B0a^Mvcv zSr%1F>>)J&pBDfrgHM$qTaaW#Jk5@hV}~*OGks!@M)yx8uLoYugddDC-$!1J97cq*UtAcBd7tUTP|0)T(?H53(#{yB(z@4SjBq3y4g;Jv?st0<)&eiF@;-OUK5uI$ zo$jwl2aUHoH&SF=ZC5u$-@3n#c)4OeEUmU@b{Y zt~hoaTwEfO&j+~bt{-f==w3$mUf@aXQ(5eMc>leH;9N%stw*kES@L8ZfUz55qWQ$fWG;B+jLRPfWaD(x}tPX*E5f^>s0*%qlCwgt%$>Lo_jBuJz>RF;bR?yPE^Xh$_lJG;5~dRhZ{Oog&i z)?|~u?`K6ZSPsXo1ZSgUYrN*R!v7PUrHJw2{RcVnV9-@9O~%B{)!2=3xFboW$q0y8 zMAgv|-aNAI9^r_u?~-*@R*-mnx8LIAS2?yEwrb?8HYJUf3#oWTG&5IHkPC)ZC?1#n z`tQfjB#hz*WOS?4&=kK1uAnn2czK2!&Ng%q(?|YzPwKB&W?A}qTx=Y%vg<6f%o$oV``EA}!f1g|LstJ~pgyO`L}L?Mi}^&%9z9eo*hHthiof*cHA;pi~KtutB)+|qWhW~Y$Kil7#cmR;AQ>GET6`*ob_FS@S80t{|ZlISXyZr*%SL+f;=mEkfGkrhJ02g}qNEm! zBVM_W@-*_ArIXJeXOi`hW_m|PYYB%Y9tbNa=!80oX>BVY>>v(+&(TzFB61Kg9^wH2 zt312GnB)Oan$3;%LXWUvT8kf|Iq4kw7+G`ND9K5kxN%Lw9ppJZhP*kDw^ZC@k@8tb zOFkm%)xF&SN2&Nh%d2i8H+*(&-q(`Ko;K4i?~rpkVR0N<7l+<1NQ0=uJmdj5H@h#j z@J~Ou8H>RCyKL_}v%*FbpJ%-HBO1qPUf;LK3fGYO6W^EnnAeyS&#xKZZ=C8Un31mD zd6HgaTm!^JNK_Y}RqJD3`AA$~5$9~(J_tlj9ook2YpmY^Ay`X-1;}D!$)Qs+ftfhw zg^CuY>Qk&iMpc_rNsO4xSXTa5)0p(T5#P8kLjvnWf%)yV)5BlabWC8b9f!{j(%O0i zKNb)rcvx4BM4%vm^D^oz(tP%++hH<|*A?taRJxdKPhMi=J@gXRVB0a>xK}7G2 zE~w9wcH1gFsj_H{J`5M7)F2GRdU$dgrg#om+0F$O==2OAg+V-9w?6=J^yf3h4d_~M z@6Z}WXEzsqm^V0zp!8<;;Y<4@kb=66zm%59b z2IHD6mOM(DV&;qJ7FN0Vkz26YW-omqX`#kh5>s?gO|^5;4N%}xwlFUp9i zBAGI+mxbYIdlhgMgGh8p${qqWYnjkR-EaBdH}tRB80ydvQEt%6LIr~wAqSr}u?TtK zxbNJ9PNYT=;>4Dv1b~@$wXHmKFTxMw*BbW#m@OjZ*2Oq z!xd>c8Mq}Savy+lwpfbMVCI8**2Ox{Bh9Sn>*upp_E%OxJpcJOf4ZglmZV=|+D(@EwDAMWlHY(j2}TX%9**ld9ZDq>xRZfaMi zj!I(3u8$ft5WU-l?JfLTSMpl037>;pj%_xqLVWn;5pqUn3Nfg<7@b z6q*GrsjG?{Wex^vm>T8?8ZHr{LR3krNb5043k_h*WkQbU5HZ4u>`k~O%i;azQermR zW?TW8aXtC?7?YW9F@t@4zxIM_L^c;I3lU#{Bx0EfVpkjIO&GQkh8^T&K8%TF{E5q+ zFd$MJwfC+MdMTHVw4Ao<-{aZX)Ouh!a%ev`{~;>^p47EAf*Fis%_K?o6K}Ax^bFJ> zoR$yEBNh?scXEWJz30)SN{s|<1J!_X4Lrk2|MJ@#o6-M@Q~C=3`!|a3-7Hez^+x{< zbwSo6C#_8PV-K!=N$jXz-=sK+qr_< zK#ck){yNfnaY{Y!$?>YkN3(uli!%>Er>xn~g{-or@GThC7Bgon)-8za_b4OMLUdv_ z$_u{jH=AoG@v5+tUF`g9*9cFb4swaW!S%6(Wrn(psWylU7u0(f+6G`1SP9#Las7jg zL%?T%v76LxS_nA8dj$D8@zFEjdi4+{_?9cfjAY>+&ehYHgYV=(es^PqqqAL8L-UwZ zt$O=U_iORLD=QMWR}>D^$74^r-ii7viAk~rw0Oe1zcHxx3- zpxlc8#<-W0H|v5=4%@Q6Y>8QEYBHODDsTx4pwW(9so~0b;K}=eR^( z+{ZE7JsSiCPO%58f|{u{L)}VDCdebW5U{vEy~U_c$9Oc_5aB<=AMNE`bZJMuAXd;g z{L}WOL|SiPu61G`j|5;PttVse@He%0^_gDC@g8(-IT(oXoxYFp?HkGYO21lz+23_| z35hjy{!0COUz3gymcDdds%g>muzD5OzNr}9l6U}j;dQtbBk=FQZRg*R?-$N?r;m(= zTD%_ip!s#=6($5~&y5U;i4hOEF7MXAODW+U_Gs#BWNVnKSr69cijZS4F}ZRI@bq?f zsAu@6gqQvOA(2G(!SkJn$U?)$^-*HTC>!Q%)1$HBf;t!f46Osx=*32|Yx=MZ8ROR8 zyIrPlbPFa!MaB-{lN|+w8jUACL>D1LKxvkM_4Bnr`^Kb>E?@qI^kkUhMbt2LC0O#l zWGE};#;imb@QFOYAy7~43>B5p`N8y3A4n&%z2AdznPhRP^v~?FQBRj&1*^JcuB!SX zp2eR%eJB)lM(I-im&h-^M*Zm|xFo?lM|eOg^MU!L>-f-6+<<0U3Wj;=iP7OCHjqwYsFhy8HR-j2G@v^kwO+q-8h2NBroH zJvNEE0q<1a2Kn3YJ2=7q?*bX>BQ&A}>Mn8gnf+wc&(oG6$>kh4MyV<>Kw51C`O;<# z75!%krGJ&5KD}K9P)~(VZfpwQdjHhE;YHMzX5g`&QV!_<`tpDq9JGH8}bT)7#ReU{?$jPv1 zEN_3SLF-5C?JEUr2He>PnM1q&CLhrWi(x2$(U8dH@Bzf(w7V6cT-mk)?8crjf?ou( zyya5jN@_291z)EXz>d*wubMYhC6O!{+YIm$pX4!IC$w{E>q z&FZ-Shy8#(N26lrIr*rJNFg5)?mqy59D#K7Qw+(&8q~_+( z`c8TX_m`6*hy_3=glx8e!tZ`d)I?k8ebh>sg2D?GR)%e&3eVP{N;&0!shUZFsx0ne zOc$Oct)pw?C?*Y+@dS8ankTOEQw+NbSAafxgV&;&r{=Cf9m2_M;%EUUGbNGtXB8)< z9u1ETgKh&C)?(6%+lyDEeY@eMM{S(_E9g@q%twpQ5&xxS?+>?e&?th;d^usqHQ^K zH0Hy1zdx|*{yOK`*1RH2n|D9~tPh>B~j8oFoPbZ#2F zmcf+A^Zm94Td>oAO*Y?&pHaJORw@!~HI+;%M9J3^ey5SGp>)knrr2ysg83846757{ zD`0wm_Y;{~;^2K<>M>sO9q8!s8fwQ5QOf&kR4wWzW5K2bA}zie8v>_F9q#ZxutU6u zhYUa1Xwv-!lx8~$xddI&J9Ixupv%8!mg6gEg~G7{0UyFQ;dprb7R}*?0xRFvk@1?* z^Od~gRd;s|?c)XF1R{5Qxwv;)=NeSVC@$bs42zw`fiA6IFl~gFKZ40dEtiPkQ*ZE` zFf5S+yZND@0UzXLTM5^E5{%OyIS|F+!Cx0Q;2@1t=AnL_?h8>#&WHtuDIH1wq&@p9s zx!2Ir?^Q%8U@tyAqR3}yS6%m#11UvX3Pb0h#9<~$F+1`48dH9{AK%JIN>wvfD6d?6 z36|q0feSwa(EI1Y-^CCye+XQ5Y1J5Oc@#f-9Wa{VE)zMKEN?dl+SbNyxOS8t@E`xhBQc!j8h+uY??#I2 zxV#o`ypguDF1o8_Q4<%R4CNYr@49)fWGu48k9CMA`%S9C*WUNe*S4IdX*SNRoSgOS_`8L+182MI?*xPIn^E`IrBnCYWrZ?> zUU=V5LEC~Y$>3p}4b#txHtev_>tCh)dtFbCfbY?dc#qN3;{x3&5zlvr)BoPVAf#QZ zQc^Py)?1)3w~3K0f@Ks}0}(3jG9@JX9*vcg#2OAgF^*YCP}$ zTQ0C-*+bA+t~7kR$MEkh3%;#h{5s#Owv^ep<<+%B6`Ueb`a?9wg|{#LuuInJGsm$X zJWJls0gVuLA93W&Fw?hc9mxr;xXAMYDjd$J60^pT`$rvq*r$fp2?5wylUdU3gUvE< z09YFy*YErefG1la%wFa9S9|1l-)VL%E!mV~FbL?RB$$DTxRpZ>Bh|iC$ znIx0Kq=9MPeDHLD^XAAUj}9>x>QAAYu5kTzp>+`Vi~@BNE@M_6UE&bb+yZOEqOb<` z!u&zIlsO+%F1C4mZL&FdAS-gXB_Y7s5eUB{X%5oToZ^=j>~>fwxD@wd(Zb)UAYC5a z9O$`40x!4aVdanInmNo$9w2W?+fR?HJU9$hx}R_P>a&7sv;OSi7=GLFQq?=Zz=BpM zed+?ItLLyt(jjOo(TPm~nG-5;x#Ro06XWIUF6MuYJr19bD+Rw^T77KPAhU!$H%D7M z9DkiLFEqMfR}rvBqsR<&ghJk;?!eAVIgCj4Kodu$v#`=3<1}5anD5y%R|ZHyl+5D zBzVQ!eUD$YYVTH#sGxkVN9w!qtEJKvLF!gH@bBPk@cx-36)u9!VFp=a8-kcPL^NH ztt&hm+_H&mbqrckCCzu2RFEcjQEf>4scP|tFiW>WR7hT;BMNoNRIx?kdq=@y&+&oi z^^bot7hP#WAJ*8Jz-dYk*+q$=bDsT<)9_6|jgyU>3BfS)t#<=roBB(s&n>6SE|xcb zQbJ6VN&23Wgrjyi60z_2|gfZ8smqLfS96MmrKmYchNy{j$_N>=ymF4P2 zqZq_yo#b=n`sTW=t^4@;I@_W;6`#a;Izz5r>(; zz12qwciOYglVpr-9#{y4dQRqCt3(E;@yM^4PqnjWa?!IgQd+iuZ7q1p!^II$3Z_C* z9JP*KxJ~Rzcp@E%LN1L^b%nf7AWVja&+W;i)6vI1lpO+E z+m@4?=fqJ1o0wXu7<@>-kG~wec?G`p#1>Q`J_f0=B@(HJTX}hp+4Kx(6Q2$EdH{IL z1G=i@L}FX~Jy*)f4)Iy^Rc&z-PqrSV?|Z?{@!5#LzP;P-1w-}g!S}n9Za0f=r`K-G z_azL!uW~CNCxB3F^>`4QNO{z#7Z`VtkPDNV;TF_QnrqImsPQK+6kg0TO|K?e5V9OS3gd2z{q%b3as-h zE^-um;#L&8N<*WHMLtI`>n1h4Zp?q8$-eDrg)pRGuVe=%;5qgdZD*)s%b# zDZwo&9ylJ{5K}$IDqD~5=<+B!WWWl(BW)2B4^F9Q3^orrz@R~b!|G~Z9TxV&pF&M7 zQ%~2?!C@?+qNH+$L6YnFUG*k7>3OcpPTcGf2hXp(3c;?N=huX+2Kn((@8=d>%ZlCK z+ohCFuh)Rr+Dz`tPP-*BoSG?A3gHp>-qUGktKrsw5_t(}x=wd1T5MeI`;@mKm6%;% z&z-Vme+|nw8kJo;aV*6mw(r*^_S>_B!IBvojFVwT(q<9k1n3PUc$33ghRrRy$Uvo( zumOXazZ&*8y25FnK16u6$M z+1Lsz2QGv4T8fv6*ZI^~qfrH!>(BkyYFTo9rrZill1;4m^$*fqV=C$Zj;VPV9!#~$k&rO*X%Kf3;#=BM+A=?%&&N2 zWMC>2+Cuz4rx|Idb6RIAYI$+W`G=CJL8t(1?{SUvcw}Q3Sf)635TocH(A?`K)WA`T zWJXEhQhMVLBPy6MjdI)H$S{?Cq$0k(_BlJ*HBt|NZ{Gl4sbF=@T7Q1cy!4wzH`CmD zox@rf5(|a~((J3rFnATu&*Fe-m-EfEHYAmgPU%A*wbG4y3cnsD2Kg^&s|Ug499hZI z5Ivnb&8+FoG?lWi4!WjAqh?qWk%_pbkk!C>faX!E1vFEfvc5W7Fbt87_#HQ53sAl? zyI9rpjSB4TDSGfK=%#+BFb*g z#t-AH^Bw<4+9xfW^gvlu)h&j^8{{EPRz2^2$F6_eQ=W<9S@ zS|*Q@OHm%b{KJB3*BGn8gC8jh-NQx&5ew)!XeW4*EhO;4Iph(|oeI$g_WScX$%_3` zXBfFeRvlZt!>%w=BQ@WJ=5ikfghC*YfBFMS4m?CKKQxnK!w$k75aTZ?7cgY6dKLIV zwLBqEpqmJfP8#b=5~UOA{8ta0by$bh&$BN!z5~zxA*`K7GpPHV0VbO?twIXdVAG^l2S_x=Fp>VZ5=^_*wMsMKj*Cdf!Labbkb>G1RpAs+SIV zM)oVtMqLjQ(j?1S*uG>a1qgV6H$xO_4+c%h`VBveih6h3(0V`ie)yhU}P1`uYJv zi;%LunJm7|WIaX@yX9j=*FRPcudI|_l=pMK^k8qpC+;Z{)xHzCd&Em((w+r~Vo+!R z8RfL)h1R8DqzRF+m@`1oBk345%oLfs!#vN4?`q#sV-rb$} z>rh0?BH^McR`4Vy2s<{N>iK-CsR=z0xC@9=CZ-aJmM9yEMPc$j=|W%x?!x9Q*6}&3 zOZwg67>dt@#LmG{h1%wJr%4wStqTyg3p@RE&1yDC0wX~5cNppro;W0zae&FO2LkXP zazqk1l$|e5Cm(htJDQZdTW2HKK1gnZD#c{ku;W`@w!!iN6>2}OwN^ArPsylM<_k(l z5H4!K;OiP!jt}n3`4k_6kK=@MLF7g6IW@{OG}~q!OQ?%@dVYvx8U$?5x2bGzc zS|x`WX8+az{@tYMg`zQp|M>e^IPO@H^u^pxu`bMBz>dE~yO{?1@mN^T#8>tTL-%1t zP517--d8}###)v(UOQp}ashGz%!34>P~tA&4@)ChZu~-j0}Y0jz`N$EPR~sxn8!)l zH>Vd!^^v!YYdJ6Hxwk~rRjX{2Nx=P7^3K;6TF>VLo9}%`+|;-yq%wLiA|~)w+UBZU zToDyb+YiWZZVSuh6IH`EBAvH><6L%iOUbT#-~KtAk|l!zqmlt)*~}_cx1Ki00)ZRo z2aW~GBZ&Tz5AGA;zFAC4RMBvBky1& zlGDlr!i4i< zx%m{5BXyUn^L~}${T@*!6xriX(980%OJuMlL^V(bmxZb^LhhBTFiCJ{T_SbQ-*_DS z5{^2YSv6h*Y)0IFNfE)c+Bq>5!DBZM7;tLolBYXb6Co|cWX%Az!otC^z9x`3gB&Np z5n;~H;Mm(SDN~GD7VIK16Q$?@Z=wV=sr0GSe7_HN3RQ)9ggMAHV*q7xzjq@L)o3ta z#E017I!XtdkR?c9bBWvnGCd~O$R`8jd#Z?=5iiqK&=R2PLdRMV|AsfoOwyqW-b#Jc z$sjRMyZsvjm)u4(fohubm1DNV4?>5|zs{9xrKGXB$%=}GAqr&#{3KcOpe)8@>I*s` zRFp&7Kz*kQU7z>xRCg4M)keSYPUPAc4LEs>^sh+I3?fd!h(W}Q9CI}amV;thLi1H~ zjhzK@n{&_nifS-hFsw&tYJ0sH*G25{Ryr580}yFzRfftFq>NDS&LbV(iI9WJ8xpYY z$P8ME3*$0XF(DjZO?vPX%YLf|3fY!k1vJwZ{@cu>Y;LvJmiYmN&3;C^XmD=$^d<@j zRr{p4e_f#{`01xs3T{w&RJ#aIfUxi6E&ya#Mjzne?c&aW;8A`G9ylDnpRzYr5M-Z& znlaT0Ly@Mya2$>jIa!6NHwC<;rjtmmF!@Q3LRI=w^R{~Fi9`(5M~`#MSn&5h!O?7VWW8W3KFP8c+fA*883_UvpCWxSr2 z_>>j--wpS2KJy)U`fU8$unBzJr+puuztHWfYhLxf_w?-V^(P;D6{4=#6PyZ?pt3rZ z>4_%a1=S-T?fr)b9|zc&vD;b48|^=@+0dcMu?F&>i$ELUt`#Eu|G-y52pDUz2#1P_ z*HeZ-l&CRygdBt4_PQfURY>!5EH^NVGNNfRog3sS;_fpVs{pVGhktP!T1r+Fs#Eoa z76ahBq}MI(@?zEc7w+TCFkoo36t8KNSR4S(e`Bg|R+~I4bz?IK@3Cm%^)zc*GWk4* zpU$-o5BYp$G}PfC&Y2VTXZMuip5xc%=oZ01mD5$Fv#4D1@p_W5s!(jWYJFRe-nOiC zd%XI-3}UR%`1!(q#Q8zv>56clohOYfU-DAwW!Nx&YV{f#jHOmimhG(prT#LRl?U&T z(>W>J-%R2>f0I0jh6T)SkR*$(m5&D|f^K*jKAuXj764^R1ESH(x4J(%2K6Py?7v_+ zrr-h5O|*C~3@m;>#(G(V)h`xxAK=$y1G>QpI}{H2vHGHQzAD^Q0%{Y2SYRSbAwVo_ z*meIR_)l5}SnlYM8xBcW1p-F{fI5a8YCt3^qO_9(Sz79Qb?v3X++dSR*C2U1;18C> zCliC!^7T>fMDG>5j!QV7k6ixvZsd?xI;AefuMl_oe2n?&V?L*|^%IT7D_B9Sg31Vrnuywn(iuS3b^Hbqk3aU@;x=;p#g(hdN1ctV z2vNz-DlGsiDlB7;h#k&ekRC62Z8#TDinN~X`W$?8wK6)ulWlomq;=ahg+kx5W2O$5 z=sIDWEmco4Bwocb!CQc?5tV|-QF>kaxC?x>k9s@|5Tn4a_k^md!^K|rpinfYZww=( zLqabt2B2aE53UWd(9`#b%nj#1t7negLb*KJjJFaY>=0|^ZGFII_4Ka`7t9~RreYr7 z#GV8(`Sz-~UFT=Gs?$JD73@$MDw~w+-O~GxvilB_S1Ljk?&FEIQ4iq~E1cl1KP3*( z-CrmF<*wcA3fQtb-cXxFc*b?*f#+Dctf~3?cmxB_!LwfYn?;oeFB+<=lowW%hh%MZ z96VSv6d?-vdKQyutDo8rKX+=e-N@}3CZO~9{4OMNLw+kNe(MO67V*K~(kIHCJvg=< z2Q$8M>=jz-WN?Hc-U!+^X;k#c(U(o*=)1j;vEOB!_vC5S4tKGHjn^ZA=Q}u( z;}ugvknJ!#y7SGDbHD$V{(Y76_1wAY+eh#{rWKr8OH}KND2l+U~R|P?8y~$*8Z5|D| zZo2KQ$aP6^UQ3dBv#KjJ8bv7%-ychoINAscfcUnKvoY8rtdTI*9^mX{jK|^`5f-X= zCSZ?&(h5?=j)ykBan`Xzo~aR^Rx|5#cM(xfBm}MuwdX7s3KACFty8Hbyvr@5@T+IIb+wQT?6noT2>nPVQ+*KdTtJSEQZMu7~ z+2Bm@o5KOdU{8!vP~wb zqHtl+lx5a{Ep&R^nHAfv9?E` zwg+Z45sG?n7IJQM{&%Bpfc|pnQ0Y*J3^E`y5*1BOU&?=M=%!B+i}Y`fjb{wz)5!p6 z5@0+WeMTR*F1Hj@f&a7iD+mvg~K z{3B)&K6-ocJG+OJcR>&iErK+zF(GMl<7+FZ*3EBfS!_~Fta};ue=fCsug#>!{ z!^!z^ihiG8{Irg1_cT{DVO1e4z9zHZP<3$pRK>ntCw~s~O%yDoH*O@PX<+A}I8*n)O{^S~B9iG+(#L>^{1;0O_poyHq5T9yo^X$xz|Zii8d z3abmLBL!e6g)ky2Jt-^QTsy^AeGgQqE_yYXr}FfBjOar`2;+D)l(R4vaObpVDLmd? zHqVwTW7$}Yb`su$uus*}Qux;{k3oF7h#W=U?uWPfoa+d1AuorSIEf?=S$J^26#vbx z-?7PksCMRid%Qy@9pMj)Ik6)`ZCDBpSd>SlbZ&hQ)jdK-qBq*rvMcgjBl zena+tN6GH2&YT$G{r-n_VIbDb60nuW>WB$Rg}5-<*-AnbOvi*~*irIZubpQBe^%E= z&tuN5e>Q{%9(*~`+QWq0AWtofgL3Y=uuz$6?_SU=_=w^`T9rxaM2&7hUYop(O^ z8Q%c}7FOW6UObez@~Cy{CMXlj#m{KhXEaw%h3&5Z-l;^j71@=R|B-z$Y6Oh35iZ@5 zlc$k#0^h;#4--6d%(&@u3b_RG1OK@9Rlq zu0M@wAa^d1D)G?u6c4f)2C&%CHMfDD2R(xEt}Oz8l*xk!wz`ja>~s;_ zbr{u-ltxu^)O^Y&So1BG&ktY15Iz@l_a|_T?7(g2>~Ed^fs;<{FQD64Dg+p{6O2UF zRz2XoUo>2dWX~Rqn6QW~G_+7{d_uuNP9l9U7ux;431=1<^qG==QP z7I{rz0W0LROL=gtl2mo;u<9Eu7yC$}kw*$x!pA@DLaj8BG(=Hx9Ui&KIE;IDQsRyW z`+xO2q}0_No-R?k?|HuIA+TDr^lIl|_`e=vFt2Y`JHK-3R=yElbuDx@aaHYI|4w@` zn%YXGY||9i-43bQwejB5i(>^Dpwc_)_kc7wb$@8=eqHhPeBYLQ^db0+B8n$x;OTuo zoOs>7%43ZH&3URYw6>va`*@FRxZO}1jJWwy+!g%fEA&40of@Ib{WtP?y*-BAd>%lS z(f_`T$=99%wY3f&!s19+TNl=vI5|k!B(dkP%m|G1(*&~;OG%zZq6e8q8Sob*2f1jj z+7fW?VCvxmir@yprVo-ckx3v(sm3BdeF7>EuhOp?=rAy5)(S<<(+JnLRviq=5Y#(P z|MqQOkXHJtdW`5@!8_Q%G)>apXLHLh{*_2Wm_+ztcHDE>b$>*r=yjTCq=S?glDIlh zy8_#X?vw7?J6~X9^Zq}o&iT8psPFcTZQHhOHc4aKPLmVcI58Tljcwbu)7VL4oftRo z``qV_asPq+!y0?9z1IAG=A6ZulxX>+-^W6d1|)UqNbEzkvL-uT!R#MiS#}|5*Cmm~x9-i0c=C-d^E`r>9 zWQtk7cl3}BBK6T1T|^E{KAZo(65!@4rkzw0OWAK_F5u9vOIv#r$FJLQ6&^ zV@B1zw_|9p#rd-0upu*+GyYh$+3W7rXBZR(A_MT^ z2U2E%d7%DejtDDKRQ#mg`4hiXY@ezquK-7w$h>7A5V-b9FrhlqR@nFcIvnOgd09?* zNTSjyGLfZhaz<)MoAe93(JdML;FUT;1Lq`f(>^~ZMe7G?iwkBxtp^DFY{BYxHW<;O z5nxCMRTd`+tIQ2Nu7)@QG7MboY@xslMd9-P<=D3JUK=KyqHoKNGWr$0U^mGN*K)xS zz2bB1+RzcT^))`mg{fh04ap*u>_ClK7-RVnyY=w|V&IDER)IK+a}m zN-R4dJIP==xmA;zq+}x1-S^n^g*;bEAWA9*B0XE;e(y#rIf)-GxxR;UxEAjDu*y;J zaTN(=9_IT-5gr=0IyQg@m*Y%$0JL+VF^TXYB{G z+`nwrwRI+~rt5|abW=tcS*g$z(LTu}voOW)YLLDO1|5NGoE2?0F{i_u=optV%A4rG zLxBdu{0p26V@pSJN5lFD*%d-vA%%H;L$3WfPDctL_ohe9PW6&Jgr9$(5yjaqp581K z$I9MuT-TlFBB${F=oV0^!2oM|me!|4H+7G&`m)I~-Vu55Txk~tEqM?9YG4q@ToX)? zI5n;QP1OXF&DtdrPA!!OeK5nT=z7%OpH-$E@@Ob~r07h#o!K+xIh#0J6acrfEHfrMWLPE@e-G0XHt>Y-qRKz5F5 zEk=uQ%-J^bDyN4Wl4}C3nde^t_ab#V*v!okO_S#y2ptANe>)Z@k1+>x7c-CW>PEeB z6CmZAs{i!cawJ6bb>PaIck!Ef1Sl=_>nGnW$yR~7vi5O(?viPBv0`I&yL^})ls1-Q z{wd4O0m0qEQ7I<$X%Py|#{4Rh|Kf&E=Fzrzv<$NJn7;PW2+^OR#&vW=mP2Xm+Y5A; z^yr!Z;fP3&vAl3`c@XIMWND;Z#CVd|VtA#6U#|I-eg~xee!mUR!g&NrnJNsXKb`Ey zKcAf9(Pv@FPKD@~KOg!`Osf6GD{CIpS2sqw8 zdX|}Kd*8!ixx7p_+Iolr?igoK#tcN6;KDHhdU{IKX_j#43bWbn3?&;fyxM4vB^$ht91#Aw6EAe$8Tzm1cK1xSei5P zr(TWps@{dpE;s8L36XssI$(ZQ*U-uTi`xLoo)sG5;G16K2c!DvRjeC5(%_fa z6QV3g9#-uzqxY1r3>XVvlFqqe(-BP`R=_9cdttQ^_S_uVd?)IN5Lz&|#wh0s9)o)c zrOg{qi6KTn?h7E+jaMMK^4R4xc2zl2=iIw&+yPG^>{vbU3w`p8PeJX}Q;fAKCqxdL zB@?3S3W%E&)e~K^vgx+sWz$pi>s+IswJw@3S5end*H+JnW=n(q4ok;c7(>1NyDee8 zCIop46(E}?fLkEZDJv|?_4!D$%iewXBHy13`y*x9TV2zer_kM68V4^2Z@&pIYMx(X zt*0#HS1oZo%6pgDHZY@yC5@9q_Y8~heN7XTmy9RG=e!Z{mnYCNoO@p~G;)ikbnY<| zcW_JO#MI++EAFQRC{*U_#n+tkci{V02=hz?Ki>iEBUCcd^H{R) z#(ap|g-ygrxO&RwO?;}keEol%O~8MM&o$<&89N$aNOQj+QF<|v?i3UYwJo3WS!OMy zvz##5NCGQ(ko8hz;WBKUN9%W}j6@Ua2WA|ul78e0th0;oyJ!UFT>W}J0kf|Jk5C0! zaeVZ_MY=u%`(z40y4t~V8@W5J%ueVIMhGh0seym@-*}?6_2@tQ;*D@$ zK{&Cy2JUPxX0T{qNdzx>GgcGjU@opSVvv#ZJh_H1MpYq7a(q8RgorovCpovjW%4M! zLU({d{8;>qiiz&Nrl(L9SO%7^%wL(4)7BEZKYb(Gs7Lf17`+FaTdmAjcxKRak_A}? zzXrXvKZ#`;_p&UoJVHxBWu17%Fi|*y?2gQ+aD$b&cDKAQcle>G1wMC_UW;wqFcppB zjA|v!EQ9X7sRFiH-f&$>g&wkQVsR(IE{Jt%5JQpGP4}`$rIm>nE_+At;sukAPcLUI zUacQ|W&~efEl(u6w!463$5+#sx(0X zsIp`o_^}y4KeS z(N^E!7zjmRI1)#OK)G zh=5-cBp)TKFM5~V)^Z#LYtT$`88sP4LJ{v=hr6i*?<wYL zcH-v6r$o-YA*!nv{^QmH(=4ArIwqhH&0l1lk92hK=To@0j}gI*fNAe8nFAzM0{2fS zz#Y`%?=JCvmucpJ=m4jx&hF(N_QAEFPAzI#g$B*?vYqdWtSQX|iUWa>gY?%Svp+ z9aq*;RQm=-A-b7ymm%8>j5s&)>#!i4F5=(bDUhTt9373b_T5cO4@$)qn_(_Tu0gHY zA7%4_PA{`vWWuwk-hv(S% zfL|hSo1fXyHy#;By^g|OBPd#*2u7b{Gfyv8SF4B+HS4+mcCqNNg}qD{$r&e*NRVT% zFT(vAkFMVI0-~)7oF5O5-v~tBz&bYLDxzryVLNa{!m>Q{t6ScxwqJ!ilyKxSaEHxU z9H@?k9Df>qRf6uHCQUu~Bzqb6{D!sZJqn{$YV&*{@_z=2n6|UT{7Xt_dH%}h!u0D) zhy_UnBNl07YTVY6Te6mA=ZNh7Tly*qjKUopGPn5?rSs5gUbg9wtF(xSfwQV8E~WMr z|ILUnu{XF~Px$iav(@c4)q%tEeBLlasEh`QBnK}}9Ge`!X>$2Zkniy&fOHED_d0i; z8CULlW(R2>@)3=>?6sFxiX8jXExGc*4WtW79jleFE_K?OKQ%BgF=<+4_yPyVrylO0DRwivc6 zds1jjRcM$qm(za7?&6}=*5Rh&31p2K*=kwffaj$=kc_-kDhn0=1+NMRATJg|$5`qt zh{H|ULHvbygQ-C|9c3Jy=Qkj^e1Rq(KXzks)YwQiC}V@5hdSHP9e5a+QPnYTcZh9P>+E zTl85&Wvhgd;m8tBz@4uWoBfFxrXr8A1@r9_6TmUI)rv9Su23?<-2t0L7t2E@s2h3# zZ!gsI3?`T<#5C9fW1i%F9eH|ZoJK?9=NfE=r8Y9~*FBIYWQ0LJ0pGuc%G_N2ClmPt z|NqK73_HK}NeyN>;vt7lx;SJ(P8CG8?GaIqQOdy@j7kPhcj+PIz+#L830R=Hb11I& z=N4(<(rE1_tNn7}QY!DyM3eh6Z`e}GgqSd}Uk6U{`<%()?)CVdU=1UVSjVSsW`Wdk zNP*q){L&#=Joo93Z+wv;+_dywaBRYPGJ0)9KU;zqGA0VjPrpqlW1tM+fPk5ZPqRQ^ zZ06;jpv=#ELs9CAki_O{oR9xWSK#3v<03oAu|X|s0&xgxaCi{Y@o#*XJ70%H6*FcI z-)bnoY1|@vov1#xszW7W?sD%UA6L$QSpcaqb2px_QW-Ty+8>P+diZk>h48Q55;6X; ztU7bD+Jv);i0V4e(mCPZ$(%&jAg5l#8ihr>D4HUE4du-|zzy5L6UTLNuhEr5(u?W= zX_+X;Yo%96IAXTRi-X?ZnfR~p*rf4bsTb=}*Cy#PE9se@#5$Jo7QzxJ$T%CZPMu{o zd&JTR^0(Zyj^;0Z?g46-dG1tb8}i8hs7Ia8w)dxUSq`(}qgzqR3@>4wfl3aR992dT z%$uamdK<|O@y8KL(d-eXYU`#S=bB`*N8$k3dq=h*8q*FP z%9)Ift}`K2-SkRNmk;r?OWP0H^_=3U^avURjp57!=6~~E1}oSu~XfyPt?QA3F@nWitPZl z-WY4UVd_Tjc&6XKQtj+PRNwt!5+j#|CDwCmeS@dBE#X9{*ML#%SYfWiyB{PCW1nOd zAibZ4pB^X7E{{t>3|VD$ChimTFe3U4vW$z`z)gc+_LRf%aQ_HnW2Fl>FY2J=R8Duf z<}_!kzkF>)X!Amcq%m1oQ65C8Ny-KVnSJN&o4pv}W7^}BVg3@u zbC!t2|2X2Haqn#}7=WwoApP+-{xjJt^RE(5a=Vq`Prl^e--g}&h8zvwUn?(Q&fOmu zq1M*NUqGoK5P>^SO@^{~C8F5NH(J&|mGk``{8aL@+6rc_S|C^rM z`NprBX120YgD%WR{4`b2I1&Y0;>MHdO{jk+UJ>?hH+MbjiyeDFQ3h#uOUmMz^7HR> zMC+WJCyBTnMxjB*2Zvv}A|nM46oiWrE>gO;8@(fF(VP+&OkS$K4ELM~Aw=6=?|Dl# z4-bVU%viZ=j;*KZ8&+%AFwZ6c&B#Yxv^A}L|8UVT(vas%kW^||e`H7U`-*8~T!y{- znLm;{rzfX_SC~l64=3Qnx4UzvN{K1u*h$C4W_w2%M9JdL!s1i!%>~O3dRrL}Mp$1> z*<9u1ka3%4j!Br1&NpJ5s~ssrUp{b%k-J32&?937J-)|SmX6gFk~$*~N`AgTnSkkJ z&pJq}lJVeHBuo<34xv|>!xCvyqeZ5q4_^k`S(gmSpbZ~XA06S)E*pG~poWsKrlaBK zAxTatqjPc6Zy_0EDOYuTc(WM8ZasQbilbU?OO)}G@!ZFW++a!qq3Z)F^P%C3M8;5o z%-MP;pU~DhxrFiLnGZtwSd|)AT!kY)BV`eRaJIqd!23cOm(nP13b_+h)H~XGVwh*6+wvzK&SRK|8pdBQH2v`rOY)%(4)N(}$ABtQq<` z_>h{i3Q`X@*twZF@gfuSER!wt%x#sXRXJ0Q8^JVyn$u1nJczb8P9#c3PBUMfSAYNS zg)QnJPEce>^6J$Ebn}jONc)ikj+y5H8YD(K%bF(^80v&w3wCr)JiY8mfSd0?J!}=@ z2$d`}Ru#H6^^SV*y%Rl-q>9gIG!ttlDj4tM38_-r)u@H8QcwNYySp3bC0xtsf4!jE z0WmP!UNF}G6C}DJ{PeA@*Be_E4Le_g9(i2QD%Il8vYhgvfkrO(Aw6t?XOB|l`;OP7 zCl#Q@dfns(dW_`f7_uI-yu zO-Gq#F&>>)cYB(~1dPFQy^$ktfjZGWI$sxsObq592@lpfwT%(&6s-zQc_StG0ka)j zx;8sXb>+c}FA*6bc7U3oRSe>6b-=9z)&IyAwCVLm@n@38KBNv(V6BSz{sU z+fBLjlVoJHd!)sCvnb?#{uNwTJsz#^vBE|Aa-^fH>a6X|{NZ!@hc~%qZ=KViZQIfswCwuO|pDGAbgy%1WZ@3xbG0v|6KWEC2VkQcW+GQhu_{ z1t5hZNtvnyie?5p3)JDT@8!+!TmE_#1;!EGN{jth9Qs%(|ONN?HV-f#1b;7n+((evObQVhfG*1p;+vnt>%s9W=dM3+KLY1`vS*ax zN&NOb`iwA4|9H;WzJqym#GAMb-8s@eILV~2v_0wWMtuH5QWH|<&d9;O?P7y8;b%PY zk9fk`r)P(ZPYv_xhG?0c&JNAw8MQUWh3^1Tgtnq~*XS4XPlE%!G-Qyp4UkeY=18r-;067^^oh>3ZHJ! z&E!{M-kIGn$mR3_N@_c4-flc8AsH9L++k0?1)F@Y%*Ewq#k@7?FXYTQX^D8|1LRFi zK^=BqJnbg&a>z2cfe+WS}8xE_xtX~MfLl}v7)O0g_9R2)Ik6K3qc{O`A zdzzN`D8+abfLI$DVZfGLo{R-A2Vu*{^g8DU4jOzn2_<)8ITfzyPc*ILP*g+`L>ya& z>63_J2D@_s7i1)ezdCl7o>4r2ehhtH8EyzD)OEAJ8sY>V6m-FW`MSj7^(djj9KUN3~uHu*e;H{Z&? z(HfNc;VbRi2*#Gkli?<_n`5s`b6u!-yhv;C}&B-;xQQ?*W%{y~a$^=kSZyB4Y< zG69|pa*#?v&CbKcY#p-|jB7+S4ly+WEZj|RP6#r=Eb}~=I z^gb&fJ3S>cDO4z%aoOG>B>y18V$}uf@HL>WLzhOU!{`(HIrc%u!Z!0 zWvuKU1+`4k5D|8SR4xY9XnLG%i$1@95_l|0~+=rVoIcY1mi zk$4bKkX!U{!0;1t`aCCiQu+YKw+wH7Sp+s9O!%E1m)Q)eBeh6e-hDoiDz4rl?2X=# zyK%>2$|HwThjS~T7h(>5QX5&fd#I;mjyCl?J!RTDiq0`!J7E0ZN&=?OSTLlrvK$es z0U$ZCMsz1@xyiMio3j)Ot)a%7l1>js7u&f~H|t9@C>(Ae3M@r`@4#gopr}%lV&H_} zQ5CyZudzDIbytu_>$lVM?iJYs;yBTr-|z*NlD!2yA*ns>3)z5eYz0NPf^kiH+GjzV z^5!;MG#A_Kr4u@^vv3fHR3_gD6}m7ExUT9h5|NBw~gVE+T5Ps^DLh=tNCZx#xvKq=n zH}z0@*4(2^6l9dmDQ&hIBc9MZ*Y>*m6(F(s85}K^fKTT#RE3ooj37?Wf%1r=?QYLQ zj1%_mZ`yUUXhuCVJmqHdIIsGOtkbGpQ=5v)C4=&VY#Au^S%+~3mooKb3b_lz{>=v$O5N-ZVxD&{O;-w~REKJ> z+7nh+W;D=f%+$7h)fVOA@ZG$`I&WxkYIHhAG;B4E)?ZCeakDf@v{RRNTyAliTHnRr zb)5_mY~eAW?9nexNgCDiD%;s*rSb>C$9C6URyTzXA`Px0Z)MX!MnJ|B=;Gdv7Jg>k;n-mXrRRNqV$`w!enE@-ripa{!_=eSF5-z*e>~6YS*?Auiiiq3OWm zmJVVUEd^7k{fA}88fC74KscghR+oy2;<^EhIs!lr{< zb9&Z{cBhT+b9nx4)O2@A&!YG+>=7v44Kmvc_BPnBjH^&`wp`UDduJOokXxy3zasVq zv{qjIi==_sS@8Uyzr$O>$ggitoc?AJ9v4p2;sl?5dm=W% zb^&tVC>vb#etckL?-}0u3+%yZZ<-O&oS7a&+j@j7debNKVzD^6bCx%Kir|qd20E36 zH(+mKI?UQxq3RnGtr!pI<5i?cA=QLe6t!_q<`hurV!0Tw3NbBSG+L+00G2EH2<^-s ztuF+|va@RcATHMMf6*Nt`NLa4efH>LL_j192*O(!RV`{jL4ahP>p* zI2gwgc5R4_zpisVDvAXZwx093`g68Hc6L?eO$Pt^47f1Wn`v^YsOV?t`lAh`F5mQ7lDn4DSb4 zRu-$kVVe}J3pEP@H_4p7_E8v1kLS>(zv=X*89^wj;F-or9kmi-6=j~mC+py7Exe~n zc9R{5t$o$>btrV7vjJa5v)~?_IAE(JdmKjYyEeM72doa(Eqfx$57edmxUbqpWvv}u zN?WWIO7Qh)dGn4TWa;lNJ`r-px$JY~83>dyo*Aeu}-!_e6*u?wLU>5LbdYE;N^ zONS#T`h3EjdC9@3>s(p%j>P_B>oX!&*Zr;G7u2j4GF2I%!|;kJj-MzsxDkO1tCxHw zu`E^UQg%hH;i#iUSgc+C@0pFXD=Rq1>v1ldbrxOLV_}-v2N0T@ZH$tIfOkY-otK&I z(t}l^q3f*J&GBvigLfDi>);QJa$+BuX@ZSkSd)r3+?4_PEHJ!mEidnzKJm|i870d{ zFB-`_j@<`VBJXe@Pg4GsfLv;1B4ildp=gSdm<749adV`*Kjn;LPL`8uwskHm2=c6! zX}vhJ?z9xeqJ3ock-pcvD|q?JcZeWjO*~g~eFs*qpN>~}`6J)WndNfgL$ec&7356~ z(dEY%rN!)4p|Ot4@+SMG>>r0z;U^kh=lXXg^%@?X7NP_D_unW>oWbqltb7>%&FSi) z$vRMxHfg3(aVW_Ydr=>699dcUO`pRkmY`ELxR}r8koPF+-l#Bmi)d)yKkmY1&6RN5 zu>TfeK)yV`wA-C^kH0+F{18&S89cgoR)jV6WXs10X2^l3^+cdW^<~Iu@5*|r$JK&} zQAtHETf1VK|T6ho(QsW_8H_O*)mcw5efv;m1)e#1PF}Vy#JiOj{P|USdl7 zZ(8UKaacDdIobY)=!1l`?;t3NT_aDk$lPH_Z+M^JfKyQ(&L+S7v5IsG(bfa`C%0X* z77pRDB-8k%vHAra;tKpsBT1B>#y9)^bQe_p=9;?jn3sBh>~7TRds`C=SrGQOmQ};JP})SOC~3)aeN#8f3s)?y=f^ z=gi6;q#9qeWr-Y*M#1v(@OpKT`xUF*8Dyfn=Q^?%(!yHLM_JBVPR|IO#sW4`3E#2$ z#_pQS4@Y>-h=r(fPAgJxf0Q9PzYFZf9c%Hf;to|d$$2UxlC^bTP9PA05LV*VC*E?G(m1Bt1cv)f6LtqU; zaT`uS>rr*>+B%)zF(r53!sCM!9CY%sZUvki^;u^9NAg+Cr$A_0PxQJ!Fciy_BLxqD zA%+>5wxjD)f5)I7XpZpjW0YNK@flfbD|m|=tV6Ss@oR0}e{iBzL|0GmhfiBAVob=C zHs#gldzyFbzGR8)oozp1-yD*-9GD%EKGp8%wBlR7-D8|T1Oz$9%N0faxvEYV;hC=( zk3N)j$~b3Ee-B5MX8zm}F?-Jmh%@-)w&mD=+_C$dBZ0udwTokCH#66}b`!r33PV8!CMZabJQ1Rsnw;owNF%9lYu^n?;{j5CoPR#AOv?9zwQ&OYK}R}E;#D4q6+sgf zSeCg|a7FlJ^h4~yR%2nhGMWHU6p`bHYpQgLc9`sL@|pkw%|ug%uRH|d1i8KoV%fW3 znaFyR0h-WVykGuybcUiuWv$;35lD6=jOl%RUy`Xl z343g>-k09Mj*wUD#m^wtFT&p&t-d2`H)zCHvHM^!_dHzP48(U!=UNf_KOYk=NVdLE zPl}A3#w;MnwVRbY0(PP1yi)gW0Ol7EP4IIa!!QgOd&z)}V6RDVbnaw!70zD^^O=1T zE{|n+d`0d7nDII;xS9@iuQ#DuCnU%HF=JE%M-tp=+r1-5}foUKEzH^2PRq1N_&!5!+UNcRq{Ppke2RFmV%D z5@q@gA;v%%i^26&!Kd!qr1X8*Klkc&71Km3tPM|749R;SC8vX0cq8j7cUi4KZ2 zbHlGuba9W$?^LUas6qofKs4@(UQ|DqCL1c=yw)g$xGFugDC2U(ti&B5OPSQ9CwrD_ z&DN1$;bAyxdw)}`I*9Rxk$(CGRdFM7sT@UevMgSXr^Pjv&Rd@Cq*zJhVeXnDPNqTJ zsb8yfVAS8Nm(y#c=!fo8ZV2@@P7e0{8qWn$HyGk{BD~kuC4D6oL@hTf+JL8kG{lc3 zUZ@k2)_l7ud8eb=N2j70%mZ~X+W0TyIc(;bPjPeIV<*a36<+y=+YuUYS|L%`c*Scq zdoe19vI_=aWL&F82lX$gjA*tFY!ojej5O*FNUKX#*9e80L-;+ELTsSX8Z`yMzLq_#D_e}b#NkVf-j?Sj#rYI>^{D0m5hBd2##??#G!jv$ zV_S?*1A8ET#Z(b31aUk^U)cy>{8_ad0Lg}IK0R?>ry^JkAT+8seKC74jwPW|*L>vD z^P{zgp)swaNgU-uy}c4Pj~i~FEfW8jnKtuD8BZl*6#4B- z+P(f?>4h_QxQ6I|)t6WzYKT3**RGBhNd|O!(=}|lwG9|mj`Y2A;u$c;ouUz=jjt#- z^?1){Wg=UiR`19b(c0NTCX&7tY^57i{pg@SWqi86=SV-nexYpuBVE&e4>10@R2QPP zdQ=fG6wc|k!-07H%n6)|SHEoTU5KLaKt?dWC~O}JY%fsOkGE_iUbwFMi?NOKu{=O1 zt`|N+eY87WGGF!F+OakHC-g!8_xN|n80ViX+{Y?6>VQ(t=GX_|C>`~@y@R-V#6s|d z+*FEls0~pWz<63~P!%wNCLjAF{WM0`Vll`#CIrGhcw`h{wVNjR6@>(2FDh0+c<)v79*Kxb_S2p{?UNaPF8?I_cK@@O}5~` zr1sYpX_tzuscorKL%d8@gMNgWP=bkr`(mz9`3T0fE$ls1sB>T*Ebeg>AdbROBl4Pb zpMbZ%40D`3(PTv=R5Q4|l;#fiu zhBqW^gWu!%iYXiib7M`1*;KaZH78wbc1eeC^>dti!}fZm=wFJkMi=iII%OHXQz|Qe z`o`W_xX7>=5H+0Prv7%?k>1h!mZ^K?wCnPQS}OLP8>1BX?7wY0otYV09?)Owd1(<# zR=6aoNYM_TY_V%Chy2Gxa2`FJ{quXu_&zVs|R8GW;6+3ftJ0 zN-Y1WwLfea2_xtGcb!xU9R@Oc)Rjv%T_l${R(-bgf;F@Wj%f>Zd7KKi-v6=yA!h>H z<9?k3W2=`T%sg6o0i2*`VhT$A-5USEo;T#9_5HdySy9XEMa|j*v?bA{BPW2Z_Sm0l z4pFga37lE;s=?CBYc8}j@D3q1CQKE0x%;TQpgt)^iTev;JpCf;p=(B+NC{)+xN^Hm znxo|DYP@58j5N;1whHy^zI+Df2UdR^5&x{e?#XR+DrrT=3*zJ85)9$DAHmsx ze}1Bur6?1QZwRD^+DoSx)f&#NETz zKYw($=?~Ua&$=tO6>Dlcx1-y9*HUIm&i;bKM)o0!9@rrj!!$}-HYi{p>#hsh%9Y*; zo7@4jIohV~mfxCj?OhmS^XhM_hlKuBgO~*)8|_NC0$Z?mcVc#8Sz#qY0i}p@Y>>KQ z5nN&nh~a5?$C=vAw{f^@8#a4=1RXoq-1WKQJ&)L`boO$lQs&wQ7$FfRc_&2l9?A?& z_q1j1$MuXc-K?;ou@vExti|rJVc_%Rv$n_+3DmsjT7nyJk7|7=8S0PvKXFc*QK5&R zRty?*LDq}pvL`hVpgC>^_u+SX=_+yNgr*cLB*27aY0N+_F6QXLyzq*^3NAobZ%hiu zZJneM&S_0bp94BbOz{l*4?c5<+^<&r2gR9rWz_AQ_zS3%U*B177hdWFaWlY*SSm z<NS#DT5VpxYHq7Xtt9&6BD;X?H4#*>ZIY{wZ@*1@ z|9{0imS}#{zT~9vsW_!=`qE}k+brVySD{%Y#TI-5fG>}W%zH)AdMw#h63dp)v^~6? z{FI70rnPn`f6sIu#jA!CZ>b2*>1Ws@#8$kg$d38RO(L-rx{}f7gT=a!gN@}^ANYms z55Z-g;_S_!H5?tGINP%KtOxGxFSO{S1<3h ztdgpBU(~8a-pML(wg((@ci+l;Ou<+f=GjalV9blEZkjQn(Tf@6ZexV@+_K{;so2ul zl-jU-F>MIOzWvq8kLVMil!GX!P_9zF);IJUojMfNrFMQ#BCPg$mM-pZ~S)zwm)dn@p|6&N~Wp`?Mhc-MYs%&vruY5t4#a$bE?=NB^G89UW4?JJ#lb7r)#GdU$80IP8i%B17ZyQ zdqFfk@_w%|3{xk!HFLUwNMx{EOh9whzsgO?_&aHpv=x z-g;R#jJZ`eB+FzPiObfw|8=Jcg|R;Tc#a`ZjShW*Zo)weeryGhRzl0gH+uPB{`V^kO;I`n@StrrQ5@jtE@L zt^YjcYr^7;?E{^7z1kWo#_+**w@vMx0Eq=-3C;^BJk4Np`(%OxpQ6gxpk z+?~wIaM(UBYztnvy=jl)A_>Wv;0+t8BdHFbrhUu8u-Ml!nds}x9cvrZt$n`VNz}zr zxqJ&hBvY7|Z33#+?#{R669k7BQx^D}@>q$XM5Yy|Fi@^Zst-vhdP{bvTQf^;zK-T! zBKT*(f0UY#5jyW@T&cs!Y;Z=YE7P)&&^HMN~O9tsLd>S26>|)y*hZ-~N zipUrJo2x|k`I_<*A-gY%u!6kzyt(Ka+*KBG@Bv*i`@o?(M`CY%JTWP{awN~{;B7pP z@Nn@>g-NPiF&E7~bokDv60p;K3v^x*0l zcsE;_Eog`N`V3+C4CR{4)PG%a#Wl3CfDvW1o;(>z_^K{R6j@f+i4f2}JQ)I+Eb2xa zoyYdAiyW)ae9u>=8qDWLZ_x1_EepjzddgG6)hxbMtPDYZtH3L-km7562!llbBgQ(5 zR7o*z(~u6i+2jvnWH#o)Fl;?3Bib-&@8N+BlA zyqtDWG2Y>Ua$sqZ2XFliP8{`Gnnl&rqHZF*W8iPzT zSW90yCZ^UQTYSa2X4)ql5Q2iHT3BlLxSAOhg(EWu#94t)6UT^no6UAs98)fnk61*4O7$Enh`}BN@AW{j%)_E%AWRXL zMGcg7iQ;-R+Miy6Z`1BrIg*?%BMEObTG-7UxDc8c2)%Mix~mr1aA^|FlHhk$Nbx^0 zw<^v!tFGaOX*V=qD)C?IR8KwvHdD{aa%?;TE6x->$ZT9x2&C_kQg#|1zJ&efNml4! zTHTZ}-E(&g3IKZ)7CMvZhUpk`T3DlccEunra7!C0H`?LAQrE=|c7u?EMDX|DYWO(> zL+;9m;85!PguVXBKNu?Nn3b@j>(Iv+vkpq8Al;1p3Ac3D5@dA zoc@k5L>pH1j<#cF0dqBu{ulZ%TMoZix2dHsCXR6-rR$|##xde*%yZEuM4X{c5dW9n zb7g$am*3??-1SeK?m?ZCLS}0bZIKbo^xA7?^LhWuWm4??B^C05Y5(7$}F0?YE;o;+0p=NZWh~$k%&- zuEN3Z@_s-LN#}v_QpYoqtLd9}Y#V?3t|LnOToQ<5P*$0Y@3EW!A41{qzDbh+Tb`29 zjS$&2=YcQkJ8vO{dasaF;P3z0`jz%c_;Mk8OK!46LjBptpOaM;X%-Dg?J6y{^KqPm zIEE5uktaOZ$w1&n+^wf{&h|93w7MKiRQf;CQ@b(phTN47G4oOa8pGDgo(evFuR;M;{W}^_@M4uctUFX9QXoV>`sVy)E%h?{(1vpIfb47q7WJRxJE=xn2%CPCl4w zGna5eJUcli>sM@M2_v|0g1LMAH&^ecA_&z(DLyu%Wnt5c)8u~?Gw_qkWfUk6yl!6@HFpM-dUNYk#1m*@ zi@Hl3>l$KD!bixD3cIf)FLD%pEj-OT+;CrT8ewi^nSM13RK85j*lMTAGqdV@>-S~B z88|}kpN)blI}>#&m2AK&fp$eC0faWxRC&BuSv_!_0hAz1LU z6Oy~-(&6sKf|-rSUGQ|z939~?LyB`bF?G7OH#g!qU^)!ZYS@{DGa-28mU1N)3wdu8 zj6fXns?3WE6DD}&E5ew|G2ZnLtm_eP5w&*tNW|>ulU52&`|O=Wh6H(*hf{O1Qyipr z-zvM2Z+9JiScTaLJ59Aeq51qgqMza!QNs8-P;oo;2av9!HhulEM-=*04z_? z#bb-6#nZRA4%4a&*#XT2-+QRLCTz4A*E70Ck7BKe*5di&4M5Bd5lQs+tl?AU-^e3jys-k#!zNTyH$^@{8P`G^HV&8eJC3N^6@}A8$2&doPz_K{k=FL$`8;70k{*J|O|{g-JmYKH~V~OcHsh>BK(6 zTuPe6!^OodzxU#JA@y60>eW~9{4T+dw40XeHO?A~x6N5L5CZ%twb7&-I04yK!vB z(j14w8Ydp=4Eczr)Sl}e%WckkJ%7J8FE!$M9aETw8z2zcm*8>te!B z<7qsNr|~p?{df`ppT=+OuwGhma=^8Pl>614K`Y^qp>Iq_uo1H@RX3<)a7VmbBiSI# zP-o01YCWLRU3OKdc?WSuw6sl#^+h-V=SN&z^}>zVsVwr92!n{jX?sg5^0=S{WVG@ zQ;JaBHGJ>`R?k0T_{JZQZ+-_hFQ{>ibrr8#B9|l6@t)=QfE;(okcrV@wK5&6?tjU6^9d%7 zwJOC&lo2P5>sERjXvvvW=f(%i6Lp#>#~pb&Qsx7Cyrb^#(8B|k5;7l<R&QG`>)YykCrA-%lHY-Zzyge#DIhm2_CB> zRRdvgm`lJ8$v-B)`%{98jPV8P3M#E|qUf=2^n7oXu4t)*Sa6~U#<&^@W2V$2IUO+) zJ~}kF4LbN9qf>;YdO5d3yrXI+W7LvcGj9zH!xq;WmL)p|@vU{*8@p-8ynh4b2%538 zMdvYwrbZKJQ0$CUSU}rrlII0Co-!YcY8Li+J#}pJF0~L=nY!Df zi#?Fq8>-I-S?98Q>+x*x(cy!3ltuqB9Ie2CUx_@b^(ZFibx3VfD=D=@vYa!!U1f}r z(uRkN6_*!bJP=%Zv6(#2`BAH_dhE%w|azxp1`D{V_)Z^IN*@~IW8r5r*7f1;IAA4`sD_N3d z=Y89TbKLz-F=R$&R%TUYRkEvE)zu``>~5+>QXn8e5FZ2qdeDCo^n(OF2qFaNp#`ZM zAVsp-EY_TvkulxLhjWgZ?X8Dx?l-apL2N!2t^v2AA|k`@bw88YvbEMn90Kir=Jsyl z-P;}S-cH=#6|@Bs(!1v#KEo93)YWL1_X79N&bx+PkZmUl^FxL-XcuG6uZy5gB_5=a zlKFXqc?WOQPRy;a4F2;+k2G5ewAhHD(V{|7L)kdv_x-87o#5_$MSmG~Ng9~x# zcv#|M`d z-DxSucyj2Q5CxO)06a6_m^Hd1G#ux#y~8;qFz;oQAP-{RsrT8_8^Ii4qQ{HnSQ2^K z)bCc8^f1rzq$M+vP_~&oT?afYN{^NKYkK=JXj=%kQ6aXK`@9a3n3y!ofJ5BHP zp_>G+$Wx1`d92nf&@`iQg-Qc<#114dZmBF-*do#0f8H-{AhlD`9H!w!-4W7A$mfK( zLE_p4z~F9=J}c}KLFqr64=0^<2g-4x+atba@l?+2Q^VFBdoBiAufaA8JtE~%RFR=i znj#{@1N5VRUM7KNoMKd_6|ECmwy2g~h%T5pAjPzy&3_F<)W*|d=ja&ppX*_1CB1tv z^e-Xy&L-;%BrnestzZpRr8QVt;92y=WN5~%DLb7}4oDmb@e+vxOPEP*A?J~tpA*)f zv3dR@hRsv*I1rLhmjx;Q`Q00gq6}Igp7l76c<)b)SX7jyJ1bp~P_rJv%Y?Z0V;34` znGgpot_U(XVcIGwE?8=m?)q551!a6fe)btW`%~oNDR%KaSigWY_EW<<$4o1Axo6tn zaDRUdhb?J2P^8C@c6aWgLQhfIQ17A6P|X*CW~hiS@(K)XKvTn3N}L0&4dfv)B*muR zGTqLYHUG1-AE8%2VIg3xc$}{}jKi8ck7U}i{QCc<{NgR`%_V7x4h{)ICZM5tU(*l& zgtI^RuZf@iJzzy>Moq#Tja3P#Xg}V?9e;IZDFndKpF;ePOMk4J30c@lIsd(AvYtIK&whMV<(ku z+w#g_C&oR2yErnJnRqj^3XuW7`HzXi74z^BbGsp>k;vzWow*Pg8g={1>6NXrz5fNPAVfJ}X^+JW zDHGBNaYH53>eQZjP4W*wX%Kpmal*D3n)rcU=UwG zi+6j;(S4KL{Udk>t*N3aE&xr9vNT%l(1z}i)Gq3T z{wLN~-zN=gR5Qy`smoiw`sJS!tCC`+s8BT$98F5Hfm|9<-DMnW<7rNObQyU!G^T@# zfJKeNEaVUgniy;%494@%e#G++e!$uJCrG$J!f@&WQ=>bc3$4u#Oeqt!PSiS6>r5#V zr5sr19oy|SWho~S?&z}1IeIKI+P5~(IMrvkLoCRHXyTumQXKaKd4!IAUsJ1aafJ=`0WDee8rrkyN;BADaP>NBz z`*bdW5Gsc-ZTe62*Ip2gqZD z3Ug5i!mQr2H>t7|@xIXzSVbd=aeEucIq+->NOs7H^@Krdm(2Au7X1{J=a4EP9cVQ6 zhsyQsf!n+00_Sl`5;}w;xa(hgKb>|VzV_$V`{zM85nucuo!}!!r`&O3S0W+!wVZ18 zdWS4%5{9eR2rEbx3u{aYEx1Ds_3q8G%+zIaQgtn8tG!n*oKg~MhN=*h zZ#(a>)A{-E28{PK%;OBH&+|HI*W~2z^SNw4f4%gvi(!#d=G$Ty|Ab&33QpqPeyIaO z92DYF;NFVZKMU`SmSzMhFnAN99jjRqG{65!pI2Il{pa@$jMkmAe*O7;6pP)#eImml zrl-jF2{?D!rpPudQ@cW zQI`kNPmi&V<57|DUM$87u&Xv|Yki^S@sm&%&_=0BQ6rj*fS7rlrztmf;8xxc)0!bA z;F5!^Nb3upKL3O#pZq>gU;F{jU;Kb!wIN4AtTIn~w%c3gWoFskqGd~6wh$)oR1}CY zVs(!$Ll*`bK?|+UR4pF&t`pK+q>~;Si!wsGg7q03 z3UPPG?(1JL{pJ6K-fgji5OpSo6>%6K813R?^2guj$v^tJ-Yp%a}&HdXOcsD^^ z_|f-2W(}-L+druVx%}Q>UW64C3e_h>DDQmHW78EEfdU%sDnF3+eEAf#_s+pyLagRB~1Sk z&aYUle}tU<6YB0IdH9%^Ht6aFqb$hoD`W*_zh!s(&tcgS%2&|LX}BijydkAC8fOgo zL((QQ&0B;uHW%tVqk4^o2%3Gt9y4YGtr>8jwo0jYSlPl@i7U{hm;DD}$eENP%W}^& zZ)weGwyk+|7##?dxAKl=Osh!-FI9_!5+A*?Z?w_)@+f2);R3rn3T%YkJ%FwawmfGm_{W|7e4UZKReuH$^SkLx`4o}EY zPr(2Y7_x&~Vv-)2^!~q;{LfM{#!* zX5I1C`{vAJ*`+GmX{J!fLAW*H^_!WOZx+rk&iM2@mt33~IXoxI%To+iY9+Kl?BDk| z4~m1axrC=Lgpa1c;mg3ATcw#ppaM!RP^vNxupS~U2-X^3zcfsCJlhJIg)t12v;teP zl<#wB-{rtFYFc5k5L+R|MAOD@D(ntMslkQAaKv;sOpIa?D@VWws0Nx!zn1A$ED(>$ zhht;O(II!N8#%S0`29g!qXwZjbNJ>$6Nt^hI^6W?l>yTcWkGdAtrJ=*k{3$KG*jlo z!o1(J9JYS%)k+Lb!EN1@W*DvS)wcG&Tl9U!9FOC1 zJdVHJcoYC1$M5bicLapfB*BS}9D7AXUGNLNBd^0Ynz(oa2atHLOw&TGd#3#jceiiA8fTj`bQpVNZRv}< z3g)3^qMT;uB7Gum?|r9}ThgV!rhRd!N@=ybBs>ZnmI~TfntCC*DcM{W&Em~va})M7 z>N0`cxT|3GjI*m3eEh?o@agCOfXmAtu--gz=Yv+P%mg#aydV~6vLjSzheECQn5sKC zVkG1d$zzZ17|AMC_bj%@nu|!(;t@R{N${@_P*xCx6bJ7OOl#tLMamgneMTKVN7mm# z&YmFI{~N>HQQ2Hzly;z%iB@LDoJcWHRS6;bf>#?V4Qn%2cTR8>7dg!u54GJ7nIcJo z3{EAEArZ2$K09X^*UX1omYs4tSM1{#tUmYw!_yy9hO15_G^}?fHEq=WjJl=Rl*T3f7*Y8;Njf(=C5jN*%Ts_-RF0WW! zo-@xAYYv1qLl{m)>Ps`48fDo-Ij~Y=ts@`E1)sK={r-kM%9*X0&YshTNYl!{`RWxf zw~cUCN#`z%)`p)`1@5o!S)Vyc_sy$sxH$hULGH+D&DrV&mIg!@4tKAa?-z#r2I4CY zi<0w-RaS=0r_{rqCEj{je7hrABD4+3MvUNeWffuz1Y2VQyXiHwFR}8kneQ4;KQPXo z{9{_UAdG8}OiLaWOLeC03uW38c|)CF(xzL=BovLXIisx_V~z|dLdY})4UPSL?@{uw zV7frKgxc>n3z4 zXsuZD=&cC6d;OB1{nfu>NC7L}p<1hwhCs?L{KOQz(EmiDZLBxB$KHEPS`tmG3x4md z`BmKsUJK}ASb$nR(y9U#Wm+n6H&IH(ilGFS`G7TLGq}Ja0-*-Nh{ID1??N|T~`;8%ZtSAZFP|r7XfE&m{!g%U-0Sozu=SaeZgjPMM^_|_B`~aX{+7Y>mp$5 zLVv5x39Qxsepwc#!+~jAk(*azm;=vqBVt*s0H~_4p?|h(QlMw7$1w+I1(v zdt9l65Kf(d#~wh5F65=`6yVr_3@Q2Nl44*OU>sqy@mO+-O3ttv5@Yt)nrCxi#e|e% zhbg##lam7)FhTo9#QW!7S^S*$XLlkbL2F~XQ}*-3daH!oILyM6^Gn9A@AO1K2O zV9}2_=p|J$O+0-N(?HIdG-N{Vbd`sSVOlRK@i_o!>u&Y_^EP$SS)_mN9h7kbPney= zF+c3qg>yN@tdADEW9&Y7;WO5X*XGs5>sq8?R%sGEmRgNaBSf$iDOy<$g)%S9)1F!v z*B^s#8pmSgzifH*6hws5#eu{0_8yh1J^J=Y1{}q{A@Y>#uZj zuM2=N*u#nc5N`JkJn8+9(tE2d^xn#FB1dC>zqJ-ow>5%gGz72=QF^@CMO%p8scrJ! zq%S-~g->y2-V^;E#8KmKIsm`54Su?|A02>?<8eHW$MGLO9tFV1@w+>;cDF!}!_a&( zqdsA?zEep6m4eb}W;835y2q9qv=!=nPi=REl>IHb>;PybP(=|*ClWC9on+}dw@yIuS2Xio zTWiO8@k1O2rI}J%V=0AsDUK@XP?4~BJZ`R@Xo|^&q7Z~3!PtZ=Srg?0z$gj}!qv0y z@SptQpYhRWUvTmCd#r~GNSSI-TSJ>tN~H3@ayX z2I&*~3A2McAFB%ityT=f!;HcZA|ZELT@oyTtj~zU85%O!IhE|kzZLJoY5p3f6{|~+ z9Uf@Qfik@%>&(^p3T)#A<%1CzDLGIM<{fzAmIDdBUnp5$TtZC3uug0)Hmueckd%-M zK{n*^l2QwI+sbr^gsac__{aZ*r!PLiRxhwP5~UE$p&VwxU3c%^a`&@;!T!}($W)Q) zC`Mba7{?2O7M3uw`N2ORee#Fcc;=l(-T5M7nE66Xs~4*;b)wA^Z8@;)?>OAQrA!BO zdq+5Isk=K^{J+utf$jA*zxvsiy!`4d_c!-0au8h@jgd4Cq|KTaUwpx~E-)QfYalF! z#1U&1HDMSwjGIe_bw+jO{^pk5{hk=k$vN;me8BDXJ)^9U(zx5+QOd&SDDVE=Yo^`8 zKKG*bQW=7GXeNZVBFhSsdx{>2!%V6pAv|Xc5cY3q_9b!sA#Kgh8j;a~ zLP5YX#(`E935wyc9o33NMYKWN)8^f2BgMO6^|VO!NN($J2wyzA)48EqDa(wu>cWJ; z&AWH}#h?EbVRvM9AGA!xrhEi8+=xEVb58$)Cm zy1>~Qr8M;DdICzb2bq6AkzzolaZqStNQ&NLY7G-utRZGdw(g#bKi(N#f%t@7vKGy&p!VHo;?4=!4%P-afqR`6I?-$5#U;=r8)ul zy|1z?Ow-JMzh^!iT%b!who1CfqWwu_J&r5A$IS1wX697dF8H`WOcz3=JL}&QeY^Oe zYQ!WbWyMLOkP{5)JqMupWBeHXO$kzT*i3#e`WqtM*#s$i?m!fV1TkgKHzR7*p;gv8 z&s0u8tk#TD3MsmaD&|0lLOXtz0%b84T?k)S?(boFt~`Ab$SE=iV3lCnKeq?Kjn{Y> zs{t-Ag{#Yq1Z7?dEf~!?5-i1qpnySA^4bNwX%4)3TbPLyImh(7#CT4%=adj>!9_>0 z)AbX(TqZ(G9+Q^7=_tNyd)j!kBS1qN zfkwW@IXhbuVjx=e>s`7C*dywKP?m|N5Q`FuSAbZIG^@;0rOpd=K7ba2IrKw% z*XJp&+Ec?V7(u0P%Juit^)NYY-u?|x2=ZQ^GY^$2Jyl`m@84a-0c%GPPM_1MI%&NF zKAJ+*c7o+N)wg#DT5{U3_(q9_qu}oMO{9YQoYZ0j>B$Gpeo)!~$%*Sq>VTE#)gZyT z==t!Om>h+8^S`%a=byW4AKvdnH264MJUIqW)NkWk)7QuGI3CC2cpU%1<52*79KW-} z>Yf;4$6zSfLeSouro9s|L}d!arg$ci)_-# z#qkua@I7_wfA=5&BB4h^9vab29wuZDBB_EEv`(~TOFg_pr#Hm5bL&78TJf$siE?sh zcz;j+8v4YA0w#B2SrS!>lQu3-V_5_j!uF{$h z;&)Ks)(X?=37`MqPx;{&f5!Uq1M=#Mj8N43vf9!p%K@EkN%wE4`yIpEuZX)F>bqBj z`7LJV3(pt{t24s5aj-*7?x)j&=;8(0rJ}7-s=FbfGgwG4Dny~=kroruu1KuVVekoV z-4SYla=;KLPiuo(TmY;EEjzUCphnK>JTloxAd^hdI=cgB zo*1^*q<6pO?a%)briG?~Bnx2(OloW-c(m=4A7kJ9BiiOuVk$@|h-R`zpfNMCh>(^- zS$32%Ve=N5?_m3ycJmS|GqS&j{l548Eilj2`-QK5{)(UdtKV{eHz6SqLSTpyi?Aq= zBANqSTw#YD5&~)26532iM(u+2A`9ti;Q1#XQ>Gnr*;96nQD)ArKIZ&`4>|vE>zf4I zdzRlEsCRol`QVBVzIn%&cScbm0!uMcQrdja{o9$c3!H5ZtcSpm3aflcQbn!eLF7z~ zYg7x>gmLpjLM+s}uv;c7FIlBCr&Vi1TXJ%801Y$#E{eN_j`Y=1z4(57PGTfWCWa9h zu=E@mUO*m*>AQ%1$)Wz5tRE7yfnGtYST!eN4lDB6Cusa0HBSUPC+IDsyh2-|nqol_ zc}@(4Kw~Orm}GZ9sS#vB^*}%wMnTgGO2*O}B~i2z!{VYF1(QaQh*$=jyVJNKQoHN= z=n&a}I1yFi%Eg3Q5KG-rp8Dc?Cu=90t2(XLw1QQ%Ewnm0 za7CBi4Q31`l=~gO`Pskc=@=-b5+e*l>dwDjSl=75QtTTdYN!Tk(e7%BlqxKx`u(o= zkXle$v;IVIXO0D<6ct@cl1}vQAm)7 z#*JQ=A>ssD!^N>y&5zTm|JB`NDJnSzQf$O%rw+iQ+b;zFcTt2W-R0>rSFhvn*Ewz; z1ravu6_=MATAP>-6{`<4>JXF|qC;2u_i{0{18I65*2E~yd*QCHh3U|MdukjR$B~N+ zE8R0%?dO?w0kFTW2sy)MJ#%>(38^uag2tn(Qdw&1eR7p3N{e7oSX$!UU0~0KMLr?h z4;jY|GG3r@@;ODzU0^dv8A}O`u&6OLm)paURNK1{RY#QO!kPIsA${X5_G2im5u2a4 zrru4bv@Wj6L%PENb%4w&C(=5wy1Zg_cInqtT`*P{2W&CgaU&BWc3QaEjI^DDM}j!H zdU61WEjuFB!BzpP^lFwP4Hq{%x{J~0Tz(3uL!A2D%T6$pUh#aKi@lf6IJx!=taTAD z9IFBQT<-`X>GLWx_3J=9s^6@7gG?{IHjZR+JIxn;m$3ANir;g)y6)GOMl1|qBTik* z5Iz2F7^3+&;p?>{t;c@#sIzkvb;NyhZAfR~AEVxs|j+1R3Rzkf@+sxbzV!mk8wouES zdAeuby+h|aBE`i_jcBz_Z}T1B5ECH;n#G5*n?B^Y``bI1j^dwn_fDxETifmz_Pd$X zosiHd)twMlgir#Oi~%La;PlpDoJHZnj4*CEyZkZhFaC(ne)^wt`Rr3d&R9s4D(Ji? zlmoiIrS4zRu3w_x{1)AANpHR(@2-*UEycWBDue(-B1t0W(ffz`q|+*}7_Aysed4V_ zx-)CWni7df!->mrK|^HGPO?o28}5;O$T&Dnakb%mqe%VIJEvN~YGVq8GP}^)%p+l?-eYx7%7HLEBaKg~?V7{<4Ilm9 ze@6P=f5+;hFOcz>y9e@&XhW8PrW0z)vfUED`X$?c`M=ZlZy6*LETgd@HL>jOxW3u5 zgca*Q{kyDQe2N4onR>*#VwNzC6oblvGF6uOmSvi#+iN&nQ*U3w_BE6R4m&tZ$nHQn z%zX3JH~iw?{Fc{W-?H0+wH2+$Om(cBi?J;31Thifu;OwY(N@r3|C+LW$5JYz43ttK z!eRewUVpP;Sr!i4J#}sriA?Q|{r(*nS5L_6fxG)Va@?^RXC!U-@Y84fV*iR)x5&7v;26HFHZu=XgTvMA8)ge0L zI?-5B;s_~Grafzmgix8aQmPQRVwIjFF;YWDVy3QMAma}h;u)be#1>js%$_sUYvy#o zHjr1JKsuv@Ju()?%Qc&)pQGugEbTW~x}eMhVNz1v5!lf}K`lU7W4b0JuR5snM9@Nx z(5x_|fS|;D#%egDgfq@I8?@fAn|@9VP6u|N(uNeyy=w}GA+%a(#gD5u4iwZHQG)k= z1tFzX7twnMl?7UBEN1vi&sd$nYQHb}{~Y_YI!WPFg;3h;_r!U}GVi@hR$TlUYGikP zOEUF1>L4B&ONCd6pYX+|FsFpsU-9Nwx3t!{`e@|GKluSa{DYtJ!KXha=1m6!9BUxleP-Ia z>#ukZV3}Ep)1FJ&dl%qg$6?QjOS zBj@7*lgMh^5ZHib2Tw6!al(STNo#|pLT#aMZU)2zMQH-s2FwnaNsk6|a*(M&tX^ml zI`5*2i`-F8xHnYoB&06q<~b=vS}mw;fgQG(*SoMFHt`TlHqhCR zS9cJX*~#?iOitz-qVZHI2^M-x{lTs0@nk!ZYftx@E`r(-l56hdd+?$57U-__nHt)B zu1NBZQq_lZ(zU>cIv5kbK8k_V>eq&J3bOj#M8#7UF$7FH1VqF)tb2i}M0Wtz5C}3L zIv_36V#4AYO~r+~IQ9)?-*DGBx_dN6pWk#S&hdwRzXazLOFlYQ-)qG2YcYN+1ni&X zQS^NrkK=JXj>qx09ghOw@A_~TvU+*L50)?Y8hFkz;3SG?f2~G zd*0o=$f!ov3J{4eC8szM&qzW?FXC!)v4!8Y^@-XUJ!y;TbV`?-J47PtvJv zl2R|n?i9CfFqC89s81}F`BVU?ZN}zzw8LA<_7(H?4N?^eJ{j}{T|JfVSco2fWmsjtOBCfdC8ycC#bFr0%pugluQPq?b%-L zdGg^$eEvuOC9BW>0hb@YAdLyrfHt9)19iS(IqW#xeM7zdHS+40v|s%ec6+$Kqv+yP zMiY|#+x^s z9k$$-1F~6Dmxbx)Kj-k5|0mO%UlBzqRwylDDKMHKQ$eG_7e8VB#ouE*TNADLvP^w} zxAetTX%o~PhwUBv!G|@ z>G#R&b8e*4Rx7kb?%&>{Z6?Htw!3H0Js}jPw&U5=1=?Own)-s?ptVSAiDsR2%?3#W z8lSL)r(9fp&e_L*02iOQ*pdS|u8C=bWOpX#Jn-!42S}ON-@m5LZ`?&<2U1L=2su>t zhg$-Ziy_sZLK@Z#!#Tw=lAaUd1u|TrtF;?A>YiE~4Z#){z^ww=MLdj@jk4cSmn|V?7l~xR;swZ> zbso`LuZsWxAOJ~3K~xC_MGG;Wff`N4uMb9Iil~eX!{|L}OQY49m_|%0^R$rj%whYM z&DjSokcnV1p(WDhMvTcj0!2{2lVb*9se~a?f;;3Qe*HBv!Hm#dfK96lnXN!uybG%d z1BrU`nt%Hj{|7^Kk>dz>ckqWx6Ro*GSMZI4W`SCT)*3NH%o^hmu|@oT>o+$D4ic!< zV~(qJU_U8kj)X9fLM4R4m^=KSji@%3Sh08xc|~h`hG>i{rOuOYAkb(N4C{<&AjS)1 z{0^3`IeYpEISZ@vr;Ja(&+ySt_~CcYc>2i~jO%Coi}SzWw_m^FAO6#S${+vnpYV5n z?~i%%>@z1z3*GtC_q9~r$y^Jq%+$pxzw_iSzj;3~?|1C(-*9vNns2`TC9l7E#eUy< zN0^YZ6HBFoD1<=jA~IM9w7Ouct#4)>#lOHYKEd_SYJHn?CD3Gom~=Rpv-&BR%pAT4$@=lGopK}9(vz%7ipV8X^1MZRa9q! z8kvMdrDc79_Uc2wAtomw`u)yl!h@SN;GNSPW57oNI~>KWaDvjDdMtZ+qKFW*6UL9x zb$bBaNRI=X8I|_Xmlzr`MkM%Lt;#}-krc#*Y7s(EFR{gsPY8ll?_ZQK65`syd2xm` zqp3g|K^G*iQL6~4_ZlB5$q_w4mIf>YPljmdPC%n|*Jupx0(Iv&odkUh${(R2e={om zI3CC2cpQ)8KXg0_fRE#Mb~p$Df)&hW&^^|+Q1+-icBRR<`K=HPik}ro$cc?j@lrHe_xQhS8QK@&E4Bq z#7RkWWnTQJ+M_H)&Yo-t>4H(<=~yRzh%RFTSP*Q)=}% zU@J~%43^1pMUI&~Y*?Rt$l2A$tS&!9FFs`K3)6rij!s2`(r}vhI9_ozX12E#)yj0g zAgv*7kKDhd?r#Z$V=jXPhdR)mx*-wd47ec16(I$P;xLV1=#~5b8Ngg&0+@$g=PyE=T|IC!N|}z6`}~L z6}3i6Bi4fdoh9!q3zdLJo*jgd2vNXNr+ii_3vI5%jYr=k3PA=;2WrV^^ZR2?nb``9 z8f96KWpVdT1eG4~?DY*Ifq-~dooc5jcnDWQ#6;0zy!_?QxqkJM+WlUeeDSJ& z{RRnWRcbRNy8EkELx$i{R{)jnWbE#)Bltv*bWw#6i80fvLo#9q40Q7tDuF`d(@#HR zwL0hRH@`s-*Q6*sdv?x#zhggp4F2;)jg+2IfF?0;~*w;Cu*qcsQ}I2QVb zP%GZEo09bCaepqFV{YYJCVe|aJp~t#LTI$&=SURq)GNi^mImD1gO$L>gw^1Vxe)O_ zS^=f?ur#c)^5i1%{HpQ#bz?gj)xagkNJ^1BH1aACVYDG?wCPve6f_MZ4C9+5*1$WEQp%T^wK%qxzJIAewow_+A!NnxJ&vKOl z;~3a%8s}#NtJRu3tjVi0@_OjqdkJZHA1?v5hSmtJKWlLS*|8SIYg=5X4blnI61tnz z?-N0UhW@{L>Esx7em}Ar9x}f!5PsXmcXSR0IUaTU7WvjX8Tj~;cAQI|3Z$j)#d;Sf z!QYok-&{09VmJ}8RhysO8ar^se?B=n`YifH?yv_4!0}QLa}hs05Pqd5$DP z7!avg=tSYrP)UC5kNu@`Oo;Sjeypl7|9v>Q3tbF6!a^R$<9Hm8<8l1$$D;uFIDTh` z>4aFobdTx*tJhF(X=P8-iMlBB!MNTwzP_Hg+0DGU-En<)&%1YT+1^jIcHB9&J|Xi- zNv+mNbMEp;v5@kC@$8nX*Y{jLeaYtP8LO*r*gW|TPe1$~7Z*=CKfh$XK4Tn4#vu_f zf)s)rfCA0qRXW|#rf=Ba{#)*Ee$H-t%l_^iDQq~u{FK#YL(T-+88&8&O0a-gCdAR9 zAA0OkIXVpu6)&!*E>06Q7lzEhiqe)H)BcA2_L^nh`2;ryT>m>RLXMNd=6__x%l$+7 zR%eU!U$tqUNWUNZ@X~5)g4Re~ggQG3u@&j0OFiwB3(5eLdm*fZSsF4n^6H9@e)?y8 z{QG~O)w2&M!$>gi6l$$HTx7cCaQBMC-3^DgUt;fG!kgFF-3@JC$Soit5iKyRH;k(l z>q{2^V;BF9WJWMz%7k!6N&^}L)Y%NqOTvRB1$Fgqmn^q#dRXfJro4i1^}e zH&<3k(3F_-hn#=+AF}!A4=KYrLmE5^HSJ(`hm?C%@A=0+{+z%3AO8pDY2xzbHIkHR zHjkyYLZo0}#Z())?z#NVXME=m{{(yTf@TSIG$2+hT4!w8VXaX2H?;YVy1S!YzhXY@ zY5O~Dca7fd$;DXi7k=}vf5A7ue9JelcC_jcoYoZ8PR%?59im~)2qa3W>~9NqZ?BQE zLkZk(C!Rk0jQf}0V4^Iwl7__7r{7`y^b?v0@9yuMUKxcALRuvjtw;^j$|0&#Dfy_6>WLV_U_lTTD`|D8biK>aMpW2&#>Sfdt#MfhS6a}IPfP912L{h z@q!dSV45b<2%EDP)b%f!riR&${oOA(-+Y9{!NoXhm`0FI7b#|lZ=3RO%@34OIeGa>Ya+p|m9bNBOuOBmWEFYUNTv9Lq7F~}YOds{ z-_bd>+j08HZHqcnX`(b*F=aF`Y^~tLfVbpm31P+=6~jU(+{Vn1q1(W!6Kt;%t*NHD zMJqLDtQFQP&&5S$y~^B;ElzGC#t6g8vtCy=n+>*8=T@%jHmju&=Pi>h^s5z}ahTPa zHtix*{YP$ntD(-|dsfL`jD5s>;aPcIFi+-P) z1O}cwa=ddXymM)|yj-*DJJy#Lw{i@u%8{C1L3)EM6U0njBGZ&O93tD@%-w$C_Il)Q zmk9f)&V|a?4mE8HS0P11ZUFb3)tzQ+!0!V4!^GzHC7X*!tS(-1adk~uX7ZDFAU>wV z3({&s$$IE_CgTZ^XKJ`6#z30hkjKwB-u{fc*S}!D-!UB{tNuMYo9Md*{DScl#vPS6 zCyr_>rRssul!~#Y5r*{mP)oia6&KOg*<2J9USp($9eKVX&9{&z1@21=1J&mAYfeB7 zZe(o$E*+9BMY^xO0vctOl9Adb&qZTR)Z9S$3d5&bN>v_HPRi}eIq1QzdWl^ZM!lZ<_ zb#vTxbo~nFd#qo9>oLaNI~9;t)M6dR8j4Y9wOGNB8uzABLePUsDw;YIJ)|laJY(x= zaxRpbAZ2~-gusP@1`dhsG#V3@M`KDbXwP$}j zVv0arc(k%e&7_(%!ukI9=)U*6l=a11ds3~Wl1OG0fVU9481+Vj+b@9#(`@s74@L zY^{it)`JbXCTtPCR&)y37gs0*gs2C&VgaXz@|qDc*7n+jiGc4|Ql%d@>P8gbxK#_) zjv7&|8%$l3>PlHsVyI>yn-0WaBLRdSU9q(& z{N8y-B@wb9r7CK`7-A0UDr`j$r|Y$ILf@$)xmFcTQY;v!ZeZUFT2MX^mr4wY^?9XV z_dLD&F4hbxz??rPyKnO3-5>I6@BaaP=XvwVPk8zBzvQ^Pp?~Lh8SNSKagUo9oKq*H z^#i7RiuG66{xPy4pUJ(rroYKLiI&iMEl#i*{UO{h4^Ti$vIRCF{+pU-XW={Sw>$}USh zm?=XhhdX6+&}Ub`uz-#PHNUAhTLONvp3v2)<0Dj0AqB8wQK)3@D)rTW%HOT1BJ!So zlln3Hf@NHwTxJtYT3JJ@07sZ zUyv_eU^8T?;k~2F&t))%49RhHP+zvD^VP{ntp5|)Jh9Cux>%uF{4 zuio}`h+bT>rzrpqw1X3pLo=eMeZ*|Vg>$2OPFm+SnOnZVf*&J?8e9=jU)cLxvkMD@oaW*q1>n_O9`~~O9<)4@}?2uhAeIw;iu-Jq*?t^KE~SH3Er z73+pcE4wr zhqXnKlDtGXZFqD{K*7^b%|vfPyB(t(C(4fXr&aMrw`zJ30rsVqK^BHwUu6)G%Ce&G ztHl?IK}dlT?T$#nkL%eJ10sx)DxL+UhHsFhIZ^?@aOmgd7%U`0dfBLrY2PA0x4RCR zecwzfKVyIF9}^yVihfbvh?4;6;C0;Po$o&CUC-nrvv$hWs_EfoITWTe!7S(l1SuXA zYrg*LT@)KWJ&x|8h-iKcX{Yf9AFF?_k0S7xjb zRU++u?#Zt1rn7&1&i*(c=z4$v8n6~(#cn)@ozfb&A^gH!3Jtd9alAeXK!xsQQ%XgP zSIUH`K{r(_13G(RXKz?kbeGWewclIML7pJfQ}qYGe-mkIpLkEYx30=8|EMry1<4j z#kJAV>GS?WubyCyl~mSaKbKrvhVq?7ONF}JFlv4R8@M%LvNdZR`Zq^ zj7wocdendSTqBG@RVVJOg!&@eVeOEe-cSRVyPD#v6ON~!+(o=3r~mctMOB8hD4k`p zk5bvOhj+*W9G#4=bC5&jmq>!q`9?p!qzo8!3=n=MklQ~2c`oVr4Sw|p*F2)4jLI-J~7%Uoj zE}^8|aEqahBvY_&wPs%Y1ovW9al=l>w9(Iy30@|y>_{gCxtMddfO%-61ERmaFDgtP zV|hiBHL;uI$f@t$WS`vu}hzJPXkS*5Hw2yt9+IR8Dn;qb1nJ#ffHSRemi^a?}+*^GWY~G_~`Jo z+&6idvcO`j$R57v!@@-SV?^9&-&4ebqj$Wlemrw2R+YYLJ~zerd!Um9kUG70U6*EJ zYFQ*A991CAMOK?r8;VJ|cFQ9Bmsj((zR0+=^V55B%2aiS(mS#Uo9X854;L-c3p` z95G^G&}zxZ!LkLS1eYNUa&MeJUEHSI36_;}ugvJ2i5Zfn$E&h0z&1elQRRl`4-`d> z0-{eM^39^3vyBVYf`xtT_{89G8B^)TD>N)4Isc;LFcy0K;3zI?yjCBfqGK$Ttx~Qh zBwT5~&K6z9FHxwROLU4;(Hb9S(YU-9vU%-T9N6n*5S3Mq(6^Eo5TYMHr$IV3j$4Ct zBEquL8ZK$B{DmdEYLm(*s+|OPBvG10vyP^N9dXKPTG)q|Xl6MxQwo^rt#0(oFUF;9 zw4(fuR3~b3lFbv5fK_3L*x#Z)_V9mA0ZA({WOwL&SzAPkm6TSo2U$@(56N;Y|3hf- zJL&a&*7hjD_9!>|AZ?AOg=o$Zc@H>jRG1V_NG+3A+>!u-HImeh8G*6N zoE6EzwTS?k>YC_~GM)sBRQJ$8NCW}r_tj>^5b^J|2f|Uocbj*cyG*^j2JcT9SJwei z(N?p_6vo|}qPD+(Q>T!nPr-p&YkfZAJZvW_meLH#{LMB`dy`r3x5UJ=@XftIv_lfuH%4y(>ECq%% z1F>K_-So|V1e`q78)DYy6R(nWb*DRan zJWS$ME&FaBeClB4mjZ}+rZ~5yh+vGcVWauCL-Gb< z{{?4{b8Z`AfX&gYzF^stRL;v&Yl!yh?%nNq`$Y2X^7G)+I0l1Ly-+EP)IJNN^4sQH zSR}~@Smx$OtaRnzo^V*aB6tuS96zps(uI)u#yab!Pk8zz?5fVMt}Vyy$RE$Vt6iQw zAF~j=zpZ&Ab2K@2tm~yHazd@5!56)##psAjk`oYAuGaKOp3UHK55p`d+(CKflO8W` zMEbth5}S5HDm&T7sP*M}OjG_m3hC$`Osc!~zR`%mKpYoU0LCPfhPOTI^?YaTSo;0H zDitZL0K<;$o11{TNCcTQnl`I|x~TVveRsq6yCM4ru@<)lkp^5^oX=fnbtC^}EP6p$T8`9PWz4PcfZQBVf|6HV4$w!zVeD zU8FT}IwIQ8GS;RU6&p#%MA$gyG<16cdcQ+eo;JI`0CW=I`i_xS*JF;y2lqe-g`gO% zZ2RjyBCg55bsisj#yqoJzy0JlZE#z`HnmV$cH(CmqYL84Yx&w$q+WQ()2jhV=;5Pc zQ5X(zefvXfB(S&f9{9_4m+sH=sopQ62KH`FMTaP|E?%ypvpGJ8n*Z|xfd7>L#X5x5p5pzR zHcY5#0n;)>)fv`^g#yhovV_U00Mc{`4oNQVuB|2?z`4@PmlsPN0@?Ci;;20Wuc$+E zSe+M?aG}*k{r)x=pe@s*YgsUVW@*f%W7XR6tEN`&LB*Ci zqVdh@lhyR%09WPj3N`Twj7mHUuM}6mhGfsB2h@m&QFX#XPk_z%-T|Xs_0_$MNsjua zX7mc7ZrUF>>u+saJ5n-Wr(T*|xL*F}8bkIW*F>D=wb5x9@cqYshTOHCTRL5?H-7kd zcCbpATooCu{zqB*YCim){wpqB%^=nOg5o>GlqRhnLl|`UkP)m&3demb3`V2bmgW#C!!H88w;UOFo1$ z?rz7NpT}gL>bSb`AD9;Isi#f<*>9xL)TS_rR{GW^o3!)%QT55U`SS3nWyge10?^sD zq|HwXW33Geb`(%XCVy>XTwT@K*$(56*;9@ic&H;a_HGHimz_Y(tDP7r`Kj!syWf|@ zrjFvytKulK^146gNX?=2RrWVRiy3=b1grKdgi%E)7!YpTX~-4l;*Bdv`Fgab4?!n? zWrJ1G>s$ohw|Fzhp*l0|`|0gUTVTpKaf_J11?_*Aml&d!wVePV#K}0Rqn%Wa`4plt zu#B?Jbe)8gaM2h--#>x`MIb{e^HSE3_tHnpB)@Rbms5KBWCPy|)&i$YWRfh5znojv zcIhZz%hbqUOA4j~WBxb>?R!;zH{8uQSlk-Qwv2xyE~~>LB%lO&3UsA&xcuRO7S^S} zl9pO23h_AYv_iO3#>F zox*InjvWDlw}VoxDAjKh1uVp|eGUqPVN2pDf(@3-@W`cG0Lgd}s*OQxN^azp<0+bP z>FJpz>c}CU=%=OKRs=@Gnv~AV_$>}TYoY~@8Qr^=Ei&UbK zC1ZFJ#>Tx3Ph5|f4L0|M=b{OcySlSoq_3K{ z>tD){s@?Gm*d>2dLlIZRz;Jnf0Rn3<#-FyFMyYUUvvpoE^g?E_dP!r2j?*r4|+OCUmnP(R<9FlLvCm@HWr8l@YlW{=c0$Kxidv~hSN^Xa zNC#{_;F8YA{PH=p2wUGoFH+BIpUIQxyQYISfIMW^f#SewW7YO6!r`(4TjJk^#U+F2 zbZG3DOw9DDID(mS zgO*s=L?<#;5sED5ZB^K&-*GI~h7#t{G%!O^MZXUM8juZ$c5IxIPJ~9n<`?rQtRWpj z@MYT6fn>FIqkJ+IE3R*xTsIbWp6Gic?+9hFO5z(2U%tqJ_2K8o2lkw4CzBSpAqzA) zA9`O<$B}z$*NQz1Z3iPmJe}$+;iz1Pwd37;XH|CJF~)cx20>f)5wRjhL-K_hl{M4c zFEqQOzOAb{AZuaKN{lf!@O&7v6c;gs3|qz0siX_(tLwld(|R;eCdU1Pa{3>6C{`B* zd<*oFtjBAb4+)UYPlEl)BOj6}y1$RDZ=j*C3%Um@G>mVQR{f{nBOA*;GJ!#>nz?D) zS?ZX;f=Bpk8Xc*}1Yq(9FVux-!v(R^eE!~fVyAcx6>eATK3kJ*9(Ea1M6FS##>yHc z^|IU@FaTTbDca;%&K1)`;2lX`!rpBn7wbeH#b1<>EfaZ$Th`tSBuJF1Pj(=N3njSm z{-F}FbI)Q7h%Qd3H7icXI{Z~X&s#=Hz_yqR=4>Pw)vU&neuV%C)U*3jWspX zhp~vN3uA)GB;(sjxnsN~t@|txOXU|IaTsk)hal=sz`v^}ZFb(DGQrP04r_92HjisI z^Ki8C_F4TpdC0=%*T(-STp+@YZr~pG2n0SC>~*D?Q$0@N3g9=`$kEWW2+_f0rh#{_hJyv z>L_9A7+hzqdE>83Ht#-D3iA1cY5#ongFPL5*^t3-CHQ&e|1LpAMIE&B)^J=8z%M%1n5gc{oeBG?M zgrSL(E^1IycE?~DH}iAkkM|!fYpNlU{)%QHm4j(mqIUK^lu2O@&~A;S14s)DOYj9i zG*EAICTsT;O8XDZLbCQ&JcrS2zmLq#?K1Ag_GLQ<-1g)2qA}(l?+F(89^OLLZ01Yg z_fG-FI4OZSmoZ$c61FtGeG_EjHopUz zEa-(cOdjF2c)!_j;Y^}+Dcy<6Jt~Q4PtVXElm{5hAJS5asK%IOQ1`OcGO$}@NZ*QR zQ}qheY;If~%%=igP3VQDNU;-G3)gVm3^}2t7^N((^=m4G%Z|3BlR&ZVHR+@{CuE@>g-ZRIHY$wzas1OFO8?A%-w&-yP-0zBaM^C$Xu)eeYg$vc& zV>xqwyCZ6y*wV0K+4|Mr4oj&(csQcb#BD9))ALH=8+bo8jUo|gXE`9VXN|hia->-$ zC|VUvkI!i%g`{LlW%Fd&k#jmP4b*vFIq=@|b_OIGrQ<9J-Bg$dKmLW^^v>{bG{W`F zk+H}<4x8j|=9zV>^ain^S`9jfMYTcfa@2IK#vAu)g*Lr>hBn|HUT5|5u(3akB^9fPLrhDk38AVu-r_W0Z#xQH;0Vp-vc`BH?M8?F5)|~U% zSn8*ghcp{YU@;!{jjXY{X$MtRRZnay2g$?4@8)|97aEic6U#oWShqsz zSsCHq{$EGx{Ev=A-zJkqtM=?v0|#Z|d{&6%mS@i|zZM-F2Xs8A*yR|NVO?30LxJ%GvWgSB5tYqaarVn6`Cf^MoP>yb^`uGyqb{ZWxFexYj*>U#yL0RyB zew6~tBM-6}Y33H9+#JEMvC!o&Na)0C`2ZusSZT!+`BaX|gTp+;Jj5}&o7Nt;FGFlF zI|((|A+EwFK#$Q(G*l~l<*PzP3j2=@x917JD}x>8Pth}b@k98&+%<~fkz05S+qIo0 zgPwcl@G9SM>!v$3R6LffT1XQfMU`$H%$rS@xes_&Y5(m*72XL#tTMftkQI%5pr42u;n{FmL1Rb$ew#65U6G@A0 z&Nvq^3>M#8+0C8(_UB^wM?v|I?n6e8*FnVhf`IFqInU@*92s398dVrM@`@qVH1GJH(L$*%$z z)l;!D)g{aG4`e^HG%HC~`koEBT|V6!m%M!N&5o`kv`2?=QYu87p~UP!kv7NV^MzgC z_Xf_&N@`HJ*}d1^W8!%k&orElE+yhgzdr>&5G^4(iLmF-b zLusA;^iW5?upZI%ye|u6;6d9V^tknmT4eCk6~L!izPVOXBS9KYGzq~ z1DdWF-2^zq9oN(3A+)^Ssm{DS%1X(n#5XVH+I2}nFhs`yzfontQH`A(>$YFHkRI^YV84ei&L zfrtaqOrI_AfxPcd!9Z^OsO{)<&oA&?@fk7?^9iKGE2WgBY;y1TS)bK*beNt%<3U<5 z)I4^Q;;6nZCjON}=dc2tEkIT2<&|9Yl9Ap^xLf&NB-%(k#lN|2(<7CyPCDPW>qcDn zW35(Si!I%EKb*G)601Q(bLrgNWmJq53dBa=_^*DlU!Z5(ET7#Rw=u4<{pD;hX_o*i z`H?xzve562Dey7Px7+v%yYg%6feZ;Wnm2!#dHX~c*avk_-geY z%fG#wfe$DpwG0RPQ5Xn2!M_n2Iv!ehzeQVAREduY$gjrGi9EE+VTH9GtA3kiLoDut zU-+H$*;mL;(}fP#8wuWJ(-Wa*(HxZIL)Tkgbi2X$(w^}R3~HONC-b0C=IqNHKa zb)~jq`UxOk7jZ9Z*tA*)@JC0eblc0F6lLO@I^_>+z!x1D=?Ke!sug?B@)Z})@?6jc zI%!%-(;9{~qvMGc`yAv(wtp7iT=Zv`^-L|xB&chvBPoN&5Oo4@(OXmDt$|F!DPProgwJ#ld%2G}r7t^lXB?dL9T@7%`S^%VNa zl;?Xi=rq5wdLoIr4K7wmcspto3VzJ2&2VH}`Iqj1XY?vJ?GB03vDo-|BB1F%ljz60}ML;r2Rq|CP$r zXx~;frnF*IYgllks``7n`p%V|YUDLinp++&4p>t9gBD>_hYjl*Y7+r8#cIuUcPjfb zA7Xnne;tq_n*sKoou(lkmtF$yHRXW5r=@JA`emrgW1;vu*QMm4rwc zpXM;XDfuW?Z{)O&6f_?)I!Z6XMpzVfpJG86F8i->=9R4?{}=%uYJ+Cy`p?(Au1c{R$Dp0#zNe{ zQ!ff4TFUqV2u{j@i8_6x6K~zWO$R$N873I>^&QEO4OIDN03<~SPR2c8*ls-EM$Otf zi;ZM2y3{S8QiK)CBtd@4#7H`R_o3UC-$4L61y3aMu#d{JrIZQBYObFQ%Rbnh>uP=T z86w;J$?I-%vq*tx)e6E)xV#_(&=8=9r^_kDwx{?t=hiF8XSCqkN)6|Lay3{(8|Y^K zc=OwCew*BjjPZNqj`#JE@N@0IKXe;=g&^^*Hs-w3bwR)xlwpf$ozT>{a@orAdl2pX z{QHSUOR4z~v`bL9u0dG!nY4d}XO@cFsoVUV82fzO^@{hp?$1haQEJ3i{eu|QpCaNa z_242w`&t4eNJ90;3Hd~fk$o@TgH`kJ>LW@O zK1EFGukzTRJA#)Bh*E^7H>8l;-n#=k>CxQK&vvR9a$0O%lo)=?jrd;9IVkGG{5K>= z^=`lM6v7@gQu7S=6e-O7hq(K0JxkMcGvy@=5PjPIx48p~%|?CvC8I^)YN1$n6|(B`&H(W8~uM8C!7 zb$PM^tnzqVe_SH5)kF~tT}L~GJVfF(i-94fv@cYyBZrdx%1>q~<}tW#H21ybt+Ev| zA?Z#-w(3s(hNa#ypv(OwuGk6Wb*(7Qq$nFGwj!0?URJj@i*XSqV-5p_Tw8 z>0)FWjC>Ieq>|#YdmI=k_MdOT|HKhSIarC1#|Fu1B><7-U%+b(L@?)0<8OyLPTsbk z3^VvX?DN7uI0ORt8)%9LN7_^n_;HUll@Inc5SWGByg#)1s^ByA@yaH8rm#W~lvu0E za1qMD_;hG_*(T#T5G*XlLE?E6VYPQr!t%+u7)JiM^;nwux&3umz#Yt5)pjToU`jH_ zVJd~sJh(=Syl-#^!Id#OG+I3V0rt- z#5A<8=l0xTU9Eo4bNasVZkVk94sQ$$pNfZxn<~NaU<{>mb0r9K@|uT@7`YGEe&@RI znpf7AX+i`soENjt+1aO0>R)d3)yT&v4@9Mkl2tfHrOx%y30!JyWl|SSvc;N%7vmRk z_K?_);SzZHbR@lXgE*nS^&-P15A(P9d$wp_vhWC9eIcyM8EhUoQ+OK3UmK(d4F`D` zd!Nutb!VU0TVnd`6~YW3{BT;siVo(N=GZB92uBfvcE+pUW`aHjT#eO7Ri$BO-I$`v z#r95+DcDt26#zhWLx56~IoAu3m{m}x-6G>m?w-i_NXZGGAsbS{8vnxrj!NM0F)Jxt5zJ-R0U2si9;vI znLbL#5S+7!>SyT@%>?NJmu~O>&lHaS*RVQL7Xe0znNnlVgKdkPzW6$H zUtBeTTm6GaTlVnIBJA(QGc@&`A4@xrlNHf&#tZfu4Ea zJw*?_ver^WDC1=p@?@ekhnFl>o54aR>PqQ7BP60vdq*H&Zouo-c2vO3!yE$BNXYKF zOLXJMTHwk4F%i}TCD0a|A{0=cWZ9fxX40-Tm;hMpR(nSH%av@223K5396M3 z=vnseK|18-3(Lcy6(!m(s*L}^ne0D73)HJ=%%-NFB+qPa(`A*zxNT>dR0^(5x{pgv z-c7Z%eXNV~>DL!H%-j6%naCCdJqA>SkKl=O)Q%;T>=IpH;oY8ZvUGj$&Yl`5A26ni zjiFh=sGG++l*K@#6Jk4N(>PFB8|+4bDi<-Ws-t<$%7cFuFAKvAz^QZKtCSTK1_cS4 zrEi%jbn@4(5osO-10%VFWrEqri_lZRUnw2iNS4nTj2flJ%B}esG&c+1v5y%RsQW0q z^__|lHea*+hC{m^+N`tNW%YGV-k1XUspYuC>NJ^Y$1|LcGPf^$X2DkGHU3AkakEue#JyZlU@O|2XhjKr#*$1j~k4Ivh=#!LFaW9i8e*J zCv@7K<&=m)2c8QpLHuS$qSyWzx8$!SwsVy}Bsi^yIm_Ysgp=L`*EM-R(bkVgingCG zobypU=5ZH@R!ppLXACEF7_vv6C(q;)lba?Pl5}8wagpM>l4BukP|)>wYIy!M)YbaC zCL-YF6P=?J=4V7em_RtJR?bHDyKC0jhmec2%(FL>or|g(kG(Y8qbT#ba(gcY2QTA| znz_ZNiJ4UP#&vSXu5GW)S5h|;zy9^}N%yylZrdgkfeRKcwA=W5KEwA2}TBJp2lKFg=mo!yxB`QQse6+T^eaLxCwO;7`@GF(B~dX`oLf1%Fh_nH{RfE`)31| zw}sE4{<_WIHb>)kxm(bHpd^fVX(GYMMjdo>3iAY2!V_oyPWR!i_ubFvK?tBxxb!rV z$QLdFSE9Aj+^Nwl+uV4jHbmtPMTrS`Ne`O(S;2F-4AfIbQ$HPacN>VTs`u9-I6~;e z;Hv`f7hu*@L90@lp3!zh8=~Ce9#JG{|Bb+dt&-f7tSbx+vV4yk)aa7GRA=d;VB2|P zZ>>9Qo~QIVk6*J8Jsx(*9|xaX)7?=bFQAkRemw*r`eRZvf~6zpCq6X+q6P)qR;?aZ z`41d&DYOZK`(ZUPs#QHNS=6OiF+>Y42{-69zFwU5uOUlM8u!inmn3gA@GRv4%-txog*oVtb$@%ld2RS8!q>c*n>yr?{;2uZYzuG#zCmi za{pfe{UK0s&3N3s@6Mf%Uvc}dPEmWqk%`EW)AIfekd`WzXl_NNEj)BW$?A;tX7zm9 zVf|H+{zjsubqgKwE+2olB?(R3n7N7k#H@j4Wf8%{fXvGG^E|9J5hop$%-d58ssfKF6>y|vxjwx-e1 zp5;N#e+-jSXa{>yxUN8{?0Gm1*7WbBT-GXVO8m87b0bz zr+CzD?;P-EMw++3U12n~G15Y>+;qRUNok=ln40pRH>W3QES|P|l>VO=07Z8lHZxlC z5+hlfps2CHrMQ6H#d@tV0&lLfwvqor!=!|M9N!~543f)YkjsEYL8ovW$|74j6ENXV zldcc3%r(U7|0_0cKmt($)?p0ErTxd>$dN5n3Fb;_3Q2XKkITjc!Z^lO-n4Ju82|Th zF5`o5zeu4JXmRtJnObU#sV=j!xbQ>e^jH>qh*Sxz72MDgM@&v@zAX@#4daEd8m|wq zkM{qZ9&bSjVhVwuIB1aPR*aT%_*MkDshQe|-Z~oQVbSMJL5x!W%*#k=yg_!Ifa|6i z71Wc!XqrRx@SFB-<2#K-_FH@Y+h@-YCR;-U;QX#z2X;5&BU@jO(y zM&09+dwd~QIe9B21pB?bG;H6_%&}*^iZ)UC@hE9e0O`u|zsu_Pg-P~FZLVHLE>PEd zP$jg6&Fa1^I|(?<`f;;k+wObL0yPZDrVc!Bt}4ZH9h{B)WG+VpJR%DruWwo5wMAfKzrAWl3{J$rh>>B0v+%It%|eQMfN|KAU>te@Sle$q+fxEQjX)btI5!Oa7)rIIl1O5 z2^bPv;TgRGDO9>QHM8t49?QsYI1?(9nf9xjGLEe48Fl%A`sdP3cdoubw#$Ft?7SbZ zLJZ#eKPQ+!@BZGt;Mi$)mc&M~pj`w0!gjp8A{(D^`Hzm86Q)8GfY#CEE65<3-H+#a zg;&rJ0K-ITw*suJN(|_tMP+EFxvp*<1LZ+`kNqorBG4M&slXrGyf>7v}7Pd7RX^Sglo ztfqc~4fu@0QJrAZmVwod0%tWW7|dk6RADj=F^aG)@qwaK^GSv0fJ+#GnAQ0zE93lF zwzOLp#)bH+qns;QM*)NrN8v^t?PJ^v%oCKRa&~JogR~~!JDGRPU?#Gm>v$WuIhftyZjgQT zwB}S;Bt*x#aYVmkEzN9tBYx}21AaBmz3GnV>=>yP#WMMUHZ*MUYaR1JnDD)iVtzz`*jiQdF=Tr@)XGhZaR7u<-~ev_^v`WEoAcN!j;0N2h2;GpSbZ0 zOvQpgTeDmk^0J5Pt1z9fl}>(k^*aPSO5n6@iA)Lzi<3;v9=_iTgBtOa@=ir)FYYva zE_+Y(NN(dg=;cmZav)T0jWbw`{{s7o-R9}1w5cJBZB&00x0uM#fsu#*10B=l<^Oy| z#kjVz)=E)A#F7Lw#w&~Q-O+^cAGmfSM9)5ob2W+TF* z5?H%@PicPMxM~M}Q{!jti9BR~KERv&`@_6$`KeAuawdll8I<1QkNW-+%gQE4Ad1BhL3^ntETd{ z(tPE_*%yxhnlxXkZ`Jv|6+U*5yGRL|42E$+$Bm6p1<+oA#E7niSTPgz0|DW3>&K{ z&W(w1uJMjs7wlZ4@*_(9tcVR%K_WNCt(oMAg6z_N8S+n=QAI_EvtKb#vQT<_qcu17 zH0@rR&8s*uMJEnY-sbCWEx~Do!c4BVqlEF%U=$j+;kl*pcV}}qDFAjSNpMsr!ws{> z)!Ued0_I|6vVuo&Lk)A|bf`m|tY^V(2NG-=L$7~|uXb@aR#V)?w4~NG77sKN?UeaQ z*xZn=hKWwveGd+v( zZ!ehOQ_c1G4`c!_>op~NOuQ>{2Ys%Ay?uKjgohs8*)TE49 zoKL)4(nlkFT>p4yZt3ha%We`H#`)Rck6mB&n|Dgyt$ffeX_v@m-J}COFz$fp_8@|g z+A$2%D*u)&5v)Z$k8pE3b&C?N&8u;=x4whopwAlT;!hNN2DP!2*l8H2TNB{};RSK= zBlVp#@>kU7NI=s}Wkp@e0LaM5AUKq~+$zt_MaVFS1HmIPY}u{FWMr@2h}|YGHQn6r z(cJqk))yIvyFBAJ3c~Rd&K-#8{i-VKK7^DqFD33gB0srW&q7ccUw}ab0l~p?OfUzh zYmjYSG365Wozw9-%I_)GH;mJytNq~CfWXfK)s}=#PjKhsjqetuAY|+(;Gm7t{Q5^gQ_)_j&U7-6VTmVE192==I%y+$?uc*7rS=S+ny4$?xhW zAo5hIGfY=s-_gfoc>UU+`SVP{BgN3IWuFc^=5h13+V5XE0tcmQwQ?G>kg3-@Txy%w z%eL3WhR;tuv)+Mc3mZ92FG-pB^ZpRO>!Plms?LzIQz@M!Y$E7+h2sI?_aUhy-hJbB=4-_GkAul^uD`FOQnV@L2mm*zK(-Dq*;^o2`DpwK-wZ(^ zf(%*T8Dk>$KmP|WG5*)rE{YX}CB2V07}~`Iv6puP( z+r%clTUq-~JV<_`3ccD*A47~KJ$1f5I@DN;*4I|%)p!*=CiA7abf_uYlYSb!-G0tT z3Y5k>x(+JXKO{qXSo1e3uX!xrUoU4Udop};_}NWs zRN9|6OI0qKbmHQZlp=B$kc9dE$RK<8;tA^SN3z@O%xMa7Im9{e-Z0c|`P`{mvZfMx zF(eC4A3cq2X@B{{qo+vOoJRJ+z*xukWqts4pV=k1aEXwn&rf*RuBP&dUz;VR!4 zOEgb8O%!Jv+sP9!BHN)lSS-=+VK`J#BdX@ZF*Lt53OHcZ!b2qgkw6jR>|ss~A3^>S z)4*#7#o2c{1a3?OsP5cYiXz6->MNxTx!D;wIo0hNx8(@6OPu;QxGBR?pef^KW*x{2 zvkwh7cSh(6QCObtIWx`LH(4)sYwMyV7zXJsUr=#rOfGf2g`o&}_wVmhD*a1Mb`+RO z@pA4kC*V&2&*Y6S1OURv>nY8;>ppjB8sJaZovcyg?szNhgfUhtP%uwxUEe z20)YL(CzBXDYc`Mot)^Qx~7mBTFa^VbuVdp~!iPyK+D46HMK_@;000~qkSDi{4G4=lGd!$p zlBHTa9n!p(J0&W;=pN70DB--Ku+A<_*=?`#^^H?2 z#Ed9MtwmKRzXgptnuXEOsV0`uu~&|z6qyClPQz$vVdF81|AmG$V&DtJV7XAuK{9@? zy_Tl?-rDOa`J*$B_~JNJ@camYAr`Kz=|-IVw_(MIGX5(Dp=>_(p=XI_c+^&aQ&iwP z1xtSrfL+jB=p*pQ7U=WsFN>Wym)l>AOy!FYBAe&G%k8fLf!45QV?De6+QO+)mm{SH zqG@Rq_NEvpdc0gYO|oK@X%;40 z*o>AAa1wd~_uezKsq86OfD!r>69ru7wBb}esXB>?*%l&;Cp2Syqv5;%?0fhr zhZE3X+S4dSW~%pQDlC%#pPkVc;LW7_xhGXdFmeN}(`5=TA4_(^_^FMMF{76K@dst+@xSmU=g4iPw+9VZ6Nayp{&>iUY zc@=SaSL-+iw>|2L7>@Rj+E1}5%WT?oiR{&5c%>I+nb7o=iFLb}mVs$m_f)VISrYk6 z#ndKn6UOIxN1!ag$x4!C@W<_2M!XVwgnJ3rSG214+?xUHhO>4P6_8 z1iQ3G5{w%J09SFd!V54JJAQC?FWwO6bAnLQCh~7pXYM*)dj;d%#aorBmV0y8;l)J^ z$ibA6oQf7TAU+_D%(wh*Y{O-Gt?TX87$1sohe;AL1A2kY;c;t6yP|hpbZ?xX*)L2q z2#Lcb=BO5SFi|-IK|=53sW0$5f{3t}7`-OJ&Z@n1^e6sXog@nrneSRpq|zSnz2Rtj zW1B3}hyv+tHeKpFuTeC^#WzH9CQESi+2#Wxl3dHZGl$s?q;otK2Wn#u3MdNqI;M5< z;#uHvYP>I-yk6RTtiz=Yia<)p{@k(+j_c~k_FlT2isEfcVvsO#Oe1CxZgO0d2REyM zt>8V&ntm(saS@C&FRG1c%!N15>DP#eOfN@Eq}@my)geaVzc4IMo#L56!4){^rE{~F z@tCi*CbF?%+2y10F4>?$IM1K05Sd;INkTOoZjwz01-R3gaQ!Wy1?g$2>n3e;#z1+| zKm4fLKOtjbXJFn$v{kH(2LyfnMd7y}(^fkr2fTs>&G6KsU0 zw(F5=_`bdPY=llxH?dcmN4;s|&+iUq_se+%%4)=a)zaDqy^b{PB?~0Fgyw%)vx$i% z8rZFnjQ;TC)_$ary=0S72i`~UE~*VsMMmWo;X=jB#K~*YXP|TKZ@)PGLq3V>S%~7= z>8emurT^9-DC~>=?eBlfydB&BNjGq9z1FnvB{v^qyzexq##rm`(W=F=Z$r& zSuizZ8ss5l*!3~DQPVR=*Qv@ofAL4yqQMZAh`prYVRB^B7JhQzEFK?r<_ek~?Y{8k zNle2^n1|7d3(lK}?M5IaQ9+5 zvGtDmm68jIl7FnuFSG&Sacl)#BR9w=B5^W^$hEOM*O`V`V#TKs_W?F$mWX04|0*zQ z(}$)B;7aJ;iEZ09CTwgrw$a#j z(rKJDwrx9kv!7@0_aB(wnlIN{_j#Y!aipUX+DGpac<~p{#EbIcfqZzr8#5;M#7QZf zBp@nNW&{jh@Lw@9+X=7TEN{N@G7G)(F0x|uytGys228Fxeo)69Pdy#YPo+Bug=)~8 zPoezldzz*puag13VPmUZoeguVV4kKFb0-8{$|v-USNk|q|` zXMksA{~W!|8XrreCk{Y=y89(-kOvNWPdr^%CWhG8CrwWxA6LElqXDi@*3Ion&iT|D z@Il}6{NnSmK>W#AV`#u)2){T54jfH}GmFyVO>E_tp|y&L7-)5L7%>*wsEoNc%r<6%!w}t0*b~=}o8+HblQZ>1m z)zOxL_angb@Q>9&oFLkgN~UCt`*YCyBNFf#98rdW7`egvHTo^RNuueW%1E-95{B|bhA^cnkJEpP<_@7 z#%5RV6zEZunt};&Oy;U1vN(iE1sk=k(ALbMk`0?AKosNrIg!VDtb3665%D{1Zh~6x z^ZXOJ+bi%G8o|%*;>fgEUHJv|T@AlmQ%8HICI6m7&tuXc3+lns^Gt<8(i190C0mkL zvJk2xm;2Y-%7{Zx30E$p@iew-N+nPJi?Pq?X%_Q$h#J(e%jnQ(yJ$=Mz(@w2y2g zndwRG4Ym6zUVFlM8ONNB(LQEOZ~dH4O@+yC3`}qH?%PemPLB_%mp#w9i<|2%E8GD6 zw~>)_OUL{i>U0${@yFuuZ?yEJCr+ok0$tGEP%_a~C9Zr5XP4Z*?-PlguPF;#O?0;P z{V6>(c>Emk_X&7Fri&Luxix|8 zb=;{<4fB{2wq;@g%Q7{+N{5Gl9vcD$T|(793LLJqN>AU-p$6T;Z^*x(d5mI#~ z^W`8%!)BDoRUz?*<%YxbRaEqPT$e^mhosph**;C*G*;b-J)OOs0-wvEmCX;zzlj8p zjo(qgI5vF;pR-qDH`tqyx_ODjnw2XXA#GJ{)L&3vSV~OE;kJYHZ3312{4410_FO^F zD z2<>Ddc=MUBG+2}L7oOs-^_%>kU*DcM{4FJ^l{#H? z@XJ=TWy>(*+W~L@G|x{;L#?M`Z@Irgi*ixfro2MW(-slDgK~Uo_c(}rPXh3)D6pxJ zqF-=Y#0=EJR>WQ9g5N|H|8x=!j%`a8hdn=ZNfoHMzy=5sX;JNVV~PpjXfa9^VOOW> zj!hZ#P1r~Wmv_d~uWxllPSErn;Laxt9?k(}Me#8m{nfba9LxDyv6E6zbPOsD5hg`|8ve+75Mc%(#$k!@ zmY^)@3*EvUKmDnRUD4Fhr*$ux7iCT{z;EW!bke8SjU1XtWl_|kKk6XSiQquJ$5CLx zmOhGT6KnD;VDyQIOddp4aIZrbu`M9J(7G^a{DPUD#aqEyt@1_qu#9^a=-tc5!cygR`- z5PqvoS1H}>-CbV|h+l!Ah0mHRpMP7?>^HfWQnMyN<|i5*%6eZM?|uHRx%#(jS#(YH zrdIkE>v+^5^Xcn1w-09J68=`E5vweuRK73<2%NV)7v59`Y<_*70QZU%6@9%?dfyay z=!Wv;q?gBM2=V(fJQf#Ih~HRlPSi*KjKFvmaoP&#N$yoa*1a`;87x^l6;_g^2NI~UsvDZq`kU-Zx>PTAl5#C?k9M71xp z(=aTe;(AZ(n`EX>SebKJvIv)IJd+2RM~=U1P8qlyO&vc6ZSb3a=0IHVZljFa!Y}$h zExYw1i-)3D}l@ydT zuG4T&LCj9B_g~KhF1}@$C#c?7omxmz)um!IXM)5hx>eIbYOX6c54S$K`zSNapOQiD zHZKq@X_{7}#TV7>#UBQ5_)J{Q3bPW#;6{%0%?!!+UsnT5NY*)Hz@5*xw9l}yb;u4j zc?=r~+nn8cHuJx{Ml--zHZ3<+i31=WVmq{(3~hYZeDZrcmKoLl-;a-@9o6sz@NOim ztY%W8m)mBn&2%`l@Oz){w6t&`QjA~bWSYCXMGi+cvhP9B-ozhUrV6JJsZ@6U3Tx{| zq(Xe}AutIF zNZbHJr|n`a9wE1l?&FZ;r3)jmyQIXuL~kNo7orhCLv9hoNC-G|5OjQdBdzR@P8Z;J zI1w6KPl5qd4%52rd<-u9w)A!P18@>K5dnp~P=7E!1X2kKGw*wNR^qg{eU9HlXx{3 z#9z#>^%%SS+buF(O^&YKVkpSab3)6uWKO|)eOMSy3SR5I z+6RxgL36);qFADx5iIgr(n9x2{+YCtB%#EMjz6jzROx_w(FT~D&_&r z=o#P9?BddbNgw))J$y$FArdvjA#xHB!9U;|JD#S6x91lWjR%{~&oP&5fK5XbeSRuf zjafx_#cO>hZApL@Pl_4A`#D7_7FuIIq=H$2aPDRD>9n=I{ZpeTTuwnWAtDYn*|>b6 z9#u7nmenGNlEDiTfZESrbM=2+02Qac2i$*1{%a<3MAs$gH&C<_{u&d|ZavDYqO=Ij zh=y2jo1zA2>3Pw?&Bg^W%RKGH2jQ2>O6wXpqj z;@uZlzHs;|9fenM4#T?iV5d1Hg97HFx!Ks7*#6I1m(TZ_d{`nI1go;)6d^=b;3Yxo zMMDa8KiH3|l}{saVv^TOD3`U3AFOsGCLN-bQpr1d%~KhJHcy)`W)|`p=I+7H$4t`= zC3A|ciR}~CWvO5<=8nGG(}%AbCY&QtzN1FwdDBTYhG>I?7dQOyg-&6~yECzJ?xW=I@HBw84g8@7sM=yz9+ibL8&6|z4e5$Ht- zJ`-~p>F*4s0Pn}CTpc|tS=t0q-x#O7qDU?+GjstH?gX#H+{A4**+FAW5-xBSb4%M1 z)L*w8&N`Yh=Lry`U$3`28qbke7bt$svZv?cm!2&#A6Jnto^fT7??}8k{;-_mX4n4f zW$*6CI)uAB8W)vuX6QLnU1x-y=bvoB(sfX&8tlb@<9zwgsya+_L7GRD6wgP5vZCuc zPm(nazetZQY8J8PVzc_#X-nk1{L+teH?#(Or+t+?C8xx^$0aff&nUSkrk*KO{A2 zAb|0Bk^O7yv7DdwJr%BBR-n{cY%~KEyxQCD!zlptzW#+B>c;NQ*3Pnosia%Ln-gV$ zt?0;_kHK2lhJ_r#)uh27{V9!C(|*CYwCkIz?{zqJvoW#Tv%cNlZT6iKn?^FR{Z&2sQ+1q|Z&?XbK^`M|n9Fh-j0wP+Law(VZ@ zaCf?rsQukfR}tsa!mS} z^FuP=Xy=U=rqCxaB3D~Z8I}zNc>ytr$S_=6lJSKi#kI3w>St9J$Uvr~_7M{8cTTy7 zS=0rZ{ zXLmRMlV4_i8wAEmg=tA)w6SejEII;vf#h!TmKt9c+PE?ylPnw9A+o!40tUD6%a^_3 z0R?VRShOrAM?>zCwVN8`({c^p`H2v>`A*!l5Fy|-#Npu`Qx2DDR@KSJCekxxevtcg zG%TCzS2vuBaX$_8@sT}#T+*3t5ZOuG9Xvc@s$cIiO7!vGxW3s%0Y2RzFnHz$WY5S` zjAQ${+4FI{f^u8j; zg+4o-CV-#zjf6I;u+RgnrM#H?5H6f%H0r#6c69V@f-fVUJXXEdK7AlBy@%L8gY<-6 zX(1iuBpW+JZW4*Uz(3|Y2jOdPXS|yB`}f#+MX!r@mjNT4i;is_Z3h;u=7yJT8x#s< z+ZJLfB#!-cELE(H;^FN^$06C1)5z#{qxAgoBL2 zKOPw6C@l5?<7#=Y2T~4Jc1uzo)Li`GYEH6?r&Jsk&X1F+&o7P6+ZSt! z^H-51xct0+l&YJ*egqLjRcwBs_2h@;prD=DlWR_2yFvBy^RgYp9$+#<;eNP{ix~yY zkrHVpnl52Wp?8}GMJ!eMHuQ$$HA$bM4MIxaDq_IuxBOX)CV>J>%w(5e*k0v!Ib#In z_@v2JJJQBR>swry;d#mi{mQ9Ts)uHNOH_)Cu7W^U_x`D2K!2;D|JdMpqC3)tnn3>r zI#VtBYV?o4gh&#VIV)r~mTAgcUPnY2XHGnQ$0Tc;_#m>m(W0xucY+Z@J%0S})xotV z#P>4DM7%vc8eev0g4l)M#H+5SHmWS~J^%bNot*8vUg~al%y(Y?XuE)XtmM-V|2nX< zA2MpDVgI}yc7%7_bSst|?dX`r!1ioil}eR}`I8NSn+}K&u@dX5wW%tZuI#)8K!+>+ zIoJJGm^OB|H_qW&V7p?Lt1rBZsY$e>66{zU}P)J-+JuIDcI0^&i}JDvS@}@U!b7l-gqPuk|pAqEPPb zx$*LF||Hu_AqT@iCgRVxQt{9-&dUT;7$3wEkmkwqZ zFpkjf2ClM7TTdKXm$ZV&YMV1$<1>`-q=@k&OfeKgMy=wYO;AFRRZ%Dq0Bn9zUNYqA zs6l7|$t{n$y4aTU)a>x^w!W}-EBf@!vIEy>R3gvjDd+)Ez{9(`BeHO~@LfIO@~{AV zT{+;pXxi7xHk8=-dcM5-+G|_iZ?I+-E{>tyS^J3KV3hKcCn)ti{+yz#R0+iOH{ibf z&f&y$;%_)1*M+T#1>-id|9p`Dx9Lf>EB(zEueWpXPtf9uQ=z+D7XK=2{F`Uq>1&9| zUa%f))JZhsr}0Gy8qjW!{}Kxy*(*L3_G<*CqEe9{o!9klR{O3cejggpY8tW9K!B*( z>FkuJXY`P{S`hh#gl937Oa81X`t}o*dD;k|08n-O

  • 5ESakIJG7-%jHi- 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 + + + + + + \ No newline at end of file diff --git a/android/app/src/main/res/values/ic_launcher_background.xml b/android/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 0000000..c5d5899 --- /dev/null +++ b/android/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #FFFFFF + \ No newline at end of file diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..00fa441 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,8 @@ + + + + diff --git a/android/app/src/main/res/xml/app_restrictions.xml b/android/app/src/main/res/xml/app_restrictions.xml new file mode 100644 index 0000000..87aa740 --- /dev/null +++ b/android/app/src/main/res/xml/app_restrictions.xml @@ -0,0 +1,19 @@ + + + + + + + + + + \ No newline at end of file diff --git a/android/app/src/main/res/xml/automotive_app_desc.xml b/android/app/src/main/res/xml/automotive_app_desc.xml new file mode 100644 index 0000000..dd5581b --- /dev/null +++ b/android/app/src/main/res/xml/automotive_app_desc.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/android/app/src/main/res/xml/locale_config.xml b/android/app/src/main/res/xml/locale_config.xml new file mode 100644 index 0000000..96a0588 --- /dev/null +++ b/android/app/src/main/res/xml/locale_config.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/build.gradle.kts b/android/build.gradle.kts new file mode 100644 index 0000000..89176ef --- /dev/null +++ b/android/build.gradle.kts @@ -0,0 +1,21 @@ +allprojects { + repositories { + google() + mavenCentral() + } +} + +val newBuildDir: Directory = rootProject.layout.buildDirectory.dir("../../build").get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/android/fastlane/Appfile b/android/fastlane/Appfile new file mode 100644 index 0000000..872e078 --- /dev/null +++ b/android/fastlane/Appfile @@ -0,0 +1,2 @@ +json_key_file("keys.json") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one +package_name("chat.fluffy.fluffychat") # e.g. com.krausefx.app diff --git a/android/fastlane/Fastfile b/android/fastlane/Fastfile new file mode 100644 index 0000000..765dad0 --- /dev/null +++ b/android/fastlane/Fastfile @@ -0,0 +1,80 @@ +# This file contains the fastlane.tools configuration +# You can find the documentation at https://docs.fastlane.tools +# +# For a list of all available actions, check out +# +# https://docs.fastlane.tools/actions +# +# For a list of all available plugins, check out +# +# https://docs.fastlane.tools/plugins/available-plugins +# + +# Workaround for https://github.com/fastlane/fastlane/issues/21507#issuecomment-1723116829 +ENV['SUPPLY_UPLOAD_MAX_RETRIES']='5' + +# Uncomment the line if you want fastlane to automatically update itself +update_fastlane + +default_platform(:android) + +platform :android do + lane :set_build_code_internal do + versions = google_play_track_version_codes( + track: "internal", + json_key: "./keys.json" + ) + last_version = versions[0].to_i + Dir.chdir("../..") do + re = /version:\s([0-9]*\.[0-9]*\.[0-9]*)\+[0-9]*/i + config = File.read("./pubspec.yaml") + version_name = config.match(re).captures + + subst = "version: #{version_name[0]}+#{last_version+2}" + + result = config.gsub(re, subst) + + File.open("./pubspec.yaml", 'w') { |file| file.write(result) } + end + end + + lane :deploy_internal_test do + versions = google_play_track_version_codes( + track: "internal", + json_key: "./keys.json" + ) + last_version = versions[0].to_i + upload_to_play_store( + track: 'internal', + aab: '../build/app/outputs/bundle/release/app-release.aab', + version_code: "#{last_version+1}", + skip_upload_metadata: true, + skip_upload_images: true, + skip_upload_screenshots: true, + ) + end + + lane :deploy_candidate do + upload_to_play_store( + track: 'internal', + track_promote_to: "beta", + deactivate_on_promote: false, + skip_upload_metadata: true, + skip_upload_images: true, + skip_upload_screenshots: true, + skip_upload_changelogs: true, + ) + end + + lane :deploy_release do + upload_to_play_store( + track: 'internal', + track_promote_to: "production", + deactivate_on_promote: false, + skip_upload_metadata: true, + skip_upload_images: true, + skip_upload_screenshots: true, + skip_upload_changelogs: true, + ) + end +end diff --git a/android/fastlane/README.md b/android/fastlane/README.md new file mode 100644 index 0000000..300ccee --- /dev/null +++ b/android/fastlane/README.md @@ -0,0 +1,56 @@ +fastlane documentation +---- + +# Installation + +Make sure you have the latest version of the Xcode command line tools installed: + +```sh +xcode-select --install +``` + +For _fastlane_ installation instructions, see [Installing _fastlane_](https://docs.fastlane.tools/#installing-fastlane) + +# Available Actions + +## Android + +### android set_build_code_internal + +```sh +[bundle exec] fastlane android set_build_code_internal +``` + + + +### android deploy_internal_test + +```sh +[bundle exec] fastlane android deploy_internal_test +``` + + + +### android deploy_candidate + +```sh +[bundle exec] fastlane android deploy_candidate +``` + + + +### android deploy_release + +```sh +[bundle exec] fastlane android deploy_release +``` + + + +---- + +This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run. + +More information about _fastlane_ can be found on [fastlane.tools](https://fastlane.tools). + +The documentation of _fastlane_ can be found on [docs.fastlane.tools](https://docs.fastlane.tools). diff --git a/android/fastlane/metadata/android/en-US/changelogs/default.txt b/android/fastlane/metadata/android/en-US/changelogs/default.txt new file mode 100644 index 0000000..0466996 --- /dev/null +++ b/android/fastlane/metadata/android/en-US/changelogs/default.txt @@ -0,0 +1,2 @@ +FluffyChat 2.9.0 updates underlying libraries, fixed a lot of bugs and improves the UX. +The app now uses http3 and the system's proxy by default. diff --git a/android/fastlane/metadata/android/en-US/full_description.txt b/android/fastlane/metadata/android/en-US/full_description.txt new file mode 100644 index 0000000..02343d6 --- /dev/null +++ b/android/fastlane/metadata/android/en-US/full_description.txt @@ -0,0 +1,31 @@ +### Messaging how it should be + +Whether for your friends, your company or local community, TatuChat supports a variety of features to cover all your daily needs. + +#### Easy to use + +Simply install, log in and start chatting. The intuitive user interface makes secure communication as easy as possible. + +#### Secure + +With olm/megolm end-to-end encryption, encrypted message backups and an automated key trust system, TatuChat is among the most secure messengers available. + +#### Decentral + +Based on the open Matrix protocol we build a decentralized messaging network together, which no entity can control. Host your own chat server while remaining in contact with everyone. + +### Feature rich and reliable + +From public chats with tens of thousands of participants and polls to custom stickers, spaces, rich moderation tools, and multi-device support, TatuChat delivers a comprehensive communication suite. + +#### Secure video calls + +Direct calls and video conferences, fully secured with Matrix RTC-compatible encryption. + +#### Not another walled garden + +We do not build another walled garden! TatuChat is fully compatible with any other Matrix client like Element, Nheko, Cinny or NeoChat. Learn more at matrix.org. + +#### Made by volunteers + +TatuChat is a non-profit project based on open standards and driven entirely by volunteers. Infrastructure is funded by donations, and participation is open to everyone. diff --git a/android/fastlane/metadata/android/en-US/images/logo.png b/android/fastlane/metadata/android/en-US/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4de3dd32e9219efa8716c1e5509a0dc41bef8d6a GIT binary patch literal 88369 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 literal 0 HcmV?d00001 diff --git a/android/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png b/android/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png new file mode 100644 index 0000000000000000000000000000000000000000..953e2411f829fa5a379c43e6cca3b2542abdc365 GIT binary patch literal 444992 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 z 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